API Payment Methods
Saiba mais sobre a API usada em diferentes formas de pagamento globais.
A API Payment Methods permite aceitar diversas formas de pagamento usando uma única API. Um objeto PaymentMethod contém os dados de forma de pagamento para criar pagamentos. Com a API Payment Methods, você pode combinar um PaymentMethod:
- Com um PaymentIntent para aceitar um pagamento
- Com um SetupIntent e um Customer para salvar os dados para uso posterior
Formas de pagamento aceitas
Para determinar as formas de pagamento que você pode usar em locais específicos, consulte o guia de formas de pagamento.
O guia mostra as formas de pagamento disponíveis em diferentes regiões, uma descrição detalhada das características de cada forma de pagamento e em que regiões elas são mais relevantes. Para ativar qualquer forma de pagamento disponível, use o Dashboard. Normalmente, a ativação é imediata e não exige contratos adicionais.
Ações do cliente
Algumas formas de pagamento exigem que o cliente execute etapas adicionais para finalizar o pagamento. O parâmetro next_
do objeto PaymentIntent especifica o tipo da ação do cliente.
Estas são algumas ações comuns que o cliente precisa executar:
- Redirecionar para o serviço online do banco dele para autenticar e aprovar o pagamento.
- Verificar a propriedade da conta informando um código de uso único publicado por você na API Stripe (por exemplo, microdepósitos).
- Transferir fundos (por exemplo, em transferências bancárias) pelo serviço online do banco dele.
Nem todas as formas de pagamento exigem ações adicionais do cliente. Por exemplo, os pagamentos com cartão (exceto 3D Secure) não exigem autenticação extra além da coleta dos dados do cartão.
Observação
Para formas de pagamento que exigem ação do cliente, configure destinos de evento para notificações sobre o recebimento ou não de um pagamento.
Notificação imediata ou posterior do sucesso de um pagamento
Algumas formas de pagamento retornam imediatamente o status do pagamento quando há uma tentativa de transação (por exemplo, pagamentos com cartão). Outros métodos demoram mais, como os débitos ACH. Quando o status do pagamento é retornado imediatamente, o status do PaymentIntent muda para succeeded
ou requires_
. O status succeeded
garante o recebimento dos fundos dos clientes.
As formas de pagamento com notificação posterior não garantem o pagamento antes da notificação. O status do objeto PaymentIntent permanece processing
até que o pagamento seja bem-sucedido ou falhe. Enquanto isso não ocorre, as empresas costumam manter os pedidos em um status pendente e só os executam quando o pagamento é bem-sucedido.
Observação
Para formas de pagamento com notificação posterior, configure destinos de evento para notificações sobre o recebimento ou não de um pagamento.
Uso único ou reutilizável
Você pode reutilizar algumas formas de pagamento (por exemplo, cartões ou débitos bancários) para outros pagamentos sem autorizar e coletar os dados de pagamento novamente.
Configure sempre formas de pagamento reutilizáveis para uso futuro a fim de reduzir a probabilidade de recusas e inconvenientes de pagamento no futuro (como autenticação obrigatória). As formas de pagamento reutilizáveis podem ser configuradas para uso futuro quando um pagamento é aceito ou sem receber um pagamento.
Formas de pagamento de uso único (por exemplo, alguns tipos de transferências bancárias) não podem ser vinculadas aos clientes porque são consumidas após uma tentativa de pagamento.
Use destinos de evento para acompanhar status de pagamentos
Configure destinos de evento para formas de pagamento que exigem ação do cliente ou quando a notificação de pagamento está atrasada. A Stripe envia os seguintes eventos quando o status do PaymentIntent
é atualizado:
Evento | Descrição | Próximas etapas |
---|---|---|
payment_ | O pagamento do cliente foi enviado à Stripe. Aplica-se somente a formas de pagamento com notificação posterior. | Esperar a finalização ou falha do pagamento iniciado. |
payment_ | O pagamento foi bem-sucedido. | Executar o pedido de mercadorias ou serviços. |
payment_ | O pagamento falhou. | Enviar um e-mail ou notificação push para solicitar outra forma de pagamento. |
Em vez de configurar um destino de evento para ouvir eventos, você também pode usar estas opções:
- Acompanhe manualmente o status dos pagamentos no Stripe Dashboard quando o volume de pedidos que usam formas de pagamento com notificação posterior é pequeno. O Dashboard permite visualizar todos os seus pagamentos da Stripe, enviar recibos por e-mail, gerenciar repasses e tentar novamente pagamentos com falha.
- Use sondagens (por exemplo, recupere repetidamente um PaymentIntent para verificar o status). A sondagem é bem menos confiável e pode não funcionar em grande escala. A Stripe aplica limitações de fluxo às solicitações de API. Portanto, tome cuidado se decidir usar sondagens.
- Use um aplicativo de parceiro para gerenciar eventos comerciais comuns, como automação ou marketing e vendas, ao integrar um aplicativo de parceiro.
O objeto PaymentMethod
Um PaymentMethod contém dados de formas de pagamento reutilizáveis para criar pagamentos (por exemplo, data de validade do cartão ou endereço de cobrança), mas não inclui informações específicas da transação (por exemplo, valor ou moeda). Um PaymentMethod é vinculado a um PaymentIntent para representar os estados do ciclo de vida de um pagamento. Cada PaymentMethod tem um atributo de tipo (por exemplo, "type": "sepa_
) e um hash adicional cujo nome corresponde ao tipo e contém informações específicas do tipo de PaymentMethod (por exemplo, "sepa_
). Exemplo de um objeto PaymentMethod sepa_
:
{ "id": "pm_123456789", "object": "payment_method", "billing_details": { "address": {...}, "email": "jenny@example.com", "name": "Jenny Rosen", "phone": "+335555555555" }, "sepa_debit": { "bank_code": "37040044", "branch_code": "94832", "country": "FR", "fingerprint": "ygEJfUjzWMGyWnZg", "last4": "3000" }, "type": "sepa_debit", (...) }
Observação
Para processar com segurança dados de pagamento confidenciais e gerenciar automaticamente as ações do cliente, a Stripe recomenda que as formas de pagamentos sejam criadas usando o Stripe.js.