Place Order API

With Place Order API, you can place orders for plans 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 Schema

PathTypeDescription
dataobjectRoot request object.
data.productIdnumberProduct ID for the top-up plan.
data.quantitynumberQuantity of the top-up purchase (always 1 typically).
data.denominationnumberRecharge/top-up amount.
data.emailstringCustomer email for notifications.
data.tagstringOptional tracking tag.
data.poNumberstringClient-provided PO number (idempotency key).
data.notifyReceiverEmailnumberWhether user gets email notification (1 = yes).
data.notifyAdminEmailnumberWhether admin receives notification (1 = yes).
data.topupDataobjectMobile top-up specific parameters.
data.topupData.topupPhoneCodestringCountry code prefix (e.g., +91).
data.topupData.topupPhoneNumberstringMobile number to be recharged.

Response Schema

PathTypeDescription
dataobjectRoot response object.
data.placeOrderobjectPlace order result.
data.placeOrder.statusnumberAPI execution status (1 = success).
data.placeOrder.dataobjectComplete order details.
data.placeOrder.data.orderIdnumberUnique order ID.
data.placeOrder.data.orderTotalnumberOrder total (rounded).
data.placeOrder.data.rawOrderTotalnumberExact unrounded order amount.
data.placeOrder.data.orderDiscountstringDiscount amount applied.
data.placeOrder.data.rawOrderDiscountstringPrecise unrounded discount.
data.placeOrder.data.discountPercentstringDiscount percent.
data.placeOrder.data.currencyCodestringCurrency code.
data.placeOrder.data.currencyValuenumberCurrency conversion multiplier.
data.placeOrder.data.amountChargednumberFinal charged amount.
data.placeOrder.data.orderStatusstringOrder lifecycle status.
data.placeOrder.data.deliveryStatusstringDelivery status (pending, etc.).
data.placeOrder.data.tagstringTag from request.
data.placeOrder.data.quantitynumberQuantity ordered.
data.placeOrder.data.vouchersarrayAlways empty for top-up.
data.placeOrder.data.voucherDetailsarraySummary of top-up item(s).
data.placeOrder.data.voucherDetails[].orderIdnumberOrder ID.
data.placeOrder.data.voucherDetails[].productIdnumberProduct ID.
data.placeOrder.data.voucherDetails[].productNamestringName of the telecom/data top-up.
data.placeOrder.data.voucherDetails[].currencyCodestringCurrency code for the product.
data.placeOrder.data.voucherDetails[].productStatusstringStatus (pending).
data.placeOrder.data.voucherDetails[].denominationnumberRecharge amount.
data.placeOrder.data.voucherDetails[].vendorLogostringLogo of telecom vendor (may be empty).
data.placeOrder.data.orderMetaobjectMetadata passed in request.
data.placeOrder.data.orderMeta.emailstringEmail submitted during request.

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.

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