2. Open a USD account

Accounts are provisioned automatically once onboarding reaches ACTIVE — you do not create them. Onboarding one customer yields a USD account and a wallet per supported stablecoin and network.

List the customer's accounts

GET /v1/payments/accounts?customer_id={customer_id}

curl "https://api-staging.checker.finance/v1/payments/accounts?customer_id=cus_01ARZ3NDEKTSV4RRFFQ69G5FAV" \
  -H "X-Api-Key: $API_KEY" \
  -H "X-Timestamp: $TIMESTAMP" \
  -H "X-Nonce: $(uuidgen)" \
  -H "X-Signature: $SIGNATURE"

Response — 200 OK:

{
  "data": [
    {
      "account_id": "acc_01ARZ3NDEKTSV4RRFFQ69G5USD",
      "customer_id": "cus_01ARZ3NDEKTSV4RRFFQ69G5FAV",
      "currency": "USD",
      "provider": "provider-a",
      "status": "ACTIVE"
    },
    {
      "account_id": "acc_01ARZ3NDEKTSV4RRFFQ69G5UST",
      "customer_id": "cus_01ARZ3NDEKTSV4RRFFQ69G5FAV",
      "currency": "USDT",
      "provider": "provider-a",
      "status": "ACTIVE",
      "metadata": { "network": "ETH" }
    }
  ],
  "next_cursor": null
}

Filter with currency to narrow the list, and use metadata.network to tell wallets of the same asset apart.

Read the funding instructions

GET /v1/payments/accounts/{account_id}

curl https://api-staging.checker.finance/v1/payments/accounts/acc_01ARZ3NDEKTSV4RRFFQ69G5USD \
  -H "X-Api-Key: $API_KEY" \
  -H "X-Timestamp: $TIMESTAMP" \
  -H "X-Nonce: $(uuidgen)" \
  -H "X-Signature: $SIGNATURE"

Response — 200 OK:

{
  "account_id": "acc_01ARZ3NDEKTSV4RRFFQ69G5USD",
  "customer_id": "cus_01ARZ3NDEKTSV4RRFFQ69G5FAV",
  "currency": "USD",
  "provider": "provider-a",
  "status": "ACTIVE",
  "credentials": {
    "deposit_instructions": [
      {
        "bank_name": "First Example Bank",
        "bank_country": "US",
        "recipient_name": "Acme Coffee Roasters LLC",
        "rail": "FEDWIRE",
        "routing_number": "026009593",
        "swift_bic": "FEXBUS44",
        "account_number": "37215089689088",
        "memo": "FFC Acme Coffee Roasters 37215089689088",
        "status": "ACTIVE"
      },
      {
        "bank_name": "First Example Bank",
        "bank_country": "US",
        "recipient_name": "Acme Coffee Roasters LLC",
        "rail": "ACH",
        "routing_number": "026009593",
        "account_number": "37215089689088",
        "memo": "FFC Acme Coffee Roasters 37215089689088",
        "status": "ACTIVE"
      }
    ]
  }
}

credentials.deposit_instructions lists every funding destination for the account. A fiat instruction carries the bank, its rail, the routing identifiers, and the memo the sender must quote. A wallet instruction carries network and address:

{
  "account_id": "acc_01ARZ3NDEKTSV4RRFFQ69G5UST",
  "currency": "USDT",
  "status": "ACTIVE",
  "metadata": { "network": "ETH" },
  "credentials": {
    "deposit_instructions": [
      { "network": "ETH", "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28", "status": "ACTIVE" }
    ]
  }
}

Notes:

  • credentials is present only while the account is ACTIVE.
  • Instructions can change. Re-read the account before sharing them rather than caching them indefinitely.
  • Some corridors return the flat fields account_number, routing_number, bic_code, and reference instead of an instruction list. Handle whichever your account returns.

Did this page help you?