Skip to main content
POST
/
transactions
/
bulk
Bulk Transactions
curl --request POST \
  --url http://localhost:5001/transactions/bulk \
  --header 'Content-Type: application/json' \
  --header 'X-blnk-key: <api-key>' \
  --data '
{
  "atomic": true,
  "inflight": true,
  "run_async": true,
  "skip_queue": true,
  "transactions": [
    {}
  ]
}
'
{
  "batch_id": "bulk_c62f200b-905f-4983-a349-cadd279234aa",
  "status": "applied",
  "transaction_count": 4
}
If you’re using the auto-provisioned Enterprise Core instance included with your Production License deployment, set the base URL to: https://ENTERPRISE_PUBLIC_URL/core.If you’re connecting to a different Core instance, use the publicly accessible base URL for that instance instead.

Authorization

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: Scoped API keys and Secure your Blnk server.

Body

atomic
boolean
required
When true, either all transactions succeed or all fail. When false, transactions are processed independently.
inflight
boolean
required
When true, transactions are created in INFLIGHT status and require a separate commit. When false, transactions are applied immediately.
run_async
boolean
default:"false"
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_queue
boolean
default:"false"
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.
transactions
object[]
required
An array of transaction objects. Max number of transactions allowed is 10,000.
Sample transaction object
{
  "precise_amount": 35890,
  "precision": 100,
  "reference": "unique_reference_1",
  "description": "Transaction description",
  "currency": "USD",
  "source": "@source_account",
  "destination": "@destination_account",
  "allow_overdraft": true
}

Response

batch_id
string
required
Identifier for the bulk batch. Use this value as parent_transaction when searching for child transactions, or when committing or voiding an inflight batch.
status
string
required
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_count
integer
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.
message
string
Human-readable status message. Included on the immediate response when run_async is true (for example, confirming that background processing started).
{
  "batch_id": "bulk_c62f200b-905f-4983-a349-cadd279234aa",
  "status": "applied",
  "transaction_count": 4
}

Need help?

We are very happy to help you make the most of Blnk, regardless of whether it is your first time or you are switching from another tool. To ask questions or discuss issues, please contact us or join our Discord community.