Skip to content

Keeta Order Management API (v.1.0.0)

This API provides comprehensive order management capabilities for Keeta platform integration, including order operations, refund management, and real-time notifications.

Download OpenAPI description
Overview
Keeta Developer Website

https://developers.mykeeta.com/

Languages
Servers

https://open.mykeeta.com/api/open/

Endpoints

Request APIs - All endpoints for requesting order information and making updates

Operations

Webhooks

Webhooks - Webhook notifications sent by Keeta to third-party systems

Webhooks

MerchanSelfDelivery

The endpoint below is restricted to merchant self-delivery orders and is only available for updates after the merchant accepts the order. Orders that are completed or cancelled cannot be updated.
Availability: This API is available starting August 16, 2025.

Operations

Request

This endpoint allows merchants to notify the Keeta platform that a courier has picked up the order and the delivery is in progress for merchant self-delivery orders.

Notes:

  1. This API is exclusively for merchant self-delivery orders where the merchant manages their own delivery service.
  2. Calling this endpoint updates the order status to indicate that the courier has collected the order and delivery is underway.
  3. The courier information provided helps customers track their delivery and contact the delivery person if needed.
  4. This API can only be called after the order has been accepted by the merchant. It cannot be used to update orders that have been completed or cancelled.
Bodyapplication/jsonrequired
orderViewIdinteger(int64)required

Unique identifier for orders on Keeta platform

Example: 123456789
shopIdinteger(int64)required

Unique identifier of the Keeta store

Example: 987654321
courierInfoobject(CourierInfo)

Comprehensive courier information for self-delivery orders, including personal details, contact information, and vehicle specifications.

curl -i -X POST \
  https://open.mykeeta.com/api/open/order/dispatched \
  -H 'Content-Type: application/json' \
  -d '{
    "orderViewId": 123456789,
    "shopId": 987654321,
    "courierInfo": {
      "courierId": 123456,
      "courierName": "أحمد محمد",
      "courierPhone": "501234567",
      "courierVehicle": 3,
      "courierPhoneInterCode": "+966",
      "vehiclePlateNumber": "DXB-A-12345",
      "courierLastName": "محمد",
      "courierFirstName": "أحمد"
    }
  }'

Responses

Courier pickup notification successful

Bodyapplication/json
codeintegerrequired

Response Codes for Order Dispatched:

  • 0: Success - Courier diapatched notification successful
  • 109000000: Request parameter error (specific details in message field)
    • "merchantOrderViewId is null"
    • "shopId is null"
  • 209000101: Order does not exist
  • 2090006003: This order is not a merchant self-delivery order
  • 309000000: System error
Enum ValueDescription
0

The request was executed successfully.

Non-zero value

The request execution failed. Specific error details can be viewed in the message field.

Example: 0
messagestringrequired

Text description corresponding to the status code, explaining the operation result or error cause to users.

Example: "Success"
Response
application/json
{ "code": 0, "message": "Success" }

Request

This endpoint allows merchants to notify the Keeta platform that an order has been successfully delivered to the customer for merchant self-delivery orders.

Notes:

  1. This API is exclusively for merchant self-delivery orders where the merchant manages their own delivery service.
  2. Calling this endpoint marks the order as completed.
  3. Courier information can be updated if needed.
  4. This API does not support duplicate calls for the same order.
Bodyapplication/jsonrequired
orderViewIdinteger(int64)required

Unique identifier for orders on Keeta platform

Example: 123456789
shopIdinteger(int64)required

Unique identifier of the Keeta store

Example: 987654321
courierInfoobject(CourierInfo)

Comprehensive courier information for self-delivery orders, including personal details, contact information, and vehicle specifications.

