Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.ledger.so/llms.txt

Use this file to discover all available pages before exploring further.

Customers

A Customer represents a person or business using your platform. Every resource in Ledger — crypto wallets, virtual accounts, counterparties — belongs to a Customer. Customers are active immediately on creation. To unlock capabilities like crypto wallets and transfers, customers need to pass identity verification (KYC/KYB). Ledger handles this for you.
FieldValues
typeindividual, business
statusactive, suspended, rejected
kycStatusnot_started, under_review, incomplete, approved, rejected
capabilitiescryptoWallets, virtualAccounts, transfers
Verification links:
  • kycLink: hosted identity verification URL
  • tosLink: hosted terms acceptance URL

Crypto Wallets

A Crypto Wallet is a custodial onchain wallet Ledger manages on behalf of a customer. Crypto wallets hold stablecoin balances and are the foundation for most money movement. What you can do with a crypto wallet:
  • Receive deposits via crypto deposit addresses
  • Send onchain or fiat transfers
  • Check balance via the balance endpoint
  • Hold stablecoin balances (USDC, USDT, PYUSD, EURC)

Virtual Accounts

A Virtual Account provides fiat deposit instructions (routing/account numbers, IBAN, CLABE, etc.) that route incoming fiat into a linked wallet as stablecoins.
FieldDescription
sourceCurrencyFiat currency accepted (usd, eur, mxn, gbp)
depositInstructionsBank details to share with senders

Counterparties

A Counterparty is a customer-owned external account that can receive funds — bank accounts, mobile money wallets, or international wire destinations. Supported types: us_bank, iban, clabe, pix, gb_bank, mobile_money, ghipss, nip, swift Bank-backed types (us_bank, iban, clabe, pix, gb_bank) require customer KYC approval. Direct types (mobile_money, ghipss, nip, swift) can be created without KYC.

Transactions

A Transaction records any value movement in Ledger. Every deposit and transfer creates a transaction.
TypeDescription
transferOnchain transfer to an external address
wallet_depositCrypto received at a deposit address
Transaction fields vary by type: Crypto transfers include: destinationAddress, destinationTxHash, gasFee, finalAmount, exchangeFee Fiat transfers include: payoutAccountId, finalAmount, exchangeFee Transactions are read-only — they are created automatically when money moves through the system.

Transfers

A Transfer is a directed movement of value that you initiate via POST /v1/transfers. It creates a transaction automatically. The source is always the customer’s crypto wallet. You specify the destination:
  • Crypto address on any supported chain (onchain transfer)
  • Payout account (pa_...) via a fiat rail like ACH, SEPA, or Faster Payments (requires customer KYC)

Webhooks

Webhooks let you receive real-time notifications when events happen in Ledger. Register a URL and Ledger pushes events to you. Event types:
  • customer.created, customer.updated
  • wallet.created, wallet.updated
  • virtual_account.created, virtual_account.updated
  • transaction.created, transaction.updated, transaction.completed
  • counterparty.created
  • webhook.test

IDs

Every resource has a prefixed ID:
PrefixResource
cus_Customer
wal_Crypto Wallet
cda_Crypto Deposit Address
va_Virtual Account
pa_Counterparty
txn_Transaction
whk_Webhook

Environments

EnvironmentAPI key prefixDescription
Sandboxld_test_Development and testing. No real money moves.
Liveld_live_Production. Real funds, real transfers.