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

# Eliminar o liquidar desde proveedor

> Sin `reason` o con `DELETE_FROM_PROVIDER`, anula el documento y los checkouts pendientes. Con `PAID_FROM_PROVIDER`, aplica exactamente el saldo abierto usando `provider_payment_id`. Rechaza documentos con pagos parciales o estados incompatibles. Requiere `public_invoices:write`.



## OpenAPI

````yaml /openapi/invoices-v1.json delete /v1/invoices/{invoiceId}
openapi: 3.1.0
info:
  title: Cobrix API pública de documentos de cobro
  version: 1.0.0
  description: >-
    API de documentos de cobro con montos en unidades mayores de la moneda de
    referencia de la empresa. No admite pagos parciales.
  license:
    name: Propietaria
    url: https://cobrix.co/terms
servers:
  - url: https://api.cobrix.co/api
    description: Producción
  - url: https://sandbox-api.cobrix.co/api
    description: Sandbox
security:
  - bearerAuth: []
tags:
  - name: Documentos públicos
    description: Documentos de cobro públicos y su cobro vigente.
paths:
  /v1/invoices/{invoiceId}:
    delete:
      tags:
        - Documentos públicos
      summary: Eliminar o liquidar desde proveedor
      description: >-
        Sin `reason` o con `DELETE_FROM_PROVIDER`, anula el documento y los
        checkouts pendientes. Con `PAID_FROM_PROVIDER`, aplica exactamente el
        saldo abierto usando `provider_payment_id`. Rechaza documentos con pagos
        parciales o estados incompatibles. Requiere `public_invoices:write`.
      operationId: deletePublicInvoice
      parameters:
        - $ref: '#/components/parameters/InvoiceId'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteInvoiceRequest'
      responses:
        '204':
          description: Operación completada sin cuerpo
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/ValidationError'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  parameters:
    InvoiceId:
      name: invoiceId
      in: path
      required: true
      schema:
        type: string
        format: uuid
  schemas:
    DeleteInvoiceRequest:
      type: object
      additionalProperties: false
      properties:
        reason:
          type: string
          enum:
            - DELETE_FROM_PROVIDER
            - PAID_FROM_PROVIDER
          default: DELETE_FROM_PROVIDER
        provider_payment_id:
          type: string
          minLength: 1
          maxLength: 255
          description: >-
            Referencia requerida operacionalmente al informar
            PAID_FROM_PROVIDER.
      examples:
        - reason: DELETE_FROM_PROVIDER
        - reason: PAID_FROM_PROVIDER
          provider_payment_id: provider-payment-5001
    InvoiceError:
      type: object
      required:
        - message
      properties:
        message:
          type: string
        code:
          type: integer
        code_name:
          type: string
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
  headers:
    RateLimitLimit:
      description: Máximo de requests por ventana.
      schema:
        type: integer
        default: 300
    RateLimitRemaining:
      description: Requests disponibles en la ventana.
      schema:
        type: integer
    RateLimitReset:
      description: Timestamp Unix de reinicio.
      schema:
        type: integer
    RetryAfter:
      description: Segundos antes de reintentar.
      schema:
        type: integer
  responses:
    Unauthorized:
      description: Llave ausente o inválida
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InvoiceError'
          example:
            message: Unauthenticated.
            code: 10002
            code_name: authentication_error
    Forbidden:
      description: Scope o compañía no habilitada
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InvoiceError'
          example:
            message: La llave API no tiene permiso para realizar esta operación.
            code: 10005
            code_name: forbidden
    NotFound:
      description: Documento inexistente o de otra empresa
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InvoiceError'
          example:
            message: El documento no existe o pertenece a otra compañía.
            code: 10004
            code_name: not_found
    Conflict:
      description: >-
        Idempotencia, pago aplicado, monto pagado, estado terminal o
        actualización concurrente
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InvoiceError'
          examples:
            paymentApplied:
              value:
                message: No se puede actualizar un documento con pagos aplicados.
                code: 10009
                code_name: conflict
                errors:
                  payment:
                    - No se puede actualizar un documento con pagos aplicados.
            paidAmount:
              value:
                message: >-
                  El documento ya fue pagado. Solo pueden actualizarse sus datos
                  informativos.
                code: 10009
                code_name: conflict
                errors:
                  amount:
                    - >-
                      El documento ya fue pagado. Solo pueden actualizarse sus
                      datos informativos.
            idempotency:
              value:
                message: >-
                  La clave de idempotencia ya fue utilizada con un cuerpo
                  diferente.
                code: 10003
                code_name: idempotency_error
    ValidationError:
      description: Campos inválidos o no permitidos
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InvoiceError'
          example:
            message: La solicitud contiene errores de validación.
            code: 10001
            code_name: validation_error
            errors:
              amount:
                - El monto debe ser al menos 0.01.
    RateLimited:
      description: Límite distribuido por llave, método y ruta
      headers:
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
        X-RateLimit-Limit:
          $ref: '#/components/headers/RateLimitLimit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/RateLimitRemaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/RateLimitReset'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InvoiceError'
          example:
            message: >-
              Demasiadas solicitudes. Espera el tiempo indicado en Retry-After e
              intenta nuevamente.
            code: 10029
            code_name: rate_limit_error
    ServiceUnavailable:
      description: Configuración financiera temporalmente indisponible
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InvoiceError'
          example:
            message: >-
              El servicio financiero no está disponible temporalmente. Intenta
              nuevamente más tarde.
            code: 10103
            code_name: service_unavailable
            errors:
              configuration:
                - La configuración financiera de la compañía no está disponible.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Cobrix API key
      description: Llave cbx_live con scope de documentos públicos.

````