Preview
const url = 'https://example.com/import/qif/preview';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"account_map":{"additionalProperty":"example"},"account_options":{},"content":"example","date_format":"mdy"}'};
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/import/qif/preview \ --header 'Content-Type: application/json' \ --data '{ "account_map": { "additionalProperty": "example" }, "account_options": {}, "content": "example", "date_format": "mdy" }'DB-aware, read-only mapping preview: per-file-account target, suggested cutoff (feed earliest minus 3d), sign diagnostic, and REAL dedup/cutoff counts for the supplied options. Writes nothing.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Responses
Section titled “Responses”Successful Response
object
object
Per-file-account disposition of rows (DESIGN §7.2). The preview counts for
a request equal the commit’s per-account results for the same request.
in_file is the sum of the other buckets, uncleared excepted;
skipped_scheduled counts Quicken reminder rows (not history, never
imported); skipped_investment counts QIF !Type:Invst records
(investment actions, never bank rows; decision 84); promoted counts
rows that posted an expected row an earlier import left, because the
file now marks them cleared (per leg for a transfer); uncleared is the
subset of the created rows that land expected because the file marks
them uncleared (decision 60). split_transfers (QIF S[Account]
lines carved out of split rows as transfers) and split_remainders
(split rows whose lines left part of the amount unexplained, booked to
the uncategorized placeholder) are sub-counts too (decision 87).
object
object
Sign diagnostic over non-transfer rows (raw amounts). Monetary fields are
strings — money is never a float. suspect drives the invert pre-check.
object
Example generated
{ "accounts": [ { "counts": { "in_file": 1, "one_leg_transfers": 1, "opening_balances": 1, "promoted": 1, "skipped_cutoff": 1, "skipped_dedup": 1, "skipped_investment": 1, "skipped_scheduled": 1, "skipped_unmapped": 1, "skipped_zero_amount": 1, "split_remainders": 1, "split_transfers": 1, "transfers": 1, "uncleared": 1, "would_import": 1 }, "default_cutoff": "example", "mapped": { "id": "example", "path": "example", "type": "example" }, "name": "example", "sign": { "negative": "example", "net": "example", "positive": "example", "suspect": true }, "transactions": 1, "type": "example" } ], "categories": [ "example" ], "date_range": { "end": "example", "start": "example" }, "total_transactions": 1}Validation Error
object
object
object
Example generated
{ "detail": [ { "ctx": {}, "input": "example", "loc": [ "example" ], "msg": "example", "type": "example" } ]}