ReconifyDocumentation

Create a reconciliation

Triggers a ledger-mode reconciliation run for the specified accounting period and two ledger sources. The run is queued immediately and processed asynchronously — poll GET /reconciliations/{id} to track progress.

POST
/reconciliations

Authorization

ApiKeyAuth
AuthorizationBearer <token>

Org-level API key (sk_live_*). Create keys from the dashboard at Settings → API Keys.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/reconciliations" \  -H "Content-Type: application/json" \  -d '{    "ledger_config": {      "period_key": "2026-06",      "sources": [        {          "role": "left",          "source_id": "018f1a2b-3c4d-5e6f-7a8b-9c0d1e2f3a4b"        },        {          "role": "left",          "source_id": "018f1a2b-3c4d-5e6f-7a8b-9c0d1e2f3a4b"        }      ]    }  }'
{  "$schema": "/v1/schemas/ReconciliationOutputBody.json",  "reconciliation": {    "completedAt": "2019-08-24T14:15:22Z",    "createdAt": "2019-08-24T14:15:22Z",    "currentStage": "string",    "id": "string",    "lastErrorMessage": "string",    "ledgerConfig": null,    "name": "string",    "orgId": "string",    "progressPct": 0.1,    "runMode": "string",    "startedAt": "2019-08-24T14:15:22Z",    "status": "string",    "updatedAt": "2019-08-24T14:15:22Z"  }}
{  "$schema": "/v1/schemas/ErrorModel.json",  "detail": "Property foo is required but is missing.",  "errors": [    {      "location": "string",      "message": "string",      "value": null    }  ],  "instance": "https://example.com/error-log/abc123",  "status": 400,  "title": "Bad Request",  "type": "https://example.com/errors/example"}