Skip to main content
POST
MCP scope: dac.funds (not available to AI connectors yet) 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 so the same transfer can’t be sent twice: if a transaction with that sequence ID already exists, Finrock rejects the request instead of creating a duplicate. For AML tracking, include the aml_cid corresponding to the external customer associated with the withdrawal.

Body Parameters

string
required
The asset to transfer. Use the id 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 doesn’t create a new one. It returns HTTP 400 with {"code": 1076, "error": "DUPLICATE_SEQUENCE_ID"}. 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.

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. See Transaction Statuses for all values.
string
The sequence_id you provided, echoed back for confirmation.
string
ISO 8601 timestamp of when the transaction was created.
Poll the List Transactions endpoint using the returned id to track the transaction through to on-chain confirmation.