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.
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"}