Skip to main content
POST
/
v2
/
transfers
/
{transferId}
/
travel-rule
Submit deposit travel rule information
curl --request POST \
  --url https://api.cdp.coinbase.com/platform/v2/transfers/{transferId}/travel-rule \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "originator": {
    "name": "John Doe",
    "address": {
      "line1": "123 Main St",
      "city": "San Francisco",
      "state": "CA",
      "postCode": "94105",
      "countryCode": "US"
    }
  },
  "beneficiary": {
    "name": "Jane Smith"
  },
  "isSelf": false
}
'
{
  "status": "incomplete",
  "missingFields": [
    "originator.dateOfBirth"
  ]
}

Authorizations

Authorization
string
header
required

A JWT signed using your CDP API Key Secret, encoded in base64. Refer to the Generate Bearer Token section of our Authentication docs for information on how to generate your Bearer Token.

Headers

X-Idempotency-Key
string

An optional string request header for making requests safely retryable. When included, duplicate requests with the same key will return identical responses. Refer to our Idempotency docs for more information on using idempotency keys.

Required string length: 1 - 128

Path Parameters

transferId
string
required

The unique identifier of the transfer.

Pattern: ^transfer_[a-f0-9\-]{36}$
Example:

"transfer_af2937b0-9846-4fe7-bfe9-ccc22d935114"

Body

application/json

Request body for submitting travel rule information for a deposit transfer. Required fields vary by jurisdiction.

originator
object

Originator information for a deposit travel rule submission.

Example:
{
"name": "John Doe",
"address": {
"line1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"postCode": "94105",
"countryCode": "US"
},
"walletType": "custodial",
"vasp": {
"identifier": "5493001KJTIIGC8Y1R17",
"name": "Fidelity Digital Asset Services, LLC"
}
}
beneficiary
object

Beneficiary information for a deposit travel rule submission.

Example:
{ "name": "Jane Smith" }
isSelf
boolean

Indicates whether the user attests that the originating wallet belongs to them.

Example:

false

Response

Successfully submitted travel rule information.

Response from submitting travel rule information for a deposit transfer.

status
enum<string>
required

The status of a travel rule submission.

Available options:
incomplete,
completed
Example:

"incomplete"

missingFields
string[]

List of field paths that are still required to complete travel rule compliance. Each entry is a dot-separated path (e.g., "originator.name", "originator.address.countryCode"). Empty when status is "completed".

Example:
["originator.address.countryCode"]
reason
string

Additional context about the current status. Present when status is incomplete to explain what needs to be fixed before the transfer can proceed.

Example:

"Originator date of birth is required."