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

# Fazer upload de arquivo de transações

> Use este endpoint para fazer upload de um arquivo de transações (CSV, JSON ou XML) para importação em um contexto de conciliação. O arquivo é analisado, validado e as transações são extraídas para conciliação.



## OpenAPI

````yaml pt/openapi/v3-current/matcher.yaml post /v1/imports/contexts/{contextId}/sources/{sourceId}/upload
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: Lerian Studio General License
servers:
  - url: https://matcher.sandbox.lerian.net
security: []
paths:
  /v1/imports/contexts/{contextId}/sources/{sourceId}/upload:
    post:
      tags:
        - Ingestion
      summary: Fazer upload de arquivo de transações
      description: >-
        Use este endpoint para fazer upload de um arquivo de transações (CSV,
        JSON ou XML) para importação em um contexto de conciliação. O arquivo é
        analisado, validado e as transações são extraídas para conciliação.
      operationId: uploadFile
      parameters:
        - description: A unique identifier for tracing the request across services.
          in: header
          name: X-Request-Id
          schema:
            type: string
        - description: The unique identifier of the reconciliation context.
          in: path
          name: contextId
          required: true
          schema:
            type: string
        - description: The unique identifier of the reconciliation source.
          in: path
          name: sourceId
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/XIdempotencyKey'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  description: Arquivo de transações (CSV, JSON ou XML)
                  type: string
                  format: binary
                format:
                  description: Formato do arquivo
                  type: string
                  enum:
                    - csv
                    - json
                    - xml
              required:
                - file
                - format
        required: true
      responses:
        '202':
          description: >-
            Indica que a requisição foi aceita para processamento.


            A resposta inclui o cabeçalho `X-Idempotency-Replayed`.


            Se o valor for false, a requisição acabou de ser processada. Se o
            valor for true, a resposta é uma repetição de uma requisição
            processada anteriormente.


            Consulte [Retries and
            idempotency](/pt/reference/retries-idempotency) para mais detalhes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobResponse'
          headers:
            X-Idempotency-Replayed:
              $ref: '#/components/headers/XIdempotencyReplayed'
        '400':
          description: A requisição contém parâmetros ou payload inválidos.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: A requisição não contém credenciais de autenticação válidas.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Você não tem permissão para acessar este recurso.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: O recurso solicitado não foi encontrado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: 'Conflito de idempotência: requisição com a mesma chave em andamento'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '413':
          description: O arquivo enviado excede o tamanho máximo permitido.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                ErrorM0801:
                  $ref: '#/components/examples/ErrorM0801'
        '500':
          description: Ocorreu um erro inesperado no servidor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - BearerAuth: []
components:
  parameters:
    XIdempotencyKey:
      name: X-Idempotency-Key
      in: header
      required: false
      description: >-
        Chave de idempotência opcional para novas tentativas seguras. Também
        aceita `Idempotency-Key` como nome alternativo do cabeçalho. Se a mesma
        chave for enviada novamente e a requisição original já tiver sido
        processada, a resposta em cache é retornada com `X-Idempotency-Replayed:
        true`.


        Consulte [Novas tentativas e
        idempotência](/pt/reference/retries-idempotency) para mais detalhes.
      schema:
        type: string
  schemas:
    JobResponse:
      description: Detalhes da tarefa de importação
      properties:
        completedAt:
          description: Quando a tarefa foi concluída no formato RFC3339 (se concluída)
          example: '2025-01-15T10:35:00.000Z'
          type: string
        contextId:
          description: ID do contexto ao qual esta tarefa pertence
          example: 019c96a0-10a0-72d2-9fb0-2b7de8093182
          type: string
        createdAt:
          description: Timestamp de criação no formato RFC3339
          example: '2025-01-15T10:30:00.000Z'
          type: string
        failedRows:
          description: Número de linhas que falharam no processamento
          example: 5
          minimum: 0
          type: integer
        fileName:
          description: Nome original do arquivo
          example: transactions_2024.csv
          type: string
        id:
          description: Identificador único da tarefa
          example: 019c96a0-10ce-75fc-a273-dc799079a99c
          type: string
        sourceId:
          description: ID da fonte na qual esta tarefa importa dados
          example: 019c96a0-108c-7a74-8e31-3789daffe1ed
          type: string
        startedAt:
          description: >-
            Quando a tarefa foi iniciada no formato RFC3339 (null para tarefas
            em fila)
          example: '2025-01-15T10:30:00.000Z'
          type: string
        status:
          description: Status atual da tarefa
          enum:
            - QUEUED
            - PROCESSING
            - COMPLETED
            - FAILED
          example: PROCESSING
          type: string
        totalRows:
          description: Número total de linhas no arquivo
          example: 1000
          minimum: 0
          type: integer
      type: object
    ErrorResponse:
      description: Resposta de erro padrão retornada por todos os endpoints da API
      type: object
      required:
        - code
        - title
        - message
      properties:
        code:
          type: string
          description: Código de erro de aplicação estável.
          example: MTCH-0001
        title:
          type: string
          description: Título de erro legível por humanos.
          example: Bad Request
        message:
          type: string
          description: Mensagem de erro legível com detalhes.
          example: context not found
        error:
          type: string
          description: Descontinuado. Mensagem de erro para compatibilidade retroativa.
          deprecated: true
        details:
          description: Contexto adicional do erro como pares chave-valor
          additionalProperties: {}
          type: object
  headers:
    XIdempotencyReplayed:
      description: >-
        Indica se esta resposta foi servida a partir do cache de idempotência.
        Quando `true`, a resposta é uma repetição da requisição original com a
        mesma chave de idempotência.


        Consulte [Novas tentativas e
        idempotência](/pt/reference/retries-idempotency) para mais detalhes.
      schema:
        type: boolean
      example: false
  examples:
    ErrorM0801:
      summary: File Too Large
      value:
        code: MTCH-0010
        title: Request Entity Too Large
        message: The uploaded file exceeds the maximum allowed size.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Autenticação por Bearer token (formato: "Bearer {token}")'

````