Skip to main content

Customers

A Customer represents a person or business using your platform. Every resource in Ledger — wallets, cards, virtual accounts, payout accounts — belongs to a Customer. Before a customer can hold funds or make payments, they need to pass identity verification (KYC/KYB). Ledger handles this for you.
FieldValues
typeindividual, business
statuspending, active, suspended, rejected
kycStatusnot_started, under_review, incomplete, approved, rejected
capabilitiescards, wallets, virtualAccounts, transfers

Wallets

A Wallet is a custodial crypto wallet Ledger manages on behalf of a customer. Wallets hold stablecoin balances and are the foundation for most money movement.
FieldValues
chainsolana, ethereum, base, arbitrum, tron
statusactive, frozen, closed
walletTypecustodial, self_custodial
What you can do with a wallet:
  • Receive deposits via crypto deposit addresses or virtual accounts
  • Send transfers to other wallets or external addresses
  • Fund card spend
  • Hold stablecoin balances

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)
destinationCurrencyStablecoin funds convert to (usdc, usdb)
destinationPaymentRailChain funds settle on (solana)
depositInstructionsBank details to share with senders

Payout Accounts

A Payout Account 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

Cards

A Card is a virtual or physical payment card issued to a customer, funded by their wallet balance. Cards can be used anywhere Visa is accepted.
FieldValues
typevirtual, physical
statusactive, locked, canceled
spendingLimit.frequencyper24HourPeriod, per7DayPeriod, per30DayPeriod, allTime

Transactions

A Transaction records any value movement in Ledger. Every deposit, card purchase, transfer, and withdrawal creates a transaction.
TypeDescription
card_spendPurchase made with a card
transferFiat-to-crypto, crypto-to-fiat, or cross-chain transfer
depositFiat deposited via a virtual account
withdrawalFunds withdrawn to a payout account
wallet_depositCrypto received at a deposit address
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. Unlike transactions (which are records), a transfer is an action. Examples:
  • USDC on Solana to USDC on Ethereum (cross-chain)
  • USDC on Solana to USD via ACH (off-ramp)
  • USD via wire to USDC on Solana (on-ramp)

Webhooks

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

IDs

Every resource has a prefixed ID:
PrefixResource
cus_Customer
wal_Wallet
cda_Crypto Deposit Address
va_Virtual Account
pa_Payout Account
card_Card
txn_Transaction
dis_Dispute
rpt_Report
whk_Webhook

Environments

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