CyberSource

Credenciais necessárias#

Como mencionado no capítulo da "Visão Geral - Credenciais necessárias", cada instituição possui um conjunto de credenciais que devem ser obtida para a integração. Os serviços da CyberSource exigem as seguintes credenciais:

  • Merchant ID (Merchant Code) - chave do usuário do lojista no Portal da CyberSource
  • Shared Secret - Chave do lojista no Portal da CyberSource. Caso não seja informada a chave para cadastro, o Carat não realizará consulta de status na CyberSource. Isso significa que se alguma análise de risco ficar pendente, a decisão cadastrada pelo lojista no Portal será ativada, confirmando ou desfazendo a transação.
  • Key ID - ID que identifica a Shared Secret.
  • Org ID - Chave utilizada coletar dados de fingerprint do browser do comprador.
  • Certificado p12 - Certificado de segurança necessário para a análise dos pedidos. Este arquivo deve ter o nome do Merchant ID do lojista / integrador no sistema da CyberSource.
  • Senha Certificado p12 - Senha do certificado p12. Definida no portal da CyberSource.

IMPORTANTE: As credenciais acima devem ser obtidas com a CyberSource. O lojista deve entrar em contato com a CyberSource e receber as devidas orientações de como obter cada uma dessas credenciais. Após conseguir as credenciais, o lojista deve entrar em contato com o suporte do Carat e passar as credenciais para o cadastro no Carat.

Para obter a Shared Secret e o Key ID siga as orientações em:

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

Para obter o Certificado .p12, siga as orientações em:

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

Configuração de URL Webhook#

Para que possamos receber as atualizações de status de transações de análise de risco que estiverem em análise manual, é necessário realizar a configuração da URL de Webhook no ambiente de configuração da CyberSource.

URL de Produção:

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

URL de Homologação:

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

Essa URL deve ser configurada para qualquer troca de status. Para realizar essa configuração, por favor entre em contato com o Suporte da CyberSource.

Funcionalidades suportadas#

Bandeiras permitidas#

Seguem abaixo as bandeiras suportadas nas análises da 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)

Aviso de cancelamento por fraude#

Ao cancelar um pagamento por motivos de fraude, é possível avisar a CyberSource sobre o ocorrido e marcar como fraudulenta a transação realizada, consequentemente melhorando a análise de risco.

Atualmente, somente a interface Cancelamento REST pode enviar os dados complementares para a CyberSource. Para isso, é necessário enviar os seguintes campos:

CampoDescrição
anti_fraudObjeto com campos de anti-fraude.
chargebackInforma se o aviso para a CyberSource será realizado ou não.
Valores permitidos: true ou false
Valor default: false
marked_dataInforma quais campos serão relevantes para avisar a CyberSource que esta transação foi uma tentativa de fraude.

Este campo recebe uma lista de valores. Por exemplo: "marked_data":["ship_address","customer_phone","customer_email"].

Campos que podem ser informados:
  • account_key_hash
  • customer_account_id
  • customer_email
  • customer_idaddress
  • customer_phone
  • device_fingerprint
  • ship_address
Caso nenhum valor seja informado, os seguintes campos serão assumidos pela CyberSource: account_key_hash, customer_email e ship_address.

Exemplo:

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
esitef-homologacao.softwareexpress.com.br

curl
--request PUT "https://{{url}}/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

Parâmetros antifraude da CyberSource#

Abaixo segue a relação de parâmetros antifraude processados pela CyberSource. Alguns parâmetros possuem tratamentos diferenciados dependendo da instituição e a coluna de "Detalhe adicional" especifica o tratalmento especial da CyberSource. Para detalhe de cada parametro, veja a lista de parametro de antifraude

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
currencyPurchaseTotals_currency-
itemsArrays de objeto json (Saiba mais)
payerArrays de objeto json (Saiba mais)
Presente apenas nas chamadas REST
shipmentArray de objeto json (Saiba mais)
billing_dataArray de objeto json (Saiba mais)
Se informado, terá precedência sobre os dados que também forem informados no payer
browserObjeto json (Saiba mais)
travelObjeto json (Saiba mais). Obrigatório se o item for passagem aérea
passengersArray de objeto json (Saiba mais)
connectionsArray de objeto json (Saiba mais)
mddArray de objeto json (Saiba mais). Os valores permitidos podem ser consultados aqui.

