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).
Related: Payment providers · SMS provider · COD & fraud review.