Transactions

Bulk commit inflight

Commit multiple independently-created inflight transactions with the Python SDK.

POST/transactions/inflight/bulk/commit

Use blnk.transactions.bulk_commit_inflight to commit multiple inflight transactions.

Call the method

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,
    },
  ],
})

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,
    },
  ],
})

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",
    },
  ],
})
FieldTypeDescription
transactionslist[dict]Up to 100 inflight transactions to commit.
transactions.
[].transaction_id
strInflight transaction ID to commit.
transactions.
[].amount
numberPartial commit amount. Omit to commit the full remaining inflight amount.
transactions.
[].precise_amount
number | strPrecision-applied partial commit amount. Takes precedence over amount.
skip_queueboolWhen 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

{
  "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": 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
    }
  ]
}
FieldTypeDescription
succeedednumberNumber committed successfully.
failednumberNumber that failed.
resultslist[dict]Per-transaction outcome in request order.
results[].transaction_idstrTransaction ID from the request.
results[].statusstrsucceeded, failed, or queued (when skip_queue is False).
results[].codestrFailure code (for example NOT_FOUND, ALREADY_VOIDED, INVALID_AMOUNT).
results[].messagestrHuman-readable failure message.