CyberSource
#
Credenciais necessáriasComo 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 WebhookPara 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 permitidasSeguem 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 fraudeAo 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. Valores permitidos: true ou false Valor default: false |
marked_data | Informa 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_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
#
Parâmetros antifraude da CyberSourceAbaixo 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 |
---|---|---|
currency | PurchaseTotals_currency | - |
items | Arrays de objeto json (Saiba mais) | |
payer | Arrays de objeto json (Saiba mais) Presente apenas nas chamadas REST | |
shipment | Array de objeto json (Saiba mais) | |
billing_data | Array de objeto json (Saiba mais) 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. |
items
#
Objeto Propriedades Carat | Propriedades 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:
Quando o valor enviado for diferente de default , os campos item_#_quantity ; item_#_productName e item_#_productSKU passam a ser obrigatórios; |
tax_amount | Item_#_taxAmount | - |
payer
#
Objeto Nota: Presente apenas nas chamadas REST
Propriedades Carat | Propriedades 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) |
address
do payer
#
Objeto Propriedades Carat | Propriedades CyberSource | Detalhe adicional |
---|---|---|
street_name + street_number | street1 | - |
complement | billTo_street2 | - |
city | billTo_city | - |
state | billTo_state | - |
zip_code | billTo_postalCode | - |
country | billTo_country | - |
phones
do payer
#
Objeto Propriedades Carat | Propriedades CyberSource | Detalhe adicional |
---|---|---|
ddi + ddd + number | phoneNumber | - |
documents
do payer
#
Objeto Propriedades Carat | Propriedades CyberSource | Detalhe adicional |
---|---|---|
number | billTo_customerID | - |
number | billTo_personalID | - |
shipment
#
Objeto Propriedades Carat | Propriedades CyberSource | Detalhe adicional |
---|---|---|
name | shipTo_firstName | - |
surname | shipTo_lastName | - |
address | Objeto json (Saiba mais) | |
phones | Arrays de objeto json (Saiba mais) |
address
do shipment
#
Objeto Propriedades Carat | Propriedades 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 | - |
phones
do shipment
#
Objeto Propriedades Carat | Propriedades CyberSource | Detalhe adicional |
---|---|---|
ddi | shipTo_phoneNumber | - |
ddd | shipTo_phoneNumber | - |
number | shipTo_phoneNumber | - |
billing_data
#
Objeto Nota: Se informado, terá precedência sobre os dados que também forem informados no payer.
Propriedades Carat | Propriedades CyberSource | Detalhe adicional |
---|---|---|
address | Objeto json (Saiba mais) | |
phones | Arrays de objeto json (Saiba mais) |
address
do billing_data
#
Objeto Propriedades Carat | Propriedades 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 | - |
phones
do billing_data
#
Objeto Propriedades Carat | Propriedades CyberSource | Detalhe adicional |
---|---|---|
ddi | billTo_phoneNumber | - |
ddd | billTo_phoneNumber | - |
number | billTo_phoneNumber | - |
browser
#
Objeto Propriedades Carat | Propriedades CyberSource | Detalhe adicional |
---|---|---|
ip_address | billTo_ipAddress | Se este campo não for enviado, será enviado o IP do cliente |
travel
#
Objeto Propriedades Carat | Propriedades CyberSource | Detalhe adicional |
---|---|---|
route | decisionManager_travelData_completeRoute | - |
journey_type | decisionManager_travelData_journeyType | - |
departure_date_time | decisionManager_travelData_journeyType | - |
passengers
#
Objeto Propriedades Carat | Propriedades 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) |
phones
do passengers
#
Objeto Propriedades Carat | Propriedades CyberSource | Detalhe adicional |
---|---|---|
ddi | item_#_passengerPhone | - |
ddd | item_#_passengerPhone | - |
number | item_#_passengerPhone | - |
connections
#
Objeto Propriedades Carat | Propriedades 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 | - |
mdd
#
Objeto Propriedades Carat | Propriedades 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 |
mdd
#
Valores de 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 deid
e a descrição do conteúdovalue
sã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
,billing
eshipment
quando 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.
#
ExemploExemplo da request de pagamento HTML com análise de risco na CyberSource:
#
Exemplos REST#
Exemplo 1Exemplo 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
Exemplo da Response de pagamento REST com análise de risco na CyberSource com destaque ao "Items":
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
Exemplo da response de efetivação de pagamento REST com análise de risco na CyberSource com destaque ao "Items":
#
Exemplo 2Exemplo 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
Exemplo da response de pagamento REST com análise de risco na CyberSource com destaque ao "Items" e "passenger":
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
Exemplo da response de efetivação de pagamento REST com análise de risco na CyberSource com destaque ao "Items" e "passenger":
#
Exemplo 3Exemplo 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
Exemplo de response da Review usando simulador
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
Exemplo de Response da ação de efetivar pagamento da Review usando simulador
#
Exemplo 4Exemplo 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
Exemplo de Response para Reject usando simulador
Exemplo de Request de efetivação de pagamento para Reject usando simulador
Exemplo de response de efetivação de pagamento para Reject usando simulador
#
Exemplo 5Exemplo de Request com Item Id inválido
Exemplo de Response com Item Id inválido
#
Lista de Códigos de RetornoConforme 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 |