Objeto items#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
idItem_#_IDString com conteúdo numérico
skuItem_#_productSKUPreenchimento obrigatório
titleItem_#_productName-
quantityItem_#_Quantity-
unit_priceItem_#_unitPricePreenchimento obrigatório
category_idItem_#_productCodePode receber os seguintes valores:
  • adult_content
  • default
  • electronic_good
  • electronic_software
  • gift_certificate
  • handling_only
  • service
  • shipping_and_handling
  • shipping_only
  • stored_value
  • subscription
. Preenchimento obrigatório.

Quando o valor enviado for diferente de default, os campos item_#_quantity; item_#_productName e item_#_productSKU passam a ser obrigatórios;
tax_amountItem_#_taxAmount-

Objeto payer#

Nota: Presente apenas nas chamadas REST

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
namebillTo_firstName-
surnamebillTo_lastName-
emailbillTo_email-
addressObjeto json (Saiba mais)
phonesArray de objeto json (Saiba mais)
documentsArray de objeto json (Saiba mais)

Objeto address do payer#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
street_name + street_numberstreet1-
complementbillTo_street2-
citybillTo_city-
statebillTo_state-
zip_codebillTo_postalCode-
countrybillTo_country-

Objeto phones do payer#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
ddi + ddd + numberphoneNumber-

Objeto documents do payer#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
numberbillTo_customerID-
numberbillTo_personalID-

Objeto shipment#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
nameshipTo_firstName-
surnameshipTo_lastName-
addressObjeto json (Saiba mais)
phonesArrays de objeto json (Saiba mais)

Objeto address do shipment#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
street_nameshipto_street1Enviar o número e o complemento. Lembrar de colocar o AP, APTO, LOTE, CASA ou BLOCO.
street_name2shipto_street2Enviar o número e o complemento. Lembrar de colocar o AP, APTO, LOTE, CASA ou BLOCO.
street_numbershipto_street1-
apartmentSerá concatenado em shipto_street2-
complementSerá concatenado em shipto_street2-
cityshipto_city-
stateshipto_state-
countryshipto_countryEnviar a sigla no padrão ISO
zip_codeshipto_postalCode-
building_numbershipto_building_number-

Objeto phones do shipment#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
ddishipTo_phoneNumber-
dddshipTo_phoneNumber-
numbershipTo_phoneNumber-

Objeto billing_data#

Nota: Se informado, terá precedência sobre os dados que também forem informados no payer.

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
addressObjeto json (Saiba mais)
phonesArrays de objeto json (Saiba mais)

Objeto address do billing_data#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
street_namebillTo_street1Enviar o número e o complemento. Lembrar de colocar o AP, APTO, LOTE, CASA ou BLOCO.
street_name2billTo_street2Enviar o número e o complemento. Lembrar de colocar o AP, APTO, LOTE, CASA ou BLOCO.
street_numberbillTo_street1-
apartmentSerá concatenado em billTo_street2-
complementSerá concatenado em billTo_street2-
citybillTo_city-
statebillTo_state-
countrybillTo_countryEnviar a sigla no padrão ISO
zip_codebillTo_postalCode-

Objeto phones do billing_data#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
ddibillTo_phoneNumber-
dddbillTo_phoneNumber-
numberbillTo_phoneNumber-

Objeto browser#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
ip_addressbillTo_ipAddressSe este campo não for enviado, será enviado o IP do cliente

Objeto travel#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
routedecisionManager_travelData_completeRoute-
journey_typedecisionManager_travelData_journeyType-
departure_date_timedecisionManager_travelData_journeyType-

