---
title: "Emite uma nova fatura baseada em um período."
method: POST
path: "/v1/periods/{id}/bill"
tags: ["periods"]
---

# Emite uma nova fatura baseada em um período.

`POST /v1/periods/{id}/bill`

## Request

- Base URL: `//app.vindi.com.br/api` (relative, and the document’s source URL is not known)
- URL: `//app.vindi.com.br/api/v1/periods/{id}/bill`
- Auth: HTTP basic

Há 2 casos onde pode ser necessário gerar uma nova fatura manualmente a partir de um período:

1. Gerar uma fatura que não foi emitida automaticamente por falta de informações de registro de uso;
2. Gerar uma fatura adicional para um período.

A plataforma Vindi tenta gerar automaticamente uma nova fatura na data especificada no atributo `billing_at` do período utilizando todos os registros de utilização não faturados até então. A nova fatura é gerada apenas se todos os itens ativos da assinatura possuírem ao menos um registro de utilização, mesmo que algum deles possua o campo `quantity` explicitamente igual a zero.

Este comportamento é necessário para evitar a emissão de faturas que não receberam registros de utilização, seja por esquecimento do operador do sistema ou por algum tipo de falha na transmissão dessa informação. Para verificar esses períodos que não foram faturados, consulte o relatório "Períodos não faturados" e pesquise pela data da cobrança programada.

#### Exemplo
Suponha uma assinatura com a cobrança programada para o último dia do período contendo dois produtos:

```
Mensalidade: Preço fixo - R$ 100,00
Horas de suporte: Preço variável por volume - R$ 15,00/hora
```
O primeiro período será criado com um único registro de utilização com quantidade igual a 1 representando o produto "Mensalidade". A plataforma espera que a quantidade de "Horas de suporte" seja informada via API ou pelo operador do sistema. Se isto não acontecer até a data de cobrança do período, a plataforma **não irá gerar a fatura automaticamente**. Neste caso espera-se que a fatura seja gerada a partir do painel de administração ou deste método via API.

Como mencionado acima, também é possível gerar uma fatura adicional incluindo registros de uso que ainda não foram faturados. Isso pode acontecer quando você deseja incluir alguma cobrança adicional no período e faz questão de manter a referência do período.

## Path parameters

- `id` integer, required

## Response `201`

Fatura gerada com sucesso.

- Period: Uma assinatura deve possuir obrigatoriamente um ou mais períodos, que são gerados automaticamente conforme a configuração de cobrança e periodicidade da assinatura. Em uma assinatura baseada em um plano mensal, cada período terá a duração de aproximadamente 30 dias. #### Registros de utilização Todo período deverá possuir um ou mais registros de utilização. A fatura do período será gerada a partir destes registros de utilização. Para produtos configurados com preço fixo ou preço por quantidade, a plataforma irá criar automaticamente um registro de utilização conforme a quantidade indicada na assinatura. Para produtos com preços baseados no volume, nenhum registro será criado automaticamente e o período aguardará obrigatoriamente a informação do registro de utilização. A inclusão do registro pode ser feita através do painel de administração ou pela API. #### Fatura Normalmente um período possuirá uma única fatura que será gerada automaticamente na data `billing_at`, porém em casos especiais um período poderá possuir mais de uma fatura.
  - `id` integer, required: ID do período
  - `billing_at` string: Data para geração automática da cobrança do período
  - `cycle` integer, required: Ciclo do período
  - `start_at` string, required: Data e hora do início do período
  - `end_at` string, required: Data e hora do término do período
  - `duration` integer, required: Duração do período em número de segundos
  - `customer` CustomerSummary
    - `id` integer, required: ID do cliente
    - `name` string, required: Nome do cliente
    - `email` string: E-mail do cliente
    - `code` string: Código opcional para referência via API
  - `subscription` SubscriptionSummary
    - `id` integer, required: ID da assinatura
    - `code` string: Código externo para referência via API
    - `plan` PlanSummary, required
      - `id` integer, required: ID do plano
      - `name` string, required: Nome do plano
      - `code` string: Código externo do plano
    - `customer` CustomerSummary, required
      - `id` integer, required: ID do cliente
      - `name` string, required: Nome do cliente
      - `email` string: E-mail do cliente
      - `code` string: Código opcional para referência via API
  - `usages` Usage[]: Lista de registros de utilização no período
    - `id` integer, required: ID do registro de utilização
    - `description` string: Descrição opcional
    - `created_at` string, required: Data e hora da geração do registro de utilização
    - `metadata` object: Metadados do registro de utilização
    - `product_item` ProductItemSummary, required
      - `id` integer, required: ID do item
      - `product` ProductSummary, required
        - `id` integer, required: ID do produto
        - `name` string, required: Nome do produto
        - `code` string: Código externo do produto
    - `bill` BillSummary
      - `id` integer, required: ID da fatura
      - `code` string: Código externo para referência via API
    - `quantity` integer, required: Quantidade informada no registro de utilização
  - `created_at` string, required: Data e hora da geração do período
  - `updated_at` string, required: Data e hora da última atualização do período

## Other responses

- `400`: Erro de sintaxe JSON no corpo do request.
- `422`: Parâmetros inválidos. Verificar erro na resposta.

---

[API](https://skmtc.dev/vindi/apis/api-vindi.md) - [All operations](https://skmtc.dev/vindi/apis/api-vindi/llms.txt) - [OpenAPI document](https://skmtc.dev/vindi/apis/api-vindi/revisions/3e857e1cdd03?raw)
