> ## Documentation Index
> Fetch the complete documentation index at: https://docs.messagefy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Mensagem de Pedido

> Envie e receba mensagens de pedido com itens, valores e detalhes de compra

# Mensagem de Pedido

O tipo `ORDER` representa uma mensagem estruturada de pedido/compra. É **primariamente recebido** (inbound): quando um cliente seleciona produtos do catálogo do WhatsApp Business e envia o pedido, você recebe um webhook `ORDER`. Também pode ser enviado para confirmações de pedido, resumos de compra e notificações de e-commerce.

## Payload

```json theme={null}
{
  "channelId": "uuid-do-canal",
  "content": {
    "type": "ORDER",
    "to": {
      "type": "WHATSAPP",
      "number": "5511999999999"
    },
    "orderId": "PED-2026-00789",
    "itemCount": 3,
    "totalAmount1000": 15990,
    "totalCurrencyCode": "BRL",
    "text": "Obrigado pela sua compra! Seu pedido esta sendo preparado.",
    "items": [
      {
        "name": "Camiseta Azul M",
        "quantity": 2,
        "price": 4990,
        "currency": "BRL",
        "imageUrl": "https://cdn.suaempresa.com/produtos/camiseta-azul.jpg"
      },
      {
        "name": "Calca Jeans 42",
        "quantity": 1,
        "price": 6010,
        "currency": "BRL",
        "imageUrl": "https://cdn.suaempresa.com/produtos/calca-jeans.jpg"
      }
    ]
  }
}
```

## Campos

<ParamField body="content.type" type="string" required>
  Deve ser `"ORDER"`.
</ParamField>

