order_details. A mensagem order_details é um novo tipo de mensagem interactive que sempre contém os mesmos 4 componentes principais: cabeçalho, corpo, rodapé e ação. Dentro do componente action, a empresa inclui todas as informações necessárias para que o cliente conclua o pagamento.order_details contém um reference_id único fornecido pela empresa, e essa identificação única é usada em todo o fluxo para rastrear o pedido.order_details ao usuário. Ao tocar em Analisar e pagar, o usuário vê os detalhes do pedido e o valor total a ser pago.

order_status ao consumidor com informações sobre o status do pedido. Cada mensagem resultará em um balão de mensagem (conforme mostrado abaixo), que se refere à mensagem original com detalhes do pedido e também atualiza o status exibido na página de detalhes do pedido.order_details, você pode especificar a configuração de pagamento que será usada para determinada finalização da compra. O WhatsApp gerará um fluxo de finalização da compra usando a conta do portal de pagamento associado.
order_details aos clientes com a configuração para receber pagamentos.

order_details, as empresas precisam montar um objeto interativo do tipo order_details com estes componentes:| Objeto | Descrição |
|---|---|
typeobjeto | Obrigatório. Deve ser "order_details". |
headerobjeto | Opcional. O conteúdo do cabeçalho exibido na parte superior da mensagem. Se nenhum cabeçalho for fornecido, a API usará uma imagem do primeiro produto disponível como cabeçalho |
bodyobjeto | Obrigatório. Um objeto com o corpo da mensagem. O objeto contém o seguinte campo: String text
|
footerobjeto | Opcional. Um objeto com o rodapé da mensagem. O objeto contém os seguintes campos: String text
|
actionobjeto | Obrigatório. Um objeto de ação que você deseja que o usuário execute após a leitura da mensagem. Esse objeto de ação contém os seguintes campos: String name
Objeto parameters
|
| Objeto | Descrição |
|---|---|
reference_idstring | Obrigatório. O identificador único do pedido ou da fatura fornecido pela empresa. Essa string diferencia maiúsculas de minúsculas, não pode estar vazia e só pode conter letras, números, sublinhados, traços ou pontos, além de não ultrapassar 35 caracteres. O reference_id deve ser único para cada mensagem de order_details de determinada empresa. Se houver necessidade de enviar várias mensagens de order_details para o mesmo pedido, recomendamos incluir um número de sequência no reference_id (por exemplo, “BM345A-12”) para garantir a exclusividade do reference_id. |
typeobjeto | Obrigatório. O tipo de produto a ser pago neste pedido. As opções compatíveis no momento são digital-goods e physical-goods. |
beneficiariesmatriz | Obrigatório para mercadorias físicas enviadas. Uma matriz de beneficiários do pedido. O beneficiário é o destinatário designado para o envio dos produtos físicos do pedido. Contém os seguintes campos: Observação: as informações sobre o beneficiário não são exibidas aos usuários, mas são necessárias por motivos legais e de conformidade. String name
String address_line1
String address_line2
String city
String state
String country
String postal_code
|
currency | Obrigatório. A moeda usada para o pedido. No momento, o único valor aceito é INR. |
total_amountobjeto | Obrigatório. O objeto total_amount contém os seguintes campos:offset é um número inteiro
value é um número inteiro
total_amount.value deve ser igual a order.subtotal.value + order.tax.value + order.shipping.value - order.discount.value. |
payment_settingsobjeto | Obrigatório. Consulte Objeto de configurações de pagamento para saber mais. |
orderobjeto | Obrigatório. Consulte Objeto de pedido para saber mais. |
| Objeto | Descrição |
|---|---|
typestring | Obrigatório. Deve ser definido como “payment_gateway” |
payment_gatewayobjeto | Obrigatório. Um objeto que descreve as informações da conta de pagamento: String type
String configuration_name
Quando configuration_name for inválido, o cliente não poderá pagar pelo pedido. Recomendamos que as empresas realizem testes abrangentes dessa configuração durante a fase de integração.Objeto billdesk/razorpay/payu/zaakpay
Para saber mais, consulte Objeto UDF específico do portal de pagamento. |
notes, receipt e udf na mensagem de detalhes do pedido e recebam esses dados de volta em sinais de pagamento. Aqui, veremos como os comerciantes podem enviar "additional_info" para o BillDesk, "notes" e "receipt" para o Razorpay, "udf" para o PayU, "extra" para PGs do Zaakpay.| Objeto | Descrição |
|---|---|
notesobjeto | Opcional.
O objeto pode ser pares de chave-valor com no máximo 15 chaves e cada valor limitado a 256 caracteres. |
receiptString | Opcional.
O número do recibo correspondente ao pedido, definido para sua referência interna. Suporte para número máximo de 40 caracteres, com comprimento mínimo maior que 0 caractere. |
udf1-4String | Opcional.
Os campos definidos pelo usuário (UDF, pela sigla em inglês) são usados para armazenar informações relacionadas a um pedido específico. Cada campo de UDF tem um limite máximo de 255 caracteres. |
extra1-2String | Opcional.
Os campos definidos pelo usuário (extra) são usados para armazenar informações relacionadas a um pedido específico. Cada campo extra tem um limite máximo de 180 caracteres. |
additional_info1-7String | Opcional.
Os campos definidos pelo usuário (extra) são usados para armazenar informações relacionadas a um pedido específico. Cada campo extra tem um limite máximo de 120 caracteres. |
| Objeto | Descrição |
|---|---|
statusstring | Obrigatório. O único valor aceito na mensagem order_details é pending.Em uma mensagem order_status, status pode ser: pending, captured ou failed. |
String type | Opcional. O único valor aceito é quick_pay. Quando o campo é transmitido, ocultamos o botão "Verificar e pagar" e exibimos apenas o botão "Pagar agora" no balão de detalhes do pedido. |
itemsobjeto | Obrigatório. Um objeto com a lista de itens do pedido, contendo os seguintes campos: String retailer_id
String name
Objeto image
O uso desse campo de imagem limitará a matriz de itens a um máximo de 10 itens e não poderá ser usado com retailer_id ou catalog_id.Objeto amount com valor e fator de ajuste — consulte o campo de valor total acima
Objeto de quantia sale_amount
quantity é um número inteiro
String country_of_origin
String importer_name
String importer_adress
|
subtotalobjeto | Obrigatório. O valor deve ser igual à soma de order.amount.value * order.amount.quantity. Consulte a descrição de total_amount para ver explicações sobre os campos offset e valueOs seguintes campos fazem parte do objeto subtotal:offset é um número inteiro
value é um número inteiro
|
taxobjeto | Obrigatório. As informações fiscais do pedido que contêm os seguintes campos: offset é um número inteiro
value é um número inteiro
String description
|
shippingobjeto | Opcional. O custo de envio do pedido. O objeto contém os seguintes campos: offset é um número inteiro
value é um número inteiro
String description
|
discountobjeto | Opcional. O desconto do pedido. O objeto contém os seguintes campos: offset é um número inteiro
value é um número inteiro
String description
String discount_program_name
|
catalog_idobjeto | Opcional. O identificador único do catálogo do Facebook usado pela empresa. Se o campo não for fornecido, será necessário fornecer os seguintes campos dentro do objeto "items": country_of_origin, importer_name e importer_address |
expirationobjeto | Opcional. Validade do pedido. A empresa deve definir os seguintes campos no objeto: String timestamp – registro de data e hora UTC em segundos do momento em que o pedido deve expirar. O limite mínimo é de 300 segundosString description – texto que explica a validade. O limite máximo é de 120 caracteres. |
| Objeto | Descrição |
|---|---|
String link | Obrigatório. Um link para a imagem que será exibida ao usuário. Deve ser image/jpeg ou image/png e 8 bits, RGB ou RGBA. Segue os mesmos requisitos de imagem em mídia |
parameters é um objeto JSON convertido em string.{ "interactive": { "type": "order_details", "header": { "type": "image", "image": { "link": "http(s)://the-url", "provider": { "name": "provider-name" } } }, "body": { "text": "your-text-body-content" }, "footer": { "text": "your-text-footer-content" }, "action": { "name": "review_and_pay", "parameters": { "reference_id": "reference-id-value", "type": "digital-goods", "payment_settings": [ { "type": "payment_gateway", "payment_gateway": { "type": "billdesk", "configuration_name": "payment-config-id", "billdesk": { "additional_info1": "additional_info1-value", "additional_info2": "additional_info2-value", "additional_info3": "additional_info3-value", "additional_info4": "additional_info4-value", "additional_info5": "additional_info5-value", "additional_info6": "additional_info6-value", "additional_info7": "additional_info7-value", } } } ], "currency": "INR", "total_amount": { "value": 21000, "offset": 100 }, "order": { "status": "pending", "catalog_id": "the-catalog_id", "expiration": { "timestamp": "utc_timestamp_in_seconds", "description": "cancellation-explanation" }, "items": [ { "retailer_id": "1234567", "name": "Product name, for example bread", "amount": { "value": 10000, "offset": 100 }, "quantity": 1, "sale_amount": { "value": 100, "offset": 100 } } ], "subtotal": { "value": 20000, "offset": 100 }, "tax": { "value": 1000, "offset": 100, "description": "optional_text" }, "shipping": { "value": 1000, "offset": 100, "description": "optional_text" }, "discount": { "value": 1000, "offset": 100, "description": "optional_text", "discount_program_name": "optional_text" } } } } } }
parameters é um objeto JSON convertido em string.{ "interactive": { "type": "order_details", "header": { "type": "image", "image": { "link": "http(s)://the-url", "provider": { "name": "provider-name" } } }, "body": { "text": "your-text-body-content" }, "footer": { "text": "your-text-footer-content" }, "action": { "name": "review_and_pay", "parameters": { "reference_id": "reference-id-value", "type": "digital-goods", "payment_settings": [ { "type": "payment_gateway", "payment_gateway": { "type": "razorpay", "configuration_name": "payment-config-id", "razorpay": { "receipt": "receipt-value", "notes": { "key1": "value1" } } } } ], "currency": "INR", "total_amount": { "value": 21000, "offset": 100 }, "order": { "status": "pending", "catalog_id": "the-catalog_id", "expiration": { "timestamp": "utc_timestamp_in_seconds", "description": "cancellation-explanation" }, "items": [ { "retailer_id": "1234567", "name": "Product name, for example bread", "amount": { "value": 10000, "offset": 100 }, "quantity": 1, "sale_amount": { "value": 100, "offset": 100 } } ], "subtotal": { "value": 20000, "offset": 100 }, "tax": { "value": 1000, "offset": 100, "description": "optional_text" }, "shipping": { "value": 1000, "offset": 100, "description": "optional_text" }, "discount": { "value": 1000, "offset": 100, "description": "optional_text", "discount_program_name": "optional_text" } } } } } }
parameters é um objeto JSON convertido em string.{ "interactive": { "type": "order_details", "header": { "type": "image", "image": { "link": "your-media-url-link" } }, "body": { "text": "your-text-body-content" }, "footer": { "text": "your-text-footer-content" }, "action": { "name": "review_and_pay", "parameters": { "reference_id": "reference-id-value", "type": "digital-goods", "payment_settings": [ { "type": "payment_gateway", "payment_gateway": { "type": "payu", "configuration_name": "payment-config-id", "payu": { "udf1": "value1", "udf2": "value2", "udf3": "value3", "udf4": "value4" } } } ], "currency": "INR", "total_amount": { "value": 21000, "offset": 100 }, "order": { "status": "pending", "expiration": { "timestamp": "utc_timestamp_in_seconds", "description": "cancellation-explanation" }, "items": [ { "name": "Product name, for example bread", "amount": { "value": 10000, "offset": 100 }, "quantity": 1, "sale_amount": { "value": 100, "offset": 100 }, "country_of_origin": "country-of-origin", "importer_name": "name-of-importer-business", "importer_address": { "address_line1": "B8/733 nand nagri", "address_line2": "police station", "city": "East Delhi", "zone_code": "DL", "postal_code": "110093", "country_code": "IN" } }, { "name": "Product name, for example bread", "amount": { "value": 10000, "offset": 100 }, "quantity": 1, "sale_amount": { "value": 100, "offset": 100 }, "country_of_origin": "country-of-origin", "importer_name": "name-of-importer-business", "importer_address": { "address_line1": "B8/733 nand nagri", "address_line2": "police station", "city": "East Delhi", "zone_code": "DL", "postal_code": "110093", "country_code": "IN" } } ], "subtotal": { "value": 20000, "offset": 100 }, "tax": { "value": 1000, "offset": 100, "description": "optional_text" }, "shipping": { "value": 1000, "offset": 100, "description": "optional_text" }, "discount": { "value": 1000, "offset": 100, "description": "optional_text", "discount_program_name": "optional_text" } } } } } }
{ "interactive": { "type": "order_details", "header": { "type": "image", "image": { "link": "your-media-url-link" } }, "body": { "text": "your-text-body-content" }, "footer": { "text": "your-text-footer-content" }, "action": { "name": "review_and_pay", "parameters": { "reference_id": "reference-id-value", "type": "digital-goods", "payment_settings": [ { "type": "payment_gateway", "payment_gateway": { "type": "zaakpay", "configuration_name": "payment-config-id", "zaakpay": { "extra1": "value1", "extra2": "value2" } } } ], "currency": "INR", "total_amount": { "value": 21000, "offset": 100 }, "order": { "status": "pending", "expiration": { "timestamp": "utc_timestamp_in_seconds", "description": "cancellation-explanation" }, "items": [ { "name": "Product name, for example bread", "amount": { "value": 10000, "offset": 100 }, "quantity": 1, "sale_amount": { "value": 100, "offset": 100 }, "country_of_origin": "country-of-origin", "importer_name": "name-of-importer-business", "importer_address": { "address_line1": "B8/733 nand nagri", "address_line2": "police station", "city": "East Delhi", "zone_code": "DL", "postal_code": "110093", "country_code": "IN" } }, { "name": "Product name, for example bread", "amount": { "value": 10000, "offset": 100 }, "quantity": 1, "sale_amount": { "value": 100, "offset": 100 }, "country_of_origin": "country-of-origin", "importer_name": "name-of-importer-business", "importer_address": { "address_line1": "B8/733 nand nagri", "address_line2": "police station", "city": "East Delhi", "zone_code": "DL", "postal_code": "110093", "country_code": "IN" } } ], "subtotal": { "value": 20000, "offset": 100 }, "tax": { "value": 1000, "offset": 100, "description": "optional_text" }, "shipping": { "value": 1000, "offset": 100, "description": "optional_text" }, "discount": { "value": 1000, "offset": 100, "description": "optional_text", "discount_program_name": "optional_text" } } } } } }
recipient_type, to e type. Lembre-se de definir type como interactive.{ "messaging_product": "whatsapp", "recipient_type": "individual", "to": "PHONE_NUMBER", "type": "interactive", "interactive": { // interactive object here } }
/[PHONE_NUMBER_ID]/messages com o objeto JSON criado. Caso a mensagem seja enviada com sucesso, você receberá a seguinte resposta:{ "messaging_product": "whatsapp", "contacts": [ { "input": "[PHONE_NUMBER_ID]", "wa_id": "[PHONE_NUMBER_ID]" } ], "messages": [ { "id": "wamid.HBgLMTY1MDUwNzY1MjAVAgARGBI5QTNDQTVCM0Q0Q0Q2RTY3RTcA" } ] }
order_details semelhante à exibida abaixo (esquerda). Ao clicar em "Analisar e pagar", a tela com os detalhes do pedido será aberta, conforme exibido abaixo (no meio). O cliente pode pagar o pedido usando o botão "Continuar", que abre uma folha inferior com as opções de pagamento (à direita).


| Objeto | Descrição |
|---|---|
idstring | Obrigatório. Identificação do webhook para a notificação. |
recipient_id string | Obrigatório. Identificação do WhatsApp do cliente. |
typestring | Obrigatório. Para webhooks de atualização de status de pagamento, o tipo é "payment". |
statusstring | Obrigatório. captured/pending: captured – quando o pagamento é concluído com sucesso; pending quando o usuário tenta realizar a ação, mas ainda não recebeu o sinal de transações bem-sucedidas. |
paymentobjeto | Obrigatório. Contém o seguinte campo:
String reference_id
String extra1-2Opcional.
Lista de reembolsos para o pedido. Cada objeto de reembolso contém os seguintes campos:
|
timestampstring | Obrigatório. Registro de data e hora do webhook. |
payment:{ "object": "whatsapp_business_account", "entry": [{ "id": "WHATSAPP-BUSINESS-ACCOUNT-ID", "changes": [{ "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "[PHONE_NUMBER]", "phone_number_id": "[PHONE_NUMBER_ID]" }, "contacts": [{...}], "errors": [{...}], "messages": [{...}], "statuses": [{ "id": "gBGGFlB5YjhvAgnhuF1qIUvCo7A", "recipient_id": "[PHONE_NUMBER]", "type": "payment", "status": "[TRANSACTION_STATUS]", "payment": { "reference_id": "[REFERENCE_ID]", "amount": { "value": 21000, "offset": 100 }, "transaction": { "id": "[PG-ORDER-ID]", "pg_transaction_id": "[PG-PAYMENT-ID]", "type": "billdesk/razorpay/payu/zaakpay", "status": "success/failed", "created_timestamp": "CREATED_TIMESTAMP", "updated_timestamp": "UPDATED_TIMESTAMP", "method": { "type": "upi/card/netbanking/wallet" }, "error": { "code": "pg-generated-error-code", "reason": "pg-generated-descriptive-reason" } }, "currency": "INR", "receipt": "receipt-value", "notes": { "key1": "value1", "key2": "value2" }, "udf1": "udf1-value", "udf2": "udf2-value", "udf3": "udf3-value", "udf4": "udf4-value", "additional_info1": "additional_info1-value", "additional_info2": "additional_info2-value", "additional_info3": "additional_info3-value", "additional_info4": "additional_info4-value", "additional_info5": "additional_info5-value", "additional_info6": "additional_info6-value", "additional_info7": "additional_info7-value", "refunds": [{ "id": "[REFUND-ID]", "amount": { "value": 100, "offset": 100 }, "speed_processed": "instant/normal", "status": "success", "created_timestamp": "CREATED_TIMESTAMP", "updated_timestamp": "UPDATED_TIMESTAMP", }], }, "timestamp": "notification_timestamp" }] }, "field": "messages" }] }] }
GET <PHONE_NUMBER_ID>/payments/<PAYMENT_CONFIGURATION>/<REFERENCE_ID>payment_configuration e reference_id são iguais ao que foi enviado na mensagem order_details.| Campo | Descrição |
|---|---|
reference_idstring | Obrigatório. A identificação enviada pela empresa na mensagem order_details |
statusstring | Obrigatório. O status do pagamento do pedido. Pode ser pending ou capturedConsulte a tabela abaixo para saber o que esses status significam. |
currencystring | Obrigatório. A moeda usada para o pagamento. No momento, o único valor aceito é INR. |
total_amountobjeto | Obrigatório. O valor total desse pagamento. Contém os seguintes campos: offset é um número inteiro
value é um número inteiro
|
transactionsmatriz | Obrigatório. A lista de transações para esse pagamento. Cada objeto contém os seguintes campos: String id
String pg_transaction_id
String type
String status
No máximo uma transação pode ter o status success.Número inteiro created_timestamp
Número inteiro updated_timestamp
Objeto methodOpcional. As informações da forma de pagamento podem não estar disponíveis para pagamentos com falha
Objeto errorOpcional. Os detalhes de erro de pagamento podem não estar disponíveis para todas as tentativas de pagamento
Matriz refundsOpcional. Lista de reembolsos para o pedido. Cada objeto de reembolso contém os seguintes campos:
|
additional_info1-7string | Opcional. Oferece suporte apenas ao PG do BillDesk, contém valores de string enviados como parte da mensagem de detalhes do pedido. |
receiptstring | Opcional. Oferece suporte apenas ao PG do Razorpay, contém o valor do recibo enviado como parte da mensagem de detalhes do pedido. |
notesobjeto | Opcional. Oferece suporte apenas ao PG do Razorpay, contém os pares de chave-valor enviados como parte da mensagem de detalhes do pedido. |
udf1-4string | Opcional. Oferece suporte apenas ao PG do PayU, contém valores de string enviados como parte da mensagem de detalhes do pedido. |
extra1-2string | Opcional. Oferece suporte apenas ao PG do Zaakpay, contém valores de string enviados como parte da mensagem de detalhes do pedido. |
| Status | Descrição |
|---|---|
pending | O usuário iniciou o processo de pagamento e o objeto de pagamento foi criado |
captured | O pagamento foi capturado |
{ "payments": [{ "reference_id": "reference-id-value", "status": "status-of-payment", "currency": "INR", "total_amount": { "value": 21000, "offset": 100 }, "transactions": [ { "id": "[PG-ORDER-ID]", "pg_transaction_id": "[PG-TXN-ID]", "type": "billdesk/razorpay/payu/zaakpay", "status": "success/failed", "created_timestamp": "CREATED_TIMESTAMP", "updated_timestamp": "UPDATED_TIMESTAMP", "method": { "type": "upi/card/netbanking/wallet" }, "error": { "code": "pg-generated-error-code", "reason": "pg-generated-descriptive-reason" }, "refunds": [ { "id": "[REFUND-ID]", "amount": { "value": 100, "offset": 100 }, "speed_processed": "instant/normal", "status": "success", "created_timestamp": "CREATED_TIMESTAMP", "updated_timestamp": "UPDATED_TIMESATMP", } ], } ], "receipt": "receipt-value", "notes": { "key1": "value1", "key2": "value2" }, "udf1": "udf1-value", "udf2": "udf2-value", "udf3": "udf3-value", "udf4": "udf4-value" "additional_info1": "additional_info1-value", "additional_info2": "additional_info2-value", "additional_info3": "additional_info3-value", "additional_info4": "additional_info4-value", "additional_info5": "additional_info5-value", "additional_info6": "additional_info6-value", "additional_info7": "additional_info7-value", }] }
/v1/messages. Para ver todos os erros que podem ser retornados e orientações sobre como lidar com eles, consulte API Local do WhatsApp: Erros. Veja um exemplo de erro genérico:{ "errors": [{ "code": 500, "title": "Generic error", "details": "System error. Please try again." }] }
order_status em vez de mensagem de texto, já que o status mais recente de um pedido exibido na página de detalhes é baseado apenas em mensagens de order_status.interactiveorder_status conforme o exemplo abaixo.{ "recipient_type": "individual", "to": "whatsapp-id", "type": "interactive", "interactive": { "type": "order_status", "body": { "text": "your-text-body-content" }, "action": { "name": "review_order", "parameters": { "reference_id": "reference-id-value", "order": { "status": "processing | partially_shipped | shipped | completed | canceled", "description": "optional-text" } } } } }
order_status:| Objeto | Descrição |
|---|---|
typestring | Obrigatório. Deve ser "order_status". |
bodyobjeto | Obrigatório. Um objeto com o corpo da mensagem. O objeto contém o seguinte campo: String text
|
footerobjeto | Opcional. Um objeto com o rodapé da mensagem. O objeto contém o seguinte campo: String text
|
actionobjeto | Obrigatório. Um objeto de ação que você deseja que o usuário execute após a leitura da mensagem. Esse objeto de ação contém os seguintes campos: String name
Objeto parameters
|
parameters contém os seguintes campos:| Valor | Descrição |
|---|---|
reference_idstring | Obrigatório. A identificação enviada pela empresa na mensagem order_details |
orderobjeto | Obrigatório. Esse objeto contém os seguintes campos: String status
String description
|
order_status apresenta dois novos erros que são resumidos abaixo.| Código de erro | Descrição |
|---|---|
2046 – Transição de status inválida | A transição de status do pedido não é permitida. Para saber mais, clique aqui. |
2047 – Não é possível cancelar o pedido | Não é possível cancelar o pedido, pois o usuário já o pagou. Para saber mais, clique aqui. |
order_status como uma mensagem separada no tópico de conversa, que faz referência à mensagem order_details original conforme mostrado abaixo (à esquerda). A página de detalhes do pedido sempre mostra o status válido mais recente comunicado ao cliente usando a mensagem order_status conforme mostrado abaixo (à direita).

| Valor | Descrição |
|---|---|
pending | O usuário ainda não fez o pagamento |
processing | Pagamento do usuário autorizado, o comerciante/parceiro está atendendo ao pedido, realizando o serviço, entre outros |
partially-shipped | Uma parte dos produtos do pedido foi enviada pelo comerciante |
shipped | Todos os produtos do pedido foram enviados pelo comerciante |
completed | O pedido foi concluído, e nenhuma outra ação é esperada do usuário ou do parceiro/comerciante |
canceled | O parceiro/comerciante quer cancelar a mensagem order_details do pedido/fatura. A atualização de status falhará se já houver um pagamento successful ou pending para esta mensagem order_details |
pending, que é enviado na mensagem order_details.canceled e completed são o status do terminal e não podem ser atualizados para qualquer outro status.pending pode mudar para qualquer um dos outros, incluindo processing, shipped e partially-shipped.processing, shipped e partially-shipped são status equivalentes e podem alternar entre si ou para um dos status terminal.
order_status com uma transição inválida, você receberá um webhook de erro com o código de erro 2046 e a mensagem "New order status was not correctly transitioned" ("Houve falha na transição do novo status do pedido").canceled um pedido enviando uma mensagem order_status com o status canceled. O cliente não pode pagar por um pedido cancelado. O cliente recebe uma mensagem order_status, a página de detalhes do pedido é atualizada para mostrar que o pedido foi cancelado e o botão "Continuar" é removido. O texto opcional exibido abaixo de "Pedido cancelado" na página de detalhes do pedido pode ser especificado usando o campo description na mensagem order_status.order_status com o status canceled, você receberá um webhook de erro com o código de erro 2047 e a mensagem "Não foi possível alterar o status do pedido para 'cancelado'".reference_id fornecido nas mensagens order_details e o id das transações retornadas como parte da consulta de pesquisa de pagamento./[PHONE_NUMBER_ID]/payments_refund com o seguinte objeto JSON:{ "reference_id": "reference-id-value", "speed": "normal", "payment_config_id": "payment-config-id", "amount": { "currency": "INR", "value": "100", "offset": "100" } }
| Campo | Descrição |
|---|---|
reference_idstring | Obrigatório. Identificação de referência única para o pedido enviado na mensagem order_details. |
speedstring | Opcional. Velocidade pela qual o reembolso deve ser processado. Pode ser instant ou normal. |
payment_config_idstring | Obrigatório. A configuração de pagamento do pedido enviada na mensagem order_details. |
amountobjeto | Obrigatório. O objeto amount contém os seguintes campos:String offset
String value
String currency
|
| Campo | Descrição |
|---|---|
idstring | Obrigatório. A identificação única que representa o reembolso iniciado. |
statusstring | Obrigatório. O status do reembolso. Pode ser pending, failed ou completed |
speed_processedstring | Obrigatório. Velocidade com que o reembolso foi processado. Pode ser instant ou normal. Os PGs são os principais árbitros do modo de velocidade em que o reembolso será realizado. Isso pode NÃO corresponder sempre ao que foi incluído nos parâmetros da solicitação. |
{ "id": "refund-id", "status": "pending", "speed_processed": "normal" }
one app de pagamento da UPI para ser exibido no fluxo de finalização da compra. O app de pagamento preferido do comerciante aparecerá no topo da lista de apps da UPI disponíveis na tela "Escolher forma de pagamento". Para ativar esse recurso, é necessário que os parceiros especifiquem o app-id externo na mensagem order details ou order-invoice.{ "messaging_product": "whatsapp", "interactive": { "action": { "name": "review_and_pay", "parameters": { "payment_settings": [ { "type": "payment_gateway", "payment_gateway": { "preferred_payment_methods": [ { "method": "Application-ID" } ] } } ], "order": .. } } } }
| App da UPI | Identificação do app a ser transmitido na carga de detalhes do pedido |
|---|---|
Google Pay | gpay |
PhonePe | phonepe |
PayTm | paytm |
BHIM | bhim |
Amazon Pay | amazonpay |
CRED | cred |
Mobikwik | mobikwik |
{ "messaging_product": "whatsapp", "interactive": { "action": { "name": "review_and_pay", "parameters": { "payment_settings": [ { "type": "payment_gateway", "payment_gateway": { "enabled_payment_options": ["upi"/"web"] }, } ], "order": ... } } } }
| Opção habilitada | Experiência no fluxo de finalização da compra |
|---|---|
upi | Apenas apps de UPI são exibidos no fluxo de finalização da compra |
web | A página do portal de pagamento é carregada, e as opções de pagamento configuradas na conta do portal do comerciante serão exibidas no fluxo de finalização da compra. |
{ "messaging_product": "whatsapp", "interactive": { "action": { "name": "review_and_pay", "parameters": { "payment_settings": [ { "type": "razorpay", "razorpay": { "encrypted_payment_gateway_data": "encrypted-data" } } ], "order": {} } } } }
{ "bank_account": { "account_number": "account-no", "name": "consumer-cbs-name", "ifsc": "ifsc-code" } }
{ "messaging_product": "whatsapp", "interactive": { "action": { "name": "review_and_pay", "parameters": { "payment_settings": [ { "type": "payu", "payu": { "encrypted_payment_gateway_data": "encrypted-data" } } ], "order": {} } } } }
{ "beneficiaryDetail" : { "beneficiaryAccountNumber" : "account_number1|account_number2", "ifscCode" : "ifsc1|ifsc2", } }
order_status seja enviada ao consumidor para informá-lo sobre as atualizações de um pedido após o recebimento das atualizações de transação correspondentes.