All projects
Enterprise
Discovery & proposal

Customs Broker ERP Replacement — Discovery and Phase-1 Architecture

Discovery for replacing the legacy ERP of a customs broker and freight forwarder in India. We mapped what the business actually uses and proposed a phase-1 system built on one job model for customs, air and sea, with milestone templates, GST e-invoicing and Tally export. Nothing has been built.

For A customs broker and freight forwarderOct 2026
  • Web app (proposed)
  • Integration adapters (proposed)
Replacing a customs broker's legacy ERP — Discovery & proposal by CountryDevs

Overview

A customs broker and freight forwarder asked us to scope a replacement for its legacy ERP. The business runs two legal entities on one system, with staff in six cities. The old system is a large back office — over 400 screens and about 20 integrations across forwarding, customs clearance, billing and accounts — and much of it goes unused.

We walked through the system menu by menu with an admin login and recorded what the business actually relies on: functional requirements only, not the vendor's design, code or wording. Alongside that we mapped the regulatory milestone flows for air and sea, import and export, and customs clearance, and the domain rules a replacement has to get right, from pure-agent billing to TDS on receipts.

The result is a proposed phase-1 architecture: one job engine instead of hundreds of screens, milestone templates that drive status and alerts, billing with GST e-invoices and e-way bills through a GSP adapter, and an export to Tally instead of a rebuilt accounting ledger. This is discovery work. No code has been written, and the client is not named here because the notes are confidential.

The challenge

The legacy ERP spreads the same patterns across separate menus for every mode: air export, air import, sea export, sea import, customs import and customs export each have their own shipment lists, sub-screens and tracking. Many modules, from tariffs and the CRM to the accounting screens, showed no use, while the work that matters — customs jobs, filings and billing — sat inside that sprawl.

A replacement has to cover the whole regulatory flow without copying the sprawl. It also has to respect rules that are easy to get wrong: costs paid on the client's behalf are billed at cost without GST while service charges carry GST, customers deduct TDS before paying, and multi-company, multi-branch data has to be separated from the first day.

The solution

We proposed building one job engine rather than 400 screens. Customs import and export, air and sea import and export, and general jobs become one Job with a type, with mode-specific fields shown only where they apply. Milestone templates per job type define the ordered steps, dependencies and cut-off or free-day rules; milestone events then drive the status, the dashboard alerts, the daily status report, turnaround reports and customer notifications. Documents, containers, customs declarations, charges, invoices and receipts all hang off a job, and every record carries its company and branch.

Staff would work from one job page with eight tabs — overview, cargo, milestones, documents, customs, charges, billing and activity — and a side panel of seven sections. Every list and report uses one configurable grid, and every printed document is an HTML template rendered to PDF. Each outside system sits behind an adapter with a request log, retries and a status users can see: a GST Suvidha Provider for e-invoices and e-way bills, Tally XML voucher export, container and flight tracking, and email and WhatsApp, with ICEGATE filing and AI document extraction planned for phase 1.5.

The impact

What exists is the discovery record: a module-by-module map of the legacy system and what is actually used, six regulatory milestone flows, a list of domain rules, a 22-entity phase-1 data model, a system architecture, a recommended stack and a nine-step build order. We also wrote ten questions the client must answer before a firm quote, starting with which entity and branches do the real work today.

Nothing has been built. The recommendations — a modular monolith on PostgreSQL with company and branch on every row, a background queue for filings and exports, and storage in an India region — are recommendations, not decisions.

Features

What we built into Customs Broker ERP Replacement

One job model across modes

Proposed: customs import and export, air and sea freight, and general jobs share one Job with a type, so every mode gets the same page, tabs and reports.

Milestone templates and events

Proposed: ordered steps per job type with dependencies and cut-off or free-day rules; recorded events drive status, alerts, the daily status report and turnaround reports.

Exception alerts on the dashboard

Proposed: counters for jobs that have slipped — shipping bill not filed, carted but not stuffed, paid but no delivery order, empty container not returned, completed but unbilled.

Customs declarations on the job

