Skip to main content

Customers

A Customer represents a person or business using your platform. Every resource in Ledger — wallets, virtual accounts, counterparties — belongs to a Customer. Customers are active immediately on creation. To unlock capabilities like 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
capabilitieswallets, virtualAccounts, transfers
Verification links:
  • kycLink: hosted identity verification URL
  • tosLink: hosted terms acceptance URL

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. What you can do with a wallet:
  • Receive deposits via crypto deposit addresses
  • Send onchain transfers to external addresses
  • Check balance via the balance endpoint
  • 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, 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
Transactions include onchain details when available:
  • destinationAddress: where funds were sent
  • destinationTxHash: onchain transaction hash
  • finalAmount: actual amount received after fees
  • gasFee: network fee charged
  • exchangeFee: conversion fee
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 wallet. You specify the destination:
  • Crypto address on any supported chain (onchain transfer)
  • Fiat rail like ACH or SEPA (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
  • counterparty.created
  • webhook.test

IDs

Every resource has a prefixed ID:
PrefixResource
cus_Customer
wal_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.