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

# Obter pedido

> Detalhe de um pedido pelo identificador — 404 para pedidos fora do escopo da aplicação

Detalha um pedido pelo identificador retornado em `id` na [listagem](/open-delivery/listar-pedidos). O corpo é o mesmo objeto da listagem: `storeId` identifica o merchant, valores monetários em **centavos**, `originChannel` é a modalidade e `customer` traz o identificador canônico do cliente.

<Warning>
  Pedidos de merchants **fora do escopo da sua aplicação respondem `404`**, exatamente como pedidos inexistentes — a API não revela a existência de pedidos de estabelecimentos que não autorizaram a integração. Se um pedido acessível antes passou a responder 404, verifique se o estabelecimento desativou a integração.
</Warning>

## Erros

| HTTP  | `code` no corpo | Quando acontece                                      | O que fazer                                                                                                                    |
| ----- | --------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `401` | `UNAUTHORIZED`  | Token ausente, inválido ou expirado                  | Gere um novo token em [Obter token](/open-delivery/obter-token)                                                                |
| `403` | `FORBIDDEN`     | Aplicação sem nenhum merchant vinculado              | Aguarde ao menos um estabelecimento ativar a integração                                                                        |
| `404` | `NOT_FOUND`     | Pedido inexistente **ou de merchant fora do escopo** | Confirme o `id` na [listagem](/open-delivery/listar-pedidos) e o escopo em [Listar merchants](/open-delivery/listar-merchants) |

<Card title="Listar pedidos" icon="receipt" href="/open-delivery/listar-pedidos">
  Filtros por cliente, modalidade e janelas de data — de onde vem o `orderId` usado aqui.
</Card>


## OpenAPI

````yaml openapi.yaml GET /od/v2/orders/{orderId}
openapi: 3.0.1
info:
  title: Repediu — API de integração
  description: >-
    API de integração da Repediu: rotas Open Delivery 2.0 (capabilities CRM),
    dado bruto do CRM do parceiro (/v1/stores) e métricas agregadas
    (/v1/stores/.../metrics). A autenticação usa o fluxo client_credentials: o
    token identifica a aplicação integradora e dá acesso a todos os
    estabelecimentos (merchants) que ativaram a integração.
  version: v2
servers:
  - url: https://public-api.repediu.com.br
    description: Produção
security:
  - Bearer: []
paths:
  /od/v2/orders/{orderId}:
    get:
      tags:
        - Pedidos
      summary: Obter pedido
      description: >-
        Detalha um pedido pelo identificador. Pedidos de merchants fora do
        escopo da aplicação respondem 404 — a existência não é revelada.
      operationId: getOrder
      parameters:
        - name: orderId
          in: path
          required: true
          description: Identificador do pedido, retornado em `id` na listagem.
          schema:
            type: string
      responses:
        '200':
          description: Pedido encontrado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderResponse'
              example:
                id: '1107300'
                storeId: 07f3bb0c-927a-4d99-9ea3-c22ecce8721c
                originChannel: delivery
                customer:
                  identifier:
                    type: phone
                    value: '5517999998888'
                  externalIds:
                    - source: repediu
                      value: CLI-0042
                totalAmount: 7590
                items:
                  - sku: PRD-101
                    name: Pastel de Carne
                    quantity: 2
                    unitPrice: 1200
                  - sku: PRD-305
                    name: Caldo de Cana 500ml
                    quantity: 1
                    unitPrice: 5190
                metadata:
                  channel: iFood
                createdAt: '2026-06-18T20:12:44-03:00'
                updatedAt: '2026-06-18T20:45:02-03:00'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: Pedido inexistente ou de merchant fora do escopo da aplicação.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                code: NOT_FOUND
                message: Order not found
                details: null
components:
  schemas:
    OrderResponse:
      type: object
      properties:
        id:
          type: string
          description: Identificador do pedido na Repediu.
        storeId:
          type: string
          format: uuid
          description: >-
            Identificador do merchant dono do pedido (mesmo id de
            /od/v2/merchants).
        originChannel:
          type: string
          description: >-
            Modalidade do pedido. Pedidos sem modalidade mapeada retornam
            `other`.
          enum:
            - own_app
            - marketplace
            - in_store
            - qr_code
            - kiosk
            - delivery
            - takeout
            - other
        customer:
          type: object
          properties:
            identifier:
              $ref: '#/components/schemas/CustomerIdentifier'
            externalIds:
              type: array
              items:
                type: object
                properties:
                  source:
                    type: string
                  value:
                    type: string
        totalAmount:
          type: integer
          format: int64
          description: Valor total do pedido em centavos.
        items:
          type: array
          items:
            type: object
            properties:
              sku:
                type: string
                description: Código do produto.
              name:
                type: string
              quantity:
                type: number
              unitPrice:
                type: integer
                format: int64
                description: Preço unitário em centavos.
        metadata:
          type: object
          description: Dados complementares do pedido.
          properties:
            channel:
              type: string
              nullable: true
              description: >-
                Modalidade/canal da venda como texto livre. Null quando a venda
                não informou canal.
        createdAt:
          type: string
          format: date-time
          description: Data da venda.
        updatedAt:
          type: string
          format: date-time
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          description: >-
            Código do erro (BAD_REQUEST, UNAUTHORIZED, FORBIDDEN, NOT_FOUND,
            INTERNAL_SERVER_ERROR).
        message:
          type: string
        details:
          type: array
          nullable: true
          description: Lista de mensagens de validação, quando aplicável.
          items:
            type: string
    CustomerIdentifier:
      type: object
      description: >-
        Identificador canônico do cliente, escolhido nesta ordem de prioridade —
        document, phone, email, external_id.
      properties:
        type:
          type: string
          enum:
            - document
            - phone
            - email
            - external_id
        value:
          type: string
  responses:
    Unauthorized:
      description: Token ausente, inválido ou expirado.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: UNAUTHORIZED
            message: Invalid client credentials.
            details: null
    Forbidden:
      description: Token sem o escopo od.crm ou aplicação sem nenhum merchant vinculado.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: FORBIDDEN
            message: Application is not authorized to access any merchant.
            details: null
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Token de acesso emitido por POST /od/v2/oauth/token (fluxo
        client_credentials). Envie no header Authorization como `Bearer
        <token>`.

````