<ParamField body="content.to" type="Address" required>
  Endereço do destinatário. Veja [formatos de endereço](/mensagens/visao-geral#enderecamento-address).
</ParamField>

<ParamField body="content.orderId" type="string">
  Identificador do pedido. Exibido ao destinatário.
</ParamField>

<ParamField body="content.itemCount" type="integer">
  Número total de itens no pedido.
</ParamField>

<ParamField body="content.totalAmount1000" type="long">
  Valor total do pedido em **milésimos** da unidade monetária. Veja a seção de valores abaixo.
</ParamField>

<ParamField body="content.totalCurrencyCode" type="string">
  Código da moeda no formato ISO 4217 (ex: `BRL`, `USD`, `EUR`).
</ParamField>

<ParamField body="content.text" type="string">
  Texto adicional da mensagem de pedido.
</ParamField>

<ParamField body="content.thumbnail" type="string">
  Imagem de preview do pedido em Base64 (JPEG).
</ParamField>

<ParamField body="content.items" type="array">
  Lista de itens do pedido.
</ParamField>

### Campos de cada item

<ParamField body="items[].name" type="string">
  Nome do produto/item.
</ParamField>

<ParamField body="items[].quantity" type="integer">
  Quantidade do item.
</ParamField>

<ParamField body="items[].price" type="long">
  Preço unitário do item em **milésimos** da unidade monetária.
</ParamField>

<ParamField body="items[].currency" type="string">
  Código da moeda do item (ex: `BRL`).
</ParamField>

<ParamField body="items[].imageUrl" type="string">
  URL da imagem do produto.
</ParamField>

## Valores em Milésimos

<Warning>
  Os campos de valor (`totalAmount1000`, `price`) usam **milésimos** como unidade. O valor é multiplicado por **1.000 (mil)** em relação ao valor na unidade monetária.

  Para converter: **valor monetário x 1.000 = valor no campo** (ou **campo / 1.000 = valor real**).
</Warning>

| Valor Real | Valor no Campo | Cálculo        |
| ---------- | -------------- | -------------- |
| R\$ 15,99  | `15990`        | 15,99 x 1.000  |
| R\$ 49,90  | `49900`        | 49,90 x 1.000  |
| R\$ 1,00   | `1000`         | 1,00 x 1.000   |
| R\$ 0,50   | `500`          | 0,50 x 1.000   |
| R\$ 199,90 | `199900`       | 199,90 x 1.000 |

## Exemplos

### Pedido completo

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api-dev.messagefy.io/api/v1/message/SendMessage \
    -H "Content-Type: application/json" \
    -H "X-API-KEY: sua-api-key-aqui" \
    -d '{
      "channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "correlationId": "pedido-789",
      "content": {
        "type": "ORDER",
        "to": {
          "type": "WHATSAPP",
          "number": "5511999999999"
        },
        "orderId": "PED-2026-00789",
        "itemCount": 3,
        "totalAmount1000": 89800,
        "totalCurrencyCode": "BRL",
        "text": "Pedido confirmado! Previsao de entrega: 3 dias uteis.",
        "items": [
          {
            "name": "Tenis Esportivo 41",
            "quantity": 1,
            "price": 59900,
            "currency": "BRL",
            "imageUrl": "https://cdn.suaempresa.com/produtos/tenis-esportivo.jpg"
          },
          {
            "name": "Meia Esportiva (par)",
            "quantity": 2,
            "price": 14950,
            "currency": "BRL",
            "imageUrl": "https://cdn.suaempresa.com/produtos/meia-esportiva.jpg"
          }
        ]
      }
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api-dev.messagefy.io/api/v1/message/SendMessage",
      headers={
          "Content-Type": "application/json",
          "X-API-KEY": "sua-api-key-aqui"
      },
      json={
          "channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "correlationId": "pedido-789",
          "content": {
              "type": "ORDER",
              "to": {
                  "type": "WHATSAPP",
                  "number": "5511999999999"
              },
              "orderId": "PED-2026-00789",
              "itemCount": 3,
              "totalAmount1000": 89800,
              "totalCurrencyCode": "BRL",
              "text": "Pedido confirmado! Previsao de entrega: 3 dias uteis.",
              "items": [
                  {
                      "name": "Tenis Esportivo 41",
                      "quantity": 1,
                      "price": 59900,
                      "currency": "BRL",
                      "imageUrl": "https://cdn.suaempresa.com/produtos/tenis-esportivo.jpg"
                  },
                  {
                      "name": "Meia Esportiva (par)",
                      "quantity": 2,
                      "price": 14950,
                      "currency": "BRL",
                      "imageUrl": "https://cdn.suaempresa.com/produtos/meia-esportiva.jpg"
                  }
              ]
          }
      }
  )
  print(response.json())
  ```

  ```javascript Node.js theme={null}
  const response = await fetch(
    "https://api-dev.messagefy.io/api/v1/message/SendMessage",
    {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        "X-API-KEY": "sua-api-key-aqui",
      },
      body: JSON.stringify({
        channelId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        correlationId: "pedido-789",
        content: {
          type: "ORDER",
          to: {
            type: "WHATSAPP",
            number: "5511999999999",
          },
          orderId: "PED-2026-00789",
          itemCount: 3,
          totalAmount1000: 89800,
          totalCurrencyCode: "BRL",
          text: "Pedido confirmado! Previsao de entrega: 3 dias uteis.",
          items: [
            {
              name: "Tenis Esportivo 41",
              quantity: 1,
              price: 59900,
              currency: "BRL",
              imageUrl:
                "https://cdn.suaempresa.com/produtos/tenis-esportivo.jpg",
            },
            {
              name: "Meia Esportiva (par)",
              quantity: 2,
              price: 14950,
              currency: "BRL",
              imageUrl:
                "https://cdn.suaempresa.com/produtos/meia-esportiva.jpg",
            },
          ],
        },
      }),
    }
  );
  const data = await response.json();
  console.log(data);
  ```
</CodeGroup>

### Pedido simples sem itens detalhados

```json theme={null}
{
  "channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "content": {
    "type": "ORDER",
    "to": {
      "type": "WHATSAPP",
      "number": "5511999999999"
    },
    "orderId": "PED-2026-00456",
    "itemCount": 5,
    "totalAmount1000": 245000,
    "totalCurrencyCode": "BRL",
    "text": "Resumo do seu pedido: 5 itens no total de R$ 245,00. Aguardando pagamento."
  }
}
```

<Tip>
  Use o campo `correlationId` no Package para vincular o pedido ao seu sistema interno. Isso facilita o rastreamento quando você receber webhooks de status da mensagem.
</Tip>

## Resposta

```json theme={null}
{
  "packageId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
```

## Recebimento

Quando um cliente monta um pedido a partir do catálogo do WhatsApp Business e o envia, você recebe um webhook com `content.type` igual a `ORDER`. O `content` traz os mesmos campos do envio (`orderId`, `itemCount`, `totalAmount1000`, `totalCurrencyCode`, `text`, `thumbnail`, `items[]`), acrescido do envelope comum de mensagem recebida (`from`, `to`, `messageId`, etc.).

<ResponseField name="content.orderId" type="string">
  Identificador único do pedido no WhatsApp.
</ResponseField>

<ResponseField name="content.itemCount" type="integer">
  Quantidade total de itens no pedido.
</ResponseField>

<ResponseField name="content.totalAmount1000" type="long">
  Valor total do pedido em **milésimos**. Divida por 1.000 para obter o valor real (ex: `13500` = R\$ 135,00).
</ResponseField>

<ResponseField name="content.totalCurrencyCode" type="string">
  Código da moeda (ex: `BRL`, `USD`).
</ResponseField>

<ResponseField name="content.text" type="string">
  Mensagem opcional enviada pelo cliente junto ao pedido. Pode vir vazia.
</ResponseField>

<ResponseField name="content.thumbnail" type="string">
  Thumbnail do pedido em Base64 (JPEG).
</ResponseField>

<ResponseField name="content.items" type="array">
  Lista de produtos do pedido.
</ResponseField>

<ResponseField name="items[].name" type="string">
  Nome do produto.
</ResponseField>

<ResponseField name="items[].quantity" type="integer">
  Quantidade solicitada.
</ResponseField>

<ResponseField name="items[].price" type="long">
  Preço unitário em **milésimos**. Divida por 1.000 para obter o valor real (ex: `8500` = R\$ 8,50).
</ResponseField>

<ResponseField name="items[].currency" type="string">
  Código da moeda do item (ex: `BRL`).
</ResponseField>

<ResponseField name="items[].imageUrl" type="string">
  URL da imagem do produto no StorageFy. Veja a nota abaixo sobre disponibilidade.
</ResponseField>

<ResponseField name="content.from" type="Address">
  Endereço de quem enviou o pedido. Veja [formatos de endereço](/mensagens/visao-geral#enderecamento-address).
</ResponseField>

<ResponseField name="content.messageId" type="string">
  Identificador da mensagem no WhatsApp.
</ResponseField>

<Note>
  Os demais campos do envelope (`packageId`, `channelId`, `correlationId`, `timestamp`, `providerMetadata`) e os campos comuns de mensagem (`isFromMe`, `isGroupMessage`, `isForwarded`, `isStatusMessage`, `isHistoryMessage`, `isBroadcast`, `isAnnounceGroup`, `isCommunityNotices`, `isNewsletter`, `quotedMessage`, `metaReferralAds`) estão descritos em [Recebendo Mensagens](/mensagens/visao-geral#recebendo-mensagens).
</Note>

### Exemplo de payload recebido

```json theme={null}
{
  "packageId": "019d3bff-efb4-7566-9901-cfb29dde3ed5",
  "channelId": "019d3bfd-d884-71d4-b162-218d70dee00f",
  "correlationId": null,
  "content": {
    "type": "ORDER",
    "orderId": "1895184554485465",
    "itemCount": 3,
    "totalAmount1000": 13500,
    "totalCurrencyCode": "BRL",
    "text": "",
    "thumbnail": "/9j/4AAQSkZJRgABAQAA...",
    "items": [
      {
        "name": "Garrafa de agua",
        "quantity": 2,
        "price": 2500,
        "currency": "BRL",
        "imageUrl": "https://storage-dev.messagefy.io/api/v1/files/download-external/abc123"
      },
      {
        "name": "Refrigerante",
        "quantity": 1,
        "price": 8500,
        "currency": "BRL",
        "imageUrl": "https://storage-dev.messagefy.io/api/v1/files/download-external/def456"
      }
    ],
    "from": {
      "type": "WHATSAPP",
      "jid": "554298002650@s.whatsapp.net",
      "lid": "28209462644963@lid",
      "number": "554298002650",
      "name": "Cliente"
    },
    "to": {
      "type": "WHATSAPP",
      "jid": "554288706357@s.whatsapp.net",
      "number": "554288706357",
      "name": "Minha Loja"
    },
    "messageId": "3A8BEC9A4AF0FC7264AE",
    "isFromMe": false,
    "isGroupMessage": false,
    "isForwarded": false,
    "isStatusMessage": false,
    "deliveryStrategy": 0,
    "priority": 0,
    "timestamp": "2026-03-29T23:48:42+00:00"
  },
  "timestamp": "2026-03-29T23:48:42.0366555+00:00",
  "providerMetadata": null
}
```

<Note>
  **Imagens dos produtos:** as URLs em `items[].imageUrl` são presigned URLs do StorageFy. Quando o pedido chega, as imagens ainda podem estar em processamento. Um evento [`DOWNLOAD_AVAILABLE`](/recebendo-eventos) é enviado para cada imagem assim que ela fica pronta — o campo `externalDownloadUrl` do `DOWNLOAD_AVAILABLE` corresponde ao `imageUrl` do item.
</Note>
