Order Status Lifecycle
The workflow is deliberately short. A new order item arrives aspending, you
accept or reject it, and once the service is live you mark it active:
- Use
completedinstead ofactivefor one-time work with no ongoing subscription. Anactiveitem can also pass throughcompletedfirst if you want to record install-done and service-live as separate moments. - You do not need to send
submitted_to_provider. It is an optional “received, not yet decided” acknowledgement (the dashboard’s Mark received button) for teams whose intake and acceptance are separate steps. Accepting or rejecting straight frompendingrecords the received time automatically.
The statuses
scheduled and in_progress are not part of the workflow at
the moment. The API rejects moves into them with a 409. Put appointment
and progress details in providerNotes and metadata on the accepted
item instead — resellers see every note you add.Status Definitions
pending
- Order just created by reseller
- Awaiting your review
- Your action: Accept or reject
submitted_to_provider (optional)
- You have acknowledged receipt but not yet decided
- Set it yourself if your intake and acceptance are separate steps; skip it otherwise
- Your action: Accept or reject
accepted
- You’ve confirmed you can fulfill the order
- Any appointment or progress detail goes in
providerNotes/metadata - Your action: Deliver the service, then mark it
active(orcompleted)
completed
- One-time work finished (for example an installation with no subscription), or install-done ahead of
active - Your action: None, or mark
activeonce the subscription is live
active
- Service is live and the customer is using it
- Your action: None (terminal state)
rejected
- You cannot fulfill the order; include a clear reason
- Can be flipped to
acceptedif it was a mistake - Your action: None
cancelled
- Order cancelled after acceptance, by you or at the reseller’s request
- Your action: None (terminal state)
failed
- Fulfillment could not be completed
- Can be reopened to
pendingfor another attempt - Your action: Document the reason, coordinate with the reseller
Allowed Transitions
The API enforces the lifecycle. APATCH to a status the current status
cannot move to returns 409 Conflict with
Cannot transition order item from "<from>" to "<to>" — see
Errors. Sending the status the item is
already in is a no-op 200, not a 409.
rejected → accepted and accepted → rejected are both allowed so a mistaken
call can be corrected after the fact.
Updating Order Status
Via API
Update order item status with a PATCH request:Required vs. Optional Fields
Always required:status- The new status value
providerNotes- Human-readable update for the resellermetadata- Additional context (account numbers, appointment details, work-order ids)
scheduledFor- An appointment or activation date/time (ISO 8601), if one applies
Common Workflows
Workflow 1: Standard Fulfillment
1
Order received
Status:
pendingAction: Review order details and verify service availability2
Accept order
Status: Appointment details, when you have them, go in a follow-up
acceptedPATCH that
keeps status: "accepted" and updates providerNotes / metadata.3
Service live
Status:
active (or completed for one-time work)Workflow 2: Instant Activation (No Installation)
For services that activate immediately, such as electricity switches, the two calls can follow each other straight away.active still requires accepted
first, so send both:
Workflow 3: Rejection
If you cannot fulfill:Workflow 4: Cancellation After Acceptance
If an accepted order must be cancelled:Status Update Best Practices
Update status promptly
Update status promptly
Update within hours of status changes, not days. Real-time updates build trust with resellers.
Always include notes
Always include notes
Use
providerNotes to explain what happened and what happens next. Resellers relay this info to customers.Include reference numbers
Include reference numbers
Add account numbers, work order IDs, or tracking numbers in
metadata for future reference.Be specific about failures
Be specific about failures
If rejecting or failing an order, clearly explain why and suggest alternatives when possible.
Use metadata for automation
Use metadata for automation
Structure
metadata consistently so resellers can parse and use it programmatically.Automated Status Updates
Integrate Offergrid status updates into your existing systems:Monitoring Order Progress
Track order metrics in your dashboard:- Acceptance rate: % of orders accepted vs. rejected
- Time to accept: How quickly you respond to new orders
- Completion rate: % of accepted orders that reach
active - Average fulfillment time: Days from acceptance to activation
Next Steps
Receiving Orders
Understanding incoming orders
Fulfillment Best Practices
Tips for smooth fulfillment
API Reference
View complete API documentation
Webhooks
Automate status updates