Start a manual reconciliation
Opens a new reconciliation period for a bank account from the totals on a bank statement. Requires the reconciliations:write permission.
Authorization
AuthorizationstringrequiredPath parameters
bankAccountIdstringrequiredThe bank account being reconciled.
Body
application/json
additions and subtractions are the statement's own money-in and money-out totals, both entered as positive numbers. The closing balance is derived, never sent.
asOfstring · daterequiredThe statement date. It cannot be in the future, and it must be after the previous completed period ended.
additionsnumberrequiredTotal money in on the statement, as a positive decimal. Zero is allowed; negatives are not.
subtractionsnumberrequiredTotal money out on the statement, as a positive decimal. Zero is allowed; negatives are not.
openingnumberThe statement's opening balance. On the first reconciliation for the account this is what the period starts from, defaulting to zero. Once a period has been completed the previous closing always wins, and sending a different value is rejected.
memostringFree-text note about the period.
Response
200 · The reconciliation that was started, as a summary. It has no entries yet.
idstringSnowflake id of the reconciliation.
bankAccountIdstringThe bank account being reconciled.
startDatestring · dateThe first day of the period, which is the day after the previous completed period ended. Absent on the company's very first reconciliation for this account, which has no lower bound.
endDatestring · dateThe statement date the period is being reconciled to.
openingnumberThe balance the account started the period with, as a decimal. On any reconciliation after the first this is copied from the previous completed period's closing and cannot be overridden.
additionsnumberThe total money in that the bank statement shows, as a positive decimal. This is what you declare, not what MagicDoor computed.
subtractionsnumberThe total money out that the bank statement shows, as a positive decimal. Declared, not computed.
closingnumberopening plus additions minus subtractions. MagicDoor keeps it in step with those three; you never send it.
statusenum<string>inProgress while it is being worked on, then completed or cancelled.
creatorobjectWho started the reconciliation. Deprecated mirrors of id — propertyManagerId, tenantId, vendorId, ownerId — are also present, whichever matches type.
memostringFree-text note. Absent when none was set.
createdstring · date-timeWhen the reconciliation was started, in the company's timezone.
updatedstring · date-timeWhen it last changed, in the company's timezone.
400 · `opening`, `additions` or `subtractions` is negative; `asOf` is in the future; `asOf` overlaps or precedes the previous completed period; or `opening` was sent and does not equal the previous completed period's `closing`.
401 · The access token is missing, expired, or not for this company.
403 · The caller does not hold the `reconciliations:write` permission.
404 · No bank account with this id belongs to the caller's company.
- Start a period
Declare the statement date and the statement's own money-in and money-out totals. The period begins the day after the previous completed one ended.
- Pull in transactions
Add the transactions the statement covers, each marked
includedorexcluded. MagicDoor recomputesactualAdditions,actualSubtractionsandactualClosingfrom theincludedones. - Close the gap
Keep adding, removing and correcting until
closingDifferenceis zero — the ledger and the statement now agree. - Complete it
Completing locks the period. Its
closingbecomes the next period'sopening.
Starting a new one cancels the current in-progress reconciliation and deletes its entries, without asking. Check for an existing inProgress reconciliation before calling start.