Get Credentials to Access PostNL Shipping API
Overview
AfterShip Shipping is the best multi-carrier shipping software and API that enables you to automate shipping processes across USPS, UPS, FedEx, DHL, and 100+ other carriers. Get the required credentials and access PostNL shipping API via AfterShip Shipping in just a few steps.
Get PostNL Developer Credentials
You can find your PostNL developer credentials from PostNL portal. >> Company details >> Manage API >> View.
If you have multiple customer numbers under one PostNL login, please switch the correct number from the top right corner before clicking the "View" button.
Consult with your PostNL POC or the technical support team [email protected] if you have any troubles getting your API credentials.

Required PostNL credentials
API key
Customer number
Customer code
Optional PostNL credentials
Collection location
Supported PostNL service types
PostNL supports quite a lot of shipping services with different product codes, you can leverage AfterShip Shipping solution to ship with them. Check below table for supported PostNL product codes/product name with AfterShip Shipping service_type and service_name.
Product code | Description | Product group | service_type | service_name | Required service_options | Remarks |
---|---|---|---|---|---|---|
3085 | Standard shipment | Dutch domestic | postnl_standard_3085 | PostNL Standard shipment | ||
3085 | Standard shipment | Dutch domestic | postnl_standard_3085 | PostNL Standard shipment | ||
3085 | Standard shipment+ Extra cover+ Delivery code at the door | Dutch domestic | postnl_extra_cover_del_code_3085 | PostNL Standard shipment+ Extra cover+ Delivery code at the door | insurance | |
3385 | Deliver to stated address only | Dutch domestic | postnl_addr_only_3385 | PostNL Deliver to stated address only | ||
3090 | Delivery to neighbour + Return when not home | Dutch domestic | postnl_ret_3090 | PostNL Delivery to neighbour + Return when not home | ||
3390 | Deliver to stated address only + Return when not home | Dutch domestic | postnl_addr_only_ret_3390 | PostNL Deliver to stated address only + Return when not home | ||
3087 | Extra Cover | Dutch domestic | postnl_extra_cover_3087 | PostNL Extra Cover | insurance | |
3094 | Extra cover + Return when not home | Dutch domestic | postnl_extra_cover_ret_3094 | PostNL Extra cover + Return when not home | insurance | |
3089 | Signature on delivery + Deliver to stated address only | Dutch domestic | postnl_sig_addr_only_3089 | PostNL Signature on delivery + Deliver to stated address only | ||
3096 | Signature on delivery + Deliver to stated address only + Return when not home | Dutch domestic | postnl_sig_addr_only_ret_3096 | PostNL Signature on delivery + Deliver to stated address only + Return when not home | ||
3189 | Signature on delivery | Dutch domestic | postnl_sig_3189 | PostNL Signature on delivery | ||
3389 | Signature on delivery + Return when not home | Dutch domestic | postnl_sig_ret_3389 | PostNL Signature on delivery + Return when not home | ||
3533 | Pickup + Signature on Delivery | Dutch domestic | postnl_pp_sig_3533 | PostNL Pickup + Signature on Delivery | hold_at_location | |
3534 | Pickup + Extra Cover | Dutch domestic | postnl_pp_extra_cover_3534 | PostNL Pickup + Extra Cover | hold_at_location/insurance | |
3543 | Pickup + Signature on Delivery + Notification | Dutch domestic | postnl_pp_sig_noti_3543 | PostNL Pickup + Signature on Delivery + Notification | hold_at_location | |
3544 | Pickup + Extra Cover + Notification | Dutch domestic | postnl_pp_extra_cover_noti_3544 | PostNL Pickup + Extra Cover + Notification | hold_at_location/insurance | |
2928 | Mailbox parcel + Unsorted (ongesorteerd aanleveren) | Dutch domestic | postnl_mailbox_parcel_2928 | |||
3438 | Standard shipment + Age Check | Dutch domestic | postnl_standard_id_3438 | PostNL Standard shipment + Age Check | ||
3443 | Extra Cover + Age Check | Dutch domestic | postnl_extra_cover_id_3443 | PostNL Extra Cover + Age Check | insurance | |
3446 | Extra Cover + Retun when not home + Age Check | Dutch domestic | postnl_extra_cover_ret_id_3446 | PostNL Extra Cover + Retun when not home + Age Check | insurance | |
3449 | Retun when not home + Age Check | Dutch domestic | postnl_ret_id_3449 | PostNL Retun when not home + Age Check | ||
3571 | Pickup + Age Check | Dutch domestic | postnl_pp_id_3571 | PostNL Pickup + Age Check | hold_at_location | |
3574 | Pickup + Age Check + Notification | Dutch domestic | postnl_pp_id_noti_3574 | PostNL Pickup + Age Check + Notification | hold_at_location | |
3581 | Pickup + Extra Cover + Age Check | Dutch domestic | postnl_pp_extra_cover_id_3581 | PostNL Pickup + Extra Cover + Age Check | hold_at_location/insurance | |
3584 | Pickup + Extra Cover + Age Check + Notification | Dutch domestic | (drop) | PostNL Pickup + Extra Cover + Age Check + Notification | hold_at_location/insurance | |
1010 | Registered letter | Dutch domestic | postnl_registered_letter_1010 | PostNL Registered letter | ||
1020 | Registered parcels Losse Post | Dutch domestic | postnl_registered_parcels_losse_post_1020 | PostNL Registered parcels Losse Post | ||
1410 | Registered letters Partijen Post | Dutch domestic | postnl_registered_letters_partijen_post_1410 | PostNL Registered letters Partijen Post | ||
1420 | Registered parcels Partijen Post | Dutch domestic | postnl_registered_parcels_partijen_post_1420 | PostNL Registered parcels Partijen Post | ||
1175 | Letter + ID check | Dutch domestic | postnl_letter_id_1175 | PostNL Letter + ID check | ||
3070 | Instant delivery | Dutch domestic | postnl_instant_delivery_3070 | PostNL Instant delivery | ||
4936 | Pick up at a PostNL location in Belgium | Netherlands to Belgium | postnl_pp_bel_4936 | PostNL Pick up at a PostNL location in Belgium | hold_at_location | |
4941 | Deliver to stated address only | Netherlands to Belgium | postnl_addr_only_bel_4941 | PostNL Deliver to stated address only Belgium | ||
4946 | Belgium Standard delivery | Netherlands to Belgium | postnl_standard_bel_4946 | PostNL Standard delivery Belgium | ||
4946 | Standard shipment + Delivery code at the door | Netherlands to Belgium | postnl_standard_bel_del_code_4946 | PostNL Standard shipment + Delivery code at the door | ||
4912 | Parcel Netherlands-Belgium + Signature upon delivery | Netherlands to Belgium | postnl_sig_bel_4912 | PostNL Parcel Netherlands-Belgium + Signature upon delivery | ||
4914 | Parcel Netherlands-Belgium + extra cover | Netherlands to Belgium | postnl_extra_cover_bel_4914 | PostNL Parcel Netherlands-Belgium + extra cover | insurance | |
4983 | B2B parcel Netherlands-Belgium | Netherlands to Belgium | postnl_b2b_bel_4983 | PostNL B2B parcel Netherlands-Belgium | ||
2285 | Returns to a Business reply number (Antwoordnummer) | Dutch Returns | postnl_returns_antwoordnummer_2285 | PostNL Returns to a Business reply number (Antwoordnummer) | ||
3285 | Returns to a home address | Dutch Returns | postnl_returns_home_3285 | PostNL Returns to a home address | ||
3628 | Extra@Home Top service 2 person delivery NL | Extra @ Home | postnl_extra_top_2_3628 | PostNL Extra@Home Top service 2 person delivery NL | ||
3629 | Extra@Home Top service Btl 2 person delivery | Extra @ Home | postnl_extra_top_btl_2_3629 | PostNL Extra@Home Top service Btl 2 person delivery | ||
3653 | Extra@Home Top service 1 person delivery NL | Extra @ Home | postnl_extra_top_1_3653 | PostNL Extra@Home Top service 1 person delivery NL | ||
3783 | Extra@Home Top service Btl 1 person delivery | Extra @ Home | postnl_extra_top_btl_1_3783 | PostNL Extra@Home Top service Btl 1 person delivery | ||
3790 | Extra@Home Drempelservice 1 person delivery NL | Extra @ Home | postnl_extra_drem_1_3790 | PostNL Extra@Home Drempelservice 1 person delivery NL | ||
3791 | Extra@Home Drempelservice 2 person delivery NL | Extra @ Home | postnl_extra_drem_2_3791 | PostNL Extra@Home Drempelservice 2 person delivery NL | ||
3792 | Extra@Home Drempelservice Btl 1 person delivery | Extra @ Home | postnl_extra_drem_btl_1_3792 | PostNL Extra@Home Drempelservice Btl 1 person delivery | ||
3793 | Extra@Home Drempelservice Btl 2 persons delivery | Extra @ Home | postnl_extra_drem_btl_2_3793 | PostNL Extra@Home Drempelservice Btl 2 persons delivery | ||
4960 | Belgium Deliver to stated address only | Belgium domestic | postnl_bel_addr_only_4960 | PostNL Belgium Deliver to stated address only |
4961 | Belgium Delivery to neighbour | Belgium domestic | postnl_bel_standard_4961 | PostNL Belgium Delivery to neighbour | | |
4961 | Belgium delivery to neighbour + Delivery code at the door | Belgium domestic | postnl_bel_standard_del_code_4961 | PostNL Belgium delivery to neighbour + Delivery code at the door | | |
4962 | Belgium Signature on delivery + Deliver to stated address only | Belgium domestic | postnl_bel_sig_addr_only_ret_4962 | PostNL Belgium Signature on delivery + Deliver to stated address only | | |
4963 | Belgium Signature on delivery | Belgium domestic | postnl_bel_sig_4963 | PostNL Belgium Signature on delivery | | |
4965 | Extra cover + Deliver to stated address only | Belgium domestic | postnl_bel_extra_cover_4965 | PostNL Extra cover + Deliver to stated address only | insurance | |
4878 | Pickup at PostNL Location Belgium insured. | Belgium domestic | postnl_bel_pp_extra_cover_4878 | PostNL Pickup at PostNL Location Belgium insured. | hold_at_location/insurance | |
4880 | Pickup at PostNL Location Belgium, no insurance. | Belgium domestic | postnl_bel_pp_4880 | PostNL Pickup at PostNL Location Belgium, no insurance. | hold_at_location | |
3250 | | Belgium Returns | postnl_returns_bel_nld_3250 | PostNL Returns Belgium to Netherlands | | |
4882 | | Belgium Returns | postnl_returns_bel_dom_4882 | PostNL Returns Belgium domestic | | |
4785 | | Belgium Returns | postnl_returns_nld_del_4785 | PostNL Returns Netherlands to Belgium | | |
4890 | Standard shipment | Belgium to Netherlands | postnl_standard_bel_nld_4890 | PostNL Standard shipment Belgium to Netherlands | | |
4890 | Standard shipment + Delivery code at the door | Belgium to Netherlands | postnl_standard_del_code_4890 | PostNL Standard shipment + Delivery code at the door Belgium to Netherlands | insurance | |
4891 | Signature on delivery | Belgium to Netherlands | postnl_sig_bel_nld_4890 | PostNL Signature on delivery Belgium to Netherlands | | |
4893 | Delivery to stated address only | Belgium to Netherlands | postnl_addr_only_bel_nld_4893 | PostNL Delivery to stated address only Belgium to Netherlands | | |
4894 | Signature on delivery + Delivery to stated address only | Belgium to Netherlands | postnl_sig_addr_only_bel_nld_4894 | PostNL Signature on delivery + Delivery to stated address only Belgium to Netherlands | | |
4895 | Age check 18+ + Delivery to stated address only | Belgium to Netherlands | postnl_standard_id_bel_nld_4895 | PostNL Age check 18+ + Delivery to stated address only Belgium to Netherlands | | |
4896 | Signature on delivery, Delivery to stated address only, Return when not home | Belgium to Netherlands | postnl_sig_addr_only_ret_bel_nld_4896 | PostNL Signature on delivery, Delivery to stated address only, Return when not home Belgium to Netherlands | | |
4897 | Extra cover | Belgium to Netherlands | postnl_extra_cover_bel_nld_4897 | PostNL Extra cover Belgium to Netherlands | insurance | |
4898 | Pickup at PostNL location, Signature on delivery | Belgium to Netherlands | postnl_pp_sig_bel_nld_4898 | PostNL Pickup at PostNL location, Signature on delivery Belgium to Netherlands | hold_at_location | |
4907 | Parcel EU 2C Track & Trace | Parcels EU | postnl_parcel_eu_2c_4907 | PostNL Parcel EU 2C Track & Trace | | |
4907 | Parcel EU 2C Track & Trace Insured | Parcels EU | postnl_parcel_eu_2c_insured_4907 | PostNL Parcel EU 2C Track & Trace Insured | | |
4907 | Parcel EU 2C Track & Trace Insured Plus | Parcels EU | postnl_parcel_eu_2c_insured_plus_4907 | PostNL Parcel EU 2C Track & Trace Insured Plus | | |
4907 | Parcel EU 2B Track & Trace | Parcels EU | postnl_parcel_eu_2b_4907 | PostNL Parcel EU 2B Track & Trace | | |
4907 | Parcel EU 2B Track & Trace Insured | Parcels EU | postnl_parcel_eu_2b_insured_4907 | PostNL Parcel EU 2B Track & Trace Insured | | |
4907 | Parcel EU 2B Track & Trace Insured Plus | Parcels EU | postnl_parcel_eu_2b_insured_plus_4907 | PostNL Parcel EU 2B Track & Trace Insured Plus | | |
4999 | Parcel EU Standard | Parcels EU | postnl_parcel_eu_standard_4999 | PostNL Parcel EU Standard | | |
4910 | Easy Return Service, via PostNL directly returned to the customer | ERS | postnl_ers_4910 | PostNL Easy Return Service | | |
2484 | IBRS International Business Reply Service | IBRS | postnl_ibrs_2484 | PostNL IBRS International Business Reply Service | | |
6440 | Boxable Untracked | International Mail & Packets | postnl_box_untracked_6440 | PostNL Boxable Untracked | | |
6405 | Packet Untracked | International Mail & Packets | postnl_packet_untracked_6405 | PostNL Packet Untracked | | |
6945 | Boxable Untracked (contract) | International Mail & Packets | postnl_box_untracked_contract_6945 | PostNL Boxable Untracked (contract) | | |
6905 | Packet Untracked (contract) | International Mail & Packets | postnl_packet_untracked_contract_6905 | PostNL Packet Untracked (contract) | | |
6972 | Boxable Track & Trace | International Mail & Packets | postnl_box_tracked_6972 | PostNL Boxable Track & Trace | | |
6350 | Packet Track & Trace | International Mail & Packets | postnl_packet_tracked_6350 | PostNL Packet Track & Trace | | |
6942 | Boxable Track & Trace (contract) | International Mail & Packets | postnl_box_tracked_contract_6942 | PostNL Boxable Track & Trace (contract) | | |
6550 | Packet Track & Trace (contract) | International Mail & Packets | postnl_packet_tracked_contract_6942 | PostNL Packet Track & Trace (contract) | | |
6906 | Packet Track & Trace insured | International Mail & Packets | postnl_packet_tracked_insured_6906 | PostNL Packet Track & Trace insured | | |
6908 | Packet Track & Trace insured (contract) | International Mail & Packets | postnl_packet_tracked_insured_contract_6908 | PostNL Packet Track & Trace insured (contract) | | |
6408 | Registered Letter | International Mail & Packets | postnl_register_letter_6408 | PostNL Registered Letter | | |
6605 | Registered Bulk Mail | International Mail & Packets | postnl_register_bulk_mail_6605 | PostNL Registered Bulk Mail | | |
Required service_options
For some service_types, it's required to also use the service_options, e.g. when use service_type postnl_extra_cover_3087, also need to use service_options insurance.
Optional service_options
For some service_types, it's optional to support the generic service_options including: dangerous_goods/evening_delivery/morning_delivery/noon_delivery/afternoon_delivery/shipping_and_return/cod
Please refer to PostNL API doc to verify if the options can be supported by specific product code.
If you have any questions about PostNL product codes, please check PostNL developer guide for more details.
Additional resources
Read PostNL docs
AfterShip Shipping PostNL technical support: support+shipping@aftership.com
Updated on: 24/06/2025