# Usar webhooks com assinaturas Saiba como usar webhooks para receber notificações de atividade de assinatura. Você recebe notificações da Stripe no seu aplicativo por meio de eventos de webhook. Use eventos de webhook para gerenciar *subscriptions* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis), já que a maior parte da atividade ocorre de forma assíncrona. Processe esses eventos em um endpoint de webhook ou em outros destinos, como o Amazon EventBridge ou o Azure Event Grid, criando um [destino de evento](https://docs.stripe.com/event-destinations.md). Para usar webhooks com suas assinaturas: 1. Crie um endpoint de webhook no aplicativo. 1. Registre seu [endpoint de Webhook](https://docs.stripe.com/webhooks.md) no Workbench. 1. Adicione lógica para lidar com eventos da Stripe. Para assinaturas, esses eventos incluem falhas de pagamento e alterações no status da assinatura (como a mudança de `trial` para `active`). Você pode usar o [Webhook quickstart](https://docs.stripe.com/webhooks/quickstart.md) para criar um endpoint de Webhook mínimo. Certifique-se de [verificar se os eventos recebidos são da Stripe](https://docs.stripe.com/webhooks.md#verify-events). 1. Teste o endpoint de webhook para confirmar se funciona da forma esperada. Se o aplicativo estiver em execução na AWS, você poderá [configurar a Stripe para enviar eventos diretamente para o AWS EventBridge na sua conta da AWS](https://docs.stripe.com/event-destinations/eventbridge.md). Se o aplicativo estiver em execução no Azure, você poderá [configurar a Stripe para enviar eventos diretamente para o Azure Event Grid na sua assinatura do Azure](https://docs.stripe.com/event-destinations/eventgrid.md). ## Eventos de assinatura A Stripe aciona [eventos](https://docs.stripe.com/api.md#event_types) sempre que uma assinatura é criada ou alterada. Alguns eventos são enviados imediatamente quando a assinatura é criada, mas outros se repetem em períodos de cobrança regulares. Verifique se a integração gerencia adequadamente os eventos. Por exemplo, você pode enviar um e-mail para o cliente quando um pagamento falha ou revogar o acesso dele quando uma assinatura é cancelada. A tabela a seguir descreve os eventos mais comuns relacionados a assinaturas e sugere ações para gerenciar os eventos, quando for o caso. > A API Accounts v2 está disponível para o público em geral para usuários do Connect e em versão prévia pública para outros usuários da Stripe. > > Regardless of whether you use [Accounts v2](https://docs.stripe.com/accounts-v2/use-accounts-as-customers.md) objects or [Customer](https://docs.stripe.com/api/customers.md) objects to represent your customers, use the `customer.subscription` events to track subscription events. | Evento | Descrição | | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `v2.core.account.created` | Enviado quando uma [Account v2](https://docs.stripe.com/api/v2/core/accounts/object.md) é devidamente criada. | | `customer.created` | Enviado quando um [Customer](https://docs.stripe.com/api/customers/object.md) é criado. | | `customer.subscription.created` | Enviado quando a assinatura é criada. O `status` da assinatura poderá ser `incomplete` se a autenticação do cliente for necessária para concluir o pagamento ou se você definir `payment_behavior` como [default_incomplete](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-payment_behavior). | | `customer.subscription.deleted` | Enviado quando a assinatura do cliente termina. | | `customer.subscription.paused` | Enviado quando o `status` de uma assinatura muda para `paused (suspenso)`. Por exemplo, enviamos isso quando você [configura](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-trial_settings-end_behavior-missing_payment_method) uma assinatura para pausar quando um [período de teste gratuito termina sem uma forma de pagamento](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md#create-free-trials-without-payment). O faturamento não ocorrerá até que a assinatura seja [retomada (/api/subscriptions/resume). Não enviamos esse evento se você [suspender a cobrança de pagamentos](https://docs.stripe.com/billing/subscriptions/pause-payment.md), pois as faturas continuam sendo criadas durante esse período. | | `customer.subscription.resumed` | Enviado quando você retoma uma assinatura que estava anteriormente com o status `suspenso`. Isso não se aplica quando você [retoma a cobrança de pagamentos](https://docs.stripe.com/billing/subscriptions/pause-payment.md#unpausing). | | `customer.subscription.trial_will_end` | Enviado três dias antes do [final do período de avaliação](https://docs.stripe.com/billing/subscriptions/trials.md). O evento é acionado quando o período de avaliação é inferior a três dias. | | `customer.subscription.updated` | Enviado quando uma assinatura inicia ou é [alterada](https://docs.stripe.com/billing/subscriptions/change.md). Por exemplo, o evento é acionado ao renovar uma assinatura, adicionar cupons, aplicar descontos, incluir itens de fatura ou alterar planos. | | `entitlements.active_entitlement_summary.updated` | Enviado quando os direitos ativos de um cliente são atualizados. Quando receber esse evento, você pode provisionar ou cancelar o acesso aos recursos do produto. Leia mais sobre [integração com direitos](https://docs.stripe.com/billing/entitlements.md). | | `invoice.created` | Enviado quando uma fatura é criada para uma assinatura nova ou em renovação. Se a Stripe não receber uma resposta positiva para `invoice.created`, a finalização de todas as faturas com [cobrança automática](https://docs.stripe.com/invoicing/integration/automatic-advancement-collection.md) será adiada por até 72 horas. Leia mais sobre a [finalização de faturas](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized). - Responda à notificação enviando uma solicitação para a API [finalizar uma fatura](https://docs.stripe.com/api/invoices/finalize.md). | | `invoice.finalized` | Enviado quando uma fatura é finalizada e está pronta para pagamento. - Você pode enviar a fatura ao cliente. Para saber mais, consulte [finalização de faturas](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized). - Dependendo da configuração, cobraremos automaticamente a forma de pagamento padrão ou tentaremos fazer a cobrança. Para saber mais, consulte [e-mails após a finalização](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#emails). | | `invoice.finalization_failed` | A fatura não pôde ser finalizada. Saiba mais sobre [como lidar com falhas na finalização de faturas](https://docs.stripe.com/tax/customer-locations.md#finalizing-invoices-with-finalization-failures) e [sobre a finalização de faturas](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized). - Inspecione o [last_finalization_error](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) da fatura para determinar a causa do erro. - Se você estiver usando o Stripe Tax, verifique o campo [automatic_tax](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) do objeto `Invoice`. - Se `automatic_tax[status]=requires_location_inputs`, a fatura não será finalizada e os pagamentos não poderão ser coletados. Notifique seu cliente e colete a [localização do cliente](https://docs.stripe.com/tax/customer-locations.md) necessária. - Se `automatic_tax[status]=failed`, tente a solicitação outra vez mais tarde. | | `invoice.paid` | Enviado quando a fatura é paga. Você pode provisionar acesso ao produto quando recebe este evento e `status` é `active`. | | `invoice.payment_action_required` | Enviado quando a fatura exige autenticação do cliente. Saiba como gerenciar a assinatura quando a fatura [exigir ação](https://docs.stripe.com/billing/subscriptions/overview.md#requires-action). | | `invoice.payment_failed` | Um pagamento de uma fatura falhou. O status do PaymentIntent muda para `requires_action`. O status da assinatura permanece como `incomplete` *only* para a primeira fatura da assinatura. Se um pagamento falhar, você pode tomar várias ações possíveis: - Avise o cliente. - Defina suas [configurações de assinatura](https://dashboard.stripe.com/settings/billing/automatic) no Dashboard para ativar o [Smart Retries](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md) e outros recursos de recuperação de receitas. - Se você usa PaymentIntents, colete os novos dados de pagamento e [confirme o PaymentIntent](https://docs.stripe.com/api/payment_intents/confirm.md). - Atualize a [forma de pagamento padrão](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-default_payment_method) na assinatura. | | `invoice.upcoming` | Enviado alguns dias antes da renovação da assinatura. O número de dias é baseado no número definido para **Próximos eventos de renovação** no [Dashboard](https://dashboard.stripe.com/settings/billing/automatic). Para assinaturas existentes, a alteração do número de dias entra em vigor no próximo período de cobrança. Se necessário, você ainda pode adicionar [outros itens de fatura](https://docs.stripe.com/billing/invoices/subscription.md#adding-upcoming-invoice-items). | | `invoice.updated` | Enviado quando um pagamento é bem-sucedido ou falha. Se o pagamento for bem-sucedido, o atributo `paid` será definido como `true`, e `status` será `paid`. Se o pagamento falhar, `paid` será definido como `false`, e `status` permanecerá `open`. As falhas de pagamento também acionam um evento `invoice.payment_failed`. | | `payment_intent.created` | Enviado quando um [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) é criado. | | `payment_intent.succeeded` | Enviado quando um PaymentIntent conclui um pagamento. | | `subscription_schedule.aborted` | Enviado quando um cronograma de assinatura é cancelado porque o pagamento inadimplente encerrou a assinatura relacionada. | | `subscription_schedule.canceled` | Enviado quando um cronograma de assinatura é cancelado, o que também cancela qualquer assinatura associada ativa. | | `subscription_schedule.completed` | Enviado quando todas as [fases](https://docs.stripe.com/billing/subscriptions/subscription-schedules.md#subscription-schedule-phases) de um cronograma de assinatura são concluídas. | | `subscription_schedule.created` | Enviado quando um novo cronograma de assinatura é criado. | | `subscription_schedule.expiring` | Enviado 7 dias antes da data de vencimento de um cronograma de assinatura. | | `subscription_schedule.released` | Enviado quando um cronograma de assinatura é [lançado](https://docs.stripe.com/api/subscription_schedules/release.md) ou interrompido e dissociado da assinatura, que permanece. | | `subscription_schedule.updated` | Enviado quando uma programação de assinatura é atualizada. | ## Gerenciar falhas de pagamento Os eventos são uma maneira confiável de a Stripe notificar você sobre falhas nos pagamentos de faturas de assinaturas. Algumas falhas de pagamento são temporárias. Por exemplo, um emissor de cartão pode recusar a cobrança inicial, mas permitir uma nova tentativa automática. Outras falhas de pagamento são finais e exigem alguma ação, como não ter uma forma de pagamento utilizável para o cliente. | Evento | Descrição | | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `invoice.payment_failed` | Houve uma falha no pagamento de uma fatura. O status do PaymentIntent muda para `requires_payment_method`. O status da assinatura muda para `incomplete`. Você pode tomar várias providências quando um pagamento falha: - Avise o cliente. - Se você usa PaymentIntents, colete os novos dados de pagamento e [confirme o PaymentIntent](https://docs.stripe.com/api/payment_intents/confirm.md). - Atualize a [forma de pagamento padrão](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-default_payment_method) na assinatura. - Considere a ativação de [Smart Retries](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md). | ## Gerenciar pagamentos que precisam de medidas adicionais Algumas formas de pagamento podem exigir mais etapas para sua conclusão, como autenticação do cliente. Quando recebe esses eventos, o aplicativo precisa notificar o cliente para concluir a ação necessária. Para saber como [gerenciar eventos que exigem ação adicional](https://docs.stripe.com/billing/subscriptions/overview.md#requires-action), leia o guia de visão geral de assinaturas. | Evento | Descrição | | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `invoice.finalization_failed` | Não foi possível finalizar a fatura. Descubra como [gerenciar falhas de finalização de faturas](https://docs.stripe.com/tax/customer-locations.md#finalizing-invoices-with-finalization-failures). Saiba mais sobre a [finalização de faturas](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized) no guia de visão geral de faturas. - Inspecione [last_finalization_error](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) da fatura para determinar a causa do erro. - Se você estiver usando o Stripe Tax, verifique o campo [automatic_tax](https://docs.stripe.com/api/invoices/object.md#invoice_object-automatic_tax) do objeto Invoice. - Se `automatic_tax[status]=requires_location_inputs`, não é possível finalizar a fatura e cobrar os pagamentos. Notifique o cliente e colete a [localização do cliente](https://docs.stripe.com/tax/customer-locations.md) obrigatória. - Se `automatic_tax[status]=failed`, tente a solicitação novamente mais tarde. | | `invoice.payment_failed` | Houve uma falha no pagamento de uma fatura. O status do PaymentIntent muda para `requires_action`. O status da assinatura muda para `incomplete`. Você pode tomar várias providências quando um pagamento falha: - Avise o cliente. - Se você usa PaymentIntents, colete os novos dados de pagamento e [confirme o PaymentIntent](https://docs.stripe.com/api/payment_intents/confirm.md). - Atualize a [forma de pagamento padrão](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-default_payment_method) na assinatura. - Considere a ativação de [Smart Retries](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md). | | `invoice.payment_action_required` | Enviado quando a fatura exige autenticação do cliente. Saiba como gerenciar a assinatura quando a fatura [exigir ação](https://docs.stripe.com/billing/subscriptions/overview.md#requires-action). | ## Acompanhe as assinaturas ativas As assinaturas exigem coordenação entre seu site e a Stripe. O sucesso ou a falha dos pagamentos recorrentes de um cliente determina a continuidade do acesso ao produto ou serviço. Nas integrações comuns, quando um cliente faz uma assinatura, você armazena as credenciais dele e um valor de carimbo de data e hora com a data de validade do acesso dele ao seu site. Quando o cliente faz login, você verifica se o carimbo de data e hora ainda está no futuro. Se estiver, a conta está ativa e o cliente ainda tem acesso ao serviço. Quando a assinatura é [renovada](https://docs.stripe.com/billing/subscriptions/overview.md#subscription-lifecycle), a Stripe cobra o cliente e tenta cobrar o pagamento [cobrando automaticamente](https://docs.stripe.com/invoicing/automatic-charging.md) a forma de pagamento cadastrada ou [enviando a fatura por e-mail](https://docs.stripe.com/invoicing/integration.md#accept-invoice-payment) aos clientes. A Stripe notifica seu site sobre o status da fatura enviando um evento de webhook: 1. Seu site recebe um evento `invoice.paid`. - Quando cobramos automaticamente uma forma de pagamento, seu site recebe primeiro um evento `invoice.upcoming` no [endpoint de webhook](https://docs.stripe.com/webhooks.md) configurado alguns dias antes da renovação. É possível escutar esse evento para [adicionar itens à próxima fatura](https://docs.stripe.com/billing/invoices/subscription.md#adding-upcoming-invoice-items). Se `collection_method=send_invoice`, a Stripe não envia um evento `invoice.upcoming`. 1. Seu aplicativo encontra o cliente para o qual o pagamento acabou de ser feito. 1. Seu aplicativo atualiza a data de validade do acesso do cliente no seu banco de dados para a data futura apropriada (mais um dia ou dois para ter uma margem). ## Capturar alterações de status de assinaturas Verifique se a integração monitora e gerencia adequadamente as transições entre os status de assinatura descritos na tabela a seguir. Algumas mudanças de status exigem atenção especial: - Alguns dias antes do término da avaliação e da mudança da assinatura de `trialing` para `active`, você recebe um evento `customer.subscription.trial_will_end`. Quando você receber esse evento, verifique se o cliente tem uma forma de pagamento cadastrada e efetue a cobrança. Se preferir, avise o cliente sobre isso. - Quando uma assinatura muda para `past_due`, avise o cliente e solicite a atualização dos dados de pagamento. A Stripe oferece vários recursos que ajudam a automatizar esse processo. Saiba mais sobre a [recuperação de receitas](https://docs.stripe.com/billing/revenue-recovery.md). - Quando uma assinatura mudar para `canceled` ou `unpaid`, revogue o acesso ao seu produto. | Status | Descrição | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `trialing` | A assinatura está em período de avaliação e você pode fornecer seu produto com segurança para o cliente. A assinatura muda automaticamente para `active` quando o cliente faz o primeiro pagamento. | | `active` | A assinatura está em bom estado. Para assinaturas`past_due`, pagar a fatura associada mais recente ou marcá-la como não coletável muda as assinatura para `ativo`. Note que`ativo` não indica que todas as faturas pendentes associadas a assinatura foram pagas. Você pode deixar outras faturas pendentes abertas para pagamento, marcá-las como não cobráveis ou anulá-las conforme achar melhor. | | `incomplete` | O cliente precisa fazer um pagamento em até 23 horas para ativar a assinatura. Ou o pagamento [demanda atenção](https://docs.stripe.com/billing/subscriptions/webhooks.md#requires-action), como autenticação do cliente. As assinaturas também podem ficar `incomplete` se houver um pagamento pendente e o status do PaymentIntent for `processing`. | | `incomplete_expired` | O pagamento inicial da assinatura falhou e o cliente não concretizou o pagamento em 23 horas após a criação da assinatura. Essas assinaturas não cobram os clientes. Esse status existe para que você acompanhe os clientes que não ativaram as assinaturas. | | `past_due` | O pagamento da última fatura *finalizada* falhou ou não foi tentado. A assinatura continua a criar faturas. As [configurações de assinatura](https://dashboard.stripe.com/settings/billing/automatic) do seu Dashboard determinam o próximo status da assinatura. Se a fatura ainda não tiver sido paga depois de todos os [Smart Retries](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md) tentados, você poderá configurar a assinatura de modo a passar para `canceled`, `unpaid` ou deixá-la como `past_due`. Para reativar a assinatura, peça para o cliente pagar a fatura mais recente. O status da assinatura torna-se `active` independentemente de o pagamento ser feito antes ou depois da data de vencimento da fatura mais recente. | | `canceled` | A assinatura foi cancelada. Durante o cancelamento, a cobrança automática de todas as faturas não pagas é desativada (`auto_advance=false`). Este estado é terminal e não pode ser atualizado. | | `unpaid` | A fatura mais recente não foi paga, mas a assinatura continua ativa. A última fatura está aberta e as faturas continuam a ser geradas, mas não são feitas tentativas de pagamento. Suspensa o acesso ao seu produto quando a assinatura estiver `unpaid`, porque as tentativas de pagamento já foram feitas enquanto estava em `past_due`. Para colocar a assinatura no modo `active`, pague a fatura mais recente antes do vencimento. | | `paused` | A assinatura encerrou o período de teste sem uma forma de pagamento padrão e [trial_settings.end_behavior.missing_payment_method](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md#create-free-trials-without-payment) está definido como `suspenso`. As faturas não são mais criadas para a assinatura. Após adicionar uma forma de pagamento padrão ao cliente, você pode [retomar a assinatura](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md#resume-a-paused-subscription). | ## Endpoints de webhooks e faturas Registre um endpoint de webhook para acompanhar os status das faturas. Sua integração de assinaturas depende da finalização correta das faturas e do gerenciamento adequado de falhas de finalização de faturas. Quando você habilita a [cobrança automática](https://docs.stripe.com/invoicing/integration/automatic-advancement-collection.md), a Stripe automaticamente finaliza e começa a cobrança automática da [fatura](https://docs.stripe.com/billing/invoices/subscription.md). - Se a Stripe não receber uma resposta adequada para `invoice.created`, a finalização de todas as faturas com [cobrança automática](https://docs.stripe.com/invoicing/integration/automatic-advancement-collection.md) é adiada por até 72 horas, exceto aquelas em que você definir [um horário de finalização agendado personalizado](https://docs.stripe.com/invoicing/scheduled-finalization.md). - Uma resposta adequada para `invoice.created` inclui gerenciar todos os endpoints de webhook configurados na sua conta e de todas as plataformas às quais você está conectado. Isso não inclui nenhum endpoint de webhook configurado em uma [organização](https://docs.stripe.com/get-started/account/orgs.md). Embora você possa escutar `invoice.created` na organização, uma resposta bem-sucedida não afeta a finalização da fatura ao usar cobrança automática. - Uma atualização de assinatura que cause uma tentativa de pagamento síncrono (na fatura inicial e em alguns tipos de atualização) não gera essa espera. - Uma falha na finalização da fatura evita a cobrança do pagamento da fatura. Certifique-se de ouvir o evento `invoice.finalization_failed` no seu endpoint de webhook. ### Eventos de webhook relacionados à finalização de faturas Veja uma lista completa de [tipos de evento de fatura](https://docs.stripe.com/api/events/types.md#event_types-invoice.created). | Evento | Descrição | | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `invoice.created` | A fatura foi criada e está pronta para ser finalizada. Leia a documentação para saber mais sobre a [finalização de faturas](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized). - Responda à notificação enviando uma solicitação à API [Finalize an invoice](https://docs.stripe.com/api/invoices/finalize.md). | | `invoice.finalized` | A fatura foi finalizada e está pronta para o pagamento. - Você pode enviar a fatura ao cliente. Leia mais sobre a [finalização de faturas](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized). - Dependendo da configuração, a Stripe cobra automaticamente a forma de pagamento padrão ou tenta fazer a cobrança. Leia mais sobre os [e-mails após a finalização](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#emails). | | `invoice.finalization_failed` | Não foi possível finalizar a fatura. Descubra como [gerenciar falhas de finalização de faturas](https://docs.stripe.com/tax/customer-locations.md#finalizing-invoices-with-finalization-failures) lendo o guia. Saiba mais sobre a [finalização de faturas](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized) no guia de visão geral de faturas. - Inspecione [last_finalization_error](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) da fatura para determinar a causa do erro. - Se você usa o Stripe Tax, confira o campo [automatic_tax](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) do objeto Invoice. - Se `automatic_tax[status]=requires_location_inputs`, não é possível finalizar a fatura e cobrar os pagamentos. Notifique o cliente e colete a [localização do cliente](https://docs.stripe.com/tax/customer-locations.md) obrigatória. - Se `automatic_tax[status]=failed`, tente a solicitação outra vez mais tarde. | ### Finalização da fatura A Stripe aguarda uma hora após receber uma resposta positiva para o evento `invoice.created` antes de tentar fazer um pagamento. Se não recebermos uma resposta positiva em 72 horas, tentaremos finalizar e enviar a fatura. Caso você deseje tratar faturas avulsas de forma diferente das faturas de assinatura, verifique a propriedade `subscription` no corpo do webhook. Ela indica se a fatura foi criada para uma assinatura. No modo de produção, se o seu endpoint de webhook não responder corretamente, a Stripe continuará tentando realizar a notificação do webhook por até três dias com um recuo exponencial. Em uma área restrita, realizamos três tentativas em algumas horas. Nesse período, não tentaremos cobrar o cliente se não recebermos uma resposta bem-sucedida. Também notificaremos você por e-mail se houver falha no webhook. Esse comportamento se aplica a todos os endpoints de webhook definidos na sua conta, incluindo casos em que um [aplicativo Connect](https://stripe.com/works-with) ou outro serviço de terceiros está tendo problemas para gerenciar os webhooks de entrada. ### Falha na finalização da fatura Quando não consegue finalizar uma fatura, a Stripe envia um [evento](https://docs.stripe.com/api/events/types.md#event_types-invoice.finalization_failed) `invoice.finalization_failed` ao endpoint de webhook. As assinaturas permanecem ativas quando não é possível finalizar as faturas, ou seja, os usuários podem continuar acessando o produto, mesmo que você não consiga cobrar os pagamentos. Lembre-se de tomar providências para faturas com falha de finalização. Não é possível cobrar pagamentos de uma fatura não finalizada. Para determinar a causa da falha de finalização da fatura, examine o [campo](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) `last_finalization_error` do objeto Invoice, que oferece mais informações sobre a falha, incluindo orientações sobre como proceder. Se estiver usando o Stripe Tax, verifique se o campo [automatic_tax.status](https://docs.stripe.com/api/invoices/object.md#invoice_object-automatic_tax-status) é `requires_location_inputs`, indicando que os dados do endereço são inválidos ou insuficientes. Se o Stripe Tax não encontrar uma localização de cliente reconhecida, não conseguiremos finalizar a fatura. Saiba como [gerenciar falhas de finalização de faturas](https://docs.stripe.com/tax/customer-locations.md#finalizing-invoices-with-finalization-failures). ## Testes Para testar o endpoint do webhook ou o [destino do evento](https://docs.stripe.com/event-destinations.md), escolha uma destas duas opções: 1. Execute ações em uma área restrita que enviem eventos legítimos ao destino do evento. Por exemplo, para acionar o evento [charge.succeeded](https://docs.stripe.com/api.md#event_types-charge.succeeded), você pode usar um [cartão de teste que gera uma cobrança bem-sucedida](https://docs.stripe.com/billing/subscriptions/webhooks.md#cards). 1. [Acione eventos usando o Stripe CLI](https://docs.stripe.com/webhooks.md#test-webhook) ou [usar o Stripe para Visual Studio Code](https://docs.stripe.com/stripe-vscode.md#webhooks). ## See also - [Ciclo de vida das assinaturas](https://docs.stripe.com/billing/subscriptions/overview.md#subscription-lifecycle) - [Testar assinaturas](https://docs.stripe.com/billing/testing.md)