Place Order API

The PlaceOrderAPI enables the client to place an order for Merchandise available with Xoxoday

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
dataobjectRoot request wrapper.
data.productIdstringProduct ID of the merchandise item.
data.quantitynumberQuantity of the merchandise item.
data.denominationnumberDenomination/price of the product.
data.emailstringCustomer email for notifications.
data.contactstringCustomer phone number.
data.tagstringCustom tag passed for tracking.
data.poNumberstringClient-generated PO number (idempotency key).
data.notifyReceiverEmailnumberWhether the receiver gets an email (1 = yes).
data.notifyAdminEmailnumberWhether admin gets an email notification (1 = yes).
data.shippingFirstNamestringShipping first name.
data.shippingLastNamestringShipping last name.
data.shippingContactNostringShipping contact number.
data.shippingCompanystringCompany name for shipping.
data.shippingAddress1stringPrimary shipping address.
data.shippingAddress2stringSecondary shipping address.
data.shippingCitystringShipping city.
data.shippingCountrystringShipping country.
data.shippingStatestringShipping state/province/region.
data.shippingPostcodestringPostal/ZIP code for the shipping address.

Response Parameter

PathTypeDescription
dataobjectRoot response object.
data.placeOrderobjectContainer for order response.
data.placeOrder.statusnumberRequest status (1 = success).
data.placeOrder.dataobjectFull order details.
data.placeOrder.data.orderIdnumberUnique order ID.
data.placeOrder.data.orderTotalnumberOrder total (rounded).
data.placeOrder.data.rawOrderTotalnumberPrecise unrounded order amount.
data.placeOrder.data.orderDiscountstringDiscount amount (blank if none).
data.placeOrder.data.rawOrderDiscountstringUnrounded discount (blank if none).
data.placeOrder.data.discountPercentstringDiscount percent applied.
data.placeOrder.data.currencyCodestringCurrency code used for pricing.
data.placeOrder.data.currencyValuenumberCurrency conversion multiplier.
data.placeOrder.data.amountChargednumberFinal amount charged.
data.placeOrder.data.orderStatusstringOrder lifecycle status (complete).
data.placeOrder.data.deliveryStatusstringDelivery status (pending).
data.placeOrder.data.tagstringTag passed from request.
data.placeOrder.data.quantitynumberQuantity ordered.
data.placeOrder.data.vouchersarrayAlways empty for merchandise (no instant code delivery).
data.placeOrder.data.voucherDetailsarraySummary of merchandise items ordered.
data.placeOrder.data.voucherDetails[].orderIdnumberOrder ID.
data.placeOrder.data.voucherDetails[].productIdnumberMerchandise product ID.
data.placeOrder.data.voucherDetails[].productNamestringProduct name.
data.placeOrder.data.voucherDetails[].currencyCodestringCurrency code of the merchandise.
data.placeOrder.data.voucherDetails[].productStatusstringStatus of merchandise fulfillment.
data.placeOrder.data.voucherDetails[].denominationnumberProduct denomination/price.

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 majority of the products is 10 unless mentioned otherwise in the "orderQuantityLimit" parameter in the GetVouchersAPI
  3. Certain brands require a phone number to process the order. You can refer to the "isPhoneNumberMandatory" parameter in the GetVouchersAPI to identify the products with this mandate
  4. Should you wish to notify the recipient via email, please pass "1" in the "notifyReceiverEmail" parameter
  5. We recommend you store the "poNumber" that you pass in the request and the "orderID" you receive in the response
  6. 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.

Language
Credentials
OAuth2
Click Try It! to start a request and see the response here!