Assinaturas com data passada
Você pode atribuir uma data passada a uma assinatura para faturar os clientes por períodos já decorridos. Isso é usado muitas vezes nas migrações para a Stripe ou na manutenção de registros. O campo backdate_start_date
especifica o início da data retroativa da assinatura. Você pode faturar os clientes pelo tempo decorrido desde essa data e definir a próxima data de faturamento.
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.
Isso cria umafatura com um valor proporcional para o tempo entre a data de início retroativa e a hora atual. O valor proporcional é calculado com base em um intervalo imaginário que começa na data inicial retroativa. Por exemplo, se o intervalo de faturamento for mensal no primeiro dia do mês e você definir backdate_start_date
como 15 de fevereiro (em um ano não bissexto), o cálculo proporcional será baseado em um mês que vai de 15 de fevereiro a 15 de março. Como esse mês imaginário 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, o cálculo proporcional é baseado em um mês imaginado de 15 de janeiro a 15 de fevereiro. Como esse mês tem 31 dias, o valor proporcional para os 17 dias de 15 de janeiro a 1º de fevereiro é 17/31 (ou 0,548) de uma cobrança mensal normal.
Outra forma de pensar sobre o cálculo é considerar a data inicial retroativa como a data inicial original e o início do primeiro período de faturamento completo como uma data inicial atualizada.
Atribuir datas passadas sem cobrar usuários
Você também pode estabelecer a data retroativa de uma assinatura sem cobrar o período retroativo do cliente, o que é útil se você estiver migrando para a Stripe. Para fazer isso, passe proration_behavior: 'none'
quando criar a assinatura. Isso define start_date
com o mesmo valor de backdate_start_date
, mas não cobra o cliente pelo período retroativo.
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. Isso é útil 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.
Uma fatura será emitida imediatamente no valor proporcional abrangendo o período entre 1º de setembro e 1º de novembro. Também define a start_date
da assinatura como 1º de setembro. A Stripe emite a próxima fatura em 1º de novembro.
Atribuir uma data retroativa a uma atualização
Para definir a data efetiva de cobranças proporcionais quando autalizar uma assinatura, use o parâmetro proration_date
. Passe um carimbo de data e hora inteiro do Unix dentro do período atual da assinatura. Para assinaturas baseadas em cronogramas de assinatura, verifique se o carimbo de data e hora é anterior à data de início da próxima fase do cronograma de assinatura.
Você pode definir uma proration_date
anterior ao período atual somente durante o primeiro período de uma assinatura retroativa. Nesse caso, a proration_date
pode ser no mesmo dia ou após a subscription[start_date]
(data de início retroativa). Nos demais casos, a proration_date
não pode ser anterior à current_period_start
.