Troubleshooting
Start with the HTTP status and stable error code, then confirm the key environment and request identity.
| Symptom | Check |
|---|---|
| 403 on a private route | Use test_sk or live_sk, not a public key. |
| Order request timed out | Retry the same request with the same idempotency key; never create a fresh key first. |
| Insufficient funds unexpectedly | Confirm the key and wallet are both test or both live. |
| Address rejected | Send exact state, LGA, and town values returned by the v2 selectors. |
| 429 response | Honor Retry-After and use exponential backoff with jitter. |
| Webhook rejected | Verify the raw body, server clock, current signing secret, and HTTPS certificate. |
When contacting support@shioja.com, include time, endpoint, HTTP status, stable code, app ID, and a redacted correlation or idempotency reference. Never send an API key.