Anti-Fraud Integrations

Anti-Fraud Integrations

Overview

Source: https://docs.apis-fiserv.com/latam/docs/op-afi-overview

Overview

Carat Portal is a multi-service payment gateway, capable of processing credit card transactions, bank transfers, invoice generations, integration with mobile payment options, among other services that can be easily added to the platform.

Carat Portal integrates anti-fraud solutions by including risk analysis on the payment process.

Anti-fraud service is supplied by HTML Payment Interface and is integrated with several risk analysis institutions. Thus, in case merchant enables anti-fraud service, each payment only will be confirmed if the chosen risk analysis institution approves the payment.

And to learn more about these nomenclatures (Bin, Software Express, Carat, e-Sitef) Learn more

Required credentials

Carat Portal has integration with many risk analysis institutions. Thus, the merchant can choose with who will do risk analysis. Once select the risk analysis institution, the merchant should contact this institution and ask for required credentials. Credentials can differ depending of institution. After that the merchant should send these credentials to Carat Portal support that will register this data. Anti-fraud service configuration on merchant’s payments only be possible after credentials registered on Carat Portal production environment.

It is important remember to configure expiry time and the action that will be executed after that time expired. This configuration must be registered on Merchant’s Portal. Learn more.

For more information about the required credentials, read the chapter corresponding to the desired antifraud institution.

Restrictions

The anti-fraud analysis functionality can be used on the following Carat Portal interfaces:

Antifraude Fiserv
REST PaymentX
HTML PaymentX(*)
REST Pre-AuthorizationX
HTML Pre-AuthorizationX(*)
Payment link - PortalX
(*): If payer, shipment and billing_data structures are provided in the HTML call, they will not be requested in the checkout screen.
CyberSourceClearSaleKondutoFraud Detect
REST PaymentXXXX
HTML PaymentX(*)X(*)X(*)X(*)
REST Pre-AuthorizationXXXX
HTML Pre-AuthorizationX(*)X(*)X(*)X(*)
Payment link - PortalXXXX
(*): If payer, shipment and billing_data structures are provided in the HTML call, they will not be requested in the checkout screen.

Attention:
For PRE-AUTHORIZATION transactions with risk analysis (anti-fraud) and not-SiTef routings, attention should be paid to the scenarios in which the risk analysis is carried out AFTER pre-authorization.
In these scenarios, the pre-authorization transaction is confirmed regardless of the result of the risk analysis, and it is up to the merchant to decide - in light of the anti-fraud assessment - whether to effect its capture or not. The same is true for cases in which the risk analysis of the transaction is referred to a manual review by the anti-fraud institution.

Therefore the risk analysis cannot be used with the features below:

  • Recharge
  • Split

Because the nature of the flow, the payment methods below are not allowed to be used with risk analysis:

  • Banco do Brasil
  • e-Commerce Cielo 1.5 (NPC)
  • Itaú Shopline
  • MercadoPago
  • PagSeguro
  • PayPal

Debit Card

For payments made with a debit card, the anti-fraud flow with the flag after auth does not apply.

Attention:
It is important that the merchant sends as much information as he can when using Carat Portal's anti-fraud services. The quality of this information will directly and cumulatively affect the quality of the fraud analysis, bringing direct benefits to the merchant.


Risk Analysis Response

Source: https://docs.apis-fiserv.com/latam/docs/risk-analysis-response

The Carat Portal will return the analysis status (approved, rejected or under analysis) in the status notification url, in addition to the code and message returned by the service, as shown in the table below:

FieldDescriptionSize
analise.statusRisk analysis= 3 A
analise.codigoResponse code< 3 N
analise.mensagemResponse message< 30 N

The status of the risk analysis can be:

StatusDescription
NOVAnalysis has not yet been submitted.
EXPPayment transaction has expired before the analysis is sent.
ACCThe transaction was accepted.
REJTransaction rejected by the risk analysis institution.
REVTransaction requires manual review. (Learn more)
INVInvalid analysis.

It is important to note that if an error has occurred, it will be described in the analise.mensagem of the return URL.

For more information about response codes, read the Response Codes item in the desired anti-fraud solution documentation.


Antifraud Fiserv

Source: https://docs.apis-fiserv.com/latam/docs/antifraud-fiserv

Required credentials

As mentioned in the "Overview - Required credentials" chapter, each institution has credentials that must be obtained for the integration. Antifraud Fiserv Fraud Detect services demand the credentials below:

  • Private Key (Merchant Identification) - Private key of the merchant on Antifraud Fiserv Fraud Detect .
  • Public Key (Merchant Code) - Public key of the merchant on Antifraud Fiserv Fraud Detect .

IMPORTANT:
The credentials above should be obtained from Antifraud Fiserv Fraud Detect . It is recommended to contact Antifraud Fiserv Fraud Detect and receive guidance on how to obtain the credentials. Then, the merchant should contact Carat Portal support and send the credentials to register on Carat Portal.

Web Hook URL Configuration

In order for us to receive status updates from the risk analysis transactions, it is necessary to configure the Webhook URL on the Antifraud Fiserv Fraud Detect configuration environment.

Production URL:

https:///e-sitef/processarPost.se?src=fraud_detect

Homologation URL:

https:///e-sitef/processarPost.se?src=fraud_detect

This URL must be configured for any status changes. To perform this configuration, please contact Antifraud Fiserv Fraud Detect Support.

Allowed card brands

Antifraud Fiserv Fraud Detect supports any card brand.

IMPORTANT:
Only credit transactions will be effectively analyzed by Antifraud Fiserv Fraud Detect . Debit transactions will be sent to the institution, but will only be stored for reporting and will not be analyzed.

Supported Carat Portal interfaces

Antifraud Fiserv Fraud Detect anti-fraud parameters (Payment Link via HTML)

For now, the data collected for the risk analysis will only be informed during the payer's checkout. Soon, new fields may be sent in the payment creation request.

Fields collected during Checkout

The fields collected during checkout are:

FieldField DescriptionRequired
Primeiro Nome do CompradorFirst name of the payer.Yes
Sobrenome do CompradorFirst name of the payer.Yes
CPF do CompradorCPF of the payer.Yes
TelefonePhone number of the payer.Yes
E-mailEmail of the payer.Yes
Nome (como está no cartão)Name that is printed on the card used for the purchase.Yes
Endereco completoFull billing address.Yes
ComplementoComplement of the billing address.No
CEPZip code of the billing address.Yes
PaísCountry of the billing address.Yes
EstadoState of the billing address.Yes
CidadeCity of the billing address.Yes

Example

Example of the HTML payment request with risk analysis at Antifraud Fiserv Fraud Detect :

JSON
{
  "merchant_id": "FRAUDDETECT",
  "merchant_usn": "803208495",
  "order_id": "866705726000010",
  "redirect": "A",
  "style": "N",
  "amount": "100000",
  "authenticate": "0",
  "transaction_type": "payment",
  "payment_link": "true",
  "additional_data": {
    "currency": "BRL",
    "anti_fraud": "enabled_after_auth"
  }
}

Antifraud Fiserv Fraud Detect Anti-Fraudin the Payment Link via Portal

To enable Antifraud Fiserv Fraud Detect anti-fraud for Payment Links generated by the Merchant Portal, please contact Carat Portal's support team.

Antifraud Fiserv Fraud Detect Antifraud via REST

