Skip to main content
POST
/
placeOrder
Place Order API
curl --request POST \
  --url https://stagingstores.xoxoday.com/chef/v1/oauth/api/placeOrder \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "query": "plumProAPI.mutation.placeOrder",
  "tag": "plumProAPI",
  "variables": {
    "data": {
      "productId": 15365,
      "quantity": 1,
      "denomination": 20,
      "email": "your.email@example.com",
      "contact": "+1-4705000000",
      "tag": "Rewarding",
      "poNumber": "PO12662",
      "notifyReceiverEmail": 1,
      "notifyAdminEmail": 0,
      "loungeData": {
        "firstName": "Kevin",
        "lastName": "Hank",
        "categoryType": "lounge",
        "flightDepartureDate": "23-01-2026"
      }
    }
  }
}
'
{
  "data": {
    "placeOrder": {
      "status": 1,
      "data": {
        "orderId": 98765432,
        "orderTotal": 20,
        "currencyCode": "USD",
        "amountCharged": 20,
        "orderStatus": "complete",
        "deliveryStatus": "pending",
        "quantity": 1,
        "voucherDetails": [
          {
            "orderId": 98765432,
            "productId": 15365,
            "productName": "JFK Airport Lounge",
            "currencyCode": "USD",
            "productStatus": "pending",
            "denomination": 20,
            "vendorLogo": "https://cdn.xoxoday.com/dragonpass.png"
          }
        ],
        "orderMeta": {
          "email": "your.email@example.com"
        }
      }
    }
  }
}

Documentation Index

Fetch the complete documentation index at: https://help-plum.xoxoday.com/llms.txt

Use this file to discover all available pages before exploring further.

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

PathTypeDescription
productIdnumberLounge product ID to be ordered.
quantitynumberNumber of lounge passes to purchase.
denominationnumberPrice/denomination of the lounge product.
emailstringCustomer’s email for order delivery/confirmation.
contactstringCustomer’s contact number.
tagstringOptional tag for internal tracking.
poNumberstringClient-generated PO number for idempotency.
notifyReceiverEmailnumberWhether receiver should get email notification (1 = yes, 0 = no).
notifyAdminEmailnumberWhether admin should receive notification (0 = no, 1 = yes).
loungeDataobjectLounge-specific metadata required for DragonPass/partner fulfillment.
loungeData.firstNamestringFirst name of the traveler.
loungeData.lastNamestringLast name of the traveler.
loungeData.categoryTypestringType of the product (lounge).
loungeData.flightDepartureDatestringTraveler’s flight departure date (DD-MM-YYYY).

Response Schema

PathTypeDescription
dataobjectRoot response object.
data.placeOrderobjectContainer for place order result.
data.placeOrder.statusnumberStatus of request (1 = success).
data.placeOrder.dataobjectOrder details object.
data.placeOrder.data.orderIdnumberUnique order ID generated by Xoxoday.
data.placeOrder.data.orderTotalnumberTotal order amount (rounded).
data.placeOrder.data.rawOrderTotalnumberPrecise unrounded order amount before rounding.
data.placeOrder.data.orderDiscountstringDiscount applied (string because blank possible).
data.placeOrder.data.rawOrderDiscountstringUnrounded discount component (may be blank).
data.placeOrder.data.discountPercentstringDiscount percentage applied.
data.placeOrder.data.currencyCodestringCurrency code for the order.
data.placeOrder.data.currencyValuenumberCurrency conversion multiplier
data.placeOrder.data.amountChargednumberFinal amount charged to the customer.
data.placeOrder.data.orderStatusstringOrder status (e.g., complete).
data.placeOrder.data.deliveryStatusstringDelivery status (e.g., pending, delivered).
data.placeOrder.data.tagstringCustom tag from request.
data.placeOrder.data.quantitynumberQuantity ordered.
data.placeOrder.data.vouchersarrayDelivered voucher codes
data.placeOrder.data.voucherDetailsarraySummary of voucher/lounge items.
data.placeOrder.data.voucherDetails[].orderIdnumberOrder ID.
data.placeOrder.data.voucherDetails[].productIdnumberLounge product ID.
data.placeOrder.data.voucherDetails[].productNamestringName of the lounge.
data.placeOrder.data.voucherDetails[].currencyCodestringCurrency code of the lounge product.
data.placeOrder.data.voucherDetails[].productStatusstringStatus for that product (pending, Delivered.).
data.placeOrder.data.voucherDetails[].denominationnumberLounge price/denomination.
data.placeOrder.data.voucherDetails[].vendorLogostringVendor’s logo URL (DragonPass logo, etc.).
data.placeOrder.data.orderMetaobjectAdditional metadata submitted in the order.
data.placeOrder.data.orderMeta.emailstringEmail address submitted for the lounge order.

Implementation Notes

  1. To avoid facing an error while placing an order, please pass the valid productID and denomination
  2. The maximum order quantity allowed for the products is 1 as mentioned in the “orderQuantityLimit” parameter in the GetVouchersAPI
  3. Should you wish to notify the recipient via email, please pass “1” in the “notifyReceiverEmail” parameter
  4. We recommend you store the “poNumber” that you pass in the request and the “orderID” you receive in the response
  5. 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.

Authorizations

Authorization
string
header
required

Authorization: Bearer <access_token>

Body

application/json
query
enum<string>
default:plumProAPI.mutation.placeOrder
required
Available options:
plumProAPI.mutation.placeOrder
tag
enum<string>
default:plumProAPI
required
Available options:
plumProAPI
variables
object
required

Response

Lounge order placed successfully.

data
object