iFrame para análise do Browser
Uma peça chave do fraudControl! é a análise do browser do comprador. Com esta informação é possível traçar uma “impressão digital” da máquina do comprador e avaliar a probabilidade daquela transação ser uma fraude onde, por exemplo, o computador está em um fuso horário da Rússia, mas o endereço de entrega é no RJ.
Segue abaixo o fluxo geral dos dados de transações envolvendo o antifraude:
Para permitir a análise, o Lojista precisa incluir na sua página de check-out um iFrame, com os campos abaixo:
Campo |
<
Descrição |
m |
Corresponde ao ID de Loja (merchantId) criado pela maxiPago!. Exemplo: 100 |
s |
Número do pedido (referenceNum) criado pelo Lojista. Este valor deve ser o mesmo passado no campo ‘referenceNum’ da API Exemplo: ORD12345678 |
k |
Chave secreta usada exclusivamente para a criação deste Hash. Esta chave deve ser solicitada para: suporte@maxipago.com Exemplo: key1234567890abcd |
h |
Hash HMAC-MD5 de validação, formado pela concatenação dos campos m e s, intercalados pelo símbolo * (asterisco) e computados pelo algoritmo MD5 com a chave k. Exemplo: fe220a160c7fa6f7fc104185f8663e45 |
O detalhamento do fluxo do cálculo do h está descrito no seguinte diagrama:
O iFrame fica, então, da seguinte forma:
<iframe width=”1” height=”1” frameborder=”0” src=”https://testauthentication.maxipago.net/redirection_service/logo?m=100&s=ORD12345678&h=fe220a160c7fa6f7fc104185f8663e45”> </iframe>
Kount – Requisições de Fraude
As chamadas para o fraudControl! já estão incluídas em nossa API. Portanto, não há a necessidade de métodos adicionais. Se o serviço estiver contratado, basta enviar uma transação para que ela seja verificada.
Para escolher quais transações serão passadas pelo serviço e quais serão processadas sem checagem de fraude, basta incluir o campo fraudCheck na requisição com os valores “Y” ou “N”. Ou se preferir solicite que todas as transações de cartão de crédito sejam enviadas para o fraudControl!
Kount – URL para envio dos dados
SANDBOX: https://testapi.maxipago.net/UniversalAPI/postXML
PRODUÇÃO: https://api.maxipago.net/UniversalAPI/postXML
Kount – Exemplo de chamada de autorização
<?xml version="1.0" encoding="UTF-8"?> <transaction-request> <version>3.1.1.15</version> <verification> <merchantId>store-id</merchantId> <merchantKey>secret-key</merchantKey> </verification> <order> <auth> <processorID>1</processorID> <referenceNum>K20151109-03</referenceNum> <fraudCheck>Y</fraudCheck> <ipAddress>123.123.123.123</ipAddress> <billing> <id>2546582</id> <name>Fulano de Tal</name> <address>Av. Republica Livre, 230</address> <address2>16 Andar</address2> <district>Centro</district> <city>Sao Paulo</city> <state>SP</state> <postalcode>08021310</postalcode> <country>BR</country> <email>fulanodetal@email.com</email> <type>Individual</type> <gender>M</gender> <birthDate>1982-03-08</birthDate> <phones> <phone> <phoneType>Commercial</phoneType> <phoneCountryCode>55</phoneCountryCode> <phoneAreaCode>11</phoneAreaCode> <phoneNumber>55554444</phoneNumber> <phoneExtension>1234</phoneExtension> </phone> <phone> <phoneType>Residential</phoneType> <phoneCountryCode>55</phoneCountryCode> <phoneAreaCode>11</phoneAreaCode> <phoneNumber>55554444</phoneNumber> <phoneExtension>1234</phoneExtension> </phone> </phones> <documents> <document> <documentType>CPF</documentType> <documentValue>259228370-60</documentValue> </document> <document> <documentType>RG</documentType> <documentValue>12546785-2Y</documentValue> </document> </documents> </billing> <shipping> <id>OFFICE</id> <name>Fulana de Tal</name> <address>Rua de Teste, 123</address> <address2>16 Andar</address2> <district>Centro</district> <city>Sao Paulo</city> <state>SP</state> <postalcode>12345000</postalcode> <country>BR</country> <type>Individual</type> <gender>F</gender> <birthDate>1982-03-08</birthDate> <phones> <phone> <phoneType>Commercial</phoneType> <phoneCountryCode>55</phoneCountryCode> <phoneAreaCode>11</phoneAreaCode> <phoneNumber>55554444</phoneNumber> <phoneExtension>1234</phoneExtension> </phone> <phone> <phoneType>Residential</phoneType> <phoneCountryCode>55</phoneCountryCode> <phoneAreaCode>11</phoneAreaCode> <phoneNumber>55554444</phoneNumber> <phoneExtension>1234</phoneExtension> </phone> </phones> <documents> <document> <documentType>CPF</documentType> <documentValue>128856789-80</documentValue> </document> <document> <documentType>RG</documentType> <documentValue>123456789-60Z</documentValue> </document> </documents> </shipping> <fraudDetails> <fraudProcessorID>99</fraudProcessorID> <captureOnLowRisk>N</captureOnLowRisk> <voidOnHighRisk>N</voidOnHighRisk> <websiteId>MXP_DEV</websiteId> <fraudToken>q1234564987981alksf43549138</fraudToken> </fraudDetails> <transactionDetail> <payType> <creditCard> <number>4539330315585581</number> <expMonth>12</expMonth> <expYear>2016</expYear> <cvvNumber>082</cvvNumber> </creditCard> </payType> </transactionDetail> <payment> <chargeTotal>149.99</chargeTotal> <shippingTotal>10.00</shippingTotal> </payment> <itemList itemCount="3"> <item> <itemIndex>1</itemIndex> <itemProductCode>Product de Teste Um</itemProductCode> <itemDescription>Certificacao de Integracao 01</itemDescription> <itemQuantity>2</itemQuantity> <itemTotalAmount>30.00</itemTotalAmount> <itemUnitCost>15.00</itemUnitCost> </item> <item> <itemIndex>2</itemIndex> <itemProductCode>Produto de Teste Dois</itemProductCode> <itemDescription>Certificacao de Integracao 02</itemDescription> <itemQuantity>2</itemQuantity> <itemTotalAmount>10.00</itemTotalAmount> <itemUnitCost>5.00</itemUnitCost> </item> <item> <itemIndex>3</itemIndex> <itemProductCode>Produto de Teste Tres</itemProductCode> <itemDescription>Certificacao de Integracao 03</itemDescription> <itemQuantity>3</itemQuantity> <itemTotalAmount>99.99</itemTotalAmount> <itemUnitCost>33.33</itemUnitCost> </item> </itemList> </auth> </order> </transaction-request>
Kount – Exemplo de retorno da chamada de autorização com sucesso
<?xml version="1.0" encoding="UTF-8"?> <transaction-response> <authCode>123456</authCode> <orderID>0A01159A:0157D30291E8:ABC3:57D3E40F</orderID> <referenceNum>2016</referenceNum> <transactionID>160701373</transactionID> <transactionTimestamp>1476713985</transactionTimestamp> <responseCode>0</responseCode> <responseMessage>AUTHORIZED</responseMessage> <avsResponseCode>YYY</avsResponseCode> <cvvResponseCode>M</cvvResponseCode> <processorCode>A</processorCode> <processorMessage>APPROVED</processorMessage> <errorMessage/> <processorTransactionID>P4630LMLSK0K</processorTransactionID> <processorReferenceNumber>135792468</processorReferenceNumber> <fraudScore>38</fraudScore> <creditCardCountry>US</creditCardCountry> <creditCardScheme>Visa</creditCardScheme> </transaction-response>
Kount – Exemplo de retorno da chamada de autorização com erro
<?xml version="1.0" encoding="UTF-8"?> <transaction-response> <authCode>123456</authCode> <orderID>0A01159A:0157D2F0FF0E:3551:338D9133</orderID> <referenceNum>K20151109-03</referenceNum> <transactionID>160700938</transactionID> <transactionTimestamp>1476712834</transactionTimestamp> <responseCode>1024</responseCode> <responseMessage>INVALID REQUEST</responseMessage> <avsResponseCode>YYY</avsResponseCode> <cvvResponseCode>M</cvvResponseCode> <processorCode>A</processorCode> <processorMessage>APPROVED</processorMessage> <errorMessage>Request is invalid and can not be processed.</errorMessage> <processorReferenceNumber>135792468</processorReferenceNumber> <creditCardCountry>US</creditCardCountry> <creditCardScheme>Visa</creditCardScheme> </transaction-response>
Kount – Tabela de parâmetros
Nome |
Obrigatório |
Tamanho |
Descrição |
version |
Sim |
11 |
Versão da API |
merchantId |
Sim |
20 |
Id de Loja que identifica o estabelecimento |
merchantKey |
Sim |
80 |
Chave associada ao ID da loja |
referenceNum |
Sim |
128 |
Identificador do pedido no estabelecimento Este campo aceita apenas valores alfanuméricos e deve ser único. |
processorID |
Sim |
2 |
Código da Adquirente que irá processar a transaçãoSIMULADOR DE TESTES = 1
REDE = 5 GETNET = 3 CIELO = 4 ELAVON = 6 CHASEPAYMENTECH = 8 STONE = 9 |
fraudCheck |
Não |
1 |
Flag para enviar transação para verificação de fraude. Se deixado em branco a transação será verificadaY ou vazio/nulo = ChecarN = Não ChecarEste campo só funciona para clientes que possuem o serviço de antifraude contratado. |
ipAddress |
Não |
16 |
Endereço de IP do comprador |
billing/id shipping/id |
Sim |
50 |
ID do consumidor na base do lojista |
billing/name shipping/name |
Sim |
64 |
Nome do cliente (somente alfabético) |
billing/address shipping/address |
Sim |
128 |
Logradouro de cobrança da transação (sem acentos e caracteres especiais) |
billing/address2 shipping/address2 |
Não |
128 |
Complemento do Logradouro de cobrança da transação (sem acentos e caracteres especiais) |
billing/district shipping/district |
Sim |
64 |
Bairro (sem acentos e caracteres especiais) |
billing/city shipping/city |
Sim |
64 |
Cidade (sem acentos e caracteres especiais) |
billing/state shipping/state |
Sim |
32 |
Estado (enviado com 2 dígitos) |
billing/postalcode shipping/postalcode |
Sim |
16 |
CEP de Cobrança |
billing/country shipping/country |
Sim |
64 |
País (Abreviação de 2 dígitos) |
billing/email shipping/email |
Sim |
128 |
Utilização obrigatória de “@” |
billing/type shipping/type |
Sim |
50 |
Use “Individual” para CPF e “Legal entity” para CNPJ |
billing/gender shipping/gender |
Sim |
1 |
Sexo (“M” ou “F) |
billing/birthDate shipping/birthDate |
Sim |
12 |
Data de nascimento (AAAA-MM-DD) |
phone/phoneType |
Sim |
50 |
Utilize um dos dados abaixo:- Residential- Commercial- Mobile
– Fax – Undefined – Message – Billing |
document/documentType |
Sim |
50 |
Tipo de Documento. Utilize a lista abaixo:CPFRGCNPJ
StateRegistration (não aplicado ao BR) MunicipalRegistration (não aplicado ao BR) Passport CTPS (Carteira de Trabalho – número PIS) VoterDocument (Título de Eleitor) |
document/documentValue |
Sim |
50 |
Número do documento |
fraudDetails/fraudProcessorID |
Não |
32 |
Envio do ProcessorID quando houver mais de um antifraude configurado na maxiPago! |
fraudDetails/captureOnLowRisk |
Não |
1 |
Permite realizar a captura de uma transação após aprovação (“Y” ou “N”) |
fraudDetails/voidOnHighRisk |
Não |
1 |
Permite cancelar (void) uma transação quando houver uma reprovação do antifraude via maxiPago! |
fraudDetails/fraudToken |
Sim |
150 |
Envio do SessionId da transação enviado no DeviceFingerprint na Kount ou ClearSale |
number |
Sim |
19 |
Número do cartão de crédito do cliente |
expMonth |
Sim |
2 |
Mês de vencimento do cartão com 2 dígitos Exemplo: Janeiro = 01 |
expYear |
Sim |
4 |
Ano de vencimento do cartão com 4 dígitos |
cvvNumber |
Sim |
14 |
Código de segurança do cartão |
currencyCode |
Não |
3 |
Código da moeda da transação no formato ISO 4217Válido somente para transações Chase Paymentech. |
chargeTotal |
Sim |
14.2 |
Valor do pedido Os decimais devem ser separados por ponto (“.”) |
shippingTotal |
Não |
14.2 |
Valor do frete que será cobrado. Os decimais devem ser separados por ponto (“.”) |
iataFee |
Não |
14.2 |
É um campo informativo (ou seja não é somado ao valor da autorização) que define o montante da Taxa de Embarque da transação que deve ser destinado ao pagamento à Infraero. No momento disponível para a Cielo nas bandeiras Visa e Mastercard. Os decimais devem ser separados por ponto (“.”) |
numberOfInstallments |
Não |
2 |
Número de parcelas da transação Para transações à vista não enviar/enviar nulo. |
chargeInterest |
Não |
1 |
Define se o parcelamento é do tipo Loja ou CartãoPara transações à vista não enviar/enviar nulo.N = Sem juros (PADRÃO – parcelamento Loja)Y = Com juros (parcelamento Cartão) |
itemIndex |
Sim |
1 |
Itens: Enumerador do item de 1 a n |
itemProductCode |
Não |
50 |
Itens: Categoria do produto; Alfanumérico Ex: Acessórios de cozinha |
itemDescription |
Sim |
100 |
Itens: Descrição do Item; Alfanumérico Ex: Facas Ginsu |
itemQuantity |
Sim |
10 |
Itens: Quantidade deste item |
itemTotalAmount |
Sim |
19 |
Valor do Item. Os decimais devem ser separados por ponto (“.”) |
itemUnitCost |
Sim |
1 |
Valor do Item. Os decimais devem ser separados por ponto (“.”) |
websiteId |
Sim |
8 |
Canal de venda. Ex: loja virtual, televendas e outros. |