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

# Cancelar fatura

> Cancela uma fatura aberta e inutiliza as tentativas de pagamento e os QR Codes PIX ainda ativos.
A operação grava o evento `invoice.voided`, cujo `data.object` tem a mesma representação
devolvida nesta resposta.

Uma fatura paga, incobrável ou já cancelada não pode ser cancelada novamente. Se uma captura
de cartão ou uma confirmação PIX estiver em andamento, aguarde seu resultado antes de repetir.

**Limite de taxa:** 10 requisições por minuto por chave de API.




## OpenAPI

````yaml /api-reference/openapi.yml post /api/v1/invoices/{id}/void
openapi: 3.1.0
info:
  title: API - Simplo
  version: 1.0.0
  description: API para cobrança e assinaturas para contas Simplo
  contact:
    name: Simplo
    url: https://besimplo.com
    email: team@besimplo.com
servers:
  - url: https://besimplo.com
    description: Produção
security:
  - apiKeyAuth: []
tags:
  - name: Clientes
    description: Clientes são as pessoas que pagarão pelos produtos da sua conta
  - name: Produtos
    description: Produtos representam os bens ou serviços que você vende
  - name: Preços
    description: Preços definem quanto cobrar e a frequência de cobrança de um Produto
  - name: Assinaturas
    description: Assinaturas conectam clientes aos seus planos para cobrança recorrente
  - name: Checkout
    description: >-
      Sessões de checkout permitem que clientes completem pagamentos e
      assinaturas através de uma interface web
  - name: Faturas
    description: Faturas representam cobranças geradas para clientes
  - name: Tentativas de cobrança
    description: >-
      Cada tentativa de receber o valor de uma fatura, com vencimento próprio e
      limite de tentativas
  - name: Eventos
    description: >
      O registro do que aconteceu na conta, com o corpo congelado no instante do
      fato. O evento existe tenha ele sido entregue ou não: a entrega por
      webhook é um consumidor dele. Consulte, filtre pelo resultado da entrega e
      reenvie o que não chegou.
  - name: Webhooks
    description: >
      Os eventos do catálogo, enviados por HTTP POST para os endpoints

      cadastrados na sua conta. Cada conta registra até 5 endpoints, cada um com

      a sua URL, o seu filtro de eventos e o seu segredo.


      O corpo é o próprio evento: `"object": "event"` no topo, e `data.object`

      com o recurso a que ele se refere, no mesmo formato em que

      `GET /api/v1/<recurso>/{id}` o devolve.


      Toda entrega vai assinada, no padrão

      [Standard
      Webhooks](https://github.com/standard-webhooks/standard-webhooks/blob/main/spec/standard-webhooks.md).

      São três cabeçalhos — `webhook-id`, `webhook-timestamp` e

      `webhook-signature` — e a chave é o segredo `whsec_` daquele endpoint,

      visível no painel em **Configurações → Webhooks**.


      Responda 2xx rápido e processe depois. Uma entrega que falha é retentada

      até 10 vezes ao longo de 93 horas, então o mesmo evento pode chegar duas

      vezes: use o `evt_` do cabeçalho `webhook-id` como chave de idempotência.


      O que não chegou continua consultável por 30 dias em `GET /api/v1/events`,

      e `POST /api/v1/events/{id}/resend` manda de novo.
paths:
  /api/v1/invoices/{id}/void:
    post:
      tags:
        - Faturas
      summary: Cancelar fatura
      description: >
        Cancela uma fatura aberta e inutiliza as tentativas de pagamento e os QR
        Codes PIX ainda ativos.

        A operação grava o evento `invoice.voided`, cujo `data.object` tem a
        mesma representação

        devolvida nesta resposta.


        Uma fatura paga, incobrável ou já cancelada não pode ser cancelada
        novamente. Se uma captura

        de cartão ou uma confirmação PIX estiver em andamento, aguarde seu
        resultado antes de repetir.


        **Limite de taxa:** 10 requisições por minuto por chave de API.
      operationId: voidInvoice
      parameters:
        - name: id
          in: path
          description: ID da fatura, no formato TypeID com prefixo `in_`.
          required: true
          schema:
            type: string
            pattern: ^in_[0-9a-z]{26}$
            example: in_01h455vb4pex5vsknk084sn02q
      responses:
        '200':
          description: Fatura cancelada
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                allOf:
                  - type: object
                    required:
                      - id
                      - object
                      - amount_due
                      - created
                      - currency
                      - customer
                      - live_mode
                      - status
                      - total
                    properties:
                      id:
                        type: string
                        pattern: ^in_[0-9a-z]{26}$
                        readOnly: true
                        description: >-
                          ID único da fatura, no formato TypeID com prefixo
                          `in_`.
                        example: in_01h455vb4pex5vsknk084sn02q
                      object:
                        type: string
                        description: Tipo do objeto. Sempre 'invoice'.
                        enum:
                          - invoice
                        example: invoice
                      amount_due:
                        type: integer
                        description: Valor a pagar em centavos. R$ 99,90 = 9990.
                        example: 9990
                      amount_paid:
                        type: integer
                        description: Valor já pago em centavos. R$ 99,90 = 9990.
                        example: 0
                      amount_refunded:
                        type: integer
                        description: >
                          Valor estornado em centavos. Permanece separado de
                          `status`: uma fatura

                          paga continua com `status: paid` depois de um estorno
                          total ou parcial.
                        example: 0
                      amount_remaining:
                        type: integer
                        description: Valor restante a pagar em centavos. R$ 99,90 = 9990.
                        example: 9990
                      created:
                        type: integer
                        format: int64
                        readOnly: true
                        description: Timestamp Unix da criação da fatura.
                        example: 1704672000
                      currency:
                        type: string
                        description: Moeda do valor. Sempre 'brl' (Real brasileiro).
                        enum:
                          - brl
                        example: brl
                      customer:
                        type: string
                        pattern: ^cus_[0-9a-z]{26}$
                        description: >-
                          ID do cliente associado à fatura, no formato TypeID
                          com prefixo `cus_`.
                        example: cus_01h455vb4pex5vsknk084sn02p
                      customer_email:
                        type:
                          - string
                          - 'null'
                        nullable: true
                        description: E-mail do cliente.
                        example: joao.silva@exemplo.com
                      customer_name:
                        type:
                          - string
                          - 'null'
                        nullable: true
                        description: Nome do cliente.
                        example: João Silva
                      external_code:
                        type:
                          - string
                          - 'null'
                        nullable: true
                        description: >-
                          Código externo para integração com outros sistemas.
                          Único por conta.
                        example: PEDIDO-123
                      live_mode:
                        type: boolean
                        description: >-
                          Indica ambiente de produção (true) ou sandbox (false).
                          Dados de sandbox são limpos periodicamente.
                        example: true
                      paid:
                        type: boolean
                        description: Indica se a fatura foi paga.
                        example: false
                      payment_intent:
                        type:
                          - string
                          - 'null'
                        nullable: true
                        pattern: ^pi_[0-9a-z]{26}$
                        description: >
                          ID da cobrança associada à fatura, no formato TypeID
                          com prefixo `pi_`.

                          `null` enquanto a fatura ainda não tem cobrança
                          gerada.
                        example: pi_01h455vb4pex5vsknk084sn02r
                      status:
                        type: string
                        description: |
                          Status atual da fatura.
                          - draft: Rascunho, ainda não finalizada.
                          - open: Aberta, aguardando pagamento.
                          - paid: Paga.
                          - uncollectible: Marcada como incobrável.
                          - void: Cancelada.
                        enum:
                          - draft
                          - open
                          - paid
                          - uncollectible
                          - void
                        example: open
                      status_transitions:
                        type: object
                        description: |
                          Timestamps de quando a fatura mudou de status.
                          Campos são null se a transição ainda não ocorreu.
                        properties:
                          paid_at:
                            type:
                              - integer
                              - 'null'
                            nullable: true
                            format: int64
                            description: Timestamp Unix de quando a fatura foi paga.
                            example: 1704758400
                      subscription:
                        type:
                          - string
                          - 'null'
                        nullable: true
                        pattern: ^sub_[0-9a-z]{26}$
                        description: >-
                          ID da assinatura associada (se aplicável), no formato
                          TypeID com prefixo `sub_`.
                        example: sub_01h455vb4pex5vsknk084sn02s
                      total:
                        type: integer
                        description: Valor total da fatura em centavos. R$ 99,90 = 9990.
                        example: 9990
        '404':
          description: Não encontrado
          content:
            application/problem+json:
              schema:
                type: object
                required:
                  - type
                  - status
                  - title
                  - detail
                  - code
                properties:
                  type:
                    type: string
                    description: URI que identifica o tipo de problema
                    format: uri
                    enum:
                      - https://problems-registry.smartbear.com/not-found
                  status:
                    type: integer
                    description: O código de status HTTP
                    format: int32
                    enum:
                      - 404
                  title:
                    type: string
                    description: O nome do status HTTP
                    enum:
                      - Not Found
                  detail:
                    type: string
                    description: Mensagem descritiva do erro
                  code:
                    type: string
                    description: Código de erro interno da API
                    enum:
                      - NOT_FOUND
                      - RESOURCE_MISSING
              examples:
                not_found:
                  summary: Recurso não encontrado
                  value:
                    type: https://problems-registry.smartbear.com/not-found
                    status: 404
                    title: Not Found
                    detail: The requested resource was not found
                    code: NOT_FOUND
                customer_not_found:
                  summary: Cliente não encontrado
                  value:
                    type: https://problems-registry.smartbear.com/not-found
                    status: 404
                    title: Not Found
                    detail: 'No such customer: ''019abc12-3456-7890-abcd-ef1234567890'''
                    code: RESOURCE_MISSING
        '422':
          description: A fatura não pode ser cancelada
          content:
            application/problem+json:
              schema:
                type: object
                required:
                  - type
                  - status
                  - title
                  - detail
                  - code
                properties:
                  type:
                    type: string
                    description: >-
                      URL que identifica o tipo de erro ocorrido. Útil para
                      tratamento programático de erros.
                    example: https://problems-registry.smartbear.com/validation-error
                    format: uri
                    maxLength: 1024
                  status:
                    type: integer
                    description: >-
                      Código de status HTTP da resposta. Corresponde ao status
                      code retornado na requisição.
                    example: 400
                    format: int32
                    minimum: 100
                    maximum: 599
                  title:
                    type: string
                    description: >-
                      Título curto e descritivo do erro. Ideal para exibir em
                      logs ou mensagens de erro genéricas.
                    example: Bad Request
                    maxLength: 1024
                  detail:
                    type: string
                    description: >-
                      Mensagem detalhada do erro específico para esta
                      requisição. Use esta mensagem para entender o que deu
                      errado.
                    example: O campo email é obrigatório e não foi informado.
                    maxLength: 4096
                  instance:
                    type: string
                    description: >-
                      Identificador único desta ocorrência de erro. Forneça este
                      valor ao solicitar suporte para facilitar o debug.
                    example: req_abc123def456
                    maxLength: 1024
                  code:
                    type: string
                    description: >-
                      Código de erro interno da API. Útil para mapear tipos
                      específicos de erros no seu código.
                    example: VALIDATION_ERROR
                    maxLength: 50
                  errors:
                    type: array
                    description: >-
                      Lista de erros de validação específicos. Presente quando
                      múltiplos campos falham na validação.
                    maxItems: 1000
                    items:
                      type: object
                      description: >-
                        Detalhes sobre um erro específico de validação. Ajuda a
                        identificar qual campo e valor causaram o erro.
                      required:
                        - detail
                      properties:
                        detail:
                          type: string
                          description: >-
                            Mensagem específica sobre o erro de validação deste
                            campo.
                          example: O campo email não é um endereço de e-mail válido.
                          maxLength: 4096
                        pointer:
                          type: string
                          description: >-
                            Caminho JSON para o campo no corpo da requisição que
                            causou o erro.
                          example: /customer/email
                          maxLength: 1024
                        parameter:
                          type: string
                          description: Nome do parâmetro (query ou path) que causou o erro.
                          example: customer_id
                          maxLength: 1024
                        header:
                          type: string
                          description: Nome do cabeçalho HTTP que causou o erro.
                          example: Authorization
                          maxLength: 1024
                        code:
                          type: string
                          description: >-
                            Código adicional para identificar o contexto
                            específico do erro.
                          example: INVALID_FORMAT
                          maxLength: 50
              examples:
                invoice_not_open:
                  summary: Fatura não está aberta
                  value:
                    type: >-
                      https://problems-registry.smartbear.com/business-rule-violation
                    status: 422
                    title: Unprocessable Entity
                    detail: Fatura não está aberta
                    code: INVOICE_NOT_OPEN
                charge_in_progress:
                  summary: Cobrança em processamento
                  value:
                    type: >-
                      https://problems-registry.smartbear.com/business-rule-violation
                    status: 422
                    title: Unprocessable Entity
                    detail: >-
                      Já existe uma cobrança em processamento para esta fatura.
                      Aguarde a confirmação.
                    code: CHARGE_IN_PROGRESS
                pix_payment_confirmed:
                  summary: PIX confirmado, aguardando processamento
                  value:
                    type: >-
                      https://problems-registry.smartbear.com/business-rule-violation
                    status: 422
                    title: Unprocessable Entity
                    detail: >-
                      O pagamento PIX desta fatura já foi confirmado e aguarda
                      processamento
                    code: PIX_PAYMENT_CONFIRMED
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >
        A chave de API usada para autenticar a requisição e identificar a sua
        conta.


        **Exemplo:** `Authorization: ApiKey my-secure-key`

````