🇫🇷 Version française : lire ici
If you have built an online store in Algeria, you know the drill: every delivery carrier has its own API, and none of them look alike.
Yalidine : X-API-ID / X-API-TOKEN headers, a mandatory origin wilaya, page_size pagination.
ZR Express : X-Api-Key + X-Tenant , a create endpoint that only returns a UUID, territory lookups through POST search endpoints.
DHD, Anderson, World Express (all on the Ecotrack platform): Bearer token, query-string parameters, orders that must be validated after creation.
Maystro : no tracking API at all — everything comes through webhooks.
And every one of them speaks its own status language: "En préparation", OrderReceived , 41 …
So I built dz-delivery , an open-source (MIT) SDK that exposes one interface for all of these carriers, in TypeScript and PHP .
Install
npm install @dz-delivery/core # Node.js ≥ 18, zero runtime dependencies composer require dz-delivery/sdk # PHP ≥ 8.2
Enter fullscreen mode
Exit fullscreen mode
Same code, any…