3DS
O 3D Secure (3DS) é um protocolo de segurança criado para proteger transações com cartão de crédito online, adicionando uma camada extra de autenticação junto ao banco emissor do cartão. Quando habilitado, o cliente precisa confirmar sua identidade antes que a compra seja concluída, reduzindo fraudes e chargebacks e oferecendo mais confiança tanto para quem compra quanto para quem vende.
Por que usar o 3DS?
Menos fraudes e chargebacks: ao deslocar a responsabilidade para o banco emissor, seu negócio fica protegido em casos de contestação.
Melhor experiência de checkout: os fluxos modernos (frictionless e challenge) garantem que, na maioria das vezes, o usuário nem perceba a autenticação extra.
Conformidade: atende exigências de segurança e regulamentações de pagamento (PCI DSS, CERC etc.) .
Como funciona o “Liability Shift”
Liability Shift é a transferência de responsabilidade financeira por fraudes para o banco emissor.
Se o seller exigir (
requiresLiabilityShift = true
) e o banco não garantir esse shift, a transação deve ser cancelada.Caso contrário, o seller fica protegido contra chargebacks fraudulentos .
Passos para integrar o 3DS na Barte
Cadastro do cartão
Chame
POST /v1/cards
enviando otokenId
.Guarde o
cardId
retornado.
Criação da sessão 3DS
Chame
POST /v1/3ds/create-session
com ocardId
.Você receberá
setupId
,token
(JWT) ecollectUrl
.
Coleta de dados do navegador
Insira no front-end um script que submeta
token
paracollectUrl
via iframe.Aguarde o evento
message
que sinaliza o fim da coleta (~1 segundo).
Criação da ordem (order)
Use
POST /v2/orders
, incluindo o objetothreeDSecure
comsetupId
,redirectURL
, dados de browser e flags (dataOnly
,requiresLiabilityShift
).Se
challenged = true
, prepare o fluxo de Step Up Challenge.
Step Up Challenge (se necessário)
Exiba um iframe/form com o
stepUrl
etoken
retornados emthreeDSecure.auth
.Ao concluir, o usuário volta para a sua
redirectURL
.
Consulta de status da ordem
Chame
GET /v2/orders/{orderUuid}
para verificar se a transação estáAPPROVED
,DECLINED
ou outro status.Se
APPROVED
, finalize a venda; seDECLINED
, exiba erro; em outros casos, aguarde.
Considerações importantes
dataOnly = true
: coleta apenas dados de risco, sem challenge e sem liability shift.requiresLiabilityShift
: se true e não houver shift, cancele a transação.challenged
: quando true, redirecione o cliente para aredirectURL
.Dados de browser: obrigatórios em todos os fluxos 3DS2 para análise antifraude.
Sempre trate todos os campos de
threeDSecure
, mesmo em fluxos simples, para garantir robustez.
Atualizado
Isto foi útil?