Read an export form and retain verified Markdown under an owner-bound token. Source mismatches must not reach confirmation: a successful codec round trip alone does not prove that the source totals were preserved (#462, DESIGN §48).
const url = 'https://example.com/api/v1/money/imports/preview';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'multipart/form-data'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/money/imports/preview \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: multipart/form-data'Route: /api/v1/money/imports/preview. Inputs: progress_id. Do not automatically replay this operation after an uncertain result.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”Responses
Section titled “Responses”Aggregate import preview; no Budget is written
The safe data shown before the User confirms an import.
object
Accounts that require an explicit Cash or Card choice (#1130).
One aggregate-only source-format gap shown before confirmation.
object
One API balance that the importer inferred as a starting Account row.
object
Aggregate counts and the bounded source-row sample shown before confirmation.
object
One differential check’s aggregate pass and fail counts.
object
One bounded preview row with date, Account, Payee, exact amount and currency. Memo is omitted.
object
Reconciliation rows added to match source Ready to Assign totals.
Examplegenerated
{ "account_kind_questions": [ [ "example" ] ], "expires_in_seconds": 1, "gaps": [ { "count": 1, "feature": "example" } ], "import_id": "example", "inferred_opening_balances": [ { "account": "example", "amount": "example", "currency": "example", "date": "example" } ], "progress_id": "example", "source": "example", "summary": { "account_count": 1, "assignment_count": 1, "byte_stable_round_trip": true, "category_count": 1, "checks": [ { "check": "example", "failed": 1, "passed": 1 } ], "cleared_count": 1, "mismatch_classes": [ "example" ], "month_count": 1, "preview_rows": [ { "account": "example", "amount": "example", "currency": "example", "date": "example", "payee": "example" } ], "ready_to_assign_adjustment_count": 1, "split_count": 1, "transaction_count": 1, "transfer_count": 1 }, "title": "example"}The export is malformed or exceeds a limit
The standard API error response: { "error": { ... } }.
object
Example
{ "error": { "code": "bad_request" }}The standard API error response: { "error": { ... } }.
object
Example
{ "error": { "code": "bad_request" }}