After finishing your registration on Carat Portal, enabling the antifraud service integration, when initializing a REST payment (learn more) or REST pre-authorization (learn more), the merchant must send the anti_fraud property and the antifraud parameters (depending on the institution you're using), both included in the additional_data object.

The anti_fraud field determines how the risk analysis will be applied and may contain the following values:

  • enabled_before_auth - The antifraud will be executed BEFORE the payment authorization. If the analysis is rejected, the payment won't be initiated. In the case of a pre-authorization with a non-SiTef routing, if the antifraud requires a manual analysis, the pre-authorization transaction will be confirmed, and it will be up to the merchant to decide whether to capture or cancel the transaction.
  • enabled_after_auth - The antifraud will be executed AFTER the payment authorization. If the analysis is rejected, the payment that was already authorized will be cancelled. In the case of a pre-authorization with a non-SiTef routing, the transaction will always be confirmed, and it will be up to the merchant to decide whether to capture or cancel the transaction.

For customers who are using REST, it is interesting to add the settings from the links below to improve risk analysis and also to obtain the visitor_id.

Antifraud Fiserv Fraud Detect antifraud parameters

Below are described the antifraud parameters supported by Antifraud Fiserv Fraud Detect .

Note: If payer, shipment and billing_data structures are provided in the HTML call, they will not be requested in the checkout screen.

ParameterDescriptionFormatMandatory
additional_data Additional transaction data.
visitor_idVisitor identifier obtained using Antifraud Fiserv Fraud Detect JavaScript.< 40 ANNO
additional_data
.items[]
Shopping cart information
unit_priceItem unit price in centsNO< 10 N
skuItem product codeNO< 100 AN
quantityItem quantityNO< 10 N
idUnique item identification, that may be its bar code or UPC.NO< 100 AN
titleProduct or service nameNO< 100 AN
discount_amountDiscount amount of the product in centsNO< 10 N
descriptionProduct descriptionNO< 100 AN
creation_dateIndicates the date of publication of the product on the merchant's site (Format: DD/MM/YYYY)NO= 10 AN
additional_data
.payer
Customer information
idUnique customer identifier. It may be any value (sequential, document, e-mail), as long as it's consistent on future orders.YES< 100 AN
nameCustomer name.YES< 100 AN
surnameCustomer surname.YES< 100 AN
emailCustomer e-mail.YES< 100 AN
born_dateCustomer birth date (format : YYYY-MM-DDTHH:MM:SS)NO= 19 AN
identification_numberCustomer document numberNO< 100 AN
creation_dateAccount creation date on the site (format: DD/MM/YYYY )NO= 10 AN
is_new_clientBoolean that indicates if the customer is using a recently created account in this purchase.NO< 5 T/F
is_vip_clientBoolean that indicates if the customer is VIP or a frequent buyer.NO< 5 T/F
additional_data
.payer
.phones[]
Customer phone information
ddiCustomer phone IDDNO< 100 AN
dddCustomer phone DDDNO< 100 AN
numberCustomer phone number.NO< 100 AN
additional_data
.billing_data
.address
Billing address information
street_nameBilling street name.NO< 255 AN
street_numberBilling street number.NO< 255 AN
complementBilling address complement.NO< 100 AN
cityBilling city.NO< 100 AN
stateBilling state.NO< 100 AN
zip_codeBilling zip code.NO< 100 A N
countryBilling country code, following ISO 3166-1 alfa-3.NO= 3 AN
additional_data
.shipment
Shipment information
nameName of the recipient.NO< 100 AN
surnameSurname of the recipient.NO< 100 AN
additional_data
.shipment
.address
Shipment address information
street_nameDelivery street name.NO< 255 AN
street_numberDelivery street number.NO< 255 AN
complementDelivery address complement.NO< 255 AN
cityDelivery city.NO< 100 AN
stateDelivery state.NO< 100 AN
zip_codeDelivery zip code.NO< 100 AN
countryDelivery country code, following ISO 3166-1 alfa-3.NO= 3 AN
additional_data
.travel
Travel information
transport_typeTravel transport type. (flight or bus)YES< 6 AN
expiration_dateExpiration date. (format: DD/MM/YYYY )NO= 10 AN
additional_data
.connections[]
Travel connections information
journey_type
  • OUTWARD - outward journey
  • RETURN - return trip
YES< 7 AN
origin_cityOrigin city.YES, if transport_type=bus< 100 AN
destination_cityDestination city.YES, se transport_type=bus< 100 AN
fromIATA airport code of the origin airportYES, if transport_type=flight= 3 AN
toIATA airport code of the destination airportYES, if transport_type=flight= 3 AN
departure_dateDeparture date and time (format: YYYY-MM-DDTHH:MM:SS)YES< 17 AN
classSeat class name (Ex: economy, business or first)NO< 8 AN
class_codeSeat class code.NO< 20 AN
companyAirline name.NO< 20 AN
additional_data
.passengers[]
Passengers information
namePassenger first nameYES< 100 AN
last_namePassenger last nameYES< 100 AN
legal_documentPassenger document.YES< 100 AN
legal_document_typePassenger document type (5 = passport, any other number = id)YES< 8 AN
birth_datePassenger birth date (format: YYYY-MM-DDTHH:MM:SS)NO< 17 AN
nationalityPassenger nationality, following ISO 3166-1 alfa-3NO= 3 AN
is_frequent_travelerFrequent traveler booleanNO< 5 T/F
is_with_special_needsBoolean which indicates if it's a passenger with special needsNO< 5 T/F
frequent_flyer_cardLoyalty program typeNO< 255 AN
customer_classLoyalty program categoryNO< 255 AN
additional_data
.hotel_reservations[]
Hotel reservation information
hotelHotel name.YES< 100 AN
categoryHotel category.NO< 100 AN
additional_data
.hotel_reservations[]
.address
Hotel address information
street_name Hotel street name.NO< 255 AN
street_numberHotel street number.NO< 255 AN
complementHotel address complement.NO< 100 AN
cityHotel city.NO< 100 AN
stateHotel state.NO< 100 AN
zip_codeHotel zip code.NO< 100 AN
countryHotel country code, following ISO 3166-1 alfa-3.NO= 3 AN
additional_data
.hotel_reservations[]
.rooms[]
Hotel rooms information
numberRoom number.NO< 100 AN
codeRoom codeNO< 100 AN
typeRoom type.NO< 100 AN
check_in_dateCheck-in date and time (format: YYYY-MM-DDTHH:MM:SS)YES< 17 AN
check_out_dateCheck-out date and time (format: YYYY-MM-DDTHH:MM:SS)NO< 17 AN
number_of_guestsNumber of guests.NO< 9999 N
board_basisFeeding regime.NO< 100 AN
additional_data
.hotel_reservations[]
.rooms[]
.guests[]
Hotel room guests information
nameGuest name.YES< 100 AN
documentGuest document.NO< 8 AN
document_typeGuest document type:
  • cpf
  • rg
  • passport
  • id
  • other
NO< 8 AN
birth_dateGuest birth date (format: YYYY-MM-DDTHH:MM:SS)NO< 17 AN
nationalityGuest nationality, following ISO 3166-1 alfa-3.NO= 3 AN
additional_data
.events[]
Event information
nameEvent name.YES< 255 AN
dateEvent date and time (format YYYY-MM-DDTHH:MM:SS)YES< 17 AN
typeEvent type:
  • show
  • theater
  • movies
  • party
  • festival
  • course
  • sports
  • corporate
YES< 9 AN
subtypeEvent type details.NO< 255 AN
additional_data
.events[]
.venue
Event venue information
nameVenue nameNO< 255 AN
street_nameVenue street nameNO< 255 AN
street_numberVenue street numberNO< 255 AN
cityVenue cityNO< 255 AN
stateVenue stateNO< 255 AN
countryVenue country code, following ISO 3166-1 alfa-3.NO= 3 AN
capacityVenue capacityNO< 255 AN
additional_data
.events[]
.tickets[]
Event tickets information
idUnique ticket identifier.NO< 255 AN
categoryTicket category:
  • student
  • senior
  • government
  • social
  • regular
YES< 10 AN
sectionTicket section.NO< 255 AN
premiumPremium ticket indicator.NO< 5 T/F
additional_data
.events[]
.tickets[]
.atendee
Event atendee information
nameAtendee name.NO< 255 AN
documentAtendee document.YES< 100 AN
document_typeAtendee document type:
  • cpf
  • cnpj
  • rg
  • passport
  • other
NO< 100 AN
birth_dateAtendee birth date (format: YYYY-MM-DDTHH:MM:SS)NO< 17 AN
additional_data
.vehicle{}
Vehicle information for anti-fraud
makeVehicle brandYES< 63 AN
modelVehicle modelYES< 100 AN
vidUnique vehicle identifierNO< 17 AN
renavamRenavam identification of the vehicleNO< 11 AN
registrationVehicle licenseNO< 17 AN
typeDescribes the type of vehicle: car, bus, truck, motorcycle, aircraft, boat, bicycleNO< 15 AN
usageDescribes the use of the vehicle in the operation. Accepts values such as: private, commercial, experimental, government, military, instructionNO< 15 AN
additional_data
.vehicle{}
`.owner{}
Vehicle owner information for anti-fraud
nameName of vehicle ownerNO< 255 AN
tax_idVehicle owner documentYES< 100 AN

ATTENTION: Parameters that exist in payer, billing and shipment when not passed to the transaction creation service via additional_data, will be requested in the payment screen. If the parameters are passed in the transaction creation service, you will not be asked to fill in the fields on the payment screen.

Example

Below is an example of a REST payment creation request with Antifraud Fiserv Fraud Detect risk analysis:

JSON
{
  "merchant_usn": "2423423434",
  "order_id": "2432342343",
  "installments": "1",
  "installment_type": "4",
  "authorizer_id": "2",
  "amount": "1300",
  "additional_data": {
    "anti_fraud": "enabled_before_auth",
    "visitor_id": "XKhas09jcks",
    "items": [
      {
        "title": "title1",
        "quantity": "1",
        "unit_price": "1111",
        "description": "description1",
        "id": "id1",
        "discount_amount": "111",
        "sku": "sku1",
        "creation_date": "11/01/2011"
      }
    ],
    "payer": {
      "name": "Marcos",
      "surname": "da Silva",
      "email": "[email protected]",
      "born_date": "1990-01-01T11:11:11",
      "creation_date": "02/03/2004",
      "is_new_client": "true",
      "is_vip_client": "true",
      "phones": [
        {
          "number": "333333333",
          "ddd": "22",
          "ddi": "11"
        },
        {
          "number": "666666666",
          "ddd": "55",
          "ddi": "44"
        }
      ],
      "identification_number": "47764543004"
    },
    "shipment": {
      "name": "Fernando",
      "surname": "Bezerra",
      "address": {
        "zip_code": "98764312",
        "street_number": "987",
        "street_name": "Rua Shipment",
        "complement": "ap. 587",
        "city": "São Shipment",
        "state": "MA",
        "country": "BRA"
      }
    },
    "passengers": [
      {
        "name": "Miguel",
        "last_name": "Herrera",
        "frequent_flyer_card": "frequentFlyerCard",
        "legal_document_type": "1",
        "legal_document": "12312312312",
        "birth_date": "1980-07-28T10:40:00",
        "customer_class": "customerClass",
        "nationality": "BRA",
        "is_frequent_traveler": "true",
        "is_with_special_needs": "true"
      }
    ],
    "connections": [
      {
        "company": "Verde",
        "class": "first",
        "from": "GRU",
        "to": "CGH",
        "departure_date": "2023-09-07T07:09:00",
        "journey_type": "OUTWARD",
        "origin_city": "San Juan",
        "destination_city": "Homero Lopez",
        "class_code": "VIP"
      },
      {
        "company": "Rosa",
        "class": "economy",
        "from": "BSB",
        "to": "VCP",
        "departure_date": "2022-10-21T16:39:00",
        "journey_type": "RETURN",
        "origin_city": "San Pablo",
        "destination_city": "Juanito Cruz",
        "class_code": "ECONOMY"
      }
    ],
    "hotel_reservations": [
      {
        "hotel": "Hotel Green Tree",
        "address": {
          "zip_code": "83392019",
          "street_number": "529",
          "street_name": "Rua Hoteleira",
          "complement": "ap. 019",
          "city": "San Hotel",
          "state": "AC",
          "country": "EN"
        },
        "rooms": [
          {
            "number": "902",
            "code": "ROOM902",
            "type": "King Size",
            "check_in_date": "2020-01-09T12:30:00",
            "check_out_date": "2020-01-19T13:00:00",
            "number_of_guests": "1",
            "board_basis": "Vegan",
            "guests": [
              {
                "name": "José Aníbal",
                "document": "98798798712",
                "document_type": "cpf",
                "birth_date": "12/03/1970",
                "nationality": "BRA"
              }
            ]
          }
        ],
        "category": "categoryhotel"
      }
    ],
    "billing_data": {
      "address": {
        "zip_code": "12341234",
        "street_number": "666",
        "street_name": "Rua Billing",
        "complement": "ap. 2369",
        "city": "São Billing",
        "state": "AM",
        "country": "BRA"
      }
    },
    "travel": {
      "transport_type": "flight",
      "expiration_date": "2022-02-14T01:30:00"
    },
    "discount_info": "Informações de desconto",
    "events": [
      {
        "name": "Evento de Rock",
        "date": "2021-11-22T09:28:00",
        "type": "show",
        "subtype": "music",
        "venue": {
          "name": "Debicard Hall",
          "street_name": "Rua do Evento",
          "street_number": "928",
          "city": "Jardinópolis",
          "state": "MS",
          "country": "DO",
          "capacity": "300"
        },
        "tickets": [
          {
            "id": "12h374612h4h",
            "category": "social",
            "section": "Seção 1",
            "premium": "true",
            "attendee": {
              "name": "Daniel Almeida",
              "document": "71728293945",
              "document_type": "other",
              "birth_date": "03/10/1990"
            }
          }
        ],
          "vehicle": {
          "make": "Bentley",
          "model": "Bacalar",
          "renavam": "87836695327",
          "registration": "ABC1234",
          "vid": "ABCDEFGH123456789",
          "type": "car",
          "usage": "private",
          "owner": {
            "tax_id": "540.830.640-21",
            "name": "Cicero"
          }
        }
      }
    ]
  }
}

Konduto

Source: https://docs.apis-fiserv.com/latam/docs/konduto

Required credentials

As mentioned in the "Overview - Required credentials" chapter, each institution has credentials that must be obtained for the integration. Konduto's services demand the credentials below:

  • Private Key (Merchant Identification) - Private key of the merchant on Konduto.
  • Public Key (Merchant Code) - Public key of the merchant on Konduto.

IMPORTANT:
The credentials above should be obtained from Konduto. It is recommended to contact Konduto and receive guidance on how to obtain the credentials. Then, the merchant should contact Carat Portal support and send the credentials to register in Carat Portal.

Web Hook URL Configuration

In order for us to receive status updates from the risk analysis transactions, it is necessary to configure the Webhook URL on the Konduto configuration environment.

Production URL:

https:///e-sitef/processarPost.se?src=konduto

Homologation URL:

https:///e-sitef/processarPost.se?src=konduto

This URL must be configured for any status changes. To perform this configuration, please contact Konduto Support.

Allowed card brands

Konduto supports any card brand.

IMPORTANT:
Only credit transactions will be effectively analyzed by Konduto. Debit transactions will be sent to the institution, but will only be stored for reporting and will not be analyzed.

Supported Carat Portal interfaces

Konduto's anti-fraud parameters (Payment Link via HTML)

For now, the data collected for the risk analysis will only be informed during the payer's checkout. Soon, new fields may be sent in the payment creation request.

Fields collected during Checkout

The fields collected during checkout are:

FieldField DescriptionRequired
Primeiro Nome do CompradorFirst name of the payer.Yes
Sobrenome do CompradorFirst name of the payer.Yes
CPF do CompradorCPF of the payer.Yes
TelefonePhone number of the payer.Yes
E-mailEmail of the payer.Yes
Nome (como está no cartão)Name that is printed on the card used for the purchase.Yes
Endereco completoFull billing address.Yes
ComplementoComplement of the billing address.No
CEPZip code of the billing address.Yes
PaísCountry of the billing address.Yes
EstadoState of the billing address.Yes
CidadeCity of the billing address.Yes

Example

Example of the HTML payment request with risk analysis at Konduto:

JSON
{
  "merchant_id": "KONDUTOTEST",
  "merchant_usn": "803208495",
  "order_id": "866705726000010",
  "redirect": "A",
  "style": "N",
  "amount": "100000",
  "authenticate": "0",
  "transaction_type": "payment",
  "payment_link": "true",
  "additional_data": {
    "currency": "BRL",
    "anti_fraud": "enabled_after_auth"
  }
}

Konduto's Anti-Fraud in the Payment Link via Portal

To enable Konduto's anti-fraud for Payment Links generated by the Merchant Portal, please contact Carat Portal's support team.

Konduto Antifraud via REST

After finishing your registration on Carat Portal, enabling the antifraud service integration, when initializing a REST payment (learn more) or REST pre-authorization (learn more), the merchant must send the anti_fraud property and the antifraud parameters (depending on the institution you're using), both included in the additional_data object.

The anti_fraud field determines how the risk analysis will be applied and may contain the following values:

  • enabled_before_auth - The antifraud will be executed BEFORE the payment authorization. If the analysis is rejected, the payment won't be initiated. In the case of a pre-authorization with a non-SiTef routing, if the antifraud requires a manual analysis, the Carat Portal leaves the transaction in the PPC (Pending Confirmation Payment) state and awaits the completion of the manual evaluation.
  • enabled_after_auth - The antifraud will be executed AFTER the payment authorization. If the analysis is rejected, the payment that was already authorized will be cancelled. In the case of a pre-authorization with a non-SiTef routing, the Carat Portal leaves the transaction in the PPC (Pending Confirmation Payment) state and awaits the completion of the manual evaluation.

Konduto antifraud parameters

Below are described the antifraud parameters supported by Konduto.

Note: If payer, shipment and billing_data structures are provided in the HTML call, they will not be requested in the checkout screen.

ParameterDescriptionMandatoryFormat
additional_data Additional transaction data
visitor_idVisitor identifier obtained using Konduto's JavaScriptNO< 40 AN
additional_data
.items[]
Shopping cart information
unit_priceItem unit price in centsNO< 10 N
skuItem product codeNO< 100 AN
quantityItem quantityNO< 10 N
idUnique item identification, that may be its bar code or UPC.NO< 100 AN
titleProduct or service nameNO< 100 AN
discount_amountDiscount amount of the product in centsNO< 10 N
descriptionProduct descriptionNO< 100 AN
creation_dateIndicates the date of publication of the product on the merchant's site (Format: DD/MM/YYYY)NO= 10 AN
additional_data
.payer
Customer information
idUnique customer identifier. It may be any value (sequential, document, e-mail), as long as it's consistent on future orders.YES< 100 AN
nameCustomer nameYES< 100 AN
surnameCustomer surnameYES< 100 AN
emailCustomer e-mailYES< 100 AN
born_dateCustomer birth date (format : YYYY-MM-DDTHH:MM:SS)NO= 19 AN
identification_numberCustomer document numberNO< 100 AN
creation_dateAccount creation date on the site (format: DD/MM/YYYY )NO= 10 AN
is_new_clientBoolean that indicates if the customer is using a recently created account in this purchaseNO< 5 T/F
is_vip_clientBoolean that indicates if the customer is VIP or a frequent buyerNO< 5 T/F
additional_data
.payer
.phones[]
Customer phone information
ddiCustomer phone IDDNO< 100 AN
dddCustomer phone DDDNO< 100 AN
numberCustomer phone numberNO< 100 AN
additional_data
.billing_data
.address
Billing address information
street_nameBilling street nameNO< 255 AN
street_numberBilling street numberNO< 255 AN
complementBilling address complementNO< 100 AN
cityBilling cityNO< 100 AN
stateBilling stateNO< 100 AN
zip_codeBilling zip codeNO< 100 A N
countryBilling country code, following ISO 3166-1 alfa-3NO= 3 AN
additional_data
.shipment
Shipment information
nameName of the recipientNO< 100 AN
surnameSurname of the recipientNO< 100 AN
additional_data
.shipment
.address
Shipment address information
street_nameDelivery street nameNO< 255 AN
street_numberDelivery street numberNO< 255 AN
complementDelivery address complementNO< 255 AN
cityDelivery cityNO< 100 AN
stateDelivery stateNO< 100 AN
zip_codeDelivery zip codeNO< 100 AN
countryDelivery country code, following ISO 3166-1 alfa-3NO= 3 AN
additional_data
.travel
Travel information
transport_typeTravel transport type (flight or bus)YES< 6 AN
expiration_dateExpiration date (format: DD/MM/YYYY )NO= 10 AN
additional_data
.connections[]
Travel connections information
journey_type
  • OUTWARD - outward journey
  • RETURN - return trip
YES< 7 AN
origin_cityOrigin cityYES, if transport_type=bus< 100 AN
destination_cityDestination cityYES, se transport_type=bus< 100 AN
fromIATA airport code of the origin airportYES, if transport_type=flight= 3 AN
toIATA airport code of the destination airportYES, if transport_type=flight= 3 AN
departure_dateDeparture date and time (format: YYYY-MM-DDTHH:MM:SS)YES< 17 AN
classSeat class name (Ex: economy, business or first)NO< 8 AN
class_codeSeat class codeNO< 20 AN
companyAirline nameNO< 20 AN
additional_data
.passengers[]
Passengers information
namePassenger first nameYES< 100 AN
last_namePassenger last nameYES< 100 AN
legal_documentPassenger documentYES< 100 AN
legal_document_typePassenger document type (5 = passport, any other number = id)YES< 8 AN
birth_datePassenger birth date (format: YYYY-MM-DDTHH:MM:SS)NO< 17 AN
nationalityPassenger nationality, following ISO 3166-1 alfa-3NO= 3 AN
is_frequent_travelerFrequent traveler booleanNO< 5 T/F
is_with_special_needsBoolean which indicates if it's a passenger with special needsNO< 5 T/F
frequent_flyer_cardLoyalty program typeNO< 255 AN
customer_classLoyalty program categoryNO< 255 AN
additional_data
.hotel_reservations[]
Hotel reservation information
hotelHotel nameYES< 100 AN
categoryHotel categoryNO< 100 AN
additional_data
.hotel_reservations[]
.address
Hotel address information
street_name Hotel street nameNO< 255 AN
street_numberHotel street numberNO< 255 AN
complementHotel address complementNO< 100 AN
cityHotel cityNO< 100 AN
stateHotel stateNO< 100 AN
zip_codeHotel zip codeNO< 100 AN
countryHotel country code, following ISO 3166-1 alfa-3NO= 3 AN
additional_data
.hotel_reservations[]
.rooms[]
Hotel rooms information
numberRoom numberNO< 100 AN
codeRoom codeNO< 100 AN
typeRoom typeNO< 100 AN
check_in_dateCheck-in date and time (format: YYYY-MM-DDTHH:MM:SS)YES< 17 AN
check_out_dateCheck-out date and time (format: YYYY-MM-DDTHH:MM:SS)NO< 17 AN
number_of_guestsNumber of guestsNO< 9999 N
board_basisFeeding regimeNO< 100 AN
additional_data
.hotel_reservations[]
.rooms[]
.guests[]
Hotel room guests information
nameGuest nameYES< 100 AN
documentGuest documentNO< 8 AN
document_typeGuest document type:
  • cpf
  • rg
  • passport
  • id
  • other
NO< 8 AN
birth_dateGuest birth date (format: YYYY-MM-DDTHH:MM:SS)NO< 17 AN
nationalityGuest nationality, following ISO 3166-1 alfa-3NO= 3 AN
additional_data
.events[]
Event information
nameEvent nameYES< 255 AN
dateEvent date and time (format YYYY-MM-DDTHH:MM:SS)YES< 17 AN
typeEvent type:
  • show
  • theater
  • movies
  • party
  • festival
  • course
  • sports
  • corporate
YES< 9 AN
subtypeEvent type detailsNO< 255 AN
additional_data
.events[]
.venue
Event venue information
nameVenue nameNO< 255 AN
street_nameVenue street nameNO< 255 AN
street_numberVenue street numberNO< 255 AN
cityVenue cityNO< 255 AN
stateVenue stateNO< 255 AN
countryVenue country code, following ISO 3166-1 alfa-3NO= 3 AN
capacityVenue capacityNO< 255 AN
additional_data
.events[]
.tickets[]
Event tickets information
idUnique ticket identifierNO< 255 AN
categoryTicket category:
  • student
  • senior
  • government
  • social
  • regular
YES< 10 AN
sectionTicket sectionNO< 255 AN
premiumPremium ticket indicatorNO< 5 T/F
additional_data
.events[]
.tickets[]
.attendee
Event atendee information
nameAtendee nameNO< 255 AN
documentAtendee documentYES< 100 AN
document_typeAtendee document type:
  • cpf
  • cnpj
  • rg
  • passport
  • other
NO< 100 AN
birth_dateAtendee birth date (format: YYYY-MM-DDTHH:MM:SS)NO< 17 AN
additional_data
.vehicle{}
Vehicle information for anti-fraud
makeVehicle brandYES< 63 AN
modelVehicle modelYES< 100 AN
vidUnique vehicle identifierNO< 17 AN
renavamRenavam identification of the vehicleNO< 11 AN
registrationVehicle licenseNO< 17 AN
typeDescribes the type of vehicle: car, bus, truck, motorcycle, aircraft, boat, bicycleNO< 15 AN
usageDescribes the use of the vehicle in the operation. Accepts values such as: private, commercial, experimental, government, military, instructionNO< 15 AN
additional_data
.vehicle{}
`.owner{}
Vehicle owner information for anti-fraud
nameName of vehicle ownerNO< 255 AN
tax_idVehicle owner documentYES< 100 AN

ATTENTION: Parameters that exist in payer, billing and shipment when not passed to the transaction creation service via additional_data, will be requested in the payment screen. If the parameters are passed in the transaction creation service, you will not be asked to fill in the fields on the payment screen.

Example

Below is an example of a REST payment creation request with Konduto risk analysis:

JSON
{
  "merchant_usn": "2423423434",
  "order_id": "2432342343",
  "installments": "1",
  "installment_type": "4",
  "authorizer_id": "2",
  "amount": "1300",
  "additional_data": {
    "anti_fraud": "enabled_before_auth",
    "visitor_id": "XKhas09jcks",
    "items": [
      {
        "title": "title1",
        "quantity": "1",
        "unit_price": "1111",
        "description": "description1",
        "id": "id1",
        "discount_amount": "111",
        "sku": "sku1",
        "creation_date": "11/01/2011"
      }
    ],
    "payer": {
      "name": "Marcos",
      "surname": "da Silva",
      "email": "[email protected]",
      "born_date": "1990-01-01T11:11:11",
      "creation_date": "02/03/2004",
      "is_new_client": "true",
      "is_vip_client": "true",
      "phones": [
        {
          "number": "333333333",
          "ddd": "22",
          "ddi": "11"
        },
        {
          "number": "666666666",
          "ddd": "55",
          "ddi": "44"
        }
      ],
      "identification_number": "47764543004"
    },
    "shipment": {
      "name": "Fernando",
      "surname": "Bezerra",
      "address": {
        "zip_code": "98764312",
        "street_number": "987",
        "street_name": "Rua Shipment",
        "complement": "ap. 587",
        "city": "São Shipment",
        "state": "MA",
        "country": "BRA"
      }
    },
    "passengers": [
      {
        "name": "Miguel",
        "last_name": "Herrera",
        "frequent_flyer_card": "frequentFlyerCard",
        "legal_document_type": "1",
        "legal_document": "12312312312",
        "birth_date": "1980-07-28T10:40:00",
        "customer_class": "customerClass",
        "nationality": "BRA",
        "is_frequent_traveler": "true",
        "is_with_special_needs": "true"
      }
    ],
    "connections": [
      {
        "company": "Verde",
        "class": "first",
        "from": "GRU",
        "to": "CGH",
        "departure_date": "2023-09-07T07:09:00",
        "journey_type": "OUTWARD",
        "origin_city": "San Juan",
        "destination_city": "Homero Lopez",
        "class_code": "VIP"
      },
      {
        "company": "Rosa",
        "class": "economy",
        "from": "BSB",
        "to": "VCP",
        "departure_date": "2022-10-21T16:39:00",
        "journey_type": "RETURN",
        "origin_city": "San Pablo",
        "destination_city": "Juanito Cruz",
        "class_code": "ECONOMY"
      }
    ],
    "hotel_reservations": [
      {
        "hotel": "Hotel Green Tree",
        "address": {
          "zip_code": "83392019",
          "street_number": "529",
          "street_name": "Rua Hoteleira",
          "complement": "ap. 019",
          "city": "San Hotel",
          "state": "AC",
          "country": "EN"
        },
        "rooms": [
          {
            "number": "902",
            "code": "ROOM902",
            "type": "King Size",
            "check_in_date": "2020-01-09T12:30:00",
            "check_out_date": "2020-01-19T13:00:00",
            "number_of_guests": "1",
            "board_basis": "Vegan",
            "guests": [
              {
                "name": "José Aníbal",
                "document": "98798798712",
                "document_type": "cpf",
                "birth_date": "12/03/1970",
                "nationality": "BRA"
              }
            ]
          }
        ],
        "category": "categoryhotel"
      }
    ],
    "billing_data": {
      "address": {
        "zip_code": "12341234",
        "street_number": "666",
        "street_name": "Rua Billing",
        "complement": "ap. 2369",
        "city": "São Billing",
        "state": "AM",
        "country": "BRA"
      }
    },
    "travel": {
      "transport_type": "flight",
      "expiration_date": "2022-02-14T01:30:00"
    },
    "discount_info": "Informações de desconto",
    "events": [
      {
        "name": "Evento de Rock",
        "date": "2021-11-22T09:28:00",
        "type": "show",
        "subtype": "music",
        "venue": {
          "name": "Debicard Hall",
          "street_name": "Rua do Evento",
          "street_number": "928",
          "city": "Jardinópolis",
          "state": "MS",
          "country": "DO",
          "capacity": "300"
        },
        "tickets": [
          {
            "id": "12h374612h4h",
            "category": "social",
            "section": "Seção 1",
            "premium": "true",
            "attendee": {
              "name": "Daniel Almeida",
              "document": "71728293945",
              "document_type": "other",
              "birth_date": "03/10/1990"
            }
          }
       ],
        "vehicle": {
          "make": "Bentley",
          "model": "Bacalar",
          "renavam": "87836695327",
          "registration": "ABC1234",
          "vid": "ABCDEFGH123456789",
          "type": "car",
          "usage": "private",
          "owner": {
            "tax_id": "540.830.640-21",
            "name": "Cicero"
          }
        }
      }
    ]
  }
}

CyberSource

Source: https://docs.apis-fiserv.com/latam/docs/cybersource

Required credentials

As mentioned in "Overview - Required credentials", each institution has credentials that must be obtained for the integration. CyberSource's services demand credentials below:

  • Merchat ID (Merchant Code) - Merchant's key to access CyberSource's back office
  • Shared Secret - Merchant's key to access CyberSource's back office. If key is not registered, Carat Portal will not be able to query status CyberSource. In case any risk analysis transaction is with status pending, the decision configured by Merchant will be executed and Carat Portal will confirm or Carat Portal will cancel the transaction.
  • Key ID - Identification of the Shared Secret.
  • Org ID - * Key used to collect fingerprint data from the payer's browser.
  • p12 certificate - Security certification for orders analysis. The file should have the same name as Merchant ID in CyberSource system.
  • p12 Certificate Password - Password for p12 certificate. Defined on the CyberSource portal.

IMPORTANT:
The credentials above should be obtained from CyberSource. It is recommended to contact CyberSource and receive guidance on how to obtain the credentials. Then, the merchant should contact Carat Portal support and send the credentials to register in Carat Portal.

To obtain the Shared Secret and the Key ID follow the instructions at:

https://developer.cybersource.com/api/developer-guides/dita-gettingstarted/authentication/createSharedKey.html

To obtain the .p12 certificate, follow the instructions at:

https://support.cybersource.com/s/article/How-to-Generate-a-Simple-Order-API-Security-Key

Webhook URL Configuration

In order for us to receive status updates from the risk analysis transactions that are in manual revision, it is necessary to configure the Webhook URL on the CyberSource configuration environment.

Production URL:

https://prod.api.fiservapps.com/esitef-cybersource/processarPost.se?src=cybersource

Homologation URL:

https://prod.api.fiservapps.com/esitef-hml-cybersource/processarPost.se?src=cybersource

This URL must be configured for any status changes. To perform this configuration, please contact CyberSource Support.

Supported Carat Portal interfaces

Allowed card brands

Listed below the authorizers supported by CyberSource:

  • Visa
  • MasterCard
  • American Express
  • Discover
  • Diners Club
  • Carte Blanche
  • JCB
  • EnRoute
  • JAL
  • Delta
  • Dankort
  • Laser
  • Carte Bleue
  • Carta Si
  • Encoded account number
  • UATP
  • GE Money UK card
  • Style
  • Hipercard
  • Aura
  • Elo
  • Elo Débito (Auxílio Emergencial)

Refund notification due to fraud

When canceling a payment due to fraud, you can notify Cybersource what happened and mark the transaction as fraudulent.

Currently, only the REST Cancellation interface can send complementary data to CyberSource.
For this, it's necessary to send the following fields:

FieldDescription
anti_fraudObject with anti-fraud data.
chargebackInforms whether the notification to Cybersource will be made or not.
Allowed values: true ou false
Default value: false
marked_dataInforms which fields will be relevant to notify to Cybersource that this transaction was a fraud attempt.

This fields receives an array of values. For example: "marked_data":["ship_address","customer_phone","customer_email"].

Fields that can be informed:
  • account_key_hash
  • customer_account_id
  • customer_email
  • customer_idaddress
  • customer_phone
  • device_fingerprint
  • ship_address
If no content is sent, the default values assumed by Cybersource will be account_key_hash, customer_email and ship_address.

Example:

To use this example, don't forget to define the variable {{url}} with the value

Bash
curl 
--request PUT "https://esitef-homologacao.softwareexpress.com.br/e-sitef/api/v1/cancellations/1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
   "card":{
      "security_code":"123",
      "number":"5555555555555555",
      "expiry_date":"1222"
   },
   "amount":"1000",
   "anti_fraud":{
      "chargeback":"true",
      "marked_data":[
         "account_key_hash",
         "customer_account_id",
         "customer_email"
      ]
   }
}
--verbose

