Skip to Content
Public APIOrder Details Carousel

Order Details Carousel

Send a carousel where each card carries a complete WhatsApp Pay order details payload — itemised order, shipping address, totals, payment-option expiry. The customer can pay each order directly inside WhatsApp without leaving the chat.

Use this when you want to show multiple distinct orders (e.g. “Cake A” and “Cake B”) in one message, each independently payable.

Endpoint

POST https://apis.splashifypro.com/api/v1/public/message

Headers

HeaderValue
AuthorizationBasic YOUR_API_KEY
Content-Typeapplication/json

Request body

{ "phoneNumber": "9999999999", "callbackData": "wapay_carousel_001", "type": "Template", "template": { "name": "carousel_var", "languageCode": "en", "bodyValues": ["mj"], "carouselCards": [ { "headerValues": ["https://your-cdn.example.com/cake-strawberry.mp4"], "bodyValues": ["mj"], "buttonValues": {} }, { "headerValues": ["https://your-cdn.example.com/cake-chocolate.mp4"], "bodyValues": ["mj1"], "buttonValues": {} } ], "order_details": [ { "reference_id": "22july25mjwapaytemp111", "order_items": [ { "name": "Strawberry Cake", "quantity": 1, "amount": 1, "country_of_origin": "India" } ], "shipping_addresses": [ { "name": "Akhil Kumar", "phone_number": "919000090000", "address": "Bandra Kurla Complex", "city": "Mumbai", "state": "Maharastra", "in_pin_code": "400051", "house_number": "12", "tower_number": "5", "building_name": "One BKC", "landmark_area": "Near BKC Circle", "country": "IN" } ], "subtotal": 1, "discount": 0, "tax": 0, "shipping": 0, "total_amount": 1, "currency": "INR", "payment_option_expires_in": { "value": 15, "unit": "minutes", "expiration_message": "" } }, { "reference_id": "22july25mjwapaytemp2333", "order_items": [ { "name": "Chocolate Cake", "quantity": 1, "amount": 1, "country_of_origin": "India" } ], "shipping_addresses": [ { "name": "Akhil Kumar", "phone_number": "919000090000", "address": "Bandra Kurla Complex", "city": "Mumbai", "state": "Maharastra", "in_pin_code": "400051", "house_number": "12", "tower_number": "5", "building_name": "One BKC", "landmark_area": "Near BKC Circle", "country": "IN" } ], "subtotal": 1, "discount": 0, "tax": 0, "shipping": 0, "total_amount": 1, "currency": "INR", "payment_option_expires_in": { "value": 15, "unit": "minutes", "expiration_message": "" } } ] } }
FieldRequiredNotes
template.carouselCards[]yesSame shape as a regular carousel — header + body + (no) buttons
template.order_details[]yesOne entry per card — index aligned with carouselCards
order_details[].reference_idyesUnique id per order. Use this on your side to reconcile WhatsApp Pay webhooks
order_details[].order_items[]yesItemized list — name, quantity, amount, country_of_origin
order_details[].shipping_addresses[]conditionalMandatory for physical goods, optional for digital goods
order_details[].subtotal/discount/tax/shipping/total_amountyesNumbers, in the smallest currency unit (paise for INR)
order_details[].currencyyesISO 4217 — INR, USD, etc.
order_details[].payment_option_expires_inoptional{ value, unit (minutes/hours), expiration_message } — when the payment link expires

Example

The full request body shown above is a copy-pasteable example.

Successful response — 201 Created

{ "result": true, "message": "Message created successfully", "id": "8d620ba1-640f-42ee-a8dd-15363422144b" }

Tips

  • reference_id is your reconciliation key. It comes back on every WhatsApp Pay webhook. Generate it server-side and persist it before the API call.
  • Country codes in addresses use ISO 3166-1 alpha-2 (IN, US, BD).
  • Use Order Status to follow up after an order is paid / cancelled / shipped.
  • For a single-image variant of the same flow, see Order Details — Single Image.