Complete a manual reconciliation
Closes the period, but only when the included entries exactly match the declared statement totals. Requires the reconciliations:write permission.
Authorization
AuthorizationstringrequiredPath parameters
bankAccountIdstringrequiredThe bank account being reconciled.
manualReconciliationIdstringrequiredSnowflake id of the reconciliation.
Body
application/json
The body is required, but every field in it is optional — {} is valid.
memostringNote to store on the completed period. Replaces the existing memo.
Response
200 · The reconciliation, now `completed`.
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.
entriesEntry[]Every transaction pulled into the reconciliation, included or excluded.
actualAdditionsnumberThe sum of the included entries whose direction is in. Compare against additions.
actualSubtractionsnumberThe sum of the included entries whose direction is out. Compare against subtractions.
actualClosingnumberopening plus actualAdditions minus actualSubtractions — the balance the ledger says the account should have.
additionsDifferencenumberactualAdditions minus additions. Positive means the ledger has more money in than the statement declares.
subtractionsDifferencenumberactualSubtractions minus subtractions. Positive means the ledger has more money out than the statement declares.
closingDifferencenumberactualClosing minus closing. It must be exactly zero before the reconciliation can be completed.
depositSlipsDepositSlip[]The deposit slips the entries belong to, so you can group by slip instead of by transaction.
401 · The access token is missing, expired, or not for this company.
403 · The caller does not hold the `reconciliations:write` permission.
404 · The bank account or reconciliation is not the caller's, or a transaction one of the entries points at no longer exists.
422 · The reconciliation is not `inProgress`; or it has no entries; or the included entries do not match the declared totals; or a transaction an entry points at has moved to another bank account. The `detail` says which.
There is no tolerance. actualAdditions must equal additions, actualSubtractions must equal subtractions, and closing must equal opening + additions - subtractions. A reconciliation with no entries at all cannot be completed either. Read the reconciliation first and check closingDifference is 0.
Once completed, the period's closing becomes the opening of the next reconciliation on this bank account, and that value can no longer be overridden.