ENOQ PayDocs
v3

Criar Pagamento 3DS

POST/v1/payments/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.

Exemplo de requisição
{
  "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)

Exemplo de resposta
{
  "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.

StatusValorDescrição
AUY10000SUCESSO
AUC10004PENDENTE - 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.