Anti-fraud parameter for CyberSource

Below is the list of anti-fraud parameters processed by CyberSource. Some parameters have different treatments depending on the institution and the "Additional detail" column that specifies CyberSource's treatment. For details of each parameter, see the anti-fraud parameters list.

Property
Carat Portal
Property
CyberSource
Additional detail
currencyPurchaseTotals_currency-
itemsObject json Array (Learn more)
payerObject json Array (Learn more)
Present only on REST calls
shipmentObject json Array (Learn more)
billing_dataObject json Array (Learn more)
If informed, it will take precedence over the data that is also informed in the payer
browserObject json (Learn more)
travelObject json (Learn more). Required, if the item is an air ticket
passengersObject json Array (Learn more)
connectionsObject json Array (Learn more)
mddObject json Array (Learn more). The allowed values can be found here.

Object items

Property
Carat Portal
Property
CyberSource
Additional detail
idItem_#_IDString with numeric content
skuItem_#_productSKURequired
titleItem_#_productName-
quantityItem_#_Quantity-
unit_priceItem_#_unitPriceRequired
category_idItem_#_productCodeAllowed values:
  • adult_content
  • default
  • electronic_good
  • electronic_software
  • gift_certificate
  • handling_only
  • service
  • shipping_and_handling
  • shipping_only
  • stored_value
  • subscription
. Required.

When the used value is not default, the fields item_#_quantity, item_#_productName e item_#_productSKU are mandatory!
tax_amountItem_#_taxAmount-

Object payer

Note: Present only on REST calls

Property
Carat Portal
Property
CyberSource
Additional detail
namebillTo_firstName-
surnamebillTo_lastName-
emailbillTo_email-
addressObject json (Learn more)
phonesObject json Array (Learn more)
documentsObject json Array (Learn more)

Object address of payer

Property
Carat Portal
Property
CyberSource
Additional detail
street_name + street_numberstreet1-
complementbillTo_street2-
citybillTo_city-
statebillTo_state-
zip_codebillTo_postalCode-
countrybillTo_country-

Object phones of payer

Property
Carat Portal
Property
CyberSource
Additional detail
ddi + ddd + billTo_numberphoneNumber-

Object documents of payer

Property
Carat Portal
Property
CyberSource
Additional detail
numberbillTo_customerID-
numberbillTo_personalID-

Object shipment

Property
Carat Portal
Property
CyberSource
Additional detail
nameshipTo_firstName-
surnameshipTo_lastName-
addressObject json (Learn more)
phonesObject json Array (Learn more)

Object address of shipment

Property
Carat Portal
Property
CyberSource
Additional detail
street_nameshipto_street1Must send the street number and the complement. Use the keywords AP (apartment), APTO (apartment), LOTE (lot), CASA (house) or BLOCO (block).
street_name2shipto_street2Must send the street number and the complement. Use the keywords AP (apartment), APTO (apartment), LOTE (lot), CASA (house) or BLOCO (block).
street_numbershipto_street1-
apartmentWill be appended to the shipto_street2-
complementWill be appended to the shipto_street2-
cityshipto_city-
stateshipto_state-
countryshipto_countryMust use the ISO pattern
zip_codeshipto_postalCode-
building_numbershipto_building_number-

Object phones of shipment

Property
Carat Portal
Property
CyberSource
Additional detail
ddishipTo_phoneNumber-
dddshipTo_phoneNumber-
numbershipTo_phoneNumber-

Object billing_data

Note: If informed, it will take precedence over the data that is also informed in the payer

