Reconciliation
Create matching rule
Create a reconciliation matching rule with the Go SDK.
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_bodyUse
Go response (
client.Reconciliation.CreateMatchingRule to create a matching rule.
1
Call the method
client.Reconciliation.CreateMatchingRule
matchingRule, resp, err := client.Reconciliation.CreateMatchingRule(blnkgo.Matcher{
Name: "Amount match",
Description: "Match by amount with 1% drift",
Criteria: []blnkgo.Criteria{
{
Field: blnkgo.CriteriaFieldAmount,
Operator: blnkgo.ReconciliationOperatorEquals,
AllowableDrift: 0.01,
},
{
Field: blnkgo.CriteriaFieldCurrency,
Operator: blnkgo.ReconciliationOperatorEquals,
},
{
Field: blnkgo.CriteriaFieldReference,
Operator: blnkgo.ReconciliationOperatorContains,
},
},
})
| Field | Type | Description |
|---|---|---|
Name | string | Name of the matching rule. |
Description | string | Short description of what the rule does. |
Criteria | []blnkgo.Criteria | Array of match criteria. Each entry sets how one field is compared. |
Criteria[].Field | blnkgo.CriteriaField | Field to match: CriteriaFieldAmount, CriteriaFieldCurrency, CriteriaFieldReference, CriteriaFieldDescription, or CriteriaFieldDate. |
Criteria[].Operator | blnkgo.ReconciliationOperator | How to compare the field: ReconciliationOperatorEquals or ReconciliationOperatorContains. |
Criteria[].AllowableDrift | float64 | Optional tolerance for amount (percentage) or date (seconds). |
2
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"
}
Go response (*blnkgo.RunReconResp)
| Field | Type | Description |
|---|---|---|
RuleID | string | Unique ID for the rule. Store it to apply during reconciliation runs. |
Name | string | Rule name you passed. |
Description | string | Short description of what the rule does. |
Criteria | []blnkgo.Criteria | The match criteria stored for the rule. |
CreatedAt | string | When the rule was created. |
UpdatedAt | string | When the rule was last updated. |
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.Was this page helpful?
⌘I