# Bastion ## Docs - [Bastion platform overview](https://docs.bastion.com/guides/getting-started/bastion-platform-overview.md): Overview of the Bastion stablecoin platform: white-label issuance, custody, on-ramps and off-ramps, and the APIs and dashboards that power them. - [Sandbox access and test API keys](https://docs.bastion.com/guides/getting-started/api-access-prerequisites.md): How to request access to the Bastion sandbox, create test API keys from the sandbox dashboard, and authenticate against a full-featured replica of the API. - [Jurisdiction overview](https://docs.bastion.com/guides/getting-started/jurisdiction-overview.md): Where Bastion supports custody, stablecoin issuance, and fiat on-ramps and off-ramps by customer jurisdiction, including US state-level exceptions. - [Supported off-ramp payout countries](https://docs.bastion.com/guides/getting-started/supported-off-ramp-payout-countries.md): Countries, payout currencies, local payment networks, and settlement times for Bastion off-ramp payouts to bank accounts across 60+ jurisdictions. - [Sandbox vs. production environments](https://docs.bastion.com/guides/getting-started/sandbox-vs-production-environments.md): How Bastion's sandbox and production environments differ in base URLs, credentials, asset behavior, chain support, and when to use each one. - [Sandbox testing and simulation labels](https://docs.bastion.com/guides/getting-started/sandbox-testing-and-simulations.md): Use simulation labels to force KYC, KYB, and IDV outcomes in the Bastion sandbox during integration testing and UAT scenarios. - [Identities and accounts](https://docs.bastion.com/guides/concepts/identities-and-accounts.md): How Bastion models customers as Identities (KYC/KYB anchor) and Accounts (wallets and balances), including status fields, sub-statuses, and permissions. - [Supported chains and assets](https://docs.bastion.com/guides/concepts/chains-and-assets.md): Blockchains, stablecoins, and base assets Bastion supports across EVM and SVM mainnets and testnets, with chain IDs and block explorers. - [Crypto custody](https://docs.bastion.com/guides/concepts/custody.md): How Bastion's custody signs transactions in AWS Nitro Enclaves without exposing private keys, across segregated and omnibus accounts, with sponsored gas. - [Crypto transfers and deposits](https://docs.bastion.com/guides/concepts/crypto-transfers.md): How on-chain and off-chain crypto transfers move between Bastion accounts, their status lifecycle, and how deposit webhooks credit recipient balances. - [Stablecoin on-ramp and off-ramp conversions](https://docs.bastion.com/guides/concepts/stablecoin-conversions.md): How Bastion converts between fiat and stablecoins: virtual accounts for on-ramps, payment instructions for off-ramps, quotes, and conversion fees. - [Stablecoin issuance concepts](https://docs.bastion.com/guides/concepts/stablecoin-issuance.md): How Bastion-issued stablecoins are minted from USD wires and redeemed back to USD, including mint destination addresses, memo IDs, and redemption bank accounts. - [Onboard an individual customer](https://docs.bastion.com/guides/quickstarts/onboard-an-individual-customer.md): Onboard an individual to Bastion end-to-end: create an identity, submit KYC data, handle optional IDV checks, and open a transacting account. - [Onboard a business customer](https://docs.bastion.com/guides/quickstarts/onboard-a-business-customer.md): Onboard a business to Bastion end-to-end: create a business identity, submit KYB compliance data, track status webhooks, and open a transacting account. - [On-ramp: Fund a stablecoin account with a USD wire](https://docs.bastion.com/guides/quickstarts/on-ramp.md): Create a Virtual Account, share wire instructions with the customer, and let Bastion auto-convert the USD deposit into USDC when the wire lands. - [Off-ramp: Withdraw stablecoin to a bank account](https://docs.bastion.com/guides/quickstarts/off-ramp.md): Compare US and international off-ramp flows: destinations, pricing, quotes, third-party recipients, supported chains, and which quickstart to follow. - [Off-ramp: Withdraw stablecoin to a US bank account](https://docs.bastion.com/guides/quickstarts/off-ramp/withdraw-to-a-bank-account.md): Withdraw USDC to a customer's own US bank account via wire: register payment instructions, submit the conversion, and track it to completion. - [Off-ramp: Withdraw stablecoin internationally](https://docs.bastion.com/guides/quickstarts/off-ramp/international-bank-account.md): Withdraw USDC to a bank account in 60+ countries via off-ramp conversion: quote pricing, institution lookup, payment instructions, and status tracking. - [Send crypto from a Bastion account](https://docs.bastion.com/guides/quickstarts/send-crypto.md): Compare on-chain and off-chain crypto transfers, when each mode applies to segregated and omnibus accounts, and which quickstart to follow for each. - [Send crypto on-chain to any wallet address](https://docs.bastion.com/guides/quickstarts/send-crypto/on-chain.md): Submit an on-chain transfer from a Bastion account to an external wallet or exchange, with Bastion-sponsored gas, and track it to confirmation via webhooks. - [Send crypto off-chain between omnibus accounts](https://docs.bastion.com/guides/quickstarts/send-crypto/off-chain.md): Submit an instant off-chain transfer between two omnibus accounts on the same platform via POST /v2/crypto/transfers, and confirm the transfer settles. - [Receive crypto deposits to a Bastion account](https://docs.bastion.com/guides/quickstarts/receive-crypto-deposits.md): Display a customer's deposit address, receive deposit webhooks when crypto arrives, and reconcile on-chain and off-chain deposits by source_type. - [Mint Bastion-issued stablecoins with the Issuance API](https://docs.bastion.com/guides/quickstarts/mint-bastion-issued-stablecoins.md): End-to-end quickstart to mint Bastion-issued stablecoins: register a mint destination address, create mint instructions, wire USD, and track the mint. - [Redeem Bastion-issued stablecoins to USD](https://docs.bastion.com/guides/quickstarts/redeem-bastion-issued-stablecoins.md): End-to-end quickstart to redeem Bastion-issued stablecoins: register a bank account, create redemption instructions, send stablecoins, and track USD payout. - [Onboard to Bastion for production access](https://docs.bastion.com/guides/compliance/onboard-to-bastion.md): How to onboard with Bastion for production: contacting sales, going through compliance due diligence, and activating production access after approval. - [KYC and KYB requirements](https://docs.bastion.com/guides/compliance/kyc-requirements.md): Personal, address, and business information Bastion requires to verify individual (KYC) and business (KYB) customers through the Compliance API. - [Supported business industry codes](https://docs.bastion.com/guides/compliance/supported-business-industry-codes.md): Full list of NAICS industry codes accepted for Bastion business (KYB) customers when submitting compliance data during identity onboarding. - [Security architecture overview](https://docs.bastion.com/guides/security/overview.md): How Bastion secures the platform end-to-end: defense in depth, authenticated request flow, VPC isolation, WAF and DDoS protection, and secure hardware. - [Wallet key management](https://docs.bastion.com/guides/security/key-management.md): How Bastion derives wallet private keys on demand from a non-exportable root key in AWS KMS and CloudHSM, and signs inside AWS Nitro Enclaves. - [Network security](https://docs.bastion.com/guides/security/network-security.md): How Bastion protects its network with AWS VPC isolation, Cloudflare Zero Trust, a web application firewall, mTLS between services, and continuous monitoring. - [API authentication overview](https://docs.bastion.com/guides/security/api-authentication.md): How Bastion authenticates API requests: Bearer API keys, optional JWT request signing with ES256, key storage, and choosing the right method for your use case. - [Get access to the Bastion Dashboard](https://docs.bastion.com/guides/dashboard/getting-access.md): How to request access to the Bastion Dashboard in the sandbox and production environments by contacting your Bastion representative. - [Create an identity in the Bastion Dashboard](https://docs.bastion.com/guides/dashboard/creating-identities.md): Step-by-step guide to creating individual and business identities in the Bastion Dashboard, adding internal labels, and submitting KYC or KYB data. - [Create an account in the Bastion Dashboard](https://docs.bastion.com/guides/dashboard/creating-accounts.md): Step-by-step guide to creating a Bastion account under an approved identity in the Dashboard, viewing its wallet addresses, and checking its balances. - [Send crypto from the Bastion Dashboard](https://docs.bastion.com/guides/dashboard/send-crypto.md): Transfer USDC, SOL, and other supported crypto assets on-chain from a Bastion account to a supported blockchain address using the Dashboard's Transfer flow. - [Mint Bastion-issued stablecoins from the Dashboard](https://docs.bastion.com/guides/dashboard/mint-bastion-stablecoin.md): Register a mint destination address, create mint instructions, send a USD wire with the memo ID, and track the mint in the Bastion Dashboard. - [Redeem Bastion-issued stablecoins from the Dashboard](https://docs.bastion.com/guides/dashboard/redeem-bastion-stablecoin.md): Register a bank account, create redemption instructions, send stablecoins to the redemption address, and track the USD wire payout in the Dashboard. - [MCP server for LLMs and AI coding tools](https://docs.bastion.com/guides/llms/mcp.md): Connect the Bastion documentation MCP server to Claude, Cursor, and VS Code so your AI tools can search the docs and API reference while you build. - [API authentication with Bearer keys](https://docs.bastion.com/v2/api-reference/authentication/overview.md): Obtain a Bastion API key from the dashboard, choose between the sandbox and production environments, and pass the key as a Bearer token in requests. - [Request signing with JWTs](https://docs.bastion.com/v2/api-reference/authentication/request-signing.md): Enable JWT request signing on a Bastion API key: upload an ES256 public key, then sign every request with iat, req-path, req-method, and body claims. - [JWT generation example](https://docs.bastion.com/v2/api-reference/authentication/jwt-generation-example.md): Working Python script that constructs the required claims and signs an ES256 JWT for Bastion API request signing, including body hashing and headers. - [Accounts API overview](https://docs.bastion.com/v2/api-reference/accounts/overview.md): Bastion accounts represent per-identity operational units with wallet addresses per chain. Covers segregated and omnibus account types and creation steps. - [List Accounts](https://docs.bastion.com/v2/api-reference/accounts/list-accounts.md): List Accounts belonging to your organization - [Create Account](https://docs.bastion.com/v2/api-reference/accounts/create-account.md): Create an account for your organization. Note that accounts can only be created if the associated identity has been cleared to transact (i.e. has passed both compliance and jurisdiction checks). - [Get Account Balances](https://docs.bastion.com/v2/api-reference/accounts/get-account-balances.md): Get base and token asset balances for a given account - [Get Account](https://docs.bastion.com/v2/api-reference/accounts/get-account.md): Get an account belonging to your organization - [List Supported Assets](https://docs.bastion.com/v2/api-reference/assets/list-supported-assets.md): Get all the supported assets. If chain is specified, assets supported only on that chain will be returned. - [List Virtual Accounts](https://docs.bastion.com/v2/api-reference/virtual-accounts/list-virtual-accounts.md): List virtual accounts for an identity - [Create Virtual Account](https://docs.bastion.com/v2/api-reference/virtual-accounts/create-virtual-account.md): Create a virtual account for an identity to receive fiat deposits and convert to crypto - [Conversions API overview](https://docs.bastion.com/v2/api-reference/conversions/overview.md): How on-ramp and off-ramp conversions behave over time: lifecycle states, quote binding, webhook events, terminal errors, and what COMPLETED means. - [Submit Conversion](https://docs.bastion.com/v2/api-reference/conversions/submit-conversion.md): Submit a conversion on behalf of an account - [Get Quote](https://docs.bastion.com/v2/api-reference/conversions/get-quote.md): Get an indicative quote for an off-ramp conversion. Wraps the upstream provider's quote API; stateless and not rate-locked. - [Get Conversion](https://docs.bastion.com/v2/api-reference/conversions/get-conversion.md): Get a previously submitted conversion using its ID - [Off-ramp payout countries and required fields](https://docs.bastion.com/v2/api-reference/conversions/off-ramp-payout-countries-and-required-fields.md): Per-country payout rails, bank details, bank lookups, recipient fields, and business-recipient support for Bastion off-ramps across 60+ jurisdictions. - [List Cryptocurrency Deposits](https://docs.bastion.com/v2/api-reference/cryptocurrency-deposits/list-cryptocurrency-deposits.md): Get cryptocurrency deposits for an account, sorted by recency in descending order. - [Get Cryptocurrency Deposit](https://docs.bastion.com/v2/api-reference/cryptocurrency-deposits/get-cryptocurrency-deposit.md): Get a specific cryptocurrency deposit by its ID. - [List Payment Instructions](https://docs.bastion.com/v2/api-reference/payment-instructions/list-payment-instructions.md): List payment instructions saved for a given identity - [Create Payment Instructions](https://docs.bastion.com/v2/api-reference/payment-instructions/create-payment-instructions.md): Create a payment instruction for a given identity - [Get Payment Instructions](https://docs.bastion.com/v2/api-reference/payment-instructions/get-payment-instructions.md): Get payment instructions by id - [List Cryptocurrency Transfers](https://docs.bastion.com/v2/api-reference/cryptocurrency-transfers/list-cryptocurrency-transfers.md): Get previously submitted cryptocurrency transfers, sorted by recency in descending order. - [Submit Cryptocurrency Transfer](https://docs.bastion.com/v2/api-reference/cryptocurrency-transfers/submit-cryptocurrency-transfer.md): Submit a cryptocurrency transfer on behalf of an account. Refer to the [supported assets](/v2/api-reference/assets/list-supported-assets) endpoint for a list of supported assets - [Get Cryptocurrency Transfer](https://docs.bastion.com/v2/api-reference/cryptocurrency-transfers/get-cryptocurrency-transfer.md): Get a cryptocurrency transfer using its ID. - [Compliance API overview](https://docs.bastion.com/v2/api-reference/compliance/overview.md): Submit KYC or KYB data to Bastion at the identity level, understand the sanctions and jurisdiction checks Bastion runs, and handle each possible outcome. - [Submit Compliance Data](https://docs.bastion.com/v2/api-reference/compliance/submit-compliance-data.md): Submit compliance data for an identity in your organization. Either KYB or KYC must be included in the request body. - [Update Compliance Data](https://docs.bastion.com/v2/api-reference/compliance/update-compliance-data.md): Update an identity's compliance data. Note that only certain KYC fields for individual identities are updatable at this time. - [Identity verification API overview](https://docs.bastion.com/v2/api-reference/identity-verification/overview.md): How Bastion signals when identity verification (IDV) is required for a KYC identity, and how to create an IDV check with a redirect URL for the customer. - [List Identity Verification Checks](https://docs.bastion.com/v2/api-reference/identity-verification/list-identity-verification-checks.md): List all identity verification checks for an identity. - [Create Identity Verification Check](https://docs.bastion.com/v2/api-reference/identity-verification/create-identity-verification-check.md): Create an identity verification check for an individual identity. - [Get Identity Verification Check](https://docs.bastion.com/v2/api-reference/identity-verification/get-identity-verification-check.md): Get an existing identity verification check by ID. - [Refresh Identity Verification Check URL](https://docs.bastion.com/v2/api-reference/identity-verification/refresh-identity-verification-check-url.md): Refresh the verification URL for an existing identity verification check. - [Identities API overview](https://docs.bastion.com/v2/api-reference/identities/overview.md): Bastion identities represent individuals and businesses that undergo compliance verification and can own multiple accounts, each with distinct wallet addresses. - [List Identities](https://docs.bastion.com/v2/api-reference/identities/list-identities.md): List Identities belonging to your application - [Create Identity](https://docs.bastion.com/v2/api-reference/identities/create-identity.md): Create an identity for your organization - [Get Identity](https://docs.bastion.com/v2/api-reference/identities/get-identity.md): Get an identity belonging to your organization - [List Signing Keys](https://docs.bastion.com/v2/api-reference/signing-keys/list-signing-keys.md): List the registered device signing keys for a given identity - [Register Signing Key](https://docs.bastion.com/v2/api-reference/signing-keys/register-signing-key.md): Register a device signing key for a given identity - [Delete Signing Key](https://docs.bastion.com/v2/api-reference/signing-keys/delete-signing-key.md): Delete a registered device signing key for a given identity - [Issuance API overview](https://docs.bastion.com/v2/api-reference/issuance/overview.md): Mint and redeem Bastion-issued stablecoins from an approved business identity: register mint destination addresses, create instructions, and burn tokens. - [Create Bank Account](https://docs.bastion.com/v2/api-reference/issuance/create-bank-account.md): Create a bank account for a given identity - [Get Bank Account](https://docs.bastion.com/v2/api-reference/issuance/get-bank-account.md): Get a bank account by ID - [List Bank Accounts](https://docs.bastion.com/v2/api-reference/issuance/list-bank-accounts.md): List all bank accounts for a given identity - [List Mint Destination Addresses](https://docs.bastion.com/v2/api-reference/issuance/list-mint-destination-addresses.md): List all mint destination addresses - [Create Mint Destination Address](https://docs.bastion.com/v2/api-reference/issuance/create-mint-destination-address.md): Create a mint destination address for a given identity - [Get Mint Destination Address](https://docs.bastion.com/v2/api-reference/issuance/get-mint-destination-address.md): Get a mint destination address using its ID - [List Mint Instructions](https://docs.bastion.com/v2/api-reference/issuance/list-mint-instructions.md): List mint instructions - [Create Mint Instructions](https://docs.bastion.com/v2/api-reference/issuance/create-mint-instructions.md): Create a mint instruction for a given identity - [Get Mint Instructions](https://docs.bastion.com/v2/api-reference/issuance/get-mint-instructions.md): Get a mint instruction using its ID - [List Mints](https://docs.bastion.com/v2/api-reference/issuance/list-mints.md): List mints - [Get Mint Request](https://docs.bastion.com/v2/api-reference/issuance/get-mint-request.md): Get a mint request using its ID - [List Redemption Instructions](https://docs.bastion.com/v2/api-reference/issuance/list-redemption-instructions.md): List all redemption instructions - [Create Redemption Instructions](https://docs.bastion.com/v2/api-reference/issuance/create-redemption-instructions.md): Create redemption instructions for a given identity - [Get Redemption Address](https://docs.bastion.com/v2/api-reference/issuance/get-redemption-address.md): Get a redemption address using its ID - [List Redemptions](https://docs.bastion.com/v2/api-reference/issuance/list-redemptions.md): List redemptions - [Get Redemption Request](https://docs.bastion.com/v2/api-reference/issuance/get-redemption-request.md): Get a redemption request using its ID - [Simulate Fiat Deposit](https://docs.bastion.com/v2/api-reference/simulation/simulate-fiat-deposit.md): Simulate a fiat deposit for testing purposes. Not available in production. - [Transaction limits API overview](https://docs.bastion.com/v2/api-reference/transaction-limits/overview.md): Configure per-transaction and weekly transaction limit policies for the Submit Cryptocurrency Transfer endpoint, with hard blocks or soft webhook alerts. - [List Transaction Limit Policies](https://docs.bastion.com/v2/api-reference/transaction-limits/list-transaction-limit-policies.md): List transaction limit policies for your organization - [Get Transaction Limit Policy](https://docs.bastion.com/v2/api-reference/transaction-limits/get-transaction-limit-policy.md): Get a transaction limit policy by ID - [List Webhooks](https://docs.bastion.com/v2/api-reference/webhooks/list-webhooks.md): List all webhooks - [Create Webhook](https://docs.bastion.com/v2/api-reference/webhooks/create-webhook.md): Create a new webhook - [Delete Webhook](https://docs.bastion.com/v2/api-reference/webhooks/delete-webhook.md): Delete a webhook by ID - [Rotate Webhook Signing Key](https://docs.bastion.com/v2/api-reference/webhooks/rotate-webhook-signing-key.md): Generate or rotate the HMAC signing secret for a webhook endpoint. If the webhook already has a key, the existing key is moved into a 'previous' slot and remains valid for the overlap window (24H) during which deliveries carry both signatures. The new secret is returned exactly once. - [Webhooks API overview](https://docs.bastion.com/v2/api-reference/webhooks/overview.md): Register a webhook endpoint to receive real-time Bastion events instead of polling, and manage endpoints via the Dashboard or the webhooks API. - [Verifying Bastion webhook signatures](https://docs.bastion.com/v2/api-reference/webhooks/verifying-bastion-webhooks.md): Verify Bastion webhook signatures: decode the whsign_ secret, parse the JWS JSON envelope, and validate the detached HMAC-SHA256 in Go, Node.js, or Python. - [Cryptocurrency transfer notifications](https://docs.bastion.com/v2/api-reference/webhooks/notifications/transfer-notifications.md): Reference for cryptocurrency transfer webhook payloads: intermediate and terminal statuses, destination types, deduplication, and recommended handler actions. - [Deposit notifications](https://docs.bastion.com/v2/api-reference/webhooks/notifications/deposit-notifications.md): Reference for deposit_v2 webhook payloads: on-chain versus internal ACCOUNT deposits, dedup_key idempotency, source and destination fields, and status. - [Compliance notifications (v2)](https://docs.bastion.com/v2/api-reference/webhooks/notifications/compliance-notifications-v2.md): Reference for identity_status_update webhooks: payload fields, status and sub_status transitions during onboarding, and post-onboarding lifecycle changes. - [Compliance notifications](https://docs.bastion.com/v2/api-reference/webhooks/notifications/compliance-notifications.md): Deprecated compliance_check_status_update and account_freeze_status_update webhook payloads. Retained for reference; migrate to Compliance Notifications v2. - [Conversion notifications](https://docs.bastion.com/v2/api-reference/webhooks/notifications/conversions-notifications.md): Webhook payload reference for conversion_notification_update events on every on-ramp and off-ramp status change, including fees, refunds, and quote IDs. - [Transaction limit notifications](https://docs.bastion.com/v2/api-reference/webhooks/notifications/transaction-limit-notifications.md): Reference for transaction_limit_policy_breached webhook payloads sent when a crypto transfer breaches a policy, including policy scope, window, and threshold. - [Product updates](https://docs.bastion.com/changelog.md): Release notes and announcements for the Bastion platform: API changes, new endpoints, webhook updates, deprecations, and migration guidance. ## OpenAPI Specs - [openapi](https://docs.bastion.com/v2/openapi.yaml)