Skip to main content
POST
/
reconciliation
/
matching-rules
Create matching rule
curl --request POST \
  --url http://localhost:5001/reconciliation/matching-rules \
  --header 'X-blnk-key: <api-key>'
import requests

url = "http://localhost:5001/reconciliation/matching-rules"

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/matching-rules', 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/matching-rules",
  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/matching-rules"

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

url = URI("http://localhost:5001/reconciliation/matching-rules")

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.createMatchingRule to create a matching rule.
1

Call the method

blnk.Reconciliation.createMatchingRule
const response = await blnk.Reconciliation.createMatchingRule({
  name: 'Amount match',
  description: 'Match by amount with 1% drift',
  criteria: [
    {
      field: 'amount',
      operator: 'equals',
      allowable_drift: 0.01
    },
    {
      field: 'currency',
      operator: 'equals'
    },
    {
      field: 'reference',
      operator: 'contains'
    },
  ],
});
FieldTypeDescription
namestringName of the matching rule.
descriptionstringShort description of what the rule does.
criteriaobject[]Array of match criteria. Each entry sets how one field is compared.
criteria[].fieldstringField to match: amount, currency, reference, description, or date.
criteria[].operatorstringHow to compare the field: equals or contains.
criteria[].allowable_driftnumberOptional tolerance for amount (percentage) or date (seconds).
2

Save the rule ID

Use response.data.rule_id in matching_rule_ids when you start reconciliation.
3

Response

201 Created
{
  "rule_id": "rule_890bdbc4-467f-4670-8424-5667e41daf29",
  "name": "Amount match",
  "description": "Match by amount with 1% drift",
  "criteria": [
    {
      "field": "amount",
      "operator": "equals",
      "allowable_drift": 0.01
    }
  ],
  "created_at": "2024-11-26T08:36:36.238244338Z",
  "updated_at": "2024-11-26T08:36:36.238244338Z"
}
FieldTypeDescription
rule_idstringUnique ID for the rule. Store it to apply during reconciliation runs.
namestringRule name you passed.
criteriaobject[]The match criteria stored for the rule.
created_atstringWhen the rule was created.
updated_atstringWhen the rule was last updated.

How reconciliation works

Criteria, operators, and drift behavior.

Create matching rule

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.