label
topic with a return created
trigger, the payload might be empty because the label isn’t generated yet. Make sure topics match trigger events to get meaningful data.Trigger | trigger property in payloads | Description |
---|---|---|
Return updated | return.updated | A return has been updated (for example, the return state has changed from open to closed). |
Return created | return.created | A new return was submitted in the customer returns portal. |
Return closed | return.closed | A return’s state has been updated to closed. |
Label created | label.created | A shipping label has been created. |
Label updated | label.updated | A shipping label has been updated (for example, the return’s status has changed from new to in transit). |
Restock requested | restock.requested | An item in the return has been restocked in Shopify. |
Gift card requested | giftcard.requested | A gift card has been requested as part of an exchange. |
Shipment processed | shipment.processed | A Happy Returns shipment has been processed by Loop. |
retry-after
header for values up to 30 minutes. For higher values, we fail the webhook.
The values above are set by config and subject to change.
Details on each error code and whether they permit retries is included below.
Error code | Retryable | Explanation |
---|---|---|
403 | No | Forbidden access, typically due to invalid credentials or permission issues. |
500 | Yes | Internal server error. While not always recoverable, retries might succeed if caused by temporary issues like resource contention. |
400 | No | Bad request, often caused by invalid payloads. |
0 | Yes | Network or connectivity issues resulting in an ambiguous failure. Retrying can address transient network instability. |
404 | No | Not found, likely due to a nonexistent resource. |
405 | No | Method not allowed, caused by incorrect HTTP method usage. |
401 | No | Unauthorized access, likely due to expired or invalid tokens. |
503 | Yes | Service unavailable, often due to temporary server downtime or overload. Retrying may succeed after a delay. |
504 | Yes | Gateway timeout, caused by upstream server delays. Retrying can succeed if the issue is temporary. |
502 | Yes | Bad gateway, usually due to temporary issues with upstream servers. Retrying may resolve the error. |
422 | No | Unprocessable entity, typically due to invalid payloads. |
410 | No | Gone, indicating the resource is permanently unavailable. |
429 | Yes | Too many requests, caused by rate limits. These are explicitly retryable after the Retry-After interval. |