pagarme / pagarme-core-api-php

Other
0 stars 2 forks source link

O trial_period_days dos planos não pode ser definido para 0 #36

Open willdevx opened 1 year ago

willdevx commented 1 year ago

A API possui no objeto dos planos o parâmetro trial_period_days, que é utilizado para definir a quantidade de dias do período de testes dos planos.

O problema é que, uma vez que esse valor é definido, não é possível remover o período de testes do plano depois. Especificamente, o erro ocorre quando tento definir o trial_period_days para 0 (ou seja, sem período de testes).

Caso o trial_period_days seja definido para 0, a API retorna o erro 422 "The request is invalid.". Já tentei atualizar o plano deixando esse valor null, que não ocorre erro, mas a API simplesmente não atualiza o valor.

Então a dúvida que tenho é, como faço para remover o período de testes dos planos pela API?

amariliscamargo commented 1 year ago

Olá, estou com esse mesmo problema, quero remover trial_period_days de um plano criado e não sei como proceder, podem dar um auxilio?

willdevx commented 1 year ago

Olá, estou com esse mesmo problema, quero remover trial_period_days de um plano criado e não sei como proceder, podem dar um auxilio?

Olá @amariliscamargo,

Infelizmente pelo que temos de informação até agora não é possível remover o período grátis de um plano depois de criado no Pagar.me. A API do Stripe é bem semelhante a do Pagar.me, porém ela é bem mais completa. No objeto Subscription do Stripe é possível indicar se a assinatura deve usar o período grátis do plano ou não com o parâmetro booleano trial_from_plan.

Já no Pagar.me não é possível ter esse controle, uma vez criado o plano, todas as assinaturas a partir dele terá o período grátis configurado no plano, sem possibilidade de desativar ou customizar os dias no objeto Subscription como no Stripe.

Como resolver?

Vejo duas formas do Pagar.me resolver este problema:

  1. Adicionar possibilidade de desativar o período grátis no objeto Plan indicando 0 no trial_period_days (hoje a API só aceita int positivo);
  2. Adicionar parâmetro de usar ou não o período grátis do plano no objeto Subscription (como no Stripe).

Na minha opinião, a 2ª forma é melhor pois não será necessário mudar a documentação da API de Planos, eles só terão que adicionar um parâmetro novo no objeto Subscription que já irá resolver o problema.

O que dá pra fazer hoje?

Por enquanto a única forma de desativar o período grátis é criando um novo plano. A minha sugestão, caso você utilize o período grátis em algumas assinaturas e em outras não, seria criar dois planos—um com e outro sem período grátis, e quando o cliente for realizar a assinatura você pode programar se será no plano de período grátis ou não.