Provide additional party information
In traditional payment systems such as credit cards and bank transfers, collecting and sharing party information is standard practice. The Travel Rule now extends this requirement to crypto and stablecoin payments under the EU's MiCA regulation for crypto assets.
The Travel Rule increases regulatory clarity and data transparency for crypto, enabling businesses to operate in a more secure environment. As trust in crypto payments grows, we anticipate broader adoption by businesses, consumers, and financial institutions.
- If you use an API integration to initiate payments, update your integration to include the required data. The affected endpoints are listed below.
- If you initiate payments only through the BVNK Portal, you will be prompted to provide the required data in the user interface as needed.
Affected API endpoints
If you use these endpoints, update your integration as shown in the examples below.
| Product | Used for | Production endpoint | Sandbox endpoint |
|---|---|---|---|
| Crypto payments via Payment Links | Deposits Payouts | https://api.bvnk.com/api/v1/pay/summary | https://api.sandbox.bvnk.com/api/v1/pay/summary |
| Crypto payments via Payment Channels | Deposits | https://api.bvnk.com/api/v2/channel | https://api.sandbox.bvnk.com/api/v2/channel |
Supply the additional data
- Individual: Originator (Payin)
- Individual: Beneficiary (Payout)
- Business: Originator (Payin)
- Business: Beneficiary (Payout)
{
"customerId": "d063635e-0f83-4e47-a1f3-fc9484df1509",
"complianceDetails": {
"requesterIpAddress": "77.71.188.87",
"partyDetails": [
{
"type": "ORIGINATOR",
"entityType": "INDIVIDUAL",
"firstName": "John",
"lastName": "Doe",
"dateOfBirth": "1984-06-30",
"relationshipType": "THIRD_PARTY",
"countryCode": "DE"
}
]
}
}
| Parameter | Required | Description |
|---|---|---|
customerId | ✅ | Unique identifier for the party requesting the payment. If multiple payments for the same party are requested, the ID should remain consistent. |
complianceDetails | ✅ | Information about the party requesting the deposit. |
complianceDetails.requesterIpAddress | ✅ | IP-address of the party requesting the deposit. Required only if countryCode is not provided. |
complianceDetails.partyDetails | ✅ | Additional information about the party requesting the payment. |
complianceDetails.partyDetails.type | ✅ | Party to which the information belongs. Possible values: • BENEFICIARY: Party receiving the pay-out• ORIGINATOR: Party sending the deposit |
complianceDetails.partyDetails.entityType | ✅ | Entity type. Possible values: • INDIVIDUAL: details about an individual.• COMPANY: details about a business. |
complianceDetails.partyDetails.firstName | ✅ | First name of the party requesting the deposit. Required only if "entityType": "INDIVIDUAL". |
complianceDetails.partyDetails.lastName | ✅ | Last name of the party requesting the deposit. Required only if "entityType": "INDIVIDUAL". |
complianceDetails.partyDetails.dateOfBirth | ✅ | Date of birth of the party requesting the deposit. Format: YYYY-MM-DD. Example: 1984-06-30.Required only if "entityType": "INDIVIDUAL". |
complianceDetails.partyDetails.countryCode | ✅ | ISO 3166-1-alpha-2 code of the country that the party resides in. Example: DE.Required only if requesterIpAddress is not provided. |
complianceDetails.partyDetails.regionCode | ✅ | ISO 3166-2:UA code for Ukraine's regions, enabling geoscreening of restricted areas. Required only if complianceDetails.partyDetails.countryCode is UA. In this case, submissions with missing or invalid regionCode are rejected. For all other countries, the region code is ignored.For the complete list of codes, see ISO_3166-2:UA. Example: UA-46. |
complianceDetails.partyDetails.legalName | ✅ | Legal entity name of the company. Required only if "entityType": "COMPANY". |
complianceDetails.partyDetails.registrationNumber | ✅ | Company registration number. Required only if "entityType": "COMPANY". |
complianceDetails.partyDetails.relationshipType | ✅ | Relationship type between the sender and the recipient of the transaction. Possible values: • SELF_OWNED: The wallet within BVNK is registered under the same entity for both accounts involved in the transaction. Thus, the funds are moved between accounts owned by the same entity. For example, if the BVNK wallet is registered to Fast Cars LTD and funds are being transferred to another account owned by Fast Cars LTD.• THIRD_PARTY: The transaction involves accounts belonging to different entities. For example, Fast Cars LTD receives a payment from James Smith, or Fast Cars LTD pays their supplier Tires Supplies Inc. |
Examples
Deposits
- Payment Link: Individual
- Payment Link: Business
- Payment Channel: Individual
- Payment Channel: Business
{
"walletId": "a:12345678987654:xyzW1qp:3",
"type": "IN",
"amount": 500,
"currency": "USDT",
"expiryMinutes": 1440,
"reference": "1xCbGZ",
"returnUrl": "https://your-url-here.com/status",
"customerId": "d063635e-0f83-4e47-a1f3-fc9484df1509",
"complianceDetails": {
"requesterIpAddress": "77.71.188.87",
"partyDetails": [
{
"type": "ORIGINATOR",
"entityType": "INDIVIDUAL",
"firstName": "John",
"lastName": "Doe",
"dateOfBirth": "1984-06-30",
"relationshipType": "THIRD_PARTY",
"countryCode": "DE"
}
]
}
}
Payouts
- Payment Link: Individual
- Payment Link: Business
{
"walletId": "a:25022613287255:zmHs0pg:4",
"type": "OUT",
"amount": 3,
"currency": "EUR",
"expiryMinutes": 30,
"reference": "test_reference_out_xpO23C",
"returnUrl": "https://www.your-url-here.com/status",
"payOutDetails": {
"code": "crypto",
"currency": "ETH",
"network": "ETHEREUM",
"address": "0x02ae6765C6991813a3EAa86fe63ebBCA1c9EC156",
"tag": ""
},
"customerId": "d063635e-0f83-4e47-a1f3-fc9484df1509",
"complianceDetails": {
"requesterIpAddress": "77.71.188.87",
"partyDetails": [
{
"type": "BENEFICIARY",
"entityType": "INDIVIDUAL",
"firstName": "John",
"lastName": "Doe",
"dateOfBirth": "1984-06-30",
"relationshipType": "THIRD_PARTY",
"countryCode": "DE"
}
]
}
}
Add parameters to existing payment channels
If you have existing payment channels without the required data, you can provide this information by sending a PUT request to the payment channel endpoint (/api/v2/channel).
{
"uuid": "7e5e126b-0217-45d4-b38f-5d6f30388257",
"walletId": "a:25022613287255:zmHs0pg:6",
"reference": "b5af590b-6033-4b15-874b-289f269b15f9",
"customerId": "d063635e-0f83-4e47-a1f3-fc9484df1509",
"complianceDetails": {
"requesterIpAddress": "77.71.188.87",
"partyDetails": [
{
"entityType": "INDIVIDUAL",
"type": "ORIGINATOR",
"firstName": "John",
"lastName": "Doe",
"dateOfBirth": "1984-06-30",
"relationshipType": "THIRD_PARTY",
"countryCode": "DE"
}
]
}
}
| Parameter | Required | Description |
|---|---|---|
uuid | ✅ | UUID associated with the payment channel. This would have been provided in the response when you originally created the payment channel. |
walletId | ✅ | ID of the wallet associated with the payment channel. |
reference | ✅ | reference associated with the payment channel. |
customerId | ✅ | Uniquely identifying the party requesting the payment. If multiple payment channels for the same party are created, the ID should remain consistent across them. |
complianceDetails | ✅ | Information about the party requesting the deposit. |
complianceDetails.requesterIpAddress | ✅ | IP-address of the party requesting the deposit. Required only if countryCode is not provided. |
complianceDetails.partyDetails | ✅ | Additional information about the party requesting the payment. |
complianceDetails.partyDetails.type | ✅ | Party to which the information belongs. Possible values: • BENEFICIARY: Party receiving the pay-out• ORIGINATOR: Party sending the deposit |
complianceDetails.partyDetails.entityType | ✅ | Entity type. Possible values: • INDIVIDUAL: details about an individual.• COMPANY: details about a business. |
complianceDetails.partyDetails.firstName | ✅ | First name of the party requesting the deposit. Required only if "entityType": "INDIVIDUAL". |