Core Concepts
Understand the key entities and concepts in the Bultra platform before building your integration.
Accounts
Accounts are fundamental to the Bultra platform, serving as the core financial record for customers. Each account is backed by double-entry ledgers and belongs to a single customer while holding only one asset type (fiat or cryptocurrency).
Key Constraint: An account can only hold a single asset (e.g., ETH, USDC-ETH, BTC, USD). Customers may maintain multiple accounts per asset type.
Account Status Framework
Accounts operate under six distinct statuses, each with different permission levels:
| Status | Operational State | Read | Update | Transact |
|---|---|---|---|---|
| ACTIVE | Fully operational | Yes | Yes | Yes |
| PENDING | AML verification in progress | Yes | Yes | No |
| EDD | Enhanced due diligence required | Yes | Yes | Yes |
| FROZEN | Awaiting compliance review | Yes | Yes | No |
| DORMANT | Inactive 12+ months | Yes | Yes | Yes |
| CLOSED | Non-operational | Yes | No | No |
Important: Accounts with '_L2F' suffix (e.g., PENDING_L2F) require Bultra action and cannot be updated by account holders.
Account Types
Fiat Deposit Accounts
Operations available:
- Opening: Use the
accounts/depositsendpoint with fiat product type and asset ID - Account information: Retrieve via
accounts/deposits/{account_id}endpoint, including total and available balances - Transactions: Access historical activity through
accounts/deposits/{account_id}/transactionswith filtering options - Account listing: Query all accounts using
accounts/depositsendpoint
Crypto Deposit Accounts
Crypto accounts operate similarly to fiat accounts, supporting the same endpoint structure and operations. The same balance calculation methodology applies.
Balance Distinction: Available balance refers to the funds available to withdraw, exchange, or transfer—net of pending or authorized transactions.
GBP Accounts
New GBP account setup requires additional time due to UK Confirmation of Payee (COP) verification, which may extend to 48 hours before accounts appear in the central registry system.
Applications
Applications enable you to onboard customers onto the Bultra platform and open their first account. The application process is dynamic and supports both corporate and individual customers.
Application Types
- Corporate Customer Applications: For businesses, requiring company details, beneficial owners, officers, and authorized users
- Individual Customer Applications: For personal accounts, requiring identity verification and proof of address
- Update Applications: For adding information to already-onboarded customers (e.g., enabling new products)
Application Lifecycle
Applications progress through defined states: INCOMPLETE → READY_FOR_SUBMISSION → SUBMITTED → PROCESSING → APPROVED or REJECTED
Applications may enter CHANGES_REQUESTED state if additional information is needed.
Assets
Assets represent the currencies and tokens available on the Bultra platform. Each asset has a unique identifier and belongs to a specific network.
Fiat Assets
Government-issued currencies supported for deposits, withdrawals, and payments.
| Jurisdiction | Asset | Asset ID | Supported Payment Rails |
|---|---|---|---|
| US | USD | FIAT_MAINNET_USD |
FEDWIRE, ACH, SWIFT |
| EU | EUR | FIAT_MAINNET_EUR |
SEPA_CT |
| GB | GBP | FIAT_MAINNET_GBP |
FPS, CHAPS |
| IN | INR | FIAT_MAINNET_INR |
IMPS |
| MX | MXN | FIAT_MAINNET_MXN |
SPEI |
| AE | AED | FIAT_MAINNET_AED |
UAEFTS |
| HK | HKD | FIAT_MAINNET_HKD |
Coming soon |
| CO | COP | FIAT_MAINNET_COP |
Coming soon |
| AR | ARS | FIAT_MAINNET_ARS |
Coming soon |
| BR | BRL | FIAT_MAINNET_BRL |
Coming soon |
Digital Assets
Cryptocurrencies and blockchain-based tokens across supported networks.
| Blockchain | Asset | Asset ID |
|---|---|---|
| Bitcoin | BTC | BITCOIN_MAINNET_BTC |
| Ethereum | ETH | ETHEREUM_MAINNET_ETH |
| Ethereum | USDC | ETHEREUM_MAINNET_USDC |
| Ethereum | USDT | ETHEREUM_MAINNET_USDT |
| Polygon | MATIC | POLYGON_MAINNET_MATIC |
| Polygon | USDC | POLYGON_MAINNET_USDC |
| Polygon | USDT | POLYGON_MAINNET_USDT |
| Solana | SOL | SOLANA_MAINNET_SOL |
| Solana | USDC | SOLANA_MAINNET_USDC |
| Solana | USDT | SOLANA_MAINNET_USDT |
Supported Exchange Pairs
Available trading pairs for currency exchanges on the platform.
| Exchange Pair | Base Asset | Base Asset ID | Quote Asset | Quote Asset ID |
|---|---|---|---|---|
| BTC-USD | BTC (Bitcoin) | BITCOIN_MAINNET_BTC |
USD | FIAT_MAINNET_USD |
| ETH-USD | ETH (Ethereum) | ETHEREUM_MAINNET_ETH |
USD | FIAT_MAINNET_USD |
| ETH-EUR | ETH (Ethereum) | ETHEREUM_MAINNET_ETH |
EUR | FIAT_MAINNET_EUR |
| ETH-GBP | ETH (Ethereum) | ETHEREUM_MAINNET_ETH |
GBP | FIAT_MAINNET_GBP |
| USDC-USD | USDC (Ethereum) | ETHEREUM_MAINNET_USDC |
USD | FIAT_MAINNET_USD |
| USDC-EUR | USDC (Ethereum) | ETHEREUM_MAINNET_USDC |
EUR | FIAT_MAINNET_EUR |
| USDC-GBP | USDC (Ethereum) | ETHEREUM_MAINNET_USDC |
GBP | FIAT_MAINNET_GBP |
| USDT-USD | USDT (Ethereum) | ETHEREUM_MAINNET_USDT |
USD | FIAT_MAINNET_USD |
| SOL-USD | SOL (Solana) | SOLANA_MAINNET_SOL |
USD | FIAT_MAINNET_USD |
| MATIC-USD | MATIC (Polygon) | POLYGON_MAINNET_MATIC |
USD | FIAT_MAINNET_USD |
| USDC-USD | USDC (Polygon) | POLYGON_MAINNET_USDC |
USD | FIAT_MAINNET_USD |
| USDC-USD | USDC (Solana) | SOLANA_MAINNET_USDC |
USD | FIAT_MAINNET_USD |
App Assets
Use testnet asset IDs for development and testing.
| Type | Asset | Asset ID |
|---|---|---|
| Fiat | USD | FIAT_TESTNET_USD |
| Crypto | BTC | BITCOIN_TESTNET_BTC |
| Crypto | ETH | ETHEREUM_TESTNET_ETH |
Counterparties
A counterparty represents an entity that is external to the Bultra ecosystem. Counterparties facilitate deposits and withdrawals by serving as either the destination for funds (withdrawals) or the source (deposits).
Key Characteristics
- Each counterparty is linked to a specific customer and cannot be shared across customers
- All newly created counterparties undergo mandatory AML screening before becoming transactional
- Subject to enhanced transaction screenings and potential Requests for Information (RFIs)
Counterparty Types
| Type | Description | Supported Rails |
|---|---|---|
FIAT_US |
US-based entities | ACH, Fedwire |
FIAT_GB |
Great Britain entities | FPS, BACS, CHAPS |
FIAT_IN |
India-based entities | IMPS, NEFT, RTGS |
CRYPTO |
Blockchain-based entities | On-chain transfers |
Profile Type
The profile_type field designates whether the counterparty is an Individual or Corporation. This affects validation requirements and available transaction types.
Customers
Customers are the account holders on the Bultra platform. They cannot be created directly through the API—instead, they are onboarded through the application process.
Customer Types
- Businesses: Corporate entities with KYB requirements
- Accredited Investors: Qualified individuals with enhanced capabilities
- Individuals: Personal accounts with KYC requirements
Customer-Account Relationship
Each customer has one or more associated accounts, created during the onboarding process. A customer can hold multiple accounts in different currencies or asset types.
Retrieving Customer Information
- Single customer:
customers/{customer_id}endpoint for specific customer details - Multiple customers:
customersendpoint with optional filters liketypeandstatus
Documents
Documents are files uploaded to support applications, payments, withdrawals, and other operations that require verification.
Document Types
- Identity Documents: Passports, ID cards, driver's licenses
- Proof of Address: Utility bills, bank statements
- Corporate Documents: Incorporation certificates, shareholder registers
- Transaction Documentation: Invoices, contracts (for RFI responses)
Document Lifecycle
- Document ID is generated when required (e.g., during application or RFI)
- Client uploads file using the Upload Document API with the document ID
- Bultra reviews and either approves or requests re-upload
- Approved documents unlock the associated process (application approval, payment processing, etc.)
Requests for Information (RFIs): All RFIs must be satisfied. Persistent non-compliance could result in processing delays, rejection, or potential offboarding.