Create Crypto Beneficiary
For each receiver, you need to create a beneficiary on the platform. We will return a beneficiary_id, which can be used to make transfers.
Once added, the platform will automatically perform AML and Sanctions checks on the beneficiary.
Endpoint
POST https://api.zamp.finance/api/client/:clientid/customer/:customerid/crypto/beneficiary
This API creates a crypto beneficiary.
For Beneficiary Account Type: Individual
Request Body
| Key | Type | Description | Required |
|---|---|---|---|
| name | String | The name of the beneficiary. | Yes (if depositor_business_id is not provided) |
| String | Email of the beneficiary. | No | |
| telephone_number | String | Telephone number of the beneficiary in E.164 format. | No |
| date_of_birth | String | Date of birth in RFC3339 format (YYYY-MM-DD). | No |
| address | Address | Address details of the beneficiary. | Yes |
| relationship_to_customer | String | Relationship of the customer to the beneficiary. Possible values: "SPOUSE", "EX_SPOUSE", "CHILDREN", "PARENT", "SIBLING", "RELATIVE", "SELF", "FRIEND", "BUSINESS_PARTNER", "CUSTOMER", "EMPLOYEE", "BRANCH_OFFICE", "SUBSIDIARY_COMPANY", "HOLDING_COMPANY", "SUPPLIER", "CREDITOR", "DEBTOR", "FRANCHISEE". | No |
| routing_code_type_1 | String | For crypto transfers, this will always be "NETWORK". | Yes (if depositor_business_id is not provided) |
| routing_code_value_1 | String | Network on which the cryptocurrency will be sent. Possible values: ETHEREUM, SOLANA, POL, BNB, BTC, TRX. | Yes (if depositor_business_id is not provided) |
| account_number | String | Wallet address of the beneficiary. | Yes (if depositor_business_id is not provided) |
| wallet_ownership_document_base64 | String | Base64-encoded wallet ownership document. | No |
| depositor_business_id | String | Customer ID on the partner platform from which the customer will send or receive digital assets. | Yes (if the other fields are not provided) |
Address
| Key | Type | Description | Required |
|---|---|---|---|
| address_line | String | Address line of the beneficiary. | No |
| city | String | City. | No |
| state | String | State / Province (2-digit subdivision per ISO 3166-2). | Yes |
| postal_code | String | Postal / ZIP code. | No |
| country_code | String | Country code in ISO 3166-1 Alpha-2 format. | Yes |
Sample Request JSON
{
"name": "John Doe",
"email": "johndoe@example.com",
"telephone_number": "+14155552671",
"date_of_birth": "1988-07-15",
"address": {
"address_line": "1600 Pennsylvania Avenue NW",
"city": "Washington",
"state": "DC",
"postal_code": "20500",
"country_code": "US"
},
"relationship_to_customer": "FRIEND",
"routing_code_type_1": "NETWORK",
"routing_code_value_1": "ETHEREUM",
"account_number": "0xC648520b1bDDcEADA201cdfd95c582e5fE698F37",
"wallet_ownership_document_base64": "d2FsbGV0X293bmVyc2hpcF9kb2N1bWVudF9zYW1wbGU=",
"depositor_business_id": "partner_123456"
}
Response Body
| Key | Example Value | Description |
|---|---|---|
| beneficiary_id | merchant_jXHm4aJH4vUmgcT6bmYGwD_11_30 | Unique identifier assigned by Zamp systems for the created beneficiary. |
Sample Response JSON
{
"data": {
"beneficiary_id": "merchant_jXHm4aJH4vUmgcT6bmYGwD_11_30"
}
}
✅ Notes:
- The
routing_code_type_1must always be"NETWORK"for crypto transfers. - Use the correct blockchain network in
routing_code_value_1. - Ensure that wallet addresses are valid and correspond to the chosen network.
- Base64-encoded documents must not exceed the platform’s maximum payload limit.