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 — the generic baseline or Brazil. 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 was originated under; you never edit a version, you publish a new one.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 posting rules (which double-entry legs fire for each event) and the ledger organization and ledger they book into. Lender refuses to disburse a loan whose version has no profile, so bind it before you originate. 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. Each application names the version it is originated under, so existing loans keep the version they started on.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 streaming backbone — see Lender in the platform.
Next steps
Originate a loan
Take an active product and originate a loan against it.

