Shipment Management
POST /public/purchase-label
Purchases a label for an existing order and returns the label URL. Send a POST to https://app.ship.com/public/purchase-label with Content-Type: application/json and your Authorization: Bearer <token> header.
**Request:**
POST /public/purchase-labelContent-Type: application/jsonAuthorization: Bearer <token>
| Field |
Type |
Required |
Default |
| orderID |
integer |
Yes |
— |
| rateID |
string |
Yes |
— |
| packageID |
string |
Yes |
— |
| shippingMethod |
string |
Yes |
— |
| serviceLevel |
string |
Yes |
— |
| shipDate |
DateTime |
No |
now (UTC) |
| signature |
boolean |
No |
false |
| insurance |
boolean |
No |
false |
| customPackageSelectedValue |
string |
No |
null |
| additionalHandlingUPS |
boolean |
No |
false |
| saturdayDeliveryUPS |
boolean |
No |
false |
| packageTypeUPS |
string |
No |
null |
| weight |
number |
No |
0 |
| hsItems |
string |
No |
null |
| eelPfc |
string |
No |
null |
| additionalComments |
string |
No |
null |
| insureShipping |
boolean |
No |
false |
| insuredValue |
number |
No |
0 |
Successful Response
{
"success": true,
"shippingLabelURL": "https://cdn.ship.com/labels/abcd1234.pdf",
"trackingNumber": "9400111899560000000000",
"trackingURL": "https://tools.usps.com/go/TrackConfirmAction?tLabels=...",
"orderStatus": "Label Printed"
}
Failure Response
Failures return HTTP 200 with success set to false. The message field carries the human-readable reason (insufficient balance, invalid rate, address validation failure, and so on).
{
"success": false,
"error": "PurchaseFailed",
"message": "string"
}