- Home
- Apps
- Multichannel & PIM Tools
- UPS Shipping Connector for ERPNext
Illustrative previewA native Frappe app that wires UPS negotiated rates,
label printing, and delivery tracking directly into the ERPNext Delivery Note workflow.
ECOSIRE builds it to your account and carrier setup, then installs and supports it.
What is UPS Shipping Connector for ERPNext?
A native Frappe app that wires UPS negotiated rates, label printing, and delivery tracking directly into the ERPNext Delivery Note workflow. ECOSIRE builds it to your account and carrier setup, then installs and supports it. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your ERPNext.
- 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
ERPNext handles quotations, sales orders, and stock beautifully, but the moment a warehouse team needs a real UPS rate at pick-and-pack time, native ERPNext runs out of road. Out of the box there is no UPS OAuth connection, no negotiated-rate quote on the Delivery Note, no label to print, and no tracking status flowing back into the document. Teams end up re-keying addresses into UPS WorldShip or ups.com, copying tracking numbers back by hand, and reconciling shipping cost after the fact — slow, error-prone, and impossible to audit against the sales order.
We build a proper Frappe app (installed with bench get-app / bench install-app) that lives inside ERPNext rather than bolting on beside it. A UPS Settings single DocType holds your OAuth 2.0 client credentials, account number, and rate/label preferences, with the client secret stored encrypted in the site config. A whitelisted server method authenticates against the UPS OAuth API, caches the bearer token until expiry, and calls the Rating, Shipping, Track, and Pickup endpoints. Doc events registered in hooks.py extend the standard Delivery Note and Shipment DocTypes: on submit we request a live negotiated-rate quote for the parcel's weight, dimensions, and destination, then persist the returned service level, cost, and UPS tracking number onto custom fields.
Label generation is a one-click action. A client script adds a "Get UPS Label" button that calls the whitelisted method, receives the label in your chosen format (GIF, ZPL for thermal printers, or PDF), and attaches it to the document as a File. Paperless commercial invoice upload is supported for international shipments so customs documents ride along with the shipment request. A scheduler event (registered under scheduler_events in hooks.py) polls the UPS Track API on an interval and writes time-in-transit and delivery status back onto the Delivery Note, so ops and customer service see live status without leaving ERPNext. Void Shipment and Pickup Request are exposed as guarded server actions with their own role permissions.
Because this is build-to-order, nothing is a black box. We scope the exact services, DocTypes, and print formats you need on a short call, build against your UPS developer account and ERPNext version (Frappe/ERPNext v15 or v16), and validate everything on a staging site before go-live. Typical delivery is one working week from confirmed scope depending on how many services (rating, labels, tracking, void, pickup, paperless invoice) and print/ZPL formats you require. You receive the installable source, the git repository, documentation, and a post-go-live support window — this is not an instant Marketplace download, it is a system engineered to your shipping process and handed over to you.
What you get
- Installable source code for your version of the app, tagged and compatible with your Frappe/ERPNext v15 or v16 site
- Installation and configuration on your environment, including UPS Settings, OAuth credentials, and custom fields
- Technical documentation: DocType/custom-field map, hooks and scheduler events, whitelisted methods, and REST endpoints
- User guide plus a live training session for warehouse and customer-service staff
- UAT on a staging site with UPS sandbox credentials, followed by a documented cutover and rollback plan
- Post-go-live support window for bug fixes and adjustments after production launch
- Handover of the private git repository with full commit history and a versioned release
- Print formats / ZPL templates configured for your label printers
Who this is for
ERPNext e-commerce merchant shipping with UPS
Runs fulfillment out of ERPNext and needs accurate negotiated rates and printable labels at pack time without re-keying orders into ups.com or WorldShip.
Distributor / 3PL operations manager
Ships high parcel volumes daily and wants tracking status and time-in-transit flowing back onto Delivery Notes so customer service can answer 'where is my order' inside ERPNext.
ERPNext system administrator / implementation partner
Owns the site and wants a clean, upgrade-safe Frappe app (proper hooks.py, DocTypes, permissions) they can maintain and extend, not brittle customizations.
Finance / logistics controller
Needs shipping cost and service level captured on each shipment against the sales order for accurate landed-cost reconciliation and carrier auditing.
How UPS Shipping Connector for ERPNext Compares
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| UPS negotiated-rate quotes on Delivery Note | Live rate at submit, saved to the document | Buildable but you write the OAuth + Rating integration | Sometimes list rates only, generic mapping | Not available |
| Label printing (GIF / ZPL / PDF) | One-click, auto-attached, thermal ZPL supported | Must implement label parsing and printer formats | PDF common, ZPL varies by app | No carrier label generation |
| Tracking status back into ERPNext | Scheduler polls UPS Track, writes status + transit time | You build and schedule the polling job | Often manual or webhook-only | No tracking sync |
| Fit to your workflow and service mix | Scoped and built to your exact services and print formats | Fully bespoke by definition | Fixed feature set, take it or leave it | Generic, no UPS specifics |
| Upgrade safety (v15/v16) | Standard hooks.py, custom fields, whitelisted methods | Depends on your team's discipline | Varies; some patch core | N/A |
| Void shipment and pickup request | Guarded server actions with role permissions | Extra endpoints you build yourself | Frequently omitted | Not available |
| Source code and repo ownership | Full git repo + release handed over | You own it (you built it) | Usually closed / licensed binary | N/A |
| Time and cost to production | one working week, fixed scope, includes UAT + training | Longer; unbounded dev + QA effort | Fast install but config + gaps to close | No development, but no capability either |
Frequently Asked Questions about UPS Shipping Connector
Is this a ready-made app I can download and install today?
No. This is a build-to-order engagement. We build the UPS Shipping Connector against your UPS developer account, your service mix, and your ERPNext version, then install and support it. There is no instant Marketplace download.
How long does delivery take?
Typically one working week from confirmed scope. The exact timeline depends on which services you need (rating, labels, tracking, void, pickup, paperless invoice) and how many print/ZPL formats and integrations are involved. We give you a firm timeline after the scoping call.
Which ERPNext versions are supported?
We build for Frappe/ERPNext v15 and v16. We target your specific site version so the app installs cleanly with `bench get-app` / `bench install-app` and survives standard `bench update` cycles.
What happens with support and updates after go-live?
Every build includes a post-go-live support window for bug fixes and adjustments. Because you receive the full git repository and source, your own team can maintain it too. We also offer ongoing support and version-upgrade retainers separately if you want us to keep it current.
Do I need my own UPS account and API credentials?
Yes. UPS negotiated rates, labels, and tracking require your own UPS account and developer (OAuth) credentials. We help you configure them in the encrypted `UPS Settings` DocType and validate against UPS sandbox before switching to production.
Can it print thermal labels and handle international shipments?
Yes. Labels are returned in GIF, ZPL (for thermal/Zebra printers), or PDF, and attached to the document automatically. For international parcels we support paperless commercial invoice upload so customs documents accompany the shipment request.
Will this break when I upgrade ERPNext?
We build it as a standard Frappe app using documented extension points — hooks.py doc events, custom fields, whitelisted methods, and scheduler events — instead of patching core files. That is the upgrade-safe approach, and UAT includes a rollback plan so cutover is low-risk.
Related Modules

Southeast Asia Marketplace Pack
A build-to-order ERPNext application that consolidates orders, stock, tax documents, payouts and returns from the major Southeast-Asian marketplaces into one ERPNext instance. ECOSIRE builds, installs and supports it for your Frappe/ERPNext v15 or v16 site after a scoping call.

TCS Courier Connector for ERPNext
A build-to-order ERPNext integration that books TCS consignments (including COD), prints labels, and syncs tracking status directly from your Delivery Notes. ECOSIRE scopes, builds, installs, and supports it on your own instance.
UPS Shipping Connector
A native Frappe app that wires UPS negotiated rates, label printing, and delivery tracking directly into the ERPNext Delivery Note workflow. ECOSIRE builds it to your account and carrier setup, then installs and supports it.
- UPS OAuth 2.0 client-credentials flow with encrypted secret storage in site config and cached bearer tokens refreshed on expiry
- `UPS Settings` single DocType for account number, rate/label preferences, and per-service toggles
- Live negotiated-rate quotes from the UPS Rating API at Delivery Note / Shipment submit, keyed on weight, dimensions, and destination
- Custom fields for service level, shipping cost, and UPS tracking number persisted directly on the Delivery Note

