Royal Mail
Royal Mail offers domestic and international shipping services for shipments originating in Great Britain. ShipStation API's integration with Royal Mail allows our UK-based customers with a Royal Mail Online Business Account - OBA to create domestic and international shipping labels for small parcels to be delivered anywhere within Royal Mail's extensive delivery network.
This guide provides developers with the details needed to build Royal Mail shipping capabilities into your ShipStation API workflows.
Requirements
Property | Type | Required? | Description |
---|---|---|---|
nickname | string | required | |
account_number | string | required | Your Royal Mail account number |
oba_email | string | required | This is your Royal Mail OBA email address used on the OBA login page. |
company_name | string | required | |
contact_name | string | required | |
email | string | required | Email address (used by ShipStation API to notify you when Royal Mail is fully configured in your account. It can be the same as the OBA email address, or it can be a different one). |
street_line1 | string | required | |
street_line2 | string | optional | |
city | string | required | |
postal_code | string | required | |
phone | string | required | |
posting_location_number | string | required |
Connection Requirements
Your Royal Mail account must be an OBA account. Non-OBA accounts are not currently eligible to connect to ShipStation API.
Shipping Requirements
- Both Name and Company Name must be included in the Ship From address.
- VAT and EORI numbers are required for international shipments. These are added in the Tax Identifiers Object when creating international labels.
- Royal Mail requires you to create and print a Sales Order Summary, which you must then hand to the driver who picks up the parcels. You cannot close shipments with dispatch dates in the future, only past or current-date shipments.
- You can generate your Sales Order Summary through the manifest process. When you make your request to the /v1/manifests endpoint, the response will include a link to download the Sales Order Summary PDF.
Connect Account
You can connect a Royal Mail account using the POST method to the /v1/connections/carriers/
endpoint, or via the ShipStation API Dashboard.
The Royal Mail connection process involves several manual steps. Once submitted, the connection request notifies both ShipStation and Royal Mail. Your Royal Mail account will remain in an inactive pending
state until Royal Mail sends ShipStation your validated OBA credentials, at which time your ShipStation API account will be configured to use Royal Mail services.
Personalized tracking numbers:
- If you have services that use personalized tracking numbers, a request will be put in to Royal Mail to obtain tracking number ranges for your account. Your account will be activated when Royal Mail sends back the valid ranges.
- If you do not have personalized tracking ranges, you will be notified and your account will be activated.
The credential verification process and the tracking range request process may take up to 5 business days each.
When your Royal Mail carrier connection is fully activated, you will receive an email notification, a notification in the ShipStation API dashboard, and if you are subscribed, the API_CARRIER_CONNECTED
webhook.
Should any errors on the registration form cause Royal Mail to reject the registration request, ShipStation will email you to let you know that corrections are needed. Potential errors could result from your shipping address, OBA email, or Royal Mail account number.
Connect via Endpoint
carrier_name
: royal_mail
POST /v1/connections/carriers/:carrier_name
Sample request:
A successful connection will return a response with the carrier_id
, which you'll use for any requests for this account going forward.
Connect via Dashboard
To connect your Royal Mail account in the ShipStation API dashboard:
- Log in to your account dashboard.
- Go to the Carriers section.
- Click Connect My Own Carriers.
- Select your Ship From country for this carrier (in this case, choose the United Kingdom).
- Select Royal Mail.
- Fill out the registration form with your Royal Mail account information, then click the Connect.
- Review the Submit Registration information, then submit.
Rates
Royal Mail does not send estimated rates to ShipStation API, as Royal Mail does not currently allow third-party apps to connect to their Rates API. Your Royal Mail account contact can provide you with the details about your contracted rates.
Service Details
Available CarrierName services are provided below. Please note that carriers may update their available services at any time. To ensure you are always using valid services, you can use the list carrier services endpoint at any time.
Domestic Services
Service | Max. weight (in grams) | API Code |
---|---|---|
1st Class - BPL (Letter, Large Letter, Parcel) | 100, 750, 20000 | rm_1st_class |
2nd Class - BPL (Letter, Large Letter, Parcel) | 100, 750, 20000 | rm_2nd_class |
1st Class Signed For - BPR (Letter, Large Letter, Parcel) | 100, 750, 20000 | rm_1st_class_signed_for |
2nd Class Signed For - BPR (Letter, Large Letter, Parcel) | 100, 750, 20000 | rm_2nd_class_signed_for |
1st Class Account Mail - STL (Letter, Large Letter, Parcel) | 100, 750, 20000 | rm_1st_class_account_mail |
2nd Class Account Mail - STL (Letter, Large Letter, Parcel) | 100, 750, 20000 | rm_2nd_class_account_mail |
Tracked 24 - TPN | 30000 | rm_tracked_24 |
Tracked 48 - TPS | 30000 | rm_tracked_48 |
Tracked 24 Letterbox - TRN | 30000 | rm_tracked_24_letterbox |
Tracked 48 Letterbox - TRS | 30000 | rm_tracked_48_letterbox |
Special Delivery Guaranteed by 1pm (£750) - SD1 | 10000 | rm_special_delivery_1pm_750 |
Special Delivery Guaranteed by 1pm (£1000) - SD2 | 10000 | rm_special_delivery_1pm_1000 |
Special Delivery Guaranteed by 1pm (£2500) - SD3 | 10000 | rm_special_delivery_1pm_2500 |
Special Delivery Guaranteed by 9am (£750) - SD4 | 2000 | rm_special_delivery_9am_750 |
Special Delivery Guaranteed by 9am (£1000) - SD5 | 2000 | rm_special_delivery_9am_1000 |
Special Delivery Guaranteed by 9am (£2500) - SD6 | 2000 | rm_special_delivery_9am_2500 |
Royal Mail 24 - CRL | N/A | rm_24 |
Royal Mail 48 - CRL | N/A | rm_48 |
Royal Mail 24 (sort8) (P) Flat Rate - PK1 | 20000 | rm_24_parcel_flat_rate_sort8 |
Royal Mail 48 (sort8) (P) Flat Rate - PK2 | 2000 | rm_48_parcel_flat_rate_sort8 |
Royal Mail 24 (sort8) (P) Daily Rate - PK3 | 750, 20000 | rm_24_parcel_daily_rate_sort8 |
Royal Mail 48 (sort8) (P) Daily Rate - PK4 | 2000 | rm_48_parcel_daily_rate_sort8 |
Royal Mail 24 (sort8) (LL) Daily Rate - FS1 | 750 | rm_24_large_letter_daily_rate_sort8 |
Royal Mail 48 (sort8) (LL) Daily Rate - FS2 | 750 | F rm_48_large_letter_daily_rate_sort8 |
Royal Mail 24 (P) Flat Rate - PPF | 20000 | rm_24_packetpost_parcel_flat_rate |
Royal Mail 48 (P) Flat Rate - PPF | 20000 | rm_48_packetpost_parcel_flat_rate |
Tracked 24 High Volume - TPM | N/A | rm_tracked_24_high_volume |
Tracked 48 High Volume - TPL | N/A | rm_tracked_48_high_volume |
Tracked 24 Letterbox High Volume - TRM | N/A | rm_tracked_24_letterbox_high_volume |
Tracked 48 Letterbox High Volume - TRL | N/A | rm_tracked_48_letterbox_high_volume |
Royal Mail 24 (Presorted) (LL) - FS7 | N/A | rm_24_presorted_large_letter |
Royal Mail 48 (Presorted) (LL) - FS8 | N/A | rm_48_presorted_large_letter |
Royal Mail 48 (LL) Flat Rate - PK0 | N/A | rm_48_large_letter_flat_rate |
Royal Mail 24 (Presorted) (P) - PK7 | N/A | rm_24_presorted_parcel |
Royal Mail 48 (Presorted) (P) - PK8 | N/A | rm_48_presorted_parcel |
Royal Mail 24 (LL) Flat Rate - PK9 | N/A | rm_24_large_letter_flat_rate |
Royal Mail 24 (LL) Annual Flat Rate - PPS | N/A | rm_24_annual_flat_rate |
Royal Mail 48 (LL) Annual Flat Rate - PPT | N/A | rm_48_annual_flat_rate |
Royal Mail 48 (sort8) (P) Annual Flat Rate - RM0 | 2000 | rm_48_sort8_annual_flat_rate |
Royal Mail 24 (LL) Daily Rate - RM1 | 750 | rm_24_large_letter_daily_rate |
Royal Mail 24 (P) Daily Rate - RM2 | 20000 | rm_24_parcel_daily_rate |
Royal Mail 48 (LL) Daily Rate - RM3 | 750 | rm_48_large_letter_daily_rate |
Royal Mail 48 (P) Daily Rate - RM4 | 2000 | rm_48_parcel_daily_rate |
Royal Mail 24 (P) Flat Rate - RM5 | 20000 | rm_24_parcel_flat_rate |
Royal Mail 48 (P) Flat Rate - RM6 | 2000 | rm_48_parcel_flat_rate |
Royal Mail 24 (sort8) (LL) Annual Flat Rate - RM7 | 750 | rm_24_sort8_annual_flat_rate |
Royal Mail 24 (Sort8)(P) Annual Flat Rate - RM8 | 20000 | rm_24_sort8_p_annual_flat_rate |
Royal Mail 48 (Sort8)(LL) Annual Flat Rate - RM9 | 750 | rm_48_sort8_p_annual_flat_rate |
Tracked Returns 24 - TSN | N/A | rm_tracked_returns_24 |
Tracked Returns 48 - TSS | N/A | rm_tracked_returns_25 |
Royal Mail 24 (Presorted)(P) Annual Flat Rate - PKB | N/A | rm_24_presorted_p_annual_flat_rate |
Royal Mail 48 (Presorted)(P) Annual Flat Rate - PKD | N/A | rm_48_presorted_p_annual_flat_rate |
Royal Mail 48 (Presorted)(LL) Annual Flat Rate - PKK | N/A | rm_48_presorted_large_letter_annual_flat_rate |
Royal Mail24 (Presorted)(LL) Annual Flat Rate - PKM | N/A | rm_24_presorted_large_letter_annual_flat_rate |
Royal Mail 24 Parcelpost Flat Rate (Annual) - PPJ | N/A | rm24_rate_annual_flat_rate_annual |
Royal Mail 48 Parcelpost Flat Rate (Annual) - PPJ | N/A | rm48_rate_annual_flat_rate_annual |
DE Import Std 24 Parcel | N/A | intersoft_royalmail_de_import_std_24_parcel |
DE Import Std 48 Parcel | N/A | intersoft_royalmail_de_import_std_48_parcel |
DE Import Std 24 LLTR | N/A | intersoft_royalmail_de_import_std_24_lltr |
DE Import Std 48 LLTR | N/A | intersoft_royalmail_de_import_std_48_lltr |
SD GUARANTEED BY 1PM (ID) (£750) | 10000 | intersoft_royalmail_sd_guaranteed_1pm_750 |
SD GUARANTEED BY 1PM (ID) (£1000) | 10000 | intersoft_royalmail_sd_guaranteed_1pm_1000 |
SD GUARANTEED BY 1PM (ID) (£2500) | 10000 | intersoft_royalmail_sd_guaranteed_1pm_2500 |
SD GUARANTEED BY 9AM (ID) (£750) | 2000 | intersoft_royalmail_sd_guaranteed_9am_750 |
SD GUARANTEED BY 9AM (ID) (£1000) | 2000 | intersoft_royalmail_sd_guaranteed_9am_1000 |
SD GUARANTEED BY 9AM (ID) (£2500) | 2000 | intersoft_royalmail_sd_guaranteed_9am_2500 |
SD GUARANTEED BY 1PM (AGE) | 10000 | intersoft_royalmail_sd_guaranteed_1pm_age |
SD GUARANTEED BY 1PM (IAGE) (£1000) | 10000 | intersoft_royalmail_sd_guaranteed_1pm_iage_1000 |
SD GUARANTEED BY 1PM (AGE) (£2500) | 10000 | intersoft_royalmail_sd_guaranteed_1pm_age_2500 |
SD GUARANTEED BY 9AM (AGE) (£750) | 2000 | intersoft_royalmail_sd_guaranteed_9am_age_750 |
SD GUARANTEED BY 9AM (AGE) (£1000) | 2000 | intersoft_royalmail_sd_guaranteed_9am_age_1000 |
SD GUARANTEED BY 9AM (AGE) (£2500) | 2000 | intersoft_royalmail_sd_guaranteed_9am_age_2500 |
Royal Mail Tracked 24 (HV) - With Signature (AGE) | 30000 | intersoft_royalmail_tracked_24_hv_with_signature |
Royal Mail Tracked 48 (HV) - With Signature (AGE) | 30000 | intersoft_royalmail_tracked_48_hv_with_signature |
Royal Mail Tracked 24 - With Signature (AGE) | 30000 | intersoft_royalmail_tracked_24_with_signature |
Royal Mail Tracked 48 - With Signature (AGE) | 30000 | intersoft_royalmail_tracked_48_with_signature |
ROYAL MAIL TRACKED 48 NO SIGNATURE | 30000 | intersoft_royalmail_tracked_48_no_signature |
ROYAL MAIL TRACKED 48 SIGNATURE | 30000 | intersoft_royalmail_tracked_48_signature |
Special Delivery Guaranteed Weekend (£750) - SEB | 10000 | rm_special_delivery_weekend_750 |
Special Delivery Guaranteed Weekend (£1000) - SEC | 10000 | rm_special_delivery_weekend_1000 |
Special Delivery Guaranteed Weekend (£2500) - SED | 10000 | rm_special_delivery_weekend_2500 |
Special Delivery Guaranteed Weekend (AGE) (£750) - SDV | 10000 | rm_special_delivery_weekend_age_750 |
Special Delivery Guaranteed Weekend (AGE) (£1000) - SDW | 10000 | rm_special_delivery_weekend_age_1000 |
Special Delivery Guaranteed Weekend (AGE) (£2500) - SDX | 10000 | rm_special_delivery_weekend_age_2500 |
Special Delivery Guaranteed Weekend (ID) (£750) - SDY | 10000 | rm_special_delivery_weekend_id_750 |
Special Delivery Guaranteed Weekend (ID) (£1000) - SDZ | 10000 | rm_special_delivery_weekend_id_1000 |
Special Delivery Guaranteed Weekend (ID) (£2500) - SEA | 10000 | rm_special_delivery_weekend_id_2500 |
International Services
Service | Max. weight (in grams) | API Code |
---|---|---|
Intl Business Mail Tracked (Zonal Pricing) - MTI | 100 | rm_intl_business_mail_tracked_zonal |
Intl Business Mail Tracked (Country Pricing) - MTK | 500 | rm_intl_business_mail_tracked_country |
Intl Business Mail Tracked Extra Comp (Zonal Pricing) - MTJ | 100 | rm_intl_business_mail_tracked_extra_zonal |
Intl Business Parcels Tracked (Zonal Pricing) - MP1 | 5000 | rm_intl_business_parcels_tracked_zonal |
Intl Business Parcels Tracked (Country Pricing) - MP7 | 5000 | rm_intl_business_parcels_tracked_country |
Intl Business Parcels Tracked Extra Comp (Zonal Pricing) - MP4 | 5000 | rm_intl_business_parcels_tracked_extra_zonal |
Intl Business Parcels Tracked Extra Comp (Country Pricing) - MP8 | 5000 | rm_intl_business_parcels_tracked_extra_country |
Intl Tracked On Account - OTA (Letter, Large Letter, Parcel) | 100, 750, 20000 | rm_intl_tracked_on_account |
Intl Tracked On Account Extra Comp - OTB(Letter, Large Letter, Parcel) | 100, 750, 20000 | rm_intl_tracked_on_account_extra |
Intl Business Mail Signed (Zonal Pricing) - MTM (Letter, Large Letter) | 100, 500 | rm_intl_business_mail_signed_zonal |
Intl Business Mail Signed (Country Pricing) - MTO (Letter, Large Letter) | 100, 500 | rm_intl_business_mail_signed_country |
Intl Business Mail Signed Extra Comp (Zonal Pricing) - MTN (Letter, Large Letter) | 100, 500 | rm_intl_business_mail_signed_extra_zonal |
Intl Business Mail Signed Extra Comp (Country Pricing) - MTP | 500 | rm_intl_business_mail_signed_extra_country |
Intl Business Parcels Signed (Zonal Pricing) - MP5 | 2000 | rm_intl_business_parcels_signed_zonal |
Intl Business Parcels Signed (Country Pricing) - MP9 | 2000 | rm_intl_business_parcels_signed_country |
Intl Business Parcels Signed Extra Comp (Zonal Pricing) - MP6 | 2000 | rm_intl_business_parcels_signed_extra_zonal |
Intl Business Parcels Signed Extra Comp (Country Pricing) - MP0 | 2000 | rm_intl_business_parcels_signed_extra_country |
Intl Signed On Account - OSA (Letter, Large Letter, Parcel) | 100, 750, 20000 | rm_intl_signed_on_account |
Intl Signed On Account Extra Comp - OSB | ------- | rm_intl_signed_on_account_extra |
Intl Business Mail Tracked & Signed (Zonal Pricing) - MTC (Letter, Large Letter) | 100, 500 | rm_intl_business_mail_tracked_signed_zonal |
Intl Business Mail Tracked & Signed (Country Pricing) - MTG | 500 | rm_intl_business_mail_tracked_signed_country |
Intl Business Mail Tracked & Signed Extra Comp (Zonal Pricing) - MTD (Letter, Large Letter) | 100, 500 | rm_intl_business_mail_tracked_signed_extra_zonal |
Intl Business Mail Tracked & Signed Extra Comp (Country Pricing) - MTH | ------- | rm_intl_business_mail_tracked_signed_extra_country |
Intl Business Parcels Tracked & Signed (Zonal Pricing) - MTA (Parcel, Printed Paper) | 5000 | rm_intl_business_parcels_tracked_signed_zonal |
Intl Business Parcels Tracked & Signed (Country Pricing) - MTE | ------- | rm_intl_business_parcels_tracked_signed_country |
Intl Business Parcels Tracked & Signed Extra Comp (Zonal Pricing) - MTB (Parcel, Printed Paper) | 5000 | rm_intl_business_parcels_tracked_signed_extra_zonal |
Intl Business Parcels Tracked & Signed Extra Comp (Country Pricing) - MTF (Parcel, Printed Paper) | 5000 | rm_intl_business_parcels_tracked_signed_extra_country |
Intl Tracked & Signed On Account - OTC (Letter, Large Letter, Parcel) | 100, 750, 2000, 5000 | rm_intl_tracked_signed_on_account |
Intl Tracked & Signed On Account Extra Comp - OTD (Letter, Large Letter, Parcel) | 100, 750, 2000, 5000 | rm_intl_tracked_signed_on_account_extra |
Intl Business Mail Large Letter Priority (Max Sort) - PS7 | 500 | rm_intl_business_mail_ll_max_sort_priority |
Intl Standard On Account - OLA (Letter, Large Letter, Parcel) | 100, 750, 2000, 5000 | rm_intl_standard_on_account |
Intl Business Mail Large Letter Standard (Max Sort) - PSB | 500 | rm_intl_business_mail_ll_max_sort_standard |
Intl Economy On Account - OLS (Letter, Large Letter, Parcel) | 100, 750, 2000, 5000 | rm_intl_economy_on_account |
Intl Business Mail Large Letter Economy (Max Sort) - PS8 | 500 | rm_intl_business_mail_ll_max_sort_economy |
Intl Business Parcels Economy (Zero Sort Lo Vol) - DE6 | 2000 | rm_intl_business_parcels_economy_zero_sort_lo_vol |
Intl Business Mail Large Letter Economy (Country Sort Hi Vol) - DG3 | 500 | rm_intl_business_mail_economy_ll_ctry_sort_hi_vol |
Intl Business Mail Large Letter Economy (Country Sort Lo Vol) - DG6 | 500 | rm_intl_business_mail_economy_ll_ctry_sort_lo_vol |
Intl Business Parcels Economy (Zone Sort) - IE3 | 2000 | rm_intl_business_parcels_economy_zone_sort |
Intl Business Mail Large Letter Economy (Zone Sort) - IG3 | 500 | rm_intl_business_mail_economy_ll_zone_sort |
Intl Business Mail Large Letter Economy (Zone Sort Machineable) - IG6 | 500 | rm_intl_business_mail_economy_ll_zone_sort_machineable |
Intl Business Parcels Economy (Print Direct) - MB3 | 11000 | rm_intl_business_parcels_economy_print_direct |
Intl Business Mail Economy (Mixed Zone Sort) - OZ3 | 5000 | rm_intl_business_mail_economy_mixed_zone_sort |
Intl Business Mail Economy (Mixed Zone Sort Machineable) - OZ6 | 5000 | rm_intl_business_mail_economy_mixed_zone_sort_machineable |
Intl Business Parcels Economy (Zero Sort) - WE3 | ------- | rm_intl_business_parcels_economy_print_direct_zero_sort |
Intl Business Mail Large Letter Economy (Zero Sort) - WG3 | ------- | rm_intl_business_mail_economy_ll_zero_sort |
Intl Business Mail Large Letter Economy (Zero Sort Machineable) - WG6 | ------- | rm_intl_business_mail_economy_ll_zero_sort_machineable |
Intl Business Mail Economy (Mixed Zero Sort) - WW3 | ------- | rm_intl_business_mail_economy_mixed_zero_sort |
Intl Business Parcels (Zero Sort Hi Vol Priority) - DE1 | 2000 | rm_intl_business_parcels_zero_sort_hivol_priority |
Intl Business Parcels(Zero Sort Low Vol Priority) - DE4 | 5000 | rm_intl_business_parcels_zero_sort_lowvol_priority |
Intl Business Mail Large Letter (Country Sort Hi Vol Priority) - DG1 | 500 | rm_intl_business_mail_large_letter_ctry_hivol_priority |
Intl Business Mail Large Letter (Country Sort Lo Vol Priority) - DG4 | 500 | rm_intl_business_mail_large_letter_ctry_lowvol_priority |
Intl Business Parcels (Zone Sort Priority) - IE1 (Parcel, Printed Paper) | 2000, 5000 | rm_intl_business_parcels_zone_sort_priority_ie |
Intl Business Parcels Mail Large Letter (Zone Sort) - IG1 | 500 | rm_intl_business_parcels_mail_large_letter_zone_sort |
Intl Business Parcels Mail (Mixed Zone Sort Priority) OZ1 | ------- | rm_intl_business_parcels_mixed_zone_sort_priority |
Intl Business Parcels Mail (Mixed Zone Sort Priority Machinable) - OZ4 | ------- | rm_intl_business_parcels_mixed_zone-sort_priority_match |
Intl Business Parcels (Zero Sort Priority) - WE1 | ------- | rm_intl_business_parcels_zero_sort_priority |
Intl Business Parcels Mail Large Letter (Zero Sort Priority) - WG1 | ------- | rm_intl_business_parcels_large_letter_zero_sort_priority |
Intl Business Parcels Mail Large Letter (Zero Sort Priority Machinable) - WG4 | ------- | rm_intl_business_parcels_large_letter_zero_sort_priority_match |
Intl Business Parcels Mail (Mixed Zero Sort Priority) - WW1 | ------- | rm_intl_business_parcels_mixed_zero_sort_priority |
Intl Business Parcels Mail Large Letter (Zone Sort Priority Machineable) - IG4 | ------- | rm_intl_business_parcels_mail_large_letter_zone_sort_priority_match |
Intl Business Mail Tracked Letter (Country Pricing Hi Vol) - MPL | ------- | rm_intl_business_mail_tracked_letter_country_hi_vol |
Intl Business Mail Tracked & Signed Letter (Hi Vol) - MPM | ------- | rm_intl_business_mail_tracked_signed_letter_hi_vol |
Intl Bus Mail Tracked & Signed Letter Extra Comp (Country Pricing Hi Vol) - MPP | ------- | rm_intl_business_mail_tracked_signed_letter_extra_comp_country_hi_vol |
Intl Business Mail Signed Letter (Country Pricing Hi Vol) - MPN | 100 | rm_intl_business_mail_signed_letter_country_hi_vol |
Intl Business Mail Tracked Extra Comp (Country Pricing Hi Vol) - MPO | ------- | rm_intl_business_mail_tracked_extra_comp_country_hi_vol |
Intl Business Mail (Mixed Zero Sort Priority Machineable) - WW4 | ------- | rm_intl_business_mail_mixed_zero_sort_priority_machineable |
Cross-Border Import Tracked 48 High Volume - ITL | ------- | rm_cb_tracked_48_high_volume |
Cross-Border Import Tracked 24 High Volume - ITM | ------- | rm_cb_tracked_24_high_volume |
Cross-Border Import Tracked Letter - boxable 24 High Volume - ITC | ------- | rm_cb_tracked_24_letterbox_high_volume |
Cross-Border Import Tracked Letter - boxable 48 High Volume - ITD | ------- | rm_cb_tracked_48_letterbox_high_volume |
Cross-Border Import Tracked 24 - ITN | ------- | rm_cb_tracked_24 |
Cross-Border Import Tracked 48 - ITS | ------- | rm_cb_tracked_48 |
Cross-Border Import Tracked Letter - boxable 48 - ITE | ------- | rm_cb_tracked_48_letterbox |
Cross-Border Import Tracked Letter - boxable 24 - ITF | ------- | rm_cb_tracked_24_letterbox |
Cross-Border Import Tracked Returns 24 - ITA | ------- | rm_cb_tracked_returns_24 |
Cross-Border Import Tracked Returns 48 - ITB | ------- | rm_cb_tracked_returns_25 |
Intl Business Parcels Tracked Box (Country Pricing) - MPR | ------- | rm_intl_business_parcels_tracked_box_lovol_country |
Intl Business Parcels Bespoke Postal - DW1 | ------- | rm_international_business_parcels_bespoke_portal |
INTL BUS MAIL LRG LTR MAX SORT RES PRI | ------- | intersoft_royalmail_intl_business_mail_lrg_ltr_max_sort_pri |
INTL BUS MAIL LRG LTR MAX SORT RES STD | ------- | intersoft_royalmail_intl_business_mail_lrg_ltr_max_sort_std |
INTL BUS MAIL L LTR MAX SORT RES ECONOMY | ------- | intersoft_royalmail_intl_business_lrg_ltr_max_sort_econ |
INTL BUS MAIL LETTERS MAX SORT RES PRI | ------- | intersoft_royalmail_intl_business_mail_letter_max_sort_pri |
INTL BUS MAIL LETTERS MAX SORT RES STD | ------- | intersoft_royalmail_intl_business_mail_letters_max_sort_std |
INTL BUS MAIL LTR MAX SORT RES ECONOMY | ------- | intersoft_royalmail_intl_business_mail_ltr_max_sort_econ |
DE Import to EU Tracked & Signed LLTR | 500 | intersoft_royalmail_de_import_eu_tracked_signed_lltr |
DE Import to EU Max Sort LLTR | 500 | intersoft_royalmail_de_import_eu_max_sort_lltr |
DE Import to EU Tracked Parcel | 5000 | intersoft_royalmail_de_import_eu_tracked_parcel |
DE Import to EU Tracked Parcel & Signed Parcel | 5000 | intersoft_royalmail_de_import_eu_tracked_parcel_signed_parcel |
DE Import to EU Tracked LLTR | 500 | intersoft_royalmail_de_import_eu_tracked_lltr |
DE Import to EU Max Sort Parcel | 2000 | intersoft_royalmail_de_import_eu_max_sort_parcel |
DE Import to EU Signed Parcel (Parcel, Printed Paper) | 2000, 5000 | intersoft_royalmail_de_import_eu_signed_parcel |
INTL BUS MAIL LTR CTRY SORT HI VOL PRI | 100 | intersoft_royalmail_intl_business_mail_ltr_ctry_hi_vol_pri |
INTL BUS MAIL LTR CTRY SORT HI VOL ECON | 100 | intersoft_royalmail_intl_business_mail_ltr_ctry_sort_hi_vol_econ |
INTL BUS MAIL LTR CTRY SORT LO VOL PRI | 100 | intersoft_royalmail_intl_business_mail_ltr_ctry_sort_lo_vol_pri |
INTL BUS MAIL LTR CTRY SORT LO VOL ECON | 500 | intersoft_royalmail_intl_business_mail_ltr_ctry_sort_lo_vol_econ |
INTL BUS MAIL LTR ZONE SORT PRI | 100 | intersoft_royalmail_intl_business_mail_ltr_zone_sort_pri |
INTL BUS MAIL LTR ZONE SORT ECONOMY | 100 | intersoft_royalmail_intl_business_mail_ltr_zone_sort_economy |
INTL BUS MAIL LETTERS ZONE SORT PRI MCH | 100 | intersoft_royalmail_intl_business_mail_letters_zone_sort_pri_mch |
INTL BUS MAIL LTR ZONE SRT ECONOMY MCH | 100 | intersoft_royalmail_intl_business_mail_ltr_zone_srt_economy_mch |
INTL BUS PRCLS TRK&SGN DDP | ------- | MTV |
INTL BUS PARCELS BOXABLE ZONE SORT PRI | ------- | intersoft_royalmail_intl_bus_parcels_boxable_zone_sort_pri |
INTL BUS PARCELS BOXABLE ZONE SORT ECON | ------- | intersoft_royalmail_intl_bus_parcels_boxable_zone_sort_econ |
INTL BUS PARCELS TRACKED BOX ZONE SORT | ------- | intersoft_royalmail_intl_bus_parcels_tracked_box_zone_sort |
INTL BUS PRCL TRCKD BOX ZONE SRT XTR CMP | ------- | intersoft_royalmail_intl_bus_prcl_trckd_box_zone_srt_xtr_cmp |
INTL BUS MAIL LETTERS MAX SORT STANDARD | ------- | intersoft_royalmail_intl_bus_mail_letters_max_sort_standard |
QM/10 Option 2 over 500g | 2000 | intersoft_royalmail_qm_10_option_2_over_500g |
QM/10 Option 2 Mixed Mail | 5000 | intersoft_royalmail_qm_10_option_2_mixed_mail |
INTL Business-PC-MaxSort-LTR | ------- | rm_intl_business_pc_maxsort_ltr |
INTL Business PrintedMatter PKT | ------- | rm_intl_business_printedmatter_pkt |
Shipping to BFPO Addresses and M Bag Alternative Codes
As of 1st January 2025, Royal Mail removed the HM Forces-specific services. When shipping to BFPO addresses, you should use the available domestic services instead of the now obsolete international codes. You should also apply alternative codes for M Bags where necessary.
Shipping to the Channel Islands
- Guernsey and Jersey: Royal Mail requires customs declarations for Channel Islands shipments to Guernsey and Jersey. Please use the country code GE and JE, respectively. Royal Mail will not produce these forms if the country code is GB.
- Isle of Man: Change the country code to IM and then the proper forms will be included with the label. Isle of Man (IOM) shipments do not require customs and there is no option to select
IOM
as a country code.
Shipping to Northern Ireland
Starting 1st May 2025, changes to Royal Mail products and services will take effect in accordance with the Windsor Framework. Under the Windsor Framework shipments will fall into 1 of 2 categories:
Green Lane: For trusted traders sending goods staying in Northern Ireland — minimal checks, simplified processes.
Red Lane: For goods at risk of moving into the EU via the Republic of Ireland — full customs procedures apply.
Royal Mail customers sending parcels from Great Britain to Northern Ireland (GB-NI ) will need to provide additional data. The parcel movement's type will determine what data is required: Business-to-Consumer (B2C), Consumer-to-Consumer (C2C), Consumer-to-Business (C2B), or Business-to-Business (B2B).
Business Accounts - Different Types of Goods Movements
Movement Type | Definition | Additional data to be provided by the customer |
---|---|---|
Business to Consumer (B2C) | Parcels sent by a business in Great Britain to a private individual residing in Northern Ireland for personal use. | Product Description (must be accurate and in plain English) Product Weight Product Value Product Country of Origin * HS Harmonized Tariff code (optional), |
Consumer to Business (C2B) | Parcels sent by a private individual in Great Britain to a business in Northern Ireland (for example, a customer returning an item to a shop). | Product Description (must be accurate and in plain English) Product Weight Product Value Product Country of Origin Returned Goods Indicator HS Harmonized Tariff code (optional), |
Business to Business (B2B - value of goods above £135 ) | Parcels sent by a business in Great Britain to a business in Northern Ireland. | Exporter / Sender details (inc. EORI) Importer / Receiver details (inc. EORI) Total Value (not by item) Gross Mass UKIMS Number Product Description (must be accurate and in plain English) Product Country of Origin HS Harmonized Tariff code (optional), |
Business to Business (B2B - value of goods £135 or less ) | Parcels sent by a business in Great Britain to a business in Northern Ireland where total goods value up to and including £135. | Exporter / Sender details (inc. EORI) Importer / Receiver details (inc. EORI) Total Value (not by item) Gross Mass UKIMS Number Product Description (must be accurate and in plain English) Product Country of Origin HS Harmonized Tariff code (optional), |
NOTE: For B2B movements, where UKIMS registration is not presented with the parcel data, the sending customer may be liable to delays, customs charges or the parcel returned to the sender.
Consumers - Different Types of Goods Movements
Movement Type | Definition | Additional data to be provided by the customer |
---|---|---|
Consumer to Consumer (C2C) | Parcels sent by a private individual in Great Britain to a private individual residing in Northern Ireland for personal use. | Product Description (must be accurate and in plain English) Product Weight Product Value * HS Harmonized Tariff code (optional), |
Consumer to Business (C2B) | Parcels sent by a private individual in Great Britain to a business in Northern Ireland (for example, a customer returning an item to a shop). | Product Description (must be accurate and in plain English) Product Weight Product Value Product Country of Origin Returned Goods Indicator HS Harmonized Tariff code (optional), |
Does Royal Mail offer a Next Day service from Great Britain to Northern Ireland?
Next Day services will be available for C2C, C2B, B2C and B2B. For B2B shipments Royal Mail will only process goods classified as ‘not at risk’. For goods classified as ‘at risk’ Royal Mail may be able to carry these goods on a Parcelforce Worldwide service. For account enquiries contact 03448 429102.
Return Services
To create return labels, Royal Mail must approve you for at least one of the following services:
Service | Max. weight (in grams) | Carrier Code | Service API Codes |
---|---|---|---|
Tracked Returns 24 - TSN | 30000 | TSN | rm_tracked_returns_24 |
Tracked Returns 48 - TSS | 30000 | TSS | rm_tracked_returns_25 |
Both of these return services support labelless shipping. Review our Paperless Labels guide for details on creating paperless labels with ShipStation API.
Review the Return Shipping Labels page for details on creating return labels with ShipStation API.
Packages
The following carrier package types are available for Royal Mail services:
Name | API Code | Package Attributes |
---|---|---|
Large Letter | large_letter | International, Domestic |
Parcel | parcel | International, Domestic |
Small Parcel | royal_mail_small_parcel | Domestic |
Medium Parcel | royal_mail_medium_parcel | Domestic |
Printed Papers | royal_mail_printed_papers | International |
Adding Shipment Insurance
Royal Mail does not support adding carrier insurance.
Label Support
- Label sizes: 4" x 6"
- Label formats: PDF
Label Reference Fields
- Supports label reference field 1, limited to 20 characters
- Address line has a 35-character limit.
Multi-Package Labels
Multi-package shipping is not supported with Royal Mail.
Voiding Labels
Royal Mail supports voiding labels with ShipStation API. Labels cannot be voided once the shipments have been manifested. If you need to void a shipment on a sales order summary, you must contact Royal Mail directly.
See our Void a Label page for details about voiding labels with ShipStation API.
Paperless Labels
Royal Mail supports paperless labels for the following services:
- Tracked Returns 24 - TSN
- Tracked Returns 48 - TSN
Add the paperless
or label_and_paperless
value to the display_scheme
property to receive a paperless label download.
See our Paperless Labels page for details about creating paperless labels with ShipStation API.
Customs Declarations
Customs forms will print with the label for your international shipments.
- ShipStation API does not provide CN22 forms, only CN23. However, CN23 forms are sufficient for both low and high-value shipments.
- If there are too many different content types to fit on one page, the CN23 automatically extends to an additional page.
Delivery Confirmation
Royal Mail shipments do not set a default confirmation type.
Royal Mail has enhancement codes that correspond to delivery confirmation types in ShipStation API. For example, the Royal Mail enhancement code for the Signed For service maps to the confirmation type direct_signature
.
Only certain services allow certain enhancements. If you choose an option that is not supported with a selected service, you’ll get a generic error like Error code E0004 - Failed Schema Validation
.
Please consult with Royal Mail for the latest version of Key FAQs for Royal Mail API Shipping, their page RMG Shipping API Technical User Guide, or similar documentation to learn more about enhancement codes.
Advanced Options
Royal Mail supports certain advanced options, which you can add to the shipment
object when creating a shipment or label.
Option | Type | Default Value | Description |
---|---|---|---|
NotificationsPhone | string | null | The carrier will send SMS tracking notifications to the provided phone number. |
NotificationsEmail | string | null | The carrier will send email tracking notifications to the provided email address. |
To ensure you always have the most up-to-date information about a carrier's advanced options, use the list carrier options call.
Manifests
Royal Mail requires you to create and print a Sales Order Summary, which you must then hand to the driver who picks up the parcels.
You can generate your Sales Order Summary through the manifest process. When you make your request to the /v1/manifests endpoint, the response will include a link to download the Sales Order Summary PDF.
Please note: You cannot close shipments with dispatch dates in the future, only past or current-date shipments.
Scheduling Pickups
You must set pickups (daily and other schedules) with Royal Mail. This cannot be done via ShipStation API.
Service Points (PUDO)
Royal Mail services do not currently support using service points.
Tracking
ShipStation API's integration with Royal Mail now supports receiving tracking updates. ShipStation API provides tracking notifications, tracking URLs, and tracking events via the API.
Review our ​Track a Package guides​​ for details on tracking with the ShipStation API.
How to Confirm an Active OBA Account
If you are unsure if your Royal Mail account is an OBA account, or if you need your OBA account number, you can follow these steps:
- Log in to your Royal Mail OBA account​.
- Click the ​Access Online Business Account​​ button. This will take you to your OBA account Welcome page.
- Click the ​Access Online Business Account​​ button provided on this screen.
If your OBA account is active you will be directed to your online Business account.
If your account is not active the page will either reload and you will be returned to the same page or you will be directed onto another page headed ‘Sap NetWeaver’.
If your OBA account is not active please ​contact Royal Mail​​ to reactivate your OBA account.
Your Royal Mail OBA Account Number and OBA Company Name will appear above the list of invoices for your account. - Find your ​Account Number​ under the ​Invoices​​ tab.
Disconnecting Your Royal Mail Account
See the Disconnect section in our Delete a Carrier page for the process of deleting or disconnecting a carrier from ShipStation API.
Troubleshooting Tips
Here are tips on how to handle some common issues when shipping with Royal Mail.
Issue | How to troubleshoot or resolve |
---|---|
Error: Confirmation value direct_signature is currently only supported by FedEx | What it means: The Royal Mail enhancement code for the Signed For service now maps to the confirmation type direct_signature . What to do: Resend the request and map direct_signature as the enhancement code for the Royal Mail Signed For service confirmation type. |
Error: Unable to generate Royal Mail label. Label (Bad Request, Carrier Error Code: E1000). Recorded Signed For is not a valid enhancement for the TPSS service. RecordedSignedFor (Bad Request, Carrier error Code: E1437). (400,28024f52=6eb5-4102-b245-49ca414598fc) | What it means: You are trying to use a service with an enhancement code that is not allowed. Some enhancements can only be added to certain services. For example, Tracked 48 can only have Signature , not Signed For/Recorded . What to do: Check the options and extras for that service and make any necessary updates to your request. |
End of Day error: Error transmitting to OBA. Details: Access Denied (not authenticated) | What it means: You may have a "Pre-paid" Royal Mail account. This type of account cannot be accessed via a third-party shipping platform and thus is not supported. What to do: Contact Royal Mail for asssistance. |
Error: Invalid Origin Address Postal Code for {warehouse.OriginName} | What it means: The Ship From Origin Address entered is not valid per Royal Mail. What to do: Check the address on Royal Mail's address verification site and correct as needed. |
Error: A shipping carrier error occurred: The field destinationCompanyName exceeds the maximum allowable length of 35 (Bad Request, Carrier Error Code: E1205). | What it means: The Company Name in the request contains too many characters. What to do: Check the Company Name and truncate the name to fall within the 35-character limit. |
Error: One or more errors were encountered when attempting to close shipments. Please review the errors below. | What it means: You are trying to close shipments from the previous week after the time limit. Every Friday evening (UK time), Royal Mail auto-closes shipments for the previous week, which means you can no longer close them in ShipStation API. For example, you'll see this error if you try to close a shipment from March 18th on March 20th. What to do: If you require the physical manifest, contact ShipStation UK's support and we can try to generate this internally for you. |
Error: Attempting to divide by zero | What it means: This means you are missing customs declaration information for one of your shipments. What to do: Check the customs declarations for the shipments contained in the manifest to ensure they include all the required information: Description, Quantity, Value, Content Type, and Country of Origin. |
Error: Royal Mail: The given key was not present in the dictionary | What it means: This error typically means that when you attempted to get a rate or create a label, you selected Small Parcel for an international shipment. The package type Small Parcel is only available for domestic UK shipments. What to do: Select the Parcel package type. To check if the Parcel package type option is available in your account, list carrier package types. |