state, e o companheiro dele, has_access.
Os dois campos que importam
O momento da assinatura. É o que você usa para decidir o que mostrar ao seu cliente.
Libere ou bloqueie o seu serviço por aqui. É
true quando o cliente deve ter acesso, false quando não. Você não precisa recalcular a regra a partir do state; nós já resolvemos.Regra de ouro: entregue o seu produto quando
has_access for true. Nunca amarre a entrega a um state específico, porque a lista pode crescer.A tabela de estados
Fluxo, do nascimento ao fim
Quando a cobrança se repete
A renovação é automática. Você não dispara a cobrança de cada ciclo; a plataforma faz sozinha na datanext_charge_at. Quando falha, a régua de retentativas depende do método:
O
next_charge_amount de cada ciclo segue a régua de preços congelada na assinatura no momento em que ela nasceu. Editar a oferta depois nunca reprecifica quem já assina.
Eventos (webhooks)
Configurenotification_url na criação para receber o estado em tempo real. Todo evento traz state, has_access, cycle, next_charge_at e um portal_url pronto do assinante.
O portal do assinante
Toda assinatura tem um portal onde o seu cliente troca o cartão, cancela e reativa sozinho. Umportal_url pronto acompanha todo webhook de assinatura; e você gera um sob demanda em POST /subscriptions/{id}/portal-link. Menos suporte para você, mais autonomia para o cliente.