Send WhatsApp interactive order-details message Early access

Send an interactive order-details message to a single recipient.
An order-details message is a structured message containing essential information about the customer's selected products. Alternatively, a single or multi-product interactive message can serve this purpose.
Interactive order-details messages can only be successfully delivered if the recipient has contacted the business within the last 24 hours, otherwise template message should be used.
The API response will not contain the final delivery status, use Delivery Reports instead.

Please log in to see full path URL. Learn why.
post
/whatsapp/1/message/interactive/order-details
Request rate limit:
4000 requests / second (per account)
Request Body schema:
application/json
collapse all -
from
required
string [ 1 .. 24 ] characters

Registered WhatsApp sender number. Must be in international format and comply with WhatsApp's requirements.

to
required
string [ 1 .. 24 ] characters

Message recipient number. Must be in international format.

messageId
string [ 0 .. 100 ] characters

The ID that uniquely identifies the message sent.

content
required
object

The content object to build a message that will be sent.

body
required
object

Body of a message containing one or more interactive elements.

text
required
string [ 1 .. 1024 ] characters

Content of the message body.

action
required
object

Allows you to specify order details.

payment
required
object

Payment of the order.

type
required
string
id
required
string [ 1 .. 25 ] characters

Unique identifier of the payment.

productDescription
required
string [ 1 .. 100 ] characters

Brief description of products in this order.

customerFirstName
required
string [ 1 .. 60 ] characters

Customer's first name.

customerLastName
string [ 0 .. 20 ] characters

Customer's last name.

customerEmail
required
string [ 1 .. 50 ] characters

Customer's email.

callbackData
Array of strings [ 0 .. 5 ] items

List of custom parameters corresponding to the transaction.

paymentConfiguration
string [ 1 .. 60 ] characters

Name of the WhatsApp payment configuration to be used for this order. Can be omitted for Brazil PIX and must be omitted for Brazil link and UPI Intent payment.

orderCurrency
required
string
Enum: "INR" "BRL"

Order currency.

orderType
required
string
Enum: "PHYSICAL_GOODS" "DIGITAL_GOODS"

Type of the goods offered in the order.

totalAmount
required
object
value
required
integer <int32>

Value multiplied by the offset (100 for INR and BRL).

order
required
object

The order details.

catalogId
string

The ID that uniquely identifies the catalog registered with Facebook and connected to the WhatsApp Business Account the sender belongs to.

items
required
Array of objects

An array of items in the order.

Array
retailerId
required
string

Product-unique identifier, as defined in catalog.

name
required
string [ 1 .. 60 ] characters

Name of the item.

amount
required
object
value
required
integer <int32>

Value multiplied by the offset (100 for INR and BRL).

saleAmount
object
value
required
integer <int32>

Value multiplied by the offset (100 for INR and BRL).

quantity
required
integer <int32>

The number of items.

originCountry
string

Country of origin. Required when catalogId is not provided. It's supported only for UPI PayU payments.

importerName
string

Importer name. Required when catalogId is not provided. It's supported only for UPI PayU payments.

importerAddress
object

Importer address. Required when catalogId is not provided. It's supported only for UPI PayU payments.

firstAddressLine
string

First line of the address.

secondAddressLine
string

Second line of the address.

city
string

City.

zoneCode
string

Zone code.

postalCode
string

Postal code.

countryCode
string

Country code.

subtotal
required
object
value
required
integer <int32>

Value multiplied by the offset (100 for INR and BRL).

tax
required
object
value
required
integer <int32>

Value multiplied by the offset (100 for INR and BRL).

description
string [ 0 .. 60 ] characters

Description of the value.

shipping
object
value
required
integer <int32>

Value multiplied by the offset (100 for INR and BRL).

description
string [ 0 .. 60 ] characters

Description of the value.

discount
object

Discount of the order.

amount
required
object
value
required
integer <int32>

Value multiplied by the offset (100 for INR and BRL).

description
string [ 0 .. 60 ] characters

Description of the value.

programName
string [ 0 .. 60 ] characters

Discount program name.

orderExpiration
object

Expiration of the order.

expirationSeconds
required
integer <int64> >= 360

Order expiration time in seconds, at least 360.

description
required
string [ 0 .. 120 ] characters

Text explanation of expiration.

orderDetailsType
string
Value: "QUICK_PAY"

A quick payment option bypassing the review step. Applicable for PG PayU and PG Razorpay.

header
object

Header of a message containing one or more interactive elements.

