Pular para o conteúdo principal

Integração com SDK (V2)

Quick Reference

WhatA55Pay JS SDK V2
WhyOs dados do cartão ficam no navegador — caminho mais rápido com DDC e 3DS integrados
Reading Time15 min
DifficultyBeginner
PrerequisitesAutenticação → Criar cobrança

O SDK JavaScript A55Pay V2 roda no navegador do comprador: coleta dados do cartão, executa Device Data Collection (DDC), trata a autenticação 3DS, processa o pagamento e dispara callbacks. Dados brutos de cartão não passam pelos servidores de origem do seu site.


Por que usar o SDK

BenefícioDetalhe
Seguro por padrãoDados do cartão ficam no navegador — a A55 cuida da segurança
Integração mais rápidaUma tag script e uma chamada de função
DDC e 3DS integradosO SDK executa fingerprinting do dispositivo e autenticação automaticamente
Callbacks de eventoonSuccess, onError, onReady / onClose para controle total

Como funciona


Integração passo a passo

1

Carregar o SDK

Adicione a tag script na página de checkout:

<script src="https://cdn.jsdelivr.net/npm/a55pay-sdk"></script>
Fixação de versão

Fixe uma versão minor em produção (por exemplo, a55pay-sdk@1.2.x) para comportamento reproduzível entre deploys.

2

Criar uma cobrança no backend

Seu backend cria a cobrança sem dados de cartão — o SDK coletará e enviará os dados do cartão a partir do navegador.

curl -sS -X POST "https://core-manager.a55.tech/api/v1/bank/wallet/charge/" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"wallet_uuid": "00000000-0000-4000-8000-000000000001",
"merchant_id": "merchant_123",
"payer_name": "Jane Doe",
"payer_email": "jane@example.com",
"payer_tax_id": "12345678901",
"currency": "BRL",
"installment_value": 10000,
"installment_count": 1,
"type_charge": "credit_card",
"description": "SDK charge",
"reference_external_id": "sdk_001",
"webhook_url": "https://merchant.example/webhooks/a55",
"redirect_url": "https://merchant.example/return"
}'
3

Chamar A55Pay.payV2() no navegador

Passe o chargeUuid retornado pelo backend e os dados do cartão coletados no navegador:

A55Pay.payV2({
charge_uuid: chargeUuid,
userData: {
name: 'Jane Doe',
email: 'jane@example.com',
document: '12345678901',
card_number: '4111111111111111',
card_expiry_month: '12',
card_expiry_year: '2030',
card_cvv: '123',
address: {
street: 'Av. Paulista 1000',
city: 'São Paulo',
state: 'SP',
zip_code: '01310100',
country: 'BR',
},
},
onSuccess: (payload) => {
// Payment confirmed — show success to buyer
console.log('Charge confirmed:', payload);
},
onError: (err) => {
// Decline or error — show appropriate message
console.error('Charge failed:', err);
},
onReady: () => {
// SDK initialized — you can show the payment form
},
});

O SDK fará automaticamente: executar DDC → enviar pagamento → tratar desafio 3DS (se necessário) → chamar onSuccess ou onError.

4

Tratar os callbacks

CallbackQuando disparaO que fazer
onSuccess(payload)Pagamento concluído (confirmed ou paid)Exibir sucesso, redirecionar para a página do pedido
onError(err)Recusa, erro ou falha de autenticaçãoExibir mensagem de erro clara para o usuário
onReady()SDK inicializado e prontoOpcionalmente exibir o formulário de cartão

Payload esperado em onSuccess:

{
"chargeUuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "confirmed",
"reference_external_id": "sdk_001"
}

Payload esperado em onError:

{
"chargeUuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "error",
"message": "Card declined by issuer"
}
5

Confirmar via webhook

Use sempre o webhook como fonte da verdade. O comprador pode fechar o navegador antes de onSuccess disparar.

{
"charge_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "paid",
"transaction_reference": "txn_ref_001"
}

A55Pay.open(config) — checkout em iframe

Para uma experiência de checkout totalmente hospedada dentro de um iframe ou modal:

const { close } = A55Pay.open({
checkoutUuid: chargeUuid,
display: 'modal', // 'modal' or 'inline'
containerId: 'checkout', // required for 'inline'
onSuccess: (payload) => {
console.log('Payment confirmed:', payload);
},
onError: (err) => {
console.error('Payment error:', err);
},
onClose: () => {
console.log('Checkout closed by user');
},
onEvent: (event) => {
console.log('Checkout event:', event);
},
});
CallbackpayV2open
onSuccessSimSim
onErrorSimSim
onReadySimNão
onCloseNãoSim
onEventNãoSim

Testar com cartões de sandbox

Card NumberBrandScenarioExpected Status
4111 1111 1111 1111VisaPagamento bem-sucedidoconfirmed
5500 0000 0000 0004MastercardPagamento bem-sucedidoconfirmed
4000 0000 0000 0002VisaCartão recusadodeclined
4000 0000 0000 0101VisaDesafio 3DS necessárioconfirmed
4000 0000 0000 0069VisaErro de processamentoerror
Registro de logs

Nunca registre PAN, CVV ou criptogramas vindos dos payloads de callback. O SDK trata os dados do cartão no contexto do navegador — mantenha-os ali.


Quer taxas de aprovação mais altas?

Visa Data Only compartilha dados enriquecidos com emissores pelas trilhas 3DS — sem desafio. Um piloto da Square mostrou ganho de até +646 pontos-base.

Se você usa payV2, o SDK já coleta dados do dispositivo via DDC. Você pode combinar isso com data_only: true na cobrança no backend para maximizar aprovações sem adicionar fricção.

Saiba como ativar Data Only →