Skip to main content
POST
Submit deposit travel rule information

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.

isSelf
boolean

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

Example:

false

isIntermediary
boolean

Indicates whether the submitter is acting as an intermediary Virtual Asset Service Provider (VASP) submitting travel rule information on behalf of their end customer.

Background:

The Travel Rule (FATF Recommendation 16) requires VASPs to share originator and beneficiary information for virtual asset transfers. When a VASP submits travel rule data as an intermediary, the request is routed through the intermediary data source rather than treated as a direct user submission.

Set to true when:

  • Your organization is a VASP submitting travel rule information on behalf of your end customer
  • In this scenario, you are acting as an intermediary in the transfer chain and supplying the originator's details directly

Set to false (or omit) when:

  • You are submitting travel rule information for your own transfer, where you are the originator rather than an intermediary for another institution

Impact on required fields:

When isIntermediary is true, you must provide the originator object with details about the original sender, including:

  • Originator name
  • Originator address

For jurisdictions that require them (such as Coinbase Luxembourg), personalId and dateOfBirth must also reflect the original sender's identity — not the intermediary's. These fields will not be auto-populated from any internal KYC data when isIntermediary is true.

Example:

true

attestVerifiedWalletOwnership
boolean

When true, you attest that the originating wallet's ownership has been verified out-of-band. Instructs Coinbase to skip the wallet verification check for this travel-rule submission.

Only valid when isIntermediary is true. You can only attest wallet ownership when acting as an intermediary VASP on behalf of your end customer. Returns a 400 error if set to true when isIntermediary is false or omitted.

Example:

true

originator
object

Originator information for the travel rule submission.

Example:
beneficiary
object

Beneficiary information for the travel rule submission.

Example:

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:
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."