post
https://accounts.xoxoday.com/chef/v1/oauth/api/
With Place Order API, you can place orders of Lounge available in the Catalog.
A unique reference ID needs to be sent for every unique order in the "poNumber" parameter
We strongly recommend storing the request and response of every "PlaceOrderAPI" call
Request Parameter
| Path | Type | Description |
|---|---|---|
| productId | number | Lounge product ID to be ordered. |
| quantity | number | Number of lounge passes to purchase. |
| denomination | number | Price/denomination of the lounge product. |
| string | Customer’s email for order delivery/confirmation. | |
| contact | string | Customer’s contact number. |
| tag | string | Optional tag for internal tracking. |
| poNumber | string | Client-generated PO number for idempotency. |
| notifyReceiverEmail | number | Whether receiver should get email notification (1 = yes, 0 = no). |
| notifyAdminEmail | number | Whether admin should receive notification (0 = no, 1 = yes). |
| loungeData | object | Lounge-specific metadata required for DragonPass/partner fulfillment. |
| loungeData.firstName | string | First name of the traveler. |
| loungeData.lastName | string | Last name of the traveler. |
| loungeData.categoryType | string | Type of the product (lounge). |
| loungeData.flightDepartureDate | string | Traveler’s flight departure date (DD-MM-YYYY). |
Response Schema
| Path | Type | Description |
|---|---|---|
| data | object | Root response object. |
| data.placeOrder | object | Container for place order result. |
| data.placeOrder.status | number | Status of request (1 = success). |
| data.placeOrder.data | object | Order details object. |
| data.placeOrder.data.orderId | number | Unique order ID generated by Xoxoday. |
| data.placeOrder.data.orderTotal | number | Total order amount (rounded). |
| data.placeOrder.data.rawOrderTotal | number | Precise unrounded order amount before rounding. |
| data.placeOrder.data.orderDiscount | string | Discount applied (string because blank possible). |
| data.placeOrder.data.rawOrderDiscount | string | Unrounded discount component (may be blank). |
| data.placeOrder.data.discountPercent | string | Discount percentage applied. |
| data.placeOrder.data.currencyCode | string | Currency code for the order. |
| data.placeOrder.data.currencyValue | number | Currency conversion multiplier |
| data.placeOrder.data.amountCharged | number | Final amount charged to the customer. |
| data.placeOrder.data.orderStatus | string | Order status (e.g., complete). |
| data.placeOrder.data.deliveryStatus | string | Delivery status (e.g., pending, delivered). |
| data.placeOrder.data.tag | string | Custom tag from request. |
| data.placeOrder.data.quantity | number | Quantity ordered. |
| data.placeOrder.data.vouchers | array | Delivered voucher codes |
| data.placeOrder.data.voucherDetails | array | Summary of voucher/lounge items. |
| data.placeOrder.data.voucherDetails[].orderId | number | Order ID. |
| data.placeOrder.data.voucherDetails[].productId | number | Lounge product ID. |
| data.placeOrder.data.voucherDetails[].productName | string | Name of the lounge. |
| data.placeOrder.data.voucherDetails[].currencyCode | string | Currency code of the lounge product. |
| data.placeOrder.data.voucherDetails[].productStatus | string | Status for that product (pending, Delivered.). |
| data.placeOrder.data.voucherDetails[].denomination | number | Lounge price/denomination. |
| data.placeOrder.data.voucherDetails[].vendorLogo | string | Vendor’s logo URL (DragonPass logo, etc.). |
| data.placeOrder.data.orderMeta | object | Additional metadata submitted in the order. |
| data.placeOrder.data.orderMeta.email | string | Email address submitted for the lounge order. |
Implementation Notes
- To avoid facing an error while placing an order, please pass the valid productID and denomination
- The maximum order quantity allowed for the products is 1 as mentioned in the "orderQuantityLimit" parameter in the GetVouchersAPI
- Should you wish to notify the recipient via email, please pass "1" in the "notifyReceiverEmail" parameter
- We recommend you store the "poNumber" that you pass in the request and the "orderID" you receive in the response
- Should you get a 5xx error from the PlaceOrderAPI, please call GetOrderDetails and confirm if an order exists using the poNumber. If there's no order against the poNumber, you can go ahead and place another order
Learn how to manage webhooks to receive order status updates for delayed product types.
