ReconifyDocumentation

Ingest transactions

Pushes a batch of up to 5,000 transactions into a ledger source. Submissions are idempotent — rows with a previously seen idempotencyKey are counted as duplicates and not re-stored.

POST
/ledger/sources/{id}/transactions

Authorization

ApiKeyAuth
AuthorizationBearer <token>

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

In: header

Path Parameters

id*string

Source UUID

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/ledger/sources/string/transactions" \  -H "Content-Type: application/json" \  -d '{    "transactions": [      {        "amountMinor": 150000,        "currency": "USD",        "date": "2026-06-15",        "direction": "debit",        "idempotencyKey": "stripe-pi-3Qab12345"      }    ]  }'
{  "$schema": "/v1/schemas/IngestTransactionsOutputBody.json",  "duplicates": 0,  "errors": [    {      "idempotencyKey": "string",      "index": 0,      "message": "string"    }  ],  "ingested": 0}
{  "$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"}