OironBank
  1. INICIO
OironBank
  • INICIO
    • Primeiros Passos com o OironBank
    • Autenticação e Segurança
    • Webhooks
    • 3DS e Tokenização de Cartões
  • INVOICES
    • Criação de Invoices
      POST
    • Buscar Transações
      GET
    • Criar Reembolso
      POST
    • Ativar 3DS (Active 3DS)
      POST
  • INVOICES PUBLIC
  • COMPANY
    • Informações da Empresa
      GET
  1. INICIO

3DS e Tokenização de Cartões

💳 CartHero SDK — 3DS 2.x Integration Guide#

Nosso SDK permite que o checkout tokenize cartões e execute 3D Secure (3DS 2.x) quando exigido pelo emissor — tudo internamente, sem precisar de scripts extras no integrador.
⚠️ Importante: o integrador não precisa saber qual adquirente ou provedor 3DS está sendo usado. Isso é resolvido internamente pelo SDK e/ou pelo seu servidor principal.

🚀 Como Incluir#

Opção A — Modo Moderno (ES Modules)#


Opção B — Modo Global (window.ch)#


⚙️ API#

createCh(): ChInstance#

Cria uma nova instância do SDK.

.setBackendUrl(url: string): this#

Define a URL do servidor principal.

.setPublicToken(token: string): this#

Define o token público da loja/vendedor.

.encrypt(card: CardData, context: PaymentContext): Promise<PaymentResult>#

Tokeniza os dados do cartão e executa o 3DS se necessário.
// Dados do cartão
type CardData = {
  number: string;
  expMonth: string;
  expYear: string;
  cvv?: string;
};

// Contexto do pagamento
type PaymentContext = {
  amount: number; // em centavos
  currency: string; // "BRL", "USD", ...
  orderId: string;
  customer?: { email?: string; name?: string; phone?: string; };
  returnUrl?: string;
};

// Resultado esperado
type PaymentResult = {
  token: string;
  status?: 'authenticated' | 'frictionless' | 'attempted' | 'failed' | 'error';
  eci?: string;
  cavv?: string;
  xid?: string;
  version?: string;
};

🔐 Comportamento do 3DS#

encrypt(card, context) é chamado normalmente.
O SDK resolve internamente qual adquirente e provedor 3DS usar.
Se o emissor exigir, o desafio 3DS aparece como um iframe/overlay.
O retorno de encrypt() traz { token, status, eci, cavv, xid, ... }.
O integrador envia o token ao backend para concluir a cobrança.
Nenhuma etapa extra é necessária além do mostrado.

✅ Requisitos do Checkout#

HTTPS em produção
Campos mínimos: amount, currency, orderId, customer.email
Trate o resultado de encrypt() para continuar o fluxo de pedido

📦 Exemplo Completo (HTML)#


🔒 Segurança e Boas Práticas#

Nunca registre PAN/CVV em logs ou console.
Se sua política de segurança bloqueia recursos externos, adicione as fontes necessárias no CSP.

🧰 Soluções de Problemas#

“Started encrypt… but nothing happens” → evite chamadas paralelas e permita iframes.
Falha intermitente na primeira tentativa → pode ser carregamento inicial do provedor 3DS.
Erro de CORS → o CDN deve retornar Access-Control-Allow-Origin e Content-Type: application/javascript.

📌 Resumo Final#

1.
Inclua o SDK (ESM ou Global).
2.
Configure .setBackendUrl() e .setPublicToken().
3.
Chame encrypt(card, context) e use o retorno.
4.
O 3DS é tratado internamente — sem etapas extras.
Precisa de ajuda? Entre em contato com nossa equipe de suporte para desenvolvedores para obter assistência.
Modificado em 2025-10-30 13:06:15
Página anterior
Webhooks
Próxima página
Criação de Invoices
Built with