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

# Resumo de pedidos

> Retorna métricas agregadas dos pedidos do estabelecimento no período informado: quantidade de pedidos (`total_order_count`), soma dos valores totais (`total_revenue`) e valor médio do pedido (`average_order_value`).

Este endpoint devolve totais, não a lista de pedidos. Para consultar pedidos individuais, use o [histórico](/api-reference/pedidos/historico-de-pedidos) ou o [polling](/api-reference/pedidos/polling-de-pedidos).

O parâmetro `group_by` não é aceito neste endpoint. Para quebrar as métricas por dimensão, use `GET /orders/summary/grouped`.

**Autenticação:** OAuth 2.0 com escopo `orders`. Não aceita API Key.

**Rate limit:** 5 requisições por minuto.

### Período

`start_date` e `end_date` são obrigatórios. O intervalo não pode ultrapassar 6 meses, e o início não pode retroceder mais de 3 anos.

O campo `date_field` define qual data do pedido é usada no recorte:

- `created_at` (padrão): data de criação do pedido. Envie datetime ISO 8601 com offset, por exemplo `2025-06-01T00:00:00-03:00`.
- `scheduled_date`: data de agendamento do pedido, correspondente ao objeto `schedule`. Envie apenas a data `YYYY-MM-DD`.

### Filtros

Filtros são opcionais e usam o formato plano `filters[campo_operador]`. Os nomes dos campos são os mesmos do pedido.

Exemplos:

- `filters[status_in]=closed`
- `filters[status_in]=closed&filters[status_in]=canceled`
- `filters[driver_id_in]=42`
- `filters[total_gteq]=50`
- `filters[customer_origin_null]=true`

Não envie objetos aninhados, como `filters[status][in]`.

| Campo | Operadores | Valores |
| --- | --- | --- |
| `order_type` | `in`, `not_in` | `delivery`, `takeout`, `onsite`, `closed_table` |
| `order_timing` | `in`, `not_in` | `immediate`, `scheduled` |
| `sales_channel` | `in`, `not_in` | `catalog`, `store_front_catalog`, `table_catalog`, `portal`, `integration`, `ifood`, `whatsapp_extension`, `food99`, `aiqfome`, `keeta`, `totem` |
| `status` | `in`, `not_in` | `waiting_confirmation`, `confirmed`, `scheduled_confirmed`, `ready`, `waiting_to_catch`, `released`, `delivered`, `pending_payment`, `closed`, `canceled` |
| `payment_method_id` | `in`, `not_in` | ID do método de pagamento |
| `driver_id` | `in`, `not_in` | ID público positivo do entregador |
| `customer_origin` | `in`, `not_in`, `null`, `not_null` | origem do pedido, até 255 caracteres |
| `created_at_time` | `eq`, `gt`, `lt`, `gteq`, `lteq` | horário de `created_at` (`HH:MM`) |
| `total` | `eq`, `not_eq`, `gt`, `lt`, `gteq`, `lteq` | valor total do pedido |
| `delivery_fee` | `eq`, `not_eq`, `gt`, `lt`, `gteq`, `lteq` | taxa de entrega |

Operadores `null` e `not_null` devem receber `true`.



## OpenAPI

````yaml /reference/api-pedidos.json get /api/partner/v1/orders/summary
openapi: 3.1.0
info:
  title: API Pedidos
  version: '1.0'
  contact:
    email: integracao@cardapioweb.com
    name: Cardápio Web
    url: https://cardapioweb.com
  description: >-
    A API de pedidos acompanha pedidos de um estabelecimento, permite alterações
    de status e consulta resumos e rankings de vendas.


    ## Autenticação


    Apps da CW App Store usam `Authorization: Bearer <access_token>` (OAuth 2.0)
    com escopo `orders`. A associação e a remoção de entregadores também exigem
    o escopo `drivers`.


    Integrações legadas usam `X-API-KEY`. A criação de pedidos (`POST /orders`)
    também exige `X-PARTNER-KEY`. Os endpoints de resumo, rankings de vendas e
    gestão do entregador exigem OAuth 2.0 e não aceitam API Key.


    Consulte a documentação em /autenticacao/modelos-de-autenticacao.


    ## Rate Limits


    Histórico de pedidos (`GET /orders/history`), resumos e rankings de vendas
    (`GET /orders/summary`, `GET /orders/summary/*`): **5 requisições por minuto
    por endpoint**. Demais endpoints: **300 requisições a cada 3 minutos**.
    Consulte /sobre-a-api#rate-limits.
