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

# Cancelar una transferencia no terminal

> Cambia la transferencia a StateCanceled cuando su estado actual está en el conjunto cancelable. El worker realiza el PUT /situacao de BACEN de forma asíncrona. Emite sta.transfer.status.{sourceProduct} en caso de éxito.



## OpenAPI

````yaml es/openapi/v3-current/sta.yaml post /v1/transfers/{id}/cancel
openapi: 3.0.3
info:
  title: Lerian STA API
  description: >-
    API de Lerian STA — el rail del lado del participante que conecta la
    institución con el sistema de intercambio de archivos STA (Sistema de
    Transferência de Arquivos) del Banco Central do Brasil. Cubre las
    transferencias de archivos salientes y entrantes, la gestión de credenciales
    de BACEN, la configuración del sondeo de fuentes entrantes y el trust-store
    del tenant para los certificados de firma de mensajes.
  version: v1.0.0
servers:
  - url: https://sta.sandbox.lerian.net
security:
  - BearerAuth: []
tags:
  - name: transfers
    description: >-
      Transferencias de archivos STA salientes y entrantes — creación, listado,
      lectura, cancelación, reintento y marcado de procesamiento urgente.
  - name: trust-store
    description: >-
      Ciclo de vida de los certificados X.509 del trust-store del tenant:
      listado, carga, eliminación y resumen de estado.
  - name: credentials
    description: >-
      Gestión de credenciales de BACEN STA: creación, lectura, actualización,
      rotación, revocación y prueba de conectividad.
  - name: inbound-source-configs
    description: >-
      Configuración del sondeo de fuentes entrantes: creación, lectura,
      actualización, eliminación, disparo manual de sondeo y uso de la reserva
      de descubrimiento.
  - name: health
    description: Reporte de salud y disponibilidad del servicio.
paths:
  /v1/transfers/{id}/cancel:
    post:
      tags:
        - transfers
      summary: Cancelar una transferencia no terminal
      description: >-
        Cambia la transferencia a StateCanceled cuando su estado actual está en
        el conjunto cancelable. El worker realiza el PUT /situacao de BACEN de
        forma asíncrona. Emite sta.transfer.status.{sourceProduct} en caso de
        éxito.
      parameters:
        - description: Transfer UUID
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/http.CancelTransferRequest'
        description: optional reason
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http.TransferView'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
components:
  schemas:
    http.CancelTransferRequest:
      properties:
        reason:
          type: string
      type: object
    http.TransferView:
      properties:
        bytesDownloaded:
          type: integer
        bytesUploaded:
          type: integer
        createdAt:
          type: string
        credentialId:
          type: string
        currentState:
          type: string
        currentStateCode:
          type: integer
        direction:
          type: string
        documentType:
          type: string
        downloadAttempts:
          description: |-
            DownloadAttempts is the legacy aggregate counter; for inbound
            transfers, see hashMismatchAttempts + transmissionAttempts.
          type: integer
        errorCode:
          type: string
        expired:
          type: boolean
        expiresAt:
          description: >-
            ExpiresAt / SecondsRemaining / Expired project the 44h BACEN
            protocol

            TTL directly onto the read view (the dedicated GET /:id/expiry
            endpoint

            was folded in here). ExpiresAt is nil — and SecondsRemaining 0,

            Expired false — until the transfer is assigned a protocol number

            (ProtocolGeneratedAt nil). Once assigned, ExpiresAt is

            ProtocolGeneratedAt + TTL; SecondsRemaining counts down to it at the

            handler clock and clamps to 0, at which point Expired flips true.
          type: string
        fileName:
          type: string
        fileRef:
          type: string
        fileSizeBytes:
          type: integer
        hashMismatchAttempts:
          description: |-
            HashMismatchAttempts is the inbound-only counter that drives the
            StateInconsistent terminal budget (HASH_MISMATCH). Always 0 for
            outbound transfers.
          type: integer
        id:
          type: string
        lastTransitError:
          type: string
        protocolGeneratedAt:
          type: string
        protocolNumber:
          type: string
        secondsRemaining:
          type: integer
        sourceProduct:
          type: string
        transmissionAttempts:
          description: |-
            TransmissionAttempts is the inbound-only counter that drives the
            StateCanceled / DOWNLOAD_FAILED terminal budget. Always 0 for
            outbound transfers.
          type: integer
        updatedAt:
          type: string
        uploadAttempts:
          type: integer
        urgentRequestedAt:
          description: |-
            UrgentRequestedAt is the UTC timestamp at which an operator flagged
            this inbound transfer for urgent processing (mark-urgent). Nil (and
            omitted) for transfers that were never marked urgent.
          type: string
      type: object
  securitySchemes:
    BearerAuth:
      description: 'Bearer token authentication (format: "Bearer {token}")'
      in: header
      name: Authorization
      type: apiKey

````