Skip to main content
POST
Create loan product version (BR alias)

Authorizations

Authorization
string
header
required

JWT bearer token issued by the identity provider.

Path Parameters

id
string<uuid>
required

Loan product identifier.

Body

application/json
changeReason
string
required

Reason for the new version.

currency
string
required

ISO 4217 currency code the product version denominates (3 uppercase letters); the loan's currency source of truth.

Required string length: 3
Example:

"BRL"

jurisdictionCode
string
required

Jurisdiction profile code.

Example:

"BR"

rateBand
object
required

Price band this version authorizes, in annual basis points. Required: a version declaring no band originates nothing. A pointer so an omitted band is refused instead of defaulting to a zero-to-zero band that authorizes only a 0% rate.

admittedBorrowerKinds
enum<string>[] | null

Kinds of borrower this version will originate for. Omitting it, or sending an empty list, declares NOTHING and admits NOBODY — it does not mean "both". Brazil taxes the two kinds at different IOF rates (Decreto 6.306/2007, art. 7o, I, "b"), so a product that has not said whose credit it grants cannot be priced. Duplicates are collapsed and the set is stored sorted; any other value is refused with 422.

Maximum array length: 2
Available options:
pessoaFisica,
pessoaJuridica
Example:
firstDueDateWindow
object

Span of days after the money date in which this version admits a CHOSEN first instalment date. OPTIONAL, unlike the price band: omit it and the version bounds no chosen date, which is how every product that takes the generator's monthly grid behaves. Omitted is not a window of zero.

fixedAnnualRateBps
integer<int64>

Fixed annual rate in basis points.

Example:

1850

floatingRateTableId
string

Floating-rate table identifier.

Example:

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

floatingSpreadBps
integer<int64>

Floating spread in basis points.

Example:

1850

jurisdictionExtensions
object

Opaque per-jurisdiction version fields.

rateMode
string

Rate mode (fixed|floating).

Example:

"fixed"

requiresFloatingRate
boolean

Whether a floating-rate table is required.

Response

Created

accrualBasis
string
required

Interest recognition method the servicing accrual engine applies (effective_interest|linear).

Example:

"effective_interest"

admittedBorrowerKinds
string[]
required

Kinds of borrower this version will originate for, de-duplicated and sorted. An EMPTY list means the version declares nothing and admits nobody; it never means "both".

Example:
changeReason
string
required

Reason recorded for creating this version.

createdAt
string
required

Creation timestamp (RFC3339, UTC).

Example:

"2026-06-14T12:00:00Z"

currency
string
required

ISO 4217 currency code the product version denominates (3 uppercase letters).

Example:

"BRL"

fixedAnnualRateBps
integer<int64>
required

Fixed annual rate in basis points (1 bps = 0.01%).

Example:

1850

floatingSpreadBps
integer<int64>
required

Floating spread in basis points (1 bps = 0.01%).

Example:

1850

id
string
required

Server-assigned version identifier (uuid).

Example:

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

jurisdictionCode
string
required

Jurisdiction profile code (e.g. BR).

Example:

"BR"

productId
string
required

Owning loan product identifier (uuid).

Example:

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

rateMode
string
required

Rate mode (fixed|floating).

Example:

"fixed"

requiresFloatingRate
boolean
required

Whether a floating-rate table is required for this version.

firstDueDateWindow
object

Span of days after the money date in which this version admits a chosen first instalment date. Absent means the version bounds no chosen date, which is the ordinary case.

floatingRateTableId
string

Linked floating-rate table identifier (uuid); empty in fixed mode.

Example:

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

jurisdictionExtensions
object

Opaque per-jurisdiction version fields, echoed from the request for traceability.

rateBand
object

Price band this version authorizes, in annual basis points. Absent only on a stored version that predates the band; such a version originates nothing.