Register Transfer Attempt
Registers a deposit or withdrawal attempt without requiring an existing blockchain transaction.
This endpoint is used when a client initiates a transfer attempt (deposit/withdrawal), and BitOK should track and evaluate it even before the blockchain transaction becomes available.
HTTP Request
POST /v1/transfers/register-attempt/
Request Body
A JSON object with the following fields:
| Field | Type | Required | Description |
|---|---|---|---|
client_id | string/null | No | External ID of the client associated with the attempt (max 40 chars). |
attempt_id | string/null | No | External ID of the attempt (max 100 chars). |
direction | string | Yes | Transfer direction: • incoming • outgoing |
network | string | Yes | Blockchain network code (e.g., ETH, TRX). |
token_id | string/null | No | Token identifier. Contract address for ERC-20 tokens or "native" for chain-native assets. |
input_address | string/null | Conditionally | Required if direction = incoming. |
output_address | string/null | Conditionally | Required if direction = outgoing. |
amount | float/null | No | Transfer amount. |
risk_model | string/null | No | Custom risk model ID. If omitted, the default model applies. |
Response
Returns a full REGISTERED_TRANSFER_EXTRA object.
Below is the complete structure used across all BitOK transfer APIs.
REGISTERED_TRANSFER_EXTRA
Top-level Fields
| Field | Type | Description |
|---|---|---|
id | string | UUID of the registered transfer. |
created_at | string (ISO8601) | Timestamp when the transfer was created. |
check_type | string | Always "manual" for attempts; other values appear in different flows. |
check_status | string | Risk processing status — checking, checked. |
checked_at | string/null | When the risk evaluation was completed. |
direction | string | incoming or outgoing. |
network | string | Blockchain network code. |
token_id | string/null | Token used in the transfer. |
amount | float/null | Transfer amount. |
fiat_value | float/null | Value converted to fiat. |
fiat_currency | string | Fiat currency code (USD). |
client_id | string/null | External client ID. |
attempt_id | string/null | External attempt ID. |
risk_level | string | AML risk level — high, medium, low, undefined. |
risk_score | float/null | Numerical risk score. |
transaction | object/null | Bound blockchain transaction (if matched). |
address | object/null | Bound address info (for address-based checks). |
categories | array | AML risk categories with value distribution. |
exposure | object/null | Exposure calculation results. |
counterparty | object/null | Counterparty analysis results. |
categories[] — AML Category Breakdown
Each entry describes part of the transfer amount associated with a risky category.
| Field | Type | Description |
|---|---|---|
category | string | AML category code (scam, sanctions, exchange, etc.). |
amount | number | USD amount associated with this category. |
share | number | Portion of the total transaction value (0.0–1.0). |
exposure Object
| Field | Type | Description |
|---|---|---|
check_status | string | Exposure check status — checking, checked. |
checked_at | string/null | When exposure was calculated. |
risk_level | string | Exposure risk level. |
risk_score | number/null | Exposure risk score. |
fiat_value | number/null | Exposure amount in USD. |
fiat_currency | string | "USD". |
categories | array | Same structure as categories above. |
counterparty Object
| Field | Type | Description |
|---|---|---|
check_status | string | Status of the counterparty analysis. |
checked_at | string/null | When counterparty risk was evaluated. |
risk_level | string | Counterparty AML risk level. |
risk_score | number/null | Numerical counterparty risk score. |
proximity | string | direct, indirect, or self. |
fiat_value | number/null | Counterparty exposure amount in USD. |
fiat_currency | string | "USD". |
entity_category | string/null | AML category of the counterparty. |
categories | array | Category breakdown (same format as above). |
Try it
POST/v1/transfers/register-attempt/
API KEY ID
API KEY SECRET
Body (JSON)
HTTP Request
Press "Send Request" to generate HTTP request.
HTTP …
{
// Response will be shown here after the request.
}