Reconciliation

Instant reconciliation

Run instant reconciliation with the Java SDK.

POST/reconciliation/start-instant

Use blnk.reconciliation().runInstant for this operation.

Call the method

String ruleId = "rule_073f7ffe-9dfd-42ce-aa50-d1dca1788adc";

ExternalTransaction external = ExternalTransaction.create()
    .id("ext_001")
    .amount(42.50)
    .reference("INV-001")
    .currency("USD")
    .description("Instant recon")
    .date("2025-02-15T10:30:00Z")
    .source("integration-test");

ApiResponse<JsonNode> response = blnk.reconciliation().runInstant(
    RunInstantReconData.create()
        .dryRun(true)
        .strategy("one_to_one")
        .matchingRuleIds(List.of(ruleId))
        .externalTransactions(List.of(external)));
FieldTypeDescription
external_transactionsList<
ExternalTransaction>
External transaction rows built with ExternalTransaction.
create().
external_transactions.
[].id
StringUnique external transaction ID.
external_transactions.
[].amount
NumberTransaction amount.
external_transactions.
[].reference
StringUnique transaction reference.
external_transactions.
[].currency
StringISO 4217 currency code.
external_transactions.
[].description
StringDescription of the transaction.
external_transactions.
[].date
StringTransaction date and time.
external_transactions.
[].source
StringOrigin of the transaction data.
strategyStringMatch strategy: one_to_one, one_to_many, or many_to_one.
matching_rule_idsList<String>IDs of the matching rules to apply.

Save the reconciliation ID

Use response.data().get("reconciliation_id").asText() with blnk.reconciliation().get to poll status and match counts.

Response

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