Pagamento com Anti-Fraude
API Gateway
Esta API é utilizada para operações do gateway de pagamento:
- Produção: https://api.sopague.com.br/gateway
- Homologação: https://api-hmg.sopague.com.br/gateway
- Arquitetura: Representational State Transfer (REST)
Introdução
A operação de Pagamento com Anti-Fraude permite processar transações com maior segurança, utilizando a biblioteca antifraude da
Realizar Operação de Pagamento
Para criar uma transação utilizando cartão de crédito, envie uma requisição POST para o endpoint /v1/payments com os dados necessários. O exemplo abaixo ilustra uma requisição típica.
POST /v1/payments
Via request Representational State Transfer (REST) com o body:
{
"payment": {
"transactionType": "string",
"amount": 0,
"productType": "string",
"installments": 0
},
"referenceTransaction": "string",
"urlCallBack": "string",
"sellerInfo": {
"codeAntiFraud": "string"
},
"customer": {
"documentNumber": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"phoneNumber": "string",
"mobilePhoneNumber": "string",
"address": "string",
"city": "string",
"state": "string",
"zipCode": "string",
"ipAddress": "string",
"country": "string"
},
"cardInfo": {
"numberToken": "string",
"cardholderName": "string",
"securityCode": "string",
"brand": "string",
"expirationMonth": "string",
"expirationYear": "string",
"encryptedCard": "string"
}
}
Dicionário de dados - Parâmetros
| PROPRIEDADE | DESCRIÇÃO | TIPO | LOCAL | OBRIGATÓRIO | TAMANHO |
|---|---|---|---|---|---|
| Payment.TransactionType | Tipo da transação. | string | body | sim | fixo |
| Payment.Amount | Valor do Pedido em centavos. | integer | body | sim | 10 |
| Payment.ProductType | Tipo de produto – avista/ lojista | string | body | sim | fixo |
| Payment.Installments | Número de Parcelas. | integer | body | sim | 2 |
| ReferenceTransaction | Referência do pagamento enviada pelo integrador. Retornada na conciliação. | string | body | não | 50 |
| UrlCallBack | URL de callback do comércio para retorno do fluxo de pagamento. | string | body | não | 500 |
| sellerInfo.codeAntiFraud | Código obtido através da biblioteca anti-fraude | guid | body | sim | 36 |
| CardInfo.NumberToken | Identificador do cartão tokenizado. | string | body | não | fixo |
| CardInfo.CardholderName | Nome do comprador impresso no cartão. | string | body | sim | 30 |
| CardInfo.SecurityCode | Código de segurança | string | body | não | 4 |
| CardInfo.Brand | Bandeira do cartão – Opcional. | string | body | não | fixo |
| CardInfo.ExpirationMonth | Mês de expiração do cartão com dois dígitos. | string | body | não | 2 |
| CardInfo.ExpirationYear | Ano de expiração do cartão com dois dígitos. | string | body | não | 2 |
| CardInfo.EncryptedCard | Dados do cartão criptografados com a chave pública RSA obtida em /cards/public-key. Utilizado como alternativa segura ao envio dos dados de cartão em texto puro. | string | body | não | 2048 |
| Customer.DocumentType | Tipo de documento do comprador | string | body | não | 4 |
| Customer.DocumentNumber | Número do documento do comprador | string | body | não | 20 |
| Customer.FirstName | Primeiro nome do comprador | string | body | não | 60 |
| Customer.LastName | Último nome do comprador. | string | body | não | 60 |
| Customer.Email | E-mail do comprador | string | body | não | 255 |
| Customer.PhoneNumber | Telefone do comprador | string | body | não | 15 |
| Customer.MobilePhoneNumber | Telefone celular do comprador | string | body | não | 25 |
| Customer.Address | Endereço do comprador | string | body | não | 60 |
| Customer.Complement | Complemento do endereço do comprador | string | body | não | 60 |
| Customer.City | Cidade do comprador | string | body | não | 50 |
| Customer.State | Estado do comprador | string | body | não | 2 |
| Customer.ZipCode | CEP comprador | string | body | não | 10 |
| Customer.IpAddress | Endereço IP do dispositivo do comprador | string | body | não | 48 |
| Customer.Country | País do comprador | string | body | não | 2 |
Vendas parceladas: Para vendas parceladas, utilize o productType como lojista. Para vendas à vista (parcela única), utilize avista.
Domínios
| PROPRIEDADE | CONTEÚDO |
|---|---|
| Payment.TransactionType | credit |
| Payment.ProductType | avista, lojista |
| CardInfo.Brand | visa, mastercard, amex, elo, hipercard |
| Customer.DocumentType | cpf, cnpj |
- 🟢 200
- 🔴 400
- 🔴 500
{
"returnCode": "0",
"description": "Sucesso",
"paymentId": "020080286103040952150000006201850000000000",
"authorizationCode": "043711",
"orderNumber": "0000000001",
"expireAt": "2019-09-24T13:20:52.8775511-03:00",
"amount": 1035,
"releaseAt": "2019-09-24T13:20:52.877545-03:00"
}
Dicionário de dados - Retorno
| PROPRIEDADE | DESCRIÇÃO | TIPO |
|---|---|---|
| ReturnCode | Código de retorno. | string |
| Description | Descrição do retorno. | string |
| PaymentId | Identificador do pagamento, também conhecido como TID. | string |
| AuthorizationCode | Código de autorização. | string |
| OrderNumber | OrderNumber informado pelo cliente na requisição do pagamento (Numero Pedido Cliente). | string |
| ExpireAt | Data e hora de expiração quando se tratar de pré-autorização. | datetime |
| Amount | Valor do Pedido em centavos. | integer |
| ReleaseAt | Data e hora do registro de pagamento. | datetime |
[
{
"tag": "",
"description": "O valor da venda precisa ser maior do que R$ 1,00"
}
]
[
{
"tag": "",
"description": "Não foi possível executar comando. Erro desconhecido."
}
]
Consulte também
Para identificar e tratar adequadamente os códigos de erro retornados nas transações, consulte nossa tabela completa: