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

# Disparar uma busca-e-ingestão manual de um transporte externo

> Lista cada objeto que corresponde às coordenadas de transporte fornecidas (SFTP hoje) e faz streaming de cada um para o pipeline de ingestão de conteúdo confiável (dedup + outbox + match-trigger), retornando um resultado por arquivo na ordem de busca. O tenant é resolvido do JWT e o contexto/origem do path — NUNCA do corpo. O corpo carrega coordenadas de conexão mais uma referência de credencial OPACA, nunca um segredo. Uma falha de busca em nível de transporte (o endpoint externo está inacessível ou rejeita a credencial) retorna 503; falhas de ingestão por arquivo são reportadas no corpo da resposta sem fazer o lote falhar.



## OpenAPI

````yaml pt/openapi/v3-current/matcher.yaml post /v1/imports/contexts/{contextId}/sources/{sourceId}/fetch
openapi: 3.1.0
info:
  title: Matcher APIs
  description: >-
    Referência completa de API para o motor de conciliação Matcher, que fornece
    conciliação automática de transações entre o Midaz Ledger e sistemas
    externos.
  version: 4.1.0
  license:
    name: Elastic License 2.0
    url: https://www.elastic.co/licensing/elastic-license
servers:
  - url: https://matcher.sandbox.lerian.net
security: []
paths:
  /v1/imports/contexts/{contextId}/sources/{sourceId}/fetch:
    post:
      tags:
        - Ingestion
      summary: Disparar uma busca-e-ingestão manual de um transporte externo
      description: >-
        Lista cada objeto que corresponde às coordenadas de transporte
        fornecidas (SFTP hoje) e faz streaming de cada um para o pipeline de
        ingestão de conteúdo confiável (dedup + outbox + match-trigger),
        retornando um resultado por arquivo na ordem de busca. O tenant é
        resolvido do JWT e o contexto/origem do path — NUNCA do corpo. O corpo
        carrega coordenadas de conexão mais uma referência de credencial OPACA,
        nunca um segredo. Uma falha de busca em nível de transporte (o endpoint
        externo está inacessível ou rejeita a credencial) retorna 503; falhas de
        ingestão por arquivo são reportadas no corpo da resposta sem fazer o
        lote falhar.
      operationId: fetchTrigger
      parameters:
        - description: Context ID
          in: path
          name: contextId
          required: true
          schema:
            description: ID do contexto
            format: uuid
            type: string
        - description: Source ID
          in: path
          name: sourceId
          required: true
          schema:
            description: ID da origem
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FetchTriggerRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchTriggerResponse'
          description: Aceito
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Erro
      security:
        - BearerAuth: []
components:
  schemas:
    FetchTriggerRequest:
      additionalProperties: false
      properties:
        connectOptions:
          additionalProperties:
            type: string
          description: >-
            Ajuste de transporte não secreto opcional (ex.: known_hosts, user,
            timeout_seconds)
          type: object
        credentialRef:
          description: Referência opaca de credencial armazenada (não é um segredo)
          examples:
            - cred-handle-123
          minLength: 1
          type: string
        format:
          description: >-
            Dica de formato de conteúdo de fallback aplicada quando um objeto
            obtido não declara nenhum. Aceita a chave de FormatDescriptor com
            namespace (região/família/variante) ou os aliases planos legados
            (cnab240, cielo_edi, ...); ambos resolvem pelo mesmo registro de
            parser
          examples:
            - br/cnab240/febraban-base
          type: string
        glob:
          description: Filtro glob opcional; vazio obtém todos
          examples:
            - '*.ret'
          type: string
        host:
          description: Hostname ou IP do endpoint remoto
          examples:
            - sftp.bank.example
          minLength: 1
          type: string
        kind:
          description: Tipo de transporte que seleciona o adaptador
          enum:
            - sftp
            - https
            - s3
            - imap
          examples:
            - sftp
          type: string
        path:
          description: Diretório remoto para listar/obter
          examples:
            - outbound/returns
          minLength: 1
          type: string
        port:
          description: Porta do endpoint remoto
          examples:
            - 22
          format: int64
          maximum: 65535
          minimum: 1
          type: integer
      required:
        - host
        - port
        - path
        - credentialRef
      type: object
    FetchTriggerResponse:
      additionalProperties: false
      properties:
        files:
          description: >-
            Resultados por arquivo do lote de busca-e-ingestão, na ordem de
            busca
          items:
            $ref: '#/components/schemas/FileOutcomeResponse'
          type:
            - array
            - 'null'
      required:
        - files
      type: object
    Detail:
      additionalProperties: false
      properties:
        code:
          description: >-
            Código de erro de domínio estável e legível por máquina com escopo
            no serviço emissor (formato: <SERVICE>-NNNN).
          examples:
            - ERR-0001
          type: string
        detail:
          description: >-
            Uma explicação legível por humanos específica para esta ocorrência
            do problema.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Lista opcional de detalhes de erro individuais
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            Uma referência URI que identifica a ocorrência específica do
            problema.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: Código de status HTTP
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            Um resumo curto e legível por humanos do tipo do problema. Este
            valor não deve mudar entre ocorrências do erro.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: >-
            Uma referência URI para documentação legível por humanos sobre o
            erro.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    FileOutcomeResponse:
      additionalProperties: false
      properties:
        error:
          description: Mensagem de falha de ingestão por arquivo; vazia em caso de sucesso
          examples:
            - ''
          type: string
        ingestionJobId:
          description: >-
            ID do job de ingestão downstream; vazio quando o objeto falhou na
            ingestão
          examples:
            - 550e8400-e29b-41d4-a716-446655440000
          format: uuid
          type: string
        name:
          description: Nome base do objeto obtido
          examples:
            - statement-2025-06.ret
          type: string
        transactionCount:
          description: Número de transações ingeridas deste objeto; zero em caso de falha
          examples:
            - 42
          format: int64
          type: integer
      required:
        - name
        - transactionCount
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: 'Onde o erro ocorreu, ex.: ''body.items[3].tags'' ou ''path.thing-id'''
          type: string
        message:
          description: Texto da mensagem de erro
          type: string
        value:
          description: O valor na localização informada
      type: object
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Autenticação por Bearer token (formato: "Bearer {token}")'

````