> ## 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.

# Polling de pedidos

> Retorna os pedidos do estabelecimento modificados nas últimas 8 horas.

Para esse endpoint, é recomendado realizar um polling a cada 30 segundos. No entanto, sugerimos preferencialmente a integração por meio de Webhooks em vez de Polling.

Para otimizar o fluxo de integração, recomenda-se registrar o horário da última requisição e, ao realizar a requisição subsequente, enviar essa informação no parâmetro "updated_since". Dessa forma, somente as alterações ocorridas desde a última consulta serão retornadas. Além disso, também pode ser aplicado um filtro por status do pedido.

Levando em consideração possíveis pequenas discrepâncias de tempo entre o nosso servidor e o seu, pode ser útil adicionar um pequeno atraso ao parâmetro "updated_since".

Existem outros motivos de modificação dos pedidos além da mudança de status. No entanto, atualmente, não temos um controle mais completo de todos os possíveis motivos. Para acompanhar além da simples mudança de status, seria necessário comparar os JSON do pedido antes e depois, a fim de mapear o que foi alterado no pedido.

Pedidos de mesas e comandas só ficam disponíveis nesse endpoint após serem cancelados ou finalizados.

Pedido recebidos através de integrações como o iFood também são retornados nesse endpoint.



## OpenAPI

````yaml /reference/api-pedidos.json get /api/partner/v1/orders
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 é responsável pelo acompanhamento dos pedidos de um
    estabelecimento e pelas mudanças de status deles.
servers:
  - url: https://integracao.sandbox.cardapioweb.com
    description: Sandbox
  - url: https://integracao.cardapioweb.com
    description: Produção
security:
  - apiKey: []
paths:
  /api/partner/v1/orders:
    parameters: []
    get:
      summary: Polling de pedidos
      description: >-
        Retorna os pedidos do estabelecimento modificados nas últimas 8 horas.


        Para esse endpoint, é recomendado realizar um polling a cada 30
        segundos. No entanto, sugerimos preferencialmente a integração por meio
        de Webhooks em vez de Polling.


        Para otimizar o fluxo de integração, recomenda-se registrar o horário da
        última requisição e, ao realizar a requisição subsequente, enviar essa
        informação no parâmetro "updated_since". Dessa forma, somente as
        alterações ocorridas desde a última consulta serão retornadas. Além
        disso, também pode ser aplicado um filtro por status do pedido.


        Levando em consideração possíveis pequenas discrepâncias de tempo entre
        o nosso servidor e o seu, pode ser útil adicionar um pequeno atraso ao
        parâmetro "updated_since".


        Existem outros motivos de modificação dos pedidos além da mudança de
        status. No entanto, atualmente, não temos um controle mais completo de
        todos os possíveis motivos. Para acompanhar além da simples mudança de
        status, seria necessário comparar os JSON do pedido antes e depois, a
        fim de mapear o que foi alterado no pedido.


        Pedidos de mesas e comandas só ficam disponíveis nesse endpoint após
        serem cancelados ou finalizados.


        Pedido recebidos através de integrações como o iFood também são
        retornados nesse endpoint.
      operationId: 1-orders
      parameters:
        - schema:
            type: string
            format: date-time
            example: '2023-06-23T18:18:17-03:00'
          in: query
          name: updated_since
          description: >-
            Retorna apenas os pedidos que foram atualizados desde a data
            especificada. Deve ser uma data posterior a 24h atrás.
        - schema:
            type: string
            enum:
              - waiting_confirmation
              - confirmed
              - scheduled_confirmed
              - waiting_to_catch
              - released
              - closed
              - canceled
          in: query
          name: status[]
          description: >-
            Retorna apenas os pedidos com os status específicados. Para filtrar
            mais de um status na mesma requisição faça:
            status[]=confirmed&status[]=waiting_confirmation.
      responses:
        '200':
          description: >-
            Retorna um array com os pedidos encontrados.


            Para obter mais detalhes sobre a estrutura de um pedido, consulte
            nossa seção exclusiva sobre o assunto.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LiteOrder'
                  x-stoplight:
                    id: t62uceo8pawyc
          headers: {}
        '400':
          description: Algum parâmetro enviado é inválido.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    LiteOrder:
      type: object
      examples:
        - id: 7637457
          status: closed
          order_type: takeout
          order_timing: immediate
          sales_channel: portal
          created_at: '2023-06-23T15:23:19.813-03:00'
          updated_at: '2023-06-23T15:43:16.539-03:00'
      title: Pedido resumido
      x-internal: false
      properties:
        id:
          type: integer
          description: Identificador exclusivo do pedido.
        status:
          type: string
          description: >-
            Status do pedido.

            - `waiting_confirmation`: pedido pendente.

            - `pending_payment`: pedido de balcão com pagamento pendente.
            Disponível apenas se `sales_channel` for `store_front_catalog`.

            - `pending_online_payment`: pedido aguardando confirmação de um
            pagamento online. Usado no caso de pedidos com pagamento por pix
            automático.

            - `scheduled_confirmed`: pedido agendado confirmado. Disponível
            apenas se `order_timing` for `scheduled`.

            - `confirmed`: pedido confirmado e em preparação.

            - `ready`: pedido pronto, mas ainda não está disponível para
            retirada e nem saiu para entrega.

            - `released`: pedido saiu para entrega. Disponível apenas se
            `order_type` for `delivery`.

            - `waiting_to_catch`: pedido pronto e esperando retirada. Disponível
            apenas se `order_type` for `takeout` ou `onsite`.

            - `delivered`: pedido entregue. Disponível apenas se `order_type`
            for `delivery`.

            - `canceling`: pedido em processo de cancelamento. Uma vez nesse
            status o pedido irá para o status `canceled` ou então voltará para o
            status anterior. Usado no caso de pedidos com pagamento por cartão
            de crédito online.

            - `canceled`: pedido cancelado.

            - `closed`: pedido finalizado.
          enum:
            - waiting_confirmation
            - pending_payment
            - pending_online_payment
            - scheduled_confirmed
            - confirmed
            - ready
            - released
            - waiting_to_catch
            - delivered
            - canceling
            - canceled
            - closed
        order_type:
          type: string
          enum:
            - delivery
            - takeout
            - onsite
            - closed_table
          description: |-
            Tipo de pedido.
            - `delivery`: pedido de delivery.
            - `takeout`: pedido de retirada.
            - `onsite`: pedido de consumo no local.
            - `closed_table`: pedido de mesa ou comanda.
        order_timing:
          type: string
          enum:
            - immediate
            - scheduled
          description: >-
            Momento de entrega do pedido.

            - `immediate`: pedido deve ser preparado o mais breve possível.

            - `scheduled`: pedido deve ficar pronto apenas na data agendada, que
            é enviada no campo `schedule`.
        sales_channel:
          type: string
          enum:
            - catalog
            - store_front_catalog
            - portal
            - whatsapp_extension
            - ifood
          description: >-
            Indica por qual canal o pedido foi feito.

            - `catalog`: cardápio digital padrão (delivery e retirada).

            - `store_front_catalog`: cardápio digital de balcão (apenas
            retirada).

            - `portal`: portal de gestão.

            - `whatsapp_extension`: extensão do Google Chrome para WhatsApp.

            - `ifood`: pedidos recebidos através da integração com o iFood.
        created_at:
          type: string
          format: date-time
          description: Data e hora em que o pedido foi criado.
        updated_at:
          type: string
          format: date-time
          description: Data e hora da última vez que o pedido foi modificado.
    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. Não foi enviado o token no header "X-API-KEY" ou ele é
        inválido.
      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:
    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.

````