Skip to main content
PostNL Shipping Connector for ERPNext — A build-to-order Frappe app that wires PostNL's Send & Track API directly into your E — 1/1Illustrative preview

A build-to-order Frappe app that wires PostNL's Send & Track API directly into your ERPNext Delivery Note and

Shipment flow — labels, parcel-point and evening delivery, customs declarations, and automatic track & trace sync.

ECOSIRE builds, installs, and supports it on your bench.

What is PostNL Shipping Connector for ERPNext?

A build-to-order Frappe app that wires PostNL's Send & Track API directly into your ERPNext Delivery Note and Shipment flow — labels, parcel-point and evening delivery, customs declarations, and automatic track & trace sync. ECOSIRE builds, installs, and supports it on your bench. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

`postnl_shipping` Frappe app with its own module, `PostNL Settings` single DocType (API key, customer code/number, collection location) and sandbox/production toggle
One-click label generation from a submitted Delivery Note or Shipment via a whitelisted server method calling the PostNL Send & Track (Shipping) API
A6 label PDF retrieved and attached to the source document as a Frappe File, ready for Zebra/thermal printing
`hooks.py` `doc_events` on Delivery Note `on_submit` with an idempotency guard so re-submission never double-books a barcode
Product-code support for standard parcel, evening delivery, signature-on-delivery, insured shipment, and return labels
Parcel-point (Kies Gemak) lookup and evening-delivery availability exposed to the fulfilment desk via client script + whitelisted method
Scheduler event polling PostNL track & trace on a cron interval, writing a delivery status field and timeline comments back to ERPNext
Automatic customs (CN23) declaration assembly from Item weight, HS/commodity code and country of origin for non-EU destinations
`PostNL Shipment` DocType storing barcode, product code, insured value, weight and label reference, linked to the Delivery Note
Insured-value and signature-on-delivery mapping from order/shipment fields to the correct PostNL API options
Address validation and Benelux postcode-house-number lookup before booking to cut failed-collection errors
Dedicated PostNL role profile and DocType permissions separating who can book labels from who can only view tracking
Return-label workflow (Shipping & Return / Smart Returns) generated on demand from the original shipment
Structured error handling and Error Log entries on API failures, so a failed booking is visible and retryable — never silent

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your ERPNext.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

ERPNext Compatibility
—
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
MariaDB 10.6+

About this Product

Benelux merchants running ERPNext hit a wall the moment they need to fulfil through PostNL. ERPNext ships a generic Shipment DocType and a Delivery Note, but it has no concept of a PostNL barcode, a Kies Gemak parcel-point, an evening delivery window, or an EU customs (CN23) declaration. Warehouse teams end up copy-pasting order data into MijnPostNL or a spreadsheet, printing labels in a separate portal, and re-typing tracking codes by hand — slow, error-prone, and it leaves your ERPNext instance blind to the actual shipment status the customer sees.

The PostNL Shipping Connector closes that gap. It is a proper Frappe app (postnl_shipping) with its own module, DocTypes, and role profile, installed onto your bench alongside ERPNext. A PostNL Settings single DocType holds your API key, customer code, customer number, and collection location, with a sandbox/production toggle so we validate against PostNL's test environment before go-live. From a submitted Delivery Note or Shipment, a whitelisted server method calls the PostNL Send & Track (Shipping) API to generate the barcode, book the chosen product code (standard parcel, evening delivery, signature-on-delivery, insured, or return), and retrieve the A6 label PDF, which is attached straight to the document as a Frappe File and printed to your Zebra/label station.

Under the hood the app is built the Frappe way. A hooks.py doc_events handler on Delivery Note on_submit triggers label creation (guarded by an idempotency flag so re-submits never double-book), a PostNL Shipment child/linked DocType stores the barcode, product code, insured value and label reference, and a scheduler event polls the PostNL track & trace endpoint on a cron interval to update a delivery status field and write timeline comments — no manual status hunting. For non-EU destinations the connector assembles the customs declaration from your Item weights, HS/commodity codes and country of origin, so DHL/PostNL global-pack shipments clear without a separate form. Address validation, parcel-point lookup and evening-delivery availability are exposed to the fulfilment desk through client scripts and a whitelisted lookup method, and every PostNL role — who can book, who can only view tracking — is scoped through a dedicated role profile and DocType permissions.

Because this is a build-to-order engagement, nothing is a shrink-wrapped download. We start from a short scoping call to confirm your ERPNext version (v15 or v16), your PostNL contract product codes, your label hardware and your EU/non-EU split, then build the connector against your exact bench. You get the full app source, installation and configuration on your environment, UAT on a staging site with a rollback plan, a training session for your fulfilment team, and a post-go-live support window. Typical delivery is one working week from confirmed scope.

What you get

  • Installable source code for your ERPNext version (v15 or v16) — the complete `postnl_shipping` Frappe app
  • Installation and configuration on your environment, including `PostNL Settings` credentials and sandbox validation
  • Technical documentation: DocTypes, hooks, whitelisted methods, scheduler events and API mapping
  • User guide plus a live training session for your fulfilment/warehouse team
  • UAT on a staging bench against the PostNL sandbox, with a documented rollback plan
  • Post-go-live support window for defect fixes and configuration adjustments
  • Git repository handover with full commit history and branch/tag for your version
  • Go-live checklist covering label hardware, product codes and production API cutover

