Product configurations
Create a configuration
Write the terms Loans are issued under, and receive the stored configuration with the version number an issuance names.
POST
A Product configuration is the set of terms Loans are issued under: one Archetype, and the values that Archetype admits. This call writes version 1 and answers
201 with the stored configuration.
A configuration is never edited. A later change is a new version through POST /v1/tenants/{tenant_id}/product-configurations/{id}/versions, and a Loan keeps the version it was issued under.
The body is submitted whole and rejected whole. The first failure stops the walk and names its field, so a body carrying two problems reports one.
Path parameters
string
required
The Tenancy the configuration belongs to. 1–64 characters of
a–z A–Z 0–9 - _. A configuration belonging to another Tenancy answers 404, the same as one that never existed.Body
string
required
The repayment shape, fixed at creation and never changed by a later version. One of
instalment, bnpl, payday. The set is closed.object
required
The terms themselves. Every field is optional on the wire; the Archetype’s frame decides which are required, and refuses a missing one by name rather than supplying a default.
Response
string
required
The configuration’s identifier. An issuance names it as
configuration_id.string
required
The Tenancy that holds it.
string
required
The Archetype the configuration was created under. A new version carries
values alone, so this never changes.integer
required
Counts from 1 and rises by one. An issuance names it as
configuration_version; the word latest there is refused by name.string
required
RFC 3339. When the row was written, not a day a fact is about.
object
required
The stored terms, echoed back in the form they will be read in.
Refusals
Every refusal below is422 and carries {"error": "<sentence>"}. There is no error code — branch on the status.
Any query parameter on this route answers
400: the route reads none.
Why a locked field is refused rather than ignored
Why a locked field is refused rather than ignored
A value you believe is in force and is not is a dispute waiting for its Loan. A
payday body naming terms is telling the Platform the loan repays over a menu of periods; a single-period product cannot honour that, and accepting the body quietly would let the Loan be issued under terms nobody agreed to. The message names both halves — the field, and the Archetype’s own reason.