Go-live checklist
The checks to run before your app sends real orders to an Omneya shop, from the live key to error handling.
Access and configuration
- You have the shop’s address and a live key (
omn_live_). Each shop has its own address, for examplehttps://shop.example.com/api/v1. - The operator has set up the access with the scope
orders.write, the shop and the default referrer. Addorders.readif your app reads orders back, andcustomers.readorcustomers.writeif it uses the customer endpoints. - You have agreed with the operator whether Match existing customers by email is enabled, and your app sends
email_verified: trueonly for confirmed addresses. See How customers are matched. - The key is stored in a secret store or environment variable, not in source code, logs or request bodies.
Connection
GET /pinganswers200,client.environmentislive, andclient.scopescontainsorders.write.GET /payment-methodsandGET /referrerswere called with the live key (andGET /order-statusesif you sendorder_status_id), and your app uses only these IDs; any other payment method is rejected withpayment_method_not_available. IDs from a test shop may differ.
If the operator has set up an AI assistant connection for you, you can use it to check a test order and your recent requests. Your app itself uses only the live key.
Orders
- A test order answers
201, and your app stores the returnedidwith its own order. - Sending the same order again answers
200with"duplicate": true, and your app does not treat it as an error. - An order with a deliberate mistake, for example an unknown
sku, answers422with a field code inerror.details, and your app shows or logs the code. - Your app reads
warningsand alerts someone onno_shipping_method,customer_already_linkedandcollective_invoice_single_order. - Your app takes the order total from
grand_total_gross, not from its own calculation. - Test orders have been checked with the operator and cancelled if needed.
Error handling
- Timeouts,
429and5xxare retried with unchanged data and increasing wait times, andRetry-Afteris respected. See Retries and duplicate protection. 422,409,401,403are not retried unchanged.- Your app logs
error.code,error.detailsand, for500,error.details.reference. - A
503without theerrorenvelope during maintenance does not crash your error handling. See Errors. - Orders that could not be sent are kept and sent later, so none are lost while the shop is unreachable.
Volume
- Your expected peak stays below the key’s limit, 120 requests per minute by default. If not, ask the operator for a higher limit. See Rate limits.
Support
- You know how to reach the operator, and your support process collects time, path,
external_order_idanderror.details.referencefor a failed request. The operator can look these requests up for 14 days. See Request log.