Carregue o SDK
window.Pagou.
| Ambiente | Uso |
|---|---|
production | Padrão. Usa endpoints de coleta de produção. |
sandbox | Use com chaves públicas e transações de teste. |
local | Apenas desenvolvimento interno. |
Inicialize Elements
| Opção | Obrigatória | Descrição |
|---|---|---|
publicKey | Sim, antes do submit | Chave pública da empresa. Use pk_test_* em sandbox e pk_live_* em produção. |
locale | Não | Locale enviado ao campo hospedado de cartão. O padrão é pt-BR. |
origin | Não | Origem do checkout armazenada na sessão do Element. O padrão é window.location.origin. |
Crie e monte o campo de cartão
elements.create("card") cria um campo hospedado de cartão. Se já existir um campo de cartão na mesma instância de elements, o SDK desmonta o campo anterior antes de criar o novo.
Opções do cartão:
| Opção | Descrição |
|---|---|
theme | default, night ou flat. |
locale | Sobrescreve o locale de Elements para este campo. |
style | Objeto de estilo enviado ao campo hospedado. |
mountTimeoutMs | Timeout de montagem em milissegundos. O padrão é 8000. |
telemetry | Envia telemetria best-effort de falha de montagem quando suportado. O padrão é true. |
Eventos do cartão
| Evento | Payload | Uso |
|---|---|---|
ready | {} | O iframe hospedado carregou e concluiu o handshake com o SDK. |
change | { valid, brand, errors } | Habilite o submit apenas quando valid for true. |
error | { code, message } | Exiba erros de inicialização, montagem ou campo de cartão. |
Envie um pagamento
elements.submit(...) é a ação principal do SDK. Ela cria uma sessão de Element, tokeniza o campo hospedado, chama seu callback createTransaction e continua o 3DS quando a resposta da transaction inclui next_action.
createTransaction recebe:
token ao seu back-end como credencial de pagamento. Trate brand, last4, exp_month e exp_year como metadados para exibição ou bookkeeping.
Resultado do submit
status incluem:
| Status | Significado |
|---|---|
| Status da transaction | Se não houver next_action, o SDK retorna o status da transaction vindo do seu back-end. |
completed | Fallback quando a resposta do back-end não tem status. |
requires_action | Existe next_action e o modal automático de 3DS está desabilitado para a sessão do Element. |
succeeded | Challenge 3DS concluído com sucesso. |
failed | Challenge 3DS ou pagamento falhou. |
canceled | Comprador fechou o modal de 3DS. |
timed_out | Challenge 3DS não finalizou dentro do timeout do SDK. |
error | Falha de tokenização, criação de sessão, callback ou fluxo do SDK. |
3D Secure
Quando seu back-end retorna uma transaction comnext_action, o SDK pode abrir o modal de challenge automaticamente.
Modo do token
Passemode em submit para declarar a intenção da chamada e escolher o tipo de token gerado:
mode | Token | Quando usar |
|---|---|---|
payment (padrão) | pgct_ de uso único | Cobrança avulsa |
upsell | pgpm_ reutilizável | Compra inicial + upsell one-click |
subscription | pgct_ de uso único | Captura de cartão para iniciar uma subscription |
Cleanup
Desmonte o campo de cartão ao sair da tela de checkout:Regras de produção
- Use
pk_test_*apenas comPagou.setEnvironment("sandbox"). - Use
pk_live_*com o ambiente padrão de produção. - Nunca envie dados brutos de cartão ao seu back-end.
- Nunca registre
pgct_*,pgpm_*,client_secretou dados de cartão em logs. - Desabilite submits duplicados enquanto
elements.submit(...)estiver em execução. - Retorne o payload da transaction do back-end sem remover
id,statusounext_action. - Trate o status do navegador como provisório até webhook ou reconciliação confirmar o estado final do pagamento.

