Transactions
Bulk Transactions
Record many transactions in one request.
/transactions/bulkAuthorization
If set, the API uses an API key for authentication. Include the following header in your requests: X-blnk-key: <api-key>.
Replace <api-key> with your secret API key. Ensure the key is kept secure and not exposed in public repositories or client-side code.
See also: Core API key.
Body
atomicboolean
When true, either all transactions succeed or all fail. When false, transactions are processed independently. Omit it to use false.
inflightboolean
When true, transactions are created in INFLIGHT status and require a separate commit. When false, transactions are applied immediately. Omit it to use false.
run_asyncboolean
When true, processing happens in the background and results are delivered via webhook. When false or not provided, processing happens synchronously and results are returned in the response.
skip_queueboolean
When true, transactions bypass the queue and are processed inline in the request. Duplicate-reference handling differs from the default queued path. See Duplicate references.
dry_runboolean
When true, Blnk projects the batch without writing anything. skip_queue selects cumulative vs independent projection. run_async is ignored. See Dry-run a transaction.
transactionsobject[]
An array of transaction objects. Each item uses the fields on Create new transaction, including overdraft_limit. Max number of transactions allowed is 10,000.
{
"precise_amount": 35890,
"precision": 100,
"reference": "unique_reference_1",
"description": "Transaction description",
"currency": "USD",
"source": "@source_account",
"destination": "@destination_account",
"allow_overdraft": true
}Response
A write returns the batch fields below. POST with dry_run: true returns a projection instead, with HTTP 200, and omits batch_id, status, transaction_count, and message.
batch_idstring
Identifier for the bulk batch. Use this value as parent_transaction when searching for child transactions, or when committing or voiding an inflight batch.
statusstring
When run_async is false, applied means the bulk request was accepted. With default queueing (skip_queue: false), children are processed asynchronously - applied does not mean every child is already APPLIED on balances. With skip_queue: true, children are processed inline before the response returns. Value is inflight when inflight: true. When run_async is true, value is processing.
transaction_countinteger
Number of transactions in the request. Present on successful synchronous responses. On the default queued path, this reflects items submitted, not necessarily rows created - see Duplicate references.
messagestring
Human-readable status message. Included on the immediate response when run_async is true (for example, confirming that background processing started).
dry_runboolean
true on a projection. Present only when the request set dry_run.
would_applyboolean
false when any item in the batch would be rejected.
cumulativeboolean
true when skip_queue is true and each item is projected after the previous item’s effect. false when each item is projected on its own against current balances.
atomicboolean
The atomic value from the request, on a projection.
resultsarray
One preview per item. Each item uses the dry-run fields.
balancesarray
Combined effect per balance. Present only when cumulative is true. Each item uses the balance fields on Dry-run a transaction.
notesarray
Advisory messages that are not rejections.