Objeto passengers#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
iditem_#_passengerId-
nameitem_#_passengerFirstNamePreencher apenas com o primeiro nome
last_nameitem_#_passengerLastNamePreenchimento obrigatório
frequente_flyer_carditem_#_passengerIDO campo billTocustomerID pode abrigar a mesma informação
emailitem_#_passengerEmailSe não único entre os passageiros, a transação será recusada pela CyberSource, com código 102.
statusitem_#_passengerStatus-
typeitem_#_passengerType-
unit_priceitem_#_unitPrice-
phonesArrays de objeto json (Saiba mais)

Objeto phones do passengers#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
ddiitem_#_passengerPhone-
ddditem_#_passengerPhone-
numberitem_#_passengerPhone-

Objeto connections#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
flight_datedecisionManager_travelData_departureDateTimeOs seguintes formatos são aceitos:
  • yyyy-MM-dd HH:mm z
  • yyyy-MM-dd hh:mm a z
  • yyyy-MM-dd hh:mma z
Sendo:
  • HH = hora em formato de 24 horas
  • hh = hora em formato de 12 horas
  • a = am ou pm (case insensitive)
  • z = timezone do vôo de partida (no caso de offset em relação a GMT, siga este formato: GMT-03:00
fromdecisionManager_travelData_leg_#_originValor deve respeitar esta os códigos de aeroporto, desta referência.
todecisionManager_travelData_leg_#_destinationValor deve respeitar esta os códigos de aeroporto, desta referência. É possível também se considerar a rota completa com o campo decisionManager_travelData_completeRoute. Se todos estes campos forem enviados, o valor de completeRoute será preponderante.
departure_datedecisionManager_travelData_departureDateTime-

Objeto mdd#

Propriedades
Carat
Propriedades
CyberSource
Detalhe adicional
idmerchantDefinedData_mddField_idPode variar de 1 a 100 definidos pelo comércio em acordo com a Cybersource
valuemerchantDefinedData_mddField_valueValor dos campos definidos pelo comércio em acordo com a Cybersource

Valores de mdd#

Os MDD's são dados adicionais que ajudam na acertividade da análise antifraude da Cybersource e o envio deles é altamente recomendado. Existem três intervalos de ID de MDD's:

  • Entre 1 até 4, são MDD que serão preenchidos pelo próprio Carat.
  • Entre 5 até 20, são MDD independentes da atividade da loja.
  • Entre 21 até 1000, são MDD dependentes da atividade da loja e o preenchimento deve seguir as orientações da Cybersource. Os valores permitidos de id e a descrição do conteúdo value são:
IDResumoDescrição
5Canal de VendaCanal de Venda do produto/serviço. Exemplo de valor: Web, App, Guichê, etc.)
6SOSistema Operacional utilizado pelo cliente final. Exemplo de valor: Android, iOS, Windows, etc.
7Versão da AplicaçãoVersão da aplicação do cliente. Exemplo de valor: 1.0.12
8Provisionado para futuros dadosProvisionado para futuros dados.
9Provisionado para futuros dadosProvisionado para futuros dados.
10Provisionado para futuros dadosProvisionado para futuros dados.
11Nome utilizado no cadastroNome registrado no cadastro (Obs: em caso de compra guest, não enviar valor)
12CPF utilizado no cadastroCPF registrado no cadastro.
13Tempo de cadastro do cliente em diasTempo de cadastro do cliente em dias. Formato: NNNNN
14Dias desde primeiro pedidoQuantidade de dias passados desde o primeiro pedido. Formato: NNNNN
15Dias desde último pedidoQuantidade de dias passados desde o último pedido. Formato: NNNNN
16Quantidade total de pedidosQuantidade total de pedidos realizados pelo CPF cadastrado. Formato: NNNNN
17Dias desde última alteração cadastralQuantidade de dias passados desde a última alteração cadastral. Formato: NNNNN
18Provisionado para futuros dadosProvisionado para futuros dados.
19Provisionado para futuros dadosProvisionado para futuros dados.
20Provisionado para futuros dadosProvisionado para futuros dados.

