Creates a contract

A matching contract approval rule returns HTTP 202 with contract_id and approval_request_id instead of the contract.
This is a proposal, not a created contract: nothing is created until the request is approved, and the contract then keeps contract_id.
To check on it, retrieve-a-draft-contract with contract_id shows a FULL contract waiting as a draft and its approval.status
(WAITING, REJECTED, CANCELLED or WITHDRAWN); once approved, retrieve-a-contract returns it.
Pass idempotency_key on the first call and keep it across retries: a retry with the same key answers with what the first call made
(the contract, or the request it waits on) instead of making a second contract. The key is optional; each call without one makes a new contract.
A key whose request was rejected or cancelled is closed; send the contract again with a new key.

Rillet supports two contract scope types: FULL and REVENUE_RECOGNITION_ONLY. The selected scope determines how the invoices are created and what information the user needs to provide.

The FULL scope is used when contract invoices are generated and sent directly from Rillet. In this case, Rillet automatically assigns the invoice numbers.

The REVENUE_RECOGNITION_ONLY scope is intended for situations where contracts and invoices are issued from another system and only need to be recorded in Rillet for accounting purposes. In this workflow, users must provide the invoice numbers manually. Other fields can be populated based on the data imported from the external system.

For example, if your organization issues invoices through an external billing platform but tracks financials in Rillet, you should select REVENUE_RECOGNITION_ONLY. If Rillet handles the entire invoicing and sending process, choose the FULL scope.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
uuid

Stable key for retries of the same contract. A retry with the same key returns what the first call made instead of a second contract.
Use a new key for a different contract.

Body Params
string
required
date
required
date
required
date
items
array of objects
required
length ≥ 1
items*
invoicing

Mandatory for contracts with scope different than REVENUE_RECOGNITION_ONLY. For contracts with any nonzero contract-level or item-level minimum commitment, the invoice date resolved from this schedule must equal start_date.

usage_configuration
object

Configuration for contracts with usage products.

external_references
array of objects, unique
external_references
uuid
required
uuid
uuid

The customer to ship to. Omit, or send customer_id, to ship to the billing customer.

uuid | null

ID of one of the billing customer's billing_addresses. If omitted, the first address in the customer's billing_addresses is used, or none when the customer has no billing address. Send null for no billing address; rejected when a tax provider is connected. Rejected when the address does not belong to the billing customer or is not a billing address.

uuid | null

ID of one of the ship-to customer's shipping_addresses. If omitted, the first address in the ship-to customer's shipping_addresses is used, or none when it has no shipping address. Send null for no shipping address. Rejected when the address does not belong to the ship-to customer or is not a shipping address. When a shipping address is set it determines tax; otherwise the billing address does.

email_selection
object

Who receives the invoices. Omit to send to all of the billing customer's emails (ALL_CUSTOMER_EMAILS).

exchange_rate
object

Optional exchange rate for converting the contract currency to the subsidiary currency. If not provided and the contract currency differs from the subsidiary currency, a system default rate will be used.

string
length ≤ 50

Optional purchase order number. When set, it is copied onto every invoice generated by the contract.

invoice_schedule
object

Optional. Omit to use the fully-computed invoice schedule. When provided, it replaces the FIXED billing layout: submit any set of invoices you choose (split, merge, add, or drop). Rules: for each contract item, the sum of its submitted FIXED line totals must equal its computed contract value (redistribution only); every FIXED line must carry its contract_item_id; invoices must have distinct issue_dates, each within the contract period and outside any closed book-close period; for FIXED lines total_amount must equal unit_amount * quantity, and amounts on discounted lines cannot be changed (they may be regrouped, not re-sliced). USAGE and USAGE_COMMITMENT billing is computed by the system and must not be submitted; it is kept unchanged. Revenue recognition and TCV are unaffected. See ContractInvoiceScheduleItem for the per-line rules.

string
enum
required

The "FULL" scope includes revenue recognition and invoicing handled in Rillet. With the "REVENUE_RECOGNITION_ONLY" scope, invoicing is handled outside Rillet.

Allowed:
Responses

Language
Credentials
Bearer
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json