Skip to main content

Create a counterparty

Register an external bank account, mobile money wallet, or other destination for payouts:
curl -X POST https://api.ledger.so/v1/counterparties \
  -H "Authorization: Bearer $LEDGER_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: create-cp-1" \
  -d '{
    "customerId": "cus_...",
    "currency": "ghs",
    "accountType": "mobile_money",
    "accountOwnerName": "John Doe",
    "details": {
      "provider": "mtn",
      "phoneNumber": "+233501234567"
    }
  }'
Response:
{
  "ok": true,
  "data": {
    "id": "pa_...",
    "customerId": "cus_...",
    "accountType": "mobile_money",
    "currency": "ghs",
    "status": "active",
    "accountOwnerName": "John Doe",
    "last4": "4567",
    "details": {
      "provider": "mtn",
      "phoneNumber": "+233501234567"
    },
    "createdAt": 1710000000000,
    "updatedAt": 1710000000000
  }
}

Account types

TypeNetworkKYC RequiredFields
us_bankACHYesaccount (account_number, routing_number)
ibanSEPAYesiban
clabeSPEIYesclabe
pixPIXYespixKey or brCode
gb_bankFaster PaymentsYesaccount (account_number, sort_code)
mobile_moneyMTN, etc.Nodetails (provider, phoneNumber)
ghipssGhIPSSNodetails (accountNumber)
nipNIPNodetails (accountNumber, bankCode)
swiftSWIFTNodetails (accountNumber, swiftCode)
Bank-backed types (us_bank, iban, clabe, pix, gb_bank) require the customer to have completed KYC verification. Direct types (mobile_money, ghipss, nip, swift) can be created without KYC.

Required fields

FieldTypeRequiredDescription
customerIdstringYesCustomer who owns this counterparty
currencystringYesCurrency code (e.g. usd, eur, ghs, ngn)
accountTypestringYesOne of the supported account types above
accountOwnerNamestringYesLegal name on the account
accountOwnerTypestringNoindividual or business
bankNamestringNoName of the bank
firstNamestringNoAccount holder first name
lastNamestringNoAccount holder last name
businessNamestringNoBusiness name (for business accounts)

List counterparties

curl "https://api.ledger.so/v1/counterparties?customerId=cus_..." \
  -H "Authorization: Bearer $LEDGER_API_KEY"
Filter by customerId or currency.