reconcile.postpone
Postpone a reconciliation: ticked splits become cleared and the statement is kept for next time.
Postpones a reconciliation, GnuCash's Postpone button: the ticked splits become cleared (c), every other listed
split posted on or before the statement date goes back to new (n), and the statement date and ending balance are
kept in the account so the next reconcile.start picks them up (resumedPostponed). Use it
when the statement does not add up yet and you want to carry on later.
A split that was cleared but is not in ticked loses its cleared state, as when you untick it in GnuCash's window, so
pass every split you want kept: start with the ticked that reconcile.start gives. Splits after the statement date
that you did not tick are left as they are.
Examples
Example: with a copy of the reports/reconcile example book open as book.gnucash.
JSON-RPC
Request:
{"jsonrpc":"2.0","id":1,"method":"reconcile.postpone","params":{"account":"Root:Asset:Bank","statementDate":"1970-03-01","endingBalance":"1.00","ticked":["d0000000000000000000000000000000"]}}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"changed": [
{
"split": "d0000000000000000000000000000005",
"from": "c",
"to": "n",
"…": "…"
},
{
"split": "d0000000000000000000000000000000",
"from": "n",
"to": "c",
"…": "…"
}
],
"…": "…"
}
}
Request:
{"jsonrpc":"2.0","id":2,"method":"reconcile.start","params":{"account":"Root:Asset:Bank"}}
Response:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"resumedPostponed": true,
"endingBalance": {
"num": "100",
"denom": "100"
},
"…": "…"
}
}
Command line
red-ale exec --book book.gnucash --script - <<'EOF'
reconcile.postpone {"account":"Root:Asset:Bank","statementDate":"1970-03-01","endingBalance":"1.00","ticked":["d0000000000000000000000000000000"]}
reconcile.start {"account":"Root:Asset:Bank"}
EOF
It prints:
[
{
"changed": [
{
"split": "d0000000000000000000000000000005",
"from": "c",
"to": "n",
"…": "…"
},
{
"split": "d0000000000000000000000000000000",
"from": "n",
"to": "c",
"…": "…"
}
],
"…": "…"
},
{
"resumedPostponed": true,
"endingBalance": {
"num": "100",
"denom": "100"
},
"…": "…"
}
]
MCP tool call
Tool call:
{"name":"reconcile.postpone","arguments":{"account":"Root:Asset:Bank","statementDate":"1970-03-01","endingBalance":"1.00","ticked":["d0000000000000000000000000000000"]}}
Result:
{
"structuredContent": {
"changed": [
{
"split": "d0000000000000000000000000000005",
"from": "c",
"to": "n",
"…": "…"
},
{
"split": "d0000000000000000000000000000000",
"from": "n",
"to": "c",
"…": "…"
}
],
"…": "…"
}
}
Tool call:
{"name":"reconcile.start","arguments":{"account":"Root:Asset:Bank"}}
Result:
{
"structuredContent": {
"resumedPostponed": true,
"endingBalance": {
"num": "100",
"denom": "100"
},
"…": "…"
}
}
Without ticks, the cleared split of 31 December goes back to n, and the one of 1 February, after the statement
date, stays cleared:
Example: with a copy of the reports/reconcile example book open as book.gnucash.
JSON-RPC
Request:
{"jsonrpc":"2.0","id":1,"method":"reconcile.setState","params":{"split":"d0000000000000000000000000000006","state":"c"}}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": "…"
}
Request:
{"jsonrpc":"2.0","id":2,"method":"reconcile.postpone","params":{"account":"Root:Asset:Bank","statementDate":"1970-01-15","endingBalance":"24.00","ticked":[]}}
Response:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"changed": [
{
"split": "d0000000000000000000000000000005",
"from": "c",
"to": "n",
"…": "…"
}
],
"…": "…"
}
}
Command line
red-ale exec --book book.gnucash --script - <<'EOF'
reconcile.setState {"split":"d0000000000000000000000000000006","state":"c"}
reconcile.postpone {"account":"Root:Asset:Bank","statementDate":"1970-01-15","endingBalance":"24.00","ticked":[]}
EOF
It prints:
[
"…",
{
"changed": [
{
"split": "d0000000000000000000000000000005",
"from": "c",
"to": "n",
"…": "…"
}
],
"…": "…"
}
]
MCP tool call
Tool call:
{"name":"reconcile.setState","arguments":{"split":"d0000000000000000000000000000006","state":"c"}}
Result:
{
"content": [
{
"type": "text",
"text": "\"…\""
}
]
}
Tool call:
{"name":"reconcile.postpone","arguments":{"account":"Root:Asset:Bank","statementDate":"1970-01-15","endingBalance":"24.00","ticked":[]}}
Result:
{
"structuredContent": {
"changed": [
{
"split": "d0000000000000000000000000000005",
"from": "c",
"to": "n",
"…": "…"
}
],
"…": "…"
}
}
Effect: write, on the Book.
Params
Params of reconcile.finish and reconcile.postpone.
account(AccountRef, required): The account reconciled.statementDate(Date, required): The statement date.endingBalance(Amount, required): The statement's ending balance, raw sign.includeSubaccounts(boolean or null): Reconcile the sub-accounts too. Defaults to the account's stored choice.utcOffsetMinutes(integer (int32) or null): A fixed offset from UTC in minutes to use instead of the server's local time zone.ticked(array of Guid, required): The ticked splits.force(boolean):reconcile.finishonly: finish even though the difference is not zero (GnuCash's "finish anyway").
Result
What reconcile.postpone did.
changed(array of StateChangeWire, required): Splits whose state changed: ticked ones toc, unticked ones posted by the statement date ton.statementTime(Timestamp, required): The statement date kept for next time.lastInterval(IntervalWire or null): The interval recorded for proposing the next statement date.