Create a transfer

Creates a transfer and notifies the beneficiary's institution. Notabene never creates two transfers with the same ref: sent again unchanged, the request answers 201 with the same transfer, or 409. Either way, the first request created it.

Besides ref, asset and amount, a create needs settlement_address or beneficiary_entity_did. A withdrawal also needs its originator, as originator_id. A deposit you create yourself names the sending institution or your own DID instead, as Deposits, funds first explains.

Required permission: create:transfer.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Used in these guides:

Body Params
string
required

The amount transferred, in the asset's whole units rather than its smallest unit. For example 1.5 ETH, not 1500000000000000000.

string
required

The asset being transferred, as a CAIP-19 identifier or a plain symbol such as BTC. Symbols resolve to their canonical CAIP-19 identifier.

uuid
required

Your own reference for the transfer, a UUID: anything else answers 400 ref must be a UUID. Notabene never creates two transfers with the same ref.

beneficiary
object

The party receiving the funds.

string

DID of the beneficiary's institution. When omitted, it is discovered from settlement_address.

string

The IRI of the beneficiary: an existing customer’s id, or an id of your own for the beneficiary you send in beneficiary. Required with beneficiary: without it, the create answers 400 party profile provided without party ID.

beneficiary_proof_of_ownership
object

Proof that the beneficiary controls a self-hosted settlement_address.

string

Your own fiat valuation of the transfer, as a decimal string in USD. When present it takes precedence over our own asset pricing, and is what the travel-rule threshold is compared against.

string

Free-text memo carried with the transfer.

string

XRPL destination tag or Stellar memo for the settlement address. Equivalent to appending :tag to settlement_address.

originator
object

The party sending the funds.

string

DID of the originator's institution. When omitted, it is discovered from source_address. May be combined with beneficiary_entity_did; your own role on the transfer follows the DID you authenticated as.

string

IRI of an existing customer to use as the originator, instead of supplying originator inline.

originator_proof_of_ownership
object

Proof that the originator controls a self-hosted source_address.

provided
array of strings | null

The PII fields you are supplying, validated against the requirements of the applicable jurisdiction.

provided
string

The address the funds are sent to. Accepts a bare address, a CAIP-10 identifier or a did:pkh; a bare address is interpreted on the asset's chain.

string

Settlement identifier of a transfer already received on-chain, as a transaction hash or a CAIP-220 identifier. A raw hash is interpreted on the asset's chain. Required when originator_entity_did names a counterparty institution.

string

The address the funds are sent from. Accepts a bare address, a CAIP-10 identifier or a did:pkh; a bare address is interpreted on the asset's chain.

Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

429

Too Many Requests: more than 6,000 calls in 300 seconds. Every endpoint refuses your calls for the next 10 seconds. Send the request again with a backoff, as Rate limiting explains.

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
application/problem+json