Who this is for

Benelux ecommerce fulfilment manager

Runs daily dispatch on ERPNext and PostNL and needs labels, parcel-point choice and tracking to live inside the Delivery Note instead of MijnPostNL, so the warehouse stops copy-pasting order data between systems.

ERPNext system administrator / IT lead

Owns the bench and wants a clean, maintainable Frappe app — proper DocTypes, hooks, role profiles and Error Log visibility — that survives ERPNext upgrades rather than a pile of ad-hoc server scripts.

Operations / logistics director

Cares that shipping-method choice (evening, signature, insured), customs paperwork and delivery status are captured accurately for every order and reportable inside ERPNext for SLA and cost control.

Cross-border seller shipping outside the EU

Sends parcels beyond the EU and needs CN23 customs declarations built automatically from Item HS codes and weights, so global-pack shipments clear without a separate manual form.

How PostNL Shipping Connector for ERPNext Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
Delivery modelBuild-to-order app built and installed for you in one working weekYou hire/allocate a Frappe developer and manage the buildInstant download, but generic and may not fit your benchNothing to deliver — no PostNL support exists
PostNL label generationOne-click A6 label from Delivery Note via Send & Track APIWhatever you spec and can build in-houseOften EU-carrier-generic, PostNL support partialNot available — manual in MijnPostNL
Parcel-point & evening deliveryKies Gemak lookup + evening/signature product codesOnly if you scope and implement itRarely covers PostNL-specific delivery optionsNo concept of parcel points or delivery windows
Customs (CN23) for non-EUAuto-assembled from Item HS codes, weight and originMust be designed and coded from scratchVaries; often a manual add-onNo automated customs declaration
Track & trace syncScheduler polls PostNL, updates status + timelineBuild your own polling job and status modelMay offer basic tracking, not always synced backNone — status re-typed by hand
ERPNext integration qualityProper Frappe app: DocTypes, hooks, role profile, Error LogDepends on your developer's disciplineThird-party quality varies, upgrade riskN/A
Version fit & upgradesTargeted at your v15/v16 bench, git handoverYou own upgrade compatibilityTied to vendor's release cadenceShips with ERPNext core only
Support & ownershipPost-go-live support window; you own the full sourceFully your burden and costVendor SLA; source usually closedCommunity/self-support only

Frequently Asked Questions about PostNL Shipping Connector

Is this an existing app I can download and install today?

No. This is a build-to-order engagement. ECOSIRE builds the `postnl_shipping` connector against your specific ERPNext version and PostNL contract, then installs and supports it. There is no instant download — you receive the source and a working install once your build is complete.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After a short scoping call we lock your ERPNext version, PostNL product codes and EU/non-EU requirements, then build, run UAT on staging, and go live. Timelines depend on your exact requirements and hardware.

Which ERPNext and Frappe versions are supported?

We build and test against Frappe/ERPNext v15 and v16. We target your running version so the app installs cleanly on your bench and behaves predictably through routine `bench update` cycles.

Do I need my own PostNL account and API credentials?

Yes. You bring your PostNL business contract with your API key, customer code and customer number. We configure them in the `PostNL Settings` DocType and validate against the PostNL sandbox before switching to the production endpoint at go-live.

How does the customs declaration for non-EU shipments work?

For destinations outside the EU the connector assembles the CN23 declaration automatically from your Item weights, HS/commodity codes and country of origin, and sends it with the shipment booking — so global-pack parcels clear without a separate manual form.

What support and updates do I get after go-live?

You get a post-go-live support window for defect fixes and configuration tweaks, plus the full git repository so your team (or ECOSIRE on a support retainer) can maintain it. If PostNL changes its API or you upgrade ERPNext, we can quote a maintenance update — you own the code and are never locked in.

Will it slow down or break my Delivery Note workflow?

No. Booking runs on `on_submit` with an idempotency guard so re-submissions never double-book, API failures are logged to the Error Log and are retryable rather than silent, and tracking updates run on a background scheduler — nothing blocks your dispatch team at the counter.

Request a quote

PostNL Shipping Connector

A build-to-order Frappe app that wires PostNL's Send & Track API directly into your ERPNext Delivery Note and Shipment flow — labels, parcel-point and evening delivery, customs declarations, and automatic track & trace sync. ECOSIRE builds, installs, and supports it on your bench.

  • `postnl_shipping` Frappe app with its own module, `PostNL Settings` single DocType (API key, customer code/number, collection location) and sandbox/production toggle
  • One-click label generation from a submitted Delivery Note or Shipment via a whitelisted server method calling the PostNL Send & Track (Shipping) API
  • A6 label PDF retrieved and attached to the source document as a Frappe File, ready for Zebra/thermal printing
  • `hooks.py` `doc_events` on Delivery Note `on_submit` with an idempotency guard so re-submission never double-books a barcode

Request a Quotation

Tell us about your PostNL Shipping Connector requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.