FAQs
Do I need to have accounts with the individual carriers in order to fetch shipping rates when using the Rocketshipit API?
Yes, most carriers require an account before you can connect to their APIs. RocketShipIt is a direct connection to your shipping account.
How do I remove "SAMPLE" from the label?
"SAMPLE" will be removed when you set the test
parameter to false
.
Do you provide the access for the developer to integrate these API, test them and then go-live?
Yes, most carriers have a test/development environment. In RocketShipIt you can specify this by setting the test
parameter to true which will create unpaid sample labels.
I ship a lot, can RocketShipIt handle my shipping volume?
Yes. RocketShipIt connects directly from your computer/server to the carrier API. RocketShipIt doesn't impose any limits. The only limit is the carrier API itself.
Are dimensions required for getting a shipping rate?
Package dimensions are not required by UPS or FedEx but you will want to add them if you can to produce a more accurate rate.
Will you support my shipping carrier?
Yes. For a list of all the carriers RocketShipIt supports see: Supported Shipping Carriers.
Is your carrier not supported? Drop us a line and we will add it: support@rocketship.it. It is our goal to support all shipping carriers.
Do you provide any webhooks for update in the package location for a given tracking number?
We don't offer webhooks because none of the shipping carriers have direct support for them. We do support UPS QuantumView which allows you to subscribe to new events for your shipments which can replicate webhook functionality.
My ZPL label doesn't look right when I view it on my computer
If you are viewing labels through a viewer like http://labelary.com/viewer.html you are always going to get an approximation of what the label will look like once printed. At the time of this writing, it is currently impossible to get an accurate visual representation of ZPL/EPL labels without printing it as the logic to print is actually contained inside the printer hardware. If you need to show a visual representation of the label use an image format like PNG or GIF.
Why do Stamps.com ZPL labels contain strange characters?
ZPL allows for a mixture of ascii and binary data. Stamps.com happens to embed some binary data into their ZPL labels (probably for their logo). Although this is valid and will print perfectly on any ZPL compatible printer, it may not show as regular ascii characters when viewing it as plain text.
Do you support Freight and LTL shipments?
We currently support freight rating and shipping for UPS and FedEx.
Can I get a proof of delivery (signed document) from carrier using your API's?
Yes. We automatically include the Proof of Delivery PDF in all tracking responses when available.
Do you support shipping to military APO addresses?
Yes.
Can RocketShipIt get rates and make labels for USPS flat rate boxes.
Yes.
Do you support UPS QuantumView?
Yes.
Can I preview/convert ZPL to an image like PNG?
EPL/ZPL cannot reliably be converted to an image like PNG/PDF as the rendering is done in the actual printer hardware. There are some tools that can approximate it but it is a hack. In addition, none of the carriers allow you to request both a thermal label and an image at the same time. Our RocketShipIt Print Server does have the ability to convert PNG to ZPL but not the other way around.
I see RocketShipIt doesn't support my carrier, can we get it added?
Totally. It is our mission to cover every shipping carrier. To expedite the process get their API docs and some test credentials and send them over to us and we will get started right away.
Does your license support the ability to sell our applications to other customers?
This is mostly fine as long as you are not creating a shipping API for developers. See: https://www.rocketship.it/LICENSE.txt
I am getting, "RocketShipIt binary is missing or not executable" error message.
If you are using CentOS you may have SELinux enabled. Running, /usr/sbin/setenforce Permissive
may fix it temporarily. See: http://superuser.com/questions/455935/php-script-cant-run-bash-script-sh-permission-denied/455994. You will probably want to configure this properly or disable SELinux.
How do I make the FedEx Label look more like the FedEx Ship Manager label which includes charges, services, tracking number, etc. at the top of the label?
Set the label_stock_type
parameter to: STOCK_4X6.75_LEADING_DOC_TAB
.
UPS Rating doesn't always return all service types
The Time in Transit API uses logic in its calculations and will suppress services that are more expensive if they will not deliver the shipment any quicker than those shown in the Rating API. To disable transit time and get all rates set the request_option
parameter to Shop
.
Running the RocketShipIt Print Server on Windows 10 crashes the computer.
You may need to run the server in administrator mode to avoid a crash.
How do I specify a the additional 4 digits in the US Postal Code?
For UPS you can specify the 9 digit postal code (without dash) for the additional 4 digits using the to_code
parameter. For FedEx you can specify the postal code with the to_code
parameter as 12345-1234
.
UPS: I'm getting the error "An exception has been raised as a result of client data. Invalid Destination."
For some origin destination pairs UPS requires the to_city
field. Please provide the to_city
field.
signature_type
parameter?
Do FedEx and UPS require a signature to release a package even if we don't specify a By default for UPS/FedEx the package is INDIRECT_SIGNATURE
which basically means it is up to the driver. If the location is in a heavily trafficked area and the driver determines the package might be stolen they will require a signature even if INDIRECT_SIGNATURE
or NO_SIGNATURE
is selected. They will always try to get a signature if possible. Signature required or DIRECT_SIGNATURE
means they will under no circumstances leave the package without a signature. This is often used for high value items. This tends to increase the rate as people tend to be at work when they deliver and multiple delivery attempts must be made.
Do you provide custom development services?
We currently provide custom development services through our partners at:
Does RocketShipIt support hundred weight?
No, here is what UPS had to say:
Thank you for your inquiry. We do not support Hundred Weight through the Developer APIs. However, we do have developer guides for the UPS Ground Freight in the Shipping and Rating zip files that can provide you with service for less than truckload shipments.
How do I migrate from RocketShipIt 1.x to 2.x?
The request/response structure has been changed quite a bit in order to make the request/responses more normalized across the carriers. So, you will unfortunately need to change most code that initiates a RocketShipIt request. That said, most of the parameter names are the same so it shouldn't be too difficult. You can also run RocketShipIt 1.0 and 2.0 side by side without conflict. This will allow you to migrate one service at a time. Maybe start with something simple like tracking.
Compare these two UPS requests:
https://docs.rocketship.it/php/1-0/create-label.html#ups
https://docs.rocketship.it/2-0/examples/?php#ups-label
RocketShipIt 2 targets multiple programming languages so the first difference is the request structure is just a nested key/value array. We no longer use PHP objects. This is because behind the scenes all RocketShipIt 2 requests are a single JSON object and you will always get a JSON/array like object returned.
Another difference of 2.0 is that there is no default/config file. All parameters (like carrier credentials) must be passed into every request. Over the years we found the config file confused many of our customers. If you want to set defaults you can always make your own default request and merge in request specific parameters. In PHP this can be done with a one-liner with something like: https://secure.php.net/manual/en/function.array-merge.php
$newRequest = array_merge($myDefaults, $myRequest);
If you get stuck checkout: https://docs.rocketship.it/rs/docs/troubleshooting.html
Are you still supporting RocketShipIt 1.x?
We can no longer afford to maintain or support 1.x. If the carrier changes or it breaks for some reason we will unfortunately have to tell you to upgrade to 2.0 to fix the issue. Because this may take awhile we recommend upgrading to 2.0 now.
All the datetimes are in UTC
Where possible date/time fields in RocketShipIt follow the standard RFC 3339 format: https://tools.ietf.org/html/rfc3339
In the case where carriers return the time without a timezone it is assumed to be in local time where the package is currently residing. According to https://tools.ietf.org/html/rfc3339#section-4.3 -0:00
represents local time. So in this case "2019-01-10T10:30:00-00:00" would indicate 10:30am local time (timezone where the package is). It should not be parsed as UTC. If so, this might be a bug in your parsing code. ISO_8601 does not permit -0:00
so it might be guessing UTC. If possible you should parse as RFC 3339?
Do I need to send end-of-day report to the carrier?
Nope. All transactions are done in real time over the internet. The carrier knows about your shipment immediately. Some carriers do offer a close report or scan report which allows the driver to scan a single barcode to indicate that all items have been shipped. The only difference is that this will indicate that the packages were shipped on pickup (when driver scans) vs shipped when scanned at the sorting center. This is mostly only relevant for USPS based products like SurePost or FedEx SmartPost.
See:
- https://docs.rocketship.it/2-0/examples/#fedex-create-manifest
- https://docs.rocketship.it/2-0/examples/#stamps-com-create-manifest-scan-form-by-id
- https://docs.rocketship.it/2-0/examples/#stamps-com-create-manifest-scan-form-by-date
- https://docs.rocketship.it/2-0/examples/#usps-create-manifest
Why doesn't UPS return all services for certain addresses?
When requesting rates, RocketShipIt sets the request_option
parameter to Shoptimeintransit
by default which provides detailed time in transit information and rates in a single API call. This essentially lets you skip doing a separate TimeInTransit
call to get estimated delivery. It also allows you to avoid having to map TimeInTransit
service codes with GetAllRates
service codes which are different and can be difficult to match. Unfortunately, UPS hides certain services when this feature is used. For example if Ground will arrive in 1 day then 3 day select will automatically be hidden as this service has unnecessary cost associated with it.
You can disable this feature by setting the request_option
parameter to Shop
but you may loose some time in transit information in the response.
Which carriers support three address lines?
- UPS
- DHL eCommerce
- Ontrac
- Stamps.com
What's a CN22 form?
A CN22 form or CN 22 is a form that is the USPS equivalent to a Commercial Invoice which is required on all international UPS Mail Innovations and UPS SurePost shipments. See: https://www.ups.com/worldshiphelp/WS15/ENU/AppHelp/GlossPopup/Customs_Declaration_CN_22.htm.
How do I make a Saturday Delivery shipment?
Set the saturday_delivery
parameter to true
.
How do I create a package that can be left with no signature?
Set the signature_type
to INDIRECT
and set the shipper_release
parameter to true
.
Does UPS deliver to Military APO OR FPO?
They might through the UPS Surepost service but in general no. Here is a reply from UPS:
UPS does not accept Army Post Office (APO) or Fleet Post Office (FPO) addresses. You must go through the United States Post Office.
For Stamps.com, is it possible to only get rates for a specific dimension without passing in specific package type?
Unfortunately, no; however, we have mentioned this to Stamps.com and they are considering it for a future feature.
Can RocketShipIt be used as part of a SaaS product with multiple tenants?
Yes, you can support multiple shipping accounts as long as you are not creating a shipping API targeted towards software developers. For full details see: https://www.rocketship.it/LICENSE.txt
Are there call limits on the services?
If you use RocketShipIt self-hosted there are no limits. If you use RocketShipIt in the cloud, we have some limits (which can be raised). See: https://docs.rocketship.it/rs/docs/cloud-api.html#cloud-rate-limits
https://ct.soa-gw.canadapost.ca/rs/ship/price: x509: certificate signed by unknown authority"
I'm getting errors like: "PostRocketShipIt doesn't ship with any certificates. It uses root certificates installed on your host OS. It is possible you need to update/upgrade your host OS. We've also seen this error when running RocketShipIt in a Docker container which typically doesn't come with root certs installed by default. Does curl https://ct.soa-gw.canadapost.ca/rs/ship/price
work for you? How about: curl https://www.google.com
?
I'm getting the error "The FTR Exemption or AES Citation you provided is not valid for EEI."
You can pass in the following RocketShipIt parameters to add an FTR Exemption:
"b13a_filing_option": "NOT_REQUIRED",
"export_compliance_statement": "NO EEI 30.37(f)",
How does GlobalPost Plus Single Piece differ from regular GlobalPost Plus?
GlobalPost + single piece is the cost of a DDP shipment without any consolidation required. GlobalPost + is the product DDP to particular countries.
Can I ship UPS through Stamps.com?
Yes, but you need to enabled it for your account. See: https://blog.stamps.com/ups-and-stamps-com-offer-discounted-shipping-rates/