Skip to main content
Use o script público da Pagou para tokenizar cartão no frontend:
<script
  src="https://js.pagou.ai/payments/v2.js"
  data-public-key="pk_live_sua_chave_publica"
  data-test-mode="false"
></script>

Formulário mínimo

<form id="payment-form">
  <input type="text" data-pagou="number" placeholder="Número do cartão" />
  <input type="text" data-pagou="expiration" placeholder="MM/AA" />
  <input type="text" data-pagou="verification_value" placeholder="CVV" />
  <input type="text" data-pagou="full_name" placeholder="Nome do portador" />
  <button type="submit">Pagar</button>
</form>

Tabela de bindings (data-pagou)

Atributo (data-pagou)Campo tokenizadoObrigatórioObservações
numbernumberSimNúmero do cartão (com ou sem máscara)
verification_valueverification_valueSimCVV/CVC
expirationmonth + yearSim*Formato único MM/AA
expiration_monthmonthSim*Use quando separar mês/ano
expiration_yearyearSim*Use quando separar mês/ano
monthmonthSim*Alias de expiration_month
yearyearSim*Alias de expiration_year
full_namefirst_name + last_nameSim**O SDK faz split automático por espaço
first_namefirst_nameSim**Use com last_name
last_namelast_nameSim**Use com first_name
* Obrigatório informar validade via expiration ou expiration_month/expiration_year (ou month/year).
** Obrigatório informar nome via full_name ou first_name + last_name.

Tokenização e envio para backend

document.getElementById("payment-form").addEventListener("submit", async (event) => {
  event.preventDefault();

  const { token, errors } = await window.Pagou.createPaymentToken();

  if (errors) {
    console.error(errors);
    return;
  }

  await fetch("/checkout/pay", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ token }),
  });
});

Criação da transação no backend

import { Client } from "@pagouai/api-sdk";

const client = new Client({
  apiKey: process.env.PAGOU_API_KEY!,
  environment: "production",
});

const transaction = await client.transactions.create({
  amount: 1500,
  currency: "BRL",
  method: "credit_card",
  token: "pgct_0123456789abcdef",
  installments: 1,
  buyer: {
    name: "Maria Silva",
    email: "maria@empresa.com",
    document: { type: "CPF", number: "12345678901" },
  },
  products: [{ name: "Pedido #1234", price: 1500, quantity: 1 }],
});

console.log(transaction.data.id);
Não integre tokenização de cartão diretamente via rota HTTP. Para integração pública, use o WebSDK.