Skip to main content
POST
/
transactions
/
bulk
Bulk transactions
curl --request POST \
  --url http://localhost:5001/transactions/bulk \
  --header 'X-blnk-key: <api-key>'
import requests

url = "http://localhost:5001/transactions/bulk"

headers = {"X-blnk-key": "<api-key>"}

response = requests.post(url, headers=headers)

print(response.text)
const options = {method: 'POST', headers: {'X-blnk-key': '<api-key>'}};

fetch('http://localhost:5001/transactions/bulk', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_PORT => "5001",
CURLOPT_URL => "http://localhost:5001/transactions/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"X-blnk-key: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "http://localhost:5001/transactions/bulk"

req, _ := http.NewRequest("POST", url, nil)

req.Header.Add("X-blnk-key", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("http://localhost:5001/transactions/bulk")
.header("X-blnk-key", "<api-key>")
.asString();
require 'uri'
require 'net/http'

url = URI("http://localhost:5001/transactions/bulk")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["X-blnk-key"] = '<api-key>'

response = http.request(request)
puts response.read_body
Use blnk.Transactions.createBulk to create many transactions in one request (up to 10,000 per request).
1

Call the method

blnk.Transactions.createBulk
const response = await blnk.Transactions.createBulk({
  atomic: true,
  transactions: [
    {
      amount: 1000,
      precision: 100,
      currency: 'USD',
      source: '@source_1',
      destination: '@dest_1',
      reference: 'bulk_001',
      description: 'Payment 1',
    },
    {
      amount: 2000,
      precision: 100,
      currency: 'USD',
      source: '@source_2',
      destination: '@dest_2',
      reference: 'bulk_002',
      description: 'Payment 2',
    },
  ],
});
FieldTypeDescription
transactionsobject[]Transaction objects to create; up to 10,000 per request. References must be unique within the batch.
atomicbooleanWhen true, every transaction succeeds or fails together.
inflightbooleanWhen true, transactions are created in INFLIGHT status for a later commit or void.
run_asyncbooleanWhen true, Core processes the batch in the background and returns status: 'queued'.
skip_queuebooleanWhen true, transactions bypass the queue and process synchronously.
2

Save the batch ID

Use response.data.batch_id as parent_transaction to find child transactions, or with updateStatus to commit or void an inflight batch.
3

Response

{
  "batch_id": "bulk_c62f200b-905f-4983-a349-cadd279234aa",
  "status": "applied",
  "transaction_count": 4
}
{
  "batch_id": "bulk_c62f200b-905f-4983-a349-cadd279234aa",
  "status": "queued",
  "message": "Bulk transaction processing started"
}
FieldTypeDescription
batch_idstringIdentifier for the batch. Use as parent_transaction to find child transactions, or with updateStatus to commit or void an inflight batch.
statusstringapplied, inflight, or queued depending on the batch.
transaction_countnumberNumber of transactions when processed synchronously.
messagestringStatus message when run_async is true.

Bulk transactions guide

Batch processing, webhooks, and retrieving a batch.

Bulk transactions

HTTP request and response schema.

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.