Shippo return labels
WPReturns can buy prepaid return labels from your own Shippo account with your own API token. Buy return label on a request buys the cheapest rate for the customer’s address and emails the label to the customer. Automatic labels buys them on approval instead.
Available in: Pro. You need your own Shippo account and API token. WPReturns does not resell labels or charge per label.
Shippo return labels work with USPS, FedEx and UPS.
Set up Shippo
Section titled “Set up Shippo”- Sign in to Shippo and copy an API token from goshippo.com > Settings > API.
- In WordPress, go to DevDiggers Plugins > WPReturns > Configuration > Shipping Labels.
- Set Label provider to Shippo.
- Paste the token into Shippo API token.
- Under Return address and package, fill in Recipient name and Phone. Packages go to your store address from WooCommerce > Settings > General.
- Set the default box: Default weight (oz), Length (in), Width (in) and Height (in).
- Select Save Changes.

The screen above shows the tab before setup, with I upload labels myself selected. The Shippo API token field shows on the tab whichever provider is picked.
Turn on Automatic labels to buy and email the label as soon as a request is approved. A failed purchase leaves an internal note starting “Automatic label failed:”. See Shipping labels settings.
Buy a label for a request
Section titled “Buy a label for a request”- Open the request and approve it.
- In the sidebar under Return shipping, select Buy return label.
- WPReturns buys one label that covers every item in the request.
The request moves to Awaiting return. The customer gets the Return label ready email and a Download return label button on their request page. The tracking number and carrier fill in on their own.
The sidebar shows the label cost. The cost is not deducted from the refund. Set a return shipping fee on the Resolutions tab to charge customers.
How the label is bought
Section titled “How the label is bought”| Step | Detail |
|---|---|
| Shipment | WPReturns creates a shipment at api.goshippo.com marked as a return (extra.is_return) |
| Rate | It picks the lowest rate Shippo returns |
| Purchase | It buys that rate as a Shippo transaction |
| Storage | It downloads the label file and stores it in the private uploads folder |
Each call times out after 30 seconds. Shippo errors show on the request screen, for example “Shippo returned no rates for this address.”
Data sent to Shippo
Section titled “Data sent to Shippo”Shippo receives this data only when a label is bought, by hand or on approval.
| Data | Source |
|---|---|
| Customer name, address, phone and email | The order’s shipping address, or billing address when there is no shipping address |
| Your return address | Store name, address, the return phone and the store email |
| Package size and weight | The defaults on the Shipping Labels tab |
Nothing goes to Shippo while the provider is set to “I upload labels myself”. Mention Shippo in your privacy policy if you use it. See the Shippo terms and privacy policy.
Add another carrier
Section titled “Add another carrier”Developers can register their own label provider with the ddwcwr_label_providers filter. The class follows DDWCWR_Label_Provider_Interface. See Hooks.