# Definir assinaturas retroativamente

Saiba como definir datas de assinaturas retroativas.

Você pode atribuir uma data passada a uma assinatura para faturar os clientes por períodos já decorridos. Isso é usado muitas vezes ao migrar para a Stripe ou para fins de manutenção de registros. O campo `backdate_start_date` especifica a data de início retroativa da assinatura. Você também tem a opção de faturar os clientes por esse tempo decorrido e definir a próxima data de cobrança.

## Considerações sobre o modo de cobrança

A partir da [versão da API 2025-04-30](https://docs.stripe.com/changelog/basil.md#2025-04-30.preview), o comportamento da data retroativa depende do [billing_mode](https://docs.stripe.com/api/subscription_schedules/create.md#create_subscription_schedule-billing_mode) da sua assinatura:

### Before

Use `billing_mode=classic` para criar um item de linha proporcional único para o período retroativo.

### After

Use `billing_mode=flexible` para gerar um item de linha para cada período de cobrança natural que ocorra durante o período retroativo, que se comporta de forma semelhante ao faturamento regular.

> A atribuição de data passada não é aceita quando uma fatura tem mais de 250 itens de linha, que é o limite padrão.

## Atribuir datas passadas e cobrar usuários

Às vezes, os usuários podem ter acesso ao seu serviço antes de você criar uma assinatura para eles, e você deseja cobrar esse acesso.

#### Dashboard

Para cobrar esse período no Dashboard:

1. Acesse a página **Pagamentos** > **Assinaturas**.

2. Clique em **+Criar assinatura**.

3. Encontre ou adicione um cliente.

4. Informe o preço e o produto.

5. Na seção **Detalhes da assinatura**, selecione as datas inicial e final da assinatura. Para assinaturas com períodos já decorridos, selecione uma data inicial no passado.

6. Selecione a data em que você deseja iniciar o período de cobrança.

7. (Opcional) Defina as opções **Pagamento** ou **Avançado**.

8. Clique em **Criar assinatura**. A assinatura inicia na data selecionada.

#### API

Para cobrar esse período retroativo usando a API, crie uma assinatura retroativa informando `customer`, `price` e `backdate_start_date`.

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d backdate_start_date=1575176400 \
  -d "items[0][price]={{PRICE_ID}}"
```

Uma *fatura* (Invoices are statements of amounts owed by a customer. They track the status of payments from draft through paid or otherwise finalized. Subscriptions automatically generate invoices, or you can manually create a one-off invoice) é criada com cobranças para o período entre as datas passada e atual.

Se uma assinatura tiver `billing_mode=classic`, a Stripe criará um único valor proporcional para o período retroativo com base em um intervalo imaginário a partir da data de início retroativa. Por exemplo, se você tiver um período de cobrança mensal que começa no primeiro dia do mês e definir `backdate_start_date` como 15 de fevereiro (em um ano não bissexto), a Stripe calculará o valor proporcional com base em um mês imaginário que vai de 15 de fevereiro a 15 de março. Como fevereiro tem 28 dias, o valor proporcional para os 14 dias de 15 de fevereiro a 1º de março é exatamente a metade do valor de uma cobrança mensal normal.

Da mesma forma, se você definir `backdate_start_date` como 15 de janeiro, a Stripe baseia o cálculo proporcional em um mês imaginado de 15 de janeiro a 15 de fevereiro. Esse mês imaginado tem 31 dias, por isso, o valor proporcional para os 17 dias de 15 de janeiro a 1º de fevereiro é 17 dividido por 31 (aproximadamente 0,548) de uma cobrança mensal normal.

Você também pode visualizar o cálculo considerando a data inicial retroativa como a data inicial original. O início do primeiro período de cobrança completo passa a ser a data inicial atualizada.

Se uma assinatura tiver `billing_mode=flexible`, a Stripe gera itens de linha separados para cada período de cobrança natural ocorrido durante o período retroativo. Isso significa que cada ciclo é tratado como se a Stripe o tivesse cobrado normalmente durante aquele período.

## Atribuir datas passadas sem cobrar usuários

Você também pode atribuir uma data passada a uma assinatura sem cobrar o cliente pelo período passado, o que pode ser usado em uma migração para a Stripe. Para fazer isso, passe `proration_behavior: 'none'` quando criar a assinatura. Isso define o `start_date` com o mesmo valor que `backdate_start_date`, mas não cobra o cliente pelo período passado.

> Se você usar `proration_behavior: 'none'` com `billing_mode=flexible`, nenhuma fatura será gerada para os períodos de faturamento retroativos. Como o modo de faturamento flexível calcula os rateios de crédito com base nos valores debitados anteriormente, não ter débito para os períodos retroativos significa que as atualizações ou os cancelamentos subsequentes da assinatura não geram rateios de crédito para esse período. Isso difere do modo de faturamento clássico, que calcula os rateios de crédito independentemente de débitos anteriores. Para obter mais detalhes, consulte [Compare os modos de faturamento clássico e flexível](https://docs.stripe.com/billing/subscriptions/billing-mode/compare.md#subsequent-proration-behavior-after-backdating-without-an-initial-charge).

## Atribuir datas passadas e definir a âncora do ciclo de faturamento

Você pode combinar `backdate_start_date` e `billing_cycle_anchor` para atribuir uma data passada a uma assinatura e definir a âncora do ciclo de faturamento como uma data futura. Um item proporcional é criado na próxima fatura para o período entre a data de início passada e a âncora do ciclo de faturamento. Você pode usar isso durante migrações para a Stripe em que é preciso preservar a próxima data de faturamento das assinaturas enquanto cobra os clientes pelo período transcorrido.

Por exemplo, vamos supor que hoje seja 15 de outubro e você esteja migrando para a Stripe. Há uma assinatura que começou em 1º de setembro, e a próxima data de faturamento é 1º de novembro. Para migrar essa assinatura, crie outra assinatura e defina `backdate_start_date` como 1º de setembro e `billing_cycle_anchor` como 1º de novembro.

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d backdate_start_date=1575176400 \
  -d billing_cycle_anchor=1572580800 \
  -d "items[0][price]={{PRICE_ID}}"
```

Uma fatura será emitida imediatamente com o valor proporcional para o período entre 1º de setembro e 1º de novembro. Além disso, a `start_date` da assinatura será definida como 1º de setembro. A Stripe emite a próxima fatura em 1º de novembro.

## Retroatividade e descontos

Quando você aplica um [cupom](https://docs.stripe.com/billing/subscriptions/coupons.md) a uma assinatura retroativa, a duração do cupom começa a ser contabilizada a partir da data de início retroativa, e não da data em que você faz a chamada da API. Isso significa que a duração do cupom é consumida pelo período retroativo.

Por exemplo, se você criar uma assinatura em 1º de março com `backdate_start_date` definido como 1º de janeiro e aplicar um cupom com `duration=repeating` e `duration_in_months=2`, o cupom se aplica aos períodos de cobrança de janeiro e fevereiro (os 2 meses a partir de 1º de janeiro). Como a duração de 2 meses do cupom foi totalmente consumida pelo período retroativo, ele não se aplica à fatura de março nem a quaisquer faturas futuras, e o desconto é removido do item da assinatura.

Se você quiser que o cupom se aplique às faturas atuais e futuras após o período retroativo, a duração do cupom deve ser maior que o período retroativo. Usando o mesmo exemplo, um cupom com `duration_in_months=3` cobriria janeiro, fevereiro e março, aplicando o desconto à primeira fatura após o período retroativo.

> Se a duração de um cupom for menor ou igual à duração do período retroativo, o desconto se aplica apenas às faturas dentro do período retroativo. Ele não será aplicado a novas faturas após a retroatividade.

A tabela a seguir resume como a duração do cupom interage com a retroatividade:

|  |
| Duração do cupom | Comportamento com retroatividade |
| `once` | Aplica-se apenas à primeira fatura, que cobre o período retroativo. |
| `repeating` (N meses) | A duração começa a partir da data de início retroativa. Se N for menor ou igual ao período retroativo, o desconto expira antes que quaisquer faturas futuras sejam criadas. |
| `vitalício` | Aplica-se a todas as faturas, incluindo as do período retroativo e todas as faturas futuras. Não há considerações especiais. |

## Atribuir uma data retroativa a uma atualização

Para definir a data efetiva de [cobranças proporcionais](https://docs.stripe.com/billing/subscriptions/prorations.md) ao atualizar uma assinatura, use o parâmetro [proration_date](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-proration_date). Passe um carimbo de data e hora Unix inteiro que ocorre dentro do período atual dos itens da assinatura. Se a assinatura utilizar uma programação de assinatura, verifique se o carimbo de data e hora é anterior à data de início da próxima fase do cronograma.

Você pode definir a `proration_date` anterior ao período atual somente durante o primeiro período de uma assinatura retroativa. Nessa situação, a `proration_date` deve ser no ou após a `subscription[start_date]` (a data de início retroativa). Nos demais casos, a `proration_date` não pode ser anterior ao `current_period_start`.
