Skip to content

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

PropertyTypeRequiredDescription
totalmoneyrequiredThe amount charged.
statusstringrequiredOne of placed, paid, fulfilled, closed, canceled, or refunded.
merchantOfRecordPartyThe Party that charges and books the revenue.
outsidebooleanComputed: true when its Customer shares no owner, Studio account, Agreement, or sibling chain with the Startup.
linesjsonEach Offer bought, its quantity, amount and the Party that charges for it; a Service line carries its own verdict.
fulfillmentstringWhere a Service Order’s work stands between paid and fulfilled.
paymentstringauthorized when the Quote is accepted; captured on the Event the Outcome Contract earns names.
revisionsUsedintegerRevisions the Customer has asked for, counted against the Outcome Contract’s revisions.
risknumberThe payment’s fraud risk score from 0 to 99 at screening, as Stripe scored it.
taxmoneyThe sales tax, VAT or GST computed at placement for the buyer’s location and the Offer’s tax category.
taxJurisdictionstringWhere the tax is owed, such as US-CA or EU-DE, or none when no registration applies.
briefjsonThe scope a Service Order bought, from its Quote request: sizes, inputs and turnaround. Intake checks the inputs against it.
dueAtdatetimeWhen a Service Order’s work is due; time waiting on the Customer moves it later.
taxExemptionCredentialThe exemption or resale certificate that zeroed the tax, when one applies.
collectedBystringThe id of the venue that charged the buyer and pays the Startup; unset when the Startup’s own checkout collected.

Object

JSON
{
  "$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, inverse orderedIn.
  • An Order has many Disputes: the Order whose delivery or charge the Dispute contests. disputes, inverse contests.
  • An Order is placed by one Customer: a Customer commits to one-time purchases as Orders. placedBy, inverse places.
  • An Order has one Quote: the Order the Quote becomes when the buyer accepts it before it expires. quote, inverse acceptedAs.

Lifecycle

Order lifecycle: placed, paid, fulfilled, closed, canceled (ends), refunded (ends)placed → paid: Order.payplaced → canceled: Order.cancelpaid → fulfilled: Order.fulfillpaid → closed: Order.confirmpaid → canceled: Order.cancelpaid → refunded: Order.refundfulfilled → closed: Order.confirmfulfilled → refunded: Order.refundclosed → refunded: Order.refundplacedpaidfulfilledclosedcanceledrefunded
StateMeaningMoves 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
paidIts 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
fulfilledWhat it bought is granted: Entitlements for software and data, or a shipment for goods.closed by Order.confirm; refunded by Order.refund
closedThe Customer signed off, which earns the Startup its fee.refunded by Order.refund
canceledEnded before fulfillment, with any payment returned in full.None: it ends here.
refundedIts payment returned in full, with the reversing Entries posted; a partial refund keeps its state.None: it ends here.

Verbs

  1. createCreates an Order.
    POST /{namespace}/ordersdoOrder.created
  2. getReturns one Order by id.
    GET /{namespace}/orders/{id}readNo Event
  3. listReturns Orders, newest first, one page at a time.
    GET /{namespace}/ordersreadNo Event
  4. updateChanges the given properties of an Order.
    PATCH /{namespace}/orders/{id}doOrder.updated
  5. cancelCancel ends an Order before fulfillment and returns any payment in full.
    POST /{namespace}/orders/{order}/canceldoOrder.canceled
  6. confirmConfirm records the Customer’s sign-off on delivered work, which closes the Order and earns the Startup its fee.
    POST /{namespace}/orders/{order}/confirmdoOrder.confirmed
  7. deliverDeliver hands the finished work of a Service Order to its Customer and opens the acceptance window.
    POST /{namespace}/orders/{order}/deliverdoOrder.delivered
  8. disputeDispute contests a delivered Order under its Outcome Contract and starts the remedy the contract names.
    POST /{namespace}/orders/{order}/disputedoOrder.disputed
  9. fulfillFulfill grants what an Order bought: Entitlements for software and data, a shipment for goods.
    POST /{namespace}/orders/{order}/fulfilldoOrder.fulfilled
  10. payPay settles an Order’s amount through the Startup’s payment account and posts the matching Entries.
    POST /{namespace}/orders/{order}/paydoOrder.paid
  11. placePlace commits a Customer to buy an Offer once and records the Offer Version and price at that moment.
    POST /{namespace}/orders/placedoOrder.placed
  12. refundRefund returns all or part of an Order’s payment to the Customer and posts the reversing Entries.
    POST /{namespace}/orders/{order}/refunddoOrder.refunded
  13. reviseRevise sends delivered lines back for one counted revision, with the changes the Customer asks for.
    POST /{namespace}/orders/{order}/revisedoOrder.revised
  14. screenScreen 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}/screendoOrder.screened
  15. startStart checks a Service Order’s inputs against its brief, then moves it from intake to working and starts its deadline.
    POST /{namespace}/orders/{order}/startdoOrder.started

Permissions

Which Access level may call each Verb. One-way Verbs wait their delay window.

Operationowneradminmemberviewer
Order.createYesYesYesNo
Order.getYesYesYesYes
Order.listYesYesYesYes
Order.updateYesYesYesNo
Order.cancelYesYesYesNo
Order.confirmYesNoNoNo
Order.deliverYesYesYesNo
Order.disputeYesYesYesNo
Order.fulfillYesYesYesNo
Order.payYesNoNoNo
Order.placeYesYesYesNo
Order.refundYesNoNoNo
Order.reviseYesYesYesNo
Order.screenYesYesYesNo
Order.startYesYesYesNo

Call it

Text
Place the latest order with an offer.

Example

A dropship store takes an Order for two espresso-machine filters, total: 38.00. It moves to paid at checkout, fulfilled when the parcel ships, and closed when tracking shows delivery.