Skip to main content

Accept Order

This endpoint allows vendors to acknowledge and accept an incoming order in the Presto system.

Overview

When a new order is received (typically notified via webhook), you must accept it to confirm that you can fulfill it. Accepting the order moves it to the next stage in the Presto system and notifies the customer.

Endpoint Details

Method: POST
URL: /api/developer/v1/orders/{orderId}/accept
Purpose: Confirm that you will fulfill the order

Time Limit

Orders usually need to be accepted within a specific timeframe (e.g., 5 minutes) after being received. Failure to accept within the timeframe may lead to automatic cancellation.

Request Specification

Path Parameters

ParameterTypeRequiredDescription
orderIdstring / integerYesThe unique identifier of the order to accept

Request Body

No request body is required for non-virtual orders.

For virtual orders, include the voucher details for each order item:

FieldTypeRequiredDescription
itemsarray[object]YesThe virtual items included in the order
items[].order_item_idstringYesThe order item ID received in the order_created webhook
items[].secret_codestringYesThe secret code or PIN used to redeem the virtual item
items[].serial_numberstringYesThe serial number assigned to the virtual item

Example Request

POST /api/developer/v1/orders/12345/accept
Authorization: Bearer <your-token>
Accept: application/json
Content-Type: application/json

{
"items": [
{
"order_item_id": "35361",
"secret_code": "ABCD-EFGH-IJKL",
"serial_number": "SN-123456789"
}
]
}

Response Specification

Success Response

200 OK

A successful response indicates the order was accepted.

{
"data": {
"id": "ORDER_123",
"service": "shop",
"status": {
"key": "pending",
// ...other status fields...
},
"total": 0,
"currency": "LYD",
"created_at": "2025-01-01T00:00:00+00:00"
// ...other fields...
}
}

Error Responses

401 Unauthorized - Authentication issues

{
"status": "error",
"message": "Unauthenticated"
}

404 Not Found - Order not found

{
"status": "error",
"message": "Order not found"
}

400 Bad Request - Order state error

{
"status": "error",
"message": "Order cannot be accepted in its current state"
}

Implementation Tips

Best Practices
  • Call this endpoint promptly after receiving a new order notification
  • Implement proper error handling for state conflicts
  • If acceptance fails due to a transient error, implement a retry mechanism with backoff

Next Steps

After successfully accepting an order, prepare it for the customer and then use the Ready Order endpoint to indicate when it's prepared and ready for pickup or delivery.