ATENÇÃO: Os parâmetros que existem no payer, billing e shipment quando não são passados no serviço de criação de transação através do additional_data, serão solicitados na tela de pagamento. Caso os parâmetros sejam passados no serviço de criação de transação, não será solicitado o preenchimento dos campos na tela de pagamento.

Exemplo#

Exemplo da request de pagamento HTML com análise de risco na CyberSource:

{
"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": "allison@confiavel.com",
"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"
}
]
}
}

Exemplos REST#

Exemplo 1#

Exemplo da request de pagamento REST com análise de risco na CyberSource com destaque ao "Items":

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
esitef-homologacao.softwareexpress.com.br

curl --location --request POST 'https://{{url}}/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": "allison@confiavel.com",
"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"
}
}
}'

Exemplo da Response de pagamento REST com análise de risco na CyberSource com destaque ao "Items":

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

Exemplo da request de efetivação de pagamento REST com análise de risco na CyberSource com destaque ao "Items":

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
esitef-homologacao.softwareexpress.com.br

curl --location --request POST 'https://{{url}}/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"
}
}'

Exemplo da response de efetivação de pagamento REST com análise de risco na CyberSource com destaque ao "Items":

{
"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"
}
}
}

Exemplo 2#

Exemplo da request de pagamento REST com análise de risco na CyberSource com destaque ao "Items" e "passenger":

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
esitef-homologacao.softwareexpress.com.br

curl --location --request POST 'https://{{url}}/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": "joaquin@exemplo.com",
"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": "allison@confiavel.com",
"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"
}
}
}'

Exemplo da response de pagamento REST com análise de risco na CyberSource com destaque ao "Items" e "passenger":

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

Exemplo da request de efetivação de pagamento REST com análise de risco na CyberSource com destaque ao "Items" e "passenger":

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
esitef-homologacao.softwareexpress.com.br

curl --location --request POST 'https://{{url}}/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"
}
}'

Exemplo da response de efetivação de pagamento REST com análise de risco na CyberSource com destaque ao "Items" e "passenger":

{
"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"
}
}
}

Exemplo 3#

Exemplo de Request Review usando simulador

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
esitef-homologacao.softwareexpress.com.br

curl --location --request POST 'https://{{url}}/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": "allison@confiavel.com",
"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"
}
}
}'

Exemplo de response da Review usando simulador

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

Exemplo de Request Para efetivar pagamento da Review usando simulador

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
esitef-homologacao.softwareexpress.com.br

curl --location --request POST 'https://{{url}}/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"
}
}'

Exemplo de Response da ação de efetivar pagamento da Review usando simulador

{
"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"
}
}
}

Exemplo 4#

Exemplo de Request para Reject usando simulador

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
esitef-homologacao.softwareexpress.com.br

curl --location --request POST 'https://{{url}}/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": "allison@confiavel.com",
"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"
}
}
}'

Exemplo de Response para Reject usando simulador

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

Exemplo de Request de efetivação de pagamento para Reject usando simulador

curl --location --request POST 'https://{{url}}/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"
}
}'

Exemplo de response de efetivação de pagamento para Reject usando simulador

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

Exemplo 5#

Exemplo de Request com Item Id inválido

curl --location --request POST 'https://{{url}}/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": "allison@confiavel.com",
"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"
}
}
}'

Exemplo de Response com Item Id inválido

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

Lista de Códigos de Retorno#

Conforme explicado no capítulo "Retorno da análise de risco", os códigos abaixo são as respostas específicas da CyberSource.

CódigoDescrição
100Transação efetuada com sucesso e aprovada pelo Decision Manager
101Um ou mais dos campos requeridos está faltando na requisição
102Um ou mais dos campos requeridos contém dados inválidos
150Erro: Falha geral de sistema
151Erro: A requisição foi recebida mas ocorreu timeout. Esse erro não inclui timeout entre cliente e servidor
152Erro: A requisição foi recebida, mas um serviço não finalizou no tempo de corrida
202Cartão expirado