Atualizações pendentes
Saiba como gerenciar falhas de pagamento ao atualizar assinaturas.
A atualização de uma assinatura gera uma nova fatura quando:
- A assinatura exige pagamento pela primeira vez, como no final de um período de teste.
- O período de faturamento muda.
- Alterar a assinatura resulta em cobrança proporcional (pro-rata) e
proration_
.behavior=always_ invoice
Por padrão, a Stripe aplica atualizações mesmo que o pagamento da nova fatura não seja processado. Se o pagamento falhar, a aplicação das atualizações ocorre manualmente. Você precisa criar uma nova fatura, fazer uma cobrança proporcional dos itens e iniciar o pagamento novamente. No entanto, com o recurso de atualizações pendentes, você só pode fazer alterações a assinaturas se o pagamento da nova fatura for bem-sucedido.
Antes de começar
Você pode usar atualizações pendentes se o collection_method da assinatura for charge_
ou se a forma de pagamento da assinatura for um cartão ou Link.
Atualizar a assinaturaLado do servidor
Você pode usar atualizações pendentes com as chamadas atualizar assinatura, criar item de assinatura e atualizar item de assinatura. Quando fizer a atualização, defina payment_
. O exemplo abaixo adiciona um novo preço a uma assinatura. Como proration_
, uma fatura é criada e ocorre a tentativa de pagamento quando a atualização é feita.
Se o pagamento for realizado, a assinatura é atualizada. Se falhar, o objeto Subscription
que é retornado contém um hash pending_
com as alterações:
{ "id": "sub_49ty4767H20z6a", "object": "subscription", "application_fee_percent": null, "pending_update": { "expires_at": 1571194285, "subscription_items": [ { "id": "si_09IkI4u3ZypJUk5onGUZpe8O", "price": "price_CBb6IXqvTLXp3f" } ] }, }
Gerenciar pagamentos malsucedidosLado do cliente
Após fazer a atualização, verifique o hash pending_
na assinatura ou ouça o evento customer.
no seu webhook. Um hash pending_
preenchido significa que o pagamento falhou e sua atualização de assinatura não foi aplicada.
Crie lógica para gerenciar falhas de pagamento causadas por recusas de cartão e solicitações de autenticação de clientes:
- Para recusas de cartão, anexe uma nova forma de pagamento ao cliente. Em seguida, use o endpoint pagar para pagar a fatura gerada pela atualização.
- Para autenticação do cliente, siga o fluxo de ação obrigatória.
Um pagamento bem-sucedido aplica imediatamente as alterações no hash pending_
e atualiza a fatura para paid
.
Se o pagamento falhar novamente, o hash pending_
permanece na assinatura com a data de validade original e nenhuma alteração é aplicada.
Atributos aceitos para atualizações pendentes
As atualizações pendentes aceitam apenas atributos que controlam o comportamento de cobranças proporcionais ou geram novas faturas.
O endpoint de atualização de assinatura aceita os seguintes atributos:
expand
payment_
behavior proration_
behavior proration_
date billing_
cycle_ anchor items
price
quantity
trial_
end trial_
from_ plan add_
invoice_ items
Os endpoints criar item de assinatura e atualizar item de assinatura aceitam os seguintes atributos:
expand
payment_
behavior proration_
behavior proration_
date price
quantity
Atualizações expiradas
Se você não fizer nada depois que uma atualização falhar, a Stripe anulará a fatura e descartará a atualização após o vencimento.
O horário expired_
de uma atualização pendente corresponde à primeira ocorrência do fim da avaliação ou do fim do período items.current mais antigo. Isso se aplica quando um dos horários ocorre dentro de 23 horas da solicitação de atualização. Caso contrário, a expiração é de 23 horas a partir da solicitação de atualização.
A Stripe também anula automaticamente a fatura e remove a atualização pendente se ocorrer uma das seguintes situações:
- A assinatura atinge um limite de cobrança.
- Um cronograma de assinatura vinculado à assinatura passa para uma nova fase.
Eventos de atualizações pendentes
Use webhooks para escutar os seguintes eventos relacionados a atualizações pendentes:
Evento | Objetivo |
---|---|
customer. | Receba notificações sobre assinaturas, verificando o hash pending_ e resolvendo falhas de pagamento, se necessário. |
customer. | Receba notificações quando atualizações pendentes forem aplicadas para que você possa realizar outras ações, como upgrade, downgrade, provisionamento ou desprovisionamento de serviços. |
customer. | Receba notificações quando atualizações pendentes expirarem ou forem automaticamente anuladas e, se necessário, tente a solicitação de atualização novamente. |
Atualizações pendentes e cronogramas de assinatura
Você pode usar atualizações pendentes e cronogramas de assinatura para gerenciar assinaturas. Uma alteração de fase de programação elimina uma atualização pendente e anula a fatura associada. Tente novamente a solicitação de atualização após a transição de fase, se necessário.
Itens medidos
Se uma assinatura incluir itens medidos, a Stripe cobrará qualquer uso pendente na fatura de atualização pendente. No entanto, se a atualização pendente expirar antes do pagamento, a Stripe descarta esse uso, o que impede a cobrança disso nas faturas subsequentes.
Se a atualização pendente remover um preço por consumo, Stripe desconsidera qualquer uso relatado entre a criação da atualização pendente e o pagamento da fatura resultante. Não é possível cobrar por esse uso. No entanto, se billing_
estiver na assinatura, a Stripe cobrará pelo uso ao remover um preço por consumo.