legacy-pay.js). O fluxo tem três camadas, todas orquestradas pelo SDK:
- Tokenização — transforma os dados do cartão em um token opaco (
cvt_*). Veja Tokenização. - 3D Secure (3DS) — autentica o portador do cartão (SMS, biometria, app do banco). Veja 3D Secure.
- Antifraude — coleta um device fingerprint do comprador. Veja Antifraude.
cvt_*) ao chamar POST /payin.
Importando o SDK
O script é servido pela própria API da Legacy:publicKey (pk_live_* ou pk_test_*) é segura para ficar exposta no navegador. Nunca coloque a sk_live_* no front-end.
Fluxo ponta a ponta
Prepare o pagamento no navegador
prepareCardPayment() tokeniza o cartão e executa 3DS + antifraude automaticamente.Envie o payload para o SEU backend
Nunca chame
/payin direto do navegador (exige sk_live). Encaminhe o payload para o seu servidor.Crie o Payin no seu backend
Com Basic Auth (
pk + sk), chame POST /payin com o card.token e o antifraud.sessionId do payload.Confirme a venda de forma assíncrona
Aguarde o webhook com
status: "APPROVED" ou consulte GET /payin/{id}.Fluxos de 3DS
O SDK é agnóstico de adquirente — o mesmolegacy-pay.js atende todas as lojas, e os detalhes de qual provedor está atrás não são expostos ao integrador. O 3DS pode acontecer de duas formas, de forma transparente para você:
- Pré-ordem: a autenticação acontece no navegador durante
prepareCardPayment()e os dados (cavv/eci/referenceId) já vão embutidos no/payin. - Pós-ordem: o desafio é decidido após o
/payin; a resposta vem comstatus: "PENDING_3DS"e os campos do desafio, concluídos viaclient.handlePendingThreeDS(). Veja 3D Secure.