Skip to content

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).

POST
/api/v1/money/imports/preview
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.

progress_id
string
Media typemultipart/form-data
string

Aggregate import preview; no Budget is written

Media typeapplication/json

The safe data shown before the User confirms an import.

object
account_kind_questions
required

Accounts that require an explicit Cash or Card choice (#1130).

Array<array>
expires_in_seconds
required
integer format: int64
gaps
required
Array<object>

One aggregate-only source-format gap shown before confirmation.

object
count
required
integer
feature
required
string
import_id
required
string
inferred_opening_balances
required
Array<object>

One API balance that the importer inferred as a starting Account row.

object
account
required
string
amount
required
string
currency
required
string
date
required
string
progress_id
required
string
source
required
string
summary
required

Aggregate counts and the bounded source-row sample shown before confirmation.

object
account_count
required
integer
assignment_count
required
integer
byte_stable_round_trip
required
boolean
category_count
required
integer
checks
required
Array<object>

One differential check’s aggregate pass and fail counts.

object
check
required
string
failed
required
integer
passed
required
integer
cleared_count
required
integer
mismatch_classes
required
Array<string>
month_count
required
integer
preview_rows
required
Array<object>

One bounded preview row with date, Account, Payee, exact amount and currency. Memo is omitted.

object
account
required
string
amount
required
string
currency
required
string
date
required
string
payee
required
string
ready_to_assign_adjustment_count
required

Reconciliation rows added to match source Ready to Assign totals.

integer
split_count
required
integer
transaction_count
required
integer
transfer_count
required
integer
title
required
string
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

Media typeapplication/json

The standard API error response: { "error": { ... } }.

object
error
required

Error details.

object
code
required

Stable machine-readable code.

string
Allowed values: bad_request unauthorized forbidden not_found conflict name_conflict_case name_too_long push_endpoint_rejected too_many_requests internal service_unavailable
details
One of:

Optional field or operation details.

object
key
additional properties
string
message
required

Safe text for logs or a user-facing error message.

string
Example
{
"error": {
"code": "bad_request"
}
}
Media typeapplication/json

The standard API error response: { "error": { ... } }.

object
error
required

Error details.

object
code
required

Stable machine-readable code.

string
Allowed values: bad_request unauthorized forbidden not_found conflict name_conflict_case name_too_long push_endpoint_rejected too_many_requests internal service_unavailable
details
One of:

Optional field or operation details.

object
key
additional properties
string
message
required

Safe text for logs or a user-facing error message.

string
Example
{
"error": {
"code": "bad_request"
}
}