Skip to main content

Create Extraordinary Amortization

This endpoint creates an extraordinary amortization over one or more installment of an issuance. The event-conciliation-service groups the instalments into a single extraordinary amortization event, distributes the declared amount according to the informed amortization_type and obtains the Present Value via security-service — the integrator does not calculate Present Value on their side. The reference_date is provided by the caller in the extraordinary amortization request and is the only temporal reference used by the service when classifying overdue instalments and applying the pro-rata discount.


Request

ENDPOINT
/event_conciliation/extraordinary_event
METHOD
POST

Request Body

There are two creation modes. Mode 1 — Targeted requires installment_list (an array of installment_number, integers ≥ 1) and is used with the early_amortization, present_amount and matured_installments types. Mode 2 — Acquittance does not take installment_list and is used with the equal_amount and first_installments types. The numbers sent in installment_list are resolved by the service against the installment_number of the corresponding security.

Example — Mode 1 (early_amortization):

{
"security_key": "971380d4-469e-48f6-a64b-3afb8a88109e",
"investment_key": "<investment_key>",
"amortization_type": "early_amortization",
"amount": 1500.00,
"reference_date": "2026-04-24",
"due_date": "2026-04-24",
"installment_list": [1]
}

Example — Mode 2 (equal_amount):

{
"security_key": "971380d4-469e-48f6-a64b-3afb8a88109e",
"investment_key": "<investment_key>",
"amortization_type": "equal_amount",
"amount": 5000.00,
"reference_date": "2026-04-24",
"due_date": "2026-04-24"
}

Request Body Params

FieldTypeRequiredDescription
security_keystring (UUID)YesUnique key of the asset (security) to which the amortization will be applied.
investment_keystring (UUID)YesKey of the target investment. Used by security-service as the proportional basis in the Present Value calculation.
amortization_typestringYesDistribution strategy. Values: equal_amount, first_installments, present_amount, matured_installments, early_amortization.
amountnumberYesTotal amount to be amortized (in BRL). Distributed across the selected instalments according to the amortization_type.
reference_datestring (date)YesReference date in YYYY-MM-DD format. Provided by the caller — the service uses it as "today" to classify overdue instalments and apply the pro-rata Present Value discount.
due_datestring (date)YesTarget settlement date (typically the same as reference_date).
installment_listarray of integers (≥ 1)ConditionalList of installment_number (not UUIDs) of the target instalments, with minItems: 1. Required for present_amount, matured_installments and early_amortization. Omit for equal_amount and first_installments to use acquittance distribution (Mode 2). The service resolves each number against the installment_number of the security; non-existent numbers return EVC000007. The legacy installment_key_list has been removed — clients still sending the field receive QIT000001 (400).
total_discountnumberNoUsed only with present_amount — distributes the discount in the order interest → penalty → principal.
number_of_installmentsintegerNoUsed only with first_installments, when installment_list is not informed.

Response

STATUS
201
Response Body
{
"extraordinary_event_conciliation_key": "11111111-1111-4111-8111-111111111111",
"security_key": "971380d4-469e-48f6-a64b-3afb8a88109e",
"amortization_type": "early_amortization",
"total_expected_amount": 1500.00,
"total_discount_amount": 0,
"status": "pending_conciliation",
"reference_date": "2026-04-24",
"due_date": "2026-04-24",
"event_conciliation_list": [
{
"event_conciliation_key": "22222222-2222-4222-8222-222222222222",
"installment_key": "33333333-3333-4333-8333-333333333333",
"expected_amount": 1500.00,
"discount_amount": 0,
"due_date": "2026-04-24",
"status": "pending_conciliation",
"event_conciliation_type": "extraordinary"
}
]
}

Response Body Params

FieldTypeDescription
extraordinary_event_conciliation_keystring (UUID)Key of the general extraordinary amortization event created.
security_keystring (UUID)Key of the asset — echoes the value sent.
amortization_typestringChosen amortization type — echoes the value sent.
total_expected_amountnumberSum distributed across the event_conciliation (instalment conciliation events) by the engine of the chosen type.
total_discount_amountnumberTotal discount applied. Different from zero only for present_amount.
statusstringInitial status of the extraordinary event. Always pending_conciliation on creation.
reference_datestring (date)Reference date sent in the request (it must match the payoff date).
due_datestring (date)Target settlement date sent in the request.
event_conciliation_listarrayList of event_conciliation (instalment conciliation event) generated. event_conciliation_list object.

event_conciliation_list object

FieldTypeDescription
event_conciliation_keystring (UUID)Key of the instalment conciliation event (event_conciliation).
installment_keystring (UUID)Key of the instalment affected by this conciliation event.
expected_amountnumberAmount assigned to this instalment conciliation event by the distribution engine.
discount_amountnumberShare of the total_discount allocated to this instalment conciliation event (when applicable).
due_datestring (date)Due date of the associated instalment.
statusstringInitial status of the instalment conciliation event. Always pending_conciliation on creation.
event_conciliation_typestringType of the event_conciliation. Always extraordinary for instalment conciliation events created by this flow.

Errors

CodeHTTPMeaning
EVC100001400Invalid amortization_type. Use one of the five supported values.
EVC100002400installment_list is required (and non-empty) for present_amount, matured_installments or early_amortization.
EVC100003400number_of_installments is required for first_installments when installment_list is not sent.
EVC100004400Some informed instalment does not belong to the target security.
EVC000007404Some integer in installment_list does not match any installment_number of the security (InstallmentNumberNotFound).
QIT000001400Schema failure — for example, sending the legacy installment_key_list (removed) or an installment_list item that is not an integer ≥ 1.
EVC100005400amount does not cover all the selected instalments (not applicable to early_amortization).
EVC100006400total_discount exceeds the sum of the Present Value of the selected instalments.
EVC100007400For matured_installments, all the selected instalments must be overdue.
EVC100008400There is already a pending extraordinary amortization for the instalment — cancel it before creating another.
EVC100013424Security API unavailable (Failed Dependency). Transient — retry once it is restored.
EVC100015400early_amortization requires exactly 1 instalment in installment_list.
EVC100016400The target instalment of early_amortization must not be overdue.
EVC100017400In early_amortization, amount must be less than or equal to the Present Value of the instalment.

Refer to the Error catalog for complete resolution.


See also