type
required
string
mediaUrl
required
string [ 1 .. 2048 ] characters

URL of an image sent in the header of an Order Detail message. Must be a valid URL starting with https:// or http://. Supported image types are JPG, JPEG, PNG. Maximum image size is 5MB.

footer
object

Footer of a message containing one or more interactive elements.

text
required
string [ 1 .. 60 ] characters

Content of the message footer.

callbackData
string [ 0 .. 4000 ] characters

Custom client data that will be included in a Delivery Report.

notifyUrl
string [ 0 .. 2048 ] characters

The URL on your callback server to which delivery and seen reports will be sent. Delivery report format, Seen report format.

urlOptions
object

Sets up URL shortening and tracking feature.

shortenUrl
boolean
Default: true

Enable shortening of the URLs within a message. Set this to true, if you want to set up other URL options.

trackClicks
boolean
Default: true

Enable tracking of short URL clicks within a message: which URL was clicked, how many times, and by whom.

trackingUrl
string

The URL of your callback server on to which the Click report will be sent.

removeProtocol
boolean
Default: false

Remove a protocol, such as https://, from links to shorten a message. Note that some mobiles may not recognize such links as a URL.

customDomain
string

Select a predefined custom domain to use when generating a short URL.

entityId
string [ 0 .. 255 ] characters

Required for entity use in a send request for outbound traffic. Returned in notification events. For more details, see our documentation.

applicationId
string [ 0 .. 255 ] characters

Required for application use in a send request for outbound traffic. Returned in notification events. For more details, see our documentation.

Responses

200

Message accepted for delivery

400

Bad request

401

Unauthorized

403

Forbidden

429

Too Many Requests

500

Internal Server Error

Request samples

Content type
application/json
Example
Copy
Collapse all
{
  • "from": "441134960000",
  • "to": "441134960001",
  • "messageId": "a28dd97c-1ffb-4fcf-99f1-0b557ed381da",
  • "content":
    {
    • "body":
      {
      • "text": "Some text"
      },
    • "action":
      {
      • "payment":
        {
        • "type": "UPI_PAYU",
        • "id": "fd3e847h2",
        • "productDescription": "tshirt100",
        • "customerFirstName": "John",
        • "customerLastName": "Smith",
        • "customerEmail": "John.Smith@example.com",
        • "callbackData":
          [
          • "customData1",
          • "customData2",
          • "customData3",
          • "customData4",
          • "customData5"
          ]
        },
      • "paymentConfiguration": "payment-config",
      • "orderCurrency": "INR",
      • "orderType": "DIGITAL_GOODS",
      • "totalAmount":
        {
        • "value": 21000
        },
      • "order":
        {
        • "catalogId": "1",
        • "items":
          [
          • {
            • "retailerId": "1",
            • "name": "discounted product",
            • "amount":
              {
              • "value": 10000
              },
            • "saleAmount":
              {
              • "value": 5000
              },
            • "quantity": 2
            },
          • {
            • "retailerId": "2",
            • "name": "product",
            • "amount":
              {
              • "value": 10000
              },
            • "quantity": 1
            }
          ],
        • "subtotal":
          {
          • "value": 20000
          },
        • "tax":
          {
          • "value": 1000,
          • "description": "tax included"
          },
        • "shipping":
          {
          • "value": 1000,
          • "description": "shipping cost"
          },
        • "discount":
          {
          • "amount":
            {
            • "value": 1000,
            • "description": "discount"
            },
          • "programName": "membership discount"
          },
        • "orderExpiration":
          {
          • "expirationSeconds": 500,
          • "description": "limited offer"
          },
        • "orderDetailsType": "QUICK_PAY"
        }
      },
    • "footer":
      {
      • "text": "Footer"
      }
    },
  • "callbackData": "Callback data",
  • "urlOptions":
    {}
}

Response samples

Content type
application/json
Copy
Collapse all
{
  • "to": "441134960001",
  • "messageCount": 1,
  • "messageId": "a28dd97c-1ffb-4fcf-99f1-0b557ed381da",
  • "status":
    {
    • "groupId": 1,
    • "groupName": "PENDING",
    • "id": 7,
    • "name": "PENDING_ENROUTE",
    • "description": "Message sent to next instance"
    }
}

Encountering issues

Contact our support

What's new? Check out

Release Notes

Unsure about a term? See

Glossary

Research panel

Help shape the future of our products
Learn more
Service status

Copyright @ 2006-2025 Infobip ltd.