Skip to main content
USPS Shipping Connector for ERPNext — A native Frappe app that connects ERPNext directly to USPS for live domestic and intern — 1/1Illustrative preview

A native Frappe app that connects ERPNext directly to USPS for live domestic and international rates,

one-click labels with CN22/CP72 customs forms, address standardization, and automatic tracking updates.

ECOSIRE builds it to your scope, installs it, and supports it after go-live.

What is USPS Shipping Connector for ERPNext?

A native Frappe app that connects ERPNext directly to USPS for live domestic and international rates, one-click labels with CN22/CP72 customs forms, address standardization, and automatic tracking updates. ECOSIRE builds it to your scope, installs it, and supports it after go-live. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

OAuth2 client-credentials auth against the modern USPS APIs (Ship/Rates, Addresses, Tracking), tokens cached and auto-refreshed server-side
Encrypted `USPS Settings` single DocType with per-environment sandbox/production toggle and connection test button
Whitelisted `get_rates` method returning live Priority Mail, Priority Mail Express, Ground Advantage, First-Class, and Media Mail options for a Delivery Note or Shipment
One-click label purchase that stores the returned PDF/ZPL as a File attached to the source document and writes the tracking number back to ERPNext
Automatic CN22 / CP72 customs declaration generation for international parcels, populated from item HS codes, country of origin, and declared value
USPS Addresses API standardization and ZIP+4 correction on Address save via a `hooks.py` doc event, blocking undeliverable-address surcharges
Rate selection driven by real shipment weight, package dimensions, and origin/destination ZIP — configurable default package profiles per Item or Warehouse
Scheduler event polls the Tracking API on a configurable interval and appends each scan to a `USPS Tracking Event` child table
Shipment status automation (In Transit / Delivered / Exception) with optional customer notification email via ERPNext Notification
Role-based permissions and Role Profiles so rate, buy-label, and void actions are gated to the correct roles
Client Scripts that surface Get Rates / Buy Label / Track buttons contextually on Delivery Note and Shipment forms
Label void / refund request method for labels bought in error, with audit trail on the shipment
Idempotent label purchase guard to prevent double-buying postage on retries or duplicate clicks
Structured error logging to the Frappe Error Log with USPS API response codes surfaced back to the user in plain language
Multi-warehouse origin support so each fulfillment location rates from its own ZIP and account

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

If you run a US shipping operation on ERPNext, the last mile is usually a swivel-chair mess. Your Sales Orders and Delivery Notes live in ERPNext, but rating a parcel, buying postage, printing a label, and filling out a customs form all happen on USPS.com or a separate postage tool. Reps re-key addresses and weights, quote shipping from a rate table that went stale months ago, and paste tracking numbers back into ERPNext by hand — when they remember to at all. ERPNext core ships a generic Shipment DocType and a Shipping Rule engine, but it has no USPS carrier integration, no live rate calls, no label generation, and no customs-form output. Native runs out of road the moment you need a real USPS rate or a scannable label.

We build a proper Frappe app — its own module, DocTypes, and hooks.py — installed on your bench, not a brittle pile of copy-pasted scripts. It authenticates to the modern USPS APIs using OAuth2 client-credentials against the Ship/Rates, Addresses, and Tracking endpoints, with credentials held in an encrypted USPS Settings single DocType behind a sandbox/production toggle. From a Delivery Note or Shipment, a whitelisted server method (ecosire_usps.api.get_rates) calls the USPS Rates API and returns live Priority Mail, Priority Mail Express, Ground Advantage, and First-Class/Media Mail options based on the shipment's actual weight, package dimensions, origin ZIP, and destination — so reps quote the real number instead of a guess.

When a rep picks a rate, a second whitelisted method buys the label, stores the returned PDF/ZPL as a File attached to the document, writes the USPS tracking number back onto the Delivery Note, and — for international shipments — generates the correct CN22 or CP72 customs declaration from the item lines (HS codes, country of origin, declared value). Addresses are run through the USPS Addresses API for standardization and ZIP+4 correction before a label is ever bought, so you stop paying for undeliverable-address surcharges. A scheduler event polls the Tracking API on the interval you choose, appends each scan event to a child table on the shipment, and moves the status through In Transit / Delivered / Exception, optionally emailing the customer. Everything is wrapped in role-based permissions and Client Scripts so buttons only appear for the right roles and the workflow feels native to ERPNext.

Because this is build-to-order, nothing ships until we agree on scope. We start with a short scoping call, confirm which USPS services, package profiles, and document types you use, and hand you a fixed statement of work. We build against Frappe/ERPNext v15 or v16 on a staging copy of your site, run UAT with your team, then install on production behind a rollback plan. You receive the full source in a Git repository you own, plus documentation, a training session, and a post-go-live support window — no black boxes, no lock-in.

