Skip to main content

API Endpoints Overview

This document provides the complete list of API endpoints based on the actual implementation. All endpoints are relative to your custom base URL.

Authentication​

Get OAuth Token​

POST /o/token/

Get access token using client credentials. This is a public endpoint (no authentication required).

Request Body:

  • grant_type: "client_credentials"
  • client_id: Your client ID
  • client_secret: Your client secret
  • scope: "read write" or "read write admin"

List OAuth Applications​

GET /o/apps/

List all OAuth applications. Scopes: read, write

Create OAuth Application​

POST /o/apps/

Create a new OAuth application. Scopes: read, write

Delete OAuth Application​

DELETE /o/apps/{id}/

Delete an OAuth application. Scopes: read, write


Currencies & Rates​

Get Available Currencies​

GET /currencies/

Get list of currencies available for deposits or withdrawals. Scopes: read, write

Query Parameters:

  • full (boolean): Return full currency details (default: false)
  • min_max (boolean): Include min/max limits (default: false)
  • include_usd (boolean): Include USD equivalent values (requires min_max=true)
  • withdrawal (boolean): Get withdrawal currencies instead of deposit (default: false)

Response (simple):

{
"currencies": ["USDTTRC20", "USDTARB", "BTC", "ETH"]
}

Response (full with min_max and include_usd):

{
"currencies": [
{
"currency": "USDTTRC20",
"name": "Tether USD",
"token": "usdt",
"blockchain": "trx",
"is_popular": true,
"is_stable": true,
"min_amount": "10.00000000",
"max_amount": "100000.00000000",
"min_amount_usd": "10.00",
"max_amount_usd": "100000.00"
}
]
}

Get Exchange Rate​

GET /rates/

Get exchange rate between currencies. Scopes: read

Query Parameters:

  • amount: Amount to convert (default: 1.0)
  • currency_from: Source currency code (default: USD)
  • currency_to: Target currency code (required)
  • fee_percentage: Custom fee percentage (optional)
  • is_fee_paid_by_user: Whether fee is deducted from received amount (optional)
  • full: Return detailed info with fees and timestamp (default: false)

Response (simple):

{
"currency_from": "USD",
"currency_to": "USDTTRC20",
"amount": 100.0,
"estimated_amount": 99.9,
"rate": 0.999
}

Response (with full=true):

{
"currency_from": "USD",
"currency_to": "USDTTRC20",
"amount": 100.0,
"estimated_amount": 99.0,
"rate": 0.999,
"fee_percentage": 1.0,
"fee_amount": 1.0,
"timestamp": "2024-12-27T10:00:00Z"
}

Payments​

All payment endpoints require scopes: read, write.

Create Payment​

POST /payments/

Create a new cryptocurrency payment.

Request Body:

{
"amount": 100.00,
"currency": "USDTTRC20",
"price_currency": "USD",
"callback_url": "https://your-site.com/webhook",
"order_id": "order_123",
"order_description": "Payment for order 123",
"is_fixed_rate": true,
"is_fee_paid_by_user": false,
"customer_email": "[email protected]",
"wallet_id": "wallet_abc123",
"expiry_minutes": 30
}

List Payments​

GET /payments/

List all payments with offset-based pagination.

Query Parameters:

  • limit: Max results (1-100, default: 20)
  • offset: Pagination offset (default: 0)
  • status: Filter by status
  • currency: Filter by currency code
  • blockchain: Filter by blockchain
  • token: Filter by token

Check Payment Status​

POST /payments/status/

Check payment status by transaction ID.

Request Body:

{
"transaction_id": "123e4567-e89b-12d3-a456-426614174000"
}

Get Minimum Amount​

GET /payments/min-amount/

Get minimum and maximum payment amount for a currency.

Query Parameters:

  • currency: Cryptocurrency code (e.g., "USDTTRC20") — required

Response:

{
"currency": "USDTTRC20",
"min_amount": 10.0,
"max_amount": 100000.0,
"blockchain": "TRX",
"token": "USDT"
}

Withdrawals​

All withdrawal endpoints require scopes: read, write.

Create Withdrawal​

POST /withdrawal/

Create a new withdrawal request. Supports two currency formats and two amount formats.

Request Body (Option 1 — crypto amount with currency code):

{
"amount": 50.00,
"currency": "USDTTRC20",
"address": "TXYZabc123...",
"callback_url": "https://your-site.com/webhook"
}

Request Body (Option 2 — fiat amount with blockchain/token):

{
"price_amount": 50.00,
"price_currency": "USD",
"blockchain": "TRX",
"token": "USDT",
"address": "TXYZabc123...",
"callback_url": "https://your-site.com/webhook"
}

List Withdrawals​

GET /withdrawal/

List withdrawals with filtering and pagination.

Query Parameters:

  • status, blockchain, token, custom_id: Filters
  • start_date, end_date: Date range filters
  • limit, offset: Pagination
  • sort: Sort order

Get Withdrawal Details​

GET /withdrawal/{withdrawal_id}/

Get detailed information about a specific withdrawal.

Check Withdrawal Status​

POST /withdrawal/status/

Check withdrawal status by ID.

Request Body:

{
"withdrawal_id": "123e4567-e89b-12d3-a456-426614174000"
}

Validate Address​

