# Aceite pagamentos de meses sin intereses Saiba como aceitar pagamentos com cartão de crédito usando meses sin intereses em vários produtos da Stripe. As parcelas (meses sin intereses) são um recurso dos cartões de crédito para consumidores no México que permite aos clientes dividir compras em várias faturas. Você recebe o pagamento como se fosse uma cobrança avulsa normal, com as tarifas deduzidas, e o banco do cliente gerencia a cobrança dos valores ao longo do tempo. Algumas restrições se aplicam a quais transações e cartões podem usar parcelas. Revise os [requisitos de compatibilidade](https://docs.stripe.com/payments/mx-installments.md#requirements). A aceitação de um pagamento parcelado incorre em uma [tarifa adicional](https://docs.stripe.com/payments/mx-installments.md#fees) à tarifa padrão de transação com cartão de crédito. Você pode habilitar as parcelas em vários produtos da Stripe. Escolha abaixo as instruções correspondentes à sua implementação. # Checkout > This is a Checkout for when payment-ui is checkout. View the full page at https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment?payment-ui=checkout. ## Parcelamento no Stripe Checkout O [Checkout](https://docs.stripe.com/payments/checkout.md) cria uma página de pagamentos segura e hospedada pela Stripe que permite coletar pagamentos rapidamente. Ele funciona em vários dispositivos e pode ajudar a aumentar sua conversão. O Checkout oferece uma maneira low-code de começar a aceitar pagamentos. Seus clientes usam o Checkout para pagar com cartões (com ou sem parcelas) e outras formas de pagamento que aceitam o Checkout. ## Revisar a documentação do Checkout O Stripe Checkout permite receber pagamentos parcelados. Para saber como configurar o Checkout, consulte o [início rápido](https://docs.stripe.com/checkout/quickstart.md). ## Criar uma sessão do Checkout Se você usa [formas de pagamento dinâmicas](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md), as parcelas aparecem automaticamente. Caso contrário, crie uma sessão do Checkout com parcelamento habilitado conforme o exemplo abaixo. Substitua o seu próprio objeto Price. > As parcelas funcionam apenas com o modo `payment`. Os modos `setup` ou `subscription` não permitem parcelas. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ --data-urlencode "success_url=https://example.com/success" \ -d "line_items[0][price]={{PRICE_ID}}" \ -d "line_items[0][quantity]=3" \ -d mode=payment \ -d "payment_method_options[card][installments][enabled]=true" ``` ## Redirecionar para o Checkout Depois de criar a sessão, redirecione o cliente ao URL da página do Checkout retornado na sessão do Checkout. ## See also - [Guia de integração do Checkout](https://docs.stripe.com/checkout/quickstart.md) - [Sessões do Checkout](https://docs.stripe.com/api/checkout/sessions.md) - [Payment Intents](https://docs.stripe.com/api/payment_intents/object.md) # Elements > This is a Elements for when payment-ui is elements. View the full page at https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment?payment-ui=elements. ## Parcelas no Payment Element O [Payment Element](https://docs.stripe.com/payments/payment-element.md) permite incorporar um formulário de pagamento personalizável ao seu site. Seus clientes usam o Payment Element para pagar com cartões (com ou sem parcelas) e outras formas de pagamento que ele aceita. ## Revisar a documentação do Payment Element O Payment Element permite que você colete pagamentos parcelados. Para obter informações sobre como configurar o Payment Element, consulte o [início rápido](https://docs.stripe.com/payments/quickstart.md?platform=web). ## Criar um PaymentIntent Se você usa [formas de pagamento dinâmicas](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md), as parcelas aparecem automaticamente. Caso contrário, habilite o parcelamento como mostrado no exemplo abaixo ao criar um PaymentIntent. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=100000 \ -d currency=mxn \ -d "payment_method_options[card][installments][enabled]=true" ``` Após criar a PaymentIntent, retorne seu [segredo do cliente](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-client_secret) ao cliente. > Se você usa formas de pagamento dinâmicas, não defina `payment_method_options[card][installments][enabled]`. Se definido como `false` quando as formas de pagamento dinâmicas estiverem ativadas, podem ocorrer erros. ## Inicializar o Stripe Elements Inicializar Stripe Elements com o segredo do cliente informa ao Payment Element que foram aplicadas parcelas. ## Finalizar o pagamento Quando o cliente clica no botão Pagar, invoque [confirmPayment](https://docs.stripe.com/js/payment_intents/confirm_payment) com o Payment Element e passe um [return_url](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-return_url) para indicar para onde a Stripe deve redirecionar o usuário após a conclusão do pagamento. Se ocorrer uma recusa por [`processing_error`](https://docs.stripe.com/declines/codes.md#processing_error) ou [`transaction_not_allowed`](https://docs.stripe.com/declines/codes.md#transaction_not_allowed), isso pode indicar que o plano selecionado não é aceito pelo emissor do cartão. Oriente o cliente a tentar novamente com outro plano ou sem parcelamento. ## See also - [Guia de integração do Payment Element](https://docs.stripe.com/payments/quickstart.md) - [Referência da API do Payment Element](https://docs.stripe.com/js/element/payment_element) - [Payment Intents](https://docs.stripe.com/api/payment_intents/object.md) # API Direct > This is a API Direct for when payment-ui is direct-api. View the full page at https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment?payment-ui=direct-api. ## Integrar com a API Payment Intents Você pode aceitar parcelas usando a [API Payment Intents](https://docs.stripe.com/payments/payment-intents.md). Nesse caso, você precisa coletar dados do pagamento e do plano de parcelamento no cliente e concluir o pagamento no servidor. Diagrama mostrando visão geral de uma integração de pagamento que aceita parcelas usando o API Payment Intents (See full diagram at https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment) 1. [Coletar dados da forma de pagamento no cliente](https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment.md#collect-payment-method) 1. [Acessar planos de parcelamento no servidor](https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment.md#retrieve-installment-plans) 1. [Selecionar um plano de parcelamento no cliente](https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment.md#select-plan) 1. [Confirme o PaymentIntent no servidor](https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment.md#confirm-payment) ## Coletar dados da forma de pagamento no cliente A API Payment Intents funciona com [Stripe.js & Elements](https://docs.stripe.com/payments/elements.md) para coletar com segurança dados de pagamento (por exemplo, dados de cartão de crédito) no lado do cliente. Para começar a usar o Elements, inclua o script a seguir em suas páginas. Este script sempre deve ser carregado diretamente de **js.stripe.com** para manter a *conformidade com PCI* (Any party involved in processing, transmitting, or storing credit card data must comply with the rules specified in the Payment Card Industry (PCI) Data Security Standards. PCI compliance is a shared responsibility and applies to both Stripe and your business). Não é possível incluí-lo em um pacote ou hospedar uma cópia. ```html ``` Para coletar com segurança dados dos cartões dos clientes, o Elements cria componentes de IU hospedados pela Stripe para você e os coloca no seu formulário de pagamento, em vez de você criá-los diretamente. Para determinar onde os componentes serão inseridos, crie elementos DOM vazios (contêineres) com IDs únicos no formulário de pagamento. ```html
``` Em seguida, crie uma instância do [objeto Stripe](https://docs.stripe.com/js.md#stripe-function), fornecendo sua [chave API](https://docs.stripe.com/keys.md) publicável como o primeiro parâmetro e crie uma instância do [objeto Elements](https://docs.stripe.com/js.md#stripe-elements). Use o objeto recém-criado para [montar](https://docs.stripe.com/js.md#element-mount) um elemento Card no espaço reservado correspondente da página. ```javascript const stripe = Stripe('<>'); const elements = stripe.elements(); const cardElement = elements.create('card'); cardElement.mount('#card-element'); ``` Por último, use [stripe.createPaymentMethod](https://docs.stripe.com/js.md#stripe-create-payment-method) no cliente para obter os dados do cartão e criar um *PaymentMethod* (PaymentMethods represent your customer's payment instruments, used with the Payment Intents or Setup Intents APIs) quando o usuário clicar no botão “Enviar”. ```javascript const cardholderName = document.getElementById('cardholder-name'); const form = document.getElementById('payment-form'); form.addEventListener('submit', async (ev) => { ev.preventDefault(); const {paymentMethod, error} = await stripe.createPaymentMethod( 'card', cardElement, {billing_details: {name: cardholderName.value}}, ); if (error) { // Show error in payment form } else { // Send paymentMethod.id to your server (see Step 2) const response = await fetch('/collect_details', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({payment_method_id: paymentMethod.id}), }); const json = await response.json(); // Handle server response (see Step 3) handleInstallmentPlans(json); } }); ``` ## Recuperar planos de parcelamento no servidor Para recuperar os planos de parcelamento disponíveis, configure um endpoint no seu servidor para receber a solicitação. [Criar novo PaymentIntent](https://docs.stripe.com/payments/payment-intents.md) com o ID do [PaymentMethod](https://docs.stripe.com/api/payment_methods/object.md) criado no cliente. Defina `payment_method_options.card.installments.enabled=true` para permitir que este pagamento use parcelas. Envie os planos disponíveis ao cliente para que ele escolha o plano a ser usado no pagamento. > Aqui, não *confirme* (Confirming a PaymentIntent indicates that the customer intends to pay with the current or provided payment method. Upon confirmation, the PaymentIntent attempts to initiate a payment) o PaymentIntent (ou seja, não defina a propriedade [confirm](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-confirm)) porque ainda não sabemos se o usuário quer pagar em parcelas. #### curl ```bash curl https://api.stripe.com/v1/payment_intents \ -u <>: \ -d "payment_method"="pm_card_mx" \ -d "amount"=100000 \ -d "currency"="mxn" \ -d "payment_method_options[card][installments][enabled]"="true" ``` O objeto PaymentIntent lista os planos de parcelamento disponíveis para o PaymentMethod em `payment_method_options.card.installments.available_plans`. ```json { "id": "pi_1FKDPTJXdud1yP2PpUXNgq0V", "object": "payment_intent", "amount": 100000, ... "payment_method_options": { "card": { "installments": { "enabled": true, "plan": null, "available_plans": [ { "count": 3, "interval": "month", "type": "fixed_count" }, { "count": 6, "interval": "month", "type": "fixed_count" }, { "count": 9, "interval": "month", "type": "fixed_count" }, { "count": 12, "interval": "month", "type": "fixed_count" }, { "count": 18, "interval": "month", "type": "fixed_count" }, { "count": 24, "interval": "month", "type": "fixed_count" } }, "request_three_d_secure": "automatic" } }, ... } ``` ## Selecionar um plano de parcelamento no cliente Permita que o cliente selecione o plano de parcelamento que deseja usar. ```html ``` ```javascript const selectPlanForm = document.getElementById('installment-plan-form'); let availablePlans = []; const handleInstallmentPlans = async (response) => { if (response.error) { // Show error from server on payment form } else { // Store the payment intent ID. document.getElementById('payment-intent-id').value = response.intent_id; availablePlans = response.available_plans; // Show available installment options availablePlans.forEach((plan, idx) => { const newInput = document.getElementById('immediate-plan').cloneNode(); newInput.setAttribute('value', idx); newInput.setAttribute('id', ''); const label = document.createElement('label'); label.appendChild(newInput); label.appendChild( document.createTextNode(`${plan.count} ${plan.interval}s`), ); selectPlanForm.appendChild(label); }); document.getElementById('details').hidden = true; document.getElementById('plans').hidden = false; } }; ``` Envie o plano selecionado ao seu servidor. ```javascript const confirmButton = document.getElementById('confirm-button'); confirmButton.addEventListener('click', async (ev) => { const selectedPlanIdx = selectPlanForm.installment_plan.value; const selectedPlan = availablePlans[selectedPlanIdx]; const intentId = document.getElementById('payment-intent-id').value; const response = await fetch('/confirm_payment', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ payment_intent_id: intentId, selected_plan: selectedPlan, }), }); const responseJson = await response.json(); // Show success / error response. document.getElementById('plans').hidden = true; document.getElementById('result').hidden = false; var message; if (responseJson.status === "succeeded" && selectedPlan !== undefined) { message = `Success! You made a charge with this plan:${ selectedPlan.count } ${selectedPlan.interval}`; } else if (responseJson.status === "succeeded") { message = "Success! You paid immediately!"; } else { message = "Uh oh! Something went wrong"; } document.getElementById("status-message").innerText = message; }); ``` ## Confirme o PaymentIntent no servidor Usando outro endpoint de servidor, confirme o PaymentIntent para finalizar o pagamento e executar o pedido. #### curl ```bash curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/confirm \ -u <>: \ -d "payment_method_options[card][installments][plan][type]"="fixed_count" \ -d "payment_method_options[card][installments][plan][interval]"="month" \ -d "payment_method_options[card][installments][plan][count]"=3 ``` A resposta do servidor indicará que você selecionou o plano no PaymentIntent e também na cobrança resultante. ```json { "id": "pi_1FKDPFJXdud1yP2PMSXLlPbg", "object": "payment_intent", "amount": 100000, ... "charges": { "data": [ { "id": "ch_1FKDPHJXdud1yP2P2u79mcIX", "object": "charge", "amount": 100000, "payment_method_details": { "card": { "installments": { "plan": { "count": 3, "interval": "month", "type": "fixed_count" } }, }, ... }, ... } ], }, ... "payment_method_options": { "card": { "installments": { "enabled": true, "plan": { "count": 3, "interval": "month", "type": "fixed_count" }, "available_plans": [ ... ] } } } } ``` ## Remover manualmente o plano parcelado Depois que um plano de parcelamento é definido em um PaymentIntent, ele permanece até que você o remova. Por exemplo, considere o caso em que o cartão de um cliente é recusado ao tentar pagar com parcelas no primeiro cartão e o segundo cartão inserido pelo cliente não aceita parcelamento. A confirmação do PaymentIntent falha porque as parcelas não são aceitas pelo cartão. É necessário cancelar explicitamente a definição de `payment_method_options[card][installments][plan]` ao confirmar o PaymentIntent novamente para indicar a ausência de um plano parcelado. # Faturas > This is a Faturas for when payment-ui is invoices. View the full page at https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment?payment-ui=invoices. ## Integre com o Invoicing Você pode aceitar parcelas com o [Invoicing](https://docs.stripe.com/invoicing.md). As faturas oferecem uma lista de itens de mercadorias e serviços, que incluem preço, quantidade e impostos. Você também pode usá-los como uma ferramenta de coleta de pagamento. Seus clientes podem pagar com o Checkout usando cartões (com ou sem parcelas) e outras formas de pagamento que aceitam o Checkout. ## Habilitar parcelamento para o Invoicing Você pode criar uma fatura que aceita um pagamento parcelado usando a API Invoicing ou o Stripe Dashboard. Se quiser mais personalização, recomendamos usar a API Invoicing. Se quiser configurar o Invoicing sem escrever código, use o Stripe Dashboard. > Você pode habilitar parcelas para faturas individuais, mas não para assinaturas. ## Use a API Invoicing para configurar uma fatura que pode ser paga em parcelas O Stripe Invoicing permite receber pagamentos parcelados. Você pode usar este [guia de integração](https://docs.stripe.com/invoicing/integration.md) para configurar faturas. 1. [Revisar documentação do Invoicing](https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment.md#review-invoicing-documentation) 1. [Criar uma fatura](https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment.md#create-new-invoice) 1. [Selecionar um plano de parcelamento no cliente](https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment.md#select-plan) 1. [Recuperar o plano de parcelamento selecionado](https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment.md#retrieve-plan) ## Revisar a documentação do Invoicing Consulte o [guia de integração da API Invoicing](https://docs.stripe.com/invoicing/integration.md) e a documentação da API Invoicing para se familiarizar com a criação e o envio de uma fatura genérica. ## Criar uma fatura Crie uma fatura com uma chave de API e objetos [Client](https://docs.stripe.com/api/customers/object.md) e [Price](https://docs.stripe.com/api/prices.md) válidos, como mostrado no exemplo abaixo (observação: você precisará substituir sua própria chave de API válida e o objeto Customer). > As parcelas funcionam apenas com `collection_method` definido como o modo `send_invoice`. O modo `charge_automatically` não permite parcelas. ```curl curl https://api.stripe.com/v1/invoiceitems \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "pricing[price]={{PRICE_ID}}" ``` ```curl curl https://api.stripe.com/v1/invoices \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d collection_method=send_invoice \ -d days_until_due=30 \ -d pending_invoice_items_behavior=include \ -d "payment_settings[payment_method_options][card][installments][enabled]=true" ``` ## Selecionar um plano de parcelamento no cliente A página de fatura hospedada exibe as opções de parcelamento disponíveis de acordo com o número do cartão de crédito informado pelo cliente. Se um cliente clicar em **Pagar em parcelas**, a opção de plano de parcelamento selecionada por padrão é o primeiro plano da lista. O cliente pode selecionar a opção de parcelamento desejada na interface de fatura hospedada. Os planos parcelados só aparecem para cartões de crédito que os aceitam e para transações com valor total superior ou igual a MXN 300,00. Em uma *área restrita* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes), você pode usar [números de cartão de teste](https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment.md#testing) para testar diferentes comportamentos. ## Recuperar o plano de parcelamento selecionado O plano de parcelamento selecionado está disponível no Dashboard e na API. No Dashboard, clique em um pagamento e role até **Dados de pagamento**. Se usou parcelas, você verá a duração do plano. O plano de parcelamento selecionado também está disponível no PaymentIntent. Após o usuário concluir o pagamento, obtenha o ID do PaymentIntent do objeto Fatura (por exemplo, “payment_intent”: “pi_…”) e use-o para recuperar o objeto PaymentIntent e ver qual plano de parcelamento o cliente selecionou. ```curl curl https://api.stripe.com/v1/invoices/{{INVOICE_ID}} \ -u "<>:" ``` Com o ID da intenção de pagamento, recupere o objeto PaymentIntent: ```curl curl https://api.stripe.com/v1/payment_intents/{{PAYMENTINTENT_ID}} \ -u "<>:" ``` O objeto PaymentIntent mostra o plano de parcelamento selecionado: ```json { "id": "pi_...", "object": "payment_intent", "amount": 100000, ... "charges": { "data": [ { "id": "ch_...", "object": "charge", "amount": 100000, "payment_method_details": { "card": { "installments": { "plan": { "count": 3, "interval": "month", "type": "fixed_count" } }, }, ... }, ... } ], }, ... "payment_method_options": { "card": { "installments": { "enabled": true, "plan": { "count": 3, "interval": "month", "type": "fixed_count" }, "available_plans": [] } } } } ``` ## Use o Stripe Dashboard para enviar uma fatura que pode ser paga em parcelas Para configurar o parcelamento no Invoicing, acesse a página de configurações de formas de pagamento do [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). Você pode configurar os planos mensais específicos que deseja oferecer e os valores de transação mínimos e máximos para cada plano. Essa configuração de forma de pagamento está habilitada para o Invoicing e todas as suas outras integrações compatíveis da Stripe, incluindo API, Checkout, Payment Element e Payment Links. Você pode criar uma fatura com apenas alguns cliques usando o [Stripe Dashboard](https://dashboard.stripe.com/customers). 1. Na página [Clientes](https://dashboard.stripe.com/customers), clique em **Adicionar cliente** para criar um cliente (selecione o país como **México**, o idioma como **Espanhol (América Latina)** e a moeda como **MXN - Peso mexicano**) 1. Clique no cliente recém-criado para ver as informações, incluindo as faturas. 1. Na página de visão geral do cliente, clique em **Ações** e selecione **Criar fatura** para configurar uma nova fatura para esse cliente. 1. Na página “Criar fatura”, confira a seção **Pagamento** para verificar se os cartões estão ativados e se a opção **Permitir pagamento parcelado no cartão (meses sin intereses)** também está ativada. 1. Clique em **Encontrar ou adicionar um item** na seção **Itens** para adicionar produtos à fatura. 1. Clique em **Revisar fatura** no canto superior direito da página “Criar fatura” para finalizar a fatura e agendar o envio ao cliente 1. Você pode ver o status das faturas dos clientes na seção **Faturas** da página de visão geral do cliente. Seu cliente recebe a fatura por e-mail. A fatura contém as instruções de envio do pagamento para cobrir a compra. A fatura está disponível em três formatos: diretamente no corpo do e-mail, como um PDF anexado ao e-mail e como uma página de fatura hospedada. Você pode ver o status de uma fatura específica a qualquer momento na página de visão geral do cliente. # Sem programação > This is a Sem programação for when payment-ui is payment-links. View the full page at https://docs.stripe.com/payments/meses-sin-intereses/accept-a-payment?payment-ui=payment-links. ## Integrar com Payment Links Você pode aceitar parcelas com Payment Links. Com o [Payment Links](https://stripe.com/payments/payment-links), você pode criar uma página de pagamentos e enviar aos clientes um link para ela. Ele não requer programação e você pode compartilhar o link quantas vezes quiser nas redes sociais, em e-mails ou em qualquer outro canal. Você também pode [criar links de pagamento programaticamente](https://docs.stripe.com/payment-links/create.md#api) usando a API Payment Links. ## Habilitar parcelamento para o Payment Links Habilite parcelas para o Payment Links na página de configurações de formas de pagamento do [Dashboard](https://dashboard.stripe.com/settings/payment_methods). Configure quais planos mensais oferecer e os valores mínimos e máximos de transação de cada plano. Essas configurações de plano aplicam-se a todas as integrações de parcelas existentes. ## Configurações personalizadas Você pode personalizar a configuração das parcelas usando a página de configurações de formas de pagamento do [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). Você pode encontrar a opção para ativar ou desativar o parcelamento na [página de configurações de formas de pagamento](https://dashboard.stripe.com/settings/payment_methods). Essa configuração permite habilitar parcelas para formas de pagamento sem programação, incluindo Payment Links e Checkout. Separadamente, na página de configurações de formas de pagamento, você também pode configurar os planos mensais específicos que deseja oferecer e os valores de transação mínimos e máximos para cada plano. Essas configurações de plano se aplicam a todas as suas integrações de parcelas existentes. ## Testar a integração Você pode usar os cartões abaixo para testar a integração: | Número | Descrição | | ---------------- | -------------------------------------------------------------- | | 4000004840000008 | Planos de parcelamento disponíveis: 3, 6, 9, 12, 18 e 24 meses | | 4242424242424242 | Nenhum plano de parcelamento disponível. |