Before you start
- You need a Lender bearer token (a JWT issued by your Access Manager). Every operation is authenticated and tenant-scoped.
- Decide which jurisdiction the product belongs to. Credit books under Brazil. The generic base,
XX, books no credit. Brazilian products carry extra fields covered in the Brazil regulatory pack.
Steps
1
Create the product
POST /api/v1/loan-products registers the named product. This is the catalog entry the versions hang off. (Brazil has an alias, POST /api/v1/br/loan-products, that accepts the BR extensions.)2
Create a version
POST /api/v1/loan-products/{id}/versions freezes a set of terms (rate configuration, term, and the schedule shape) as an immutable version. Every loan traces back to the version it used at origination. You never edit a version, you publish a new one. A version must declare its rate band and the borrower kinds it admits, or it originates nothing.3
Attach charges
POST /api/v1/loan-products/{id}/charges applies a charge template (an origination fee, a service charge) that the loans originated from this product inherit.4
Bind an accounting profile
POST /api/v1/loan-products/{id}/accounting-profiles declares how the product books to the . The profile carries the posting rules (which double-entry legs fire for each event) and the ledger organization and ledger they book into. Activation refuses a version that has no profile. See Accounting and accrual runs.5
Activate the product
POST /api/v1/loan-products/{id}/activate sets the product to active and pins the version you name as its current version. Activation is a gate, not a label: until it happens, the product originates nothing. A Brazilian version also needs its carteira, normPortfolioClass, before it activates. Each application names the version it uses at origination, so existing loans keep the version they started on.Promote a new version
Activation is the door the first version comes through. Promotion is the door for every version after it. It repoints a product that is already live at a different current version, without taking the product down and putting it back up.
POST /api/v1/loan-products/{id}/promote names the version to pin. Brazil has an alias, POST /api/v1/br/loan-products/{id}/promote, that behaves identically.
Promotion carries the same two readiness checks activation carries: an accounting profile is present, and the version is complete for its jurisdiction. It carries them because it is the same act. A second route without them would be a quiet way around the first.
Inspecting products
What happens downstream
Creating and activating products emits
loan_product.created, loan_product_version.created, loan_product.activated, accounting_profile.configured, and loan_charge.applied on the event backbone (see Lender in the platform).
Next steps
Originate a loan
Take an active product and originate a loan against it.

