- Customer external accounts - Scoped to individual customers, used for withdrawals and customer-specific payouts
- Platform external accounts - Scoped to your platform, used for platform-wide operations like receiving funds from external sources
Customer external accounts often require some basic beneficiary information for compliance.
Platform accounts are managed at the organization level.
Create external accounts by region or wallet
- United States
- Mexico
- Brazil
- Europe
- India
- Cryptocurrency
ACH, Wire, RTP
cURL
Category must be
CHECKING
or SAVINGS
. Routing number must be 9 digits.Use
platformAccountId
to tie your internal id with the external account.Business beneficiaries
For business accounts, include business information:Account status
Beneficiary data may be reviewed for risk and compliance. OnlyACTIVE
accounts can receive payments. Updates to account data may trigger account re-review.
Status | Description |
---|---|
PENDING | Created, awaiting verification |
ACTIVE | Verified and ready for transactions |
UNDER_REVIEW | Additional review required |
INACTIVE | Disabled, cannot be used |
Listing external accounts
List customer accounts
List platform accounts
For platform-wide operations, list all platform-level external accounts:Platform external accounts are used for platform-wide operations like
depositing funds from external sources.
Best practices
Validate account information
Validate account information
Validate account details before submission:
Check account status
Check account status
Verify status before sending payments:
Secure account data
Secure account data
Never expose full account numbers. Display only masked info:
Using external accounts for ramps
External accounts serve as destinations for ramp conversions:For on-ramps (Fiat → Crypto)
External accounts represent crypto wallet destinations:- Spark wallets: Lightning Network wallets for instant Bitcoin delivery
- Self-custody: User-controlled wallets for full ownership
- No beneficiary required: Crypto wallets don’t need compliance information
Spark wallets are the recommended destination for on-ramps due to instant
settlement and minimal fees.
For off-ramps (Crypto → Fiat)
External accounts represent bank account destinations:- Traditional bank accounts: ACH, wire, SEPA, CLABE, PIX, UPI, etc.
- Beneficiary required: Full compliance information needed for fiat destinations
- Multiple currencies: Support for USD, EUR, MXN, BRL, INR, and more
Off-ramp destinations require complete beneficiary information for compliance.
Ensure all required fields are provided.
Crypto wallet destinations
Spark wallet addresses
The primary destination type for on-ramps:Spark wallet external accounts are immediately
ACTIVE
and ready for on-ramp
conversions.Validate Spark addresses
Before creating external accounts, validate Spark wallet addresses:Spark addresses are case-insensitive and follow the bech32 format starting
with
spark1
.Bank account destinations
For off-ramp flows, create external bank accounts with full beneficiary information:Example: US bank account for off-ramp
Creating accounts inline with quotes
For one-time conversions, create external accounts inline usingexternalAccountDetails
:
Use
externalAccountDetails
for one-time destinations. The external account
will be automatically created and can be reused for future quotes using its
returned ID.Listing external accounts
List customer external accounts
Filter by currency
Filter by account type
Account status and verification
External accounts move through verification states:Status | Description | Can Use for Conversions |
---|---|---|
PENDING | Verification in progress | ❌ |
ACTIVE | Verified and ready | ✅ |
FAILED | Verification failed | ❌ |
DISABLED | Manually disabled | ❌ |
Spark wallet accounts are immediately
ACTIVE
. Bank accounts may require
verification (typically instant to a few hours).Best practices for ramps
Validate addresses before creation
Validate addresses before creation
Always validate wallet addresses and bank account details before creating external accounts:
Use platform account IDs for tracking
Use platform account IDs for tracking
Map external accounts to your internal system using
platformAccountId
:Handle multiple destinations per customer
Handle multiple destinations per customer
Support multiple wallets or bank accounts for flexibility:
Implement address verification for crypto
Implement address verification for crypto
For crypto destinations, implement additional verification:
Ramp-specific considerations
On-ramp destinations
- Instant delivery: Spark wallets receive Bitcoin within seconds
- No KYC required: Self-custody wallets don’t need beneficiary info
- Reusable addresses: Store and reuse Spark addresses for multiple conversions
- No minimum: Send any amount supported by Lightning Network
Off-ramp destinations
- Full compliance: Bank accounts require complete beneficiary information
- Verification delays: Bank account verification may take a few hours
- Settlement times: Vary by destination (instant for RTP/PIX, 1-3 days for ACH)
- Amount limits: Check minimum and maximum amounts per destination currency
Always verify account details before initiating large off-ramp conversions.
Test with small amounts first.
Next steps
- Plaid Integration - Connect bank accounts via Plaid
- Fiat-to-Crypto Conversion - Build conversion flows
- Self-Custody Wallets - Advanced wallet integration
- Webhooks - Handle account status updates
Related resources
- Platform Configuration - Configure supported account types
- Sandbox Testing - Test with mock accounts
- API Reference - Complete API documentation