Skip to main content
PostEx Connector for ERPNext — A build-to-order ERPNext integration that books PostEx COD shipments, syncs tracking, and reco — 1/1Illustrative preview

A build-to-order ERPNext integration that books PostEx COD shipments,

syncs tracking, and reconciles PostEx advance payouts directly against your Sales Invoices.

ECOSIRE scopes, builds, installs, and supports it on your Frappe v15/v16 bench.

What is PostEx Connector for ERPNext?

A build-to-order ERPNext integration that books PostEx COD shipments, syncs tracking, and reconciles PostEx advance payouts directly against your Sales Invoices. ECOSIRE scopes, builds, installs, and supports it on your Frappe v15/v16 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

`PostEx Settings` single DocType with the API token stored as an encrypted `Password` field, sandbox/live base-URL toggle, and default pickup address
`PostEx Shipment` DocType linked to `Sales Order`, `Delivery Note` and `Sales Invoice`, holding tracking number, COD amount, order status and payout reference
Token-based PostEx API authentication with a connection-test button and typed error surfacing for expired or invalid tokens
Whitelisted `@frappe.whitelist()` booking method that returns the PostEx tracking number and writes it back to the linked documents
City-serviceability pre-check against PostEx operational-cities before booking, blocking unserviceable destinations with a clear validation message
`hooks.py` doc-event on Delivery Note submit to auto-create a `PostEx Shipment` (configurable on/off in settings)
Client script adding a one-click 'Book with PostEx' button and a live courier-status badge on Sales Order / Delivery Note
Scheduler event (`scheduler_events`) that polls PostEx and syncs status transitions — booked, picked, in-transit, delivered, returned — back onto each shipment
COD advance-payout reconciliation that matches settled tracking numbers to Sales Invoices and drafts the corresponding `Payment Entry` for finance approval
Bulk label generation that calls the PostEx label endpoint for a filtered shipment set and returns a merged print-ready PDF
Timeline/comment logging of every status change and API call on the shipment for a full audit trail
Dedicated Role and Role Profile separating warehouse booking/printing from finance reconciliation posting
Idempotent booking guard so a re-submitted or double-clicked order never creates a duplicate PostEx parcel
Built and tested against Frappe/ERPNext v15 and v16, delivered as installable source in a git repository you own

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

Pakistani e-commerce sellers running on ERPNext live and die by cash-on-delivery, and PostEx is one of the dominant COD couriers with its instant-advance payout model. But ERPNext core has no concept of a PostEx booking: staff copy order addresses into the PostEx merchant portal by hand, paste tracking numbers back into a text field, and then spend the end of every week trying to match a lump-sum PostEx advance-payment settlement against dozens of individual Sales Invoices. Delivery Note and the stock ledger know nothing about the parcel's real courier status, and finance has no clean audit trail from Sales Order to delivered-and-paid.

We build a proper Frappe app (postex_connector) installed on your own bench, not a spreadsheet workaround. It ships a PostEx Settings single DocType (API token stored encrypted as a Password field, base URL, default pickup address, city-map cache) and a PostEx Shipment DocType linked to Sales Order/Delivery Note/Sales Invoice, carrying tracking number, order status, COD amount, and the payout reference. Booking is a whitelisted server method (@frappe.whitelist()) that validates city serviceability against PostEx's operational-cities endpoint before it calls the create-order API, so an unserviceable pincode is caught before the parcel is committed. A hooks.py doc event on Delivery Note submit can auto-create the shipment, and a client script adds a one-click "Book with PostEx" button plus a live status badge on the linked forms.

Tracking and reconciliation run on Frappe's scheduler. A scheduler_events hook polls PostEx for the tracked parcels, writes status transitions (booked, picked, in-transit, delivered, returned) back onto PostEx Shipment, and appends a timeline comment so support can see the full history without leaving ERPNext. When PostEx issues its advance/COD payout, a reconciliation routine matches each settled tracking number to its Sales Invoice and drafts the corresponding Payment Entry — turning the weekly settlement headache into a reviewable, one-approval batch. Bulk label generation calls the PostEx label endpoint for a filtered list of shipments and returns a merged, print-ready PDF so a packing desk can dispatch a whole batch at once.

Access is governed by a dedicated Role and Role Profile, so warehouse staff can book and print while only finance can post the reconciliation Payment Entries; every external call is logged for audit. The app is built against Frappe/ERPNext v15 and v16 and delivered as installable source in a git repository you own.

Because this is build-to-order, nothing is a shrink-wrapped download. We start with a short scoping call to confirm your PostEx merchant account setup, COD workflow, and which documents trigger booking, then hand you a fixed scope and quotation. Typical delivery is one working week from confirmed scope. We build on a staging copy of your bench, run UAT with your team against real test orders, then install to production with a rollback plan, training, and a post-go-live support window.

