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

# Consultar operação

> Retorna o envelope de status da operação. As contagens ficam null até o status `completed`; em `failed`, os tokens são estornados. Depois de `completed`, busque a árvore de resultado em GET /operations/{id}/result.



## OpenAPI

````yaml /openapi/motor-credito.json get /operations/{id}
openapi: 3.0.0
info:
  title: Sherlocker Motor de Borderô - API v1
  description: >-
    API pública do Motor de Borderô: cria operações assíncronas de análise de
    borderô CNAB 400 via multipart/form-data (cedente, sacados, títulos e
    validação cruzada com NFe), consulta o status por polling e busca o
    resultado hierárquico (cedente → sacados → títulos, com issues por nó) em
    /result. Autenticação por chave de API (Bearer slhk_) no header. Erros em
    RFC 7807 (application/problem+json). Em beta: requer a feature
    analysis_engine habilitada no workspace.
  version: '1.0'
servers:
  - url: https://221b-api.sherlocker.com.br/api/v1
    description: >-
      Mesma base da API 221b. Autentica via Authorization: Bearer slhk_ (nao usa
      ?token=).
security:
  - bearerAuth: []
paths:
  /operations/{id}:
    get:
      tags:
        - Operações
      summary: Consultar operação
      description: >-
        Retorna o envelope de status da operação. As contagens ficam null até o
        status `completed`; em `failed`, os tokens são estornados. Depois de
        `completed`, busque a árvore de resultado em GET
        /operations/{id}/result.
      operationId: getOperation
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID da operação (campo operation_id da resposta do POST).
        - name: x-request-id
          in: header
          required: false
          schema:
            type: string
          description: >-
            Identificador de rastreio opcional fornecido pelo cliente. Ecoado no
            header da resposta (nunca no body).
      responses:
        '200':
          description: Estado atual da operação.
          headers:
            x-request-id:
              schema:
                type: string
              description: Identificador da requisição (ecoado ou gerado).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
              examples:
                processing:
                  summary: Em processamento
                  value:
                    id: b2c3d4e5-0000-0000-0000-000000000001
                    status: processing
                    file_name: bordero.rem
                    file_size: 4440
                    engine_id: 0b3c6c7e-9d2a-4f1b-8e5d-2a1b3c4d5e6f
                    titulo_count: null
                    approved_count: null
                    blocked_count: null
                    alert_count: null
                    created_at: '2026-07-09T12:00:00.000Z'
                    queued_at: '2026-07-09T12:00:00.000Z'
                    processing_at: '2026-07-09T12:00:02.000Z'
                    completed_at: null
                    error: null
                completed:
                  summary: Concluída
                  value:
                    id: b2c3d4e5-0000-0000-0000-000000000001
                    status: completed
                    file_name: bordero.rem
                    file_size: 4440
                    engine_id: 0b3c6c7e-9d2a-4f1b-8e5d-2a1b3c4d5e6f
                    titulo_count: 12
                    approved_count: 9
                    blocked_count: 2
                    alert_count: 1
                    created_at: '2026-07-09T12:00:00.000Z'
                    queued_at: '2026-07-09T12:00:00.000Z'
                    processing_at: '2026-07-09T12:00:02.000Z'
                    completed_at: '2026-07-09T12:02:15.000Z'
                    error: null
        '401':
          description: Chave de API ausente, malformada, inválida ou revogada.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: Operação inexistente ou pertencente a outro workspace.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://docs.sherlocker.com.br/problems/not_found
                title: Not Found
                status: 404
                code: not_found
                detail: Operation not found
                instance: /v1?request_id=3166fb9a-384c-44b7-ab77-90aca3146e0a
components:
  schemas:
    Operation:
      type: object
      required:
        - id
        - status
        - file_name
        - engine_id
        - created_at
        - queued_at
      description: >-
        Envelope de status da operação. Todos os campos estão sempre presentes;
        as contagens são null até status completed.
      properties:
        id:
          type: string
          format: uuid
          description: UUID da operação.
        status:
          type: string
          enum:
            - queued
            - processing
            - completed
            - failed
          description: >-
            Estado do ciclo de vida da operação. Em failed, os tokens são
            estornados automaticamente.
        file_name:
          type: string
          description: Nome do arquivo CNAB enviado.
        file_size:
          type: number
          nullable: true
          description: Tamanho do arquivo em bytes. Pode ser null em operações antigas.
        engine_id:
          type: string
          description: >-
            Engine de borderô efetivamente usada (explícita ou o template do
            sistema).
        titulo_count:
          type: number
          nullable: true
          description: Total de títulos do borderô. null até status completed.
        approved_count:
          type: number
          nullable: true
          description: Títulos aprovados. null até status completed.
        blocked_count:
          type: number
          nullable: true
          description: Títulos bloqueados. null até status completed.
        alert_count:
          type: number
          nullable: true
          description: >-
            Títulos em alerta, incluindo os com análise incompleta (fonte
            indisponível). null até status completed. approved_count +
            blocked_count + alert_count = titulo_count.
        created_at:
          type: string
          format: date-time
          description: Timestamp ISO 8601 de criação.
        queued_at:
          type: string
          format: date-time
          description: Timestamp ISO 8601 do enfileiramento.
        processing_at:
          type: string
          format: date-time
          nullable: true
          description: Timestamp ISO 8601 do início do processamento; null enquanto queued.
        completed_at:
          type: string
          format: date-time
          nullable: true
          description: Timestamp ISO 8601 da conclusão. Preenchido apenas em completed.
        error:
          type: string
          nullable: true
          description: Mensagem de erro. Preenchida apenas em failed.
    Problem:
      type: object
      required:
        - type
        - title
        - status
        - code
      description: >-
        Erro no formato RFC 7807 (application/problem+json). Use o campo code
        para tratamento programático; type é apenas identificador.
      properties:
        type:
          type: string
          description: >-
            URI que identifica o tipo do problema
            (https://docs.sherlocker.com.br/problems/<code>).
        title:
          type: string
          description: Resumo curto do tipo do problema.
        status:
          type: integer
          description: Status HTTP desta ocorrência.
        code:
          type: string
          description: >-
            Código estável para tratamento programático (ex.:
            insufficient_tokens).
        detail:
          type: string
          description: Explicação legível específica desta ocorrência.
        instance:
          type: string
          description: Identificador da ocorrência (/v1?request_id=<request_id>).
        errors:
          type: array
          description: >-
            Erros de validação por campo (file, xmls, cedente_cnpj). Presente
            apenas em validation_error (400).
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
        required:
          type: number
          description: Tokens necessários. Presente apenas em insufficient_tokens (402).
        balance:
          type: number
          description: Saldo atual de tokens. Presente apenas em insufficient_tokens (402).
        request_access_url:
          type: string
          description: Onde solicitar acesso. Presente apenas em feature_not_enabled (403).
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Chave de API do workspace (prefixo slhk_), enviada no header:
        Authorization: Bearer slhk_sua_chave_aqui

````