ShippyPro API documentation

ShippyPro Developer Portal Β· Apiary

Introduction

Overview

Status Page

Reference

Shipments

Monitoring

ShippyPro Developer Portal

Introduction

Welcome to ShippyPro Developer Portal a comprehensive reference guide to the most complete Shipping and Logistic API suite. Here you can access to 40+ API methods to cover all your business cases improving efficiency, reducing operations time/costs and delighting your customer with a next level shipping service.

You can find other information in the API section ShippyPro Help Center.

Overview

ShippyPro API is the easiest way to integrate your system with hundreds of carriers worldwide to ship your packages. Check our complete integration library here.

We study the e-commerce and the logistics industry every day with the goal of further optimizing the shipping process and making this activity easier for any vendor. Here is a simple guide to help you with the integration of ShippyPro APIs.

The ShippyPro multi-carrier APIs allows developers to build applications that interface with the ShippyPro platform. The APIs can be used to automate many tasks including:

Base endpoint

All API requests must be made over HTTPS to the following base endpoint:

https://www.shippypro.com/api/version

πŸ“Œ You can find the current version in the section below!

Versioning

The current version of ShippyPro API is v1. This is the endpoint to reach:

https://www.shippypro.com/api/v1

πŸ“Œ You do not need to specify the version if you want to use the first v1.

You'll find here the change log for all future API update.

API Specification

ShippyPro exposes a REST API, you need to send a well-formed JSON POST request containing Method and Params parameters.

SOAP version

We also offer a SOAP API version. At this link you can find the WSDL.

API Console

ShippyPro includes an easy-to-use and powerful API Console, to try and test your API calls without using other external tools! Please find our API Console at the following link.

Webhook

ShippyPro webhooks are used to send real-time events to external listeners to provide the ability to receive orders, shipments, and tracking updates in real-time. When a webhook is triggered, ShippyPro sends a POST request to the webhook's callback URL.

APIs and features

Each endpoint and feature is identified with the module associated with.

API Method Description
ArchiveOrders Archives shipments or orders
BookPickup Books a Pick-Up for all supported carriers
CancelPickup Cancels a scheduled pickup for all supported carriers
CheckAddress Checks if an address is valid
CloseMasterShipment Closes a Bulk Shipping flow
CloseShipments Confirms shipments to carriers
CreateInvoice Generates and get order summary or invoices
CreateManifest Creates Manifest documents
CreateMasterShipment Returns a new Master Shipment ID for carriers featuring Bulk Shipping
DeleteManifest Deletes Manifest documents
DeletePaperlessDocumentation Deletes unused uploaded ETD/paperless documents by TransactionID or recipient Name
DeletePendingOrder Deletes an order yet to be shipped
EditPendingOrders Edit the orders yet to be shipped
GetCarrierOptions Gets the available Carrier options for a specific Carrier
GetCarrierPackagesTypes Gets the available carrier packages types
GetCarriers Gets the list of connected carriers and their details in your ShippyPro profile
GetDetailedPricing Returns the detailed estimated pricing calculated for one order
GetDropOffPoints Retrieves nearest Pick Up DropOff points (PUDO)
GetDropOffInfo Retrieves a single Pick Up DropOff point given an ID
GetLabelUrl Retrieves order labels and tracking info
GetManifest Retrieve Manifest documents
GetMarketplaces Returns all the Marketplaces IDs already connected to your ShippyPro account
GetOrder Retrieves order or shipment details
GetPendingOrders Returns the orders list yet to be shipped
GetPickupAvailability Retrieves Pick Up availability for all supported carriers
GetPickups Returns the list of scheduled pickups for all supported carriers
GetPOD Returns the Proof of Delivery of a shipment once delivered
GetPODDocument Returns a PDF document including the Proof of Delivery and shipment details
GetPrinters Retrieves connected ShippyPro printers
GetReturnsReport Returns the list of returns in the specified timeframe
GetShipmentsReport Returns the list of shipments in the specified timeframe
IsPendingOrder Returns true if an order is being shipped
IsResidentialAddress Checks if an address is residential
MarkOrdersAsPrinted Marks orders as printed
PutShippedOrder Imports external orders already shipped inside your ShippyPro profile
UpdateOrders Send shipments information to marketplaces
UploadPaperlessDocumentation Submits custom documents to carriers
UploadPaperlessPostShip Submits custom documents to carriers after the shipment
CreateCrossBorderInvoice Generates a Cross Border Invoice
Feature Description
Return Label Combination Used in the Ship API method allows you to specify a different carrier for a return
Return Address Override Used with Return Label Combination in the Ship API method, allows you to specify a different return address

For a custom quotation to access these features please contact us.

Getting started

How to get your credentials and make the first API call.

Get your credentials

You can create a free ShippyPro account here.

Authentication

The ShippyPro API uses Basic Authentication, you can find more information here.

Generate API Key

You can find or generate your API Key under the API section Here in ShippyPro (e.g. your-API-Key).

Authorization header

You can build the Authorization header as follows:

For example:

Authorization: Basic your-encoded-credentials

πŸ“Œ Note! You can find the basic authorization header in your API console.

Partner Identification

If you are integrating ShippyPro into your platform on behalf of your users, include the Referer HTTP header with your partner name in all API requests. This allows ShippyPro to identify and support your integration.

For example:

Referer: your-partner-name

πŸ“Œ Note! Use a consistent, lowercase identifier (e.g. my-platform, acme-wms). Contact your ShippyPro account manager for your assigned partner name.

API-Console

ShippyPro includes an easy-to-use and powerful API Console, to try and test your API calls without using other external tools! Please find our API Console at the following link.

Get Carrier ID

After you have generated the API KEY you would need to add at least one carrier from Carrier page. You can find a detailed guide on how to connect your carriers in ShippyPro Help Center here.

After you have connected at least one Carrier, you will be able to get CarrierID, CarrierName, and CarrierService at the bottom of the API Keys page.

Order ID

The OrderID number is the unique ID given to the order at the time it was processed. It's a ShippyPro generated number and no edits are possible.

Save this number once you generate a new shipment in order to do further API calls related to that order.

If you need to reference your internal order ID number you can use the TransactionID field.

Server Responses

Status Code Description
200 OK - The request was successful (some API calls may return 201 instead).
400 Bad Request - The request could not be understood or was missing the required parameters.
401 Unauthorized - Authentication failed or the user does not have permissions for the requested operation.
403 Forbidden - Access denied.
404 Not Found - Resource was not found.
429 Too many requests. See here for specification.
500 Internal Server Error - ShippyPro has encountered an error.

DateTime Format

ShippyPro uses the Unix Time for Date and Time fields.

