Refund Label
POST/api/shippo/instances/:integration_instance/labels/:label/refund
Requests a void/refund of a purchased label at Shippo. Refunds are asynchronous: the label is returned in its refund-pending state (status REFUNDPENDING, refund_status QUEUED or PENDING) and resolves to REFUNDED or REFUNDREJECTED later via webhook or the tracking reconcile — live refunds can take up to 14 days. Test-mode refunds usually resolve immediately.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
No body. Refunds are refused (422, code api_error) when the label was never purchased, a refund was already requested, or the carrier has already scanned the parcel. Shippo failures return 422 with a stable code: invalid_token (Shippo rejected the API token), rate_limited (Shippo is throttling — retry in a minute), api_error (Shippo refused the request; message carries its reason) or unreachable (Shippo could not be reached). Returns 404 when the label does not exist or belongs to a different instance.
Authentication: Requires a Bearer token.
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not Found
Response Headers
Unprocessable Entity
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.