Property
Carat Portal
Property
CyberSource
Additional detail
addressObject json Array (Learn more)
phonesObject json Array (Learn more)

Object address of billing_data

Property
Carat Portal
Property
CyberSource
Additional detail
street_namebillTo_street1Must send the street number and the complement. Use the keywords AP (apartment), APTO (apartment), LOTE (lot), CASA (house) or BLOCO (block).
street_name2billTo_street2Must send the street number and the complement. Use the keywords AP (apartment), APTO (apartment), LOTE (lot), CASA (house) or BLOCO (block).
street_numberbillTo_street1-
apartmentWill be appended to the billTo_street2-
complementWill be appended to the billTo_street2-
citybillTo_city-
statebillTo_state-
countrybillTo_countryMust use the ISO pattern
zip_codebillTo_postalCode-

Object phones of billing_data

Property
Carat Portal
Property
CyberSource
Additional detail
ddibillTo_phoneNumber-
dddbillTo_phoneNumber-
numberbillTo_phoneNumber-

Object browser

Property
Carat Portal
Property
CyberSource
Additional detail
ip_addressbillTo_ipAddressIf this field is not sent, the client's IP will be sent

Object travel

Property
Carat Portal
Property
CyberSource
Additional detail
routedecisionManager_travelData_completeRoute-
journey_typedecisionManager_travelData_journeyType-
departure_date_timedecisionManager_travelData_journeyType-

Object passengers

Property
Carat Portal
Property
CyberSource
Additional detail
iditem_#_passengerId-
nameitem_#_passengerFirstNameFill with passenger's first name
last_nameitem_#_passengerLastNameRequired
frequente_flyer_carditem_#_passengerIDThe field billTocustomerID can hold the same information
emailitem_#_passengerEmailMust be unique, otherwise, the transaction will be refused by CyberSource with reason code 102.
statusitem_#_passengerStatus-
typeitem_#_passengerType-
unit_priceitem_#_unitPrice-
phonesObject json Array (Learn more)

Object phones of passengers

Property
Carat Portal
Property
CyberSource
Additional detail
ddiitem_#_passengerPhone-
ddditem_#_passengerPhone-
numberitem_#_passengerPhone-

Object connections

Property
Carat Portal
Property
CyberSource
Additional detail
flight_datedecisionManager_travelData_departureDateTimethe following formats are allowed:
  • yyyy-MM-dd HH:mm z
  • yyyy-MM-dd hh:mm a z
  • yyyy-MM-dd hh:mma z
Consider:
  • HH = time in 24 hours format
  • hh = time in 12 hours format
  • a = am or pm (case insensitive)
  • z = timezone of departure flight (if is the offset according to GMT, use the format: GMT-03:00)
fromdecisionManager_travelData_leg_#_originUse this reference in order to get the airports codes.
todecisionManager_travelData_leg_#_destinationUse this reference in order to get the airports codes. It's possible to consider the complete route with the field decisionManager_travelData_completeRoute. If all those fields are sent, the completeRoute field will be used.
departure_datedecisionManager_travelData_departureDateTime-

Object mdd

Property
Carat Portal
Property
CyberSource
Additional detail
idmerchantDefinedData_mddField_idIt can range from 1 to 100 defined by the merchant in an agreement with Cybersource.
valuemerchantDefinedData_mddField_valueValue of the field defined by the merchant in an agreement with Cybersource.

mdd values

The MDDs are additional data that help with the accuracy of Cybersource's anti-fraud analysis and sending them is highly recommended. There are three MDD ID ranges:

  • Between 1 to 4, refers to MDD that will be filled out by Carat Portal itself.
  • Between 5 and 20, refers to MDD that are independent of store activity.
  • Between 21 and 1000, refers to MDD that are dependent of the store's activity and the filling must follow the guidelines of Cybersource.
    The allowed values ​​of id and the description of the value content are:
