Skip to main content
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.
Presence is read from the keys of values, not from what they decoded to. "terms": [] and "terms": null both count as stated, so a locked field spelled empty is refused rather than quietly accepted.

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 is 422 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.
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.