Manual reconciliations

Add transactions to a reconciliation

Pulls transactions into the reconciliation, marking each one included or excluded. Naming a deposit slip pulls in every transaction on it. Requires the reconciliations:write permission.

POST
https://services.magicdoor.com/accounting/company-portal/bank-accounts/{bankAccountId}/manual-reconciliations/{manualReconciliationId}/transactions

Authorization

Authorizationstringrequired
Bearer token — Send your API token in the Authorization header as Bearer <token>. Requests without a valid token are rejected with 401 Unauthorized.

Path parameters

bankAccountIdstringrequired

The bank account being reconciled.

example: 1830472847398404096
manualReconciliationIdstringrequired

Snowflake id of the reconciliation.

example: 1830472847398409100

Body

application/json

Send transactionIds, depositSlipIds, or both — at least one of them must be non-empty. Every transaction in the call gets the same type. Re-adding a transaction that is already in this reconciliation just re-marks it, so the call is safe to repeat.

typeenum<string>required

included counts these transactions toward the computed totals; excluded records that you deliberately left them out, so they stop showing up as unexplained.

example: includedincludedexcluded
transactionIdsstring[]

Transactions to pull in. Each must sit on this bank account and must not already belong to a different reconciliation.

depositSlipIdsstring[]

Deposit slips to pull in whole. Each must sit on this bank account; every transaction on the slip is added.

Response

200 · The reconciliation with the new entries and the recomputed balance.

idstring

Snowflake id of the reconciliation.

bankAccountIdstring

The bank account being reconciled.

startDatestring · date

The 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 · date

The statement date the period is being reconciled to.

openingnumber

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

additionsnumber

The total money in that the bank statement shows, as a positive decimal. This is what you declare, not what MagicDoor computed.

subtractionsnumber

The total money out that the bank statement shows, as a positive decimal. Declared, not computed.

closingnumber

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

inProgresscompletedcancelled
creatorobject

Who started the reconciliation. Deprecated mirrors of id — propertyManagerId, tenantId, vendorId, ownerId — are also present, whichever matches type.

memostring

Free-text note. Absent when none was set.

createdstring · date-time

When the reconciliation was started, in the company's timezone.

updatedstring · date-time

When it last changed, in the company's timezone.

entriesEntry[]

Every transaction pulled into the reconciliation, included or excluded.

actualAdditionsnumber

The sum of the included entries whose direction is in. Compare against additions.

actualSubtractionsnumber

The sum of the included entries whose direction is out. Compare against subtractions.

actualClosingnumber

opening plus actualAdditions minus actualSubtractions — the balance the ledger says the account should have.

additionsDifferencenumber

actualAdditions minus additions. Positive means the ledger has more money in than the statement declares.

subtractionsDifferencenumber

actualSubtractions minus subtractions. Positive means the ledger has more money out than the statement declares.

closingDifferencenumber

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

400 · Neither `transactionIds` nor `depositSlipIds` was supplied, or a transaction or deposit slip sits on a different bank account.

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 or deposit slip does not exist, is deleted, or belongs to another company.

409 · One of the transactions already has an entry in a different manual reconciliation. The `detail` names which one.

422 · The reconciliation is not `inProgress`. The `detail` names the state it is actually in.