IDResumeDescription
5Sales channelSales channel of the product/service: Web, App, Ticket Office, etc.)
6OSOperational System used by the customer: Android, iOS, Windows, etc.
7Application VersionMerchant's Application Version : 1.0.12
8Provisioned for future dataProvisioned for future data.
9Provisioned for future dataProvisioned for future data.
10Provisioned for future dataProvisioned for future data.
11Name used in registrationNome registrado no cadastro (Obs: em caso de compra guest`* não enviar valor por gentileza)
12CPF used in registrationCPF registrado no cadastro.
13Client register age in daysTempo de cadastro do cliente em dias. Formato: NNNNN
14Days since first orderQuantidade de dias passados desde o primeiro pedido. Formato: NNNNN
15Days since last orderQuantidade de dias passados desde o último pedido. Formato: NNNNN
16Total orders quantityQuantidade total de pedidos realizados pelo CPF cadastrado. Formato: NNNNN
17Days since last registration changeQuantidade de dias passados desde a última alteração cadastral. Formato: NNNNN
18Provisioned for future dataProvisioned for future data.
19Provisioned for future dataProvisioned for future data.
20Provisioned for future dataProvisioned for future data.

ATTENTION: Parameters that exist in payer, billing and shipment when not passed to the transaction creation service via additional_data, will be requested in the payment screen. If the parameters are passed in the transaction creation service, you will not be asked to fill in the fields on the payment screen.

Example

Example of HTML payment request with risk analysis on CyberSource

JSON
{
  "merchant_id": "CYBERSRCPERMI1",
  "order_id": "1629744599356",
  "amount": "1000",
  "transaction_type": "payment",
  "installments": "1",
  "installment_type": "4",
  "authorizer_id": "2",
  "amount": "21800",
  "additional_data": {
    "anti_fraud": "enabled_before_auth",
    "items": [
      {
        "id": "1",
        "title": "bola 1",
        "quantity": "1",
        "unit_price": "50000",
        "category_id": "others",
        "sku": "123"
      },
      {
        "id": "2",
        "title": "bola 2",
        "quantity": "2",
        "unit_price": "25000",
        "category_id": "others",
        "sku": "124"
      }
    ],
    "payer": {
      "name": "Joaquim",
      "surname": "Severino",
      "email": "[email protected]",
      "phones": [
        {
          "number": "123123123",
          "ddd": "11",
          "ddi": "34"
        }
      ],
      "documents": [
        {
          "type": "CPF",
          "number": "09719224703"
        }
      ],
      "address": {
        "zip_code": "02932900",
        "street_number": "123",
        "street_name": "rua bill",
        "city": "sao paulo",
        "state": "SP",
        "country": "BR",
        "complement": "complemento"
      }
    },
    "shipment": {
      "name": "Joao",
      "surname": "Silva Ship",
      "address": {
        "zip_code": "12345678",
        "street_number": "Rua do Exemplo",
        "street_name": "123",
        "apartment": "901",
        "city": "São Paulo",
        "complement": "Sobreloja 3",
        "country": "BR",
        "state": "SP"
      },
      "phones": [
        {
          "number": "123123123",
          "ddd": "11",
          "ddi": "34"
        }
      ]
    },
    "browser": {
      "ip_address": "200.162.232.200"
    },
    "mdd": [
      {
        "id": "5",
        "value": "Gichê"
      },
      {
        "id": "6",
        "value": "Linux"
      }
    ]
  }
}

REST Examples

Example 1

Example of request of REST payment with risk analisis in CyberSource hightlighted to "Items".

To use this example, don't forget to define the variable {{url}} with the value

Bash
curl  --location --request POST 'https://esitef-homologacao.softwareexpress.com.br/e-sitef/api/v1/transactions' \
--header 'merchant_id: xxxxxxxxxxxxxxxxx' \
--header 'merchant_key: xxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
   "merchant_usn": "11063843776",
   "order_id": "1629828190786",
   "installments": "1",
   "installment_type": "4",
   "authorizer_id": "2",
   "amount": "9700",
   "additional_data": {
      "anti_fraud": "enabled_before_auth",
      "items": [
         {
            "id": "1",
            "title": "bola 1",
            "quantity": "1",
            "unit_price": "50000",
            "category_id": "others",
            "sku": "123"
         },
         {
            "id": "2",
            "title": "bola 2",
            "quantity": "2",
            "unit_price": "25000",
            "category_id": "others",
            "sku": "124"
         }
      ],
      "payer": {
         "name": "Joaquim",
         "surname": "Severino",
         "email": "[email protected]",
         "phones": [
            {
               "number": "123123123",
               "ddd": "11",
               "ddi": "34"
            }
         ],
         "documents": [
            {
               "type": "CPF",
               "number": "09719224703"
            }
         ],
         "address": {
            "zip_code": "02932900",
            "street_number": "123",
            "street_name": "rua bill",
            "city": "sao paulo",
            "state": "SP",
            "country": "BR",
            "complement": "complemento"
         }
      },
      "shipment": {
         "name": "Joao",
         "surname": "Silva Ship",
         "address": {
            "zip_code": "12345678",
            "street_number": "Rua do Exemplo",
            "street_name": "123",
            "apartment": "901",
            "city": "São Paulo",
            "complement": "Sobreloja 3",
            "country": "BR",
            "state": "SP"
         },
         "phones": [
            {
               "number": "123123123",
               "ddd": "11",
               "ddi": "34"
            }
         ]
      },
      "browser": {
         "ip_address": "200.162.232.200"
      }
   }
}'

Example of response of REST payment with risk analisis in CyberSource hightlighted to "Items".

JSON
{
  "code": "0",
  "message": "OK. Transaction successful.",
  "payment": {
    "status": "NOV",
    "nit": "<nit>",
    "order_id": "1629828190786",
    "merchant_usn": "11063843776",
    "amount": "9700"
  }
}

Example of request of REST payment effectuation with risk analisis in CyberSource hightlighted to "Items".

To use this example, don't forget to define the variable {{url}} with the value

Bash
curl  --location --request POST 'https://esitef-homologacao.softwareexpress.com.br/e-sitef/api/v1/payments/<nit>' \
--header 'merchant_id: xxxxxxxxxxxxxxxxx' \
--header 'merchant_key: xxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
   "card": {
      "number": "455182001234512345",
      "expiry_date": "1122",
      "security_code": "123",
      "holder": "Abdul Natchos"
   }
}'

Example of response of REST payment effectuation with risk analisis in CyberSource hightlighted to "Items".

JSON
{
  "code": "0",
  "message": "OK. Transaction successful.",
  "payment": {
    "authorizer_code": "000",
    "authorizer_message": "Transacao OK!",
    "status": "CON",
    "nit": "<nit>",
    "order_id": "1629828190786",
    "customer_receipt": "...",
    "merchant_receipt": "...",
    "authorizer_id": "2",
    "acquirer_id": "125",
    "acquirer_name": "Cielo",
    "authorizer_date": "14/07/2021T12:33",
    "authorization_number": "145622",
    "merchant_usn": "11063843776",
    "esitef_usn": "210714076044700",
    "sitef_usn": "145622",
    "host_usn": "000145622   ",
    "amount": "9700",
    "payment_type": "C",
    "issuer": "1",
    "authorizer_merchant_id": "020000080750001",
    "terminal_id": "ES000045",
    "payment_date": "14/07/2021T12:33",
    "analysis": {
      "status": "ACC",
      "code": "100",
      "message": "ACCEPT | Score: 88"
    }
  }
}

Example 2

Example of request of REST payment with risk analisis in CyberSource highlighted "Items" and "passenger":

To use this example, don't forget to define the variable {{url}} with the value

Bash
curl  --location --request POST 'https://esitef-homologacao.softwareexpress.com.br/e-sitef/api/v1/transactions' \
--header 'merchant_id: xxxxxxxxxxxxxxxxx' \
--header 'merchant_key: xxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
   "merchant_usn": "11063843776",
   "order_id": "1629828190787",
   "installments": "1",
   "installment_type": "4",
   "authorizer_id": "2",
   "amount": "52912",
   "additional_data": {
      "anti_fraud": "enabled_before_auth",
      "anti_fraud_criteria": "ON_SUCCESS",
      "items": [
         {
            "title": "bola 1",
            "quantity": "1",
            "unit_price": "50000",
            "tax_amount": "25",
            "category_id": "default",
            "id": "1",
            "sku": "1234"
         },
         {
            "title": "bola 2",
            "quantity": "1",
            "unit_price": "50000",
            "tax_amount": "25",
            "category_id": "default",
            "id": "0",
            "sku": "2552"
         }
      ],
      "payer": {
         "name": "Joaquim",
         "surname": "Silva Severino",
         "email": "[email protected]",
         "address": {
            "zip_code": "01107001",
            "street_number": "123",
            "street_name": "Rua Augusta",
            "apartment": "69",
            "complement": "Ao lado do hotel",
            "city": "São Paulo",
            "state": "SP",
            "country": "br"
         },
         "phones": [
            {
               "number": "998844551",
               "ddd": "11",
               "ddi": "55"
            }
         ],
         "documents": [
            {
               "type": "cpf",
               "number": "68408639307"
            }
         ]
      },
      "shipment": {
         "type": "1",
         "cost": "2000",
         "name": "Joaquim",
         "surname": "Silva",
         "address": {
            "zip_code": "12345678",
            "street_number": "123",
            "street_name": "Rua do Exemplo",
            "complement": "CASA",
            "city": "São Paulo",
            "state": "SP",
            "country": "br",
            "county": "jardins"
         },
         "phones": [
            {
               "number": "123123123",
               "ddd": "11",
               "ddi": "34"
            }
         ]
      },
      "passengers": [
         {
            "id": "3354688841",
            "name": "Joaquim",
            "last_name": "Severino",
            "email": "[email protected]",
            "customer_class": "standard",
            "unit_price": "100000",
            "type": "ADT",
            "phone": {
               "number": "998844551",
               "ddd": "11",
               "ddi": "55"
            }
         }
      ],
      "mdd": [
         {
            "id": "5",
            "value": "Gichê"
         },
         {
            "id": "6",
            "value": "Linux"
         }
      ],
      "travel": {
         "route": "GIG-SFO:SFO-LAX",
         "departure_date_time": "2019-12-19T09:00:00",
         "journey_type": "Round_Trip"
      },
      "browser": {
         "ip_address": "200.162.232.200"
      }
   }
}'

Example of response of REST payment with risk analisis in CyberSource highlighted "Items" and "passenger":

JSON
{
  "code": "0",
  "message": "OK. Transaction successful.",
  "payment": {
    "status": "NOV",
    "nit": "<nit>",
    "order_id": "1629828190787",
    "merchant_usn": "11063843776",
    "amount": "33012"
  }
}

Example of request from payment effectivation of REST payment with risk analisys on CyberSource highlighted "Items" and "passenger":

batch
curl --location --request POST 'https://esitef-homologacao.softwareexpress.com.br/e-sitef/api/v1/payments/<nit>' \
--header 'merchant_id: xxxxxxxxxxxxxxxxx' \
--header 'merchant_key: xxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
   "card": {
      "number": "455182001234512345",
      "expiry_date": "1122",
      "security_code": "123",
      "holder": "Joaquim S Severino"
   }
}'

Example of response from payment effectivation of REST payment with risk analisys on CyberSource highlighted "Items" and "passenger":

JSON
{
  "code": "0",
  "message": "OK. Transaction successful.",
  "payment": {
    "authorizer_code": "000",
    "authorizer_message": "Transacao OK!",
    "status": "CON",
    "nit": "<nit>",
    "order_id": "1629828190787",
    "customer_receipt": "...",
    "merchant_receipt": "...",
    "authorizer_id": "2",
    "acquirer_id": "125",
    "acquirer_name": "Cielo",
    "authorizer_date": "14/07/2021T12:00",
    "authorization_number": "145487",
    "merchant_usn": "11063843776",
    "esitef_usn": "210714076041520",
    "sitef_usn": "145487",
    "host_usn": "000145487   ",
    "amount": "33012",
    "payment_type": "C",
    "issuer": "1",
    "authorizer_merchant_id": "020000080750001",
    "terminal_id": "ES000085",
    "payment_date": "14/07/2021T12:00",
    "analysis": {
      "status": "ACC",
      "code": "100",
      "message": "ACCEPT | Score: 90"
    }
  }
}

Example 3

Example of request Review using simulator

To use this example, don't forget to define the variable {{url}} with the value

Bash
curl  --location --request POST 'https://esitef-homologacao.softwareexpress.com.br/e-sitef/api/v1/transactions' \
--header 'merchant_id: xxxxxxxxxxxxxxxxx' \
--header 'merchant_key: xxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
   "merchant_usn": "11063843776",
   "order_id": "1627061279316",
   "installments": "1",
   "installment_type": "4",
   "authorizer_id": "2",
   "amount": "19612",
   "additional_data": {
      "anti_fraud": "enabled_before_auth",
      "payer": {
         "name": "Joaquim",
         "surname": "Severino",
         "email": "[email protected]",
         "phones": [
            {
               "number": "123123123",
               "ddd": "11",
               "ddi": "34"
            }
         ],
         "documents": [
            {
               "type": "CPF",
               "number": "09719224703"
            }
         ],
         "address": {
            "zip_code": "02932900",
            "street_number": "123",
            "street_name": "rua bill",
            "city": "sao paulo",
            "state": "SP",
            "country": "BR",
            "complement": "complemento"
         }
      },
      "shipment": {
         "name": "Joao",
         "surname": "Silva Ship",
         "address": {
            "zip_code": "12345678",
            "street_number": "Rua do Exemplo",
            "street_name": "123",
            "apartment": "901",
            "city": "São Paulo",
            "complement": "Sobreloja 3",
            "country": "BR",
            "state": "SP"
         },
         "phones": [
            {
               "number": "123123123",
               "ddd": "11",
               "ddi": "34"
            }
         ]
      },
      "browser": {
         "ip_address": "200.162.232.200"
      }
   }
}'

Example of response from Review using simulator

JSON
{
  "code": "0",
  "message": "OK. Transaction successful.",
  "payment": {
    "status": "NOV",
    "nit": "<nit>",
    "order_id": "1627061274344",
    "merchant_usn": "11063843776",
    "amount": "26312"
  }
}

Example of request to effectuate payment from Review using simulator

To use this example, don't forget to define the variable {{url}} with the value

Bash
curl  --location --request POST 'https://esitef-homologacao.softwareexpress.com.br/e-sitef/api/v1/payments/<nit>' \
--header 'merchant_id: xxxxxxxxxxxxxxxxx' \
--header 'merchant_key: xxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
   "card": {
      "number": "455182001234512345",
      "expiry_date": "1122",
      "security_code": "123"
   }
}'

Example of response from action of payment effectuation of Review using simulator

JSON
{
  "code": "0",
  "message": "OK. Transaction successful.",
  "payment": {
    "authorizer_code": "000",
    "authorizer_message": "Transacao OK!",
    "status": "PPC",
    "nit": "<nit>",
    "order_id": "1627061274344",
    "customer_receipt": "...",
    "merchant_receipt": "...",
    "authorizer_id": "2",
    "acquirer_id": "125",
    "acquirer_name": "Cielo",
    "authorizer_date": "23/07/2021T14:28",
    "authorization_number": "235179",
    "merchant_usn": "11063843776",
    "esitef_usn": "210723076775210",
    "sitef_usn": "235179",
    "host_usn": "000235179   ",
    "amount": "26312",
    "payment_type": "C",
    "issuer": "1",
    "authorizer_merchant_id": "020000080750001",
    "terminal_id": "ES000011",
    "payment_date": "23/07/2021T14:28",
    "analysis": {
      "status": "REV",
      "code": "100",
      "message": "REVIEW | Score: 0"
    }
  }
}

Example 4

Example of request for Reject using simulator

To use this example, don't forget to define the variable {{url}} with the value

Bash
curl  --location --request POST 'https://esitef-homologacao.softwareexpress.com.br/e-sitef/api/v1/transactions' \
--header 'merchant_id: xxxxxxxxxxxxxxxxx' \
--header 'merchant_key: xxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
   "merchant_usn": "11063843776",
   "order_id": "1627061470845",
   "installments": "1",
   "installment_type": "4",
   "authorizer_id": "2",
   "amount": "82513",
   "additional_data": {
      "anti_fraud": "enabled_before_auth",
      "payer": {
         "name": "Joaquim",
         "surname": "Severino",
         "email": "[email protected]",
         "phones": [
            {
               "number": "123123123",
               "ddd": "11",
               "ddi": "34"
            }
         ],
         "documents": [
            {
               "type": "CPF",
               "number": "09719224703"
            }
         ],
         "address": {
            "zip_code": "02932900",
            "street_number": "123",
            "street_name": "rua bill",
            "city": "sao paulo",
            "state": "SP",
            "country": "BR",
            "complement": "complemento"
         }
      },
      "shipment": {
         "name": "Joao",
         "surname": "Silva Ship",
         "address": {
            "zip_code": "12345678",
            "street_number": "Rua do Exemplo",
            "street_name": "123",
            "apartment": "901",
            "city": "São Paulo",
            "complement": "Sobreloja 3",
            "country": "BR",
            "state": "SP"
         },
         "phones": [
            {
               "number": "123123123",
               "ddd": "11",
               "ddi": "34"
            }
         ]
      },
      "browser": {
         "ip_address": "200.162.232.200"
      }
   }
}'

Example of response for Reject using simulator

JSON
{
  "code": "0",
  "message": "OK. Transaction successful.",
  "payment": {
    "status": "NOV",
    "nit": "<nit>",
    "order_id": "1627061470845",
    "merchant_usn": "11063843776",
    "amount": "82513"
  }
}

Example of request for payment effectuation for Reject using simulator

Bash

curl --location --request POST 'https://esitef-homologacao.softwareexpress.com.br/e-sitef/api/v1/payments/<nit>' \
--header 'merchant_id: xxxxxxxxxxxxxxxxx' \
--header 'merchant_key: xxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
   "card": {
      "number": "455182001234512345",
      "expiry_date": "1122",
      "security_code": "123"
   }
}

Example of response for payment effectuation for Reject using simulator

JSON
{
  "code": "998",
  "message": "Denied by antifraud",
  "payment": {
    "authorizer_code": "100",
    "status": "NEG",
    "nit": "<nit>",
    "analysis": {
      "status": "REJ",
      "code": "100",
      "message": "REJECT | Score: 0"
    }
  }
}

Example 5

Example of Request with invalid Item Id

To use this example, don't forget to define the variable {{url}} with the value

Bash
curl  --location --request POST 'https://esitef-homologacao.softwareexpress.com.br/api/v1/transactions' \
--header 'merchant_id: xxxxxxxxxxxxxxxxx' \
--header 'merchant_key: xxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
   "merchant_usn": "11063843776",
   "order_id": "1627062021650",
   "installments": "1",
   "installment_type": "4",
   "authorizer_id": "2",
   "amount": "21800",
   "additional_data": {
      "anti_fraud": "enabled_before_auth",
      "items": [
         {
            "id": "1",
            "title": "bola 1",
            "quantity": "1",
            "unit_price": "50000",
            "category_id": "others",
            "sku": "123"
         },
         {
            "id": "2A",
            "title": "bola 2",
            "quantity": "2",
            "unit_price": "25000",
            "category_id": "others",
            "sku": "124"
         }
      ],
      "payer": {
         "name": "Joaquim",
         "surname": "Severino",
         "email": "[email protected]",
         "phones": [
            {
               "number": "123123123",
               "ddd": "11",
               "ddi": "34"
            }
         ],
         "documents": [
            {
               "type": "CPF",
               "number": "09719224703"
            }
         ],
         "address": {
            "zip_code": "02932900",
            "street_number": "123",
            "street_name": "rua bill",
            "city": "sao paulo",
            "state": "SP",
            "country": "BR",
            "complement": "complemento"
         }
      },
      "shipment": {
         "name": "Joao",
         "surname": "Silva Ship",
         "address": {
            "zip_code": "12345678",
            "street_number": "Rua do Exemplo",
            "street_name": "123",
            "apartment": "901",
            "city": "São Paulo",
            "complement": "Sobreloja 3",
            "country": "BR",
            "state": "SP"
         },
         "phones": [
            {
               "number": "123123123",
               "ddd": "11",
               "ddi": "34"
            }
         ]
      },
      "browser": {
         "ip_address": "200.162.232.200"
      }
   }
}'

Example of Response with Invalid Item Id

JSON
{
  "code": "350",
  "message": "invalid item id value",
  "payment": {
    "status": "INV",
    "nit": "<nit>",
    "order_id": "1627062021650",
    "merchant_usn": "11063843776",
    "amount": "21800"
  }
}

Response Codes

As explained in the chapter "Risk analysis response", the codes below are CyberSource's specific responses.

CodeDescription
100Transaction performed successfully and approved by the Decision Manager.
101One or more of the required fields are missing in the request.
102One or more of the required fields contains invalid data.
150Error: General System Failure
151Error: The request was received but timeout occurred. This error does not include timeout between client and server.
152Error: The request was received, but a service did not finish in a timely manner.
202Expired card

ClearSale

Source: https://docs.apis-fiserv.com/latam/docs/clearsale

Required credentials

As mentioned in "Overview - Required credentials", each institution has credentials that must be obtained for the integration. ClearSale's services demand credentials below:

  • Login (Merchant ID) - Login of the ClearSale merchant registration.
  • Password (Merchant Code) - Password of the store registration at ClearSale.

IMPORTANT:
The credentials above should be obtained from ClearSale. It is recommended to contact ClearSale and receive guidance on how to obtain the credentials. Then, the merchant should contact Carat Portal support and send the credentials to register in Carat Portal.

Webhook URL Configuration

In order for us to receive status updates from the risk analysis transactions, it is necessary to configure the webhook URL on the Konduto configuration environment.

Production URL:

https://esitef-ec.softwareexpress.com.br/e-sitef/processarPost.se?src=clearsale_rest

URL de Homologação:

https://esitef-homologacao.softwareexpress.com.br/e-sitef/processarPost.se?src=clearsale_rest

This URL must be configured for any status changes. To perform this configuration, please contact ClearSale Support.

Starting a transaction with Anti-Fraud

After performing the registration alignment with Carat Portal support to enable integration with the anti-fraud service, at the start of a transaction REST Payment (Learn more) or REST Pre Authorization (Learn more) the merchant must configure the property anti_fraud and send the appropriate anti-fraud parameters (depends on the institution that your merchant was set up), both properties must be within the scope of the additional_data object.

The anti_fraud field determines how anti-fraud is applied and can contain the following values:

  • enabled_before_auth - Risk analysis will be performed BEFORE authorization of the payment. If the analysis is rejected, payment will not be started. In the case of pre-authorization with non-SiTef routings, if the risk analysis remains as a manual analysis, Carat leaves the transaction in the PPC (Payment Pending Confirmation) state and waits for a conclusion of the manual analysis.
  • enabled_after_auth - Risk analysis will be performed AFTER authorization of the payment. If the analysis is rejected, the payment that has already been authorized will be canceled. In the case of pre-authorization with non-SiTef routings, Carat leaves the transaction in the PPC (Payment Pending Confirmation) state and waits for a conclusion of the manual analysis.

NOTE:
Transactions that are pending payment can be confirmed or undone by time limit. Learn more.

Realtime ClearSale Configuration

After performing the registration adjustment with the carat support team to enable the integration with the clearSale service,
the store must initiate a REST or HTML payment transaction by sending the "anti_fraud" property and sending the parameters
additional data collected for risk analysis of the transaction being sent in the additional_data object.

ClearSale service versions supported by payment interface:

ClearSale - Total

ClearSale - RealTime

ClearSale REST Anti-Fraud Parameters

Below is a list of anti-fraud parameters processed by ClearSale.

Attention:
The fields below are specific to the ClearSale integration and their mandatory criteria and format refer to the validations made by the fraud analysis institution. It is important that these criteria are respected for an effective and accurate analysis.

ParameterDescriptionMandatoryFormat
additional_data Additional transaction data
b2b_b2cEcommerce type.NO3 A
item_amountTotal Value of Items in centsYES<1024 N
total_order_amountTotal Order Amount in cents. Composed of the Total Value of the Items + Shipping Value + Possible Interest Value of the PurchaseYES<1024 N
giftIdentifies if the order is a gift:
1 - is a gift
0 - is not a gift
If absent, the value 0 is assumed.
NO1 N
gift_messageGift MessageNO<1024 AN
obsOrder ObservationNO<1024 AN
sla_customMaximum Order Review SLA Minutes Value, if anyNO4 N
originOrder Origin Channel (ex: TELE SALES, WEBSITE, APP, etc.)YES<150 A
channel_idComplementary Source Channel, if any. (ex: ANDROID, IOS, etc.)NO<1024 AN
reservation_dateDate of First Flight of the Request (in case of airline tickets).NOyyyy-mm-ddThh:mm:ss
nationalityNationalityNO<50 AN
productClearSale product identifier:
-1 (Others)
1 (Application)
3 (Total)
4 (Total Garantido)
9 (Score)
10 (Realtime Decision)
11 (Tickets)
NO2N
bank_authenticationBank authentication typeNO<1024 AN
sub_acquirerSub-acquirer nameNO<1024 AN
list_type_idList Type:
1 - Unregistered List
2 - Baby Shower List
3 - Wedding List
4 - Wish List
5 - Birthday List
6 - Bridal Shower
NO1N
list_idList ID in StoreNO<200 AN
additional_data
.payer
Buyer related information
emailBuyer's emailYES<1024 AN
nameBuyer nameYES<150 A
legal_documentBuyer's document numberYES<100 A
additional_data
.browser
Information relating to the buyer's browser
ip_addressOrder IPNO<1024 AN
additional_data
.purchase_information_data
Purchase related information
last_date_change_inserted_mailDate of last email changeNOyyyy-mm-ddThh:mm:ss
last_date_change_passwordDate of last password changeNOyyyy-mm-ddThh:mm:ss
last_date_change_phoneDate of last phone changeNOyyyy-mm-ddThh:mm:ss
last_date_change_mobile_phoneMobile phone last change dateNOyyyy-mm-ddThh:mm:ss
last_date_inserted_addressDate of last address changeNOyyyy-mm-ddThh:mm:ss
purchase_loggedFlag that indicates purchase with logged in user:
1 for YES
0 for NO
If absent or invalid, value 0 is assumed
NO1N
emailRegistration EmailNO<1024 AN
loginAccess LoginNO<1024 AN
additional_data
.social_network
Information about linked social networks
social_network.opt_in_buy_and_trustFlag indicating if the customer accepts to join the Buy and Trust movement:
1 for YES
0 for NO
If absent or invalid, value 0 is assumed
NO1N
social_network.type_social_networkLinked Social Network Identifier:
1 - Facebook
2 - Twitter
3 - Linkedin
4 - Google
5 - Others
NO1N
social_network.authentication_tokenToken returned by the Social NetworkNO<1024 AN
additional_data
.billing_data
Billing information
client_idCustomer codeNO<1024 AN
personType of Person:
1 - Individual
2 - Legal Entity
YES1N
cnpj_cpfCPF or CNPJ. If absent, ClearSale uses the value informed in the additional_data.billing_data.documents[] list using the keys CPF or CNPJ, whichever comes first.COND<1024 AN
identification_numberRG or State Registration. If absent, ClearSale uses the first value informed in the additional_data.billing_data.documents[] list using the RG key.COND<1024 AN
nameClient nameYES<1024 A
birth_dateBirth dateNOyyyy-mm-ddThh:mm:ss
emailE-mailNO<1024 AN
genderBuyer's Gender:
M - Male
F - Female
NO1A
billing_data
.address
street_nameStreet nameYES<1024 AN
street_numberAddress NumberYES<1024 AN
complementAddress complementNO<1024 AN
countyAddress countyYES<1024 AN
cityAddress CityYES<1024 AN
stateAddress State AbbreviationYES2 A
countryAddress CountryNO<1024 AN
zip_codeAddress zip codeYES<1024 AN
referenceAddress ReferenceNO<1024 AN
billing_data
.phones[]
Information regarding billing phones (fields marked with YES are only mandatory if the phones object is created)
typePhone type:
0 - Not defined
1 - Residential
2 - Commercial
3 - Messages
4 - Billing
5 - Temporary
6 - Mobile
YES1N
ddiTelephone DDINO3 N
dddTelephone DDDYES2 N
numberTelephone numberYES9 N
extensionTelephone extensionNO10 N
billing_data
.documents[]
Information regarding billing identification documents
typeDocument Type:
CPF
CNPJ
NO<1024 AN
numberDocument numberNO<1024 AN
additional_data
.shipment
client_idcustomer codeNO<1024 AN
personType of Person:
1 - Individual
2 - Legal Entity
YES1N
cnpj_cpfCPF or CNPJ. If absent, ClearSale uses the value informed in the additional_data.shipment.documents[] list using the keys CPF or CNPJ, whichever comes first.COND<1024 AN
identification_numberRG or State Registration. If absent, ClearSale uses the first value informed in the additional_data.shipment.documents[] list using the RG key.COND<1024 AN
nameRecipient's nameYES<1024 AN
birth_dateRecipient's date of birthNOyyyy-mm-ddThh:mm:ss
emailRecipient's EmailNO<1024 AN
genderRecipient's Gender:
M - Male
F - Female
NO1A
delivery_typeDelivery type:
0 - Other
1 - Normal
2 - Guaranteed
3 - ExpressBR
4 - ExpressSP
5 - High
6 - Economic
7 - Scheduled
8 - Extra Fast
9 - Printed
10 - Application
11 - Mail
12 - Motoboy
13 - Ticket office withdrawal
14 - Partner Store withdrawal
15 - Ticket Credit Card
16 - Store Pickup
17 - Withdrawal via Lockers (Partners)
18 - Post Office Pickup
19 - Guaranteed delivery on the same day of purchase
20 - Guaranteed delivery on the next day of purchase
21 - Pickup in store - Express
YES< 2N
delivery_timeDeadlineNO<1024 AN
costShipping cost in centsNO<1024 N
pickup_store_documentCPF for pick up in store (if the order is for some type of delivery "Withdrawal")NO<1024 N
shipment
.address
street_nameStreet nameYES<1024 AN
street_numberAddress NumberYES<1024 AN
complementAddress complementNO<1024 A
countyAddress countyYES<1024 AN
cityAddress CityYES<1024 AN
stateAddress State AbbreviationYES2 A
countryAddress CountryNO<1024 AN
zip_codeAddress zip codeYES<1024 AN
referenceAddress ReferenceNO<1024 AN
shipment
.phones[]
Information regarding delivery phones (fields marked with YES are only mandatory if the phones object is created)
typePhone type:
0 - Not defined
1 - Residential
2 - Commercial
3 - Messages
4 - Billing
5 - Temporary
6 - Mobile
YES1N
ddiTelephone DDINO3 N
dddTelephone DDDYES2 N
numberTelephone numberYES9N
extensionTelephone extensionNO10 N
billing_data
.documents[]
Information regarding identification documents for delivery
typeDocument Type:
CPF
CNPJ
NO<1024 AN
numberDocument numberNO<1024 AN
additional_data
.items[]
Information regarding purchased items
idProduct codeNO<1024 AN
titleProduct's nameYES<1024 AN
eanEAN (Barcode) of the productNO<1024 AN
unit_priceUnit Value in centsNO<1024 N
quantityQuantityNO<1024 N
category_idProduct Category CodeNO<1024 N
category_nameProduct Category NameNO<1024 AN
giftIdentifies if the order is a gift:
1 - it is a gift
0 - not a gift
If absent, the 0 value is assumed
NO1N
sellerNameSeller's/partner's trade nameNO<1024 AN
sellerDocumentSeller/partner CNPJNO<1024 AN
marketPlaceFlag indicating whether the establishment is a market place:
true or false
NO<5 A
sellerSegmentSeller/Partner Segment.NO<1024 AN
shippingCompanyCarrier nameNO<1024 AN
sequentialSequence of making the paymentNO<1024 N
voucher_order_originOrder ID that generated the exchange voucher (if the current payment method is Vale)NO<1024 AN
payer
.receiver_address
Information regarding the payment address (fields marked with YES are only mandatory if the receiver_address object is created)
street_nameStreet nameYES<1024 AN
street_numberAddress NumberYES<1024 AN
complementAddress complementNO<1024 A
countyAddress countyYES<1024 AN
cityAddress CityYES<1024 AN
stateAddress State AbbreviationYES2 A
countryAddress CountryNO<1024 AN
zip_codeAddress zip codeYES<1024 AN
referenceAddress ReferenceNO<1024 AN
additional_data
.passenger_data[]
Passenger information (fields marked with YES are only required if the passenger_data object is created)
namePassenger nameYES<1024 AN
company_mileMileage Company (Loyalty)NO<1024 AN
frequente_flyer_cardMileage Card (Loyalty)NO<1024 AN
legal_document_typeType of identification document:
1 - CPF
2 - CNPJ
3 - RG
4 - IE
5 - Passport
6 - CTPS
7 - Voter Title
NO1N
legal_documentDocument numberNO<1024 N
birth_dateDate of birthNOyyyy-mm-ddThh:mm:ss
genderPassenger's Gender:
M - Male
F - Female
NO1A
additional_data
.flight_connection[]
Information regarding air connections (fields marked with YES are only mandatory if the flight_connection object is created)
companyAirline nameNO<1024 AN
flight_numberFlight numberNO<1024 AN
flight_dateFlight dateYESyyyy-mm-ddThh:mm:ss
classSeat ClassNO<1024 AN
fromOriginNO<1024 AN
toDestinyNO<1024 AN
departure_dateBoarding DateYESyyyy-mm-ddThh:mm:ss
arrival_dateLanding dateYESyyyy-mm-ddThh:mm:ss
class_codeTariff ClassNO<1024 AN
additional_data
.reservation_hotel[]
Information regarding hotel reservations
hotelHotel nameNO<1024 AN
cityCityNO<1024 AN
stateStateNO<1024 AN
countryCountryNO<1024 AN
reservation_dateBooking DateNOyyyy-mm-ddThh:mm:ss
reservation_expiration_dateReservation Expiration DateNOyyyy-mm-ddThh:mm:ss
checkin_dateDate of arrivalNOyyyy-mm-ddThh:mm:ss
checkout_dateDeparture DateNOyyyy-mm-ddThh:mm:ss

Example

The following is an example of a request with the minimum parameters to start a payment transaction with risk analysis. Learn more about payment parameters.

To use this example, don't forget to define the variable {{url}} to the value

JSON

curl
--request POST "https://{{url}}/e-sitef/api/v1/transactions"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
   "merchant_usn":"27112936137",
   "order_id":"27112936137",
   "installments":"1",
   "installment_type":"4",
   "authorizer_id":"2",
   "amount":"1000",
   "additional_data":{
      "payer":{
         "email":"[email protected]",
         "name" : "Payer Name",
         "legal_document" : "7777777777"
      },
      "shipment":{
         "type":"1",
         "name":"ShipmentName",
         "person":"1",
         "address":{
            "zip_code":"1111111",
            "street_number":"111",
            "street_name":"Billing StreetName",
            "city":"Billing City",
            "state":"Billing State",
            "county":"Billing County"
         }
      },
      "anti_fraud":"enabled_before_auth",
      "billing_data":{
         "person":"1",
         "name":"BillingName",
         "address":{
            "zip_code":"1111111",
            "street_number":"111",
            "street_name":"Billing StreetName",
            "city":"Billing City",
            "state":"Billing State",
            "county":"Billing County"
         }
      },
      "item_amount":"10",
      "origin":"origin",
      "total_order_amount":"10"
   }
}
--verbose

Response:

JSON
{
    "code": "0",
    "message": "OK. Transaction successful.",
    "payment": {
        "status": "NOV",
        "nit": "50f36d5b28510b0fb2b83951b533c5a9f9306b9ef54fc0a9220a5ce3c7845d17",
        "order_id": "27112936137",
        "merchant_usn": "27112936137",
        "amount": "1000"
    }
}

Example of a request with all parameters to begin a risk analysis payment transaction

Request:

To use this example, don't forget to define the variable {{url}} to the value

JSON

curl
--request POST "https://{{url}}/e-sitef/api/v1/transactions"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
   "merchant_usn":"8032934075",
   "order_id":"08032934333",
   "installments":"1",
   "installment_type":"4",
   "authorizer_id":"2",
   "amount":"1000",
   "additional_data":{
      "items":[
         {
            "title":"title1",
            "quantity":"1",
            "unit_price":"1",
            "category_id":"categoryId1",
            "id":"id1",
            "gift":"true",
            "category_name":"categoryName1",
            "ean":"ean1",
            "seller_name":"sellerName1",
            "seller_document":"sellerDocument1",
            "market_place":"true",
            "seller_segment":"sellerSegment1",
            "shipping_company":"shippingCompany1"
         },
         {
            "title":"title2",
            "quantity":"2",
            "unit_price":"2",
            "category_id":"categoryId2",
            "id":"id2",
            "gift":"false",
            "category_name":"categoryName2",
            "ean":"ean2",
            "seller_name":"sellerName2",
            "seller_document":"sellerDocument2",
            "market_place":"false",
            "seller_segment":"sellerSegment2",
            "shipping_company":"shippingCompany2"
         }
      ],
      "payer":{
         "name":"Payer Name",
         "email":"[email protected]",
         "city":"Payer City",
         "state":"SP",
         "legal_document":"7777777777",
         "address_street_name":"Payer Street",
         "address_street_number":"444",
         "address_zip_code":"6666666",
         "address_street_complement":"Payer Complement",
         "address_country":"Payer Country",
         "address_reference":"Payer Reference",
         "address_county":"Payer County",
         "neighborhood":"Payer County"
      },
      "shipment":{
         "type":"1",
         "cost":"5",
         "id":"ShipmentClientId",
         "name":"ShipmentName",
         "person":"1",
         "birth_date":"1990-01-10T00:00:00.000",
         "email":"Shipment@Email",
         "gender":"M",
         "address":{
            "zip_code":"2222222",
            "street_number":"111",
            "street_name":"Shipping StreetName",
            "complement":"Shipping Complement",
            "city":"Shipping City",
            "state":"Shipping State",
            "country":"Brasil",
            "county":"Shipping County",
            "reference":"Shipping Reference"
         },
         "legal_document1":"0987654321",
         "legal_document2":"87654321",
         "delivery_type":"1",
         "delivery_deadline":"2 dias uteis",
         "pickup_store_document":"12345678910"
      },
      "item_amount":"10",
      "anti_fraud":"enabled_before_auth",
      "passengers":[
         {
            "name":"Name1",
            "frequent_flyer_card":"frequentFlyerCard1",
            "legal_document_type":"1",
            "legal_document":"111111111",
            "birth_date":"2000-01-01T00:00:00",
            "company_mile":"companyMile1",
            "gender":"M"
         },
         {
            "name":"Name2",
            "frequent_flyer_card":"frequentFlyerCard2",
            "legal_document_type":"0",
            "legal_document":"22222222",
            "birth_date":"2000-01-02T00:00:00",
            "company_mile":"companyMile2",
            "gender":"M"
         }
      ],
      "connections":[
         {
            "company":"company1",
            "flight_number":"666",
            "flight_date":"2000-01-03T00:00:00",
            "class":"ECONOMY",
            "from":"BRA",
            "to":"ARG",
            "departure_date":"2000-01-04T00:00:00",
            "arrival_date":"2000-01-05T00:00:00",
            "class_code":"classCode1"
         },
         {
            "company":"company2",
            "flight_number":"333",
            "flight_date":"2000-01-06T00:00:00",
            "class":"ECONOMY",
            "from":"BRA",
            "to":"ENG",
            "departure_date":"2000-01-07T00:00:00",
            "arrival_date":"2000-01-08T00:00:00",
            "class_code":"classCode2"
         }
      ],
      "hotel_reservations":[
         {
            "hotel":"hotel1",
            "city":"city1",
            "state":"state1",
            "country":"country1",
            "reservation_date":"2000-01-09T00:00:00.000",
            "reservation_expiration_date":"2000-01-10T00:00:00.000",
            "checkin_date":"2000-01-11T00:00:00.000",
            "checkout_date":"2000-01-12T00:00:00.000"
         }
      ],
      "purchase_information_data":{
         "last_date_inserted_mail":"2020-01-01T01:01:01",
         "last_date_change_password":"2020-01-02T02:02:02",
         "last_date_change_phone":"2020-01-03T03:03:03",
         "last_date_change_mobile_phone":"2020-01-04T04:04:04",
         "last_date_inserted_address":"2020-01-05T05:05:05",
         "purchase_logged":"false",
         "email":"purchaseInformation@email",
         "login":"purchaseInformationLogin"
      },
      "billing_data":{
         "client_id":"BillingClientId",
         "person":"1",
         "gender":"M",
         "name":"BillingName",
         "birth_date":"1990-01-10T00:00:00.000",
         "email":"Billing@Email",
         "address":{
            "zip_code":"1111111",
            "street_number":"111",
            "street_name":"Billing StreetName",
            "complement":"Billing Complement",
            "city":"Billing City",
            "state":"Billing State",
            "country":"Brasil",
            "county":"Billing County",
            "reference":"Billing Reference"
         },
         "phones":[
            {
               "number":"199999999",
               "ddd":"11",
               "ddi":"55",
               "extension":"1888",
               "type":"1"
            },
            {
               "number":"299999999",
               "ddd":"11",
               "ddi":"55",
               "extension":"2888",
               "type":"2"
            }
         ],
         "cnpj_cpf":"12345678911",
         "identification_number":"12345678"
      },
      "b2b_b2c":"b2b",
      "sla_custom":"1",
      "gift":"true",
      "gift_message":"giftMessage",
      "obs":"obs",
      "origin":"origin",
      "nationality":"nationality",
      "product":"4",
      "list_type_id":"1",
      "list_id":"listId",
      "sequential":"33",
      "interest_value":"2",
      "interest":"10",
      "total_order_amount":"10",
      "browser":{
         "ip_address":"1111.222.333.444"
      },
      "bank_authentication":"bankAuthentication",
      "sub_acquirer":"subAcquirer",
      "social_network":{
         "opt_in_buy_and_trust":"1",
         "type_social_network":"1",
         "authentication_token":"authenticationToken"
      },
      "voucher_order_origin":"voucherOrderOrigin",
      "channel_id":"channelId"
   }
}
--verbose

Response:

JSON
{
    "code": "0",
    "message": "OK. Transaction successful.",
    "payment": {
        "status": "NOV",
        "nit": "0cbaaa37480ebb0f6480a944f99af1b4976a3a91db270f2dd20c15ac01dbaea4",
        "order_id": "08032934333",
        "merchant_usn": "8032934075",
        "amount": "1000"
    }
}

Example of a request with the minimum parameters to begin a Pre-Authorization transaction with risk analysis.

Request:

To use this example, don't forget to define the variable {{url}} to the value

JSON

curl
--request POST "https://{{url}}/e-sitef/api/v1/transactions"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
   "merchant_usn":"27112936137",
   "order_id":"27112936137",
   "installments":"1",
   "transaction_type":"preauthorization",
   "installment_type":"4",
   "authorizer_id":"2",
   "amount":"1000",
   "additional_data":{
      "payer":{
         "email":"[email protected]",
         "name" : "Payer Name",
         "legal_document" : "7777777777"
      },
      "shipment":{
         "type":"1",
         "name":"ShipmentName",
         "person":"1",
         "address":{
            "zip_code":"1111111",
            "street_number":"111",
            "street_name":"Billing StreetName",
            "city":"Billing City",
            "state":"Billing State",
            "county":"Billing County"
         }
      },
      "anti_fraud":"enabled_before_auth",
      "billing_data":{
         "person":"1",
         "name":"BillingName",
         "address":{
            "zip_code":"1111111",
            "street_number":"111",
            "street_name":"Billing StreetName",
            "city":"Billing City",
            "state":"Billing State",
            "county":"Billing County"
         }
      },
      "item_amount":"10",
      "origin":"origin",
      "total_order_amount":"10"
   }
}

--verbose

Response:

JSON
{
    "code": "0",
    "message": "OK. Transaction successful.",
    "pre_authorization": {
        "status": "NOV",
        "nit": "25b0bfc9ef3d38f1ca09fbcf6d6cb6957b78a04c731da707884dbaf85185f380",
        "order_id": "27112936137",
        "merchant_usn": "27112936137",
        "amount": "1000"
    }
}

Example of a request with the other parameters to start a Pre-Authorization transaction with risk analysis.

Request:

To use this example, don't forget to define the variable {{url}} to the value

JSON

curl
--request POST "https://{{url}}/e-sitef/api/v1/transactions"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
   "merchant_usn":"8032934075",
   "order_id":"08032934333",
   "installments":"1",
   "installment_type":"4",
   "transaction_type":"preauthorization",
   "authorizer_id":"2",
   "amount":"1000",
   "additional_data":{
      "items":[
         {
            "title":"title1",
            "quantity":"1",
            "unit_price":"1",
            "category_id":"categoryId1",
            "id":"id1",
            "gift":"true",
            "category_name":"categoryName1",
            "ean":"ean1",
            "seller_name":"sellerName1",
            "seller_document":"sellerDocument1",
            "market_place":"true",
            "seller_segment":"sellerSegment1",
            "shipping_company":"shippingCompany1"
         },
         {
            "title":"title2",
            "quantity":"2",
            "unit_price":"2",
            "category_id":"categoryId2",
            "id":"id2",
            "gift":"false",
            "category_name":"categoryName2",
            "ean":"ean2",
            "seller_name":"sellerName2",
            "seller_document":"sellerDocument2",
            "market_place":"false",
            "seller_segment":"sellerSegment2",
            "shipping_company":"shippingCompany2"
         }
      ],
      "payer":{
         "name":"Payer Name",
         "email":"[email protected]",
         "city":"Payer City",
         "state":"SP",
         "legal_document":"7777777777",
         "address_street_name":"Payer Street",
         "address_street_number":"444",
         "address_zip_code":"6666666",
         "address_street_complement":"Payer Complement",
         "address_country":"Payer Country",
         "address_reference":"Payer Reference",
         "address_county":"Payer County",
         "neighborhood":"Payer County"
      },
      "shipment":{
         "type":"1",
         "cost":"5",
         "id":"ShipmentClientId",
         "name":"ShipmentName",
         "person":"1",
         "birth_date":"1990-01-10T00:00:00.000",
         "email":"Shipment@Email",
         "gender":"M",
         "address":{
            "zip_code":"2222222",
            "street_number":"111",
            "street_name":"Shipping StreetName",
            "complement":"Shipping Complement",
            "city":"Shipping City",
            "state":"Shipping State",
            "country":"Brasil",
            "county":"Shipping County",
            "reference":"Shipping Reference"
         },
         "legal_document1":"0987654321",
         "legal_document2":"87654321",
         "delivery_type":"1",
         "delivery_deadline":"2 dias uteis",
         "pickup_store_document":"12345678910"
      },
      "item_amount":"10",
      "anti_fraud":"enabled_before_auth",
      "passengers":[
         {
            "name":"Name1",
            "frequent_flyer_card":"frequentFlyerCard1",
            "legal_document_type":"1",
            "legal_document":"111111111",
            "birth_date":"2000-01-01T00:00:00",
            "company_mile":"companyMile1",
            "gender":"M"
         },
         {
            "name":"Name2",
            "frequent_flyer_card":"frequentFlyerCard2",
            "legal_document_type":"0",
            "legal_document":"22222222",
            "birth_date":"2000-01-02T00:00:00",
            "company_mile":"companyMile2",
            "gender":"M"
         }
      ],
      "connections":[
         {
            "company":"company1",
            "flight_number":"666",
            "flight_date":"2000-01-03T00:00:00",
            "class":"ECONOMY",
            "from":"BRA",
            "to":"ARG",
            "departure_date":"2000-01-04T00:00:00",
            "arrival_date":"2000-01-05T00:00:00",
            "class_code":"classCode1"
         },
         {
            "company":"company2",
            "flight_number":"333",
            "flight_date":"2000-01-06T00:00:00",
            "class":"ECONOMY",
            "from":"BRA",
            "to":"ENG",
            "departure_date":"2000-01-07T00:00:00",
            "arrival_date":"2000-01-08T00:00:00",
            "class_code":"classCode2"
         }
      ],
      "hotel_reservations":[
         {
            "hotel":"hotel1",
            "city":"city1",
            "state":"state1",
            "country":"country1",
            "reservation_date":"2000-01-09T00:00:00.000",
            "reservation_expiration_date":"2000-01-10T00:00:00.000",
            "checkin_date":"2000-01-11T00:00:00.000",
            "checkout_date":"2000-01-12T00:00:00.000"
         }
      ],
      "purchase_information_data":{
         "last_date_inserted_mail":"2020-01-01T01:01:01",
         "last_date_change_password":"2020-01-02T02:02:02",
         "last_date_change_phone":"2020-01-03T03:03:03",
         "last_date_change_mobile_phone":"2020-01-04T04:04:04",
         "last_date_inserted_address":"2020-01-05T05:05:05",
         "purchase_logged":"false",
         "email":"purchaseInformation@email",
         "login":"purchaseInformationLogin"
      },
      "billing_data":{
         "client_id":"BillingClientId",
         "person":"1",
         "gender":"M",
         "name":"BillingName",
         "birth_date":"1990-01-10T00:00:00.000",
         "email":"Billing@Email",
         "address":{
            "zip_code":"1111111",
            "street_number":"111",
            "street_name":"Billing StreetName",
            "complement":"Billing Complement",
            "city":"Billing City",
            "state":"Billing State",
            "country":"Brasil",
            "county":"Billing County",
            "reference":"Billing Reference"
         },
         "phones":[
            {
               "number":"199999999",
               "ddd":"11",
               "ddi":"55",
               "extension":"1888",
               "type":"1"
            },
            {
               "number":"299999999",
               "ddd":"11",
               "ddi":"55",
               "extension":"2888",
               "type":"2"
            }
         ],
         "cnpj_cpf":"12345678911",
         "identification_number":"12345678"
      },
      "b2b_b2c":"b2b",
      "sla_custom":"1",
      "gift":"true",
      "gift_message":"giftMessage",
      "obs":"obs",
      "origin":"origin",
      "nationality":"nationality",
      "product":"4",
      "list_type_id":"1",
      "list_id":"listId",
      "sequential":"33",
      "interest_value":"2",
      "interest":"10",
      "total_order_amount":"10",
      "browser":{
         "ip_address":"1111.222.333.444"
      },
      "bank_authentication":"bankAuthentication",
      "sub_acquirer":"subAcquirer",
      "social_network":{
         "opt_in_buy_and_trust":"1",
         "type_social_network":"1",
         "authentication_token":"authenticationToken"
      },
      "voucher_order_origin":"voucherOrderOrigin",
      "channel_id":"channelId"
   }
}

--verbose

Response:

JSON
{
    "code": "0",
    "message": "OK. Transaction successful.",
    "pre_authorization": {
        "status": "NOV",
        "nit": "73fbbb226b2e66a4a731cda5459fdca45bc371da4f76d91d53cd48035e12a102",
        "order_id": "08032934333",
        "merchant_usn": "8032934075",
        "amount": "1000"
    }
}

Example of request with the other parameters, to start a payment transaction rest with Realtime

Request:

JSON
curl --location --request POST 'https://192.168.48.135/e-sitef/api/v1/transactions' \
--header 'Content-Type: application/json' \
--header 'merchant_id: CLEARSALERESTRT' \
--header 'merchant_key: D43B1ECD36CA0893AC6163A1913AFA084290530B861C84C672A21794CDC190C0' \
--data-raw '{
    "merchant_usn": "27112936137",
    "order_id": "1654629291772",
    "installments": "1",
    "installment_type": "4",
    "authorizer_id": "2",
    "amount": "3400",
    "additional_data": {
        "payer": {
            "email": "[email protected]",
            "name": "Payer Name",
            "legal_document": "7777771777"
        },
        "shipment": {
            "type": "1",
            "name": "ShipmentName",
            "person": "1",
            "address": {
                "zip_code": "1111111",
                "street_number": "111",
                "street_name": "Billing StreetName",
                "city": "Billing City",
                "state": "Billing State",
                "county": "Billing County"
            }
        },
        "anti_fraud": "enabled_after_auth",
        "billing_data": {
            "person": "1",
            "name": "BillingName",
            "cnpj_cpf": "12345678901",
            "identification_number": "12345678999",
            "address": {
                "zip_code": "1111111",
                "street_number": "111",
                "street_name": "Billing StreetName",
                "city": "Billing City",
                "state": "Billing State",
                "county": "Billing County"
            }
        },
        "item_amount": "11",
        "origin": "origin",
        "total_order_amount": "11"
    }
}'

Response:

JSON
{
    "code": "0",
    "message": "OK. Transaction successful.",
    "payment": {
        "status": "NOV",
        "nit": "602d8e43b33427ac2c7f3a0f136a8f763d934d395c2727d3e292a94990179f17",
        "order_id": "1654629291772",
        "merchant_usn": "27112936137",
        "amount": "3400"
    }
}

Fraud Notification Service

Source: https://docs.apis-fiserv.com/latam/docs/fraud-notification-service

After a successful transaction with antifraud (payment status CON, PPC, PPN or EST), the merchant may identify that, in reality, a fraud occurred. In this case, the merchant can call the fraud notification service to warn the risk analysis institution about this occurrence. This will refine the analysis process of said institution, making it more accurate and preventing more frauds in the future.

Currently, this API supports the following antifraud institutions:

  • Antifraude Fiserv
  • Konduto
  • Fraud Detect
  • ClearSale REST

Call details

  • Resource: /v1/transactions/{nit}/fraud
  • HTTP method: POST
  • Request format: JSON
  • Response format: JSON
  • Header parameters:
ParameterDescriptionFormatMandatory
merchant_idMerchant code on Carat Portal. The production and certification codes will be different.< 15 ANYES
merchant_keyMerchant authentication key on Carat Portal. The production and certification keys will be different.< 80 ANYES
Content-TypeIt must be sent with the value application/json.= 15 ANYES

Examples

Below is an example of a fraud notification service call using the cURL tool.

Request:

To use this example, don't forget to define the variable {{url}} with the value

BashText
curl
--request POST 'https://{{url}}/e-sitef/api/v1/transactions/1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr/fraud'
--header 'Content-Type: application/json'
--header 'merchant_id: xxxxxxxx'
--header 'merchant_key: xxxxxxxxxxx'
--data '{
    "marked_data": [
        "account_key_hash",
        "customer_account_id",
        "customer_email"
    ]
}'
--verbose

**Response:**

json
{
"code": "0",
"message": "OK. Transaction successful.",
"analysis": {
"code": "100",
"message": "ACCEPT"
}
}


## Request parameters
















Manual Review Flow

Source: https://docs.apis-fiserv.com/latam/docs/manual-review-flow

When requesting the anti-fraud analysis, it is possible for the institution to respond that the transaction will be evaluated manually. In this scenario, Carat Portal leaves the transaction in the PPC (Pending Confirmation Payment) state and awaits the completion of the manual evaluation.

The institution must send a notice indicating the completion of the manual evaluation at a given URL, which must be registered on the institution's platform. The merchant must contact the institution and request the registration of the following URL for this notice:

  • Homologation Environment: https:///e-sitef/processarPost.se?loja=<MerchantID>
  • Production Environment: https:///e-sitef/processarPost.se?loja=<MerchantID>
    <MerchantID> being the identification of the merchant in Carat Portal. If in doubt, contact our support to obtain this identification.

When Carat Portal receives this notice, some validations will be performed before completing the transaction to a final state. The merchant will receive a notice indicating the final status of this same transaction.

Configure expiration for manual review

Consider the following scenario, the institution respond that it will perform the manual review, but the analysis is never completed. For this situation, Carat Portal requests a configuration by the Store, so that after waiting for the risk analysis to be answered, a decision is made and the transaction is not pending.

The configuration of the parameters should be done on Merchant’s Portal following the steps below:

"Figure 1: Menu item to configure risk analysis parameters on Merchant’s Portal."

The next figure shows a list of merchants that is presented whenever there are more than one merchant, grouped by user.

"Figure 2: Choosing a merchant."

The next figure shows the two fields that need to be configured:

  • Tempo de expiração da análise de risco (dias): Response waiting time limit from risk analysis – in days – of which Carat Portal execute an action defined by merchant.
  • Atitude após o tempo de expiração: After Tempo máximo (Maximum Time) is configured, the decision of which action will be executed must be selected in this field - Can be CONFIRM or CANCEL the transaction.
"Figure 3: Fields to be configured."

Once the Enviar button is pressed, a message Configurado com sucesso! will be displayed as a confirmation of this modification.

ATTENTION:
This configuration must be changed only by merchant who will assume all responsibilities of selected configuration. The Carat Portal only executes the action chosen by the merchant, according the configuration.


Risk analysis Service on the HTML Interface

Source: https://docs.apis-fiserv.com/latam/docs/risk-analysis-service-on-the-html-interface

After performing the registration alignment with Carat Portal support to enable integration with the anti-fraud service, at the start of a transaction HTML Payment (Learn more) the merchant must configure the property anti_fraud and send the appropriate anti-fraud parameters (depends on the institution that your merchant was set up), both properties must be within the scope of theadditional_data object.

The field anti_fraud determines how anti-fraud is applied and can contain the following values:

  • enabled_before_auth - Risk analysis will be performed BEFORE authorization of the payment. If the analysis is rejected, payment will not be started.
  • enabled_after_auth - Risk analysis will be performed AFTER authorization of the payment. If the analysis is rejected, the payment that has already been authorized will be canceled.

Attention:

For cases where the limits of intervals for automatic activation of Anti Fraud are configured in the merchant and a value of anti_fraud is passed in the creation of the transaction, the Carat Portal will only accept the value of anti_fraud passed if the transaction is between activation limits. And if the Anti Fraud automatic activation interval limits are configured in the merchant and an anti_fraud value is not passed in the transaction, the value enabled_after_auth will be assumed as default for the anti-fraud type. Important: intervals that allow the use of 3ds and anti-fraud together must not be used.

Anti-fraud parameters

The parameters depend on the institution that provides the anti-fraud service. Therefore, not all anti-fraud parameters available on Carat Portal will be effectively used.

Below are all anti-fraud parameters (regardless of institution).
Some parameters may appear repeatedly (for example, the gift property) and this is due to the risk analysis characteristic of each institution. For more details on how each institution uses each anti-fraud parameter, see the page for each anti-fraud integration.

PropertyDescriptionFormatRequired
currencyPayment currency3 AYes
b2b_b2ce-commerce type3 ANo
item_amountValue in cents of the total sum of the values of the items< 1024 NYes
total_order_amountValue in cents of the orders< 1024 NYes
delivery_time_cdDelivery time< 50 ANo
qty_payment_typesNumber of payments1 NNo
ip (deprecated)Order IP< 50 AYes
gift1 - If order is a gift
0 - If order is not a gift
1 NNo
gift_messageGift message< 8000 ANo
obsOrder observations< 8000 ANo
sla_customAnalysis SLA4 NNo
originOrder origin< 150 AYes
reservation_dateDate of the flight reservation. Only for flight tickets.Format da data: yyyy-mm-ddThh:mm:ssNo
nationalityNationality of the order (for request of international analysis)< 50 ANo
list_type_idList type ID (only for customers that have a specific list)1 NNo
list_idStore’s list ID< 200 ANo
sequentialSequence of the payment1 NNo
interestInterest rate.
Example: 5.00
< 4 NNo
interest_valueAbsolute value of interest in cents.
Example: 1000 (10 reais).
< 20 NNo
shipping_typeShipping type id. The following values are valid:
  • 0 - Others
  • 1 - Default
  • 2 - Guaranteed
  • 3 - ExpressaBR
  • 4 - ExpressaSP
  • 5 - High
  • 6 - Economy
  • 7 - Scheduled
  • 8 - Extra fast
  • 9 - Printed
  • 10 - App
  • 11 - Post office
  • 12 - Motoboy
  • 13 - Pick up in the Box Office
  • 14 - Pick up in the Partner Store
  • 15 - Credit Card Ticket
  • 16 - Pick up in the Store
< 2 NNo
itemsPurchase item informationObject JSON Array (Learn more)Yes
payerPayer informationObject json (Learn more)Yes
billing_dataBill informationObject json (Learn more)Yes
shipmentShipment informationObject JSON Array (Learn more)Yes
browserBrowser informationObject json (Learn more)Yes
travelAir ticket informationObject json (Learn more)Conditional by institution
passengersAir ticket passengers informationObject JSON Array (Learn more)Yes, if the item is an air ticket
connectionsAir ticket connections informationObject JSON Array (Learn more)Yes, if the item is an air ticket
hotel_reservationsHotel reservation informationObject JSON Array (Learn more)Yes, if the item is an hotel reservation
purchase_dataPurchase informationObject json (Learn more)Yes
mddMDD (Merchant Data) information. Cybersource’s fieldObject JSON Array (Learn more)No

Object items

PropertyDescriptionFormatRequired
idUnique Item IDNYes
skuProduct code of the itemAConditional by institution
titleProduct nameAYes
descriptionProduct descriptionANo
quantityQuantity of items< 4 NYes
unit_priceItem unit price< 12 NYes
category_idItem Category Id. Each institution has a different interpretation.Conditional by institutionConditional by institution
category_nameProduct's category name< 200 ANo
gift1 - If order is a gift
0 - If order is not a gift
1 NNo
tax_amountTax amountNNo
discount_amountDiscount amount in centsNNo
creation_dateProduct publication date in DD/MM/YYYY format.ANNo

Object payer

PropertyDescriptionFormatRequired
idIdentification of the buyer. Usually the CPF.NYes
namePayer's name. Each institution has a different interpretation.Conditional by institutionConditional by institution
surnamePayer's surname< 200 AYes
emailPayer's emailAYes
date_createdCreation dateAYes
passwordPassword of the buyer on the storeConditional by institutionConditional by institution
cityAddress city (without abbreviations)< 150 AYes
address_street_complementAddress complement (without abbreviations)< 250 ANo
address_countryAddress country (without abbreviations)< 150 ANo
address_countyAddress county (without abbreviations)< 150 ANo
address_street_numberAddress number< 15 ANo
stateAddress state abbreviation2 ANo
address_street_nameAddress street name (without abbreviations)< 200 ANo
address_zip_codeAddress zip code< 10 NNo
address_referenceLandmark (without abbreviations)< 250 ANo
legal_documentPayer document< 100 ANo
phonesPhones informationObject JSON Array (Learn more)No
addressAddress informationObject json (Learn more)No

Object phones of payer

PropertyDescriptionFormatRequired
ddiPhone DDI3 NNo
dddPhone DDD3 NNo
numberPhone number9 NNo

Object address of payer

PropertyDescriptionFormatRequired
street_nameStreet name.< 200 AYes
street_name2Complement of the street name.< 200 ANo
street_numberNumber of the address< 15 AYes
apartmentApartmentNNo
complementComplement of the address< 250 ANo
countyCounty of the address (without abbreviations)< 150 AYes
cityAddress city (without abbreviations)< 150 AYes
stateFederation Unit abbreviation (UF)2 AYes
districtAddress districtANo
countryAddress country< 150 ANo
zip_codeAddress zip code< 10 NYes
referenceAddress reference< 250 ANo
building_numberHouse number. Example: if it is a condominium, it will be the house number inside the condominium.< 10 ANo

Object billing_data

PropertyDescriptionFormatRequired
cliente_idCustomer ID< 50 AYes
person1 - Physical person
2 - Legal person
1 NYes
cnpj_cpfCPF or CNPJ< 100 AYes
identification_numberRG or inscrição estadual< 100 ANo
nameCustomer name< 500 AYes
birth_dateDate of birth.Date in format: yyyy-mm-ddThh:mm:ssYes
emailCustomer email< 150 ANo
genderM - male
F - female
1 ANo
addressBill addressObject json (Learn more)No
phonesBill phonesObject JSON Array (Learn more)No
documentsBill documentsObject JSON Array (Learn more)No

Object address of billing_data

PropertyDescriptionFormatRequired
street_nameStreet name< 200 AYes
street_name2Complement of the street name< 200 ANo
street_numberStreet number< 15 AYes
apartmentApartment numberNNo
complementComplementary address (without abbreviations)< 250 ANo
countyAddress county (without abbreviations)< 150 AYes
cityAddress city (without abbreviations)< 150 AYes
stateAddress State Acronym - UF2 AYes
districtDistrict nameANo
countryAddress country (without abbreviations).< 150 ANo
zip_codeAddress zipcode< 10 NYes
referenceLandmark without abbreviations< 250 ANo
building_numberHouse number. Example: if it is a condominium, it will be the house number inside the condominium.< 10 ANo

Object phones of billing_data

PropertyDescriptionFormatRequired
typePhone type:
  • 0 - Not defined
  • 1 - Residency
  • 2 - Comercial
  • 3 - Messages
  • 4 - Billing
  • 5 - Temporary
  • 6 - Cellphone
1 NYes
ddiPhone DDI3 NNo
dddPhone DDD3 NYes
numberPhone number9 NYes
extensionPhone extension< 10 ANo

Object documents of billing_data

PropertyDescriptionFormatRequired
typeConditional by institution.ANo
numberDocument numberNYes

Object shipment

PropertyDescriptionFormatRequired
idCustomer ID< 50 AYes
costFreight value in cents< 1024 NNo
typeDocument type
1 - Pessoa Física
2 - Pessoa Jurídica
< 1 NYes
legal_document1CPF or CNPJ< 100 AYes
legal_document2RG or Inscrição Estadual< 100 ANo
nameCustomer's name< 500 AYes
surnameCustomer's surname< 500 AYes
birth_dateCustomer's birth date.Date in format: yyyy-mm-ddThh:mm:ssNo
emailEmail< 150 ANo
genderM - male
F - female
1 ANo
addressShipment addressObject json (Learn more)Conditional by institution
receiver_addressShipment addressObject json (Learn more)Conditional by institution
phonesShipment phonesObject JSON Array (Learn more)Yes

Object address of shipment

Também equivale ao object receiver_address do shipment

PropertyDescriptionFormatRequired
street_nameStreet name< 200 AYes
street_name2Complement of the street name< 200 ANo
street_numberStreet number< 15 AYes
apartmentApartment numberNNo
complementComplementary address (without abbreviations)< 250 ANo
countyAddress county (without abbreviations)< 150 AYes
cityAddress city (without abbreviations)< 150 AYes
stateAddress State Acronym - UF2 AYes
countryAddress country< 150 AYes
zip_codeZip code of the address.< 10 AYes
building_numberHouse number. Example: if it is a condominium, it will be the house number inside the condominium.< 10 ANo

Object phones of shipment

PropertyDescriptionFormatRequired
typePhone type:
  • 0 - Not defined
  • 1 - Residency
  • 2 - Commercial
  • 3 - Messages
  • 4 - Billing
  • 5 - Temporary
  • 6 - Cellphone
1 NYes
ddiPhone DDI3 NNo
dddPhone DDD3 NYes
numberPhone Number9 NYes
extensionPhone extension< 10 ANo

Object browser

PropertyDescriptionFormatRequired
ip_addressIP address15 AYes

Object travel

PropertyDescriptionFormatRequired
routeConcatenation of the flight routes.

To obtain the airport codes, use this link
Value must respect the format: XXX-XXX:XXX-XXXYes
journey_typeTrip type: round_trip or one_way< 32 AYes
departure_date_timeDate and time of the first flight departure.Format da data: yyyy-mm-ddThh:mm:ssYes

Object passengers

PropertyDescriptionFormatRequired
idPassenger ID< 32 ANo
namePassenger's name. Conditional by institution< 100 AYes
last_namePassenger's last name< 100 AConditional by institution
frequente_flyer_cardMileage Card (Fidelity)< 32 ANo
legal_document_typeType of identification document:
  • 1 - CPF
  • 2 - CNPJ
  • 3 - RG
  • 4 - IE
  • 5 - Passport
  • 6 - CTPS
  • 7 - Electoral card
1 NYes
legal_documentDocument number< 50 AYes
birth_datePassenger's birth date.Date in format: yyyy-mm-ddThh:mm:ssNo
emailPassenger email. Must be unique.Format: [email protected]No
statusStatus of the ticket reservation. Example: Reserved< 32 ANo
ratingPassenger classification according the ticket price.< 32 ANo
typePassenger classification.
  • ADT: Adult
  • CNN: Child
  • INF: Infant
  • YTH: Youth
  • STU: Student
  • SCR: Senior Citizen
  • MIL: Military
< 32 ANo
unit_priceAirfare unit price.Format (in cents): 1000 (10 reais)No
phonesPassenger phonesObject JSON Array (Learn more)Yes

Object phones of passengers

PropertyDescriptionFormatRequired
ddiPhone DDI3 NNo
dddPhone DDD3 NYes
numberPhone number9 NYes

Object connections

PropertyDescriptionFormatRequired
companyAirline name< 50 AYes
flight_numberFlight number6 NYes
flight_dateDate of the flight.Conditional by institutionYes
classSeat class< 10 AYes
fromOriginConditional by institutionYes
toDestinyConditional by institutionYes
departure_dateBoarding date.Date in format: yyyy-mm-ddThh:mm:ssYes
arrival_dateDate of the landing.Date in format: yyyy-mm-ddThh:mm:ssYes

Object hotel_reservations

PropertyDescriptionFormatRequired
hotelHotel name< 200 AYes
cityHotel city without abbreviations< 150 AYes
stateHotel state without abbreviations< 150 AYes
countryHotel country< 150 AYes
reservation_dateReservation Date.Date in format: yyyy-mm-ddThh:mm:ssYes
reservation_expiration_dateDate of expiry of the reservation.Date in format: yyyy-mm-ddThh:mm:ssYes
checkin_dateDate of arrival.Date in format: yyyy-mm-ddThh:mm:ssYes
checkout_dateDeparture date.Date in format: yyyy-mm-ddThh:mm:ssYes

Object purchase_data

PropertyDescriptionFormatRequired
last_date_inserted_mailDate that the email was last modified.Date in format: yyyy-mm-ddThh:mm:ssNo
last_date_change_passwordDate of the last change of the password.Date in format: yyyy-mm-ddThh:mm:ssNo
last_date_change_phoneDate that the phone was last changed.Date in format: yyyy-mm-ddThh:mm:ssNo
last_date_change_mobile_phoneDate that the mobile phone was last changed.Date in format: yyyy-mm-ddThh:mm:ssNo
last_date_inserted_addressDate of the last address change.Date in format: yyyy-mm-ddThh:mm:ssNo
purchase_loggedBought authenticated on the store web site1 NNo
purchase_logged_with_facebookPurchase logged in via Facebook1 NNo

Object mdd

PropertyDescriptionFormatRequired
idIt can range from 1 to 100 defined by the merchant in an agreement with Cybersource< 255 ANo
valueValue of the field defined by the merchant in an agreement with Cybersource< 255 ANo

For payments using Konduto, Cybersource and Antifraude Fiserv: Parameters that exist in payer, billing and shipment when not passed to the transaction creation service via additional_data, will be requested in the payment screen. If the parameters are passed in the transaction creation service, you will not be asked to fill in the fields on the payment screen.

For payments using Konduto, Cybersource and Antifraude Fiserv: Parameters that exist in payer, billing and shipment when not passed to the transaction creation service via additional_data, will be requested in the payment screen. If the parameters are passed in the transaction creation service, you will not be asked to fill in the fields on the payment screen.



Did this page help you?