bitcain docs
API Reference

Financial transactions

Financial transaction tracking and AML monitoring - query transactions, view suspicious activity (requires admin/compliance role)

List financial transactions with filtering and pagination

GET
/api/financial-transactions

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Query Parameters

user_id?|

Filter by user ID (UUID)

transaction_type?|

Filter by transaction type (trade, deposit, withdrawal)

aml_status?|

Filter by AML status (pending, cleared, flagged)

sanction_check_status?|

Filter by sanction check status

is_suspicious?|

Filter by suspicious flag

transaction_status?|

Filter by transaction status (pending, confirmed, failed, cancelled)

exchange?|

Filter by exchange name

symbol?|

Filter by trading symbol

min_amount?||

Minimum transaction amount

max_amount?||

Maximum transaction amount

min_risk_score?||

Minimum risk score

start_date?|

Filter by start date (ISO 8601)

end_date?|

Filter by end date (ISO 8601)

limit?integer

Maximum number of results

Default100
Range1 <= value <= 1000
offset?integer

Number of results to skip

Default0
Range0 <= value

Response Body

application/json

application/json

curl -X GET "https://loading/api/financial-transactions"
{
  "transactions": [
    {
      "id": "string",
      "user_id": "string",
      "transaction_type": "string",
      "external_transaction_id": "string",
      "reference_number": "string",
      "symbol": "string",
      "base_currency": "string",
      "quote_currency": "string",
      "amount": "string",
      "price": "string",
      "total_value": "string",
      "fee_amount": "string",
      "fee_currency": "string",
      "fee_type": "string",
      "exchange_fee": "string",
      "network_fee": "string",
      "exchange": "string",
      "wallet_address": "string",
      "transaction_hash": "string",
      "block_number": 0,
      "confirmations": 0,
      "counterparty_id": "string",
      "counterparty_name": "string",
      "counterparty_type": "string",
      "aml_status": "string",
      "sanction_check_status": "string",
      "risk_score": "string",
      "is_suspicious": true,
      "reporting_currency": "string",
      "reporting_value": "string",
      "tax_jurisdiction": "string",
      "is_taxable": true,
      "originating_country": "string",
      "receiving_country": "string",
      "status": "string",
      "initiated_at": "string",
      "confirmed_at": "string",
      "completed_at": "string",
      "created_at": "string",
      "updated_at": "string",
      "audit_metadata": {}
    }
  ],
  "total": 0,
  "limit": 0,
  "offset": 0
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

List suspicious/flagged financial transactions

GET
/api/financial-transactions/suspicious

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Query Parameters

aml_status?|

Filter by AML status (flagged recommended)

min_risk_score?||

Minimum risk score (default: 0.7)

Default0.7
start_date?|

Filter by start date (ISO 8601)

end_date?|

Filter by end date (ISO 8601)

limit?integer

Maximum number of results

Default100
Range1 <= value <= 1000
offset?integer

Number of results to skip

Default0
Range0 <= value

Response Body

application/json

application/json

curl -X GET "https://loading/api/financial-transactions/suspicious"
{
  "transactions": [
    {
      "id": "string",
      "user_id": "string",
      "transaction_type": "string",
      "external_transaction_id": "string",
      "reference_number": "string",
      "symbol": "string",
      "base_currency": "string",
      "quote_currency": "string",
      "amount": "string",
      "price": "string",
      "total_value": "string",
      "fee_amount": "string",
      "fee_currency": "string",
      "fee_type": "string",
      "exchange_fee": "string",
      "network_fee": "string",
      "exchange": "string",
      "wallet_address": "string",
      "transaction_hash": "string",
      "block_number": 0,
      "confirmations": 0,
      "counterparty_id": "string",
      "counterparty_name": "string",
      "counterparty_type": "string",
      "aml_status": "string",
      "sanction_check_status": "string",
      "risk_score": "string",
      "is_suspicious": true,
      "reporting_currency": "string",
      "reporting_value": "string",
      "tax_jurisdiction": "string",
      "is_taxable": true,
      "originating_country": "string",
      "receiving_country": "string",
      "status": "string",
      "initiated_at": "string",
      "confirmed_at": "string",
      "completed_at": "string",
      "created_at": "string",
      "updated_at": "string",
      "audit_metadata": {}
    }
  ],
  "total": 0,
  "limit": 0,
  "offset": 0
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Get single financial transaction by ID

GET
/api/financial-transactions/{transaction_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

transaction_id*string

Response Body

application/json

application/json

curl -X GET "https://loading/api/financial-transactions/string"
{
  "id": "string",
  "user_id": "string",
  "transaction_type": "string",
  "external_transaction_id": "string",
  "reference_number": "string",
  "symbol": "string",
  "base_currency": "string",
  "quote_currency": "string",
  "amount": "string",
  "price": "string",
  "total_value": "string",
  "fee_amount": "string",
  "fee_currency": "string",
  "fee_type": "string",
  "exchange_fee": "string",
  "network_fee": "string",
  "exchange": "string",
  "wallet_address": "string",
  "transaction_hash": "string",
  "block_number": 0,
  "confirmations": 0,
  "counterparty_id": "string",
  "counterparty_name": "string",
  "counterparty_type": "string",
  "aml_status": "string",
  "sanction_check_status": "string",
  "risk_score": "string",
  "is_suspicious": true,
  "reporting_currency": "string",
  "reporting_value": "string",
  "tax_jurisdiction": "string",
  "is_taxable": true,
  "originating_country": "string",
  "receiving_country": "string",
  "status": "string",
  "initiated_at": "string",
  "confirmed_at": "string",
  "completed_at": "string",
  "created_at": "string",
  "updated_at": "string",
  "audit_metadata": {}
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Initiate a withdrawal request

POST
/api/financial-transactions/withdrawals/initiate

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Request Body

application/json

amount*|

Withdrawal amount

currency*string

Currency code (BTC, ETH, USD, etc.)

destination_address*string

Destination wallet address or account

network?|

Blockchain network (e.g., ethereum, bitcoin)

memo?|

Transaction memo or tag (if required)

notes?|

Optional notes about the withdrawal

Response Body

application/json

application/json

curl -X POST "https://loading/api/financial-transactions/withdrawals/initiate" \  -H "Content-Type: application/json" \  -d '{    "amount": 0,    "currency": "string",    "destination_address": "string"  }'
{}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Approve or reject a withdrawal request

POST
/api/financial-transactions/withdrawals/{withdrawal_id}/approve

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

withdrawal_id*string

Request Body

application/json

approved*boolean

True to approve, False to reject

reviewer_notes*string

Reviewer notes explaining the decision

risk_assessment?|

Risk assessment notes

Response Body

application/json

application/json

curl -X POST "https://loading/api/financial-transactions/withdrawals/string/approve" \  -H "Content-Type: application/json" \  -d '{    "approved": true,    "reviewer_notes": "string"  }'
{}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}