v1
latestOpenAPI 3.1.02026-07-24111224223.3 KBCreates a draft contract
Stages a contract in the "draft" holding state instead of creating it directly as an active contract. Draft contracts appear in the Rillet UI under "Draft" for a human to approve or reject.
Deduplication
To prevent duplicate draft contracts on retry, supply at least one external_references entry with a stable (type, id) pair. When you POST again with any matching (type, id) pair, the prior draft record is replaced with the new payload.
Draft contracts created without any external_references are not deduplicated — every POST creates a new record.
External reference types
Each reference's type must match a slug already defined under Rillet Settings → External References for the organization; unknown slugs return a 400. References attached at create time are preserved when the draft contract is promoted to an active contract.
Promotion
Promotion to an active contract happens through the Rillet UI. The public API does not currently expose a programmatic promotion endpoint.
Request body
Example request
{
"external_references": [
{
"type": "xyzSystemId",
"id": "234",
"url": "https://xyzsystempage.com/ids/234"
}
],
"name": "Acme Corp - Annual subscription",
"amount": {
"amount": "1.01",
"currency": "USD"
},
"items": [
{
"price": {
"amount": {
"amount": "1.01",
"currency": "USD"
},
"interval_months": 1
},
"quantity": 1,
"discount": {
"amount_off": {
"amount": "1.01",
"currency": "USD"
}
}
}
]
}Response
OK
Example response
{
"external_references": [
{
"type": "xyzSystemId",
"id": "234",
"url": "https://xyzsystempage.com/ids/234"
}
],
"amount": {
"amount": "1.01",
"currency": "USD"
},
"items": [
{
"price": {
"amount": {
"amount": "1.01",
"currency": "USD"
},
"interval_months": 1
},
"discount": {
"amount_off": {
"amount": "1.01",
"currency": "USD"
}
}
}
]
}