Skip to content

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.

Setting value Courier
pathao Pathao
steadfast Steadfast
redx RedX
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.

  1. Add the courier’s credentials as an App integration — encrypted at rest automatically.
  2. Set courier_provider in the tenant config (or COURIER_DEFAULT_PROVIDER in .env for a deployment-wide default).
  3. 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.
  4. 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.

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.

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.