Skip to main content

Goal

Onboard a business customer to Bastion so they can hold digital assets and use conversions and transfers.

Key entities


Flow overview

Follow these steps to onboard a business customer and have them transact:
  1. Create identity
  2. Submit KYB
  3. Track status
  4. Create account
  5. Start transacting

Simulation for sandbox testing

Refer to sandbox testing and simulations for a guide on how to use simulation labels to simulate the onboarding checks to facilitate testing.

Prerequisites

  • You have access to your dashboard
  • You’ve created an API key
  • You’ve registered a webhook

Step 1 – create a business identity

Create a business identity in Bastion when your customer’s business signs up or is approved in your own system. Request
Response
Store the returned identity_id alongside your internal business customer ID for all future calls.
Tip: Use label for a stable, non-PII identifier (e.g., your internal business ID). Do not include names, emails, or phone numbers.

Step 2 – submit KYB data

Submit KYB information for the business identity. Your platform collects this data in your own UI and sends it to Bastion. Request
KYB is processed asynchronously. Bastion will update status over time and emit webhooks.

Step 3 – track KYB status

Track KYB status via Typically, most KYB checks are approved within 3-5 business days once data and documents are submitted.

Option A: webhooks

Configure a webhook endpoint in the Bastion dashboard to react to KYB status changes in real time. Example event
Use this event to:
  • Mark the business as approved or failed in your system
  • Enable or block access to financial features

Option B: polling

Poll the identity endpoint as a fallback.
Response (approved)
Key fields
Only proceed to account creation after KYB passes.

Step 4 – create an account

Once KYB is approved, create an account linked to the business identity. Use a unique request_id (UUID) as an idempotency key. Reuse the same request_id on retries to avoid duplicate accounts. Request
Response
Capture the account_id. This account is used for:
  • Checking balances
  • On-ramp and off-ramp conversions
  • Crypto transfers

Step 5 – verify setup

Confirm the business is fully ready:
  1. Check identity statusGET /v2/identities/{identity_id}
  2. Check account — Verify account_ids includes the new account and account_status= ACTIVE
  3. Check balances (optional) — GET /v2/accounts/{account_id}/balances
Next actions:
  • Top up via on-ramp (wire → stablecoin)
  • Send crypto via /v2/crypto/transfers
  • Withdraw via off-ramp (stablecoin → USD)

Implementation notes