curl -i -X POST \
  https://open.mykeeta.com/api/open/order/delivered \
  -H 'Content-Type: application/json' \
  -d '{
    "orderViewId": 123456789,
    "shopId": 987654321,
    "courierInfo": {
      "courierId": 123456,
      "courierName": "أحمد محمد",
      "courierPhone": "501234567",
      "courierVehicle": 3,
      "courierPhoneInterCode": "+966",
      "vehiclePlateNumber": "DXB-A-12345",
      "courierLastName": "محمد",
      "courierFirstName": "أحمد"
    }
  }'

Responses

Order delivery confirmation successful

Bodyapplication/json
codeintegerrequired

Response Codes for Order Delivered:

  • 0: Success - Order delivery delivered successful
  • 109000000: Request parameter error (specific details in message field)
    • "orderViewId is null"
    • "shopId is null"
  • 209000101: Order does not exist
  • 2090006003: This order is not a merchant self-delivery order
  • 309000000: System error
Enum ValueDescription
0

The request was executed successfully.

Non-zero value

The request execution failed. Specific error details can be viewed in the message field.

Example: 0
messagestringrequired

Text description corresponding to the status code, explaining the operation result or error cause to users.

Example: "Success"
Response
application/json
{ "code": 0, "message": "Success" }

Request

This endpoint allows merchants to update courier information for merchant self-delivery orders, including courier name, phone number, vehicle information, and other delivery-related details.

Notes:

  1. This API is exclusively for merchant self-delivery orders where the merchant manages their own delivery service.
  2. Updated courier information helps customers track their delivery and contact the delivery person.
  3. This API can be called multiple times to update different courier details as needed.
  4. At least one courier information field must be provided in the request.
  5. This API can only be called after the order has been accepted by the merchant. It cannot be used to update orders that have been completed or cancelled,
Bodyapplication/jsonrequired
orderViewIdinteger(int64)required

Unique identifier for orders on Keeta platform

Example: 123456789
shopIdinteger(int64)required

Unique identifier of the Keeta store

Example: 987654321
courierInfoobject(CourierInfo)required

Comprehensive courier information for self-delivery orders, including personal details, contact information, and vehicle specifications.

courierInfo.​courierIdinteger(int64)

Unique identifier for the courier, generated by the vendor system

Example: 123456
courierInfo.​courierNamestring

Full name of the courier responsible for delivery

Example: "أحمد محمد"
courierInfo.​courierPhonestring

Primary contact phone number of the courier

Example: "501234567"
courierInfo.​courierVehicleinteger

Type of vehicle used by the courier for delivery:

Enum ValueDescription
1

Walking - Courier delivers on foot

2

Bicycle - Courier uses bicycle for delivery

3

Motorcycle - Courier uses motorcycle for delivery

4

Private Car - Courier uses private vehicle for delivery

Example: 3
courierInfo.​courierPhoneInterCodestring

International dialing code for the courier phone number (e.g., "+966" for Saudi Arabia)

Example: "+966"
courierInfo.​vehiclePlateNumberstring

License plate number of the delivery vehicle

Example: "DXB-A-12345"
courierInfo.​courierLastNamestring

Last name (family name) of the courier

Example: "محمد"
courierInfo.​courierFirstNamestring

First name (given name) of the courier

Example: "أحمد"
curl -i -X POST \
  https://open.mykeeta.com/api/open/order/updateCourierInfo \
  -H 'Content-Type: application/json' \
  -d '{
    "orderViewId": 123456789,
    "shopId": 987654321,
    "courierInfo": {
      "courierId": 123456,
      "courierName": "أحمد محمد",
      "courierPhone": "501234567",
      "courierVehicle": 3,
      "courierPhoneInterCode": "+966",
      "vehiclePlateNumber": "DXB-A-12345",
      "courierLastName": "محمد",
      "courierFirstName": "أحمد"
    }
  }'

Responses

Courier information update successful

Bodyapplication/json
codeintegerrequired

Response Codes for Update Courier Info:

  • 0: Success - Courier information update successful
  • 109000000: Request parameter error (specific details in message field)
    • "orderVieId is null"
    • "shopId is null"
  • 209000101: Order does not exist
  • 2090006003: This order is not a self-delivery order
  • 2090006004: Order status does not support synchronizing delivery information
  • 309000000: System error
