Courier providers
The courier integration is a shared, versioned package. Each adapter maps its
vendor’s API onto one canonical shape (create_consignment / fetch_label /
parse_webhook, and vendor statuses → a canonical courier status), so switching
courier is a config change, never an edit.
What’s available
Section titled “What’s available”| Setting value | Courier |
|---|---|
pathao |
Pathao |
steadfast |
Steadfast |
redx |
RedX |
The settings
Section titled “The settings”| Setting | Purpose | Default | Where |
|---|---|---|---|
courier_provider |
The courier to use for this store | blank → the deployment default, then the first with credentials | Tenant config → Providers |
COURIER_DEFAULT_PROVIDER |
Deployment-wide default courier | "" (unset) |
.env |
| courier credentials | API keys for the courier | — | Integrations (encrypted) |
The active courier resolves in order: TenantConfig.courier_provider →
COURIER_DEFAULT_PROVIDER (.env) → the first courier that has credentials.
Wiring a courier
Section titled “Wiring a courier”- Add the courier’s credentials as an App integration — encrypted at rest automatically.
- Set
courier_providerin the tenant config (orCOURIER_DEFAULT_PROVIDERin.envfor a deployment-wide default). - For Steadfast, set the merchant portal Callback URL to
https://YOUR_API_HOST/api/couriers/webhook/steadfast/and paste the same Webhook secret (Auth Token) from Nudova’s Steadfast provider card into Steadfast’s Auth Token field. - For Pathao, set the portal Callback URL to
https://YOUR_API_HOST/api/couriers/webhook/pathao/and paste the same Webhook secret into Nudova’s Pathao provider card.
Status updates
Section titled “Status updates”Couriers push status to POST /api/couriers/webhook/<provider>/. Admin Refresh
tracking also polls Pathao (GET /orders/{id}) and Steadfast
(GET /status_by_cid/{id}) when a consignment is already booked.
Pathao webhook: set Callback URL to
https://YOUR_API_HOST/api/couriers/webhook/pathao/ and the same Webhook
secret in Pathao’s portal and in Nudova (Providers → Pathao). Pathao sends
X-PATHAO-Signature with that secret; Nudova echoes
X-Pathao-Merchant-Webhook-Integration-Secret on HTTP 200 (required by Pathao).
Steadfast webhook: set Callback URL to
https://YOUR_API_HOST/api/couriers/webhook/steadfast/ and the same Webhook
secret (Auth Token) in Steadfast’s portal and in Nudova. Steadfast sends
Authorization: Bearer … with that token (falls back to the API key if no
dedicated webhook secret is saved).
Partial delivery (partial_delivered / partial_delivery) advances the parcel
to delivered for fulfilment, but COD is not marked paid at the full booked
amount unless the courier reports a collected figure.
Test connection
Section titled “Test connection”All three couriers run a live check today: Pathao lists stores, Steadfast reads merchant balance, and RedX lists pickup stores. All three are free, read-only calls — the button says Connected when that round-trip succeeds.
Related: Provider packages · Payment providers · SMS provider · Phone-risk provider · COD & fraud review.