order_details
The order invoice with items and total, plus the button that opens Pix or link payment.
How it works
Creation carries the header, message, footer and the fixed button. The invoice does not exist here: items, subtotal, total and the Pix code change on every order and go at send time.- Pix
- Payment link
The customer taps the button, sees the invoice and pays with Pix copy and paste in the bank app.
- The Pix code is generated on your side (bank or gateway) with that order amount and goes at send time. Meta only carries it.
- The receiver details also go at send time: name, key type and key. The name is shown to the customer before paying.
- The account must be enabled for payments in Brazil. Without it the template is approved, but payment won’t open.
At creation and at send time
Fields in this model
Full JSON
Two JSON payloads: one creates the template, and Meta approves it once. The other sends the message, and goes on every dispatch, with that send’s values in the variables marked with braces.1. Create the template
POST /whatsapp/businesses/{wabaId}/templates — see API reference.
2. Send it once approved
POST /v1/channels/{channelId}/messages — see Send template.
What Meta rejects here
- A label other than
Copy Pix code: “Text for button type ‘ORDER_DETAILS’ cannot be modified and must always be ‘Copy Pix code’”, code2388153.
Two details Meta requires at send time: amounts go in cents (offset 100, so 500.00 is
50000) and every order needs a unique reference_id, which is how the payment status comes back on the webhook.