What you get

  • Installable Frappe app source code (`postex_connector`) for your ERPNext version, delivered in a git repository you own
  • Installation and configuration on your bench, including PostEx token setup and serviceability-map seeding
  • Technical documentation: DocType schema, hooks, whitelisted methods, scheduler jobs and configuration reference
  • User guide plus a live training session for warehouse and finance staff
  • UAT on a staging copy of your bench against real test orders, with a documented rollback plan
  • Post-go-live support window for bug fixes and adjustments after production install
  • Handover of the git repository with full commit history and build/deploy instructions
  • Compatibility notes and upgrade guidance for Frappe/ERPNext v15 and v16

Who this is for

COD-heavy online retailer on ERPNext

A Pakistani e-commerce seller shipping most orders cash-on-delivery via PostEx who needs booking, tracking and payout matching to happen inside ERPNext instead of the PostEx portal and spreadsheets.

Warehouse / dispatch lead

Runs the packing desk and needs one-click booking, bulk label printing and a live status badge on each order so a whole day's shipments can go out without re-keying addresses.

Finance / accounts manager

Owns COD reconciliation and needs each PostEx advance payout matched to Sales Invoices with drafted Payment Entries, so weekly settlements become a reviewable batch with a clean audit trail.

ERPNext implementation partner or in-house admin

Maintains the client's bench and wants a properly structured Frappe app with clean DocTypes, hooks and role profiles that installs on v15/v16 and is theirs to own and extend.

How PostEx Connector for ERPNext Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
PostEx COD booking from ERPNextNative DocType + one-click and auto-book on Delivery NotePossible but you design the whole data modelOften portal-only or limited to one document typeNot supported — manual entry in PostEx portal
Tracking status syncScheduler polls PostEx and writes transitions to shipmentsMust build and maintain the polling job yourselfSometimes present, often generic and not PostEx-tunedNone — tracking lives outside ERPNext
COD advance-payout reconciliationMatches payouts to invoices, drafts Payment EntriesBespoke build, high effort to get matching rightRarely handled — shipping apps stop at labelsManual spreadsheet matching each settlement
City serviceability checkPre-book validation against PostEx operational citiesYou integrate and cache the endpoint yourselfUsually absent — failures surface after bookingNot available
Bulk label generationFiltered batch to a merged print-ready PDFCustom print flow to build and testSingle-label or basic batch, if anyNo courier label support
Permissions / role separationDedicated Role Profile splits warehouse and financeYou define and test all permission rulesGeneric app roles, rarely tailoredStandard roles, no shipping-specific split
Version fit & ownershipBuilt for your v15/v16 bench, git repo you ownYou own it but carry all build risk and timeVendor-controlled, upgrade at their paceN/A — no such feature exists
Delivery modelBuild-to-order, one working week, UAT + rollback + supportTimeline depends on your team's capacityInstant install but generic and unsupported for youImmediate but nonexistent capability

Frequently Asked Questions about PostEx Connector

Is this a ready-made app I can download and install today?

No. This is a build-to-order product. ECOSIRE builds, installs and supports it for you against your specific ERPNext setup and PostEx account. You receive installable source in a git repository you own, not an instant marketplace download.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After a short scoping call we send a fixed scope and quotation; once you approve, we build on staging, run UAT with your team, then install to production. Timeline depends on how many document triggers and reconciliation rules you need.

How do updates and support work after go-live?

Every engagement includes a post-go-live support window for bug fixes and adjustments. Because you own the git repository, you can maintain it yourself or contract ECOSIRE for ongoing support, PostEx API changes, and ERPNext version upgrades.

Which ERPNext versions are supported?

We build and test against Frappe/ERPNext v15 and v16. We confirm your exact version and bench setup during scoping so the app installs cleanly on your environment.

Do I need my own PostEx merchant account and API access?

Yes. You provide your PostEx merchant account and API token; the token is stored encrypted in a `PostEx Settings` DocType. We handle the integration, serviceability mapping and reconciliation logic on top of your account.

How does COD advance-payout reconciliation actually work?

When PostEx issues an advance or COD settlement, the app matches each settled tracking number to its Sales Invoice and drafts a `Payment Entry` for finance to review and submit. It never auto-posts to your ledger without approval, so you keep control and an audit trail.

Can it auto-book shipments when we submit a Delivery Note?

Yes. A `hooks.py` doc-event can auto-create a PostEx booking on Delivery Note submit, or you can keep it manual with a one-click button. City serviceability is validated before any parcel is committed either way.

Request a quote

PostEx Connector

A build-to-order ERPNext integration that books PostEx COD shipments, syncs tracking, and reconciles PostEx advance payouts directly against your Sales Invoices. ECOSIRE scopes, builds, installs, and supports it on your Frappe v15/v16 bench.

  • `PostEx Settings` single DocType with the API token stored as an encrypted `Password` field, sandbox/live base-URL toggle, and default pickup address
  • `PostEx Shipment` DocType linked to `Sales Order`, `Delivery Note` and `Sales Invoice`, holding tracking number, COD amount, order status and payout reference
  • Token-based PostEx API authentication with a connection-test button and typed error surfacing for expired or invalid tokens
  • Whitelisted `@frappe.whitelist()` booking method that returns the PostEx tracking number and writes it back to the linked documents

Request a Quotation

Tell us about your PostEx 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.