Skip to main content
Wallet routes let your team automate account reads, deposit instructions, recipient records, signed withdrawals, and transaction reconciliation. Wallet currency discovery lists bank-wallet currencies available to the authenticated API-key owner and USD. Use GET /partner/wallets/currencies for the available choices and their metadata. Disabling bank-payment support can remove a currency from discovery; existing owned wallet balances remain readable. USDT and USDC settle into USD; CNGN settles into NGN. These rails are not separate wallet currencies. Bank currencies include deposit_fee_bps, the current bank-deposit fee in integer basis points. Display deposit_fee_bps / 100 as a percentage: 35 means 0.35%, and 0 means no fee. Fee amounts round upward to the smallest currency unit. USD omits this field; use settlement-route metadata for its route-specific fees. Discovery reports current terms for new deposits; accepted deposits retain their captured policy. An unavailable bank currency or fee policy is omitted from the list. Listing currencies creates no wallet or deposit account. Bank deposits credit their bank wallet currency. Crypto deposits credit their settlement rail’s wallet currency after confirmation and required checks. CNGN funds awaiting conversion capacity appear in locked, so a successful deposit may not be fully spendable. See NGN for bank transfers and the full CNGN workflow.
Partner API withdrawal quote and submit calls require an explicitly enabled key and an Ed25519 signature over the exact request. They do not require an emailed verification code or a separate withdrawal token.

Core Routes

Deposit Model

Crypto deposit addresses are created on demand. Your application requests the chain it needs, receives the address for that route, and should display the returned chain and address exactly. Do not create addresses for every chain unless your product actually needs to show them. Fiat deposit account details are also read on demand. Show the returned account details exactly and reconcile credited deposits from the transaction timeline.

Recipient Model

Saved recipients are reusable destination records for Stabyl Pro workflows and internal account organization. Creating or updating a recipient does not move funds, and API withdrawals do not accept a saved recipient as a destination.

Reconciliation Model

Use wallet transactions as the source of truth for wallet activity. The timeline can include:
  • fiat deposits
  • stablecoin deposits
  • fees
  • adjustments
  • refunds
  • withdrawals
Use the transaction id as the stable public identifier in your own system. Treat status updates as append or update events: a transaction may first appear while processing and later move to a final state. Authenticated wallet reads require X-Api-Key with wallets:view. Recipient management and Travel Rule submissions require wallets:transfer. Withdrawals require wallets:withdraw and a signed request. GET /partner/wallets/chains and GET /partner/wallets/fiat/banks are public. For bank deposits, transaction amount remains the gross incoming amount. When customer fee terms were captured, bank settlement_details also includes optional customer_fee and credited_amount money objects. credited_amount is gross less the customer charge, before automatic credit repayment. The existing fee field retains its bank-reported meaning. Partner transaction events use these same frozen amounts, and a separate deposit fee activity row records the fee already deducted. Historical deposits omit the new fields.