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

# Consulte um pedido

> Consulte os dados de um pedido.

Use o `orderId` recebido em um evento. A resposta contém itens, cliente, pagamento, entrega, valores e estado atual.

## Parâmetros de rota

<ParamField path="orderId" type="string (uuid)" required>
  Identificador único do pedido, gerado pela Onbeef. Você recebe este valor no campo `orderId` de qualquer evento de pedido retornado pelo endpoint de polling.
</ParamField>

## Resposta

### 200: Sucesso

Retorna o objeto completo do pedido.

<ResponseField name="id" type="string (uuid)">
  Identificador único do pedido.
</ResponseField>

<ResponseField name="type" type="string">
  Tipo do pedido, por exemplo `DELIVERY` ou `TAKEOUT`.
</ResponseField>

<ResponseField name="sourceAppId" type="string (uuid)">
  Identificador da aplicação que originou o pedido.
</ResponseField>

<ResponseField name="virtualBrand" type="string">
  Marca virtual associada ao pedido, se aplicável.
</ResponseField>

<ResponseField name="displayId" type="string">
  Identificador legível do pedido exibido aos clientes.
</ResponseField>

<ResponseField name="salesChannel" type="string">
  Canal pelo qual o pedido foi realizado.
</ResponseField>

<ResponseField name="createdAt" type="string (date-time)">
  Timestamp ISO 8601 de quando o pedido foi criado.
</ResponseField>

<ResponseField name="lastEvent" type="string">
  Evento mais recente no ciclo de vida do pedido (por exemplo, `CREATED`, `CONFIRMED`, `DELIVERED`).
</ResponseField>

