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:

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 TypeRequired StatusVerification
UsersFULL_USERComplete KYC via Sumsub
CorporatesACTIVEComplete 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:

OperationAuth RequiredHeaders
GET endpointsAPI Key + User UUIDAuthorization, user-uuid
POST/PUT/PATCHSession IDAuthorization, bakkt-session-id

Overview

The Stablecoin API enables bi-directional stablecoin to fiat conversions:

  • On-Ramp: Fiat → Stablecoin (link stablecoin fiat account to user's wallet)
  • Off-Ramp: Stablecoin → Fiat (1st party to user's own stablecoin fiat account, or 3rd party to any bank)
  • Single-Use: One-time wallets for corporate batch processing
  • Custody: Hold stablecoins without automatic conversion

Key Features

On-Ramp (Fiat → Stable)

Link stablecoin fiat account to wallet. Deposit fiat, automatically receive stablecoin.

Off-Ramp (Stable → Fiat)

Send stablecoins to receive fiat. First party (own stablecoin fiat account) or third party (any bank account).

Single-Use Wallets

Corporate-only: Generate unique wallets per invoice with auto-offramp to main remote bank account.

Custody Wallets

Hold stablecoins without auto-conversion. User controls when to convert.

Getting Started

Quick Start Guide

Make your first Stablecoin API call in minutes with sample API keys.

Go to Quick Start

Sandbox Setup

Environment setup, API keys, and authentication details.

Go to Sandbox Setup

Feature Guides

Explore detailed guides for each major feature:

On-Ramp

Fiat to stablecoin conversions

Go to On-Ramp Guide

Off-Ramp

Stablecoin to fiat conversions

Go to Off-Ramp Guide

Custody Wallets

Hold stablecoins securely

Go to Custody Guide

Single-Use Wallets

Corporate invoice tracking (whitelisted only)

Go to Single-Use Wallets Guide

Reference

Technical reference and integration resources:

Supported Assets

Chains, tokens, and currencies

Go to Supported Assets

Integration

Webhooks, monitoring, and fees

Go to Integration Guide

Webhooks

Real-time event notifications for transactions and bank accounts

Go to Webhooks Guide

Managing Fees and Commissions

Configure merchant fees, minimum fees, and fee subsidies

Go to Fees Guide

On-Ramping USD via ACH Pulls (Plaid)

Plaid-based ACH pull integration for USD on-ramp

Go to ACH / Plaid Guide

Remittance: Global Payouts

Send payouts to recipients in local fiat currencies worldwide

Go to Remittance Guide

Solana Integration

Solana-specific considerations for on-ramp and off-ramp

Go to Solana Guide

Allowed Post Codes Formats

Post code validation formats by country

Go to Post Codes Reference

Minimum and Maximum Transaction Values

Fiat and stablecoin transaction limits by currency and network

Go to Transaction Values

Infrastructure Addresses

Public registry of wallets and smart contracts

Go to Infrastructure Addresses