# 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**. 1. Clique em **+Criar assinatura**. 1. Encontre ou adicione um cliente. 1. Informe o preço e o produto. 1. 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. 1. Selecione a data em que você deseja iniciar o período de cobrança. 1. (Opcional) Defina as opções **Pagamento** ou **Avançado**. 1. 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 "<>:" \ -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. ## 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 "<>:" \ -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`.