HTTP API
REST API for partners building direct integrations with Order Change.
Overview
The Order Change API allows partner systems to read order details, check edit eligibility, and apply changes on behalf of merchants. All edits respect the merchant's configured settings — edit window, enabled capabilities, and plan limits.
Base URL
https://api.orderchange.comAuthentication
API requests require authentication via API key or OAuth2. The API supports both ApiKeyAuth and OAuth2 schemes. Authentication credentials are issued per merchant and scoped to a single Shopify store.
Contact support@orderchange.com for API credentials and integration assistance.
Free vs Pro Capabilities
Order Change offers two tiers. The capabilities available through the API match the merchant's plan:
Free
- ✓ Address corrections with validation
- ✓ Contact info updates (email, phone)
- ✓ Order cancellation
- ✓ Invoice generation and edits
- ✓ Unlimited orders
Pro ($49/mo)
- ✓ Everything in Free
- ✓ Line item & variant changes
- ✓ Item removal
- ✓ Shipping upgrades (paid)
- ✓ Discount code application
- ✓ One-click upsells (merchant keeps 100% GMV)
API requests to Pro-only endpoints return a 403 error if the merchant is on the Free plan. Check eligibility first using the GET /orders/:id/eligibility endpoint.
Preview & Commit Pattern
Most mutation endpoints follow a two-phase pattern: preview the change, then commit it.
- Preview — Validate the change without applying it. Returns what the order would look like after the edit, including any recalculated totals or shipping costs.
- Commit — Apply the previewed change. Must be called within the merchant's configured edit window.
This pattern ensures that customers and partners see exactly what will happen before the order is modified.
Key Endpoints
Read endpoints are scoped per order: /v1/stores/:store_id/orders/:order_id/...
Mutation endpoints use the custom method pattern: /v1/stores/:store_id/edits/resource:action
Read Endpoints
/v1/healthHealth check endpoint.
/v1/stores/:store_id/orders/:order_idRetrieve order details. Returns line items, customer info, shipping address, and current fulfillment status.
/v1/stores/:store_id/orders/:order_id/change-windowGet the edit window status for this order. Returns whether the window is still open and when it closes.
/v1/stores/:store_id/orders/:order_id/editsList edit history for this order. Shows which edits were applied and when.
Mutation Endpoints
All mutations follow the custom method pattern with :preview and :commit suffixes.
/v1/stores/:store_id/edits/address:previewPreview an address change. Returns validated address and any updated shipping costs. Free plan.
/v1/stores/:store_id/edits/address:commitCommit a previewed address change. Free plan.
/v1/stores/:store_id/edits/items:previewPreview line item changes (add, remove, change variant or quantity). Returns recalculated totals. Pro plan.
/v1/stores/:store_id/edits/items:commitCommit previewed item changes. Pro plan.
/v1/stores/:store_id/edits/discount:previewPreview applying a discount code. Returns updated totals. Pro plan.
/v1/stores/:store_id/edits/discount:commitCommit a previewed discount. Pro plan.
/v1/stores/:store_id/edits/cancel:previewPreview order cancellation. Returns refund details. Free plan.
/v1/stores/:store_id/edits/cancel:commitCancel the order and issue a refund. Free plan.
Contact & Shipping Endpoints
Contact info edits and shipping upgrades are available through the MCP interface. HTTP twin endpoints are shipping. See the MCP documentation for tool details.
Note on undocumented endpoints
This documentation covers partner-facing and agent-accessible endpoints. Internal endpoints (including service-to-service authentication and internal plan management) are not documented here and are subject to change without notice. Contact support@orderchange.com if you need access to capabilities not listed above.
Error Responses
The API returns standard HTTP status codes. Error responses include a JSON body with details:
{
"error": {
"code": "edit_window_closed",
"message": "This order's edit window has expired.",
"details": {
"window_closed_at": "2026-09-20T14:30:00Z"
}
}
}400 — Invalid request (malformed JSON, missing required fields, validation failure)
401 — Missing or invalid authentication token
403 — Forbidden (plan limit reached, capability disabled by merchant, or operation not allowed for this order)
404 — Order not found or not accessible with this token
429 — Rate limit exceeded (see below)
500 — Internal server error
Rate Limits
Rate limits are applied per merchant and may vary by plan. For current rate limits, quota increases, or custom integration needs, contact support@orderchange.com.
Need help?
Partner support is available at support@orderchange.com. We typically respond within one business day.