Pular para o conteúdo principal
Use esta página para a menor integração funcional do Payment Element.

Pré-requisitos

  • uma chave pública da Pagou
  • uma rota no back-end que crie POST /v2/transactions
  • tratamento de webhook para o estado final do pagamento

Carregue o script

<script src="https://js.pagou.ai/payments/v3.js"></script>
<script>
  Pagou.setEnvironment("sandbox");
</script>

Monte o campo

const elements = Pagou.elements({
  publicKey: "pk_sandbox_sua_chave_publica",
  locale: "pt-BR",
  origin: window.location.origin,
});

const card = elements.create("card", { theme: "default" });
card.mount("#card-element");

Envie pelo seu back-end

const result = await elements.submit({
  createTransaction: async (tokenData) => {
    const response = await fetch("/api/pay", {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({
        token: tokenData.token,
        amount: 2490,
        installments: 1,
        orderId: "order_2001",
      }),
    });

    const payload = await response.json();
    return payload.data ?? payload;
  },
});

Exemplo de requisição do back-end

{
  "external_ref": "order_2001",
  "amount": 2490,
  "currency": "BRL",
  "method": "credit_card",
  "token": "pgct_token_from_browser",
  "installments": 1
}

Exemplo de resposta do back-end

{
  "success": true,
  "requestId": "req_4002",
  "data": {
    "id": "tr_2001",
    "status": "pending",
    "method": "credit_card"
  }
}

Erro comum

{
  "status": "error",
  "error": "Unable to initialize the card field."
}
Como corrigir: confirme a chave pública, o origin e o ambiente do script. Seu back-end deve devolver o payload da transaction sem remover campos como id, status e next_action.

Próximos passos