Advanced Features
Coming Soon: Credit Cards 💳
Note:
Preview: The Accounts API will soon enable credit card issuance backed by Bakkt accounts. Stay tuned!
Warning:
Merchant-Gated Feature: Card issuance is not part of the default Accounts API surface. Once released, access to the card endpoints will depend on your contractual agreement with Bakkt and will need to be explicitly enabled for your merchant account. Reach out to your Bakkt account manager to confirm whether the card program is included in your agreement.
Future Endpoints (In Development)
// Issue virtual or physical card
POST /user/card
{
"linked_account_uuid": "bakkt-account-uuid",
"card_type": "VIRTUAL",
"spending_limit": 5000,
"currency": "USD"
}
// Get card details
GET /user/card/{card_uuid}
// View card transactions
GET /user/card/{card_uuid}/transactions
// Freeze/unfreeze card
PATCH /user/card/{card_uuid}/statusUse Cases:
- Virtual cards for online shopping
- Physical cards for everyday spending
- Employee expense cards backed by company accounts
Coming Soon: High-Yield Savings Accounts 💰
Note:
Preview: The Accounts API will soon enable high-yield savings accounts with competitive interest rates. Earn passive income on USD balances!
Warning:
Merchant-Gated Feature: High-yield savings accounts are not enabled for every merchant by default. Availability of these endpoints depends on your agreement with Bakkt and the savings program must be activated for your merchant account before it can be used. Contact your Bakkt account manager to confirm whether savings accounts are part of your contract.
Future Endpoints (In Development)
// Create savings account
POST /user/savings-account
{
"linked_account_uuid": "bakkt-account-uuid",
"currency": "USD",
"initial_deposit": 1000
}
// Get account details and accrued interest
GET /user/savings-account/{account_uuid}
// View transaction history
GET /user/savings-account/{account_uuid}/transactions
// View interest payment history
GET /user/savings-account/{account_uuid}/interest-historyKey Features:
- Interest Rate: Up to 3.08% APY on USD deposits
- Note: Rates are merchant-specific and defined in your contractual relationship
- Eligibility: USD only, available exclusively to US residents
- Account Opening: Same simple process as standard Bakkt account creation
- No Hidden Fees: Transparent pricing with no account maintenance fees
Use Cases:
- Emergency fund savings with competitive returns
- Short-term and long-term savings goals
- Cash reserves earning passive income
- High-yield alternative to traditional checking accounts
Sandbox Testing
Simulate Deposits
Test money IN flows without real bank transfers:
POST /user/account/bakkt/payin/ach/simulate
{
"user_uuid": "<USER_UUID>",
"amount": 1000,
"currency": "USD"
}Instantly credits €1000 (or account currency) to the Bakkt account.
Test Recipient Creation
In Sandbox, any valid-format bank details work for supported currencies:
- EUR: Use any valid IBAN
- GBP: Use account "12345678", sort code "123456"
- USD: Use any valid routing number + account number
- NGN: Use any valid account number + bank code
Transactions complete instantly for testing (no real banking delays).
Best Practices
Account Setup
- Create accounts in currencies you'll operate in
-
Display account details clearly (IBAN, routing, etc.)
-
Implement balance tracking
-
Generate statements regularly for accounting
-
Recipient Management
- Validate bank details before saving (use
/banks/endpoint)-
Save recipients for recurring payments
-
Support all account currencies: EUR, GBP, USD, NGN
-
Double-check account numbers (typos cause payment failures)
-
Account Operations
- Show exchange rates between supported currencies
-
Display account balances (coming soon)
-
Track transaction history
-
Generate statements for accounting
-
Implement webhooks for real-time updates
-
Compliance
- KYC required for all payment operations
- Enhanced KYC for high-value transactions
- Monitor AML hold status
- Maintain transaction records for auditing
Webhooks
Subscribe to payment events:
bank_account.created- Account createdbank_account.credited- Deposit receivedbank_account.debited- Payment sentpayment.initiated- Outbound payment startedpayment.completed- Payment settledpayment.failed- Payment failedbeneficiary.created- New recipient added
Compliance & Limits
Warning:
KYC Required: Users must complete KYC before making payments. International transfers require enhanced verification.
Transaction Limits
| User Status | Can Transact? | Limits |
|---|---|---|
FULL_USER | ✅ Yes | Unlimited |
Not FULL_USER | ❌ No | KYC required before any transactions |
Info:
KYC is mandatory: Users must reachFULL_USERstatus (complete KYC verification) before they can make any payments or transfers. There are no transaction limits for verified users.
Holds & Review
Transactions may be held for:
- First-time recipient (15-30 min review)
- Large amounts (manual review)
- AML screening triggers
- Unusual patterns
Status: ON_HOLD_REVIEW - typically resolved within 1-24 hours
API Summary
Total Endpoints: 11 (Bank accounts, statements, ACH pull)
Capabilities:
- ✅ Create checking and savings accounts (USD)
- ✅ Custody fiat funds
- ✅ Accept deposits (bank transfer, ACH pull via Plaid)
- ✅ View transaction history
- ✅ Generate account statements
- ✅ Send to recipients
- 🔜 High-yield savings accounts (coming soon!)
- 🔜 Issue credit cards (coming soon!)
Info:
Per-Merchant Availability: Some capabilities listed above — including savings accounts and card issuance — are gated by your contractual agreement with Bakkt. They are not automatically available to every merchant, and must be enabled for your account before the related endpoints can be used. If an endpoint returns403/404and you believe it should be available, please contact your Bakkt account manager.
Next Steps
Bank Accounts
Create checking and savings accounts and manage fiat custody
Payments & Transfers
Manage recipients and money movement
View Full API Reference
Explore all endpoints with interactive examples