Trade/Compliance
CHA & Partner Coordination
Role assignment, the partner portal, and how external partners work their steps.
What it is
Getting a CHA (or any external partner) actually working a job is two separate mechanisms working together: a CHA directory for discovery, and a partner connection + role assignment pipeline for putting someone to work. This page covers both, and how the partner-facing side — the partner portal — is scoped so a partner only ever sees their own work.
The CHA directory
A global, public registry of licensed Customs House Agents — not scoped to your organization or brand, because this data belongs to everyone. Entries carry company and licence details (old/new CHA number, licence validity, GST/PAN), the customs house they operate at, and where they were sourced from (e.g. CCBA, BCHAA association data). It's a lookup tool for finding an agent's contact details by city, customs house, or name — it does not itself create a connection or a role assignment.
Connection vs. role assignment
A connection has to be active before a partner can be assigned a role: the per-job role picker only lists partners you're already connected to. See Trade Partners for how connections themselves work, and the Export & Import Job Engine doc for Tier 2 (Journey) role assignment in full.
Roles an external partner can fill
Six role types can be filled by an external, connected partner: freight forwarder, CHA, import CHA (destination-side customs), FHA (freight handling agent), inspection agency, and insurance provider. A nominated LC bank is deliberately not onboarded through this same flow — it remains a role filled by other means.
The partner portal
Partner accounts live outside your organization/tenant system entirely. A partner authenticates with their own JWT at /api/partner-portal/, and every job-related endpoint there is scoped to their active role assignment on that specific job — not to any organization membership. From the portal a partner can:
- 1
See only their jobs
The job list and job detail views resolve strictly through the partner's own PartnerAssignment rows. - 2
Act only on their own steps
Uploading a document or completing/waiving a checklist step is rejected with "That step is not assigned to you on this job" if it belongs to someone else. - 3
Add optional steps, never mandatory ones
A partner can add non-blocking steps if it helps their own workflow, but mandatory, platform-owned steps can only be added or removed by your team. - 4
See a partner-scoped activity feed
Their events view shows role assignments and their own team's actions — not your internal team's full activity feed.
Revoking a connection doesn't quietly orphan a job
If you revoke a connection while the partner still has an active role assignment on an in-flight job, the response tells you so — revoking is not silent about work still in progress.Related
New to this? Start with the CHA & Partner Coordination guide.