Stablecoin API Overview
Prerequisites
Before using the Stablecoin API, users must be set up through the Onboarding API:
1. User/Corporate Creation
Create via Onboarding API:
- Users:
POST /user- See Onboarding API - Corporates:
POST /corporate- See Onboarding API
Target Address Setup:
During user creation, you must set the target_address field:
POST /user
{
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]",
"country": "US",
"target_address": "0xABC...123", // DEFAULT wallet for on-ramp conversions
"target_solana_address": "3KWx..." // Optional: for Solana support
}Note: Target Address: This is the user's EXTERNAL wallet (MetaMask, Coinbase, hardware wallet, etc.) where on-ramp conversions will be sent by default. This is different from Bakkt custody addresses.
2. KYC/KYB Verification
Users and corporates must complete verification before using On/Off Ramp:
| Entity Type | Required Status | Verification |
|---|---|---|
| Users | FULL_USER | Complete KYC via Sumsub |
| Corporates | ACTIVE | Complete KYB verification |
Warning: No Partial Access: Users cannot use On/Off Ramp until fully verified. Access is binary: either full access (unlimited) or no access.
3. Authentication
Different endpoints have different auth requirements:
| Operation | Auth Required | Headers |
|---|---|---|
| GET endpoints | API Key + User UUID | Authorization, user-uuid |
| POST/PUT/PATCH | Session ID | Authorization, bakkt-session-id |
Key Features
The Stablecoin API enables bi-directional stablecoin-to-fiat conversions.
| Feature | What it does | Guide |
|---|---|---|
| On-Ramp (Fiat → Stable) | Link a stablecoin fiat account to a wallet. Deposit fiat, automatically receive stablecoin. | On-Ramp |
| Off-Ramp (Stable → Fiat) | Send stablecoins to receive fiat — first party (own account) or third party (any bank account). | Off-Ramp |
| Custody Wallets | Hold stablecoins without auto-conversion. The user controls when to convert. | Custody |
| Single-Use Wallets | Corporate-only: a unique wallet per invoice with auto-offramp to the main remote bank account. | Single-Use Wallets |
Getting Started
| Guide | Use it to |
|---|---|
| Quick Start | Make your first Stablecoin API call in minutes with sample API keys. |
| Sandbox Setup | Set up environments, API keys, and authentication. |
Reference
| Guide | Covers |
|---|---|
| Supported Assets | Chains, tokens, and currencies |
| Integration | Webhooks, monitoring, and fees |
| Webhooks | Real-time event notifications for transactions and bank accounts |
| Managing Fees and Commissions | Merchant fees, minimum fees, and fee subsidies |
| On-Ramping USD via ACH Pulls (Plaid) | Plaid-based ACH pull integration for USD on-ramp |
| Remittance: Global Payouts | Payouts to recipients in local fiat currencies worldwide |
| Solana Integration | Solana-specific considerations for on-ramp and off-ramp |
| Allowed Post Codes Formats | Post code validation formats by country |
| Minimum and Maximum Transaction Values | Fiat and stablecoin transaction limits by currency and network |
| Infrastructure Addresses | Public registry of wallets and smart contracts |
Updated 19 days ago
Did this page help you?