Enum ValueDescription
0

The request was executed successfully.

Non-zero value

The request execution failed. Specific error details can be viewed in the message field.

Example: 0
messagestringrequired

Text description corresponding to the status code, explaining the operation result or error cause to users.

Example: "Success"
Response
application/json
{ "code": 0, "message": "Success" }

Update Delivery Tracking Information

Request

This endpoint allows merchants to provide real-time delivery tracking updates for merchant self-delivery orders, including ETA(estimated time of arrival) and courier location coordinates.

Notes:

  1. This API is exclusively for merchant self-delivery orders where the merchant manages their own delivery service.
  2. Regular updates help improve customer experience by providing accurate delivery estimates and tracking.
  3. Coordinate information should use GPS coordinates with precision of 6 decimal places for accuracy.
  4. At least one tracking parameter (besides orderViewId) must be provided in each request.
  5. Time Range Requirements: estimatedTimeStampLeft and estimatedTimeStampRight must both have values or both be omitted. You cannot provide only one of these fields.
  6. Coordinate Requirements: courierCoordinateLng and courierCoordinateLat must both have values or both be omitted. You cannot provide only one coordinate.
Bodyapplication/jsonrequired
orderViewIdinteger(int64)required

Unique identifier for orders on Keeta platform

Example: 1186341416633223
estimatedTimeStampLeftinteger(int64)

Left boundary of estimated delivery time range in Unix timestamp milliseconds. Must be provided together with estimatedTimeStampRight or both omitted.

Example: 1754432190391
estimatedTimeStampRightinteger(int64)

Right boundary of estimated delivery time range in Unix timestamp milliseconds. Must be provided together with estimatedTimeStampLeft or both omitted.

Example: 1754432190391
estimatedTimeStampinteger(int64)

Estimated delivery time in Unix timestamp milliseconds

Example: 1754432190391
courierCoordinateLngnumber(double)

Courier longitude coordinate (GPS), precision recommended to 6 decimal places. Must be provided together with courierCoordinateLat or both omitted.

Example: 103.819998
courierCoordinateLatnumber(double)

Courier latitude coordinate (GPS), precision recommended to 6 decimal places. Must be provided together with courierCoordinateLat or both omitted.

Example: 51.296999
curl -i -X POST \
  https://open.mykeeta.com/api/open/delivery/merchant/self/delivery/callback \
  -H 'Content-Type: application/json' \
  -d '{
    "orderViewId": 1186341416633223,
    "estimatedTimeStampLeft": 1754432190391,
    "estimatedTimeStampRight": 1754432190391,
    "estimatedTimeStamp": 1754432190391,
    "courierCoordinateLng": 103.819998,
    "courierCoordinateLat": 51.296999
  }'

Responses

Delivery tracking information update successful

Bodyapplication/json
codeintegerrequired

Response Codes for Update Delivery Tracking:

  • 0: Success - Delivery tracking information update successful
  • 111120000: Internal error, please try again later
  • 111120001: Order ID cannot be empty / Order ID must be numeric
  • 111120001: At least one valid field must be provided besides order ID and region
  • 111120001: Estimated delivery time boundaries must both exist or both be absent
  • 111120001: Left boundary of estimated delivery time cannot be greater than right boundary
  • 111120001: Longitude and latitude coordinates must both exist or both be absent
  • 111120001: Invalid longitude or latitude coordinates
  • 111120001: Order does not exist
  • 111120001: Order status cannot be updated with delivery information / Order is not merchant self delivery
Enum ValueDescription
0

The request was executed successfully.

Non-zero value

The request execution failed. Specific error details can be viewed in the message field.

Example: 0
messagestringrequired

Text description corresponding to the status code, explaining the operation result or error cause to users.

Example: "Success"
Response
application/json
{ "code": 0, "message": "Success" }