Skip to main content
POST
Supersede loan product chart of accounts

Authorizations

Authorization
string
header
required

JWT bearer token issued by the identity provider.

Path Parameters

id
string<uuid>
required

Loan product identifier.

Example:

"550e8400-e29b-41d4-a716-446655440000"

Body

application/json
accountingMode
enum<string>
required

Accounting recognition mode. It must match what the product already books under: the accrual basis is contract economics, frozen on the product version at origination, and only the chart of accounts is datable.

Available options:
accrual,
cash
Example:

"accrual"

effectiveFrom
string<date>
required

First civil day (YYYY-MM-DD) the new chart governs. Always a month start, and always a month that has not opened yet: a chart landing inside the open competência would change the accounts of a month already partly accrued, and one landing on a posted month could never be corrected — the ledger dedupes a replayed month on a key that does not carry which chart produced the posting, so the correction is built, sent, and dropped in silence.

Example:

"2026-08-01"

postingRules
object[]
required

The complete new chart, in the same shape the configure route admits. It must keep every borrower position booked per operation, and must keep every per-operation position the outgoing chart had: a position the new chart stops booking leaves the balance already sitting there with nowhere to go, and the double entry would never complain.

Required array length: 7 - 20 elements
midazLedgerId
string

Optional per-product Midaz ledger the new chart's postings route into; both-or-neither with midazOrganizationId.

Maximum string length: 128
Example:

"ledger-def"

midazOrganizationId
string

Optional per-product Midaz organization the new chart's postings route into; both-or-neither with midazLedgerId.

Maximum string length: 128
Example:

"org-abc"

Response

Created

charts
object[]
required

The new chart written for every affected version, one per version.

effectiveFrom
string
required

First civil day (YYYY-MM-DD) the new chart governs.

Example:

"2026-08-01"

loanProductId
string
required

The product whose chart changed (uuid).

Example:

"550e8400-e29b-41d4-a716-446655440000"

movedPositions
object[]
required

Every per-operation position that changes account. Each one produces a balance-transfer posting on the effective date, on every live contract of every affected version, so no contract ends with its balance split across two accounts. Empty means the change files nothing anywhere new.