Skip to main content
POST
/
statements
/
extract
Extract transactions from an uploaded bank-statement PDF
curl --request POST \
  --url https://api-sandbox.ledgersyncappv2.com/v3/statements/extract \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form file='@example-file'
{
  "operation_id": "op_01HXYZ8A6N7K2W9PQ4T5Z3V6E0",
  "status": "queued",
  "poll_url": "https://api-sandbox.ledgersyncappv2.com/v3/operations/op_01HXYZ8A6N7K2W9PQ4T5Z3V6E0",
  "estimated_seconds": 123
}

Authorizations

Authorization
string
header
required

Pass your secret key in the Authorization header as a Bearer token: Authorization: Bearer sk_test_... (sandbox) or Bearer sk_live_... (production).

Keys are created in the developer portal and the plaintext secret is shown exactly once at creation. Treat them like passwords — never embed them in mobile apps or front-end code.

Body

multipart/form-data
file
file
required

The bank-statement PDF. Max 30 MB.

Response

The request was accepted but the underlying work runs asynchronously. Use the returned operation_id to poll GET /operations/{operation_id} or just wait for the matching webhook event.

Returned with 202 Accepted for async operations.

operation_id
string
required
Example:

"op_01HXYZ8A6N7K2W9PQ4T5Z3V6E0"

status
enum<string>
required
Available options:
queued
poll_url
string<uri>
required
Example:

"https://api-sandbox.ledgersyncappv2.com/v3/operations/op_01HXYZ8A6N7K2W9PQ4T5Z3V6E0"

estimated_seconds
integer

Rough ETA for completion. Best-effort.