This article answers common questions regarding refunds for shipments, including initiating refunds, understanding refund statuses, and carrier-specific refund policies. It also covers refund limitations and methods for refund requests.
Canceling and Requesting Refunds
How is a shipping label canceled and a refund requested?
Canceling and voiding shipping labels depends on the carrier's label voiding policies. Please visit Request a Refund for an Unused Shipping Label for step-by-step instructions or visit the Carrier Guides section of the EasyPost Docs to review carrier information.
How do you refund a label?
We have a comprehensive guide that goes over our Refund object, which you can view here. It will break down how our refund object works in six different programming languages, so you can find the best documentation for you and your application.
You can also track and manage your refunds on the EasyPost dashboard. Search for your shipment on the shipments page and click "See Details" and "Refund".
Refund Eligibility
When can I request a refund for a shipment?
You can request a refund for a shipment whenever it hasn’t been shipped or it’s in pre_transit
under the status
string of the tracker.
You cannot request a refund whenever a shipment is in transit, or whenever the status
string is showing:
unknown
in_transit
out_for_delivery
delivered
available_for_pickup
return_to_sender
failure
-
cancelled
error
Do I get the label fee back when I refund a label?
If you successfully refund the label with the carrier, we will also refund the label fee back to you.
Can I refund a shipment that was not created through EasyPost?
You cannot refund a shipment that you did not create through EasyPost.
Refund Statuses
What do the refund statuses mean?
The statuses that display in the refund_status
string are:
-
submitted
- refund is submitted -
refunded
- refund is completed -
rejected
- refund is rejected, check the validity of the refund request before resubmitting -
not_applicable
- the carrier does not support refunds
Test Environment Refunds
Why can't I refund a shipment in your test environment?
In order test refunds in our test environment, you'll have to refund the shipment within the first minute of creation. In our test environment, our test trackers automatically progress through tracking states so that you have a working test case for our webhook infrastructure.
If you still can not get a test refund after voiding the shipment within the first minute of creation, contact our support team.
Carrier-Specific Refund Policies
How long do I have to file a refund for my USPS postage?
You have 30 days to request a refund for any postage purchased from USPS. Of course, if the postage enters the mailstream, then you may no longer request a refund for it.
Order Object Refunds
Why can't I refund my order object?
There is no refund method for Order objects. You'll have to initiate refunds for each Shipment object if you want to refund your entire Order.
Note: All carriers who support Orders do not bill through EasyPost, so if your carrier refunds your Shipments, we will only charge you for the label fee for those shipments.
Alternative Refund Methods
Can I make a refund request for a shipment using the Tracking code instead of the Shipment ID?
Yes, if the shipment was created through EasyPost, use this code:
$shipment = \EasyPost\Shipment::retrieve('insert_tracking_code_here')
$shipment->refund();