Welcome to Zammit Courier Integration
Expand your merchant network with Zammit
We provide a seamless integration experience for couriers to connect with our vast network of merchants.
APIs
To authenticate API requests, include an Authorization header with the value "Bearer <api_key>". The API key should be obtained from the courier system (You should instruct merchants how to get it from the dashboard) and then it should be added to Zammit's dashboard.
Authorization: Bearer <api_key>
Calculate Shipping Fees
POST
/calculate_shipping_fees
This endpoint will be called at the checkout to calculate the shipping fees based on the district. A default could be configured for all merchants if this fails.
Request
{ "district": "Nasr City" }
Parameter | Description | Example |
---|---|---|
district | District of the delivery address. See below for the list of districts, cities, and countries. | Nasr City |
Response
{ "price": 50 }
Parameter | Description | Example |
---|---|---|
price | The calculated shipping fees. | 50 |
Submit Shipment
POST
/submit_shipment
This endpoint will be either called directly after the order is placed to submit the shipment details to the courier service or when the merchant clicks on the "Send to Courier" button in their dashboard.
Request
{ "country": "Egypt", "city": "Cairo", "district": "Nasr City", "address": "34, 11 Hassam El Maamon St.", "notes": "Please call before delivery.", "name": "Paul Ashraf", "phone": "01229117764", "total": 245, "amount_to_be_collected": 245, "weight": 2, "id": 12947298, "payment_method": "cash_on_delivery" }
Parameter | Description | Example |
---|---|---|
country | Country of the delivery address. See below for the list of districts, cities, and countries. | Egypt |
city | City of the delivery address. See below for the list of districts, cities, and countries. | Cairo |
district | District of the delivery address. See below for the list of districts, cities, and countries. | Nasr City |
address | Delivery address, including all other details we collected in the checkout. | 34, 11 Hassam El Maamon St. |
notes | Added information about the shipment for the address. | Please call before delivery. |
name | Customer name. | Paul Ashraf |
phone | Customer phone number. | 01229117764 |
total | Total price of the order. Includes shipping fees, taxes, and discounts. | 245 |
amount_to_be_collected | The amount to be collected from the customer. This could be zero if the customer paid online or the full amount if the customer chose cash on delivery. | 245 |
weight | The total weight of the shipment in kilograms. This could be calculated by summing the weights of all the items in the order. | 2 |
id | Unique identifier for the order. | 12947298 |
payment_method | The payment method used by the customer. See below for the list of payment methods. | cash_on_delivery |
Response
{ "id": 128934 }
Parameter | Description | Example |
---|---|---|
id | Unique identifier for the shipment on the courier service. This will be used to reference this order on the courier system. | 128934 |
Get Airway Bill
GET
/airway_bill/:id
This endpoint should render an HTML page with the airway bill for the shipment. If this is not available, it can be configured to use the default one by Zammit.
Cancel Purchase
PUT
/purchase/:id
This endpoint will be called if the merchant decides to cancel the order. This should cancel the order on the courier service. If this is not possible (order is in transit), this should return an error (4XX or 5XX response).
Request
{ "status": "cancelled" }
Parameter | Description | Example |
---|---|---|
status | This will always be provided as `cancelled`. | cancelled |
Zammit Callback
PATCH
api/v1/update_courier_purchase_status/:id
This endpoint will by the courier to update the status on Zammit. This is crucial for the merchant to know the status of the order. This should be called when the status of the order on Zammit. In order to verify the request from your system you should include a {secret} header which is the SHA256 hash of the request body with a secret key that will be provided by Zammit.
Request
{ "fulfillment_status": "on_route", "payment_status": "unpaid" }
Parameter | Description | Example |
---|---|---|
fulfillment_status | The status of the order on the courier service. See below for the list of statuses. | on_route |
payment_status | The status of the order payment on the courier service. See below for the list of statuses. | unpaid |
System Entities
payment_method
The payment method used for the order.
Value | Description |
---|---|
cash_on_delivery | Payment is made in cash upon delivery of the goods. |
online | Payment is made online through Paymob payment system. |
valu | Payment is made via Valu payment system. |
card_on_delivery | Payment is made using a card upon delivery of the goods. |
sympl | Payment is made via Sympl payment system. |
bank_installments | Payment is made in installments through a bank. |
tabby | Payment is made via Tabby payment system. |
souhoola | Payment is made via Souhoola payment system. |
forsa | Payment is made via Forsa payment system. |
mobile_wallets | Payment is made through mobile wallet applications. |
geidea | Payment is made via Geidea payment system. |
gccpay | Payment is made via GCCPay payment system. |
bank_transfer | Payment is made via bank transfer. |
stripe | Payment is made via Stripe payment system. |
paytabs | Payment is made via PayTabs payment system. |
payment_status
The status of the payment for the order.
Value | Description |
---|---|
paid | Payment has been successfully processed. |
unpaid | Payment has not been made yet. |
refunded | Payment has been refunded. |
fulfillment_status
The status of the order fulfillment.
Value | Description |
---|---|
unfulfilled | The order has not been fulfilled yet. |
on_route | The order is currently on route for delivery. |
delivered | The order has been successfully delivered. |
cancelled | The order has been cancelled. |
delivery_failed | Delivery of the order failed. |
at_warehouse | The order is currently at the warehouse. |
package_returned | The package has been returned to the sender. |
ready_for_pickup | The order is ready for pickup. |
delayed | The order delivery is delayed. |
Zammit Locations
You can download an JSON file containing all available countries, cities, and districts.

Ready to start your integration with Zammit?
Fill out the form to get started with your integration.
Fill out FormZAMMIT © 2024