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": "customer@example.com",
"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"
}