servers:
  - url: https://integracao.sandbox.cardapioweb.com
    description: Sandbox
  - url: https://integracao.cardapioweb.com
    description: Produção
security:
  - bearerAuth: []
  - apiKey: []
paths:
  /api/partner/v1/orders/summary:
    get:
      summary: Resumo de pedidos
      description: >-
        Retorna métricas agregadas dos pedidos do estabelecimento no período
        informado: quantidade de pedidos (`total_order_count`), soma dos valores
        totais (`total_revenue`) e valor médio do pedido
        (`average_order_value`).


        Este endpoint devolve totais, não a lista de pedidos. Para consultar
        pedidos individuais, use o
        [histórico](/api-reference/pedidos/historico-de-pedidos) ou o
        [polling](/api-reference/pedidos/polling-de-pedidos).


        O parâmetro `group_by` não é aceito neste endpoint. Para quebrar as
        métricas por dimensão, use `GET /orders/summary/grouped`.


        **Autenticação:** OAuth 2.0 com escopo `orders`. Não aceita API Key.


        **Rate limit:** 5 requisições por minuto.


        ### Período


        `start_date` e `end_date` são obrigatórios. O intervalo não pode
        ultrapassar 6 meses, e o início não pode retroceder mais de 3 anos.


        O campo `date_field` define qual data do pedido é usada no recorte:


        - `created_at` (padrão): data de criação do pedido. Envie datetime ISO
        8601 com offset, por exemplo `2025-06-01T00:00:00-03:00`.

        - `scheduled_date`: data de agendamento do pedido, correspondente ao
        objeto `schedule`. Envie apenas a data `YYYY-MM-DD`.


        ### Filtros


        Filtros são opcionais e usam o formato plano `filters[campo_operador]`.
        Os nomes dos campos são os mesmos do pedido.


        Exemplos:


        - `filters[status_in]=closed`

        - `filters[status_in]=closed&filters[status_in]=canceled`

        - `filters[driver_id_in]=42`

        - `filters[total_gteq]=50`

        - `filters[customer_origin_null]=true`


        Não envie objetos aninhados, como `filters[status][in]`.


        | Campo | Operadores | Valores |

        | --- | --- | --- |

        | `order_type` | `in`, `not_in` | `delivery`, `takeout`, `onsite`,
        `closed_table` |

        | `order_timing` | `in`, `not_in` | `immediate`, `scheduled` |

        | `sales_channel` | `in`, `not_in` | `catalog`, `store_front_catalog`,
        `table_catalog`, `portal`, `integration`, `ifood`, `whatsapp_extension`,
        `food99`, `aiqfome`, `keeta`, `totem` |

        | `status` | `in`, `not_in` | `waiting_confirmation`, `confirmed`,
        `scheduled_confirmed`, `ready`, `waiting_to_catch`, `released`,
        `delivered`, `pending_payment`, `closed`, `canceled` |

        | `payment_method_id` | `in`, `not_in` | ID do método de pagamento |

        | `driver_id` | `in`, `not_in` | ID público positivo do entregador |

        | `customer_origin` | `in`, `not_in`, `null`, `not_null` | origem do
        pedido, até 255 caracteres |

        | `created_at_time` | `eq`, `gt`, `lt`, `gteq`, `lteq` | horário de
        `created_at` (`HH:MM`) |

        | `total` | `eq`, `not_eq`, `gt`, `lt`, `gteq`, `lteq` | valor total do
        pedido |

        | `delivery_fee` | `eq`, `not_eq`, `gt`, `lt`, `gteq`, `lteq` | taxa de
        entrega |


        Operadores `null` e `not_null` devem receber `true`.
      operationId: orders-summary
      parameters:
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            example: '2025-06-01T00:00:00-03:00'
          description: >-
            Início do período. Com `date_field=created_at`, use datetime ISO
            8601 com offset. Com `date_field=scheduled_date` (agendamento, campo
            `schedule`), use `YYYY-MM-DD`.
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            example: '2025-06-30T23:59:59-03:00'
          description: >-
            Fim do período. O intervalo em relação a `start_date` não pode
            ultrapassar 6 meses.
        - name: date_field
          in: query
          required: false
          schema:
            type: string
            enum:
              - created_at
              - scheduled_date
            default: created_at
          description: >-
            Data do pedido usada no recorte. `created_at` é a data de criação.
            `scheduled_date` é a data de agendamento (`schedule`).
        - name: filters
          in: query
          required: false
          style: deepObject
          explode: true
          schema:
            type: object
            additionalProperties: true
          description: >-
            Filtros no formato `filters[campo_operador]`. Veja a tabela na
            descrição do endpoint.
      responses:
        '200':
          description: Métricas do período retornadas com sucesso.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrdersSummary'
              example:
                total_order_count: 2
                total_revenue: 150
                average_order_value: 75
        '400':
          description: Algum parâmetro enviado é inválido.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
              examples:
                Período inválido:
                  value:
                    code: 4000
                    message: Parâmetros inválidos.
                    details: start_date deve ser datetime ISO 8601 com offset.
                Filtro inválido:
                  value:
                    code: 4000
                    message: Parâmetros inválidos.
                    details: filtro delivered_by não é permitido
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - bearerAuth: []
components:
  schemas:
    OrdersSummary:
      type: object
      title: OrdersSummary
      description: Métricas agregadas de pedidos no período.
      required:
        - total_order_count
        - total_revenue
        - average_order_value
      properties:
        total_order_count:
          type: integer
          description: Quantidade de pedidos no período, considerando os filtros aplicados.
        total_revenue:
          type: number
          description: Soma dos valores totais (`total`) dos pedidos no período.
        average_order_value:
          type: number
          description: Valor médio do pedido no período.
    BadRequest:
      type: object
      examples:
        - code: 4000
          message: Parâmetros inválidos
          details: updated_since não é uma data válida
        - code: 4000
          message: Parâmetros inválidos
          details: status contém valores inválidos
      properties:
        code:
          type: integer
          description: Código interno de identificação do erro.
        message:
          type: string
          description: Mensagem de resumo do erro.
        details:
          type: string
          description: Informações adicionais sobre o erro.
      required:
        - code
        - message
      title: BadRequest
      x-internal: false
    Unauthorized:
      type: object
      x-stoplight:
        id: 5cdf37ldhxqd8
      examples:
        - code: 4010
          message: Token inválido
      title: Unauthorized
      x-internal: false
      properties:
        code:
          type: integer
          description: Código interno de identificação do erro.
        message:
          type: string
          description: Mensagem de resumo do erro.
      required:
        - code
        - message
  responses:
    Unauthorized:
      description: >-
        Não autorizado. Token OAuth inválido ou ausente, ou X-API-KEY
        inválido/ausente no modelo legado.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Unauthorized'
    TooManyRequests:
      description: >-
        Muitas requisições foram feitas em um curto período. Verifique nossas
        regras de rate limit.
      content: {}
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: OAuth2
      description: >-
        Access token OAuth 2.0 de app instalado na CW App Store. Escopo
        principal: orders. A gestão do entregador também exige drivers.
    apiKey:
      name: X-API-KEY
      type: apiKey
      in: header
      description: >-
        Token específico do estabelecimento integrado. Disponível na seção de
        integrações do Portal do estabelecimento.

````