Please refer to ( https://en.wikipedia.org/wiki/Unix_time) for more information about Unix time.

Timezone

ShippyPro use CET as timezone, this means that if you use a unix time stamp date, CET timezone will be considered. Please note that some Carriers could have specific time zone value for date time parameters, please check with carrier which one should be used.

List of currencies

Here's the list of the accepted currencies (use the 3-length ISO code)

Currency ISO-4217
United States Dollar USD
European Euro EUR
British Pound Sterling GBP
Japanese Yen JPY
Canadian Dollar CAD
Australian Dollar AUD
Swiss Franc CHF
Chinese Yuan Renminbi CNY
Indian Rupee INR
Russian Ruble RUB
Singapore Dollar SGD
Swedish Krona SEK
South Korean Won KRW
Mexican Peso MXN
New Zealand Dollar NZD
Danish Krone DKK
Norwegian Krone NOK
Polish Zloty PLN
Malaysian Ringgit MYR
Saudi Arabian Riyal SAR
Qatari Riyal QAR
Turkish Lira TRY
Indonesian Rupiah IDR
UAE Dirham AED
Philippine Peso PHP
Romanian Leu RON
Bulgarian Lev BGN
Czech Koruna CZK
Hungarian Forint HUF
South African Rand ZAR
Thai Baht THB
Kuwaiti Dinar KWD
Egyptian Pound EGP
Israeli New Shekel ILS
Lebanese Pound LBP
Macanese Pataca MOP
Ukrainian Hryvnia UAH
Moroccan Dirham MAD
New Taiwan Dollar TWD
Peruvian Sol PEN
Vietnamese Dong VND

API Rate Limit

There is a Rate-Limiting of 20 API requests every 10 seconds.

This means that you can do 10 API calls in one second but then you will only have 10 remaining API calls for the next nine seconds.

When request submissions exceed this limit, the API will return the error: 429 Too Many Requests.

πŸ“Œ The default rate limit can be increased for a premium fee for further information please contact sales.

Use Cases

Here you can find most common ShippyPro API integration scenarios.

Checkout

In this flow you can find how to use ShippyPro API in your ecommerce store checkout.

Shipments

In this flow you can find how to use ShippyPro API to handle a shipment.

Tracking

In this flow you can find how to use ShippyPro API to get shipments tracking.

Webhook

In this flow you can find how to use ShippyPro API to get real time shipments update.

Orders

In this flow you can find how to use ShippyPro API to handle orders.

Print

In this flow you can find how to use ShippyPro API to print labels.

Returns

In this flow you can find how to use ShippyPro API to get shipments tracking.

Proof of Delivery

In this flow you can find how to use SHippyPro API to get proof of delivery.

Other Tips

API Console

ShippyPro provides an internal API console to test API methods request and response wothout using and external api client.

If you already have a ShippyPro account, please find our API Console at the following link.

Status Page

We provide transparency around service availability and performance for ShippyPro products. Here you can find our ShippyPro Status Page where you can check status for

You can also subscribe to get informed whenever an incident is triggered.

Reference

Shipments

Ship

Attributes

Shipping Platform

This method gives the possibility to generate a shipment or a return and get shipping labels for 170+ carriers with the same API call.

πŸ’‘This Method gives you the ability to:

How to test

For testing purposes, you can use the ShippyPro Generic carrier for generating test labels. See here if you need help configuring ShippyPro Generic Carrier.

⚠️ Note! The data type of the response attribute LabelURL could be both an array or a string.

πŸ“Œ If you used PutOrder API to create an order to ship, you need to make the Ship API call with the same TransactionID used with the PutOrder API call, then the system will link the right order as well as the items.

Choosing a Carrier

Please note that you must have at least a working carrier connection to make any shipment. For help or any information on how to connect a carrier, please check our help article here. After you have connected at least one Carrier, you will be able to get CarrierID, CarrierName, and CarrierService at the bottom of the API Keys ShippyPro page.

Getting Carrier Rates

You can use our GetRates API before of Ship call in order to choose the best carrier's rate option for your shipment and specify the RateID parameter in the Ship call.

Custom Attributes

Ship API allows you to specify Order and Parcel custom attributes with a key value array in the request, which can be useful for marking or retrieving your shipments based on these values. These values can also be printed on the shipment labels using our Label Design product, which allows you to customize labels.

Managed Attributes

Some of the attributes that can be added to a Ship request are recognized by the platform and they can be exploited to better manage the orders and their customizations.

sp_ioss

The sp_ioss attribute makes it possible to bind an IOSS number. This data is used instead of the default one, specified in the Profile section, and eventually transmitted to the carriers.

Choosing Packages

You can specify your own package dimensions or retrieve Carrier supported packages with the GetCarrierPackagesTypes method, see here for method reference.

Example of package specification in the Ship and Get Rates (Only FEDEX) methods call, where package attribute value corresponds to the "value" attribute obtained through the GetCarrierPackagesType method call.

    "parcels":[\
        {\
            "package":1,\
            "length":5,\
            "width":5,\
            "height":5,\
            "weight":10\
        }\
    ]

Get the Labels (sync or async)

The method works in async and sync way, giving you the ability to get return label in the response call or retrieve it later. Please refer to the Async parameter below , if false the label will be returned in call response, if true you should retrieve the label with the GetLableURL or via Webhook - Order Shipped Events.

Carrier Options

You can specify optional carrier services for the shipment, filling the carrier option array parameter, see below.

International Shipment and CN22 module

If you need to ship outside EU should provide custom declaration module (CN22 or CN23), please read the CN22 parameter in Ship reference section below. Including these parameters will genarates automatically the custom documents with the label. Kindly note that the BillAccountNumber field should only be filled in case the Incoterm employed is EXW.

Paperless

If you want to upload paperless documentation to you shipment, please check the UploadPaperlessDocumentations API method.

Returns handling

In ShippyPro a return is treated as a shipment, and you can decide how to fill the from and to address with your own logic. Anyway the easier way to create a return is setting IsReturn: true and reversing the sender and the recipient addresses.

Return Label in The Box

ShippyPro support Return Label in The Box that gives you the ability to create Shipment and return label with one ship call. You should specify this setting in carrier connection form, the ship call will work accordingly with the carrier connection setting. If need help in setting the feature please read our help article here.

Return Label Combination & Return Address Override

The ship method also supports the possibility to ship with a specific carrier and return the order with another carrier. If you are you using Return Label Combination, You can also specify a different return address (eg. a specific warehouse/address for return), filling the optional parameter with an address object array. By default the tracking is for 30 days after label creation but an extension till 120 days is possible.

Ship

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
to_address Array true false Recipient address information
name string true false Recipient name
company string true true Recipient company
street1 string true false Recipient street1 Depends on the specific carrier
street2 string true true Recipient street2 Depends on the specific carrier
city string true false Recipient city
state string false true Recipient state
zip string true false Recipient zip code Depends on the country
country string true false Recipient country (ISO 3166) 2 chars
phone string true false Recipient Phone Country specific phone length
email string false false Recipient Email 64 chars
from_address Array true false Sender address information
name string true false Sender name
company string true true Sender company
street1 string true false Sender street1
street2 string true true Sender street2
city string true false Sender city
state string false true Sender state
zip string true false Sender zip code Depends on the country
country string true false Sender country (ISO 3166) 2 chars
phone string true false Sender phone Depends on the country
email string true false Sender email
parcels Array true false Parcels information (Min length 1) 4 objects each
dimension_unit string false false Parcel unit of measurement for lenght: "CM" (default), "IN" 2 chars
length float true false Parcel Length
width float true false Parcel width
height float true false Parcel height
weight_unit string false false Parcel unit of measurement for weight: "KG" (default), "LB", "OZ" 2 chars
weight float true false Parcel weight 2 decimals
Attributes Object false false Optional Parcel Attributes can contains custom multi key/value
TotalValue string false ⚠️ true Value of the order including the currency (e.g. 120.50 EUR) ⚠️ It's required for international shipment!
TransactionID string true false Your internal reference order number 255 chars
MarketplaceID int false false Your Marketplace ID 11 chars
MarketplacePlatform string false false The name of the marketplace to connect 255 chars
ContentDescription string true false Description of the content 255 chars
CustomInfoContentsType string false false Type of goods declared to customs in case of cross border shipments, ["documents", "gift", "merchandise", "returned_goods", "sample", "other"] 255 chars
Insurance float false false Insurance value (default: 0)
InsuranceCurrency string false false Insurance currency (default: "EUR"), see here 3 chars
CashOnDelivery float false false Cash on delivery value (default: 0)
CashOnDeliveryCurrency string false false Cash on delivery currency (default: "EUR"), see here 3 chars
CashOnDeliveryType int false false Cash on delivery type, 0 = Cash (default), 1 = Cashier's check, 2 = Check, 3 = All Payment Methods 1 digit
ShipmentAmountPaid float false false Amount paid by the customer for the shipment
ShipmentCost float false false Selected rate value
ShipmentCostCurrency string false false Selected rate currency, see here
CarrierName string true false Selected rate Carrier Name, as reported in the GetRates
CarrierService string true false Selected rate Carrier Service, as reported in the GetRates
CarrierID int true false Selected rate CarrierID, as reported in the [GetRates]( https://www.shippypro.com/ShippyPro-API-Documentation/#getrates
OrderID string false true Selected rate OrderID, as reported in the GetRates
RateID string false true Selected rate RateID, as reported in the GetRates
Incoterm string false false Shipment incoterm: DAP, DDP, or EXW. For cross borders shipments the default value would be DAP in case it's not specified in the request differently
BillAccountNumber string true ⚠️ false Bill the shipment to third party account number. ⚠️ This field is only required in case the incoterm is EXW
PaymentMethod string false false Order payment method (ex. Paypal, COD)
Note string false false Note 255 chars
CarrierNote string false true Carrier note (not supported by every Carrier) 255 chars
UserNote string false true User note 255 chars
IsReturn bool false true Set TRUE to create a Return Label
IsDynamicMultiparcel bool false false Set TRUE for carriers supporting Dynamic Multiparcel (e.g. Poste Italiane InvioSystem). Shipments to the same recipient, on the same day, with the same carrier are automatically grouped into a single master shipment whose parcel count is finalised at closeout β€” no need to know the number of parcels in advance
Async bool false false Process the label generation async or sync (Get the label directly in the response or via order shipped webhook)
non_delivery_option string false false Only for dutiable shipments. Accepted values: return = sending back to the sender, abandon = abandoned parcel by the consignee.
zone_name string true ⚠️ false Pricing zone name. ⚠️ This field is only required if detailed_pricing is set
weight_range string true ⚠️ false Pricing weight range. ⚠️ This field is only required if detailed_pricing is set
detailed_pricing Array false false Contains pricing information. (Min length 1)
type string true false Pricing type (inside each detailed_pricing item), ["tariff", "additional_parcels_surcharge", "carrier_option", "cod_surcharge", "exceed_dimension_l", "exceed_dimension_w", "exceed_dimension_h", "exceed_dimension", "exceed_parcel_surcharge", "fixed_surcharge", "fuel_surcharge", "insurance_surcharge", "triangle_surcharge", "vat_surcharge"]
price float true false Price (inside each detailed_pricing item)
desc string true false Pricing description (inside each detailed_pricing item)
Attributes Object false false Optional Order Attributes can contains custom multi key/value
name string true false Attribute name (inside each Attributes item)
value string true false Attribute value (inside each Attributes item)
LabelType string false false Label type ("PDF" or "ZPL") - Use this field to request a specific label format (conversion will happen automatically)
LabelWidth float false false Label width (cm, for PDF)
LabelHeight float false false Label height (cm, for PDF)
Rotate int false false Label rotation degrees, ⚠️ only applicable when a label format conversion is applied specifying a LabelType
PageNumber int false false Index of the label you want to retrieve
SplitPages bool false false Set TRUE if you want to split the labels
PostShipmentETD bool false false set TRUE to send shipment documents at a later time via the UploadPaperlessPostShip method
CarrierOptions array false false Optional, contain one or more item Carrier Option information
name string false false Optional, carrier option key name
value string false false Optional, carrier option value
CN22Info array false false Optional, contain one or more item CN22 information
Description string false false Optional CN22 item description (eg. "Merchandise")
Weight float false false Optional CN22 item weight (2)
Quantity float false false Optional CN22 item quantity (5)
UnitValue float false false Optional CN22 item unit price (10.50)
OriginCountry string false false Optional CN22 origin country code ("IT")
Currency string false false Optional CN22 price currency code ("USD")
HSCode string false false Optional CN22 HSCode ("123456")
EAN string false false Optional CN22 EAN ("123456")
VOC string false false Optional CN22 VOC Volatile Organic Compound in Grams ("12")

⚠️ Warning: the ContentDescription field does not accept the backslash character as a valid character. Please do not enter a backslash in this field, as it may cause errors or data processing problems.

International Shipments

    "CustomInfoContentsType" : "merchandise",
    "CN22Info": [\
        {\
            "Description": "test",\
            "Weight": 2,\
            "Quantity": 5,\
            "UnitValue": 10,\
            "OriginCountry": "IT",\
            "Currency": "USD",\
            "HSCode": "123456",\
            "EAN": "123456",\
            "VOC": "12"\
        }\
    ]

These fields are required for international shipments. Alternatively, the UploadPaperless method is available (find out here which carriers support this method).

Carrier Options

    "CarrierOptions": [{\
        "name": "upsdangerousgoods",\
        "value": 1\
    }]

Return Label Combination & Return Address Override

To specify a different carrier for return shipments please add this parameters to ship call. The return_to array is optional and is needed only if you want to specify a different return address.

    "ReturnCarrierName": "Generic",
    "ReturnCarrierService": "Standard",
    "ReturnCarrierID": 6,
    "ReturnInsurance": 10, // Optional - Default 0
    "ReturnInsuranceCurrency": "EUR", // Required if ReturnInsurance is set
    "ReturnCarrierOptions": [{ //optional\
        "name": "upsdangerousgoods",\
        "value": 1\
    }],
    "return_to": {
        "name": "John Doe",
        "company": "Shippypro",
        "street1": "Via Napoli 1",
        "street2": "",
        "city": "Roma",
        "state": "RM",
        "zip": "12345",
        "country": "IT",
        "phone": "+39123124567",
        "email": "sales@shippypro.com"
    },

Per-Parcel Data

The Ship response includes a per-parcel breakdown of the trackings and labels emitted by the carrier through the Parcels and ReturnParcels arrays. The same data is also returned by GetLabelUrl.

Outbound parcels β€” Parcels

One entry per physical outbound parcel. null when no parcel has both a tracking number and a label (e.g. the carrier returned only customs forms). For shipments where the carrier returns a Return Label In The Box (RLITB) alongside the outbound label, the return label is also emitted as an item in this same array β€” see "Identifying return parcels" below.

Field Data Type Description
TrackingNumber string Per-parcel tracking code.
PDF string | null Base64-encoded PDF of this parcel's label (one page per parcel). null if the carrier did not return a PDF.
ZPL string | null Raw ZPL label string for this parcel. null if the carrier did not return a ZPL.
Attributes object Per-parcel attributes (free-form name β†’ value, e.g. UDC). Empty object if no attributes are stored.

Return parcels β€” ReturnParcels

One entry per physical return parcel. Only present when the Ship request used a Return Label Combination (i.e. specified ReturnCarrierName / ReturnCarrierID / ReturnCarrierService). Absent for outbound-only shipments and for RLITB.

Field Data Type Description
TrackingNumber string Per-parcel return tracking code.
PDF string | null Base64-encoded PDF of the return label for this parcel.
ZPL string | null Raw ZPL of the return label for this parcel.
Attributes object Mirrored positionally from Parcels[i].Attributes. Return parcel attributes are not stored independently β€” they are copied positionally from the outbound parcel at the same index. If there is no corresponding outbound parcel at that index, Attributes is an empty object.

Identifying return parcels

Worked examples

Outbound 2-parcel + RLC return:

{
    "Parcels":       [ { "TrackingNumber": "OUT-1", "...": "..." }, { "TrackingNumber": "OUT-2", "...": "..." } ],
    "ReturnParcels": [ { "TrackingNumber": "RET-1", "...": "..." }, { "TrackingNumber": "RET-2", "...": "..." } ]
}

Outbound 2-parcel + RLITB (the two return entries are not distinguishable from the outbound ones):

{
    "Parcels": [\
        { "TrackingNumber": "OUT-1", "...": "..." },\
        { "TrackingNumber": "OUT-2", "...": "..." },\
        { "TrackingNumber": "RET-1", "...": "..." },\
        { "TrackingNumber": "RET-2", "...": "..." }\
    ]
}

Outbound-only:

{
    "Parcels": [ { "TrackingNumber": "OUT-1", "...": "..." } ]
}

Edit

Attributes

Shipping Platform

This method gives the possibility to modify a previously created shipment. The method structure is the same of the Ship API method, but the OrderID parameter must match with an existing ShippyPro order ID.

πŸ’‘ This Method gives you the ability to:

πŸ“Œ Please note that every time you modify a shipment a new label will be generated.

πŸ“Œ This method works fine together with Order Error Webhook, that enables to get each error shipments in realtime.

Edit

The body of this request has the following attributes:

Edit - Partial

Attributes

Shipping Platform

This method gives the possibility to modify a previously created shipment like the normal Edit call but only for specific fields. In this case a new label won't be generated

Edit - Partial

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
OrderID string true false The Order number got from the previously called Ship API
PartialEdit boolean true false Required to do a Partial Edit
Attributes Object false false Optional Parcel Attributes can contains custom multi key/value

GetRates

Attributes

Shipping Platform

This method retrieves the Carrier rates for a specific shipment for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

Applying Shipping Rules

If you want to apply the Shipping rules in the GetRates you should:

How to test For testing purposes, you can use the ShippyPro Generic carrier for generating test rates. See here if you need help configuring ShippyPro Generic Carrier.

πŸ“Œ You can also add CarrierOptions attribute to get rates for specific carrier services.

πŸ“Œ GetRates API will work according to the Shipping Rules applied. If your GetRates call returns no Rates and no errors for a specific shipment, make sure your Shipping Rules are correctly set up and not blocking those SKUs.

πŸ“Œ Remember to value the TransactionID of the order in the API_GetRates in order to use the ShippingService rule, otherwise it will be skipped. If the field TransactionID is not populated, the filter for ShippingService can't be applied. Assigning a TransactionID value that does not match that of an order to ship will skip the application of the ShippingService filter.

πŸ“Œ If your GetRates rates don’t match the rate shown in β€œTo Ship”, make sure both GetRates and your My Profile > Preferences units of measure correspond!

πŸ“Œ By referring the RateID from Shipping API call response you'll also be able to use our Invoice Analysis feature.

πŸ“Œ You can filter this call for specific services by filling out the RateCarriers field with CarrierName and CarrierID, that you can retrieve from the APIKEYS ShippyPro page.

E.G RateCarriers: ["CarrierName|CarrierID", "CarrierName|CarrierID"]

GetRates

The body of this request has the following attributes:

πŸ“Œ You can also add CarrierOptions attribute (see Use Cases section).

⚠️ Note that the response attribute delivery_days could be both a number (e.g. 2) or a string (e.g. "2-5").

⚠️ In the GetRates response, you may find a section labeled RatesErrors that includes the field error_level. The values that could be displayed are the following:

GetTracking

Attributes

Tracking System

This method retrieves the shipment tracking status for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

⚠️ This method is not recommended for bulk usage. To receive all the trackings updates please setup a Webhook instead.

Order tracking statuses

To simplify your work, we associated each carrier tracking statuses with this simple ShippyPro six statuses:

Order tracking statuses

Status Code Description
1 Info Received
2 In Transit
3 Out for Delivery
4 Missed Delivery
5 Exception
6 Delivered

Extended Tracking Statuses

Every tracking update is additionally mapped to an ExtendedStatusCode, representing a more granular status.

Extended Tracking Statuses

Extended Status Code Description
1000 Info Received
2000 In transit
2100 Dropped by customer
2200 Collected by carrier
2300 Carrier handling
2310 Arrived at terminal/hub
2320 Processing at terminal/hub
2330 Departed from terminal/hub
2400 Customs Clearance
2500 Delivery planned
3000 Out for Delivery
3100 Delivery in progress
3200 Available for pickup at PUDO/Facility
4000 Failed Attempt
5000 Generic Exception
5100 Transit Disruptions
5110 Delayed
5120 External causes
5200 Operational Issues
5210 Misrouted
5220 Pickup not possible
5230 On Hold
5300 Parcel Exception
5310 Exceeded dimensions or weight
5320 Damaged
5330 Lost
5340 Destroyed
5400 Address Discrepancies
5410 Insufficient address information
5420 Wrong address information
5500 Customs and Documentation
5510 Customs-related issues
5520 Missing documents
5600 Sender/Recipient-Related Events
5610 Recipient exception
5620 Sender exception
5630 Returning to sender
5700 Carrier Actions
5710 Carrier asks to be contacted
5720 Change to delivery
5730 Other Carrier Exception
6000 Delivered
6900 Manually Marked as Delivered
9999 Not mapped

GetTracking

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
code string true false Tracking Number

Addresses

CheckAddress

Attributes

Address Validation

This method allows you to check and validate shipping addresses for 240+ countries with just one call for all your Carriers. Since address structure varies from country to country in the response you'll find an accuracy indicator based on the level of accuracy of the result.

πŸ’‘ Checking shipment addresses allows you to reduce:

How the validation works

The CheckAddress API takes the advantage to provide a Carrier Side and GeoCoding address validations.

If the carrier you are requesting to validate address supports address validation, the validation takes benefit of carrier validation, otherwise, a geocoding validation will take place. The carriers that support carrier side address validation are GLS Italy and TNT Italy. For every other carrier a GeoCoding validation takes place.

In both cases, the validation provides an accuracy score to let you understand how the address returned is accurate.

You can skip the carrier address validation setting Generic as carrier parameters. See here if you need help configuring ShippyPro Generic Carrier.

For each validated address you can get the following items in response:

Address Validation Messages

They can be returned (if present) from the API carrier's response, and from GeoCoding.

Address Suggestions

They can be returned (if present) only from the API carrier's response, not from GeoCoding.

New Address

It is composed by replacing the fields reported as incorrect in the initial address, with the new values suggested.

Accuracy

It is a parameter calculated from CheckAddress API that is based on Geocoding. It represents the accuracy of the address, and can assume these values:

Accuracy Description
95 Maximum address accuracy
75 Good address accuracy
60 Medium address accuracy
40 Approximate address accuracy

Verified

A boolean flag, returned by the GeoCoding validation, telling you whether the address was confirmed to an exact location. It is true only when GeoCoding resolves the address to a precise, rooftop-level match.

When Verified is false, ShippyPro found nothing wrong with the address but could not confirm the exact location (the match was interpolated or approximate). The address is accepted as-is, but you should double-check it before shipping. In this case address corrections (Message entries such as "Wrong city"/"Wrong zip" and the corresponding NewAddress fields) are not applied, because approximate matches can incorrectly point to a neighbouring city/area. Corrections are only suggested when the match is verified.

Verified is present only when the GeoCoding validation was actually performed.

CheckAddress

Name Data Type Required Empty Description Max length
CarrierName string true false Selected rate Carrier Name
CarrierID int true false Selected rate CarrierID
Address Array true false Recipient address information
street1 string true false Recipient Street1 Depends on the specific carrier
street2 string true true Recipient Street2 Depends on the specific carrier
city string true false Recipient city
state string false true Recipient state
zip string true false Recipient zip code Depends on the country
country string true false Recipient country (ISO 3166) 2 chars
FromAddress Array true false Sender address information
country string true false Sender country (ISO 3166) 2 chars
SkipValidationFields Array false false Contains attributes that won't be validated

IsResidentialAddress

Attributes

Address Validation

This method is used to classify if the addresses provided are residential.

With the ShippyPro IsResidentialAddress API, you can automatically check if a shipping addresses is a residential address.

πŸ’‘Checking residential addresses allows you:

How it works

The IsResidentialAddress API provides enable you to verify if an address is residential (a home) or not. To avoid issues with the verification you should use a validated and well formed address. Please check CheckAddress API method to understand how to get validate a validated address.

IsResidentialAddress method response returns two parameters:

Result

OK if the call was successful, or NOK if the call was unsuccessful.

IsResidentialAddress

A boolean value that represents if the address is residential (true) or not (false).

IsResidentialAddress

Name Data Type Required Empty Description Max length
Address Array true false Recipient address information
company string true ⚠️ true Recipient company name. ⚠️ (if name is empty) 255 chars
name string true ⚠️ true Recipient name. ⚠️ (if company is empty) 255 chars
street1 string true false Recipient Street1 Depends on the specific carrier
street2 string true true Recipient Street2 Depends on the specific carrier
city string true false Recipient city
state string false true Recipient state
zip string true false Recipient zip code Depends on the country
country string true false Recipient country (ISO 3166) 2 chars

Pickup

BookPickup

Attributes

Shipping Platform

This method allows you to book a Pick-Up for all supported carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

πŸ“Œ Dimension units are set to KG and CM.

BookPickup

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
to_address Array true false Recipient address information
from_address Array true false Sender address information
name string true false Sender name
company string true true Sender company
street1 string true false Sender street1 Depends on the specific carrier
street2 string true true Sender street2 Depends on the specific carrier
city string true false Sender city
state string true true Sender state
zip string true false Sender zip code Depends on the country
country string true false Sender country (ISO 3166) 2 chars
phone string true false Sender Phone Country specific phone length
email string false false Sender Email 64 chars
parcels Array true false Parcels information (Minimum 1) 4 objects each
dimension_unit string false false Parcel dimension unit. Default value CM. Accepted values: CM, IN.
length float true false Parcel Length
width float true false Parcel width
height float true false Parcel height
weight_unit string false false Parcel weight unit. Default value KG. Accepted values: KG, LB, OZ, G.
weight float true false Parcel weight (kg) 2 decimals
CarrierName string true false Carrier name
CarrierID int true false Carrier ID
PickupTime int true false Pickup time timestamp (e.g. 1657275360) 10 digits
PickupNote string false true Pickup note 255 chars
PickupMorningMintime string true false Minimum pickup time - morning (e.g. 09:00). 24 hours format 5 chars
PickupMorningMaxtime string true false Maximum pickup time - morning (e.g. 13:00). 24 hours format 5 chars
PickupAfternoonMintime string true false Minimum pickup time - afternoon (e.g. 14:00). 24 hours format 5 chars
PickupAfternoonMaxtime string true false Maximum pickup time - afternoon (e.g. 18:00. 24 hours format) 5 chars
orderIds string false false Orders id separated by a semicolon (e.g. 123;245)
emailSubject string false false Main part of the email subject (default 'Pickup Request')

πŸ“Œ For some Carriers orderIds is required!

GetPickups

Attributes

Shipping Platform

This method returns the list of scheduled pickups for all supported carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

GetPickups

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
OrderID int false false ShippyPro Order ID
ConfirmationID string false false Confirmation ID (see response of BookPickup API)

πŸ“Œ If you do not set OrderID and PickupID this API will return all of your pickups scheduled.

CancelPickup

Attributes

Shipping Platform

This method allows you to cancel a scheduled pickup for all supported carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

CancelPickup

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
CarrierName string true false Pickup Carrier name
CarrierID int true false Pickup Carrier ID
ConfirmationNumber string true false Pickup confirmation number
PickupTime int true false Pickup time timestamp (e.g. 1657275360) 10 digits

GetPickupAvailability

Attributes

Shipping Platform

This method allows you to retrieve Pick Up availability for all the supported carriers (FedEx and MyDHL are the only supported carriers right now) with a single API request.

πŸ’‘ This Method gives you the ability to:

πŸ“Œ Dimension units are set to KG and CM.

πŸ“Œ You can filter this call for specific services by filling out the PickupCarriers field with CarrierName and CarrierID, which you can retrieve from the APIKEYS ShippyPro page.

E.G PickupCarriers: ["CarrierName|CarrierID", "CarrierName|CarrierID"]

GetPickupAvailability

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
to_address Array true false Recipient address information
from_address Array true false Sender address information
street1 string true false Sender street1 Depends on the specific carrier
street2 string true true Sender street2 Depends on the specific carrier
city string true false Sender city
state string true true Sender state
zip string true false Sender zip code Depends on the country
country string true false Sender country (ISO 3166) 2 chars
parcels Array false false Parcels information (Minimum 1) 4 objects each
dimension_unit string false false Parcel dimension unit. Default value CM. Accepted values: CM, IN.
length float true false Parcel Length
width float true false Parcel width
height float true false Parcel height
weight_unit string false false Parcel weight unit. Default value KG. Accepted values: KG, LB, OZ, G.
weight float true false Parcel weight (kg) 2 decimals
PickupCarriers Array false false Retrieve pick-up availability only for specific carriers ["FEDEX", …]
PickupTime int true false Pickup time timestamp (e.g. 1657275360) 10 digits
PickupMorningMintime string true false Minimum pickup time - morning (e.g. 09:00). 24 hours format 5 chars
PickupMorningMaxtime string true false Maximum pickup time - morning (e.g. 13:00). 24 hours format 5 chars
PickupAfternoonMintime string true false Minimum pickup time - afternoon (e.g. 14:00). 24 hours format 5 chars
PickupAfternoonMaxtime string true false Maximum pickup time - afternoon (e.g. 18:00. 24 hours format) 5 chars
MaxBusinessDays int false false Maximum number of business days to consider when checking. Default 1.

Marketplaces

GetMarketplaces

Attributes

Shipping Platform

This method returns all the Marketplaces IDs already connected to your ShippyPro account.

πŸ’‘ This Method gives you the ability to:

GetMarketplaces

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
Active int false false Search for active (1) or non-active (0) marketplaces

Carriers

GetCarriers

Attributes

Shipping Platform

This method allows you to get the list of connected carriers and their details in your ShippyPro account.

πŸ’‘ This Method gives you the ability to:

GetCarriers

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
Active int false false Search for active (1) or non-active (0) Carriers
Credentials object false false For retrieving Carriers credentials
YourCarrierName array true false Array of credentials (string) you want to retrieve for YourCarrierName

GetCarrierOptions

Attributes

Shipping Platform

This method allows you to get the available Carrier options for a specific Carrier.

πŸ’‘ This Method gives you the ability to:

For more information on how setup a Carrier options click here.

GetCarrierOptions

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
CarrierName string true false Carrier Name
CarrierID int true false Carrier ID
to_address object false false Optional, recipient address information
city string false false Optional, recipient city
zip string false false Optional, recipient zip Depends on the country
country string false false Optional, recipient country (ISO 3166) 2 chars

πŸ“Œ The recipient address is optional. Add it to also receive the carrier's Pick-Up & DropOff point options.

GetCarrierPackagesTypes

Attributes

Shipping Platform

This method allows you to get the available carrier packages types.

πŸ’‘ This Method gives you the ability to:

GetCarrierPackagesTypes

The body of this request is empty.

Manifest

CreateManifest

Attributes

Shipping Platform

This method allows you to create a Manifest file for the specified Order numbers for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

CreateManifest

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
OrderIDS Array true false ShippyPro Order IDs

⚠️ Note that the response attribute ManifestURL could be both string (if there is only one Manifest) or an array (if there are more than one).

⚠️ If another CreateManifest call for the same account is already running, this call returns the error MANIFEST_IN_PROGRESS after waiting up to 15 seconds. It is safe to retry after a few seconds. Concurrent CreateManifest calls for the same account are serialized, so sending one call with all the order ids is faster than firing several in parallel.

GetManifest

Attributes

Shipping Platform

This method allows you to get an already created Manifest document for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

GetManifest

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
ManifestNumber string true false Manifest number

⚠️ Note that the response attribute ManifestURL could be both string (if there is only one Manifest) or an array (if there are more than one).

DeleteManifest

Attributes

Shipping Platform

This method allows you to delete an already generated Manifest document for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

DeleteManifest

The body of this request has the following attributes:

CloseShipments

Attributes

Shipping Platform

This method allows you to manually transmit all your shipments to the Carriers and Close Work Day as required by some of them.

πŸ’‘ This Method gives you the ability to:

CloseShipments

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
OrderIDS Array false false ShippyPro Order IDs. If not present it will take all unclosed shipments
CarrierName string true false Carrier Name

Paperless

UploadPaperlessDocumentation

Attributes

Shipping Platform

Electronic Trade Documents (ETD) or Paperless customs is an automated international shipping solution that allows you to submit your customs documentation electronically so you no longer need to print and attach multiple copies to your shipments. Not all the carriers support paperless, please check here if your carrier support it.

πŸ’‘ This method gives you the ability to:

List of supported document types

Value Description
0 Invoice (default)
1 Air Waybill
2 Proforma invoice
3 Certificate of Origin
4 Usmca Certificate of Origin
5 Commercial invoice
6 Customs declaration
99 Other

Useful tips

πŸ“Œ You need to make ETD through UploadPaperlessDocumentation call before making Ship call (or before sending the order from ShippyPro), or the ETD won't be linked to Ship call: TransactionID, Name, Country fields must match (case sensitive).

πŸ“Œ If you make a UploadPaperlessDocumentation API call with a TransactionID already present inside ShippyPro, it will be automatically be attached to your order if shipped within the next 24 hours.

πŸ“Œ UploadPaperlessDocumentation API can be used only once. Edit method API call cannot be employed with this specific call. This means that if you need to apply some changes on a Paperless document already generated, you should make a new UploadPaperlessDocumentation API call as well as a new Ship related to this new one.

πŸ“Œ On another hand, if you upload an X number of Paperless documents without any order inside To Ship section and then you create your shipments, all the ETDs from the last 24h will be attached.

πŸ“Œ In case you upload two ETDs with the same TransactionID and then you create the shipment, only the most recent file will be attached.

UploadPaperlessDocumentation

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
TransactionID string true false Your internal reference order number 255 chars
Name string true false Recipient name
Country string true false Recipient Country ISO code (ISO 3166) 2 chars
Document string true false PDF document base64 encoded file
DocumentType int false false Document type (see the table below)

DeletePaperlessDocumentation

Attributes

Shipping Platform

This method allows you to delete unused Electronic Trade Documents (ETD / Paperless customs) that you previously uploaded with UploadPaperlessDocumentation, selecting them by the TransactionID or the recipient Name you supplied at upload time.

πŸ’‘ This method gives you the ability to:

The supported DocumentType values are the same as for UploadPaperlessDocumentation.

Useful tips

πŸ“Œ You must provide at least one of TransactionID or Name (you may provide both); if you provide neither, the call returns INVALID_INPUT_DATA. TransactionID matches documents uploaded for an order already present in ShippyPro. Name matches documents uploaded ahead of the order β€” these are stored without a TransactionID and are addressed by the recipient Name you sent at upload (case sensitive). Pass DocumentType to delete only documents of that type; omit it to delete every matching unused document.

πŸ“Œ Only documents uploaded in the last 24 hours are eligible β€” the same window in which an uploaded ETD can still be attached to a shipment.

πŸ“Œ Documents already used (attached to a shipped order) are never deleted: they are reported under Skipped. If every matching document is already used, the call returns the ETD_ALREADY_USED error.

DeletePaperlessDocumentation

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
TransactionID string false false Your internal reference order number used at upload. Required if Name is not provided. 255 chars
Name string false false Recipient name used at upload. Required if TransactionID is not provided.
DocumentType int false false Document type to narrow the deletion (same values as UploadPaperlessDocumentation)

UploadPaperlessPostShip

Attributes

Shipping Platform

Electronic Trade Documents (ETD) or Paperless customs is an automated international shipping solution that allows you to submit your customs documentation electronically so you no longer need to print and attach multiple copies to your shipments.

πŸ’‘ This method gives you the ability to:

List of supported document types

Useful tips

πŸ“Œ You need to make the UploadPaperlessPostShip call after making the Ship call setting PostShipmentETD at True.

πŸ“Œ UploadPaperlessPostShip API will immediately send the ETD documents to the carrier.

πŸ“Œ You can upload multiple documents in the same UploadPaperlessPostShip call.

UploadPaperlessPostShip

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
OrderID string true false ShippyPro reference order number
Documents array true false contains n objects, one for each document uploaded
Document string true false PDF document base64 encoded file
DocumentType int false false Document type (see the table below)

CreateCrossBorderInvoice

Attributes

Shipping Platform

This method allows you to generate an invoice specifically designed for customs declaration and transmit it to the allowed carriers with just one request.

πŸ’‘ This Method gives you the ability to:

Generate Commercial or Proforma Invoice: This method enables the creation of a commercial or proforma invoice, which is required for cross-border shipments.

Transmit Paperless Invoice: You can transmit the invoice directly to the carrier as an Electronic Trade Document (ETD), making it a paperless transaction.

Useful tips

πŸ“Œ To transmit the invoice to the carrier as a paperless document, ensure that the UploadETD parameter is set to True when making the API call.

πŸ“Œ If the invoice needs to be created and transmitted to the carrier after the shipment is created, you should:

Make the Ship call to create the shipment, ensuring that the PostShipmentETD flag is set to True.

Call the CreateCrossBorderInvoice call

CreateCrossBorderInvoice

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
Incoterm string true false The incoterm for the transaction Depends on the specific incoterm
TypeOfExport string true false The type of export Depends on the specific type
Currency string false true The currency used in the invoice 3 characters
NumberOfParcels string false true The number of parcels involved in the shipment
OrderId string true false The unique order ID
OrderReference string false true The reference number for the order
TotalLineItems string false true The total number of line items
TotalWeight string false true The total weight of the shipment
TotalAmount number false true The total amount of the invoice
TotalGst number false true The total GST for the invoice
WeightUOM string false true The unit of measure for weight. Default is "KG".
InvoiceType string false true The type of invoice Depends on the specific type
UploadETD string false true Upload the generated invoice direclty to the carrier of the indicated OrderId
DeclarationNotes string false true Additional notes for the declaration
AirwaybillNumber string false true The airway bill number for the shipment
CustomReference string false true A custom reference for the invoice
InvoiceNumber string true false The unique invoice number
CountryOfExportDestination string false true The country of export destination 2 characters (ISO 3166-1 alpha-2)
DateOfExportation string true false The date of exportation ISO 8601 date format (YYYY-MM-DD)
SignatureDate string false true The date of signature ISO 8601 date format (YYYY-MM-DD)
ShipperExporter object true false Details of the exporter -
ShipperExporter.Name string true false Name of the exporter
ShipperExporter.Address string true false Address of the exporter
ShipperExporter.Company string false true Company name of the exporter
ShipperExporter.Zipcode string true false Zip code of the exporter
ShipperExporter.City string true false City of the exporter
ShipperExporter.Country string true false Country of the exporter 2 characters (ISO 3166-1 alpha-2)
ShipperExporter.Telephone string true false Telephone number of the exporter
ShipperExporter.VatNumber string false true VAT number of the exporter
ShipperExporter.Eori string false true EORI number of the exporter
ShipperExporter.CustomReference string false true Custom reference for the exporter
Importer object false true Details of the importer -
Importer.Name string true false Name of the importer
Importer.Company string false true Company name of the importer
Importer.Address string true false Address of the importer
Importer.Zipcode string true false Zip code of the importer
Importer.City string true false City of the importer
Importer.Country string true false Country of the importer 2 characters (ISO 3166-1 alpha-2)
Importer.Telephone string true false Telephone number of the importer
Importer.VatNumber string false true VAT number of the importer
Importer.Eori string false true EORI number of the importer
Importer.CustomReference string false true Custom reference for the importer
Consignee object true false Details of the consignee -
Consignee.Name string true false Name of the consignee
Consignee.Company string false true Company name of the consignee
Consignee.Address string true false Address of the consignee
Consignee.Zipcode string true false Zip code of the consignee
Consignee.City string true false City of the consignee
Consignee.Country string true false Country of the consignee 2 characters (ISO 3166-1 alpha-2)
Consignee.Telephone string true false Telephone number of the consignee
Consignee.VatNumber string false true VAT number of the consignee
Consignee.Eori string false true EORI number of the consignee
Consignee.CustomReference string false true Custom reference for the consignee
Goods array true false List of goods being exported Minimum 1 item
Goods[*].ParcelCount integer true false The parcel number -
Goods[*].TypeOfPackaging integer false true The type of packaging used -
Goods[*].Marks string false true Marks or labels on the goods -
Goods[*].Description string true false Description of the goods -
Goods[*].HsCode string true false Harmonized System code -
Goods[*].CountryOfOrigin string false true The country of origin of the goods -
Goods[*].Quantity integer true false The quantity of the goods -
Goods[*].QuantityUOM string false true Unit of measure for quantity. Default is "pcs"
Goods[*].Weight number true false The weight of the goods
Goods[*].UnitValue number true false Value per unit of the goods
Goods[*].GstPaid number false true GST paid on the goods
Goods[*].SubTotalValue number false true Subtotal value of the goods

Orders

GetOrder

Attributes

Shipping Platform

This method retrieves order/shipment details for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

GetOrder

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
OrderID int true false ShippyPro Order ID

ArchiveOrders

Attributes

Shipping Platform

This method archives a shipped order for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

ArchiveOrders

The body of this request has the following attributes:

UpdateOrders

Attributes

Shipping Platform

This method allows you to send shipment info to the marketplaces and mark the order as shipped for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

UpdateOrders

The body of this request has the following attributes:

PutOrder

Attributes

Shipping Platform

This method allows you to create your Orders inside ShippyPro and then ship them.

πŸ’‘ This Method gives you the ability to:

In order to upload orders, you must first configure a Marketplace in ShyppyPro, retrieve its ID from the marketplace page to then fill the APIOrdersID method request paramenter.

PutOrder

The body of this request has the following attributes:

VoidShipments

Attributes

Shipping Platform

This method allows you to void your previously generated shipment inside ShippyPro for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

This Method cancel an order inside ShippyPro. Please note that not all the carriers support to void a shipment, please check here if your carrier supports it.

πŸ“Œ If you'd like to cancel a shipment for a Carrier which is not supporting void, you'll need to proceed directly from Carrier's website. This way it will be automatically removed from ShippyPro as well as from Carrier's server and, therefore, cancelled.

πŸ“Œ In case you need to look for it in the future, you'll still be able to find it by entering the Order ID in ShippyPro Global Search feature.

VoidShipments

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
OrderIDS Array true false ShippyPro Order IDs
CarrierName string true false Carrier name

GetLabelUrl

Attributes

Shipping Platform

This method allows you to get the order labels and tracking data for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

⚠️ Note! The data type of the response attribute LabelURL could be both an array or a string.

GetLabelUrl

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
OrderID int true false ShippyPro Order ID
LabelType string false false Label type ("PDF" or "ZPL") - Use this field to request a specific label format (conversion will happen automatically)
LabelWidth float false false Label width (cm, for PDF)
LabelHeight float false false Label height (cm, for PDF)
Rotate int false false Label rotation (in degrees, ⚠️ only applicable when a conversion is needed)
PageNumber int false false Index of the label you want to retrieve
SplitPages bool false false Set TRUE if you want to split the labels

GetPendingOrders

Attributes

Shipping Platform

This method allows you to get not yet shipped order list for 60+ marketplace with the same API call.

πŸ’‘ This Method gives you the ability to:

How to test

The Excel Manual Shipments and Ship API Method, don't allows to import order details as put put order.

MarketPlace Order Item Attributes

For Shopify and Maxpho, the method can retrieve also order items attributes, if IncludeItemsAttributes is set to true. Anyway for Magento orders an items mapping is needed in order to retrieve items attributes.

GetPendingOrders

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
DateMin int false false Filter date from timestamp (e.g. 1657275360) 10 digits
DateMax int false false Filter date to timestamp (e.g. 1657275360) 10 digits
TransactionID string false false Your internal reference order number 255 chars
IncludeItemsAttributes boolean false false If you want to include the item attributes
ExcludeReturns boolean false false If you want to exclude the returns

GetShippedOrders

Attributes

Shipping Platform

This method allows you to get shipped (label generated) order list for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

GetShippedOrders

Name Data Type Required Empty Description Max length
DateMin int true false Filter date from timestamp (e.g. 1657275360) 10 digits
DateMax int true false Filter date to timestamp (e.g. 1657275360) 10 digits
TransactionID string false false Your internal reference order number 255 chars
CarrierName string false false Order Carrier name
OrderStatus string false false Order status
OrderIDS array false false ShippyPro Order IDs

DeletePendingOrder

Attributes

Shipping Platform

This method allows you to delete a not yet shipped order for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

⚠️ You have to set at least one markeplace ID to get its APIOrdersID to fill the request method parameter.

The result is OK if the call was successful, or NOK if the call was unsuccessful.

DeletePendingOrder

Name Data Type Required Empty Description Max length
APIOrdersID int false false APIOrders Marketplace ID
TransactionID string true false Your internal reference order number 255 chars

IsPendingOrder

Attributes

Shipping Platform

This method allows you to verify if an order not yet shipped for 170+ carriers with the same API call.

This method returns true if the order has not yet been shipped, or if it has been shipped but the shipment failed.

πŸ’‘ This Method gives you the ability to:

You can call the GetMarketPlaces API method to retrieve your connected Market Place names.

IsPendingOrder

Name Data Type Required Empty Description Max length
MarketplacePlatform string Order Marketplace platform
TransactionID string true false Your internal reference order number 255 chars

EditPendingOrders

Attributes

Shipping Platform

This method allows you to edit orders not shipped yet

πŸ’‘ This Method gives you the ability to:

EditPendingOrders

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
Orders Array true false Pending orders array information

PutShippedOrder

Attributes

Shipping Platform

This method allows you to add external Orders already been shipped inside your ShippyPro profile. By doing so, you can use our Easy Return/Track and Trace features without generating the shipping labels via ShippyPro.

πŸ’‘ This Method gives you the ability to:

How to use

In order to import shipped order in ShippyPro with this method, you need to activate API-Folder and get its APIOrdersID. Follow this guide to actiate API-Folder in your ShippyPro account.

PutShippedOrder

GetPOD

Attributes

Shipping Platform

This method allows you to get Proof Of Delivery for delivered shipments for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

GetPOD

Name Data Type Required Empty Description Max length
OrderID string true false ShippyPro Order ID

GetPODDocument

Attributes

Shipping Platform

This method allows you to get a PDF document that includes the carrier Proof Of Delivery together with the related shipment details (such as tracking number, delivery date and carrier) for delivered shipments for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

πŸ“Œ The Result field reports whether the document includes the proof of delivery signature:

GetPODDocument

GetDetailedPricing

Attributes

Shipping Platform

This method allows you to get detailed estimated pricing calculated of one order for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

πŸ“Œ The method is only available for carriers without live rates and does requires:

Price Information from GetRates to be passed in the Ship call

    "zone_name": "Italy",
    "weight_range": "0-500",
    "detailed_pricing": [\
        {\
            "type": "tariff",\
            "price": 10,\
            "desc": "Tariff"\
        }\
    ]

GetDetailedPricing

CreateInvoice

Attributes

Shipping Platform

This method allows you to generate and get Order summary or invoice for one or more Orders for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

πŸ“Œ Each Order to include must be a different object in the "Documents" array.

CreateInvoice

Name Data Type Required Empty Description Max length
DocumentType string true false Specify "invoice" of "order_summary"
Prefix string false false The Prefix of the Document Name
ProgressiveNumber int false false The Progressive Number from which the documents' numeration starts (default: 0)
ShowLogo bool false false Set TRUE if the company logo must be displayed in the invoice (default: false)
IncludeShippingCost bool true false Set TRUE if the shipping cost must be included in the invoice
VAT int false false Vat percentage (default: 0)
UploadETD int false false Upload the document as Electronic Trade Document (default: false)
Documents Array true false Array containing the documents' details
VatNumber string false false Customer's VAT number
AdditionalTaxID string false false Customer's additional tax id
AdditionalDescription string false false Document additional description
FooterDescription string false false Document footer description
OrderID int false false ShippyPro Order ID
TransactionID string true false Your internal reference order number 255 chars
MarketplacePlatform string true false Marketplace platform
MarketplaceID string true false Marketplace ID
Currency string true false Document currency
Date int true false Date timestamp (e.g. 1657275360) Max integer length (10 digits)

MarkOrdersAsPrinted

Attributes

Shipping Platform

This method allows you to mark orders as printed for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

πŸ“Œ Printing labels using API integration does not permit to know if an order has been really printed on by your printers. So, if you use cronjobs that acts on printed orders, eg. Archive Orders or Updated Orders, you need to mark them as printed, to make them processable by cronjobs. Anyway cronjobs will process orders marked as printed based on their own schedule that you specify in ShippyPro cronjob section. If you need more info on how cronjob works, please check our cronjob help guide.

MarkOrdersAsPrinted

GetShipmentsReport

Attributes

Shipping Platform

This method allows you to get the list of shipments (and returns) in the specified timeframe for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

GetShipmentsReport

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
DateMin int true false Filter date from timestamp (e.g. 1657275360) 10 digits
DateMax int true false Filter date to timestamp (e.g. 1657275360) 10 digits
Return bool false false Set TRUE to view return shipments
IncludeItems bool false false Set TRUE to include items in the response
ShowHiddenShipments bool false false Set TRUE to include deleted orders

GetReturnsReport

Attributes

Return

This method allows you to get the list of returns in the specified timeframe for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

GetReturnsReport

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
DateMin int true false Filter date from timestamp (e.g. 1657275360) 10 digits
DateMax int true false Filter date to timestamp (e.g. 1657275360) 10 digits

CreateMasterShipment

Attributes

Shipping Platform

This method allows you to obtain a new Master Shipment Identifier in order to initialize a Bulk Shipping request with a carrier that supports it.

πŸ’‘ This Method gives you the ability to:

πŸ“Œ A Master Shipment Identifier (MasterShipmentID) can be obtained through API CreateMasterShipment solely by passing a Carrier that actively supports Bulk Shipping. Bulk Shipping allows customers to consolidate multiple shipments with different destinations, typically within the same country, but handled by the courier at a common sorting center, and therefore sharing the same intermediate stop. Orders are first dispatched to an import center as a whole, and later delivered to their individual final destinations.

CreateMasterShipment

Name Data Type Required Empty Description Max length
CarrierID int true false Carrier ID
CarrierName string true false Carrier Name

CloseMasterShipment

Attributes

Shipping Platform

This method allows for the closure of a Bulk Shipping stream. Bulk Shipping is available only for a small selection of couriers. The Bulk Shipping process begins with a request to the CreateMasterShipment endpoint, which returns a Master Shipment ID. This ID is used for all subsequent Ship calls using a dedicated carrier option. Upon completion of the shipments, the Bulk Shipping stream must be formally closed through a call to the CloseMasterShipment endpoint, which handles the finalization and grouping of the previous shipments according to the specifications of the individual courier used.

πŸ’‘ This Method gives you the ability to:

πŸ“Œ This API method is heavily based on API Ship, thus it shares almost the same request parameters list. There are minor differences that should be accounted for. Please refer to the table below and API Ship documentation.

CloseMasterShipment

Name Data Type Required Empty Description Max length
masterShipmentId string true false Master Shipment ID
Parcels array false false Array of Parcels, optional

πŸ“Œ This list solely highlights differences between API CloseMasterShipment and Ship. Every other parameter available with Ship can also be used with this method.

Printing

GetPrinters

Attributes

Shipping Platform

This method allows you to get the list of connected printer in your shippypro account.

πŸ’‘ This Method gives you the ability to:

GetPrinters

Name Data Type Required Empty Description Max length
ComputerHostname string false false Search printers by computer name

PrintOrder

Attributes

Shipping Platform

This method allows you to print Orders labels with to ShippyPro printer for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

PrintOrder

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
OrderID string true false ShippyPro Order ID
Force bool false false Force the printing even if the Order was already printed (default: false)
PrinterID string false false If present print on a specific printer ID, otherwise use the associations configured inside the panel

PrintOrderBySKU

Attributes

Shipping Platform

This method allows you to print Orders labels specifying an item SKU with a ShippyPro printer for 170+ carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

Print orders labels with a ShippyPro connected printer saerching for an item SKU in your orders.

PrintOrderBySKU

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
SKU string true false Scanned item SKU
PickingListID int true false The Picking List number
Force bool false false Force the printing even if the order was already printed (default: false)
PrinterID string false false If present print on a specific printer ID, otherwise use the associations configured inside the panel

Dropoff Points

GetDropOffPoints

Attributes

Checkout

This method allows you to get all the nearest Pick-Up & DropOff (PUDO) points for all supported carriers with the same API call.

πŸ’‘ This Method gives you the ability to:

Response behavior:

GetDropOffPoints

The body of this request has the following attributes:

Note: You must provide eithercity/zip/country orlat/lng to specify the location. Both sets are individually optional, but at least one complete set must be provided.

Name Data Type Required Empty Description Max length
city string false false Recipient city. Required if lat and lng are not provided
zip string false false Recipient zip code. Required if lat and lng are not provided Depends on the country
country string false false Recipient country. Required if lat and lng are not provided
couriers array false true Carriers to display
limit int false false Set the maximum numbers of drop-off points up to 50 (default 20)
range int false false Define range search area in km (min: 1, max: 20)
lat float false false Latitude. Can be used with lng as an alternative to city/zip/country
lng float false false Longitude. Can be used with lat as an alternative to city/zip/country

GetDropOffInfo

Attributes

Checkout

This method allows you to obtain detailed information about a Pick-Up & DropOff (PUDO) point, starting from its pointId.

πŸ’‘ This Method gives you the ability to:

GetDropOffInfo

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
PointId string true false Point Id to be searched
CarrierName string true false The carrier name that the point belongs to
Country string false false Point country
CarrierId int false false The carrier Id that needs to be used to search for the point

Whitelabels

GetLoginToken

Attributes

Multi-level

This method returns the access token to our platform for one user.

GetLoginToken

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
username string true false Username used for login
password string true false Password used for login

RegisterNewUser

Attributes

Multi-level

This method registers a new user on our platform.

RegisterNewUser

Multi-level

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
customer_name string true false Client's name
customer_surname string true false Client's surname
customer_email string true false Client's email
customer_company string true false Client's company
customer_phone string true false Client's phone
customer_street string true false Client's street
customer_housenr string true false Client's house number
customer_zip string true false Client's zip code
customer_city string true false Client's city
customer_country string true false Client's country (ISO 3166)
customer_vatno string true false Client's VAT number
customer_state string true false Client's state
customer_otherfiscalid string true false Client's fiscal code
customer_invoice_name string true true Customer name for the invoice
customer_invoice_surname string true true Customer surname for the invoice
customer_invoice_email string true true Customer email for the invoice
customer_invoice_company string true true Customer company for the invoice
customer_invoice_phone string true true Customer phone for the invoice
customer_invoice_street string true true Customer street for the invoice
customer_invoice_housenr string true true Customer house number for the invoice
customer_invoice_zip string true true Customer zip for the invoice
customer_invoice_city string true true Customer city for the invoice
customer_invoice_country string true true Customer country for the invoice
customer_invoice_vatno string true true Customer VAT number for the invoice
customer_invoice_state string true true Customer state for the invoice
customer_invoice_otherfiscalid string true true Customer fiscal code for the invoice
customer_avatar_url string true true Client's avatar url
customer_whitelabel_clientref string true true Client's reference
customer_whitelabel_paywithcredits int true true Indicate if the customer pays the shipments with credits
customer_show_net_rates int true true Show the tariffs with VAT or not
wholesaler bool true true Indicate if the customer is wholesaler
eori string true true Client's EORI
ioss string true true Client's IOSS
create_apiorders int true true Indicate if the APIOrders marketplace will be automatically connected
create_apikey bool true true Indicate if the API Keys will be generated

BlockUser

Attributes

Multi-level

This method allows you to block a User.

πŸ’‘ This Method gives you the ability to:

BlockUser

The body of this request has the following attributes:

Name Data Type Required Empty Description Max length
customer_email string true false Customer Email
message string false true Message

UnblockUser

Attributes

Multi-level

This method allows you to unblock a User.

πŸ’‘ This Method gives you the ability to:

UnblockUser

The body of this request has the following attributes:

GetCustomers

Attributes

Multi-level

This method returns the customer list

GetCustomers

Webhooks

ShippyPro uses webhooks to notify your application when an event happens in your account. Webhooks are particularly useful for asynchronous events like when a carrier confirms a label creation, a shipment tracking or an error.

How ShippyPro uses webhooks

A webhook enables ShippyPro to push real-time notifications to your app. ShippyPro uses HTTPS to send these notifications to your app as a JSON payload. You can then use these notifications to execute actions in your e-commerce store, applications or backend systems.

How to connect webhooks For more informations on how to connect ShippyPro webhooks please check our help article here.

Tracking Update

Tracking System

This webhook gives you the ability send real time shipments tracking event to your store for 170+ carriers with the same webhook. Your store must support webhook in order to get the tracking updates.

πŸ’‘ This webhook gives you the ability to:

The body that you will receive at your endpoint will be the following:

Name Data Type Description Max length Schema
Event string Event name: TRACKING_UPDATE Webhook events
tracking string Tracking number
date int Date of the event - timestamp (e.g. 1657275360) Max integer length (10 digits)
message string Event description
city string City where the event happened
est_delivery_date string Estimated delivery date (please read below) - timestamp (e.g. "1657275360") Max string length (10 digits)
first_status_date string First event status date date - timestamp (e.g. "1657275360") Max string length (10 digits)
late string If the value is 1 means that the shipment is late
code int The event category (see below)
extendedCode string null New tracking code
OrderID string ShippyPro Order ID
TransactionID string Your internal reference order number 255 chars
TrackingCarrier string Carrier name
TrackingCarrierID string Carrier ID
MarketplaceID string Marketplace ID
MarketplacePlatform string Marketplace name
IsReturn boolean Set TRUE if the order is a return.
ReturnType string The return type (i.e. manual_return, return_label_combination, easy_return or null if the order is not a return)
ExternalLink string Carrier tracking link

Estimated Delivery Date

The estimated dalivery date is returned only for carriers that supports Live Rates. To know which carrier support Live Rates and then the Estimated Delivery Date please check out carrier comparison map here.

Anyway, ShippyPro gives you the ability to manually set the delivery time for carriers that do not support live rates in the Carrier Connection Price page. If these values are set, ShyppyPro will calculate the Estimated Delivery Date, and if values are not set, the Estimated Delivery Date will be returned as 0. For more information on how to manually set Delivery Time, please check here.

Tracking Code Values

To simplify your work, we associated each carrier tracking statuses with these simple ShippyPro six shipments statuses. These are the possible ShippyPro tracking code values.

Code Description
0 Order In Preparation
1 Info Received
2 In Transit
3 Out for Delivery
4 Missed Delivery
5 Exception
6 Delivered

Extended Tracking Statuses

Every tracking update is additionally mapped to an extendedCode, representing a more granular status.

Extended Tracking Statuses

Extended Code Description
1000 Info Received
2000 In transit
2100 Dropped by customer
2200 Collected by carrier
2300 Carrier handling
2310 Arrived at terminal/hub
2320 Processing at terminal/hub
2330 Departed from terminal/hub
2400 Customs Clearance
2500 Delivery planned
3000 Out for Delivery
3100 Delivery in progress
3200 Available for pickup at PUDO/Facility
4000 Failed Attempt
5000 Generic Exception
5100 Transit Disruptions
5110 Delayed
5120 External causes
5200 Operational Issues
5210 Misrouted
5220 Pickup not possible
5230 On Hold
5300 Parcel Exception
5310 Exceeded dimensions or weight
5320 Damaged
5330 Lost
5340 Destroyed
5400 Address Discrepancies
5410 Insufficient address information
5420 Wrong address information
5500 Customs and Documentation
5510 Customs-related issues
5520 Missing documents
5600 Sender/Recipient-Related Events
5610 Recipient exception
5620 Sender exception
5630 Returning to sender
5700 Carrier Actions
5710 Carrier asks to be contacted
5720 Change to delivery
5730 Other Carrier Exception
6000 Delivered
6900 Manually Marked as Delivered
9999 Not mapped

Custom Attributes

πŸ“Œ In the table below you can find all webhook custom attributes, that enables to improve your customer shipping experience.

Name Data Type Description Max length
IsReturning boolean Set TRUE only if the order receives a delivery exception and will be returned to sender.
ReturnTrackingNumber string The return tracking number of return label in the box shipment.
AtPudo boolean Set TRUE if the order is at PUDO.
PudoID string PUDO point identifier.
Category string In case of tracking exception identify the excpetion category.
Attributes string If defined in the orders contains the order attributes values.

Example

    {
        "Event": "TRACKING_UPDATE",
        "tracking" : "1ZA103756899507566",
        "date": 1489659960,
        "message": "DELIVERED",
        "city": "MOTRIL",
        "est_delivery_date": "1489659960",
        "first_status_date": "1489646578",
        "late": "0",
        "code": 6,
        "OrderID": "191252",
        "TransactionID": "ORDER2365",
        "TrackingCarrier": "UPS",
        "TrackingCarrierID": "123",
        "MarketplaceID": "123",
        "MarketplacePlatform": "Amazon",
        "IsReturn": false,
        "ReturnType": null,
        "ExternalLink": "https://www.carrierwebsite.com/tracking/123"
    }

Update Frequency

In order to have a regular tracking status update on shipments, ShippyPro needs to inquiry carriers' APIs periodically. The update frequency is different for each carrier and optimized to have tracking data as much updated as possible, without exceeding carrier’s API throttling limits. Hence you may receive webhooks with a certain delay on the carrier tracking event and, in case multiple events happen within the same updating timeframe, only the latest will be notified via webhook.

Order Shipped

Shipping Platform

This webhook gives you the ability send real time shipments and label creation event including return shipments, to your system for 170+ carriers with the same webhook. Your system must support webhook in order to get the order shipped events.

πŸ’‘ This Method gives you the ability to:

The body that you will receive at your endpoint will be the following:

Name Data Type Description Max length Schema
Event string Event name: ORDER_SHIPPED Webhook events
LabelURL Array Array containing labels URLs
OrderID string ShippyPro Order ID
TransactionID string Your internal reference order number 255 chars
CarrierID int Carrier ID
TrackingCarrier string Tracking Carrier
TrackingNumber string Tracking number
MarketplaceID string Marketplace ID
MarketplacePlatform string Marketplace name
IsReturn boolean Set TRUE if the order is a return. For return label in the box shipments parameter is sent as false.
ReturnType string The return type (i.e. manual_return, return_label_combination, easy_return or null if the order is not a return)

Custom Attributes

Name Data Type Description Max length
ReturnTrackingNumber string The return tracking number of return label in the box shipment
Attributes string The custom order attributes

Example

    {
        "Event": "ORDER_SHIPPED",
        "LabelURL": ["https://www.shippypro.com/ldv/ldv-1.pdf", "https://www.shippypro.com/ldv/ldv-1.pdf"],
        "OrderID": "191252",
        "TransactionID": "ORDER2365",
        "CarrierID": 50,
        "TrackingCarrier": "UPS",
        "TrackingNumber": "1ZA103756899507566",
        "MarketplaceID": "123",
        "MarketplacePlatform": "Amazon",
        "IsReturn": false,
        "ReturnType": null
    }

Order Error

Shipping Platform

This webhook gives you the ability send real time order error events and message to your store for 170+ carriers with the same webhook. Your store must support webhook in order to get the tracking updates.

πŸ’‘ This Method gives you the ability to:

The body that you will receive at your endpoint will be the following:

Name Data Type Description Max length Schema
Event string Event name: ORDER_ERROR Webhook events
OrderID string ShippyPro Order ID
TransactionID string Your internal reference order number 255 chars
ErrorMessage string Error message description
ErrorType object Type of error if the order was not successful
code string Code of the error type
name string Name of the error type
description string Description of the error type
ErrorSuggestion object Description and potential solution for the occurred error
Description string Description of the order error returned
Solution string Proposed solution to potentially fix the error
Links array URLs pointing at the relevant documentation
    {
        "Event": "ORDER_ERROR",
        "OrderID": "191252",
        "TransactionID": "ORDER2365",
        "ErrorMessage": "Street too long",
        "ErrorType": {
            "code": "INVALID_ADDRESS",
            "name": "Invalid Address",
            "typeDescription": "One or more fields of the destination address (Zip code, city, address, state, province) are invalid or missing."
        },
        "ErrorSuggestion": {
            "errorDescription": "Check the address and try again",
            "solution": "Check the address and try again",
            "links": [\
                "https://www.example.com"\
            ]
        }
    }

Return Label in the Box Tracking Update

Return

This webhook gives you the ability receive real time tracking events for the Return Label in the Box process to your store for 170+ carriers with the same webhook. Your store must support webhook in order to get the tracking updates.

The body that you will receive at your endpoint will be the following:

Name Data Type Description Max length Schema
Event string Event name: RETURN_LABEL_IN_THE_BOX_TRACKING_UPDATE Webhook events
tracking string Tracking number
date int Date of the event - timestamp (e.g. 1657275360) Max integer length (10 digits)
message string Event description
city string City where the event happened
code int The event category (see below)
OrderID string ShippyPro Order ID
TransactionID string Your internal reference order number 255 chars
TrackingCarrier string Carrier name
TrackingCarrierID string Carrier ID
MarketplaceID string Marketplace ID
MarketplacePlatform string Marketplace name

Tracking Code Values

Code Description
1 Info Received
2 In Transit
3 Out for Delivery
4 Missed Delivery
5 Exception
6 Delivered

Example

    {
        "Event": "RETURN_LABEL_IN_THE_BOX_TRACKING_UPDATE",
        "tracking" : "1ZA103756899507566",
        "date": 1489659960,
        "message": "DELIVERED",
        "city": "MOTRIL",
        "code": 6,
        "OrderID": "191252",
        "TransactionID": "ORDER2365",
        "TrackingCarrier": "UPS",
        "TrackingCarrierID": "123",
        "MarketplaceID": "123",
        "MarketplacePlatform": "Amazon",
    }

Update Frequency

Webhook events

This section provides a list of events used in webhooks.

Value Description
TRACKING_UPDATE Sent when a tracking update is available
ORDER_SHIPPED Sent when an order is shipped
ORDER_ERROR Sent when an order is in error
RETURN_LABEL_IN_THE_BOX_TRACKING_UPDATE Sent when a tracking update is available for the Return Label in the Box process

Monitoring

Ping

Attributes

Shipping Platform

This method is needed for checking the connection between your systems and the ShippyPro API.

Ping

Switch between example and interactive console for customized API calls.

No action selected

You can try selecting β€˜Ship’ from the left column.

Learn more about using the documentation.

No action selected

To try out Console, please select an action. E.g. select β€˜Ship’ from the left column.

Learn more about using the documentation.