Order
An Order is a Customer’s commitment to buy one or more Offers once, moving from placed to paid, fulfilled, and closed.
A recurring purchase is a Subscription, not an Order.
Properties
| Property | Type | Required | Description |
|---|---|---|---|
total | money | required | The amount charged. |
status | string | required | One of placed, paid, fulfilled, closed, canceled, or refunded. |
merchantOfRecord | Party | The Party that charges and books the revenue. | |
outside | boolean | Computed: true when its Customer shares no owner, Studio account, Agreement, or sibling chain with the Startup. | |
lines | json | Each Offer bought, its quantity, amount and the Party that charges for it; a Service line carries its own verdict. | |
fulfillment | string | Where a Service Order’s work stands between paid and fulfilled. | |
payment | string | authorized when the Quote is accepted; captured on the Event the Outcome Contract earns names. | |
revisionsUsed | integer | Revisions the Customer has asked for, counted against the Outcome Contract’s revisions. | |
risk | number | The payment’s fraud risk score from 0 to 99 at screening, as Stripe scored it. | |
tax | money | The sales tax, VAT or GST computed at placement for the buyer’s location and the Offer’s tax category. | |
taxJurisdiction | string | Where the tax is owed, such as US-CA or EU-DE, or none when no registration applies. | |
brief | json | The scope a Service Order bought, from its Quote request: sizes, inputs and turnaround. Intake checks the inputs against it. | |
dueAt | datetime | When a Service Order’s work is due; time waiting on the Customer moves it later. | |
taxExemption | Credential | The exemption or resale certificate that zeroed the tax, when one applies. | |
collectedBy | string | The id of the venue that charged the buyer and pays the Startup; unset when the Startup’s own checkout collected. |
Object
{
"$id": "https: //api.sb/ quietcopy.com/ orders/ order_1",
"$type": "Order",
"total": {
"amount": 39,
"currency": "USD"
},
"status": "placed",
"merchantOfRecord": "party_1",
"outside": true,
"lines": {},
"fulfillment": "intake",
"payment": "authorized",
"revisionsUsed": 1,
"risk": 1,
"tax": {
"amount": 39,
"currency": "USD"
},
"taxJurisdiction": "US-CA",
"brief": {},
"dueAt": "2026-10-22T12: 00: 00Z",
"taxExemption": "credential_1",
"collectedBy": "aws-marketplace"
}Relationships
- An Order buys many Offers: an Order commits to buying one or more Offers once.
buys, inverseorderedIn. - An Order has many Disputes: the Order whose delivery or charge the Dispute contests.
disputes, inversecontests. - An Order is placed by one Customer: a Customer commits to one-time purchases as Orders.
placedBy, inverseplaces. - An Order has one Quote: the Order the Quote becomes when the buyer accepts it before it expires.
quote, inverseacceptedAs.
Lifecycle
| State | Meaning | Moves to |
|---|---|---|
placed (first) | The Customer committed, with the Offer Version and price fixed; nothing is charged yet. | paid by Order.pay; canceled by Order.cancel |
paid | Its amount is settled and its Entries posted; a Service Order’s work runs in fulfillment. | fulfilled by Order.fulfill; closed by Order.confirm; canceled by Order.cancel; refunded by Order.refund |
fulfilled | What it bought is granted: Entitlements for software and data, or a shipment for goods. | closed by Order.confirm; refunded by Order.refund |
closed | The Customer signed off, which earns the Startup its fee. | refunded by Order.refund |
canceled | Ended before fulfillment, with any payment returned in full. | None: it ends here. |
refunded | Its payment returned in full, with the reversing Entries posted; a partial refund keeps its state. | None: it ends here. |
Verbs
createCreates an Order.POST /{namespace}/ordersgetReturns one Order by id.GET /{namespace}/orders/{id}listReturns Orders, newest first, one page at a time.GET /{namespace}/ordersupdateChanges the given properties of an Order.PATCH /{namespace}/orders/{id}cancelCancel ends an Order before fulfillment and returns any payment in full.POST /{namespace}/orders/{order}/cancelconfirmConfirm records the Customer’s sign-off on delivered work, which closes the Order and earns the Startup its fee.POST /{namespace}/orders/{order}/confirmdeliverDeliver hands the finished work of a Service Order to its Customer and opens the acceptance window.POST /{namespace}/orders/{order}/deliverdisputeDispute contests a delivered Order under its Outcome Contract and starts the remedy the contract names.POST /{namespace}/orders/{order}/disputefulfillFulfill grants what an Order bought: Entitlements for software and data, a shipment for goods.POST /{namespace}/orders/{order}/fulfillpayPay settles an Order’s amount through the Startup’s payment account and posts the matching Entries.POST /{namespace}/orders/{order}/payplacePlace commits a Customer to buy an Offer once and records the Offer Version and price at that moment.POST /{namespace}/orders/placerefundRefund returns all or part of an Order’s payment to the Customer and posts the reversing Entries.POST /{namespace}/orders/{order}/refundreviseRevise sends delivered lines back for one counted revision, with the changes the Customer asks for.POST /{namespace}/orders/{order}/revisescreenScreen scores an Order’s payment before it is charged and allows, authenticates, holds or blocks it by the Startup’s risk Policy.POST /{namespace}/orders/{order}/screenstartStart checks a Service Order’s inputs against its brief, then moves it from intake to working and starts its deadline.POST /{namespace}/orders/{order}/start
Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.
| Operation | owner | admin | member | viewer |
|---|---|---|---|---|
Order.create | Yes | Yes | Yes | No |
Order.get | Yes | Yes | Yes | Yes |
Order.list | Yes | Yes | Yes | Yes |
Order.update | Yes | Yes | Yes | No |
Order.cancel | Yes | Yes | Yes | No |
Order.confirm | Yes | No | No | No |
Order.deliver | Yes | Yes | Yes | No |
Order.dispute | Yes | Yes | Yes | No |
Order.fulfill | Yes | Yes | Yes | No |
Order.pay | Yes | No | No | No |
Order.place | Yes | Yes | Yes | No |
Order.refund | Yes | No | No | No |
Order.revise | Yes | Yes | Yes | No |
Order.screen | Yes | Yes | Yes | No |
Order.start | Yes | Yes | Yes | No |
Call it
Place the latest order with an offer.Example
A dropship store takes an Order for two espresso-machine filters, total:. It moves to paid at checkout, fulfilled when the parcel ships, and closed when tracking shows delivery.