For inspection
Current review result
GET /api/v1/statements/{id}/resultThe latest saved review revision, available without an approval gate. This endpoint is not an approved conversion export.

REST API integration
The REST API follows the same upload, review, approve and export workflow as Fulla’s web app. Connect it from your server using a key bound to your workspace.
Connection plan
POST /api/v1/statementsUpload one to ten PDFs. Keep the returned statement IDs.
GET /api/v1/statements/{id}/resultWait for processing, then inspect the latest saved review revision.
PATCH /api/v1/statements/{id}/reviewSave corrections, then approve the exact reviewed revision.
POST /api/v1/statements/convertRequest JSON inline or retrieve CSV, XLSX and OFX files.
The full sequence includes status checks and POST /api/v1/statements/{id}/approve. Approval names the exact revision a person checked.
Workspace API keys are sent as Bearer tokens and stay bound to the workspace where they were created. Keep the key on your server, and maintain the relationship between each source file, returned statement ID and authorized workspace.
The upload endpoint accepts one to ten PDF files using the files form field, with a maximum of 50 MiB per file and 100 MiB per request. A statement may contain up to 250 pages. Check the per-file outcomes: the API documents 202 for an accepted upload and 207 for mixed results.
curl -X POST "$FULLA_ORIGIN/api/v1/statements" \
-H "Authorization: Bearer $FULLA_API_KEY" \
-H "Idempotency-Key: upload-example-01" \
-F "files=@statement.pdf;type=application/pdf"Keep the Bearer token on your server. A workspace key stays bound to its workspace.
Authentication details →For inspection
GET /api/v1/statements/{id}/resultThe latest saved review revision, available without an approval gate. This endpoint is not an approved conversion export.
After approval
POST /api/v1/statements/convertConversion uses the approved persisted revision. JSON returns inline; CSV and XLSX produce export URLs.
The status endpoint reports processing state and expiry. The result endpoint returns the latest saved review revision without requiring approval. Review supports field edits, insertion, deletion, splitting and merging; save operations against the current base revision.
Approval names the exact reviewed revision. A stale revision returns a conflict, which the integration should resolve by reading the latest state. Only approved persisted revisions feed conversion. JSON returns inline; CSV and XLSX return export status and download URLs.
Keys are limited to 60 requests per minute. Respect Retry-After on rate-limit responses and check documented error codes for revision conflicts, expired documents and allowance limits. Statements are deleted 24 hours after the upload starts; approval and export do not extend that.
The conversion endpoint supports multiple approved statements with an active paid entitlement. Map the returned fields to your own application and validate the handoff. Fulla does not provide a native accounting-platform sync or decide how your external system posts transactions.
Files you can inspect
Download a source PDF and expected approved rows, then follow the Node client through upload, status, review, explicit approval and conversion. The sample outputs are deterministic fixtures; an extraction run is a separate test.
Get the sample input and expected rows