ENOQ PayDocs
v3

Criar Pagamento

POST/v1/payments

Cria uma transação de pagamento com cartão de crédito. Certifique-se de que a [[biblioteca-antifraude]] esteja corretamente implementada antes de realizar operações.

Realizar Pagamento

Parâmetros

Para vendas parceladas, utilize productType como lojista. Para vendas à vista (parcela única), utilize avista.

Exemplo de requisição
{
  "payment": {
    "transactionType": "credit",
    "amount": 1035,
    "productType": "avista",
    "installments": 1
  },
  "referenceTransaction": "pedido-001",
  "sellerInfo": {
    "codeAntiFraud": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  },
  "cardInfo": {
    "vaultId": "{{vaultId}}"
  },
  "customer": {
    "documentType": "cpf",
    "documentNumber": "12345678901",
    "firstName": "Jose",
    "lastName": "Silva",
    "email": "[email protected]",
    "phoneNumber": "11999999999",
    "mobilePhoneNumber": "11999999999",
    "address": "Rua Exemplo, 123",
    "city": "São Paulo",
    "state": "SP",
    "zipCode": "01310100",
    "ipAddress": "192.168.1.1",
    "country": "BR"
  }
}

Retorno (200)

Exemplo de resposta
{
  "returnCode": "0",
  "description": "Sucesso",
  "paymentId": "020080286103040952150000006201850000000000",
  "authorizationCode": "043711",
  "orderNumber": "0000000001",
  "expireAt": "2019-09-24T13:20:52.877",
  "amount": 1035,
  "releaseAt": "2019-09-24T13:20:52.877"
}

Dicionário de dados

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": "",
    "description": "O valor da venda precisa ser maior do que R$ 1,00"
  }
]

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', 'debit', '1' (Crédito) ou '3' (Débito)"
  },
  {
    "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', 'parcelado_loja', 'parcelado_adm', '1', '2' ou '3'"
  },
  {
    "tag": "Payment.Installments",
    "description": "Parcelas deve ser maior que zero"
  },
  {
    "tag": "SellerInfo.CodeAntiFraud",
    "description": "Código antifraude é requerido"
  },
  {
    "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.FirstName",
    "description": "É obrigatório enviar o nome completo"
  },
  {
    "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": "Customer.Address",
    "description": "Endereço é requerido"
  },
  {
    "tag": "Customer.City",
    "description": "Cidade é requerida"
  },
  {
    "tag": "Customer.State",
    "description": "Estado é requerido"
  },
  {
    "tag": "Customer.State",
    "description": "Estado deve ter 2 caracteres (ex: SP)"
  },
  {
    "tag": "Customer.ZipCode",
    "description": "CEP deve ter 8 dígitos"
  },
  {
    "tag": "Customer.Country",
    "description": "País é requerido"
  },
  {
    "tag": "Customer.Country",
    "description": "País deve ter 2 caracteres (ex: BR)"
  },
  {
    "tag": "CardInfo",
    "description": "Token do cartão ou cartão criptografado é requerido quando vaultId não é fornecido"
  },
  {
    "tag": "CardInfo.CardholderName",
    "description": "Nome do portador é requerido quando vaultId não é fornecido"
  },
  {
    "tag": "CardInfo.SecurityCode",
    "description": "Código de segurança é requerido quando vaultId não é fornecido"
  },
  {
    "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 quando vaultId não é fornecido"
  },
  {
    "tag": "CardInfo.ExpirationMonth",
    "description": "Mês de expiração deve estar entre 01 e 12"
  },
  {
    "tag": "CardInfo.ExpirationYear",
    "description": "Ano de expiração é requerido quando vaultId não é fornecido"
  },
  {
    "tag": "CardInfo.ExpirationYear",
    "description": "Ano de expiração deve ter 2 dígitos e ser atual ou futuro"
  },
  {
    "tag": "CardInfo",
    "description": "Deve ser fornecido vaultId ou numberToken para processar o pagamento"
  }
]

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.