Skip to main content
POST
Create a transfer

Authorizations

Authorization
string
header
required

Pass your API key as a Bearer token: Authorization: Bearer ld_live_...

Body

application/json
customerId
string
required

Ledger customer ID (cus_...)

walletId
string
required

Wallet to transfer from (wal_...). Can be a crypto wallet or a virtual account wallet.

amount
required

Transfer amount

destinationCurrency
string
required

Destination currency code (e.g. "usdc", "gbp", "eur")

destinationPaymentRail
string
required

Payment rail (crypto: "solana", "ethereum", etc. | fiat: "ach", "wire", "sepa", "faster_payments", "spei", "pix")

destinationAddress
string
required

Onchain address for crypto transfers, or payout account ID (pa_...) for fiat transfers

reference
string

Payment reference sent to the recipient's bank. Max 10 chars for ACH, 140 for wire/SEPA.

clientReferenceId
string

Your own reference ID for idempotency or tracking (not sent to recipient)

Response

Transfer created

ok
enum<boolean>
required
Available options:
true
data
object
required

Response fields vary by transfer type. Crypto transfers include destinationAddress, destinationTxHash, and gasFee. Fiat transfers include payoutAccountId instead.