# APIs Charges x Payment Intents Conheça as diferenças entre as duas principais APIs de pagamento da Stripe e quando usá-las. ## Entenda as APIs de pagamento da Stripe No momento, você pode aceitar pagamentos na Stripe de três maneiras: - Stripe Checkout - API Charges - *API Payment Intents* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods) O [Stripe Checkout](https://docs.stripe.com/payments/checkout.md) é uma página de pagamentos pré-integrada. Você pode redirecionar seu cliente a essa página para fazer compras e *assinaturas* (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) simples. Essa página oferece vários recursos, como Apple Pay, Google Pay, internacionalização e validação de formulários. As APIs [Charges](https://docs.stripe.com/api/charges.md) e [pagamento Intents](https://docs.stripe.com/api/payment_intents.md) permitem criar fluxos e experiências de pagamento personalizados. A API Payment Intents é a API unificadora de todos os produtos e formas de pagamento da Stripe. A API Charges não está sendo desativada, mas os novos recursos são disponibilizados exclusivamente na API Payment Intents. Veja na tabela a seguir a comparação completa entre os recursos: | API Charges | API Payment Intents | | ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Usada por empresas com clientes concentrados nos EUA/Canadá que desejam uma forma simples de aceitar cartões. | Obrigatória para empresas que aceitam várias formas de pagamento e cartões que exigem autenticação (por exemplo, para conformidade com a *Autenticação Forte de Cliente* (Strong Customer Authentication (SCA) is a regulatory requirement in effect as of September 14, 2019, that impacts many European online payments. It requires customers to use two-factor authentication like 3D Secure to verify their purchase) na Europa). | | Funciona com web, iOS e Android. | Funciona com web, iOS e Android. Também pode ser usada para aceitar pagamentos na loja com o Terminal. | | Aceita cartões e todas as formas de pagamento na [API Sources](https://docs.stripe.com/sources.md). | Aceita cartões, cartões que exigem 3DS, iDEAL, SEPA e [várias outras formas de pagamento](https://docs.stripe.com/payments/payment-methods/overview.md). | | **Não está pronta para SCA** | *Está pronta para SCA* (Strong Customer Authentication (SCA) is a regulatory requirement in effect as of September 14, 2019, that impacts many European online payments. It requires customers to use two-factor authentication like 3D Secure to verify their purchase) | ## Migrar código que lê objetos Charge Se você tiver um aplicativo com vários fluxos de pagamento e está migrando cada um deles da API Charges para a API [API Payment Intents](https://docs.stripe.com/payments/payment-intents.md), primeiro atualize o código que lê o objeto [Charge](https://docs.stripe.com/api/charges.md). Para ajudar com isso, o objeto Charge tem duas propriedades adicionais, [payment_method_details](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details) e [billing_details](https://docs.stripe.com/api/charges/object.md#charge_object-billing_details), que fornecem uma interface consistente para ler os detalhes da forma de pagamento usada para a cobrança. Esses campos estão disponíveis em todas as versões da API e nos objetos Charge criados pelas APIs Charges e Payment Intents. A tabela a seguir mostra as propriedades mais comuns de uma cobrança e como os mesmos dados podem ser acessados usando as propriedades adicionais: #### Cartões e contas bancárias | Descrição | Antes | Depois | | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | Dados da forma de pagamento usada para criar uma cobrança | `charge.source` | `charge.payment_method_details` | | ID da forma de pagamento usada na cobrança | `charge.source.id` | `charge.payment_method` | | Tipo da forma de pagamento usada | `charge.source.object` (por exemplo, `card` ou `bank_account`) | `charge.payment_method_details.type` | | Dados de faturamento para a cobrança (por exemplo, código postal do faturamento) | `charge.source.address_zip` | `charge.billing_details.address.postal_code` | | Nome do titular do cartão | `charge.source.name` | `charge.billing_details.name` | | Últimos 4 dígitos do cartão usado | `charge.source.last4` | `charge.payment_method_details.card.last4` | | Impressão digital do cartão | `charge.source.fingerprint` | `charge.payment_method_details.card.fingerprint` | | Status da verificação do CVC da cobrança | `charge.source.cvc_check` | `charge.payment_method_details.card.checks.cvc_check` | | Valores da bandeira do cartão | `charge.source.brand` pode ser `American Express`, `Diners Club`, `Discover`, `JCB`, `MasterCard`, `UnionPay` ou `Visa` | `charge.payment_method_details.card.brand` pode ser `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay` ou `visa` | | Valor da enumeração do Google Pay | `charge.source.tokenization_method` é `android_pay` | `card.wallet.type` em `charge.payment_method_details` é `google_pay` | #### Fontes | Descrição | Antes | Depois | | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | Dados da forma de pagamento usada para criar uma cobrança | `charge.source` | `charge.payment_method_details` | | ID da forma de pagamento usada na cobrança | `charge.source.id` (`charge.source.three_d_secure.card` se a fonte é 3D Secure) | `charge.payment_method` | | Tipo da forma de pagamento usada | `charge.source.object == 'source' && charge.source.type` (exceto quando `charge.source.type` é `three_d_secure`) | `charge.payment_method_details.type` | | Dados de faturamento para a cobrança (por exemplo, código postal do faturamento) | `charge.source.owner.address.postal_code` | `charge.billing_details.address.postal_code` | | Nome do titular do cartão | `charge.source.owner.name` | `charge.billing_details.name` | | Últimos 4 dígitos do cartão usado | `charge.source.card.last4` `charge.source.three_d_secure.last4` | `charge.payment_method_details.card.last4` | | Se o 3D Secure foi bem-sucedido | `charge.source.object == 'source' && charge.source.type == 'three_d_secure'` | `charge.payment_method_details.card.three_d_secure.succeeded` | | Impressão digital do cartão | `charge.source.card.fingerprint` | `charge.payment_method_details.card.fingerprint` | | Status da verificação do CVC da cobrança | `charge.source.card.cvc_check` | `charge.payment_method_details.card.checks.cvc_check` | | Valores da bandeira do cartão | `charge.source.card.brand` poder ser `American Express`, `Diners Club`, `Discover`, `JCB`, `MasterCard`, `UnionPay` ou `Visa` | `charge.payment_method_details.card.brand` pode ser `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay` ou `visa` | | Valor da enumeração do Google Pay | `charge.source.card.tokenization_method` é `android_pay` | `card.wallet.type` em `charge.payment_method_details` é `google_pay` | ## See also - [Migrar para o pagamento Intents](https://docs.stripe.com/payments/payment-intents/migration.md)