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"
}
ParameterDescriptionExample
district
District of the delivery address. See below for the list of districts, cities, and countries.
Nasr City

Response

{
  "price": 50
}
ParameterDescriptionExample
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"
}
ParameterDescriptionExample
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
}
ParameterDescriptionExample
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"
}
ParameterDescriptionExample
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"
}
ParameterDescriptionExample
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.

ValueDescription
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.

ValueDescription
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.

ValueDescription
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.

Download JSON File

Ready to start your integration with Zammit?

Fill out the form to get started with your integration.

Fill out Form

ZAMMIT © 2024