Bultra API Reference
Complete API reference for integrating with the Bultra platform. Build payment solutions with our RESTful API.
Introduction
The Bultra API is organized around REST principles. Our API accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
Base URL
All API requests should be made to the following base URLs:
https://api.bultra.com/v1
https://app.bultra.com/v1
Authentication
The Bultra API uses OAuth 2.0 with the client credentials grant type. Include your access token in the Authorization header:
Authorization: Bearer YOUR_ACCESS_TOKEN
Obtaining an Access Token
POST /oauth2/token HTTP/1.1
Host: auth.bultra.com
Authorization: Basic {base64(client_id:client_secret)}
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&scope=accounts:read accounts:write
Request Format
All requests must include the following headers:
| Header | Required | Description |
|---|---|---|
Authorization |
Yes | Bearer token for authentication |
Content-Type |
Yes | Must be application/json |
x-bultra-idempotency-id |
No | UUID for idempotent requests |
Response Format
All responses are returned in JSON format. Successful responses include the requested data, while error responses include an error object with details.
Success Response
{
"id": "acc_123456789",
"type": "deposit",
"currency": "USD",
"balance": {
"available": "10000.00",
"total": "10500.00"
},
"status": "ACTIVE",
"created_at": "2026-01-15T10:30:00Z"
}
Error Response
{
"error": {
"code": "INVALID_REQUEST",
"message": "The request body is missing required fields",
"details": [
{
"field": "amount",
"message": "Amount is required"
}
]
}
}
HTTP Status Codes
| Code | Description |
|---|---|
| 200 | OK - Request succeeded |
| 201 | Created - Resource created successfully |
| 400 | Bad Request - Invalid request parameters |
| 401 | Unauthorized - Invalid or missing authentication |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Resource does not exist |
| 422 | Unprocessable Entity - Validation error |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error - Server error |
Pagination
List endpoints support pagination using cursor-based pagination:
| Parameter | Type | Description |
|---|---|---|
limit |
integer | Number of records to return (default: 20, max: 100) |
cursor |
string | Cursor for pagination |
Rate Limiting
API requests are rate limited to ensure fair usage. Current limits:
- Production: 1000 requests per minute
- App: 100 requests per minute
Rate limit information is included in response headers:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1704067200
API Endpoints
Explore the available API endpoints:
Applications
Customer onboarding and KYC management
Accounts
Account creation and management
Customers
Customer data and profiles
Counterparties
External entity management
Deposits
Deposit processing
Withdrawals
Withdrawal operations
Transfers
Internal fund transfers
Exchanges
Currency exchange operations
Payments
Payment orchestration
Transactions
Transaction history and reporting
Documents
Document upload and management
Subscriptions
Webhook management