Imports
Stage rows for import: computes the dedupe preview and holds the rows; nothing is written until commit. 202 with status staged (or failed). Requires Idempotency-Key. (scope: imports:write)
POST
bearerAuthheader
AuthorizationBearer <token>API key as Bearer token
Idempotency-Key*stringRequired. Retries with the same key replay the first response instead of starting a second job (24 h).
Length
length <= 200application/json- body
entity*stringValue in
"invoices_issued""invoices_received""contacts""articles""stock""trial_balance""expenses"preset?stringSource system; decides the external-ref namespace for invoices/stock.
Value in
"smartbill""oblio""fgo""saga""winmentor""generic"filename?stringLength
length <= 255mode?stringInvoices only. historical (default) keeps numbers and never posts to the ledger; draft re-enters the normal flow.
Value in
"historical""draft"rows*array<>Already-mapped canonical rows (the same shape the in-app wizard sends). Body at most 10 MB.
Items
1 <= items <= 5000OK
application/json- response
data*error*nullcurl -X POST "https://example.com/imports" \ -H "Idempotency-Key: string" \ -H "Content-Type: application/json" \ -d '{ "entity": "invoices_issued", "rows": [ {} ] }'{ "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "entity": "string", "preset": "string", "filename": "string", "source": "string", "status": "running", "total_rows": 0, "imported_count": 0, "updated_count": 0, "skipped_count": 0, "error_count": 0, "preview": { "news": 0, "updates": 0, "skips": 0, "errors": 0 }, "reverted_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "finished_at": "2019-08-24T14:15:22Z" }, "error": null}