<ResponseField name="merchant" type="object">
  Informações sobre o merchant que atende o pedido.

  <Expandable title="Campos de merchant">
    <ResponseField name="merchant.id" type="string (uuid)">
      Identificador único do merchant.
    </ResponseField>

    <ResponseField name="merchant.name" type="string">
      Nome de exibição do merchant.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="items" type="array of objects">
  Lista de itens incluídos no pedido.

  <Expandable title="Campos de item">
    <ResponseField name="items[].id" type="string (uuid)">
      Identificador único do item.
    </ResponseField>

    <ResponseField name="items[].name" type="string">
      Nome de exibição do item.
    </ResponseField>

    <ResponseField name="items[].externalCode" type="string">
      Código externo do item no seu PDV.
    </ResponseField>

    <ResponseField name="items[].unit" type="string">
      Unidade de medida, por exemplo `UN`.
    </ResponseField>

    <ResponseField name="items[].quantity" type="number">
      Quantidade pedida. É um inteiro para itens vendidos por unidade (`unit: "UN"`) e um número fracionário para itens vendidos por peso (`unit: "KG"`, por exemplo `1.5` para 1,5 kg).
    </ResponseField>

    <ResponseField name="items[].specialInstructions" type="string">
      Instruções especiais do cliente para este item.
    </ResponseField>

    <ResponseField name="items[].unitPrice" type="object">
      Preço unitário com `value` (número em reais, BRL) e `currency` (por exemplo, `"BRL"`).
    </ResponseField>

    <ResponseField name="items[].originalPrice" type="object">
      Preço unitário original (antes de descontos aplicados no item), com `value` e `currency`.
    </ResponseField>

    <ResponseField name="items[].totalPrice" type="object">
      Preço total da linha com `value` (em reais, BRL) e `currency`.
    </ResponseField>

    <ResponseField name="items[].options" type="array of objects">
      Opções de customização selecionadas (adicionais, variantes), cada uma com `id`, `name`, `quantity`, `unitPrice` e `totalPrice`.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="total" type="object">
  Detalhamento de totais do pedido.

  <Expandable title="Campos de total">
    <ResponseField name="total.itemsPrice" type="object">
      Preço total de todos os itens (`value` + `currency`).
    </ResponseField>

    <ResponseField name="total.otherFees" type="object">
      Taxas adicionais, como taxa de entrega (`value` + `currency`).
    </ResponseField>

    <ResponseField name="total.discount" type="object">
      Total de desconto aplicado (`value` + `currency`).
    </ResponseField>

    <ResponseField name="total.orderAmount" type="object">
      Total cobrado do cliente (`value` + `currency`).
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="customer" type="object">
  Informações do cliente.

  <Expandable title="Campos de customer">
    <ResponseField name="customer.id" type="string (uuid)">
      Identificador único do cliente.
    </ResponseField>

    <ResponseField name="customer.name" type="string">
      Nome completo do cliente.
    </ResponseField>

    <ResponseField name="customer.phone" type="object">
      Telefone do cliente com `number` e `extension` opcional.
    </ResponseField>

    <ResponseField name="customer.email" type="string">
      E-mail do cliente.
    </ResponseField>

    <ResponseField name="customer.documentNumber" type="string">
      Número do documento fiscal do cliente (CPF/CNPJ).
    </ResponseField>

    <ResponseField name="customer.ordersCountOnMerchant" type="integer">
      Quantidade de pedidos anteriores que este cliente fez na sua loja.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="payments" type="object">
  Detalhes de pagamento do pedido.

  <Expandable title="Campos de payments">
    <ResponseField name="payments.prepaid" type="number">
      Valor já pago pelo cliente (por exemplo, no app).
    </ResponseField>

    <ResponseField name="payments.pending" type="number">
      Valor a ser cobrado na entrega.
    </ResponseField>

    <ResponseField name="payments.methods" type="array of objects">
      Lista de meios de pagamento utilizados, cada um com `value`, `currency`, `type` (`PREPAID`/`PENDING`), `method` (por exemplo, `CREDIT`, `CASH`), `brand` e `changeFor` opcional.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="delivery" type="object">
  Informações da entrega (presente quando `type` é `DELIVERY`).

  <Expandable title="Campos de delivery">
    <ResponseField name="delivery.deliveredBy" type="string">
      Quem é responsável pela entrega. Atualmente a API sempre retorna `MERCHANT` (a entrega é conduzida pela integração do merchant).
    </ResponseField>

    <ResponseField name="delivery.deliveryAddress" type="object">
      Endereço completo de entrega incluindo `street`, `number`, `complement`, `district`, `city`, `state`, `postalCode`, `country`, `formattedAddress`, `reference` e `coordinates` (`latitude`, `longitude`).
    </ResponseField>

    <ResponseField name="delivery.estimatedDeliveryDateTime" type="string (date-time)">
      Tempo estimado de entrega.
    </ResponseField>

    <ResponseField name="delivery.deliveryDateTime" type="string (date-time)">
      Data/hora real de entrega, uma vez entregue.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="orderTiming" type="string">
  Indica se o pedido é `INSTANT` (entregar o mais rápido possível) ou `SCHEDULED`.
</ResponseField>

<ResponseField name="schedule" type="object">
  Janela de entrega agendada, presente quando `orderTiming` é `SCHEDULED`, com `scheduledDateTimeStart` e `scheduledDateTimeEnd`. `null` para pedidos `INSTANT`.
</ResponseField>

<ResponseField name="takeout" type="object">
  Informações de retirada (presente quando `type` é `TAKEOUT`), com `mode` e `takeoutDateTime`.
</ResponseField>

<ResponseField name="otherFees" type="array of objects">
  Taxas adicionais do pedido (por exemplo, frete e taxa de serviço). Cada objeto tem `name`, `type` (por exemplo, `DELIVERY_FEE`, `SERVICE_FEE`) e `price` (`value` + `currency`).
</ResponseField>

<ResponseField name="discounts" type="array of objects">
  Descontos aplicados ao pedido, cada um com `amount` (`value` + `currency`), `target` e `sponsorshipValues`.
</ResponseField>

<ResponseField name="extraInfo" type="string">
  Observações do pedido (comentários do cliente).
