Commit or void multiple independently-created inflight transactions in one request.
Available in version 0.14.2 and later.
Use the bulk inflight endpoints to commit or void many independently-created inflight transactions in one request. For a single inflight transaction, use the Update inflight API instead.Important distinction: Bulk inflight updates are for multiple individual transactions. If you created inflight transactions through the Bulk transactions API, commit them using that batch’s batch_id via the single update endpoint, not the bulk inflight endpoints.
Each request accepts a maximum of 100 items in the transactions array.
Using the queue
Skipped queue
From Blnk Core 0.15.0, bulk commit and void go through the queue by default.
When using the queue, Blnk validates each inflight transaction and enqueues a commit job. The response returns immediately; the queued status means the job is queued, not committed. Parents stay INFLIGHT until workers create APPLIED children.Per item results:
Status
Code
Meaning
queued
QUEUED
New commit job added.
queued
ALREADY_QUEUED
Has already been queued; duplicate skipped.
Failures are per-item. One does not block the batch.
Bulk void expects a transaction_ids array, not the transactions shape used by bulk commit.Each request accepts a maximum of 100 IDs in the transaction_ids array.
Using the queue
Skipped queue
By default, Blnk uses the queue to process each item. The response returns immediately; the queued status means the job is queued, not committed. Parents stay INFLIGHT until workers create APPLIED children.Per item results:
Set skip_queue: true to process each item immediately. The response reflects the final outcome for each inflight transaction.Bulk void expects a transaction_ids array (not the transactions shape used by bulk commit).Per item results:
Status
Code
Meaning
succeeded
—
Inflight voided in this response.
failed
NOT_FOUND
Transaction ID does not exist.
failed
ALREADY_COMMITTED
Inflight was already committed.
failed
ALREADY_VOIDED
Inflight was already voided.
failed
NOT_INFLIGHT
Transaction is not in INFLIGHT status.
failed
LOCKED
Concurrent operation on the same transaction (for example duplicate IDs in one request).
failed
INTERNAL_ERROR
Unexpected server failure for this item.
Failures are per-item. One does not block the batch.
Structured errors are available from Blnk Core 0.15.0 and later.
Bulk inflight endpoints return 400 when the request body fails validation before processing starts. Per-item failures return 200 with failed entries in results[]; one failed item does not block the batch.
Request validation
Per-item results
Code
When it happens
TXN_BULK_EMPTY
transactions or transaction_ids is missing, empty, or the wrong shape for the endpoint.
TXN_BULK_LIMIT_EXCEEDED
More than 100 items in one bulk commit or void request.
Bulk commit expects a transactions array. Bulk void expects transaction_ids. Sending the wrong shape returns TXN_BULK_EMPTY because unrecognized fields are dropped.
400 Bad Request
{ "error_detail": { "code": "TXN_BULK_EMPTY", "message": "transactions array is required and cannot be empty" }, "errors": "transactions array is required and cannot be empty"}
To resolve the error:
Code
What to do
TXN_BULK_EMPTY
Add at least one item. Use transactions for bulk commit and transaction_ids for bulk void.
TXN_BULK_LIMIT_EXCEEDED
Split the request into batches of 100 or fewer items.
On the default queued path, ALREADY_QUEUED counts toward succeeded (idempotent success, not a new queue job). On the skipped-queue path, per-item failed codes such as NOT_FOUND, ALREADY_COMMITTED, ALREADY_VOIDED, NOT_INFLIGHT, and INVALID_AMOUNT are listed in the tabs above.
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.