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:
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
- Link de Pagamento via Portal
- Link de Pagamento via API
- Pagamento REST
- Pré Autorização REST
- Pagamento HTML
- Pré Autorização HTML
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:
| Campo | Descrição |
|---|---|
anti_fraud | Objeto com campos de anti-fraude. |
chargeback | Informa se o aviso para a CyberSource será realizado ou não.<br/>Valores permitidos: true ou false<br/>Valor default: false |
marked_data | Informa quais campos serão relevantes para avisar a CyberSource que esta transação foi uma tentativa de fraude.<br/><br/>Este campo recebe uma lista de valores. Por exemplo: "marked_data":["ship_address","customer_phone","customer_email"]. <br/><br/>Campos que podem ser informados:
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<br/> <URLPOSTMAN/>
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<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
currency | PurchaseTotals_currency | - |
items | Arrays de objeto json (Saiba mais) | |
payer | Arrays de objeto json (Saiba mais) <br/>Presente apenas nas chamadas REST | |
shipment | Array de objeto json (Saiba mais) | |
billing_data | Array de objeto json (Saiba mais) <br/>Se informado, terá precedência sobre os dados que também forem informados no payer | |
browser | Objeto json (Saiba mais) | |
travel | Objeto json (Saiba mais). Obrigatório se o item for passagem aérea | |
passengers | Array de objeto json (Saiba mais) | |
connections | Array de objeto json (Saiba mais) | |
mdd | Array de objeto json (Saiba mais). Os valores permitidos podem ser consultados aqui. |
Objeto items
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
id | Item_#_ID | String com conteúdo numérico |
sku | Item_#_productSKU | Preenchimento obrigatório |
title | Item_#_productName | - |
quantity | Item_#_Quantity | - |
unit_price | Item_#_unitPrice | Preenchimento obrigatório |
category_id | Item_#_productCode | Pode receber os seguintes valores:
default, os campos item_#_quantity; item_#_productName e item_#_productSKU passam a ser obrigatórios; |
tax_amount | Item_#_taxAmount | - |
Objeto payer
Nota: Presente apenas nas chamadas REST
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
name | billTo_firstName | - |
surname | billTo_lastName | - |
email | billTo_email | - |
address | Objeto json (Saiba mais) | |
phones | Array de objeto json (Saiba mais) | |
documents | Array de objeto json (Saiba mais) |
Objeto address do payer
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
street_name + street_number | street1 | - |
complement | billTo_street2 | - |
city | billTo_city | - |
state | billTo_state | - |
zip_code | billTo_postalCode | - |
country | billTo_country | - |
Objeto phones do payer
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
ddi + ddd + number | phoneNumber | - |
Objeto documents do payer
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
number | billTo_customerID | - |
number | billTo_personalID | - |
Objeto shipment
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
name | shipTo_firstName | - |
surname | shipTo_lastName | - |
address | Objeto json (Saiba mais) | |
phones | Arrays de objeto json (Saiba mais) |
Objeto address do shipment
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
street_name | shipto_street1 | Enviar o número e o complemento. Lembrar de colocar o AP, APTO, LOTE, CASA ou BLOCO. |
street_name2 | shipto_street2 | Enviar o número e o complemento. Lembrar de colocar o AP, APTO, LOTE, CASA ou BLOCO. |
street_number | shipto_street1 | - |
apartment | Será concatenado em shipto_street2 | - |
complement | Será concatenado em shipto_street2 | - |
city | shipto_city | - |
state | shipto_state | - |
country | shipto_country | Enviar a sigla no padrão ISO |
zip_code | shipto_postalCode | - |
building_number | shipto_building_number | - |
Objeto phones do shipment
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
ddi | shipTo_phoneNumber | - |
ddd | shipTo_phoneNumber | - |
number | shipTo_phoneNumber | - |
Objeto billing_data
Nota: Se informado, terá precedência sobre os dados que também forem informados no payer.
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
address | Objeto json (Saiba mais) | |
phones | Arrays de objeto json (Saiba mais) |
Objeto address do billing_data
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
street_name | billTo_street1 | Enviar o número e o complemento. Lembrar de colocar o AP, APTO, LOTE, CASA ou BLOCO. |
street_name2 | billTo_street2 | Enviar o número e o complemento. Lembrar de colocar o AP, APTO, LOTE, CASA ou BLOCO. |
street_number | billTo_street1 | - |
apartment | Será concatenado em billTo_street2 | - |
complement | Será concatenado em billTo_street2 | - |
city | billTo_city | - |
state | billTo_state | - |
country | billTo_country | Enviar a sigla no padrão ISO |
zip_code | billTo_postalCode | - |
Objeto phones do billing_data
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
ddi | billTo_phoneNumber | - |
ddd | billTo_phoneNumber | - |
number | billTo_phoneNumber | - |
Objeto browser
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
ip_address | billTo_ipAddress | Se este campo não for enviado, será enviado o IP do cliente |
Objeto travel
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
route | decisionManager_travelData_completeRoute | - |
journey_type | decisionManager_travelData_journeyType | - |
departure_date_time | decisionManager_travelData_journeyType | - |
Objeto passengers
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
id | item_#_passengerId | - |
name | item_#_passengerFirstName | Preencher apenas com o primeiro nome |
last_name | item_#_passengerLastName | Preenchimento obrigatório |
frequente_flyer_card | item_#_passengerID | O campo billTocustomerID pode abrigar a mesma informação |
email | item_#_passengerEmail | Se não único entre os passageiros, a transação será recusada pela CyberSource, com código 102. |
status | item_#_passengerStatus | - |
type | item_#_passengerType | - |
unit_price | item_#_unitPrice | - |
phones | Arrays de objeto json (Saiba mais) |
Objeto phones do passengers
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
ddi | item_#_passengerPhone | - |
ddd | item_#_passengerPhone | - |
number | item_#_passengerPhone | - |
Objeto connections
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
flight_date | decisionManager_travelData_departureDateTime | Os seguintes formatos são aceitos:
|
from | decisionManager_travelData_leg_#_origin | Valor deve respeitar esta os códigos de aeroporto, desta referência. |
to | decisionManager_travelData_leg_#_destination | Valor 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_date | decisionManager_travelData_departureDateTime | - |
Objeto mdd
| Propriedades<br/>Carat | Propriedades<br/>CyberSource | Detalhe adicional |
|---|---|---|
id | merchantDefinedData_mddField_id | Pode variar de 1 a 100 definidos pelo comércio em acordo com a Cybersource |
value | merchantDefinedData_mddField_value | Valor 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
MDDque serão preenchidos pelo próprio Carat. - Entre 5 até 20, são
MDDindependentes da atividade da loja. - Entre 21 até 1000, são
MDDdependentes da atividade da loja e o preenchimento deve seguir as orientações da Cybersource. Os valores permitidos deide a descrição do conteúdovaluesão:
| ID | Resumo | Descrição |
|---|---|---|
5 | Canal de Venda | Canal de Venda do produto/serviço. Exemplo de valor: Web, App, Guichê, etc.) |
6 | SO | Sistema Operacional utilizado pelo cliente final. Exemplo de valor: Android, iOS, Windows, etc. |
7 | Versão da Aplicação | Versão da aplicação do cliente. Exemplo de valor: 1.0.12 |
8 | Provisionado para futuros dados | Provisionado para futuros dados. |
9 | Provisionado para futuros dados | Provisionado para futuros dados. |
10 | Provisionado para futuros dados | Provisionado para futuros dados. |
11 | Nome utilizado no cadastro | Nome registrado no cadastro (Obs: em caso de compra guest, não enviar valor) |
12 | CPF utilizado no cadastro | CPF registrado no cadastro. |
13 | Tempo de cadastro do cliente em dias | Tempo de cadastro do cliente em dias. Formato: NNNNN |
14 | Dias desde primeiro pedido | Quantidade de dias passados desde o primeiro pedido. Formato: NNNNN |
15 | Dias desde último pedido | Quantidade de dias passados desde o último pedido. Formato: NNNNN |
16 | Quantidade total de pedidos | Quantidade total de pedidos realizados pelo CPF cadastrado. Formato: NNNNN |
17 | Dias desde última alteração cadastral | Quantidade de dias passados desde a última alteração cadastral. Formato: NNNNN |
18 | Provisionado para futuros dados | Provisionado para futuros dados. |
19 | Provisionado para futuros dados | Provisionado para futuros dados. |
20 | Provisionado para futuros dados | Provisionado para futuros dados. |
ATENÇÃO: Os parâmetros que existem no
payer,billingeshipmentquando não são passados no serviço de criação de transação através doadditional_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<br/> <URLPOSTMAN/>
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<br/> <URLPOSTMAN/>
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<br/> <URLPOSTMAN/>
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<br/> <URLPOSTMAN/>
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<br/> <URLPOSTMAN/>
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<br/> <URLPOSTMAN/>
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<br/> <URLPOSTMAN/>
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ódigo | Descrição |
|---|---|
100 | Transação efetuada com sucesso e aprovada pelo Decision Manager |
101 | Um ou mais dos campos requeridos está faltando na requisição |
102 | Um ou mais dos campos requeridos contém dados inválidos |
150 | Erro: Falha geral de sistema |
151 | Erro: A requisição foi recebida mas ocorreu timeout. Esse erro não inclui timeout entre cliente e servidor |
152 | Erro: A requisição foi recebida, mas um serviço não finalizou no tempo de corrida |
202 | Cartão expirado |