</ResponseField>

<ResponseField name="preparationStartDateTime" type="string (date-time) | null">
  Momento em que o preparo começou, quando disponível.
</ResponseField>

<ResponseField name="sendTracking" type="boolean">
  Indica se sua integração deve enviar atualizações de rastreamento via `POST /v1/orders/{orderId}/tracking`. Atualmente a API sempre retorna `true`.
</ResponseField>

<ResponseField name="sendDelivered" type="boolean">
  Indica se o pedido espera confirmação de entrega. Atualmente a API sempre retorna `true`.
</ResponseField>

### 401: Não autorizado

Retornado quando a requisição não inclui credenciais de autenticação válidas.

### 404: Não encontrado

Nenhum pedido foi encontrado com o `orderId` informado.

## Exemplo de requisição

<CodeGroup>
  ```bash Sandbox theme={null}
  curl --request GET \
    --url "https://api.dev.connect.onbeefapp.com.br/v1/orders/f47ac10b-58cc-4372-a567-0e02b2c3d479" \
    --header "Authorization: Bearer <token>"
  ```

  ```bash Produção theme={null}
  curl --request GET \
    --url "https://api.connect.onbeefapp.com.br/v1/orders/f47ac10b-58cc-4372-a567-0e02b2c3d479" \
    --header "Authorization: Bearer <token>"
  ```
</CodeGroup>

## Exemplo de resposta

```json theme={null}
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "type": "DELIVERY",
  "displayId": "ABC-123",
  "salesChannel": "ONBEEF",
  "createdAt": "2019-08-24T14:15:22Z",
  "lastEvent": "CREATED",
  "merchant": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "name": "Meu Açougue"
  },
  "items": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "name": "Picanha",
      "externalCode": "MEAT-001",
      "unit": "KG",
      "quantity": 1.5,
      "specialInstructions": "Corte em bifes",
      "unitPrice": { "value": 89.90, "currency": "BRL" },
      "originalPrice": { "value": 89.90, "currency": "BRL" },
      "totalPrice": { "value": 134.85, "currency": "BRL" },
      "options": []
    }
  ],
  "otherFees": [
    { "name": "Frete", "type": "DELIVERY_FEE", "price": { "value": 5.00, "currency": "BRL" } }
  ],
  "discounts": [],
  "total": {
    "itemsPrice": { "value": 134.85, "currency": "BRL" },
    "otherFees": { "value": 5.00, "currency": "BRL" },
    "discount": { "value": 0, "currency": "BRL" },
    "orderAmount": { "value": 139.85, "currency": "BRL" }
  },
  "customer": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "name": "João da Silva",
    "phone": { "number": "+5511999999999", "extension": null },
    "email": "joao@example.com",
    "documentNumber": null,
    "ordersCountOnMerchant": 3
  },
  "payments": {
    "prepaid": 139.85,
    "pending": 0,
    "methods": [
      {
        "value": 139.85,
        "currency": "BRL",
        "type": "PREPAID",
        "method": "CREDIT",
        "brand": null,
        "methodInfo": null
      }
    ]
  },
  "delivery": {
    "deliveredBy": "MERCHANT",
    "deliveryAddress": {
      "street": "Rua das Flores",
      "number": "100",
      "district": "Centro",
      "city": "São Paulo",
      "state": "SP",
      "postalCode": "01310-100",
      "country": "BR",
      "formattedAddress": "Rua das Flores, 100 - Centro, São Paulo - SP",
      "coordinates": { "latitude": -23.5505, "longitude": -46.6333 }
    }
  },
  "orderTiming": "INSTANT",
  "sendTracking": true,
  "sendDelivered": true
}
```

<Tip>
  Os valores monetários na resposta (por exemplo, `unitPrice.value`) são expressos em reais (BRL) como número decimal, por exemplo `89.90` para R\$ 89,90. **Não** divida por 100.
</Tip>
