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
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.)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.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.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. Without a profile, the product cannot post. See Accounting and accrual runs.Inspecting products
| Operation | Purpose |
|---|---|
GET /api/v1/loan-products | List loan products. |
GET /api/v1/loan-products/{id} | Read a single product and its versions. |
GET /api/v1/loan-products/{id}/floating-rates | Read the product’s floating-rate table, if it references one. |
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.

