Use the same review-to-export workflow as the web app, from your own systems. A draft result is not an approved export: check the rows and approve the exact revision before conversion.
Start with the current contract. The generated OpenAPI document contains the complete request schemas. The examples here are a reading path through the core operations.
Authentication and security
Use a one-time-visible flk_ key. Every key stays bound to the workspace where you created it, with a limit of 60 requests per minute per key.
Send your workspace key as a Bearer token on every request. Keep it secure and make requests from your server.
authorization header
Authorization: Bearer flk_example
Set FULLA_ORIGIN to your Fulla Ledger origin, FULLA_API_KEY to your key and STATEMENT_ID to the ID returned by upload. The shell examples below use those variables.
From upload to approved export.
Six core operations. Your application may poll status or submit more than one review.
Returns the latest saved review revision. This endpoint does not establish approval. Check the rows and approve the current revision before conversion.
After you check the rows against the source, approve the exact current revision. Replace 2 with the revision returned by your review. A stale revision returns 409.
Replace the example UUID with your statement ID. Set format to json, csv, xlsx or ofx. JSON returns inline (200); CSV, XLSX and OFX create an export (202) with status_url and download_url. OFX is an OFX 1.0.2 file for one account: several statements combine only when they show the same account last four digits, statement type and currency, otherwise the request returns 422 with ofx_mixed_accounts. Multiple statements require an active paid entitlement.
Review supports set_field, insert_row, delete_row, split_row and merge_rows. Use the generated OpenAPI schemas for every operation's complete body contract.
The statement lifecycle
01 · Upload
Send your PDFs. Accepted files enter processing.
02 · Extraction
Track progress with the status endpoint. Retrieve the latest saved review revision when the result is available.
03 · Your review
Check the rows against their source and save corrections with the current base revision.
04 · Your approval
Approve the exact revision you reviewed. Resolve a revision conflict before trying again.
05 · Export
Convert approved persisted revisions to JSON, CSV, XLSX or OFX. Download your files before the upload-based expiry.
Rate limits
60 requests per minute per API key. Respect the Retry-After header when a rate limit returns 429.
Data expiry
Financial content expires 24 hours after upload. Review, approval and export do not restart the clock.
Page allowance
Inspect your allowance, stored credits and usage with GET /api/v1/account.
Handle the other steps.
Unlock a password-protected PDF
Send the PDF password as JSON with the required Idempotency-Key header. Successful unlock resumes processing and returns 202.
Responses use a JSON error.code. Check for invalid requests (400), invalid keys (401), revision or state conflicts (409), expired documents (410), statements that cannot share one OFX account (422) and rate or page-quota limits (429). Review and approval conflicts include the latest state; inspect it before submitting a new revision.
Connect the next piece.
Set up your key in the workspace, or read through the integration workflow first.