POST /withdrawal/validate-address/

Validate a cryptocurrency address. Requires at least one of: currency, blockchain, or type.

Request Body:

{
"address": "0x1234567890abcdef...",
"currency": "USDTARB"
}

Estimate Withdrawal Fee​

POST /withdrawal/fee-estimate/

Estimate the network fee for a withdrawal.

Request Body:

{
"amount": 100.00,
"currency": "USDTTRC20",
"address": "TXYZabc123..."
}

Estimate Withdrawal​

POST /withdrawal/estimate/

Full withdrawal simulation showing all amounts and fee breakdown.

Request Body:

{
"amount": 100.00,
"currency": "USDTTRC20",
"final_amount": false
}

Response:

{
"requested_amount": "100.00000000",
"fee": "1.50000000",
"amount": "98.50000000",
"currency": "USDTTRC20",
"blockchain": "TRX",
"token": "USDT",
"platform_fee": "1.00000000",
"network_fee": "0.50000000"
}

Get Minimum Withdrawal Amount​

POST /withdrawal/min-amount/

Get minimum withdrawal amount for a currency.

Request Body:

{
"currency": "USDTTRC20"
}

Get Available Withdrawal Currencies​

GET /withdrawal/available-currencies/

Get list of currencies available for withdrawal (with positive balance).


Balances​

Get All Balances​

GET /user/balances/

Get aggregated balances for main account and all sub-accounts. Scopes: read, write

Response:

{
"account": {
"USDTTRC20": {
"amount": "1000.00000000",
"pending_amount": "0.00000000"
}
},
"sub_accounts": {
"USDTTRC20": {
"total_amount": "500.00000000",
"total_pending": "0.00000000",
"accounts": [
{
"account_name": "Wallet 1",
"account_id": "123abc",
"amount": "300.00000000",
"pending_amount": "0.00000000",
"available_balance": "300.00000000"
}
]
}
},
"statistics": {
"currencies_count": 5,
"subaccounts_count": 3
}
}

Get Balance History​

GET /user/balances/history/

Get transaction history for balances. Scopes: read

Query Parameters:

  • currency: Filter by currency code
  • type: Filter by transaction type
  • limit: Max results (default: 50)
  • offset: Pagination offset

Wallets (Sub-accounts)​

All wallet endpoints require scopes: read, write.

List Wallets​

GET /wallets/

List all wallets/sub-accounts.

Response:

{
"accounts": [
{
"id": 1,
"name": "My Wallet",
"external_id": "ext_123",
"wallet_id": "w_abc123",
"created": "2024-12-01T10:00:00Z",
"updated": "2024-12-27T10:00:00Z",
"balances": [
{
"currency": "USDTTRC20",
"amount": "500.00000000",
"pending_amount": "0.00000000",
"available_balance": "500.00000000"
}
]
}
],
"total": 1
}

Create Wallet​

POST /wallets/

Create a new wallet/sub-account.

Request Body:

{
"name": "My Wallet",
"external_id": "ext_123"
}

Get Wallet Details​

GET /wallets/{id}/

Get specific wallet details with balances.

Get Wallet Balances​

POST /wallets/balances/

Get wallet balances by wallet_id or external_id.

Request Body:

{
"wallet_id": "w_abc123"
}

Transfer to Sub-account (Async)​

POST /wallets/transfer-to-user/

Transfer funds from master to sub-account. Returns HTTP 202 Accepted.

Request Body:

{
"wallet_id": "w_abc123",
"currency": "USDTTRC20",
"amount": "100.00000000",
"callback_url": "https://your-site.com/webhook"
}

Response (202):

{
"status": "accepted",
"transfer_id": "t_abc123",
"message": "Transfer request accepted and is being processed"
}

Withdraw to Master Account (Async)​

POST /wallets/withdraw-to-master/

Transfer funds from sub-account to master. Returns HTTP 202 Accepted.

Request Body:

{
"wallet_id": "w_abc123",
"currency": "USDTTRC20",
"amount": "100.00000000",
"callback_url": "https://your-site.com/webhook"
}

Transfer History​

POST /wallets/transfer-history/

Get transfer history for a specific wallet.

Request Body:

{
"wallet_id": "w_abc123",
"status": "completed",
"transfer_type": "to_sub",
"currency": "USDTTRC20",
"limit": 20,
"offset": 0
}

User Information​

Get Tenant Info​

GET /user/me/

Get current tenant information. Scopes: read, write

Response:

{
"name": "Your Company",
"transaction_fee": 1.0,
"is_fee_paid_by_user": false,
"webhook_callback_url": "https://your-site.com/webhook",
"webhook_secret_masked": "sec_****fgh"
}

Configure Webhooks​

POST /user/webhooks/

Configure webhook settings. Scopes: write

Request Body:

{
"callback_url": "https://your-site.com/webhook"
}

Response (first time — save the secret!):

{
"callback_url": "https://your-site.com/webhook",
"secret": "sec_1234567890abcdef",
"message": "Webhook settings created successfully. Please save your secret - it will not be shown again."
}

Get Platform Fees (Admin Only)​

GET /user/fees/

Get platform fee balances. Scopes: admin

API Status​

GET /status/

Check if API is operational.

Response:

{
"status": "ok"
}