Refunding labels

You can request a refund for any successfully created but unused shipping labels. Refunds include the shipment’s postage, additional insurance (if applicable), and any per-label creation fee. Refunds are subject to the policies of the applicable carrier.

Create a refund

To refund a shipping label, POST the Transaction object ID of the label to the Refund Endpoint.

cURLRubyPythonPHPtypescriptJavaC#
Copy
Copied
curl  https://api.goshippo.com/refunds/\
    -H "Authorization: ShippoToken <API_Token>"\
    -d transaction="4503427478ea45a899e9b54abc4c5803"	
Copy
Copied
refund = Shippo::Refund.create(:transaction => "35ed59f23a514ecfa2faeaed93a00086", :async => false)
Copy
Copied
refund = shippo_sdk.refunds.create(transaction="35ed59f23a514ecfa2faeaed93a00086", async_=False)
Copy
Copied
$refund = Shippo_Refund::create( array("transaction" => "35ed59f23a514ecfa2faeaed93a00086", "async" => false));
Copy
Copied
const refund = await shippo.refunds.create("35ed59f23a514ecfa2faeaed93a00086", false);
Copy
Copied
HashMap<String, Object> createRefundMap = new HashMap<String, Object>();
createRefundMap.put("transaction", "35ed59f23a514ecfa2faeaed93a00086");
createRefundMap.put("async", false);

Refund.create(createRefundMap);
Copy
Copied
resource.CreateRefund(new Hashtable(){
    {"transaction", "35ed59f23a514ecfa2faeaed93a00086"},
    {"async", false},
});

At the moment, you may only request a refund for one shipping label at a time.

The API will return the following response:

Copy
Copied
{
    "object_created": "2014-04-21T07:12:41.044Z",
    "object_id": "bd7b8379a2e847bcb0818125943dde5d",
    "object_owner": "shippotle@shippo.com",
    "object_updated": "2014-04-21T07:12:41.045Z",
    "status": "QUEUED",
    "transaction": "35ed59f23a514ecfa2faeaed93a00086"
}

Possible statuses include:

  • QUEUED : The request is being processed by Shippo.
  • PENDING : Waiting for more tracking data from carriers, this could take up to 14 days.
  • ERROR : Refund rejected, the shipment was found to be used.
  • SUCCESS : Refund accepted, a negative line item will be added to your next Shippo invoice.

Information about refunds

  • Refunds include the cost of the shipping label, insurance (if applicable), and the Shippo label fee.
  • Please note that all refund requests must be submitted within 90 days from the day you purchased the label.
  • Once a refund has been claimed, you cannot use the shipping label for sending packages -- it will be rejected.
  • Refund requests are processed within 14 business days from the date the refund was requested, provided the label has not been used.
  • Refund requests will be rejected if the label is used or scanned by the carrier. Contact Shippo customer support for more information.
  • You will see refunds appear as a negative line item in your next Shippo invoice.
  • Although some carriers don't charge you until a package is scanned into their system, you would still need to refund an unused shipping label in Shippo to refund the Shippo label fee and any insurance that you had purchased through Shippo.
  • As a reminder, USPS labels must be used within 30 days of purchase. If you have a USPS label you purchased and do not intend to use, you can request a label refund.