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",
"tag": "Rewarding",
"poNumber": "PO12662",
"notifyReceiverEmail": 1,
"notifyAdminEmail": 0,
"performOperatorValidation": 0,
"userMeta": {
"topupPhoneCode": "+91",
"topupPhoneNumber": "9857535678"
}
}
}
}
'{
"data": {
"placeOrder": {
"status": 123,
"data": {
"orderId": 123,
"orderTotal": 123,
"currencyCode": "<string>",
"amountCharged": 123,
"orderStatus": "<string>",
"deliveryStatus": "<string>",
"quantity": 123,
"voucherDetails": [
{
"orderId": 123,
"productId": 123,
"productName": "<string>",
"currencyCode": "<string>",
"productStatus": "<string>",
"denomination": 123
}
]
}
}
}
}Place a mobile top-up order. userMeta with recipient phone details is required. Set performOperatorValidation: 1 to validate the operator before placing the order.
Real URL: POST https://accounts.xoxoday.com/chef/v1/oauth/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",
"tag": "Rewarding",
"poNumber": "PO12662",
"notifyReceiverEmail": 1,
"notifyAdminEmail": 0,
"performOperatorValidation": 0,
"userMeta": {
"topupPhoneCode": "+91",
"topupPhoneNumber": "9857535678"
}
}
}
}
'{
"data": {
"placeOrder": {
"status": 123,
"data": {
"orderId": 123,
"orderTotal": 123,
"currencyCode": "<string>",
"amountCharged": 123,
"orderStatus": "<string>",
"deliveryStatus": "<string>",
"quantity": 123,
"voucherDetails": [
{
"orderId": 123,
"productId": 123,
"productName": "<string>",
"currencyCode": "<string>",
"productStatus": "<string>",
"denomination": 123
}
]
}
}
}
}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
| Path | Type | Description |
|---|---|---|
| data | object | Root request object. |
| data.productId | number | Product ID for the top-up plan. |
| data.quantity | number | Quantity of the top-up purchase (always 1 typically). |
| data.denomination | number | Recharge/top-up amount. |
| data.email | string | Customer email for notifications. |
| data.tag | string | Optional tracking tag. |
| data.poNumber | string | Client-provided PO number (idempotency key). |
| data.notifyReceiverEmail | number | Whether user gets email notification (1 = yes). |
| data.performOperatorValidation | boolean | Performs operator validation. |
| data.notifyAdminEmail | number | Whether admin receives notification (1 = yes). |
| data.userMeta | object | Mobile top-up specific parameters. |
| data.topupData.topupPhoneCode | string | Country code prefix (e.g., +91). |
| data.topupData.topupPhoneNumber | string | Mobile number to be recharged. |
| Path | Type | Description |
|---|---|---|
| data | object | Root response object. |
| data.placeOrder | object | Place order result. |
| data.placeOrder.status | number | API execution status (1 = success). |
| data.placeOrder.data | object | Complete order details. |
| data.placeOrder.data.orderId | number | Unique order ID. |
| data.placeOrder.data.orderTotal | number | Order total (rounded). |
| data.placeOrder.data.rawOrderTotal | number | Exact unrounded order amount. |
| data.placeOrder.data.orderDiscount | string | Discount amount applied. |
| data.placeOrder.data.rawOrderDiscount | string | Precise unrounded discount. |
| data.placeOrder.data.discountPercent | string | Discount percent. |
| data.placeOrder.data.currencyCode | string | Currency code. |
| data.placeOrder.data.currencyValue | number | Currency conversion multiplier. |
| data.placeOrder.data.amountCharged | number | Final charged amount. |
| data.placeOrder.data.orderStatus | string | Order lifecycle status. |
| data.placeOrder.data.deliveryStatus | string | Delivery status (pending, etc.). |
| data.placeOrder.data.tag | string | Tag from request. |
| data.placeOrder.data.quantity | number | Quantity ordered. |
| data.placeOrder.data.vouchers | array | Always empty for top-up. |
| data.placeOrder.data.voucherDetails | array | Summary of top-up item(s). |
| data.placeOrder.data.voucherDetails[].orderId | number | Order ID. |
| data.placeOrder.data.voucherDetails[].productId | number | Product ID. |
| data.placeOrder.data.voucherDetails[].productName | string | Name of the telecom/data top-up. |
| data.placeOrder.data.voucherDetails[].currencyCode | string | Currency code for the product. |
| data.placeOrder.data.voucherDetails[].productStatus | string | Status (pending). |
| data.placeOrder.data.voucherDetails[].denomination | number | Recharge amount. |
| data.placeOrder.data.voucherDetails[].vendorLogo | string | Logo of telecom vendor (may be empty). |
| data.placeOrder.data.orderMeta | object | Metadata passed in request. |
| data.placeOrder.data.orderMeta.email | string | Email submitted during request. |
Learn how to manage webhooks to receive order status updates for delayed product types.
Authorization: Bearer <access_token>
Top-up order placed successfully.
Show child attributes