Skip to main content
As a fintech, you can use Onboard to provide stablecoin-powered accounts to your customers while Onboard handles the heavy lifting of dealing with the blockchain, security, and compliance. Depending on your needs, choose one of the following approaches.

Approach 1: Use Onboard’s ledger

Use Onboard’s ledger directly to manage a stablecoin-backed virtual account per customer.
1

Create a sub-account per customer

POST /ledger/subaccounts, using your internal customer identifier as the subAccountIdRef.
2

Handle deposits

Generate a crypto deposit address for the sub-account with POST /ledger/subaccounts/{subAccountIdRef}/funding-address, then listen for transaction_activity.crypto_deposit.* webhooks to notify your customer when funds arrive.
3

Handle withdrawals

Initiate withdrawals directly from the sub-account with POST /ledger/crypto-transfer, and listen for transaction_activity.crypto_withdrawal.* webhooks.
4

Onramp and offramp per customer

For onramp, generate a virtual account number or a one-off cash deposit per sub-account. For offramp, initiate a cash payout directly from the sub-account.

Approach 2: Use your own ledger

If you already run your own USD/account ledger and only want Onboard’s stablecoin rail for receiving deposits per customer, this approach fits best.
1

Create a sub-account per customer

Same as Approach 1 — POST /ledger/subaccounts with your internal customer identifier.
2

Handle deposits

Generate a deposit address, listen for transaction_activity.crypto_deposit.*, and on a successful deposit: debit the Onboard sub-account (transfer to your main account), then credit the customer’s balance in your own ledger.
3

Handle withdrawals

Debit or hold the customer’s balance in your own system for the withdrawal amount plus fees, initiate the withdrawal from your Onboard main account, and listen for transaction_activity.crypto_withdrawal.* (or poll GET /ledger/crypto-transfer/{transferReference}) before releasing the hold.