List delivery companies
List all delivery companies with optional filters
query Parameters
activeFilter by active status
Filter by active status
searchSearch in company name (EN/AR) and code
Search in company name (EN/AR) and code
limitMaximum number of results
Maximum number of results
offsetPagination offset
Pagination offset
List delivery companies › Responses
List of delivery companies
successcountNumber of items returned
Create delivery company
Create a new delivery company integration
Create delivery company › Request Body
namenameArcode^[a-z0-9_]+$ · requiredLowercase alphanumeric with underscores
websiteactiveapiEndpointapiTokenAPI authentication token
apiUserGuidTenant/user GUID for ZR Express
supportsHomeDeliverysupportsStopDeskautoValidateWhen true, orders are auto-validated on dispatch (locked at carrier). When false, orders stay editable. If omitted, a safe default is derived per provider.
notesproviderWhich carrier adapter serves this company. When omitted it is derived from the code.
The adapter's own settings (e.g. Yalidine: platform, fromWilayaName, proxyBaseUrl, proxySecret). Merged onto the stored settings; a secret sent back masked keeps the stored one; null removes a key.
Create delivery company › Responses
Delivery company created
successThird-party delivery company integration
Get delivery company
Get a single delivery company by ID
path Parameters
idDelivery company ID
Delivery company ID
Get delivery company › Responses
Delivery company details
successThird-party delivery company integration
Update delivery company
Update an existing delivery company
path Parameters
idDelivery company ID
Delivery company ID
Update delivery company › Request Body
namenameArcode^[a-z0-9_]+$websiteactiveapiEndpointapiTokenapiUserGuidsupportsHomeDeliverysupportsStopDeskautoValidatenotesproviderWhich carrier adapter serves this company. When omitted it is derived from the code.
The adapter's own settings (e.g. Yalidine: platform, fromWilayaName, proxyBaseUrl, proxySecret). Merged onto the stored settings; a secret sent back masked keeps the stored one; null removes a key.
Update delivery company › Responses
Delivery company updated
successThird-party delivery company integration
Delete delivery company
Delete a delivery company that never carried a parcel, with its API log and webhook inbox. A company that has carried parcels keeps their history: deactivate it instead.
path Parameters
idDelivery company ID
Delivery company ID
Delete delivery company › Responses
Delivery company deleted
successGet company stop desks
Read stop desks from DB (no live API call). Admin must sync first via POST .../sync-stop-desks
path Parameters
idDelivery company ID
Delivery company ID
query Parameters
wilayaIdFilter by wilaya ID
Filter by wilaya ID
activeOnlyFilter by active flag (default true)
Filter by active flag (default true)
Get company stop desks › Responses
Stop desks list
successSync carrier geo names
Fetch the carrier's own wilaya/commune name lists and build the per-carrier name map (exact strings the carrier matches parcel addresses against). Yalidine-only for now — carriers that match by name. Response reports matched and unmapped reference rows. Dispatch resolves our wilaya/commune IDs through this map before calling the carrier.
path Parameters
idDelivery company ID
Delivery company ID
Sync carrier geo names › Responses
Geo names synced
successTest carrier connection
Verifies the company's stored credentials against its carrier API. A negative outcome (invalid token, API access disabled) returns 200 with ok:false — the check itself succeeded. Provider support: ecotrack (all 82 companies) ✅ | others ❌ OPERATION_NOT_SUPPORTED.
path Parameters
idDelivery company ID
Delivery company ID
Test carrier connection › Responses
Connection check executed
successSync this company's open shipments now
Reads the carrier's history of the company's open shipments — up to 50 per request, the longest unsynced first — and records every status not recorded yet (a status already received by webhook or an earlier sync is not recorded twice). Pull-only carriers (EcoTrack platform, NOEST, Guepex) are also synced on a schedule every few minutes; this is the merchant's "now", for any carrier whose history can be read. Replaces reconcile-orders.
path Parameters
idDelivery company ID
Delivery company ID
Sync this company's open shipments now › Responses
What the sync found
successToggle stop desk active flag
Toggle the active flag on a single stop desk. Admin can deactivate stop desks that can't be serviced.
path Parameters
idDelivery company ID
Delivery company ID
codeStop desk code
Stop desk code
Toggle stop desk active flag › Responses
Stop desk toggled
successRegister ZR Express webhook
Registers a webhook endpoint with ZR Express via their API. Stores the endpointId and signing secret.
path Parameters
idDelivery company ID
Delivery company ID
Register ZR Express webhook › Responses
Webhook registered
successwebhookUrlendpointIdSave Yalidine webhook secret
Stores the Yalidine webhook secret key (entered manually after setting up webhook in Yalidine dashboard).
path Parameters
idDelivery company ID
Delivery company ID
Save Yalidine webhook secret › Request Body
secretWebhook secret key from Yalidine dashboard
Save Yalidine webhook secret › Responses
Secret saved
successList inbound webhook events
The company's webhook inbox, newest first: every event its carrier pushed, with what processing made of it — ok, ignored, unmatched (no shipment has that parcel), unknown_status (recorded, but a status Wocart does not interpret), deferred_settlement (a money event), error (to be retried at nextAttemptAt) or dead (tries spent). Each row names the shipment it was recorded on and its order. rawPayload is left out: the log's value is the outcome.
path Parameters
idDelivery company ID
Delivery company ID
query Parameters
limitPage size (1-100)
Page size (1-100)
offsetOffset for keyset-free pagination
Offset for keyset-free pagination
resultFilter by processing result — the operational lens: error and dead need attention, unmatched and unknown_status may need a parcel attached or a status mapped
Filter by processing result — the operational lens: error and dead need attention, unmatched and unknown_status may need a parcel attached or a status mapped
List inbound webhook events › Responses
Webhook events page
successProcess an inbox event again
Processes an event that ended in error, dead, unmatched or unknown_status again, now — after fixing the company's settings, attaching its parcel, or mapping its status. Its tries start over.
path Parameters
idDelivery company ID
Delivery company ID
eventIdInbox event id
Inbox event id
Process an inbox event again › Responses
What processing made of it this time
success