Skip to main content
POST
/
v2
/
beneficiaries
Create Beneficiary
curl --request POST \
  --url https://sandbox.api.fin.com/v2/beneficiaries \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "customer_id": "cust_123456",
  "country": "USA",
  "currency": "USD",
  "account_holder": {
    "type": "INDIVIDUAL",
    "first_name": "John",
    "last_name": "Doe",
    "email": "john.doe@example.com",
    "phone": "+1234567890"
  },
  "account_holder_address": {
    "street_line_1": "456 Main Street",
    "city": "Brooklyn",
    "state": "US-NY",
    "postcode": "11201",
    "country": "USA",
    "street_line_2": "Apt 5B"
  },
  "receiver_meta_data": {
    "transaction_purpose_id": 1,
    "occupation_remarks": "Software Engineer",
    "relationship": "EMPLOYEE",
    "nationality": "USA",
    "transaction_purpose_remarks": "Monthly salary payment",
    "occupation_id": 5,
    "relationship_remarks": "Long-term contractor",
    "govt_id_number": "JG1121316A",
    "govt_id_issue_date": "2024-12-30",
    "govt_id_expire_date": "2027-12-30"
  },
  "developer_fee": {
    "fixed": 5,
    "percentage": 2.5
  },
  "deposit_instruction": {
    "currency": "USDC",
    "rail": "POLYGON"
  },
  "refund_instruction": {
    "wallet_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "currency": "USDC",
    "rail": "POLYGON"
  },
  "bank_account": {
    "bank_name": "Chase Bank",
    "number": "1234567890",
    "scheme": "LOCAL",
    "type": "CHECKING"
  },
  "bank_routing": [
    {
      "scheme": "ACH",
      "number": "021000021"
    }
  ],
  "bank_address": {
    "street_line_1": "123 Bank Street",
    "city": "New York",
    "state": "US-NY",
    "postcode": "10001",
    "country": "USA",
    "street_line_2": "Suite 100"
  },
  "counter_party": "FIRST_PARTY"
}
'
{
  "data": {
    "id": "ben_123456",
    "status": "active"
  }
}

Rules

  • Beneficiary creation requires the customer to be in the APPROVED status.
  • Two beneficiaries with the same destination are not allowed.

De-Duplication Logic

For bank accounts, the system checks: bank_account.scheme, bank_account.number, bank_routing.scheme, bank_routing.number. For e-wallets: e_wallet.scheme, e_wallet.number.

Country-Specific Validation

GBR (United Kingdom)

  • Bank account number: Must match ^[0-9]{4,9}$ for both LOCAL and SWIFT schemes.

Authorizations

Authorization
string
header
required

Bearer token authentication. Obtain token from /v1/oauth/token endpoint

Body

application/json
customer_id
string
required
Example:

"cust_123456"

country
string
required
Pattern: ^[A-Z]{3}$
Example:

"USA"

currency
string
required
Example:

"USD"

account_holder
Individual · object
required
account_holder_address
object
required
receiver_meta_data
object
required
developer_fee
object
required
deposit_instruction
object
required
refund_instruction
object
required
bank_account
object
required
bank_routing
object[]
required
bank_address
object
required
counter_party
enum<string>

Indicates whether the beneficiary is a first-party or third-party account. Optional.

Available options:
FIRST_PARTY,
THIRD_PARTY
Example:

"FIRST_PARTY"

settlement_config
object

Response

Beneficiary created successfully

data
object