Overview - Adiq E-commerce
The purpose of this documentation is to guide the developer on how to integrate with the Adiq E-commerce API, describing the functionalities and methods to be used, listing information to be sent and received and providing examples.
In this manual you will find the reference about all the operations available in the Adiq E-commerce REST API. These operations must be performed using their specific key in the respective environments' endpoints:
sandbox | Homologation | Production | |
---|---|---|---|
Requests | https://ecommerce-sandbox.adiq.io | https://ecommerce-hml.adiq.io | https://ecommerce.adiq.io |
To perform an operation, combine the base URL of the environment with the URL of the desired operation and submit using the HTTP verb as described in the operation.
Glossary
To facilitate understanding, we have listed below a short glossary with the main terms related to Recurrence:
TERM | DESCRIPTION |
---|---|
Authorization | Process for verifying whether or not a purchase can be made with a card. At that moment, several checks are carried out with the card and with the holder (eg payment, blocking, etc.). It is also at this moment that the card limit is sensitized with the value of the transaction. |
Cancellation | Process to cancel a purchase made with a card. |
Catch or late catch | Process that confirms the late capture of a transaction that was pre-authorized. Only after the capture, the bearer will be able to view the transaction on his statement or invoice. |
Commercial establishment or EC | Entity responsible for the virtual store. |
Payment gateway | Company responsible for the technical integration and processing of transactions. |
Carrier |
ambiente-sandbox
sandbox-text
criando-credenciais
criando-credenciais-text
cenario-teste
cenario-teste-text
tabela-cenario-testecenario-teste-pos-tabela-text
postman
postman-text
Adiq Gateway Integration
Authentication
The APIs listed in this documentation use OAuth2 authentication, which means that in all requests it is required to provide an access token that will be obtained through authentication with your Client ID and Client Secret. Client ID and Client Secret will be provided by IT ADIQ
Generation of the access token
To create an access token it is necessary to send a request using HTTP Basic Authentication through the POST method according to the example:
Request
{
"grantType": "client_credentials"
}
Property | Description | Type | Location | Required |
---|---|---|---|---|
GrantType
|
Use the fixed value "client_credentials." | string | body | yes |
Authorization
|
Concatenation of your Client ID, followed by “:” (colon) plus your Client Secret, converted to base64. Example: Authorization: Basic ZGV2ZWxvcGVycy5hZGlxLmlv |
string | header | yes |
Response
{
"accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6WyJBRElRIiwiQURJUQ",
"tokenType": "Bearer",
"expiresIn": "36000",
"scope": "GatewayEcommerce"
}
Property | Description | Type |
---|---|---|
AccessToken
|
API access token to be sent on all requests. | string |
TokenType
|
Type of token, must be sent in the header along with the token. | string |
ExpiresIn
|
Token expiration time in seconds. | integer |
Scope
|
Token Scope. | string |
Payment
To use all the resources available in our API, it is important that you first understand the concepts involved in processing a credit card transaction.
Concept | Description |
---|---|
Authorization | Authorization (or pre-authorization) is the main operation in E-commerce, because it is through it that a sale can be made. The pre-authorization only sensitizes the customer's limit, but still does not generate a charge for the consumer. |
Capture | When carrying out a pre-authorization, it is necessary to confirm this so that the charge is made to the cardholder, . Through this operation, a pre-authorization is carried out, which can be executed, within 21 days after the pre-authorization date. It is important to pay attention to the expiration date/time informed in the pre-authorization transaction - "ExpireAt" field. |
Cancellation | Cancellation is necessary when, for some reason, you no longer want to make a sale. In cases of self capture and pre-authorization with capture, cancellation can only be made on the same day. |
Authentication | The authentication process makes it possible to carry out a sale which will go through the Payment Gateway authentication process, thus bringing more security to the sale. |
Tokenization | To make transactions securely, the card number must be tokenized upon authentication. |
Payment Options
Credit/Debit Cards
Tokenization
Card token generation
This operation is used to create a token for a particular card, just do a POST
as in the example.
Request
{
"cardNumber":"5155901222250004"
}
Property | Description | Type | Location | Required | Size |
---|---|---|---|---|---|
CardNumber
|
Card number. | string | body | yes | from 9 to 19 |
resposta-1
{
"numberToken":"88f466c4-d17a-4430-952f-2a44bdb98525"
}
Property | Description | Type |
---|---|---|
NumberToken
|
Card token to be used in transactions | string |
Credit/debit card payment
To create a transaction that will use a credit/debit card, it is necessary to send a request using the POST
method to the Payments feature, as in the example:
Request v1
{
"payment":{
"transactionType":"credit",
"amount":1035,
"currencyCode":"brl",
"productType":"avista",
"installments":1,
"captureType":"ac",
"recurrent":false
},
"cardInfo":{
"vaultId":"f851b514-301a-4e26-8314-3567c1b17aad"
},
"LineItems":[
{
"UnitPrice":"1055",
"Quantity":"1",
"ProductSKU":"922111212",
"ProductName":"Cadeira de plastico",
"ProductCode":"235422555252"
},
{
"UnitPrice":"935",
"Quantity":"1",
"ProductSKU":"455451212",
"ProductName":"Guarda-chuva",
"ProductCode":"23656565644"
}
],
"Customer":{
"DocumentType":"cpf",
"DocumentNumber":"51115672088",
"FirstName":"Jose",
"LastName":"Silva",
"Email":"jose.silva@email.com",
"PhoneNumber":"1122542454",
"MobilePhoneNumber":"11987683332",
"Address":"Rua Luiz Vieira",
"AddressNumber":"134",
"Complement":"apto. 22 - Vila Guarani",
"City":"São Paulo",
"State":"SP",
"ZipCode":"09876-098",
"IpAddress":"41.261.933.248",
"Country":"BR"
},
"ShipTo":{
"FirstName":"Luiz Paulo",
"LastName":"Cardoso",
"PhoneNumber":"1122542454",
"Address":"Rua Luiz Vieira",
"AddressNumber":"134",
"Complement":"apto. 34 - Vila Guarani",
"City":"São Paulo",
"State":"SP",
"ZipCode":"09876098",
"Country":"BR"
},
"DeviceInfo":{
"HttpAcceptBrowserValue":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"HttpAcceptContent":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"HttpBrowserLanguage":"pt-BR",
"HttpBrowserJavaEnabled":"N",
"HttpBrowserJavaScriptEnabled":"Y",
"HttpBrowserColorDepth":"24",
"HttpBrowserScreenHeight":"937",
"HttpBrowserScreenWidth":"1920",
"HttpBrowserTimeDifference":"180",
"UserAgentBrowserValue":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"
},
"sellerInfo":{
"orderNumber":"0000000001",
"softDescriptor":"PAG*TESTE",
"dynamicMcc":9999,
"code3DS":"C56A4180-65AA-42EC-A945-5FD21DEC0538",
"urlSite3DS":"estabelecimento.com.br",
"codeAntiFraud":"C56A4180-65AA-42EC-A945-5FD21DEC0531"
},
"sellers":[
{
"id":"900",
"amount":690,
"items":[
{
"id":"P115DU90",
"description":"Produto 1",
"amount":345,
"ratePercent":0,
"rateAmount":0
},
{
"id":"P115DU91",
"description":"Produto 2",
"amount":345,
"ratePercent":0,
"rateAmount":0
}
]
},
{
"id":"901",
"amount":345,
"items":[
{
"id":"P115DU92",
"description":"Produto 1",
"amount":345,
"ratePercent":0,
"rateAmount":0
}
]
}
]
}
V1 request using card token
{
"payment":{
"transactionType":"credit",
"amount":1035,
"currencyCode":"brl",
"productType":"avista",
"installments":1,
"captureType":"ac",
"recurrent":false,
"RecurrentNridElo": "E13MAR253651340",
"RecurrentAmountElo": 2339
},
"cardInfo":{
"numberToken":"2c44f9e6-c242-4c92-8129-eeef72b26336",
"cardholderName":"JOSE SILVA",
"securityCode":"123",
"brand":"visa",
"expirationMonth":"01",
"expirationYear":"19"
},
"LineItems":[
{
"UnitPrice":"1055",
"Quantity":"1",
"ProductSKU":"922111212",
"ProductName":"Cadeira de plastico",
"ProductCode":"235422555252"
},
{
"UnitPrice":"935",
"Quantity":"1",
"ProductSKU":"455451212",
"ProductName":"Guarda-chuva",
"ProductCode":"23656565644"
}
],
"Customer":{
"DocumentType":"cpf",
"DocumentNumber":"51115672088",
"FirstName":"Jose",
"LastName":"Silva",
"Email":"jose.silva@email.com",
"PhoneNumber":"1122542454",
"MobilePhoneNumber":"11987683332",
"Address":"Rua Olveira Vieira",
"AddressNumber":"134",
"Complement":"apto. 22 - Vila Guarani",
"City":"São Paulo",
"State":"SP",
"ZipCode":"09876-098",
"IpAddress":"41.261.933.248",
"Country":"BR"
},
"ShipTo":{
"FirstName":"Luiz Paulo",
"LastName":"Cardoso",
"PhoneNumber":"1122542454",
"Address":"Rua Luiz Vieira",
"AddressNumber":"134",
"Complement":"apto. 34 - Vila Guarani",
"City":"São Paulo",
"State":"SP",
"ZipCode":"09876098",
"Country":"BR"
},
"DeviceInfo":{
"HttpAcceptBrowserValue":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"HttpAcceptContent":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"HttpBrowserLanguage":"pt-BR",
"HttpBrowserJavaEnabled":"N",
"HttpBrowserJavaScriptEnabled":"Y",
"HttpBrowserColorDepth":"24",
"HttpBrowserScreenHeight":"937",
"HttpBrowserScreenWidth":"1920",
"HttpBrowserTimeDifference":"180",
"UserAgentBrowserValue":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"
},
"sellerInfo":{
"orderNumber":"0000000001",
"softDescriptor":"PAG*TESTE",
"dynamicMcc":9999,
"code3DS":"C56A4180-65AA-42EC-A945-5FD21DEC0538",
"urlSite3DS":"estabelecimento.com.br",
"codeAntiFraud":"C56A4180-65AA-42EC-A945-5FD21DEC0531"
},
"sellers":[
{
"id":"900",
"amount":690,
"items":[
{
"id":"P115DU90",
"description":"Produto 1",
"amount":345,
"ratePercent":0,
"rateAmount":0
},
{
"id":"P115DU91",
"description":"Produto 2",
"amount":345,
"ratePercent":0,
"rateAmount":0
}
]
},
{
"id":"901",
"amount":345,
"items":[
{
"id":"P115DU92",
"description":"Produto 1",
"amount":345,
"ratePercent":0,
"rateAmount":0
}
]
}
]
}
Property | Description | Type | Location | Required | Maximum size | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Payment.TransactionType
|
Type of transaction. | string | body | yes | fixed | ||||||
Payment.Amount
|
Order Amount in cents. | integer | body | yes | 10 | ||||||
Payment.CurrencyCode
|
Currency identification. | string | body | yes | fixed | ||||||
Payment.ProductType
|
Product type. | string | body | yes | fixed | ||||||
Payment.Installments
|
Number of Installments. | integer | body | yes | 02 | ||||||
Payment.CaptureType
|
Capture type. | string | body | yes | fixed | ||||||
Payment.Recurrent
|
Elo identification number for automatic recurring operations. | boolean | body | yes | fixed | ||||||
Payment.RecurrentNridElo
|
Marks the transaction as recurring | string | body | no | fixed | ||||||
Payment.RecurrentAmountElo
|
Value of the first recurring transaction | integer | body | no | 10 | ||||||
CardInfo.VaultId
|
Card identifier in the vault. | string | body | no | fixed | ||||||
CardInfo.NumberToken
|
Tokenized card identifier. | string | body | no | fixed | ||||||
CardInfo.CardholderName
|
Buyer's name printed on card. | string | body | yes | 30 | ||||||
CardInfo.SecurityCode
|
Security code. | string | body | no | 04 | ||||||
CardInfo.Brand
|
Card flag - Optional. | string | body | no | fixed | ||||||
CardInfo.ExpirationMonth
|
Two-digit card expiration month. | string | body | no | 02 | ||||||
CardInfo.ExpirationYear
|
Double-digit card expiration year. | string | body | no | 02 | ||||||
SellerInfo.codeAntiFraud
|
Anti-fraud fingerprint code. If not sent, the anti-fraud analysis will be done without this information - Mandatory for anti-fraud | guid | body | no | 36 | ||||||
SellerInfo.code3DS
|
Establishment 3DS code. If not sent, 3DS will not run - Required for 3DS. | guid | body | no | 36 | ||||||
SellerInfo.urlSite3DS
|
URL of the commerce site used for 3ds, for example, the site is https://minhaempresa.com.br so you must inform [mycompany.com.br] without informing [https://] - Mandatory for 3DS. | guid | body | no | 2048 | ||||||
SellerInfo.OrderNumber
|
OrderNumber informed by the customer in the payment request (Customer Order Number). If this field is repeated on the same day, the transaction may be denied | string | body | yes | 13 | ||||||
SellerInfo.SoftDescriptor
|
Text displayed on buyer's card statement - Mandatory for Digital Wallet transactions, Cash In/Cash Out operations. | string | body | no | 22 | ||||||
SellerInfo.DynamicMcc
|
Establishment Category Code. If not sent, the MCC of the registration will be adopted. Requires approval from the ADIQ risk area - Mandatory for Digital Wallet transactions, Cash Out operations. | integer | body | no | 04 | ||||||
sellerInfo.digitalWallet.cashIn.cardAcceptorUTRN |
Wallet ID - Required for Cash In transactions. | string | body | no | 19 | ||||||
sellerInfo.digitalWallet.cashIn.receiverFirstName |
Recipient Name - Required for Cash In Transactions. | string | body | no | 35 | ||||||
sellerInfo.digitalWallet.cashIn.receiverLastName |
Recipient's Last Name - Required for Cash In transactions. | string | body | no | 35 | ||||||
sellerInfo.digitalWallet.cashIn.receiverStreetAddress |
Recipient Address - Required for Cash In Transactions. | string | body | no | 34 | ||||||
sellerInfo.digitalWallet.cashOut.cardAcceptorCity |
Merchant's City - Mandatory for Cash Out transactions. | string | body | no | 13 | ||||||
Sellers.Id
|
Establishment identifier (only for Marketplace transactions). | string | body | no | 10 | ||||||
Sellers.Amount
|
Total purchase amount (in cents). | integer | body | no | 10 | ||||||
Sellers.Items.Id
|
Item identifier. | string | body | no | 30 | ||||||
Sellers.Items.Amount
|
Item value (in cents). | integer | body | no | 10 | ||||||
Sellers.Items.Description
|
Item Description. | string | body | no | 100 | ||||||
Sellers.Items.RatePercent
|
Fee to be charged (for Marketplace transactions only) on the item (percentage) . | double | body | no | 10 | ||||||
Sellers.Items.RateAmount
|
Fee to be charged (for Marketplace transactions only) on the item in value (in cents). | integer | body | no | 10 | ||||||
Customer.DocumentType
|
Type of buyer's identification document (CPF, CNPJ)
|
integer | body | no | 1 | ||||||
Customer.DocumentNumber
|
Buyer's document number without punctuation (no mask) | string | body | no | 20 | ||||||
Customer.FirstName
|
Buyer's First Name - Required for 3DS/Anti-Fraud. | string | body | no | 60 | ||||||
Customer.LastName
|
Buyer's Last Name - Required for 3DS/Anti-Fraud. | string | body | no | 60 | ||||||
Customer.Email
|
Buyer Email - Required for 3DS/Anti-Fraud. | string | body | no | 255 | ||||||
Customer.PhoneNumber
|
Buyer's phone (no mask) - Required for 3DS/Anti-Fraud. | string | body | no | 15 | ||||||
Customer.MobilePhoneNumber
|
Buyer's cell phone (no mask) - Required for 3DS/anti-fraud. | string | body | no | 25 | ||||||
Customer.Address
|
Buyer Address - Required for 3DS/Anti-Fraud. | string | body | no | 60 | ||||||
Customer.Complement
|
Buyer Address Add-on - Required for 3DS/Anti-Fraud. | string | body | no | 60 | ||||||
Customer.City
|
Buyer's City - Required for 3DS/Anti-Fraud. | string | body | no | 50 | ||||||
Customer.State
|
Buyer Status - Required for 3DS/Anti-Fraud. | string | body | no | 2 | ||||||
Customer.ZipCode
|
Buyer zip code (no mask) - Required for 3DS/Anti-Fraud. | string | body | no | 10 | ||||||
Customer.IpAddress
|
Purchaser Device IP Address - Required for 3DS/Anti-Fraud. | string | body | no | 48 | ||||||
Customer.Country
|
Purchaser Country - Required for 3DS/Anti-Fraud. | string | body | no | 2 | ||||||
DeviceInfo.httpAcceptBrowserValue
|
3DS - Value of the "Accept Header" of the client's browser - Mandatory for 3DS. | string | body | no | 255 | ||||||
DeviceInfo.httpAcceptContent
|
3DS - Exact value of HTTP Accept Header - Required for 3DS. | string | body | no | 256 | ||||||
DeviceInfo.httpBrowserLanguage
|
3DS - Client browser language as per https://www.techonthenet.com/js/language_tags.php - Required for 3DS. | string | body | no | 8 | ||||||
DeviceInfo.httpBrowserJavaEnabled
|
3DS - If JAVA enabled, send value Y, otherwise N - Required for 3DS. | string | body | no | 1 | ||||||
DeviceInfo.httpBrowserJavaScriptEnabled
|
3DS - If JAVA SCRIPT enabled, send value Y, otherwise N - Required for 3DS. | string | body | no | 1 | ||||||
DeviceInfo.httpBrowserColorDepth
|
3DS - Number of bits used for displaying images - Required for 3DS. | string | body | no | 3 | ||||||
DeviceInfo.httpBrowserScreenHeight
|
3DS - Client screen resolution height - Required for 3DS | string | body | no | 4 | ||||||
DeviceInfo.httpBrowserScreenWidth
|
3DS - Width of client screen resolution - Required for 3DS. | string | body | no | 4 | ||||||
DeviceInfo.httpBrowserTimeDifference
|
3DS - Difference in minutes between GMT time and the client's browser - Mandatory for 3DS. | string | body | no | 4 | ||||||
DeviceInfo.userAgentBrowserValue
|
3DS - The exact User Agent Header value - Required for 3DS. | string | body | no | 255 | ||||||
ShipTo.FirstName
|
Buyer's First Name - Mandatory for anti-fraud. | string | body | no | 60 | ||||||
ShipTo.LastName
|
Buyer's Last Name - Mandatory for anti-fraud. | string | body | no | 60 | ||||||
ShipTo.PhoneNumber
|
Buyer's phone (no mask) - Mandatory for anti-fraud. | string | body | no | 15 | ||||||
ShipTo.Address
|
Buyer Address - Mandatory for anti-fraud. | string | body | no | 60 | ||||||
ShipTo.Complement
|
Buyer address add-on - Required for anti-fraud. | string | body | no | 60 | ||||||
ShipTo.City
|
Buyer's City - Mandatory for anti-fraud. | string | body | no | 50 | ||||||
ShipTo.State
|
Buyer Status - Mandatory for anti-fraud. | string | body | no | 2 | ||||||
ShipTo.ZipCode
|
Buyer zip code (no mask) - Mandatory for anti-fraud. | string | body | no | 10 | ||||||
ShipTo.country
|
Country of buyer's address - Mandatory for anti-fraud. | string | body | no | 2 | ||||||
LineItems_#_ProductCode
|
Product type - Required for anti-fraud. | string | body | no | 255 | ||||||
LineItems_#_ProductSKU
|
In-store product identifier - Required for anti-fraud. | string | body | no | 255 | ||||||
LineItems_#_ProductName
|
Product name - Required for anti-fraud. | string | body | no | 255 | ||||||
LineItems_#_Quantity
|
Number of products being purchased - Mandatory for anti-fraud. | string | body | no | 10 | ||||||
LineItems_#_UnitPrice
|
Product price (per item) - Mandatory for anti-fraud. | string | body | no | 10 |
Domains
Property | Content | ||||||||
---|---|---|---|---|---|---|---|---|---|
Payment.TransactionType
|
credit, debit | ||||||||
Payment.CurrencyCode
|
brl | ||||||||
Payment.ProductType
|
|
||||||||
Payment.CaptureType
|
|
||||||||
Payment.Recurrent
|
true - Recurring, false - Non-recurring | ||||||||
CardInfo.Brand
|
visa, mastercard, amex, elo, hypercard | ||||||||
Customer.DocumentType
|
cpf, cnpj |
- Must not contain special characters except '*';
- Must not start with *;
- It must contain only one '*';
- Maximum length of 22 characters; Ex.: PAG*LOJAXPTO
Transactions with Payment.CaptureType
fields populated with the domain PA
and the field Payment.TransactionType
with domain debit
, in the same transaction will be denied.
Because Pre-Authorization for Debit is not allowed.
Transactions with field CardInfo.Brand
populated with domain hipercard
only accept Payment.TransactionType
with domain credit
.
Response
{
"paymentAuthorization": {
"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",
"nridElo": "E13MAR253651340"
}
}
Response in case of failure:
[
{
"tag": "payment.amount",
"description": "O Valor informado deverá ser maior que ZERO."
}
]
Response in case of failure in 3DS:
[
{
"tag": "U",
"description": "Não foi possível autenticar."
}
]
Property | Description | Type |
---|---|---|
PaymentAuthorization.ReturnCode
|
Return code. | string |
PaymentAuthorization.Description
|
Description of the return. | string |
PaymentAuthorization.PaymentId
|
Payment identifier, also known as TID. | string |
PaymentAuthorization.AuthorizationCode
|
Authorization code. | string |
PaymentAuthorization.OrderNumber
|
OrderNumber informed by the customer in the payment request (Customer Order Number). | string |
PaymentAuthorization.ExpireAt
|
Expiration date and time when dealing with pre-authorization. | datetime |
PaymentAuthorization.Amount
|
Order Amount in cents. | integer |
PaymentAuthorization.ReleaseAt
|
Date and time of payment record. | datetime |
PaymentAuthorization.nridElo
|
Elo identification number to be used in future recurring transactions. | string |
Response from Authorizer Host
[
{
"tag": "51",
"description": "TRANSACAO NAO AUTORIZADA PELO EMISSOR - 51"
}
]
Response Code | Description |
---|---|
00 | SUCCESS |
01 | TRANSACTION NOT AUTHORIZED BY THE ISSUER - 01 |
03 | TRANSACTION NOT AUTHORIZED BY THE PURCHASER - INVALID ESTABLISHMENT - 03 |
04 | UNAUTHORIZED TRANSACTION - INVALID CARD - 04 |
05 | TRANSACTION NOT AUTHORIZED BY THE ISSUER - 05 |
06 | UNAUTHORIZED TRANSACTION - UNKNOWN - 06 |
07 | UNAUTHORIZED TRANSACTION - INVALID CARD - 07 |
12 | UNAUTHORIZED TRANSACTION - INVALID TRANSACTION - 12 |
13 | UNAUTHORIZED TRANSACTION - INVALID AMOUNT - 13 |
14 | UNAUTHORIZED TRANSACTION - INVALID CARD - 14 |
15 | UNAUTHORIZED TRANSACTION - INVALID TRANSACTION - 15 |
19 | UNAUTHORIZED TRANSACTION - RETRY LATER - 19 |
30 | UNAUTHORIZED TRANSACTION - INVALID TRANSACTION - 30 |
38 | UNAUTHORIZED TRANSACTION - INVALID PASSWORD - 38 |
39 | UNAUTHORIZED TRANSACTION - INVALID TRANSACTION - 39 |
40 | UNAUTHORIZED TRANSACTION - INVALID FUNCTION - 40 |
41 | UNAUTHORIZED TRANSACTION - CARD BLOCKED - 41 |
43 | UNAUTHORIZED TRANSACTION - CARD BLOCKED - 43 |
46 | UNAUTHORIZED TRANSACTION - ACCOUNT CLOSED - 46 |
51 | TRANSACTION NOT AUTHORIZED BY THE ISSUER - 51 |
52 | UNAUTHORIZED TRANSACTION - INVALID TRANSACTION - 52 |
53 | UNAUTHORIZED TRANSACTION - INVALID TRANSACTION - 53 |
54 | TRANSACTION NOT AUTHORIZED BY THE ISSUER - CARD EXPIRED - 54 |
55 | TRANSACTION NOT AUTHORIZED - INVALID PASSWORD - 55 |
57 | TRANSACTION NOT AUTHORIZED BY THE ISSUER - 57 |
58 | UNAUTHORIZED TRANSACTION - NOT ALLOWED FOR THE ESTABLISHMENT - 58 |
59 | TRANSACTION NOT AUTHORIZED BY THE ISSUER - CARD SUSPENDED - 59 |
61 | UNAUTHORIZED TRANSACTION - EXCEEDED LIMIT - 61 |
62 | UNAUTHORIZED TRANSACTION - RESTRICTED CARD - 62 |
63 | UNAUTHORIZED TRANSACTION - INVALID PASSWORD - 63 |
65 | TRANSACTION NOT AUTHORIZED BY THE ISSUER - 65; |
70 | UNAUTHORIZED TRANSACTION - UNKNOWN 70 |
75 | UNAUTHORIZED TRANSACTION - INVALID PASSWORD - 75 |
78 | UNAUTHORIZED TRANSACTION - CARD BLOCKED. - 78 |
79 | UNAUTHORIZED TRANSACTION - Card Fraud/Security - 79 |
82 | UNAUTHORIZED TRANSACTION - Card Fraud/Security - 82 |
83 | UNAUTHORIZED TRANSACTION - Card Fraud/Security - 83 |
91 | UNAUTHORIZED TRANSACTION - UNAVAILABLE FLAG/ISSUER - 91 |
93 | UNAUTHORIZED TRANSACTION - INVALID CARD - 93 |
94 | UNAUTHORIZED TRANSACTION - DUPLICATE TRANSACTION - 94 |
96 | TRANSACTION NOT AUTHORIZED - ERROR WHILE PROCESSING- 96 |
3DS Answer - Fail
IMPORTANT - For customers who have 3DS enabled.
- Credit transaction with 3DS.
- Customer enabled to do 3DS on credit transaction
- 3DS Denied - Transaction will process to authorizing host without 3DS.
- 3DS Approved - Transaction will process to authorizing host with 3DS.
- DENY credit transaction if 3DS is fail
- It is necessary to enable the parameter in the customer record for this function to be enabled
- Denied 3DS - Transaction will be denied.
- 3DS Approved - Transaction will process to authorizing host with 3DS.
- It is necessary to enable the parameter in the customer record for this function to be enabled
- Customer enabled to do 3DS on credit transaction
- Debit transactions with 3DS.
- sucessfull 3DS: The transaction will proceed to the authorizing host.
- 3DS with challenge: The transaction will proceed to the authorizing host after sending the challenge.
- 3DS Denied: The transaction will NOT proceed to the authorizing host.
{
"paymentAuthorization": {
"returnCode": "0",
"description": "Sucesso",
"paymentId": "020080286103040952150000006201850000000000",
"authorizationCode": "043711",
"orderNumber": "0000000001",
"amount": 1035,
"releaseAt": "2019-09-24T13:20:52.877545-03:00"
},
"threeDs":{
"status":"Fail",
"threeDsVersion":"2.1.0"
}
}
Property | Description | Type |
---|---|---|
ThreeDs.Status
|
3DS Status – 3DS failed. | string |
ThreeDs.ThreeDsVersion
|
ThreeDsVersion is the 3DS version. | string |
3DS Answer - Challenge
The payment request response may report that the 3DS has requested a challenge via ThreeDs.Status
with value Challenge
. Challenge indicates a challenge that the issuer (bank) sends to the customer (cardholder) to respond to validate the 3DS. This challenge is executed through a frame sent directly by the card issuer.
{
"threeDs":{
"status":"Challenge",
"threeDsVersion":"2.1.0",
"acsUrl":"https://0merchantacsstag.cardinalcommerce.com/MerchantACSWeb/crejsp ",
"authenticationTransactionId":"BGprC3ktx8lMtL391Ma0",
"pareq":"eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwid
GhyZWVEU1NlcnZlclRyYW5zSUQiOiI4N2YwYzdjOS0wODlkLTQ5OGItYTYzZC03MjJiMzc5ZTM
wOTEiLCJhY3NUcmFuc0lEIjoiNGEzOWMxNGEtZjBiNi00YTE5LTg3MWEtYmQ2MjZlZDcyNmEzI
iwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjAyIn0"
}
}
Property | Description | Type |
---|---|---|
ThreeDs.Status
|
3DS Challenge Status – 3DS is requesting a Challenge. | string |
ThreeDs.ThreeDsVersion
|
ThreeDsVersion is the 3DS version and will be informed when Challenge. | string |
ThreeDs.AcsUrl
|
AcsUrl is the return when Challenge, you must inform it in Adiq3ds.InitChallenge(acsUrl, pareq, authenticationTransactionId). | string |
ThreeDs.Pareq
|
Pareq is the return when Challenge, must inform it in Adiq3ds.InitChallenge(acsUrl, pareq, authenticationTransactionId). | string |
ThreeDs.AuthenticationTransactionId
|
AuthenticationTransactionId is the return when Challenge, you must inform it in Adiq3ds.InitChallenge(acsUrl, pareq, authenticationTransactionId). | string |
TID
(TransactionID) is a 42-character code that serves as an e-commerce transaction identifier.
This field consists of the information described as MTI
, Primary NSU
, date/time
, Purchaser's NSU
(also known as CV), which is often used for future reconciliations as it is unique, Filler
Property | Description | Size |
---|---|---|
MTI
|
Identifies capture type 0200 for AC (Auto-Capture), and 0100 for PA (Pre-Authorization) | 004 |
Primary NSU
|
Primary NSU (Authorizer NSU), also known as Transaction NSU. | 006 |
Date/time
|
Original transaction date/time in MMDDHHMMSS format. | 010 |
Purchaser's NSU
|
Single NSU for the transaction, used for future reconciliations. | 012 |
Filler
|
For future use. Sent 0000000000 | 010 |
Request
{
"amount": 1035,
"sellers": [
{
"id": "900",
"amount": 690,
"items": [
{
"id": "P115DU90",
"amount": 345
},
{
"id": "P115DU91",
"amount": 345
}
]
},
{
"id": "901",
"amount": 345,
"items": [
{
"id": "P115DU92",
"amount": 345
}
]
}
]
}
Property | Description | Type | Location | Required | Maximum Size |
---|---|---|---|---|---|
PaymentId
|
Identifier of the payment to be canceled. | string | path | yes | 42 |
Amount
|
Amount to be canceled (in cents). | integer | body | yes | 10 |
Sellers.Id
|
Identifier of the establishment. | string | body | no | 10 |
Sellers.Amount
|
Total cancellation amount (in cents). | integer | body | no | 10 |
Sellers.Items.Id
|
Item identifier. | string | body | no | 30 |
Sellers.Items.Amount
|
Item value (in cents). | integer | body | no | 10 |
Response
{
"cancelAuthorization": {
"returnCode": "0",
"description": "Canceled",
"paymentId": "020080286103040952150000006201850000000000",
"authorizationCode": "143513",
"amount": 1023,
"releaseAt": "2019-09-24T13:43:12.1952799-03:00"
}
}
Property | Description | Type |
---|---|---|
CancelAuthorization.ReturnCode
|
Return code. | string |
CancelAuthorization.Description
|
Description of the return. | string |
CancelAuthorization.PaymentId
|
Payment identifier. | string |
CancelAuthorization.AuthorizationCode
|
Cancellation authorization code. | string |
CancelAuthorization.Amount
|
Amount of cancellation (in cents). | integer |
CancelAuthorization.ReleaseAt
|
Date and time of cancellation record. | datetime |
Capture
Capture a certain payment
To capture a sale that uses a credit card, it is necessary to make a PUT
to the Payments resource, informing the PaymentId
generated at the time of authorization, as shown in the example. This method is used for late capture in pre-authorization transactions.
Request
{
"amount": 1035,
"sellers": [
{
"id": "900",
"amount": 690,
"items": [
{
"id": "P115DU90",
"amount": 345
},
{
"id": "P115DU91",
"amount": 345
}
]
},
{
"id": "901",
"amount": 345,
"items": [
{
"id": "P115DU92",
"amount": 345
}
]
}
]
}
Property | Description | Type | Location | Required | Maximum Size |
---|---|---|---|---|---|
PaymentId
|
Payment identifier to capture. | string | path | yes | 42 |
Amount
|
Amount to capture (in cents). | integer | body | yes | 10 |
Sellers.Id
|
Identifier of the establishment. | string | body | no | 10 |
Sellers.Amount
|
Total value of capture (in cents). | integer | body | no | 10 |
Sellers.Items.Id
|
Item identifier. | string | body | no | 30 |
Sellers.Items.Amount
|
Item value (in cents). | integer | body | no | 10 |
Response
{
"captureAuthorization": {
"returnCode": "0",
"description": "Captured",
"paymentId": "020080286103040952150000006201850000000000",
"authorizationCode": "341707",
"amount": 1023,
"releaseAt": "2019-09-25T09:02:51.6615224-03:00"
}
}
resposta-1
{
"captureAuthorization": {
"returnCode": "0",
"description": "Captured",
"paymentId": "020080286103040952150000006201850000000000",
"authorizationCode": "341707",
"amount": 1023,
"releaseAt": "2019-09-25T09:02:51.6615224-03:00"
}
}
Property | Description | Type |
---|---|---|
CaptureAuthorization.ReturnCode
|
Return code. | string |
CaptureAuthorization.Description
|
Description of the return. | string |
CaptureAuthorization.PaymentId
|
Payment identifier. | string |
CaptureAuthorization.AuthorizationCode
|
Authorization code. | string |
CaptureAuthorization.Amount
|
Capture value (in cents). | integer |
CaptureAuthorization.ReleaseAt
|
Capture date and time | datetime |
3DS 2.0 Authentication
3ds-implementation manual for credit and debit
PDF Manual 3ds 2.0 - download Manual 3DS 2.0 V1.0.8
- Homologation - adiq-3ds-package-hml-1.0.2-min.js
- Production - adiq-3ds-package-1.0.2-min.js
- 3ds Decision Map - mapa-fluxo-3ds-en
Relevant fields for evaluating the ThreeDs authentication flow
{
"paymentAuthorization": {
"returnCode": "0",
"description": "Sucesso",
"paymentId": "020080286103040952150000006201850000000000",
"authorizationCode": "043711",
"orderNumber": "0000000001",
"amount": 1035,
"releaseAt": "2019-09-24T13:20:52.877545-03:00"
},
"threeDs":{
"status": "Fail",
"eci": "00",
"threeDsVersion": "2.1.0",
"veresEnrolled": "Y",
"paresStatus": "N",
"threeDsStatus": "AUTHENTICATION_FAILED",
"reason": "CONSUMER_AUTHENTICATION_FAILED",
"cardHolderMessage": "Note: Additional authentication is required by the issuing bank for this transaction",
"directoryServerErrorCode": "101",
"directoryServerErrorDescription": "Error Processing Message Request"
}
}
Property | Description |
---|---|
threeDs.status | 3DS Status - Silent, Attempt, Challenge and Fail |
threeDs.eci | 3DS response for authentication |
threeDs.threeDsVersion | 3DS Version |
threeDs.veresEnrolled | Issuer status - N, Y ou U |
threeDs.paresStatus | 3DS Authentication result - R, N, Y, A or U |
threeDs.threeDsStatus | 3DS Authentication status |
threeDs.reason | Reason failure |
threeDs.cardHolderMessage | Response from the issuer to the cardholder |
threeDs.directoryServerErrorCode | Error code for invalid input |
threeDs.directoryServerErrorDescription | Error description for invalid input |
Authentication 3DS Flows 2.X Scenarios
- Issuer is not a participant in the 3DS 2.x Protocol
- When veresEnrolled = N (Issuer is not a participant in the 3DS 2.x Protocol)
- 3DS fields are invalid
- When veresEnrolled = U (Unavailable). In this case, directoryServerErrorCode and directoryServerErrorDescription are filled with error code and error description
- Authentication declined
- When veresEnrolled = Y (Issuer participating in the 3DS 2.x protocol), threeDsStatus = AUTHENTICATION_FAILED and paresStatus = R (Authentication rejected) eci value will be 07 or 00 (Unsecured transaction)
- When veresEnrolled = Y (Issuer participating in the 3DS 2.x protocol), threeDsStatus = AUTHENTICATION_FAILED and paresStatus = N (Authentication failed) eci value will be 07 or 00 (Unsecured transaction)
- Authentication processed
- When veresEnrolled = Y (Issuer participating in the 3DS 2.x protocol), threeDsStatus = AUTHENTICATION_SUCCESSFUL and paresStatus = A (Attempt) eci value will be 06 or 01 (Attempt)
- When veresEnrolled = Y (Issuer participating in the 3DS 2.x protocol), threeDsStatus = AUTHENTICATION_SUCCESSFUL and paresStatus = Y (Authentication successful) eci value will be 05 or 02 (Secure transaction)
- When veresEnrolled = Y (Issuer participating in the 3DS 2.x protocol), threeDsStatus = AUTHENTICATION_SUCCESSFUL and paresStatus = U (Unable to complete) eci value will be 07 or 00 (Unsecured transaction)
Safe
Stores the consumer's card data in the vault
This operation is used to create a safe from the consumer's card data for use in future payments and recurrence, just do a POST
as shown in the example .
Request
{
"numberToken": "88f466c4-d17a-4430-952f-2a44bdb98525",
"brand": "visa",
"cardholderName": "JOSE SILVA",
"expirationMonth": "01",
"expirationYear": "19",
"verifyCard": false,
"securityCode": "123"
}
Property | Description | Type | Location | Required | Maximum Size |
---|---|---|---|---|---|
NumberToken
|
Tokenized card number. | string | body | yes | 36 |
Brand
|
Card flag (visa, mastercard, elo, amex, hypercard). | string | body | yes | Fixed |
CardholderName
|
Buyer's name printed on card. | string | body | yes | Follows the rule of the name contained in the card |
ExpirationMonth
|
Two-digit card expiration month. | string | body | yes | 2 |
ExpirationYear
|
Double-digit card expiration year. | string | body | yes | 2 |
VerifyCard
|
Performs a transaction that verifies if the card informed is valid. | boolean | body | yes | Fixed |
SecurityCode
|
Security code. | string | body | no | 04 |
resposta-1
{
"vaultId": "90fa2d95-3430-4e32-b86b-5b3b3a8393cb"
}
Property | Description | Type |
---|---|---|
VaultId
|
Card identifier saved in the vault | string |
Recurrence
Flag recurring transactions
This operation must be flagged in the v1/payments route on the property payment.recurrent
with value true
Property | Description | Type | Location | Required | Maximum Size |
---|---|---|---|---|---|
Payment.recurrent
|
Mark the transaction as recurring. | boolean | body | yes | fixed |
Recurrence of ELO brand transactions
In addition to signaling that the operation is recurring for ELO transactions:
In the initial transaction of the recurrence, it will return paymentAuthorization.nridElo
.
Property | Description | Type | Location | Required | Maximum Size |
---|---|---|---|---|---|
paymentAuthorization.nridElo
|
Elo identification number to be used in future recurring transactions. | string | body | yes | 15 |
In the second transaction onwards, you must inform the following values in v1/payments.
Property | Description | Type | Location | Required | Maximum Size |
---|---|---|---|---|---|
payment.RecurrentNridElo
|
Elo identification number for automatic recurring operations. | string | body | yes | 15 |
Payment.RecurrentAmountElo
|
Value of the first recurring transaction. | integer | body | yes | 10 |
Pix
Service for generating PIX QR Code, payment status query and webhook for payment confirmation.
Generation of Dynamic PIX QR Code.
This service allows you to generate Dynamic QR Code in the BR Code standard for payment via PIX. The Payment Amount entered to generate the QR Code cannot be changed by the paying user.
Request
{
"order_id": "012345678910AADL",
"order_date": "2022-11-17T09:20:36Z",
"amount": 1000,
"description": "Toy Hotwheels",
"url_web_hook": "https://loja-site/webhook/pedido/123456"
}
Property | Description | Type | Location | Required | Maximum Size |
---|---|---|---|---|---|
order_id
|
Order identifier. | string | body | yes | 50 |
order_date
|
Order date provided by customer. | DateTime | body | yes | yyyy-MM-ddTHH:mm:ssZ |
amount
|
PIX value (in cents). | int | body | yes | 9 |
description
|
PIX description. | string | body | no | 200 |
url_web_hook
|
URL to run a PIX payment response webhook. | string | body | yes | 300 |
Response
{
"order_id": "012345678910AADL",
"transaction_id": 389277,
"qrCode": "00020126420014br.gov.bcb.pix0120adiqplus@adiq.com.br520400005303986540510.005802BR5908ADIQPLUS6009SAO PAULO62070503***6304FFCB",
"dueDate": "2022-12-13T18:49:54.8274626-03:00",
"amount": 1000,
"qrCodeId": "xRC35GjYIcz+ATVq90Q6mib+VQPD23xExYPY0UzinIY="
}
Property | Description | Type |
---|---|---|
order_id
|
PIX order identifier. | string |
transaction_id
|
Transaction identifier in paycore. | long |
qrCode
|
EMV QR Code. | string |
dueDate
|
QR Code expiration date. | DateTime |
amount
|
PIX value (in cents). | int |
qrCodeId
|
QR Code identifier. | string |
Check Payment Status.
This service allows the customer to proactively check the payment status of the generated QR Code.
Request
{
"order_id": "012345678910AADL",
"qrCodeId": "xRC35GjYIcz+ATVq90Q6mib+VQPD23xExYPY0UzinIY="
}
Property | Description | Type | Location | Required | Maximum Size |
---|---|---|---|---|---|
order_id
|
PIX order identifier. | string | body | yes | 50 |
qrCodeId
|
QR Code identifier. | string | body | yes | 50 |
Response
{
"qrCodeId": "xRC35GjYIcz+ATVq90Q6mib+VQPD23xExYPY0UzinIY=",
"qrCodeStatus": "Pago",
"transaction": {
"transactionId": "5134dfee-6eff-407f-a013-d9d528e5c943",
"endToEndId": "E710278662022122313371719327837P",
"value": 0.05,
"costValue": 0.0,
"status": "Aprovado",
"date_payment": "2022-12-23T10:37:22.143-03:00",
"payer": {
"name": "Name",
"document": "99999999000999",
"documentType": 1
}
}
}
Property | Description | Type |
---|---|---|
qrCodeId
|
QR Code identifier. | string |
qrCodeStatus
|
QR Code status. | string |
transaction.transactionId
|
Transaction identifier. | string |
transaction.endToEndId
|
End-to-end transaction id. Transits in the receipt messages of QR Codes and transfers. | string |
transaction.value
|
PIX value. | decimal |
transaction.costValue
|
PIX cost value. | decimal |
transaction.status
|
PIX status. | string |
transaction.date_payment
|
Payment date. | DateTime |
transaction.payer.name
|
Payer name. | string |
transaction.payer.document
|
Payer document. | string |
transaction.payer.documentType
|
Payer document type. | int |
Domains
Property | Description |
---|---|
qrCodeStatus
|
Pendente, Pago, Desativo, RemovidoPSP |
transaction.status
|
Inexistente, Pendente, Aprovado, Expirado, Cancelado |
transaction.payer.documentType
|
1 (CNPJ), 2 (CPF) |
Payment Status Webhook
This service seeks to speed up the customer response process by sending the QR Code payment status as soon as it is identified by ADIQ.
The Url registered to execute the Webhook will receive a POST
request when the payment is identified.
If the Post request fails, 3 new communication attempts will be made.
Request
{
"qrCodeId": "L1+EtQeaqMseiB5wLdhYSwHSfhkFyKlnGZKLxiNQp+c=",
"qrCodeStatus": "Pago",
"transaction": {
"transactionId": "dafdddfe-5296-4f9d-ae4e-09ac529c283e",
"endToEndId": "E710278662022122916533635584748P",
"value": 10.00,
"costValue": 0.00,
"status": "Aprovado",
"date_payment": "2022-12-29T13:53:41.93-03:00",
"payer": {
"name": "Name",
"document": "99999999000999",
"documentType": 1
}
}
}
Property | Description | Type |
---|---|---|
qrCodeId
|
QR Code identifier. | string |
qrCodeStatus
|
QR Code status. | string |
transaction.transactionId
|
Transaction identifier. | string |
transaction.endToEndId
|
End-to-end transaction id. Transits in the receipt messages of QR Codes and transfers. | string |
transaction.value
|
PIX value. | decimal |
transaction.costValue
|
PIX cost value. | decimal |
transaction.status
|
PIX status. | string |
transaction.date_payment
|
Payment date. | DateTime |
transaction.payer.name
|
Payer name. | string |
transaction.payer.document
|
Payer document. | string |
transaction.payer.documentType
|
Payer document type. | int |
Domains
Property | Description |
---|---|
qrCodeStatus
|
Pendente, Pago, Desativo, RemovidoPSP |
transaction.status
|
Inexistente, Pendente, Aprovado, Expirado, Cancelado |
transaction.payer.documentType
|
1 (CNPJ), 2 (CPF) |
Anti-fraud
Anti-fraud implementation manual
ADIQ anti-fraud implementation manual for e-commerce operations as a means of payment. The manual will help the developer to understand how he can implement the solution.
PDF Anti-Fraud Manual - download Anti-Fraud Manual V1.0.4
Marketplace
What is Marketplace?
To know more - click here
Query API
Look up payment information through PaymentId
To consult a credit card transaction, it is necessary to send a request using the method
GET
to the Payments feature by informing the
PaymentId
generated at the time of authorization as shown in the example.
Request
Property | Description | Type | Location | Required | Maximum Size |
---|---|---|---|---|---|
PaymentId
|
Payment identifier to be consulted. | string | path | yes | 42 |
resposta-1
{
"paymentAuthorization":{
"paymentId":"020080286103040952150000006201850000000000",
"statusDescription":"Autorizada e disponível para captura",
"transactionDate":"2019-06-27T16:34:28.508Z",
"authorizationCode": "T45623",
"value": 13000,
"netValue": null
}
}
Property | Description | Type |
---|---|---|
PaymentAuthorization.PaymentId
|
Payment identifier. | string |
PaymentAuthorization.StatusDescription
|
Transaction status (Error, Denied, Authorized available for capture, Captured, Canceled). | string |
PaymentAuthorization.TransactionDate
|
Date of transaction. | datetime |
PaymentAuthorization.AuthorizationCode
|
Authorization code. | string |
PaymentAuthorization.Value
|
Authorized amount (in cents). | integer |
PaymentAuthorization.NetValue
|
Balance of the captured amount (in cents), which will be disclosed only after D+1 from the date it was captured. | integer |
Check payment information via OrderNumber
To consult a credit card transaction, it is necessary to send a request using the GET
method to the Payments resource informing the OrderNumber
generated at the time of authorization and the transactionDate
as per the example.
Request
Property | Description | Type | Format | Location | Required |
---|---|---|---|---|---|
OrderNumber
|
OrderNumber informed by the customer in the payment request (Customer Order Number). | string | path | yes | |
transactionDate
|
Date of transaction. | string | yyyyMMdd | path | yes |
Response
{
"paymentAuthorization":{
"paymentId":"020080286103040952150000006201850000000000",
"statusDescription":"Autorizada e disponível para captura",
"transactionDate":"2019-06-27T16:34:28.508Z",
"authorizationCode": "T45623",
"value": 13000,
"netValue": null
}
}
Property | Description | Type |
---|---|---|
PaymentAuthorization.PaymentId
|
Payment identifier. | string |
PaymentAuthorization.StatusDescription
|
Transaction status (Error, Denied, Authorized available for capture, Captured, Canceled). | string |
PaymentAuthorization.TransactionDate
|
Date of transaction. | datetime |
PaymentAuthorization.AuthorizationCode
|
Authorization code. | string |
PaymentAuthorization.Value
|
Authorized amount (in cents). | integer |
PaymentAuthorization.NetValue
|
Balance of the captured amount (in cents), which will be disclosed only after D+1 from the date it was captured. | integer |
Attachments
Integration Errors
If integration errors occur in any of the payment methods, a
response
will be returned containing an error code and a description
Example
Mandatory field not informed, the answer will be:
[
{
"tag":"Campo",
"description":"Não pode ser nulo ou vazio."
}
]
Property | Description |
---|---|
Tag
|
API Error Code. |
Description
|
Error Description. |
SDWO Digital Wallet
SDWO Digital Wallet is a tool or application that transforms mobile devices into a payment instrument used to purchase products or services or even to load financial resources/balance within the digital wallet itself for future use. The digital wallet will be able to carry out transactions in 2 different stages, a transaction for Cash In and another transaction for Cash Out. Stages can happen regardless of order.
These transactions have specific characteristics and are classified as:- Cash In (input of financial resources/balance in the digital wallet through a Mastercar credit card)
- Cash Out (payment for a product or service using a Mastercard credit card, where the wallet pays the point of sale using a non-flag payment method, a transfer of funds to an account within the wallet on behalf of the point of sale).
Among the specified characteristics of this SDWO digital wallet business model, we have the mandatory registration in the brands (WalletID) through which Cash In and Cash Out transactions will be authorized, processed and settled. The registration will be carried out by Adiq with the brand and informed to the Partner, and the WalletId will be automatically sent in the transaction to the SDWO digital wallet customer. If the Partner already has the WalletID of the brand, just inform it when registering at Adiq, as the registration in the brand to generate the WalletId is unique per CNPJ. We also have the specific MCC
6540
for Cash In and dynamic MCC for Cash Out, in addition to the specific message identifying the transactions.
Cash In/Cash Out digital wallet operations can be carried out with the Pre-Authorize/Authorize Capture type, as well as cancellation changes can be made.
The 3DS and Anti-Fraud features can be used for digital wallet transactions.
Cash In
To carry out the Cash In process, the dynamicMcc
field must be empty and the following fields must be informed:
{
"payment":{
"transactionType":"credit",
"amount":1035,
"currencyCode":"brl",
"productType":"avista",
"installments":1,
"captureType":"ac",
"recurrent":false
},
"cardInfo":{
"vaultId":"f851b514-301a-4e26-8314-3567c1b17aad"
},
"LineItems":[
{
"UnitPrice":"1055",
"Quantity":"1",
"ProductSKU":"922111212",
"ProductName":"Cadeira de plastico",
"ProductCode":"235422555252"
},
{
"UnitPrice":"935",
"Quantity":"1",
"ProductSKU":"455451212",
"ProductName":"Guarda-chuva",
"ProductCode":"23656565644"
}
],
"Customer":{
"DocumentType":"cpf",
"DocumentNumber":"51115672088",
"FirstName":"Jose",
"LastName":"Silva",
"Email":"jose.silva@email.com",
"PhoneNumber":"1122542454",
"MobilePhoneNumber":"11987683332",
"Address":"Rua Olveira Vieira, 134",
"Complement":"apto. 22 - Vila Guarani",
"City":"São Paulo",
"State":"SP",
"ZipCode":"09876-098",
"IpAddress":"41.261.933.248",
"Country":"BR"
},
"ShipTo":{
"FirstName":"Luiz Paulo",
"LastName":"Cardoso",
"PhoneNumber":"1122542454",
"Address":"Rua Luiz Vieira, 134",
"Complement":"apto. 34 - Vila Guarani",
"City":"São Paulo",
"State":"SP",
"ZipCode":"09876098",
"Country":"BR"
},
"DeviceInfo":{
"HttpAcceptBrowserValue":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"HttpAcceptContent":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"HttpBrowserLanguage":"pt-BR",
"HttpBrowserJavaEnabled":"N",
"HttpBrowserJavaScriptEnabled":"Y",
"HttpBrowserColorDepth":"24",
"HttpBrowserScreenHeight":"937",
"HttpBrowserScreenWidth":"1920",
"HttpBrowserTimeDifference":"180",
"UserAgentBrowserValue":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"
},
"sellerInfo":{
"orderNumber":"0000000001",
"softDescriptor":"NOMESDWO*CASHINXPTO",
"code3DS":"C56A4180-65AA-42EC-A945-5FD21DEC0538",
"urlSite3DS":"estabelecimento.com.br",
"codeAntiFraud":"C56A4180-65AA-42EC-A945-5FD21DEC0531",
"digitalWallet":{
"cashIn":{
"cardAcceptorUTRN":"3498",
"receiverFirstName":"Maria",
"receiverLastName":"Oliveira",
"receiverStreetAddress":"Rua São Vicente, 14"
}
}
},
"sellers":[
{
"id":"900",
"amount":690,
"items":[
{
"id":"P115DU90",
"description":"Produto 1",
"amount":345,
"ratePercent":0,
"rateAmount":0
},
{
"id":"P115DU91",
"description":"Produto 2",
"amount":345,
"ratePercent":0,
"rateAmount":0
}
]
},
{
"id":"901",
"amount":345,
"items":[
{
"id":"P115DU92",
"description":"Produto 1",
"amount":345,
"ratePercent":0,
"rateAmount":0
}
]
}
]
}
Property | Description | Type | Location | Required | Maximum size |
---|---|---|---|---|---|
SellerInfo.DigitalWallet.CashIn.CardAcceptorUTRN |
Wallet ID | string | body | yes | 19 |
SellerInfo.DigitalWallet.CashIn.ReceiverFirstName |
Recipient Name | string | body | yes | 35 |
SellerInfo.DigitalWallet.CashIn.ReceiverLastName |
Recipient's Last Name | string | body | yes | 35 |
SellerInfo.DigitalWallet.CashIn.ReceiverStreetAddress |
Recipient address | string | body | yes | 34 |
SellerInfo.SoftDescriptor |
|
string | body | yes | 22 |
Cash Out
In order to carry out the Cash Out process, the dynamicMcc
field must be filled in with the dynamic MCC that best represents the operation performed, and the following fields must be informed:
{
"payment":{
"transactionType":"credit",
"amount":1035,
"currencyCode":"brl",
"productType":"avista",
"installments":1,
"captureType":"ac",
"recurrent":false
},
"cardInfo":{
"vaultId":"f851b514-301a-4e26-8314-3567c1b17aad"
},
"LineItems":[
{
"UnitPrice":"1055",
"Quantity":"1",
"ProductSKU":"922111212",
"ProductName":"Cadeira de plastico",
"ProductCode":"235422555252"
},
{
"UnitPrice":"935",
"Quantity":"1",
"ProductSKU":"455451212",
"ProductName":"Guarda-chuva",
"ProductCode":"23656565644"
}
],
"Customer":{
"DocumentType":"cpf",
"DocumentNumber":"51115672088",
"FirstName":"Jose",
"LastName":"Silva",
"Email":"jose.silva@email.com",
"PhoneNumber":"1122542454",
"MobilePhoneNumber":"11987683332",
"Address":"Rua Olveira Vieira, 134",
"Complement":"apto. 22 - Vila Guarani",
"City":"São Paulo",
"State":"SP",
"ZipCode":"09876-098",
"IpAddress":"41.261.933.248",
"Country":"BR"
},
"ShipTo":{
"FirstName":"Luiz Paulo",
"LastName":"Cardoso",
"PhoneNumber":"1122542454",
"Address":"Rua Luiz Vieira, 134",
"Complement":"apto. 34 - Vila Guarani",
"City":"São Paulo",
"State":"SP",
"ZipCode":"09876098",
"Country":"BR"
},
"DeviceInfo":{
"HttpAcceptBrowserValue":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"HttpAcceptContent":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"HttpBrowserLanguage":"pt-BR",
"HttpBrowserJavaEnabled":"N",
"HttpBrowserJavaScriptEnabled":"Y",
"HttpBrowserColorDepth":"24",
"HttpBrowserScreenHeight":"937",
"HttpBrowserScreenWidth":"1920",
"HttpBrowserTimeDifference":"180",
"UserAgentBrowserValue":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"
},
"sellerInfo":{
"orderNumber":"0000000001",
"softDescriptor":"NOMESDWO*LOJAXPTO",
"dynamicMcc":9999,
"code3DS":"C56A4180-65AA-42EC-A945-5FD21DEC0538",
"urlSite3DS":"estabelecimento.com.br",
"codeAntiFraud":"C56A4180-65AA-42EC-A945-5FD21DEC0531",
"digitalWallet":{
"cashOut":{
"cardAcceptorCity":"São Paulo"
}
}
},
"sellers":[
{
"id":"900",
"amount":690,
"items":[
{
"id":"P115DU90",
"description":"Produto 1",
"amount":345,
"ratePercent":0,
"rateAmount":0
},
{
"id":"P115DU91",
"description":"Produto 2",
"amount":345,
"ratePercent":0,
"rateAmount":0
}
]
},
{
"id":"901",
"amount":345,
"items":[
{
"id":"P115DU92",
"description":"Produto 1",
"amount":345,
"ratePercent":0,
"rateAmount":0
}
]
}
]
}
Property | Description | Type | Location | Required | Maximum size |
---|---|---|---|---|---|
SellerInfo.DigitalWallet.CashOut.CardAcceptorCity |
Shopkeeper's City | string | body | yes | 13 |
SellerInfo.SoftDescriptor |
|
string | body | yes | 22 |
SellerInfo.DynamicMcc |
Code of the Commercial Establishment Category. Requires approval from the ADIQ risk area. | integer | body | yes | 04 |
Late capture
What is a pre-authorization or pre-aut transaction?
Pre-authorization is a form of transaction where a consultation takes place that guarantees that the holder has the resources to pay for that service or product even before the capture transaction for authorization takes place, when the issuing bank authorizes it, it makes a temporary “reserve” of the funds on the credit card related to that purchase – the limit is sensitized according to the value of the pre-auto transaction.
The pre-authorization transaction has specific business rules:
- Validity: up to 30 days
- Trigger: no, pre-aut transaction is automatically reversed in transaction for authorization
- MCCs Restriction: Eligible for specific MCCs that work with reservations such as Hotels, car rental and others
- Captured value for authorization: The value sent for authorization can be less than, equal to, or greater than the pre-authorized value
Does Adiq have a pre-aut transaction? How it works?
No, Adiq's solution is a late capture or capture after transaction. The solution performs a pre-authorization transaction but will depend on of a trigger to roll it back in a late capture transaction and thus send it for authorization. This trigger can be stock confirmation before of billing or a risk analysis of the transaction and if the suspicion/fraud is confirmed, the Partner chooses not to capture the transaction, thus avoiding a chargeback and fines from monitoring programs for excess chargeback and brand fraud, for example.
The business rules for late capture are different, such as:
- Validity: up to 21 days
- Trigger: mandatory that the transaction is reversed in transaction for authorization (late capture), otherwise the initial transaction is undone and the effective charge to the bearer is not carried out.
- Restriction of MCCs: There is no restriction of MCCs
To perform a late capture transaction, what do I need to send in the transaction?
In the TID (TransactionID) field, the information regarding the pre-authorized transaction, that is, the same credit card must be used. credit: The data sent is: MTI (Identifies capture type and 0100 for PA (Pre-Authorization), primary NSU, date/time, Acquirer's NSU (also known as CV), which is often used for future reconciliations, as it is unique.
Can any Partner transact with late capture?
Yes is available to any EC, Whitelabel partner, SAAS or platformless facilitator as long as they are integrated with our gateway e-commerce (digital capture).
Is it possible to cancel/reverse a late capture transaction? What is the deadline to cancel?
Yes, just call the transaction cancellation API/endpoint within 21 days. If the transaction is not canceled or rolled back to authorization, the transaction will be rolled back automatically.
Can I perform a late capture transaction on a debit card?
Not. Late capture transactions are only allowed on credit cards. Debit card transactions have capture of immediate authorization, not being possible to make the “reservation”.
What modality should a late capture transaction be carried out?
Delayed capture transactions can be carried out in cash or in installments. The same credit card can be used to perform more than one late capture transaction.
What date of the transaction will appear on the bearer's invoice?
The bearer's invoice will include the date of authorization of the late capture transaction.
What rules apply for chargeback being a late capture transaction?
The chargeback rules are the same rules for a card transaction not present in ecommerce, liability remains the responsibility of the establishment.
Can the late capture transaction go through Adiq's Anti-Fraud and 3DS 2.0 tools?
Yes, EC, Whitelabel partner, SAAS or non-platform facilitator who choose to transact via late capture can take advantage of the anti-fraud tools and 3DS 2.0, for which they will need to be integrated with our e-commerce gateway (digital capture).
How does the Partner view late capture transactions in the Admin Portal?
In the admin portal transactions are categorized as pre-authorization (up to 21th day and before the trigger to revert them to late capture) and when late capture actually happens, are categorized as capture.
Is it possible to cancel/reverse a pre-authorized transaction? What is the deadline to cancel?
Yes, just call the transaction cancellation API/endpoint within 21 days of the pre-authorization transaction date. It is important to pay attention to the validity ExpireAt informed in the pre-authorization transaction. If the transaction is not cancelled/captured, the transaction will be rolled back automatically. For example: Transaction was pre-authorized on 01/Jan, it will only be possible to cancel until 22/Jan, on 09/Jan it will not be possible to cancel.
To capture a pre-authorized transaction, what must be sent in the transaction?
Send the paymentId field that was received in the pre-authorization response and the value that will be captured in the request body. It is important to pay attention to the releaseAt expiration date/time informed in the pre-authorization transaction. If the transaction is not captured and sent for authorization/captured, the transaction will be rolled back automatically. For example: Transaction was pre-authorized on 01/Jan at 3:00 PM, it will only be possible to capture until 22/Jan at 2:59 PM, from 22/Jan to 3:00 PM it will not be possible to capture.
API-codes
HTTP Status Code
HTTP Status Code | Description |
---|---|
200 | OK |
400 | Bad Request |
401 | Unauthorized |
400 | Internal Server Error |