Criar Pagamento 3DS
Cria uma transação de pagamento com autenticação 3DS. Certifique-se de que as bibliotecas de Antifraude e 3DS estejam corretamente implementadas antes de realizar operações.
Parâmetros
Para transações de débito, utilize productType como debito. Para vendas no crédito parceladas, utilize lojista. Para vendas no crédito à vista, utilize avista.
{
"cardInfo": {
"cardholderName": "JOAO DA SILVA",
"expirationMonth": "12",
"expirationYear": "28",
"numberToken": "98a76b5c-4321-fedc-ba98-76543210fedc",
"securityCode": "123"
},
"payment": {
"amount": 15050,
"installments": 1,
"productType": "debito",
"transactionType": "debit"
},
"sellerInfo": {
"CodeAntiFraud": "123456",
"Code3DS": "3DSv2",
"UrlSite3DS": "https://pagamentos.sanepar.com.br/retorno-3ds"
},
"customer": {
"documentNumber": "12345678901",
"email": "[email protected]",
"ipAddress": "177.18.200.50",
"firstName": "JOAO",
"lastName": "DA SILVA",
"phoneNumber": "41999998888",
"mobilePhoneNumber": "41999998888",
"address": "Rua Exemplo, 123",
"city": "Curitiba",
"state": "PR",
"zipCode": "80000000",
"country": "BRA"
},
"deviceInfo": {
"httpAcceptBrowserValue": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"httpAcceptContent": "*/*",
"httpBrowserLanguage": "pt-BR",
"httpBrowserJavaEnabled": false,
"httpBrowserJavaScriptEnabled": true,
"httpBrowserColorDepth": "24",
"httpBrowserScreenHeight": "1080",
"httpBrowserScreenWidth": "1920",
"httpBrowserTimeDifference": "-180",
"userAgentBrowserValue": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
"ipAddress": "177.18.200.50"
}
}Retorno (200)
{
"paymentAuthorization": {
"amount": 10000,
"authorizationCode": "AG5479",
"description": "SUCESSO",
"orderNumber": "87503829756001101092",
"paymentId": "875038297560011010928750382975600910202615",
"releaseAt": "2026-10-09T15:37:00",
"returnCode": "0"
},
"threeDs": {
"eci": "05",
"paresStatus": "AAABBZEEBgAAAAAAAAQGAAAAAAA=",
"status": "AUY",
"threeDsStatus": "Y",
"threeDsVersion": "2.2.0",
"veresEnrolled": "",
"reason": "",
"acsUrl": null,
"authenticationTransactionId": "1adc3814-d2d4-4a7e-88f5-f6f6f7b7b064",
"pareq": null,
"paymentToken": null
}
}Status do 3DS
Para testar os retornos dos status do 3DS em homologação, use os valores abaixo no campo amount da requisição.
| Status | Valor | Descrição |
|---|---|---|
| AUY | 10000 | SUCESSO |
| AUC | 10004 | PENDENTE - NECESSARIO REALIZAR DESAFIO 3DS - 99 |
Erros
Para recusas retornadas pelo emissor ou adquirente, consulte também os Códigos de resposta do autorizador. Esses códigos identificam o resultado da transação e não devem ser confundidos com os status HTTP.
As respostas de erro conhecidas estão abaixo. Os retornos observados em homologação estão identificados separadamente dos exemplos documentados; as respostas podem variar conforme o ambiente e a configuração.
Exemplo documentado
[
{
"tag": "3DS Fail",
"description": "eci: 00 - threeDsVersion: 2.1.0 - threeDsStatus: AUTHENTICATION_SUCCESSFUL - veresEnrolled: U"
}
]Observado em homologação
Requisição com corpo JSON vazio ou identificador sintético. O retorno abaixo mostra a validação realizada em homologação.
[
{
"tag": "Payment.TransactionType",
"description": "Tipo de transação não pode estar vazio"
},
{
"tag": "Payment.TransactionType",
"description": "Tipo de transação deve ser 'credit' ou 'debit'"
},
{
"tag": "Payment.Amount",
"description": "Valor deve ser maior que zero"
},
{
"tag": "Payment.ProductType",
"description": "Tipo de produto não pode estar vazio"
},
{
"tag": "Payment.ProductType",
"description": "Tipo de produto deve ser 'avista', 'lojista', 'debito'"
},
{
"tag": "Payment.Installments",
"description": "Parcelas deve ser maior que zero"
},
{
"tag": "SellerInfo.UrlSite3DS",
"description": "URL do site 3DS é requerida"
},
{
"tag": "SellerInfo.UrlSite3DS",
"description": "URL do site 3DS deve ser uma URL válida"
},
{
"tag": "Customer.DocumentNumber",
"description": "Número do documento é requerido"
},
{
"tag": "Customer.DocumentNumber",
"description": "Documento deve ter 11 (CPF) ou 14 (CNPJ) dígitos"
},
{
"tag": "Customer.FirstName",
"description": "Nome é requerido"
},
{
"tag": "Customer.LastName",
"description": "Sobrenome é requerido"
},
{
"tag": "Customer.Email",
"description": "E-mail é requerido"
},
{
"tag": "Customer.Email",
"description": "E-mail deve ter formato válido"
},
{
"tag": "Customer.IpAddress",
"description": "Endereço IP é requerido"
},
{
"tag": "Customer.IpAddress",
"description": "Endereço IP deve ter formato válido"
},
{
"tag": "CardInfo",
"description": "Deve ser fornecido somente vaultId, numberToken ou encryptedCard"
},
{
"tag": "CardInfo.CardholderName",
"description": "Nome do portador é requerido"
},
{
"tag": "CardInfo.SecurityCode",
"description": "Código de segurança é requerido"
},
{
"tag": "CardInfo.SecurityCode",
"description": "Código de segurança deve ter 3 ou 4 dígitos"
},
{
"tag": "CardInfo.ExpirationMonth",
"description": "Mês de expiração é requerido"
},
{
"tag": "CardInfo.ExpirationMonth",
"description": "Mês de expiração deve estar entre 01 e 12"
},
{
"tag": "CardInfo.ExpirationYear",
"description": "Ano de expiração é requerido"
},
{
"tag": "CardInfo.ExpirationYear",
"description": "Ano de expiração deve ser atual ou futuro"
},
{
"tag": "DeviceInfo.IpAddress",
"description": "Endereço IP do dispositivo é requerido"
},
{
"tag": "DeviceInfo.IpAddress",
"description": "Endereço IP deve ter formato válido"
},
{
"tag": "DeviceInfo.UserAgentBrowserValue",
"description": "User Agent do navegador é requerido"
},
{
"tag": "DeviceInfo.HttpAcceptBrowserValue",
"description": "HTTP Accept do navegador é requerido"
}
]Campos da resposta de erro
A tabela reúne os campos presentes nos exemplos acima. Uma resposta HTTP sem corpo não inclui esses campos.
