Adjust a bank ledger transfer
Rewrites a bank ledger transfer and the transactions behind it. Every field you can send replaces what was there. Requires the bank_ledger_transfers:write permission and a company with the company ledger enabled.
Authorization
AuthorizationstringrequiredPath parameters
bankLedgerTransferIdstringrequiredSnowflake id of the bank ledger transfer.
Body
application/json
Despite the PATCH verb this is a full replacement: send the transfer as it should end up. A field you leave out is cleared, not kept — so re-send memo, reference, propertyId and metadata if you still want them. transferType cannot be changed, and the legs you send must match the type the transfer already has.
transferDatestring · date-timerequiredThe date the money moved, read in the company's timezone.
amountnumberrequiredHow much moves, as a positive decimal between 0.01 and 999999999.99.
outgoingobjectThe bank side money leaves. Required for bankToBank and bankWithdrawal; must be omitted for bankDeposit.
incomingobjectThe bank side money arrives in. Required for bankToBank and bankDeposit; must be omitted for bankWithdrawal.
offsetAccountobjectThe non-bank side of the entry. Required for bankDeposit and bankWithdrawal; must be omitted for bankToBank.
propertyIdstringAttribute the movement to a property. Its portfolio is resolved server-side and stamped on the transactions.
paymentMethodenum<string>How the money moved. Defaults to other.
externalTransactionTypeenum<string>Where the movement was seen outside MagicDoor. Defaults to offline.
externalTransactionIdstringThe identifier the external system uses, up to 200 characters.
memostringFree-text note, up to 1000 characters.
referencestringYour own reference, up to 200 characters.
metadataobjectArbitrary string-to-string map stored with the transfer.
Response
200 · The transfer after the adjustment.
idstringSnowflake id of the transfer.
createdstring · date-timeWhen the transfer was recorded, in the company's timezone.
updatedstring · date-timeWhen the transfer was last adjusted, in the company's timezone.
transferDatestring · date-timeThe date the money moved, in the company's timezone. This is the transaction date on the underlying entries.
transferTypeenum<string>What kind of movement this is: bankToBank between two of the company's bank accounts, bankDeposit into one bank account from a non-bank account, bankWithdrawal out of one bank account to a non-bank account. Fixed at creation — an adjustment cannot change it.
amountnumberHow much moved, as a positive decimal. The direction is carried by transferType, never by the sign.
propertyIdstringThe property the movement is attributed to. Absent when it is not attributed to one.
paymentMethodenum<string>How the money moved, read back from the underlying transactions. Absent when the transfer has no linked transactions.
outTransactionIdstringThe out transaction that credits the outgoing bank account's cash. Absent on a bankDeposit.
inTransactionIdstringThe in transaction that debits the incoming bank account's cash. Absent on a bankWithdrawal.
outgoingobjectWhere the money left from, read back from the out transaction. Absent on a bankDeposit.
incomingobjectWhere the money landed, read back from the in transaction. Absent on a bankWithdrawal.
offsetAccountobjectThe non-bank side of a one-legged transfer: what the deposit came from, or what the withdrawal was spent on. Absent on a bankToBank.
memostringFree-text note. Absent when none was set.
referencestringYour own reference, for example a wire confirmation number. Absent when none was set.
metadataobjectArbitrary string-to-string map stored with the transfer. An empty object when nothing was stored.
creatorobjectWho recorded the transfer. Deprecated mirrors of id — propertyManagerId, tenantId, vendorId, ownerId — are also present, whichever matches type.
deletedstring · date-timeWhen the transfer was soft-deleted. These endpoints never return deleted transfers, so it is always absent.
400 · `amount` is not positive or out of range, the legs do not match the transfer's `transferType`, or `memo`, `reference` or `externalTransactionId` is too long.
401 · The access token is missing, expired, or not for this company.
403 · The caller does not hold the `bank_ledger_transfers:write` permission.
404 · The transfer is not in this company, or one of its linked transactions has gone missing.
422 · The company does not have the company ledger enabled, the transfer has no linked transactions to keep in sync, or a linked transaction is not a bank ledger transfer entry.
transferType | Send | What is posted |
|---|---|---|
bankToBank | outgoing and incoming, no offsetAccount | Two linked transactions: an out on the outgoing bank account's cash account and an in on the incoming one. Cash falls on the outgoing side and rises on the incoming side by amount. |
bankDeposit | incoming and offsetAccount, no outgoing | One in transaction that raises the incoming bank account's cash by amount. offsetAccount carries the other half of the entry. |
bankWithdrawal | outgoing and offsetAccount, no incoming | One out transaction that lowers the outgoing bank account's cash by amount. offsetAccount carries the other half of the entry. |
This endpoint mirrors the create body, not a patch document. Read the transfer first and send back everything you want to keep.