What you get

  • Installable source code for your ERPNext version (v15 or v16), delivered as a proper Frappe app
  • Installation and configuration on your bench, including USPS API credential setup and sandbox/production switchover
  • Technical documentation covering DocTypes, whitelisted methods, hooks, scheduler events, and configuration
  • End-user guide plus a live training session for your fulfillment and support teams
  • UAT on a staging copy of your site with a documented rollback plan before production install
  • Post-go-live support window for defect fixes and configuration adjustments
  • Git repository handover with full commit history, transferred to an account you own
  • Configuration workbook capturing your USPS services, package profiles, and role permissions as delivered

Who this is for

US ecommerce seller on ERPNext

Ships domestic parcels daily from one or two warehouses and wants live USPS rates and labels generated straight from the Delivery Note, without re-keying addresses into USPS.com or paying for a separate postage app per label.

Fulfillment / warehouse manager

Owns the pick-pack-ship desk and needs consistent rate shopping across Priority and Ground Advantage, batch label printing to a ZPL thermal printer, and tracking that flows back into ERPNext so support stops chasing scan updates manually.

Cross-border small exporter

Sends international USPS parcels and needs correct CN22/CP72 customs forms auto-generated from item HS codes and declared values, so shipments clear customs and don't get returned for paperwork errors.

ERPNext admin / systems integrator

Maintains the site and wants a clean, upgrade-safe Frappe app with documented hooks, role-based permissions, and a Git repo they own — not untracked server scripts that break on the next bench update.

How USPS Shipping Connector for ERPNext Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
USPS live ratingBuilt into Delivery Note / Shipment via whitelisted methodPossible, but you design and debug the API calls yourselfOften generic multi-carrier, USPS rates may be limitedNone — only static Shipping Rules
Label + customs formsOne-click label with CN22/CP72 auto-generated from item linesBuild label and customs logic from scratchLabels common; customs form support variesNo label or customs generation
Fit to your workflowScoped to your services, package profiles, and rolesFully custom but on your time and budgetFixed feature set, adapt your process to itGeneric, no USPS awareness
Frappe/ERPNext v15/v16Built and tested against your target major versionDepends on your team's Frappe depthDepends on maintainer keeping paceVersion-native but no USPS features
Source code ownershipFull Git repo handover, you own itYou own itUsually closed source, license-lockedN/A
USPS API-change maintenanceSupport window plus optional retainerEntirely your responsibilityDepends on vendor roadmap and pricingN/A
Time to working shippingTypically one working week from confirmed scopeWeeks to months depending on capacityFast install, slow to fit real processImmediate but not functional for USPS
Tracking sync back to ERPNextScheduler polls USPS, appends scan events, updates statusYou build and schedule the pollerSometimes included, sometimes manualNo carrier tracking sync

Frequently Asked Questions about USPS Shipping Connector

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

No. This is a build-to-order integration. ECOSIRE builds it to your confirmed scope on Frappe/ERPNext v15 or v16, tests it on a staging copy of your site, and installs it on production. You are not downloading a pre-built marketplace app.

How long does delivery take?

Typical delivery is one working week from confirmed scope, depending on which USPS services, document types, and customizations you need. We give you a fixed timeline and statement of work after the scoping call, before any build starts.

What do I need from USPS before you can build it?

A USPS Business account with API access enabled and OAuth2 client credentials (consumer key/secret) for the Rates, Addresses, and Tracking APIs. We connect against the USPS sandbox during development and switch to production credentials at go-live. We can guide you through requesting access if you don't have it yet.

How does support and updates work after go-live?

Every build includes a post-go-live support window for defect fixes and configuration adjustments. Because you receive the full source in a Git repo you own, your own team or ECOSIRE can maintain it. We also offer ongoing support and USPS API-change maintenance as a separate retainer if you'd rather we keep it current.

Does it generate international customs forms?

Yes. For international shipments the app generates the correct CN22 or CP72 customs declaration, populated from your item lines — HS codes, country of origin, quantities, and declared value — so parcels clear customs without manual paperwork.

Will it survive ERPNext and bench upgrades?

Yes. It's a proper Frappe app with its own module, DocTypes, and hooks — not untracked server or client scripts pasted into the UI. It's built and tested against your target major version (v15 or v16), so bench and app upgrades behave predictably.

Can it rate and ship from multiple warehouses?

Yes. Each fulfillment Warehouse can rate from its own origin ZIP and USPS account, so multi-location operations quote and buy postage correctly per shipping point.

Request a quote

USPS Shipping Connector

A native Frappe app that connects ERPNext directly to USPS for live domestic and international rates, one-click labels with CN22/CP72 customs forms, address standardization, and automatic tracking updates. ECOSIRE builds it to your scope, installs it, and supports it after go-live.

  • OAuth2 client-credentials auth against the modern USPS APIs (Ship/Rates, Addresses, Tracking), tokens cached and auto-refreshed server-side
  • Encrypted `USPS Settings` single DocType with per-environment sandbox/production toggle and connection test button
  • Whitelisted `get_rates` method returning live Priority Mail, Priority Mail Express, Ground Advantage, First-Class, and Media Mail options for a Delivery Note or Shipment
  • One-click label purchase that stores the returned PDF/ZPL as a File attached to the source document and writes the tracking number back to ERPNext

Request a Quotation

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