Skip to main content
POST
/
reconciliation
/
start-instant
Instant reconciliation
curl --request POST \
  --url http://localhost:5001/reconciliation/start-instant \
  --header 'X-blnk-key: <api-key>'
import requests

url = "http://localhost:5001/reconciliation/start-instant"

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/reconciliation/start-instant', 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/reconciliation/start-instant",
  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/reconciliation/start-instant"

	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/reconciliation/start-instant")
  .header("X-blnk-key", "<api-key>")
  .asString();
require 'uri'
require 'net/http'

url = URI("http://localhost:5001/reconciliation/start-instant")

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.Reconciliation.runInstant to reconcile external records inline.
1

Call the method

blnk.Reconciliation.runInstant
const response = await blnk.Reconciliation.runInstant({
  external_transactions: [
    {
      id: 'txn_1',
      amount: 5.49,
      reference: 'INV-2023-002',
      currency: 'GBP',
      description: 'Card payment',
      date: '2024-11-15T14:25:30Z',
      source: 'bank-api',
    },
  ],
  strategy: 'one_to_one',
  dry_run: true,
  matching_rule_ids: ['rule_abc123'],
});
FieldTypeDescription
external_transactionsobject[]Array of external transaction rows to reconcile.
external_transactions[].idstringUnique external transaction ID.
external_transactions[].amountnumberTransaction amount.
external_transactions[].referencestringUnique transaction reference.
external_transactions[].currencystringISO 4217 currency code.
external_transactions[].descriptionstringDescription of the transaction.
external_transactions[].datestringTransaction date and time.
external_transactions[].sourcestringOrigin of the transaction data.
strategystringMatch strategy: one_to_one, one_to_many, or many_to_one.
matching_rule_idsstring[]IDs of the matching rules to apply.
2

Save the reconciliation ID

Use response.data.reconciliation_id with blnk.Reconciliation.get to poll status and match counts.
3

Response

200 OK
{
  "reconciliation_id": "rec_a8f2c91d-1234-4abc-9def-0123456789ab"
}
FieldTypeDescription
reconciliation_idstringID of the reconciliation run. Use it with blnk.Reconciliation.get to check status.

How reconciliation works

Batch and instant reconciliation workflows.

Instant reconciliation

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.