Skip to main content
The Create Transaction endpoint submits an on-chain transfer from your Finrock wallet to an internal or external destination. It supports single-output withdrawals, bulk UTXO payouts to multiple recipients in one call, transfers to exchange accounts, and internal moves between sub-accounts. Pass a sequence_id to make your request idempotent — Finrock returns the original transaction if the same sequence ID is submitted more than once. For AML tracking, include the aml_cid corresponding to the external customer associated with the withdrawal.

Request

string
required
Your Finrock API key.
string
required
Your JWT bearer token in the format Token {JWT}.
string
required
The asset to transfer. Use the asset_name value from the Supported Assets list (e.g. BTC, ETH, USDT_ETH).
double
required
The amount to transfer, expressed in the asset’s native unit. Maximum precision is 8 decimal places. Ignored when max_amount is true.
string
required
Defines the spending source. Refer to the Transaction Types reference for the full list of allowed values.
string
An address string or address label to spend from. When omitted, Finrock selects the source automatically from available funds in the wallet.
string
The address_tag value of the source address. Required when spending from a specific address on XRP or XLM blockchains that use destination tags.
string
required
Defines the destination category. Allowed values: INTERNAL, EXTERNAL, SUBACCOUNT, EXCHANGE. Refer to the Transaction Types reference for details on each value.
string
The destination address, label, or identifier. Either destination_id or destinations (bulk array) is required — do not supply both.
string
The destination tag or memo for the recipient address. Required when sending to XRP or XLM addresses that specify a destination tag.
array of objects
For UTXO chains only — provide an array of recipient objects to create a bulk payout in a single transaction. Cannot be used together with destination_id.
string
A free-text note attached to the transaction record in Finrock. Useful for internal reconciliation. The memo is not broadcast on-chain.
string
A client-generated unique identifier for idempotency. If a transaction with this sequence_id already exists in your sub-account, Finrock returns the existing transaction rather than creating a duplicate. See Request Idempotency for details.
boolean
default:"false"
When true, Finrock sends the maximum possible balance after deducting the network fee, ignoring the amount field. Useful for emptying an address.
string
Your external customer ID for AML compliance tracking. When provided, Finrock associates this transaction with the AML record for the specified customer. Required if your account has AML screening enabled.

Example Request

Response

A successful request returns HTTP 200 with the created transaction object.
string
The Finrock-assigned unique transaction identifier.
string
The on-chain transaction hash once broadcast. null while the transaction is still being signed or queued.
string
The asset being transferred.
number
The transfer amount in the asset’s native unit.
number
Estimated or actual network fee in the blockchain’s native unit.
string
Initial transaction status. Typical value on creation: pending.
string
The sequence_id you provided, echoed back for confirmation.
string
ISO 8601 timestamp of when the transaction was created.
object
Returned when the x-api-key or Authorization header is missing or invalid.
Poll the List Transactions endpoint using the returned id to track the transaction through to on-chain confirmation.