Proposed: bills of entry and shipping bills with line items, HS codes, duty and filing status, linked to a reusable product library per client.

Billing that follows Indian rules

Proposed: buy and sell lines per charge, pure-agent reimbursements billed without GST beside taxable service charges, receipts recorded as gross, TDS and net, and profit per job.

GST e-invoice and e-way bill adapter

Proposed: invoices, credit and debit notes get their IRN, QR code and e-way bill through a GSP adapter that logs every call and retries failures.

Tally export instead of a new ledger

Proposed: accounts stay in Tally, and the system exports XML vouchers to it, with a Tally ledger mapped on each charge and party.

Multi-company, multi-branch from day one

Proposed: every record carries company and branch, permissions are scoped by both, and each branch holds its own GSTIN and number series.

Audit and locking by default

Proposed: every create, edit and status change is versioned, and closed periods and billed jobs lock.

By the numbers
6
Regulatory milestone flows mapped (air, sea, customs; import and export)
22
Entities in the proposed phase-1 data model
10
Questions for the client before a firm quote
Project details
Tech stack
React + TypeScript (recommended)Node.js / NestJS (recommended)PostgreSQL (recommended)BullMQ (recommended)Headless Chrome PDF (recommended)GST GSP APITally XML
Timeline & team
Oct 2026
FAQ

Questions about this project

How can one system handle customs, air freight and sea freight jobs?

In our proposed design every job is one record with a type — customs import or export, air or sea import or export, or general. Mode-specific fields appear only where they apply, and milestone templates per type supply the right regulatory steps.

How does the proposed customs broker ERP handle GST e-invoices, e-way bills and Tally?

Invoices get their IRN, QR code and e-way bill through a GST Suvidha Provider adapter that logs and retries every call. Accounting stays in Tally, which receives exported XML vouchers, so the new system does not rebuild a general ledger.

Why are milestones the core of the customs broker ERP design?

Status, dashboard exception alerts, the daily status report, turnaround reports and customer notifications all read the same milestone events, so recording a step once updates everything that depends on it.

More work

Other things we shipped

All projects
Pakka Logistics home page hero on desktopFeatured
Mobile Appfor Pakka Logistics

Pakka Logistics — Porter-Style Delivery Platform

Pakka Logistics is a Porter-style delivery platform for India. We built all of it: Android apps for customers and drivers, a business portal, an operations console and the website. The web platform is live; the Android apps are being prepared for Google Play.

React NativeTypeScriptRedux ToolkitNode.js+12
96.3%API routes exercised by a probe before launch (260 of 270)
Case study
Product editor for a four-burner gas range with composition rows, a client-facing spec preview and an internal cost panel.Prototype
Enterprisefor Quality Kitchen Equipments (QKE)

QKE — Quotation-to-Production System for a Commercial-Kitchen Fabricator

QKE fabricates commercial-kitchen equipment in Chennai. We are building its quotation-to-production system: the master-data slices of the real Next.js and Express app are built, and the full nine-role workflow, from quotation to stores, runs as an HTML prototype.

Next.js 15React 18Redux ToolkitExpress+4
9Real-app slices shipped and verified (auth to product kinds)
Case study
Management dashboard with five KPI cards, an 'Every project' table with stages and ledger percentages, a margin card and an approvals list.Prototype
Enterprisefor Firetrix

Firetrix — Project-to-Close-Out ERP for a Fire-Protection Contractor

Firetrix is a Chennai fire-protection contractor. We mapped its work from enquiry to close-out and designed one system for it: a 32-document product and engineering plan, 12 design boards and 9 clickable role prototypes. It is a prototype — no application code has been written yet.

HTML & CSS design boardsInteractive HTML prototypesDesign tokensNext.js (planned)+3
12Design boards delivered (8 role boards + documents, mails, direction, components)
Case study
Got a project?

Let's build the
next one together

Tell us what you're trying to ship. We'll come back with a scope, a timeline, and a fixed price — usually within 48 hours.

Not ready for a full build? Start with a fixed-price Discovery Sprint, or get a code audit of an app someone else built.