Transactions
Bulk commit inflight
Commit multiple independently-created inflight transactions with the Python SDK.
POST
/transactions/inflight/bulk/commitUse blnk.transactions.bulk_commit_inflight to commit multiple inflight transactions.
Call the method
Queued commit
response = blnk.transactions.bulk_commit_inflight({
"transactions": [
{
"transaction_id": "txn_c4e70eb8-e4d6-4e04-a2e2-92a43b96",
},
{
"transaction_id": "txn_6164573b-6cc8-45a4-ad2e-7b4ba6a6",
"amount": 40,
},
{
"transaction_id": "txn_0b59f6e6-6c4a-4efa-915c-526f77ef",
"precise_amount": 125034,
},
],
})Synchronous commit
Pass skip_queue: True to process each commit synchronously instead of queuing.
response = blnk.transactions.bulk_commit_inflight({
"skip_queue": True,
"transactions": [
{
"transaction_id": "txn_c4e70eb8-e4d6-4e04-a2e2-92a43b96",
},
{
"transaction_id": "txn_6164573b-6cc8-45a4-ad2e-7b4ba6a6",
"amount": 40,
},
],
})Dry run
Preview every commit without settling any hold. See Dry-run transactions.
preview = blnk.transactions.bulk_commit_inflight({
"dry_run": True,
"transactions": [
{
"transaction_id": "txn_c4e70eb8-e4d6-4e04-a2e2-92a43b96",
},
],
})| Field | Type | Description |
|---|---|---|
transactions | list[dict] | Up to 100 inflight transactions to commit. |
transactions.[].transaction_id | str | Inflight transaction ID to commit. |
transactions.[].amount | number | Partial commit amount. Omit to commit the full remaining inflight amount. |
transactions.[].precise_amount | number | str | Precision-applied partial commit amount. Takes precedence over amount. |
skip_queue | bool | When True, process synchronously instead of queuing. |
Review per-item results
Check response.data["results"] for each transaction’s outcome. Failed items include a code and message without stopping the rest of the batch.
A dry run has no succeeded / failed counts. Check would_apply and results.
Response
Queued commit
{
"succeeded": 2,
"failed": 1,
"results": [
{
"transaction_id": "txn_c4e70eb8-e4d6-4e04-a2e2-92a43b96",
"status": "succeeded"
},
{
"transaction_id": "txn_6164573b-6cc8-45a4-ad2e-7b4ba6a6",
"status": "succeeded"
},
{
"transaction_id": "txn_0b59f6e6-6c4a-4efa-915c-526f77ef",
"status": "failed",
"code": "INVALID_AMOUNT",
"message": "cannot commit more than inflight amount"
}
]
}Dry run
{
"dry_run": true,
"would_apply": true,
"cumulative": false,
"atomic": false,
"results": [
{
"dry_run": true,
"would_apply": true,
"operation": "commit",
"status": "APPLIED",
"reference": "ref_hold_001",
"currency": "USD",
"amount": 120,
"precise_amount": "12000",
"precision": 100
}
]
}| Field | Type | Description |
|---|---|---|
succeeded | number | Number committed successfully. |
failed | number | Number that failed. |
results | list[dict] | Per-transaction outcome in request order. |
results[].transaction_id | str | Transaction ID from the request. |
results[].status | str | succeeded, failed, or queued (when skip_queue is False). |
results[].code | str | Failure code (for example NOT_FOUND, ALREADY_VOIDED, INVALID_AMOUNT). |
results[].message | str | Human-readable failure message. |