PDF

Transcrição

PDF
Manual de integração via Web services V5
PayZen 2.6
Versão do documento 1.7.2
Conteúdo
1. Histórico do documento.................................................................................................................4
2. Entrar em contato com o suporte técnico............................................................................... 6
3. Apresentação dos serviços web...................................................................................................7
3.1. Descrição dos serviços web........................................................................................................................ 7
O cabeçalho SOAP HEADER................................................................................................................8
O corpo (Body).......................................................................................................................................8
3.2. Gerenciar os códigos de erro e as exceções............................................................................................. 10
Gerenciar as exceções...........................................................................................................................10
Tratar os erros aplicativos.................................................................................................................... 11
3.3. Gerenciar os códigos de retorno de uma solicitação de autorização........................................................ 15
3.4. Gerenciar os códigos de retorno retornados pelo analista de risco externo.............................................. 17
3.5. Gerenciar os códigos de erros durante um pagamento recusado.............................................................. 19
3.6. Unir as solicitações Web service (manter uma mesma sessão HTTP)..................................................... 22
3.7. Gerenciar os prazos de espera (Timeout)................................................................................................. 24
3.8. Especificar os tipos de dados....................................................................................................................25
4. Identificar-se durante as trocas................................................................................................26
4.1. Efetuar a autenticação............................................................................................................................... 27
4.2. Construir o cabeçalho SOAP HEADER da solicitação............................................................................ 28
Exemplo de código em PHP para construir o cabeçalho SOAP HEADER......................................... 30
4.3. Verificar o cabeçalho SOAP na resposta..................................................................................................31
Exemplo de código PHP para resgatar os cabeçalhos SOAP na resposta........................................... 31
5. Gerar um uuid - retro compatibilidade................................................................................. 32
5.1. Solicitação para enviar.............................................................................................................................. 32
legacyTransactionKeyRequest.............................................................................................................. 33
5.2. Resposta..................................................................................................................................................... 33
commonResponse..................................................................................................................................33
paymentResponse.................................................................................................................................. 34
6. Realizar operações comuns nas transações......................................................................... 35
6.1. Criar uma transação de pagamento 'createPayment'................................................................................. 35
Compartilhamento de códigos.............................................................................................................. 35
Solicitação para enviar..........................................................................................................................36
Resposta.................................................................................................................................................45
Criar um pagamento sem autenticação 3D Secure.............................................................................. 58
Criar um pagamento com autenticação 3D Secure.............................................................................. 61
6.2. Modificar uma transação de pagamento 'updatePayment'........................................................................ 70
Solicitação para enviar..........................................................................................................................70
Resposta.................................................................................................................................................73
6.3. Modificar os dados (carrinho) de uma transação 'updatePaymentDetails'................................................85
Solicitação para enviar..........................................................................................................................85
Resposta.................................................................................................................................................87
6.4. Cancelar uma transação de pagamento 'cancelPayment'...........................................................................99
Solicitação para enviar..........................................................................................................................99
Resposta...............................................................................................................................................100
6.5. Procurar pagamentos 'findPayments'.......................................................................................................102
Solicitação para enviar........................................................................................................................102
Resposta...............................................................................................................................................103
6.6. Reembolsar um comprador 'refundPayment'...........................................................................................106
Solicitação para enviar........................................................................................................................106
Resposta...............................................................................................................................................108
6.7. Duplicar uma transação de pagamento 'duplicatePayment'.................................................................... 121
Solicitação para enviar........................................................................................................................121
Resposta...............................................................................................................................................124
6.8. Validar uma transação de pagamento 'validatePayment'........................................................................ 137
Solicitação para enviar........................................................................................................................137
Resposta...............................................................................................................................................138
6.9. Capturar uma transação de pagamento 'capturePayment'....................................................................... 140
Solicitação para enviar........................................................................................................................140
Resposta...............................................................................................................................................141
6.10. Obter o detalhes de uma transação de pagamento 'getPaymentDetails'................................................142
Solicitação para enviar........................................................................................................................142
Resposta...............................................................................................................................................143
6.11. Verificar a autenticação 3D Secure. 'verifyThreeDSEnrollment'..........................................................156
Solicitação para enviar........................................................................................................................156
Resposta...............................................................................................................................................159
6.12. Verificar o status da autenticação 3D Secure.'checkThreeDSAuthentication'...................................... 161
Solicitação para enviar........................................................................................................................161
Resposta...............................................................................................................................................162
7. Efetuar operações específicas aos pagamento por código............................................164
7.1. Criar um alias (código) 'createToken'..................................................................................................... 165
Compartilhamento de códigos............................................................................................................ 165
Solicitação para enviar........................................................................................................................165
Resposta...............................................................................................................................................172
7.2. Criar um Token Cartão (código) a partir de uma transação 'createTokenFromTransaction'...................174
Solicitação para enviar........................................................................................................................174
Resposta...............................................................................................................................................175
7.3. Modificar um alias (código) 'updateToken'............................................................................................ 178
Solicitação para enviar........................................................................................................................178
Resposta...............................................................................................................................................184
7.4. Recuperar os detalhes de um alias (código) 'getTokenDetails'...............................................................186
Solicitação para enviar........................................................................................................................186
Resposta...............................................................................................................................................187
7.5. Rescindir um Token Cartão (código) 'cancelToken'...............................................................................192
Solicitação para enviar........................................................................................................................192
Resposta...............................................................................................................................................193
7.6. Reativar um alias (código) 'reactivateToken'.......................................................................................... 194
Solicitação para enviar........................................................................................................................194
Resposta...............................................................................................................................................195
7.7. Realizar pagamentos recorrentes (assinaturas) 'createSubscription'........................................................196
Solicitação para enviar........................................................................................................................196
Resposta...............................................................................................................................................200
7.8. Modificar uma assinatura 'updateSubscription'.......................................................................................202
Solicitação para enviar........................................................................................................................202
Resposta...............................................................................................................................................205
7.9. Recuperar os detalhes de uma assinatura 'getSubscriptionDetails'......................................................... 206
Solicitação para enviar........................................................................................................................206
Resposta...............................................................................................................................................207
7.10. Cancelar uma assinatura 'cancelSubscription'....................................................................................... 210
Solicitação para enviar........................................................................................................................210
Resposta...............................................................................................................................................211
8. Anexo................................................................................................................................................212
8.1. Exemplos em PHP...................................................................................................................................212
createPayment......................................................................................................................................224
findPayments....................................................................................................................................... 229
createToken......................................................................................................................................... 231
createSubscription............................................................................................................................... 233
cancelSubscription...............................................................................................................................236
1. Histórico do documento
Versão
Autor
Data
Comentário
1.7.2
Lyra Network
23/06/2016
•
Formato fixo operationType
1.7.1
Lyra Network
01/06/2016
•
Correção do quadro customerRequest em createToken e
em updateToken : somente billingDetails é marcado como
requerido
Exclusão comentário <!--Optional:--> dos exemplos de
códigos
•
1.7
Lyra Network
05/2016
•
•
•
•
•
•
•
Novo código de erro no capítulo Gerenciar os erros
aplicativos (3).
Adição dos valores AMEX capítulo Gerenciar os códigos de
retorno de uma solicitação de autorização.
Adição do atributo transactionId (objeto paymentRequest)
para as operações createPayment, refundPayment e
duplicatePayment.
Correção: operação checkThreeDSAuthentication : o atributo
transactionCondition do objeto authenticationResultData
não é retornado na resposta.
Complementos de informações sobre o atributo rrule.
Complemento de informação capítulo Criar um token cartão
a partir de uma transação 'createTokenFromTransaction'.
Adição do atributo mpiExtension (objeto threeDSRequest)
para a operação verifyThreeDSEnrollement.
1.6
Lyra Network
01/02/2016
Novas operações:
• updatePaymentDetails
• createTokenFromTransaction
1.5
Lyra Network
23/11/2015
•
•
•
•
Adição dos valores associados ao objeto eci.
Adição do objeto shoppingCart para transmitir o conteúdo do
carrinho na solicitação createPayment.
Adição do objeto tokenResponse para resgatar na operação
getTokenDetails informações sobre a data de criação e/ou de
rescisão de um token cartão.
Complemento de informação sobre o compartilhamento de
códigos entre diversas entidades jurídicas.
1.4
Lyra Network
20/09/2015
Correção de um erro nos capítulos:
• Definir a cinemática com autenticação 3D Secure
• Exemplos de respostas a um pagamento com autenticação
3D Secure
• Manter uma mesma sessão HTTP para um pagamento com
autenticação 3D Secure
• Redirecionar o navegador do comprador para o ACS dele
1.3
Lyra Network
04/08/2015
•
•
•
•
1.2
Lyra Network
29/06/2015
•
•
•
•
Adição da lista dos códigos de erros retornados quando um
pagamento for recusado.
Adição do atributo paymentError para o objeto
paymentResponse.
Adição do atributo chargeback para o objeto
captureResponse.
Adição do atributo riskAssessment para o objeto
fraudManagementResponse.
Adição do atributo subscriptionId para o objeto
subscriptionRequest.
Modificação do código de erro 83 (responseCode).
Adição dos atributos type et sequenceNumber para o objeto
paymentResponse (Gerenciamento do multi-pagamento na
resposta).
Adição de exemplos em anexo.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 4 / 237
Versão
Autor
Data
Comentário
1.1
Lyra Network
13/04/2015
O atributo transactionIds (do objeto settlementRequest na
operação capturePayment) é renomeado em transactionUuids.
1.0
Lyra Network
01/04/2015
Upgrade do wsdl em versão 5.0
Confidencialidade
Todas as informações contidas neste documento são consideradas confidenciais. O uso destas fora do quadro da
presente consulta ou a divulgação para pessoas alheias esta submetida à aprovação antecipada da Lyra Network.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 5 / 237
2. Entrar em contato com o suporte técnico
Em caso de problema de conexão com o Back Office, clique no link "senha esquecida ou senha bloqueada".
Para perguntas técnicas ou solicitação de assistência, nossos serviços estão abertos de segunda a sextafeira, de 8h a 17h
por telefone no:
+55 (11) 3336-9217 ou +55 (11) 3336-9209 desde o Brasil
por e-mail:
[email protected]
Para facilitar o atendimento das suas solicitações, você deverá informar seu código de loja (número com
8 dígitos).
Esta informação aparece no e-mail de cadastro da sua loja, ou no Back Office (menu Configuração > Loja
> Configurações).
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 6 / 237
3. Apresentação dos serviços web
Este documento detalha uma série de operações que podem ser solicitadas remotamente via Internet,
sem restrições referentes às linguagens de programação e às plataformas utilizadas.
Os serviços web são utilizados para integrar uma ou mais funcionalidades de pagamento em um software
pro de gestão integrada.
Dois tipos de operações são disponibilizados:
Operações comuns sobre as transações
• Cria pagamentos (com ou sem autenticação 3D Secure).
• Permitir ações automáticas sobre as transações (reembolso, cancelamento...).
Para utilizar esta solução, o vendedor deve contratar a opção pagamento por serviço web.
Operações específicas aos pagamento por código
• Geranciar alias (utilizados para o pagamento em um clic).
• Gerenciar assinaturas.
Para utilizar esta solução, o vendedor deve contratar a opção pagamento por código..
Entre em contato com o serviço de atendimento ao cliente para maiores informações.
3.1. Descrição dos serviços web
Os serviços web são desenvolvidos de acordo com o protocolo SOAP versão 1.2 (Simple Object Access
Protocol) e são apresentados no arquivo wsdl seguinte:
https://secure.payzen.com.br/vads-ws/v5?wsdl
Observação : Se você se conecta a internet via um proxy a partir de um servidor aplicativo, favor entrar
em contato com nosso serviço de suporte pra saber se vai ser preciso configurar o acesso a esta URL.
Uma mensagem SOAP está contida em uma envelope.
A estrutura da envelope SOAP é definida da seguinte forma:
• um cabeçalho (Header)
Contém informações sobre o tratamento da mensagem.
• um corpo (Body)
Contém as informações da solicitação ou da resposta
• um gerenciamento de erros contido no corpo
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 7 / 237
O cabeçalho SOAP HEADER
O HEADER é um cabeçalho que fornece informações que permitem autenticar e proteger os dados trocados
entre o site de e-commerce e a plataforma de pagamento.
Contém:
• shopId
Código da loja do vendedor.
• requestId
UUID (código universal único)
O valor dele permite calcular a ficha de autenticação.
• timestamp
Representação numérica da data e da hora da solicitação no formato ISO 8601 - W3C et UTC.
• mode
Tipo de transação.
Pode ter o valor TEST (para uma transação de teste) ou PRODUCTION (para uma transação real).
• authToken
Ficha de autenticação.
Deve sistematicamente ser transmitido e os valores que ele contém devem ser calculados de novo a
cada chamada.
Exemplo de HEADER na solicitação e na resposta:
<soap:Header xmlns:soapHeader="http://v5.ws.vads.lyra.com/Header">
<soapHeader:shopId>12345678</soapHeader:shopId>
<soapHeader:requestId>04967dae-af01-43ff-a7d8-f3f228b9b1c2</soapHeader:requestId>
<soapHeader:timestamp>2014-10-31T16:38:19Z</soapHeader:timestamp>
<soapHeader:mode>TEST</soapHeader:mode>
<soapHeader:authToken>NxoFUSsTqmMjwaDzTXyCN4nNpMOVJKb5UxHdS9TBuTg=</soapHeader:authToken>
</soap:Header>
O corpo (Body)
O corpo da mensagem SOAP é contido em uma baliza <Body> obrigatória.
Contém os dados trocados entre o cliente e o serviço sob a forma de uma fragmento de documento XML.
Estes dados correspondem à solicitação ou à resposta.
As mensagens trocadas entre o vendedor e a plataforma de pagamento seguem uma sintaxe precisa (ver
capítulo Especificar os tipos de dados).
Exemplo de BODY:
Solicitação
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:v5="http://
v5.ws.vads.lyra.com/">
<soap:Header xmlns:soapHeader="http://v5.ws.vads.lyra.com/Header">
...
</soap:Header>
<soap:Body>
<myOperationRequest>
...
</myOperationRequest>
</soap:Body>
</soap:Envelope>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 8 / 237
Resposta
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
...
</env:Header>
<soap:Body>
<myOperationResponse>
<return>
...
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
...
</commonResponse>
...
</return>
</myOperationResponse>
</soap:Body>
</soap:Envelope>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 9 / 237
3.2. Gerenciar os códigos de erro e as exceções
As operações webservices realizam diversos controles sobre as configurações da solicitação.
Elas podem gerar dois tipos de retorno em caso de erro:
• as exceções (SOAP Fault exceptions),
• os erros aplicativos.
Gerenciar as exceções
Gerenciar as exceções
As exceções levantadas por um método web services estão retornadas para o site de e-commerce sob a
forma de um elemento XML Fault.
Uma exceção é retornada quando por exemplo os atributos dos objetos necessários à execução das
operações no estão devidamente formatados.
Exemplo :
Um endereço e-mail não devidamente formatado (sem @) durante a criação de um alias.
A exceção <soap:Fault> conterá detalhes tais como a cadeia de exceção e a fonte de exceção.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope"/>
<soap:Body>
<soap:Fault>
<soap:Code>
<soap:Value xmlns:ns1="http://www.w3.org/2003/05/soap-envelope">ns1:Sender</soap:Value>
</soap:Code>
<soap:Reason>
<soap:Text xml:lang="en">CreateRequest.customerRequest.billingDetails.email: Endereço e-mail
não devidamente formada</soap:Text>
</soap:Reason>
<soap:Detail>
<requestId>43a61cf4-e467-490e-871e-d61604577cb0</requestId>
</soap:Detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Este mecanismo de gerenciamento das exceções permite identificar e corrigir dados cujo formato, antes
de realizar uma operação, está incorreto.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 10 / 237
Tratar os erros aplicativos
Tratar os erros aplicativos
Mensagens de erros aplicativos normalizados podem ser enviadas na mensagem SOAP resposta vinculada
a uma chamada.
Apresentam-se na forma de um código de erro junto com uma descrição do problema encontrado.
O quadro abaixo lista os códigos de erros que podem ser retornados no atributo responseCode :
Código de erro
responseCodeDetail
Descrição
0
Action successfully
completed
Ação efetuada com sucesso.
1
Unauthorized request
Ação não autorizada.
2
Bad Parameter
Atributo inválido.
3
Bad Request
A solicitação não pôde ser tratada.
10
Transaction was not
found
Transação não encontrada.
11
Bad transaction status Status da transação incorreto.
12
Transaction already
exists
A transação já existe.
13
Date is too far from
current UTC date
Data incorreta (o valor do atributo 'submissionDate' está
distante demais da data atual).
14
Nothing has changed
Nenhuma mudança.
15
Too much results
Há resultados demais.
20
Bad amount
Valor inválido no atributo 'amount'.
21
Unknown currency
Moeda inválida no atributo 'currency'.
22
Unknown card type
Tipo de cartão desconhecido.
23
Invalid Expiration Date Data inválida nos atributos 'expiryMonth' e/ou 'expiryYear'.
24
CVV Mandatory
O 'cvv' é obrigatório.
25
Contract not found
Número de contrato desconhecido.
26
Invalid card number
O número de cartão é inválido.
30
Payment token not
found
O alias não foi encontrado.
31
Invalid payment token O alias é inválido (Rescindido, vazio...).
(cancelled, …)
32
SubscriptionID was
not found
Atributo 'subscriptionId' não encontrado.
33
Invalid Subscription
Atributo 'rrule' inválido
ou
A assinatura já foi rescindida
34
Payment token
already exists
O alias já existe.
35
Payment token
creation declined
Criação do alias recusada.
36
Payment token
purged
Atributo 'paymentToken' tratado.
40
Amount not
authorized
Atributo 'amount' não autorizado.
41
Card range not found
Números do cartão não encontrados
42
Not enough credit
O saldo do meio de pagamento não é suficiente.
43
No credit
O reembolso não é autorizado para este contrato.
50
Brand not found
Nenhuma marca localizada.
51
Merchant not enrolled Vendedor não alistado.
52
Invalid ACS Signature
Assinatura do ACS inválida
53
Technical error 3DS
Erro técnico 3DS.
54
Wrong Parameter 3DS Parâmetro 3DS incorreto.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 11 / 237
Código de erro
responseCodeDetail
Descrição
55
3DS Disabled
3DS desativado.
56
PAN not found
PAN não encontrado.
97
OneyWsError
Erro OneyWs.
98
Bad request Id
Atributo RequestId inválido.
99
Undefined Error
Erro desconhecido.
Precisões sobre os códigos de erros.
• 0 - Ação efetuada com sucesso.
Indica que a ação solicitada foi efetuada com sucesso, o que significa que o formato da solicitação está
correto.
• 1 - Ação não autorizada.
Indica que você não contratou o serviço que permite utilizar os serviços web.
• 2 - Parâmetro inválido
Este código é retornado quando um atributo for inválido. A mensagem de informação menciona que
um erro de tipo param e fornece um complemento de informações sobre o atributo em questão.
Código
de erro
Descrição
Explicação
33
Parâmetro 'paymentSource' inválido no
caso de uma assinatura.
Origem da transação inválida para uma assinatura.
Os valores possíveis são "EC", MOTO", "CC" ou "OTHER".
34
Parâmetro 'scheme' inválido no caso de
uma criação de um alias.
Tipo de cartão inválido durante a criação de um alias.
35
Parâmetro phoneNumber' inválido
Número de telefone do comprador inválido.
36
Parâmetro 'email' inválido
E-mail do comprado inválido.
37
Parâmetro 'zipCode' inválido
CEP do comprador inválido.
38
Parâmetro 'cellPhoneNumber' inválido
Número de telefone celular do comprador inválido.
50
Parâmetro 'shopId' inválido
Código loja não foi devidamente informado.
51
Parâmetro 'submissionDate' inválido
Data e hora UTC da transação não informadas.
66
Parâmetro 'contractNumber' inválido
Número de contrato comerciante inválido.
82
Parâmetro 'initialAmount' inválido
Valor inicial da assinatura inválido (inferior a 0).
83
Parâmetro 'initialAmountNumber'
inválido
Quantidade de parcelas para as quais é preciso aplicar o valor
initialAmount.
Este atributo é obrigatório se initialAmount é valorizado.
84
Parâmetro effectDate' inválido
Data de inicio da assinatura inválida. A data não pode ser vencida.
85
Parâmetro commission' inválido
Parâmetro não informado e obrigatório para o Boleto no Brasil.
90
Parâmetro 'enrolled' inválido
Status do alistamento do portador é inválido.
92
Parâmetro 'eci' inválido
Indicador de Comércio Eletrônico inválido..
93
Parâmetro 'xid' inválido
Número de transação 3DS inválido.
94
Parâmetro 'cavv' inválido
Certificado do ACS inválido
95
Parâmetro 'cavvAlgorithm' inválido
Algorítmo de verificação da autenticação do portador (cavv)
inválido.
96
Parâmetro 'brand' inválido
Rede do cartão inválida.
101
Parâmetro 'paymentOptionCode' inválido Código da opção inválido.
Exemplo: Endereço e-mail faltando para uma operação onde deve ser informado.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">222e970d-9c8b-466f-b672-7d830af18a8c</
requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T09:41:11Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 12 / 237
<authToken xmlns="http://v5.ws.vads.lyra.com/
Header/">HW4+kJDlErT3g2z5KnUEjFxBPsg9NTjR6QOsXjfsKvk=</authToken>
</env:Header>
<soap:Body>
<ns2:createTokenResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createTokenResult>
<requestId>222e970d-9c8b-466f-b672-7d830af18a8c</requestId>
<commonResponse>
<responseCode>2</responseCode>
<responseCodeDetail>Error param 36: email</responseCodeDetail>
</commonResponse>
<authorizationResponse/>
</createTokenResult>
</ns2:createTokenResponse>
</soap:Body>
</soap:Envelope>
• 3 - Solicitação não executada
Indica que a solicitação não pôde ser executada.
Para maiores detalhes, um complemento de informações é retornado na resposta.
Exemplo:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope"/>
<soap:Body>
<ns2:updatePaymentDetailsResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<updatePaymentDetailsResult>
<requestId>024a5593-8537-46cf-afc3-fabb7c76bc97</requestId>
<commonResponse>
<responseCode>3</responseCode>
<responseCodeDetail>Bad Request[Detalhes da não execução da solicitação]</
responseCodeDetail>
</commonResponse>
<paymentResponse/>
<orderResponse/>
<cardResponse/>
<authorizationResponse/>
<captureResponse/>
<customerResponse/>
<markResponse/>
<threeDSResponse/>
<extraResponse/>
<fraudManagementResponse/>
<shoppingCartResponse/>
</updatePaymentDetailsResult>
</ns2:updatePaymentDetailsResponse>
</soap:Body>
</soap:Envelope>
• 25 - Número de contrato desconhecido.
Indica que há um defeito no contrato comerciante.
Diferentes casos são possíveis:
• O valor transmetido na solicitação não corresponde a nenhum contrato registrado na loja (shopId),
• Não há contrato associado na loja,
• O contrato mencionado venceu,
• Nenhum contrato corresponde ao tipo de contrato necessário para efetuar o pagamento. Este é o
caso se você não possuir um contrato que aceita pagamento manual e se paymentSource tiver o
valor de MOTO, CC ou OTHER na sua solicitação.
• 35 - Alias não criado.
Indica que o alias não foi criado.
O motivo da recusa é mencionado no atributo result do objeto authorizationResponse.
Consultar o capítulo Gerenciar os códigos de retorno de uma solicitação de autorização para maiores
detalhes.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 13 / 237
Exemplo :
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">8fbf0b7a-c5bd-419db14d-23bf557c6139</requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T09:47:58Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/Header/">DjY7Jr+a
+7jzqD4FtYj7MflmVc8o/8QDPZkJdFSNk/k=</authToken>
</env:Header>
<soap:Body>
<ns2:createTokenResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createTokenResult>
<requestId>8fbf0b7a-c5bd-419d-b14d-23bf557c6139</requestId>
<commonResponse>
<responseCode>35</responseCode>
<responseCodeDetail>PaymentToken creation declined</responseCodeDetail>
</commonResponse>
<authorizationResponse>
<result>51</result>
</authorizationResponse>
</createTokenResult>
</ns2:createTokenResponse>
</soap:Body>
</soap:Envelope>
• Atributo 'paymentToken' purgado
Quando um token cartão não for utilizado durante 15 meses, os dados do titular do meio de pagamento
são purgados (referencial de segurança PCI DSS - segurança e proteção dos dados bancários).
• 40 - Valor não autorizado.
Indica que o valor da solicitação de criação ou de reembolso do pagamento não é conforme aos valores
minimum /maximum definidos no contrato comerciante.
Você pode entrar em contato com o serviço ao cliente para conhecer os detalhes do seu contrato.
• 99 - Erro técnico.
Este código de erro é retornado no caso de um erro técnico interno.
Para maiores informações, favor entrar em contato com o suporte técnico.
Exemplo: Endereço e-mail faltando para uma operação onde deve ser informado.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">ca3d38d5-0344-461c-9f52-192482e09bda</
requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T09:47:58Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/
Header/">d3W/6dtIebGUpReqzrS40KHEImEway6ixrpn05pSGLY=</authToken>
</env:Header>
<soap:Body>
<ns2:createTokenResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createTokenResult>
<requestId>ca3d38d5-0344-461c-9f52-192482e09bda</requestId>
<commonResponse>
<responseCode>99</responseCode>
</commonResponse>
<authorizationResponse>
<result>96</result>
</authorizationResponse>
</createTokenResult>
</ns2:createTokenResponse>
</soap:Body>
</soap:Envelope>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 14 / 237
3.3. Gerenciar os códigos de retorno de uma solicitação de autorização
Na resposta de uma operação web service, o objeto authorizationResponse contém um valor que
determina o resultado da solicitação de autorização.
O quadro abaixo apresenta os diferentes valores:
Valor
Descrição
0
Motivo
frauduloso
Motivo
frauduloso
Valor
Descrição
Transação aprovada ou realizada com
sucesso
38
Data de validade do cartão vencida
2
Contatar o emissor do cartão.
41
Cartão perdido
SIM
3
Autorizador inválido
SIM
43
Cartão roubado
SIM
4
Guardar o cartão
SIM
51
Saldo insuficiente ou limite de crédito
excedido.
5
Não honrar
SIM
54
Data de validade do cartão vencida
7
Guardar o cartão, condições especiais SIM
55
Senha errada
8
Aprovar após identificação
56
Cartão ausente da base
SIM
12
Transação inválida
SIM
57
Transação interditada para este
portador
SIM
13
Valor inválido
SIM
58
Transação interditada para este
portador
14
Número de portador inválido.
SIM
59
Suspeita de fraude
15
Emissor de cartão desconhecido
SIM
60
O autorizador de cartão deve entrar
em contato com o comprador.
17
Cancelamento comprador.
61
Valor de saque fora do permitido.
19
Repetir a transação posteriormente.
63
Regras de segurança não respeitadas. SIM
20
Resposta errada (erro no domínio do
servidor).
68
Resposta não entregue ou recebida
tarde demais.
24
Atualização do arquivo não foi
possível.
75
Quantidade de tentativas senhas
excedidas.
25
Não foi possível localizar o registro no
arquivo.
76
Portador já interditado, antigo
registro salvo.
26
Registro duplicado, antigo registro
substituído.
90
Parada temporária do sistema.
27
Erro em "edit" no campo de lista de
atualização arquivo.
91
Emissor de cartão não alcançável.
28
Acesso proibido ao arquivo.
94
Transação duplicada.
29
Atualização impossível.
96
Mau funcionamento do sistema.
30
Erro de formato.
97
Prazo de tempo limite de segurança
global.
31
Código do organismo comprador
inválido.
SIM
98
Servidor indisponível
encaminhamento rede pedido
novamente.
33
Data de validade do cartão vencida
SIM
99
Incidente domínio iniciador
34
Suspeita de fraude
SIM
Códigos retorno específicos ao meio de pagamento Amex:
Valor
Descrição
000
Aprovada
001
Aprovada com documento de identidade
002
Autorização parcial (Somente cartões pré-pagos)
100
Recusada
101
Cartão vencido / Data de vencimento inválida
106
Número de tentativas autorizadas de digitação do NIP ultrapassado
107
Favor entrar em contato com o emissor
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 15 / 237
SIM
SIM
SIM
Valor
Descrição
109
Vendedor inválido
110
Valor inválido
111
Conta inválida / MICR inválido
115
Função solicitada não suportada
117
NIP inválido
119
Titular não inscrito / não autorizado
122
Código de segurança do cartão inválido (token cartão NIC/C4C)
125
Data de entrada em vigor inválida
181
Erro de formato
183
Código da moeda inválido
187
Recusada - Novo cartão emitido
189
Recusada - Conta cancelada
200
Recusada - Retirar Cartão
900
Aceita - Sincronização ATC
909
Desfuncionamento do sistema (erro criptográfico)
912
Emissor não disponível
Tabela 1 : Código retorno Cartão Amex
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 16 / 237
3.4. Gerenciar os códigos de retorno retornados pelo analista de risco
externo
Na resposta de uma operação web service, o objeto fraudManagementResponse contém um valor que
determina o resultado do analista de risco externo.
Os quadros abaixo apresentam os diferentes valores:
Valores comuns a todos os analisadores de riscos
INVALID_CREDENCIAL
Falha de configuração do contrato de análise de riscos.
COMUNICATION_PROBLEM
Não foi possível se comunicar com o analisador de riscos.
DATA_PROCESSING_PROBLEM
Falha durante o tratamento do envio ou da resposta do analisador de
riscos.
MISSING_MANDATORY_ORDER_INFO
Dados relativos ao pedido estão faltando.
MISSING_MANDATORY_SHIPPING_INFO
Dados relativos à entrega estão faltando.
MISSING_MANDATORY_SHIPPING_ADDRESS_INFO Dados relativos ao endereço de entrega estão faltando.
MISSING_MANDATORY_BILLING_INFO
Dados relativos ao faturamento estão faltando.
MISSING_MANDATORY_BILLING_ADDRESS_INFO
Dados relativos ao endereço de faturamento estão faltando.
MISSING_MANDATORY_CARD_INFO
Dados sobre o meio de pagamento estão faltando.
MISSING_MANDATORY_CUSTOMER_INFO
Dados sobre o comprador estão faltando.
Tabela 2 : Valores associados a vads_risk_analyzis_result comuns a todos os tipos de analisadores de riscos
ClearSale
APA
Automatically approved
A transação esta automaticamente aprovada conforme as
configurações.
APM
Manually approved - order manually
approved by analyst's decision
A transação foi manualmente aprovada por um analista.
RPM
Reproved with no suspect
O pedido foi recusado devido a uma falta de informações sobre o
comprador conforme à política aplicada.
AMA
Waiting for manual analysis - order is in a
queue waiting for analysis
Análise manual em espera. O pedido esta na lista de espera para
análise.
ERR
Error
Erro
NVO
New order - order waiting for score
Novo pedido. Tratamento e classificação em andamento.
SUS
Suspended order - order suspended by fraud
suspicion
Pedido manualmente suspenso. O pedido esta suspenso por
suspeita de fraude.
CAN
Canceled - order canceled by user
Pedido cancelado. O pedido foi cancelado pelo vendedor.
FRD
Order confirmed as a fraud
Fraude confirmada com o operador do cartão de crédito ou do
titular do cartão.
RPA
Automatically reproved based on parameters
within risk analyzer
Pedido recusado automaticamente. O pedido foi recusado
conforme à aplicação das configurações da análise de fraude
externa.
RPP
Automatically reproved based customer or
ClearSale policy
Pedido recusado automaticamente. O pedido foi recusado
conforme à aplicação da política cliente ou ClearSale.
Tabela 3 : Valores associados a vads_risk_analyzis_result - ClearSale
CyberSource
100
SUCCESS
A transação foi efetuada com sucesso.
101
MISSING_FIELDS
A transação foi recusada. Um ou mais campos estão faltando.
102
INVALID_FIELDS
A transação foi recusada. Um ou mais campos contém dados
inválidos.
150
ERROR_GENERAL_SYSTEM_FAILURE
Erro.
151
SERVER_TIME_OUT
Erro. A solicitação foi recebida mas o prazo foi excedido. Este
erro não inclui prazos excedidos entre o cliente e o servidor.
152
SERVICE_TIME_OUT
Erro. A solicitação foi recebida mas um serviço não foi concluído
no devido tempo.
202
CARD_EXPIRED
Recusada. Cartão vencido.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 17 / 237
CyberSource
231
ACCOUNT_NUMBER_INVALID
Recusada. Número de conta inválido.
234
ACCOUNT_PROBLEM
Recusado. Um problema ocorreu com a configuração
CyberSource do vendedor.
400
FRAUD_SCORE_TOO_HIGH
Recusada. O valor da fraude excede o limiar de tolerância.
480
SUCCESS_TO_REVIEW
O pedido esta marcado para ser examinado pelo Decision
Manager.
481
SUCCESS_TO_REJECT
O pedido foi recusado pelo Decision Manager.
Tabela 4 : Valores associados a vads_risk_analyzis_result - Cybersource
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 18 / 237
3.5. Gerenciar os códigos de erros durante um pagamento recusado
Na resposta de uma operação web service, o objeto paymentError contém um valor que determina porque
um pagamento foi recusado.
O quadro abaixo apresenta os diferentes valores:
Código
de erro
Mensagem de erro
Código de
Mensagem de erro
erro
1
A transação não foi encontrada
72
Autorização recusada pela Cofinoga.
2
A transação não foi encontrada
73
Recusa da autorização a 1 BRL.
3
Esta ação não esta autorizada para uma
transação com este status {0}.
74
Configuração de pagamento inválida.
4
Esta transação não esta autorizada neste
contexto.
75
A PayPal recusou a operação.
5
A transação já existe.
76
Devido a um problema técnico, não podemos
responder a sua solicitação.
6
Valor de transação inválida.
77
Devido a um problema técnico, não podemos
responder a sua solicitação.
7
Esta ação não é mais possível para uma
transação criada nesta data.
78
Identificador de transação não definido.
8
A data de vencimento do cartão não autoriza
esta ação.
79
Identificador de transação não definido.
9
CVV obrigatório para o cartão.
80
Identificador de transação vencido.
10
O valor do reembolso é superior ao valor inicial. 81
Conteúdo do tema config inválido.
11
A soma dos reembolsos efetuados é superior
ao valor inicial.
82
O reembolso não é autorizado.
12
A duplicação de um crédito (reembolso) não é
autorizado.
83
Valor de transação fora dos valores permitidos.
13
Devido a um problema técnico, não podemos
responder a sua solicitação.
84
Devido a um problema técnico, não podemos
responder a sua solicitação.
14
Devido a um problema técnico, não podemos
responder a sua solicitação.
85
Devido a um problema técnico, não podemos
responder a sua solicitação.
15
Devido a um problema técnico, não podemos
responder a sua solicitação.
86
Devido a um problema técnico, não podemos
responder a sua solicitação.
16
Devido a um problema técnico, não podemos
responder a sua solicitação.
87
Devido a um problema técnico, não podemos
responder a sua solicitação.
17
A configuração remota do contrato Aurore
falhou.
88
Devido a um problema técnico, não podemos
responder a sua solicitação.
18
A análise da resposta Cetelem falhou.
89
A modificação não é autorizada.
19
Moeda desconhecida.
90
Um erro foi encontrado durante o reembolso desta
transação.
20
Tipo de cartão inválido.
91
Nenhuma opção de pagamento ativada para este
contrato.
21
Nenhum contrato encontrado para este
pagamento. Favor mudar os dados ou entrar
em contato com seu gerente em caso de falhas
repetidas.
92
Um erro ocorreu durante o cálculo do canal de
pagamento.
22
Loja não encontrada.
93
Um erro ocorreu durante o retorno do comprador
para a página de finalização de pagamento.
23
Contrato ambíguo.
94
Um erro técnico ocorreu.
24
Contrato inválido.
95
Devido a um problema técnico, não podemos
responder a sua solicitação.
25
Devido a um problema técnico, não podemos
responder a sua solicitação.
96
Um erro foi encontrado durante a captura desta
transação.
26
Número de cartão inválido.
97
Data de apresentação esta distante demais.
27
Número de cartão inválido.
98
Data de transação inválida.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 19 / 237
Código
de erro
Mensagem de erro
Código de
Mensagem de erro
erro
28
Número de cartão inválido.
99
Um erro ocorreu durante o cálculo da procedência
do pagamento.
29
Número de cartão inválido.
100
Controle cartão comercial falhou.
30
Número de cartão inválido (Luhn)
101
Recusado porque a primeira parcela foi recusada.
31
Número de cartão inválido (comprimento)
102
Buyster recusou a operação.
32
Número de cartão inválido (não encontrado)
103
A sincronização do status da transação com o
sistema externo falhou.
33
Número de cartão inválido (não encontrado)
104
Um erro foi encontrado durante a captura desta
transação.
34
Controle cartão com autorização sistemática
falhou.
105
Um erro de segurança foi encontrado durante o
processo 3DS desta transação.
35
Controle e-Carte Bleue falhou.
106
Moeda não adequada para este contrato e/ou esta
loja.
36
A transação foi recusada pelo controle dos
riscos.
107
O cartão associado ao alias não esta mais válido.
37
Interrupção não gerenciada durante o
pagamento.
108
Devido a um problema técnico, não podemos
responder a sua solicitação.
38
Devido a um problema técnico, não podemos
responder a sua solicitação.
109
Prazo de espera excedido quando o comprador foi
redirecionado.
39
A transação foi recusada pelo 3D Secure.
110
Cartão de pagamento não adequado para este
contrato.
40
Devido a um problema técnico, não podemos
responder a sua solicitação.
111
Transações sem transferência de responsabilidade
recusadas.
41
Devido a um problema técnico, não podemos
responder a sua solicitação.
112
O cancelamento não é autorizado.
42
Um erro interno ocorreu durante a consulta do
número de cartão.
113
A duplicação não é autorizada.
43
Um erro interno ocorreu durante a consulta do
número de cartão.
114
Forçar não é autorizado.
44
Não é possível forçar uma autorização a 1 BRL.
115
O reembolso não é autorizado.
45
Moeda inválida para a modificação.
116
Pagamento manual não autorizado para este
cartão.
46
O valor é superior ao valor autorizado.
118
Pagamento manual parcelado não autorizado para
este cartão.
47
A data de apresentação desejada é posterior à
data de validade da autorização.
119
A data submetida é inválida.
48
A modificação requerida é inválida.
120
A opção de pagamento da transação inicial não
pode ser aplicada.
49
Definição do pagamento múltiplo inválido.
124
Cartão inativo.
50
Loja desconhecida.
125
Pagamento recusado pelo comprador.
51
Taxa desconhecida.
126
Esta ação é impossível porque a seqüência de
pagamento não acabou.
52
O contrato acabou desde o {0}.
127
O campo vads_ship_to_delay não foi preenchido ou
seu formato é inválido.
53
A loja {0} fechou desde o {1}.
132
Devido a um problema técnico, não podemos
responder a sua solicitação.
54
Parâmetro recusado porque pode conter dados 135
sensíveis {0}.
A integração da página de pagamento dentro de
uma iframe não é autorizada.
55
Devido a um problema técnico, não podemos
responder a sua solicitação.
136
Transações derivadas recusadas, sem transferência
de responsabilidade na primeira transação.
57
Erro na recuperação do alias.
137
A transação já existe.
58
O status do alias não é compatível com esta
operação.
138
O reembolso parcial não é permitido para esta
transação.
59
Erro na recuperação do alias.
139
Reembolso recusado.
60
Alias existente.
141
O analisador de risco recusou esta transação.
61
Alias inválido.
142
O tipo de cartão usado não é válido com o modo de
pagamento solicitado.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 20 / 237
Código
de erro
Mensagem de erro
Código de
Mensagem de erro
erro
62
Criação de alias recusada.
143
Devido a um problema técnico, não podemos
responder a sua solicitação.
63
A assinatura já existe.
144
Uma transação em modo produção foi marcada em
modo teste pelo adquirente.
64
Esta assinatura já foi cancelada.
145
Uma transação em modo teste foi marcada em
modo produção pelo adquirente.
65
Este assinatura não é válida.
146
Código sms inválido.
66
A regra de recorrência não é válida.
147
O módulo de gestão de fraudes solicitou a recusa
desta transação.
67
Criação da assinatura recusada.
148
Devido a um problema técnico, não podemos
responder a sua solicitação. A transação não foi
criada.
69
Devido a um problema técnico, não podemos
responder a sua solicitação.
149
O tempo limite da sessão de pagamento acabou
(caso do comprador redirecionado para o ACS e que
não finaliza a autentificação 3D Secure).
70
Código país inválido.
150
Devido a um problema técnico, não podemos
responder a sua solicitação. A transação não foi
criada.
71
Configuração do serviço web inválido.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 21 / 237
3.6. Unir as solicitações Web service (manter uma mesma sessão HTTP)
A arquitetura da plataforma de pagamento baseia-se em um conjunto de servidores com repartição de
carga.
Para garantir a continuidade do processo, cada solicitação vinculada a um mesmo pagamento em um lapso
de tempo muito curto deve ser realizada com a mesma sessão HTTP.
Para isso, para toda solicitação, uma sessão é criada no servidor. A ID da sessão é retornada no cabeçalho
HTTP da resposta. Este deverá ser redirecionado às solicitações seguintes para que a solicitação seja
tratada pelo mesmo servidor, com os fins de evitar que a sua solicitação seja recusada porque a transação
não estaria ainda disponível nos outros servidores.
Exemplo de aplicação :
Você deseja criar um pagamento que será entregue daqui a 30 dias em modo de validação manual.
Uma vez que o pagamento for aceito, você decide mudar a data de captura para o dia seguinte e validar
a transação.
Para realizar esta operação:
• Você deve chamar o web service de criação de pagamento (createPayment).
• A plataforma verifica a presença de um ID de sessão no cabeçalho HTTP de sua solicitação.
Já que nada foi mencionado, uma nova sessão e um novo ID são criados.
A plataforma de pagamento realiza em seguida o tratamento da sua solicitação e envia uma resposta
mencionando no cabeçalho HTTP o código de sessão atribuído e o nome do servidor que processou
a solicitação:
Exemplo de cabeçalho de solicitação :
POST /vads-ws/v5 HTTP/1.1
Host: secure.payzen.eu
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.4.14
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Content-Length: 1922
Exemplo de cabeçalho de resposta :
HTTP/1.1 200 OK
Date: Tue, 24 Feb 2015 11:37:06 GMT
Server: Apache
Set-Cookie: JSESSIONID=6qeoRHaVgOGr5avgh6lHnzEm.vadpayment01bdx;
Path=/vads-ws; Secure
Content-Length: 2711
Vary: Accept-Encoding,User-Agent Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/xml;charset=UTF-8
• Nos cabeçalhos HTTP da resposta, você resgata o cookie JSESSIONID.
• Você inicializa o cookie JSESSIONID do seu cabeçalho HTTP.
• Você chama o web service de modificação e de validação do pagamento.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 22 / 237
Exemplo de cabeçalho de solicitação para manter a sessão :
POST /vads-ws/v5 HTTP/1.1
Host:
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.4.14
Content-Type: text/xml; charset=utf-8 SOAPAction: ""
Content-Length: 5793
Cookie: JSESSIONID=6qeoRHaVgOGr5avgh6lHnzEm.vadpayment01bdx;
• A plataforma verifica a presença de um ID de sessão no cabeçalho HTTP de sua solicitação.
A solicitação é em seguida enviada para o servidor que gerou a sessão.
Se a sessão existir, ela será utilizada de novo,. Se não, uma nova sessão e um código novo serão criados.
A plataforma de pagamento realiza o tratamento da solicitação e envia uma resposta.
Observação:
O ID de sessão será retornado no cabeçalho HTTP da resposta somente se uma nova sessão for criada.
Aconselhamos então testar sistematicamente a presença de cookie no cabeçalho HTTP da resposta e
utilizar o ID de sessão presente antes de unir uma outra chamada (getPaymentDetails por exemplo).
Exemplo de cabeçalho HTTP de resposta utilizando a mesma sessão :
HTTP/1.1 200 OK
Date: Thu, 26 Feb 2015 10:26:01 GMT
Access-Control-Allow-Origin: *
Content-Type: text/xml;charset=UTF-8
Content-Length: 2858
Vary: Accept-Encoding
Connection: close
Observação: não há informação sobre o código de sessão.
Exemplo de cabeçalho HTTP de resposta com uma nova sessão :
HTTP/1.1 200 OK
Date: Thu, 26 Feb 2015 10:31:39 GMT
Set-Cookie: JSESSIONID=W10zI16iiiDiZqGV309xDtLV.vadpayment01bdx; Path=/vads-ws; Secure
Access-Control-Allow-Origin: *
Content-Type: text/xml;charset=UTF-8
Content-Length: 2858
Vary: Accept-Encoding
Connection: close
Observação: presença do Set-Cookie mencionando o código da nova sessão.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 23 / 237
3.7. Gerenciar os prazos de espera (Timeout)
O tratamento de uma solicitação serviço web articula-se em torno de uma serie de eventos assíncronos
tal como:
• o envio da solicitação via a rede do site do vendedor,
• o transporte das informações na rede internet,
• o tratamento do pagamento pela plataforma,
• a interrogação dos servidores bancários, etc
Um incidente pode ocorrer a qualquer etapa e aumentar o tempo de tratamento (e portanto o tempo de
espera para o comprador).
A resposta a uma solicitação pode atrasar por múltiplas razões:
• Um tempo longo de resposta por parte do emissor do cartão do portador (no caso de cartões
provenientes de fora do país, no caso de período correspondentes à alta atividade tal como o dia das
mães, natal,...).
• Um tempo longo de resposta por parte do comprador durante a transmissão e a recepção da solicitação
de autorização.
• Um tempo longo de resposta na sua aplicação devido a uma carga importante.
• Um tempo longo de resposta da plataforma de pagamento
• Um problema de peering na Internet podendo ocasionar perdas de mensagens, etc...
Em função dos prazos configurados, você não pode receber resposta enquanto o tratamento assíncrono
continua em execução na plataforma de pagamento.
Um tempo longo de tratamento não deve ser considerado como um pagamento recusado.
Portanto, você deve configurar seu código para gerenciar os problemas potenciais que podem resultar da
conexão ao API SOAP.
Recomendações
O tempo médio de tratamento de uma solicitação de pagamento pela plataforma é menor que 5 segundos.
Você deve definir um prazo de espera de 20 até 30 segundos para o comprador.
Enquanto isso, você pode:
• Informar o comprador que o pagamento dele está em processamento. Enquanto isso, você pode
consultar o status da transação na plataforma de pagamento e voltar quando o resultado final for
exibido.
• Informar o comprador que o pagamento dele foi recusado garantindo previamente que você não tem
que validar manualmente o pagamento na plataforma de pagamento.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 24 / 237
3.8. Especificar os tipos de dados
As mensagens trocadas entre o vendedor e a plataforma de pagamento seguem uma síntaxe precisa.
Você encontrará no quadro abaixo a descrição das anotações utilizadas.
Anotação
Descrição
a
Símbolos alfabéticos (de A a Z e de a a z)
n
Símbolos numéricos (de 0 a 9)
s
Símbolos especiais
an
Símbolos alfanuméricos
ans
Símbolos alfanuméricos e especiais
3
Comprimento fixo até 3 símbolos
..12
Comprimento variável até 12 símbolos
Tabela 5 : Descrição das anotações utilizadas
Os dados mencionados nas mensagens podem ser de diferentes tipos:
Tipos de dados
Descrição
boolean
Um booleano pode somente ter duas respostas: true ou false.
Uma resposta true pode também ser yes ou 1.
Uma resposta false pode também ser no ou 0.
dateTime
Representa um instante, geralmente expresso sob a forma de uma data ou de uma hora.
Contém um ano, um mês, um dia, uma hora, minutos, segundos e milissegundos.
O valor é dado em tempo universal coordenado (UTC) e ISO 8601 - W3C.
Ao contrário da hora local, uma data e uma hora dada em UTC é a mesma em qualquer lugar num
momento dado.
Exemplo: 2016-07-16T19:20Z
int
Representa um número inteiro (integer), ou seja, sem decimal.
long
Representa um número inteiro (integer) codificado em 64 bits.
Este tipo de dado é utilizado quando o tipo de dado int não for grande o suficiente (por exemplo para
especificar o valor de uma transação).
string
Pode conter símbolos, pulos de linhas, Enters e tabs.
Tabela 6 : Descrição dos dados mencionados nas mensagens
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 25 / 237
4. Identificar-se durante as trocas
A identificação acontece graças ao cabeçalho SOAP HEADER da solicitação.
Para identificar o site de e-commerce durante as trocas com a plataforma de pagamento, os elementos
seguintes são necessários:
• o código da loja (shopId),
• o certificado,
Para resgatar estes dois valores:
1. Conecte-se ao seu Back Office: https://secure.payzen.com.br/vads-merchant/
2. Clique sobre Configuração > Loja.
3. Selecionar a aba Certificados.
Figura 1 : Visualizar o código da loja e o certificado
Observação: aconselhamos salvar estas informações em um arquivo de configuração.
• uma ficha de autenticação para transmitir no cabeçalho SOAP (SOAP HEADER).
O cálculo da ficha de autenticação se baseia no algoritmo de hash HMAC_SHA256.
Ele é elaborado a partir da função de hash SHA-256 e utilizado como código HMAC (Hash-based Message
Authentication Code).
O hash de saída tem um cumprimento de 256 bits.
Observação: a função HMAC_SHA256 só está disponível em PHP a partir da versão PHP 5.1.2.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 26 / 237
4.1. Efetuar a autenticação
As etapas para efetuar a autenticação são as seguintes:
1. O site de e-commerce coleta os dados para montar o cabeçalho SOAP HEADER.
Ver capítulo O cabeçalho SOAP HEADER.
2. O site de e-commerce calcula o valor da ficha de autenticação e o acrescenta no cabeçalho SOAP
HEADER.
Ver capítulo Construir o cabeçalho SOAP HEADER da solicitação.
3. O site de e-commerce envia a solicitação.
4. A plataforma de pagamento recebe a solicitação e analisa o cabeçalho SOAP HEADER.
5. A plataforma de pagamento calcula o valor da ficha de autenticação authToken.
6. A plataforma de pagamento compara o valor da ficha de autenticação calculado com o valor
transmitido pelo site de e-commerce.
7. Se os valores são diferentes, a solicitação é rejeitada e retorna uma exceção SOAP Fault exception de
tipo "bad.authToken: Invalid authentication token".
Se não, a plataforma trata a solicitação.
8. A plataforma de pagamento calcula o valor da ficha de autenticação e o acrescenta no HEADER da
resposta.
9. A plataforma de pagamento monta a mensagem de resposta e a envia para o site de e-commerce.
10.O site de e-commerce recupera os dados. Ele calcula o valor da ficha de autenticação com os valores
contidos no HEADER da resposta.
Ele compara o valor da ficha de autenticação calculado com o valor contido no HEADER da resposta.
Observação: o requestId transmitido no cabeçalho da resposta será idêntico a aquele transmitido na
solicitação pelo site de e-commerce.
11.Se os valores são diferentes, o vendedor analisa a origem do erro (erro, tentativa de fraude etc...).
Se não, o site de e-commerce analisa a resposta.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 27 / 237
4.2. Construir o cabeçalho SOAP HEADER da solicitação
Para construir o cabeçalho SOAP HEADER:
1. Acrescentar um novo cabeçalho chamado shopId cujo valor será o código da loja.
Pode encontrar o valor no seu Back Office selecionando o menu Configuração > Loja > aba
Certificados.
2. Acrescentar um novo cabeçalho chamado timestamp.
O valor dele especifica a representação numérica da data e da hora da solicitação, codificado em
formato ISO 8601 - W3C e UTC.
Exemplo de geração em PHP :
$timestamp = gmdate("Y-m-d\TH:i:s\Z");
Resultado: 2014-10-31T16:38:19Z
3. Acrescentar um novo cabeçalho chamado mode.
O valor dele permite definir o tipo de transação. Pode ter o valor TEST (para uma transação de teste)
ou PRODUCTION (para uma transação real).
4. Acrescentar um novo cabeçalho chamado requestId.
O atributo requestId é um UUID (código universal único). O valor dele permite calcular a ficha de
autenticação.
O atributo requestId deve ser gerado pelo site de e-commerce. O formato dele deve respeitar a síntaxe
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (onde M=1,2,3,4,5 e N=8,9,A,B).
• Exemplo de geração em JAVA :
java.util.UUID.randomUUID().toString();
• Exemplo de geração em PHP :
function gen_uuid() {
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
mt_rand( 0, 0xffff ),
mt_rand( 0, 0x0fff ) | 0x4000,
mt_rand( 0, 0x3fff ) | 0x8000,
mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
);
}
• Exemplo de geração em ASP.NET :
System.Guid.NewGuid().toString();
5. Acrescentar um novo cabeçalho chamado authToken.
Para obter o valor dele:
a. Concatenar os atributos requestId e timestamp sem separador.
Exemplo de resultado de concatenação com :
• requestId = 04967dae-af01-43ff-a7d8-f3f228b9b1c2
• timestamp = 2014-10-31T16:38:19Z
"04967dae-af01-43ff-a7d8-f3f228b9b1c22014-10-31T16:38:19Z"
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 28 / 237
b. Aplicar o algoritmo HMAC_SHA256 no string obtido com o valor do certificado de teste ou de
produção (em função do valor de mode) como chave compartilhada.
c. Codificar o resultado em Base64.
• Exemplo de implementação em JAVA 7 :
public String hmacsha256(String stringToSign , String key ){
try {
byte[] bytes = encode256 ( key .getBytes( "UTF-8" ), stringToSign .getBytes( "UTF-8" ));
return Base64.encodeBase64String( bytes );
} catch (Exception e ){
throw new RuntimeException( e );
}
}
private static byte[] encode256(byte[]keyBytes, byte[] text ) throws
NoSuchAlgorithmException, InvalidKeyException {
Mac hmacSha1 ;
try {
hmacSha1 = Mac.getInstance ( "HmacSHA256" );
} catch (NoSuchAlgorithmException nsae ){
hmacSha1 = Mac.getInstance ( "HMAC-SHA-256" );
}
SecretKeySpec macKey = new SecretKeySpec( keyBytes, "RAW" );
hmacSha1.init( macKey );
return hmacSha1 .doFinal( text );
}
Observação: a implementação se baseia na classe Mac do package javax.crypto.
Exemplo de chamada em JAVA
hmacsha256("04967dae-af01-43ff-a7d8-f3f228b9b1c22014-10-31T16:38:19Z", "1234567887654321")
• Exemplo de implementação em PHP :
//$data est la concaténation des attributs requestId et timestamp
//$shopKey est la valeur du certificat
<?php $authToken = base64_encode(hash_hmac('sha256',$data, $shopKey, true));?>
• Exemplo de implementação em ASP.NET :
private static byte[] StringEncode (string text)
{
var encoding = new ASCIIEncoding();
return encoding.GetBytes(text);
}
private static string HashEncode(byte[] hash)
{
return System.Convert.ToBase64String(hash)
}
private static byte[] HashHMAC (byte[] key, byte[] message)
{
var hash = new HMACSHA256(key);
return hash.ComputeHash(message);
}
public String HmacSha256(String stringToSign, String key)
{
return HashEncode(HashHMAC(StringEncode(key), StringEncode(stringToSign)));
}
Exemplo de chamada em ASP.NET:
HmacSha256("RF5GJlpZwcra2N7Ie/04Xn/SxFVnqy/61Yr6F6lFrHo=", "1234567887654321")
Resultado :
<soapHeader:authToken>NxoFUSsTqmMjwaDzTXyCN4nNpMOVJKb5UxHdS9TBuTg=</soapHeader:authToken>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 29 / 237
Exemplo de código em PHP para construir o cabeçalho SOAP HEADER
Segue um exemplo PHP para lhe ajudar a construir o cabeçalho SOAP:
//Geração do header
$client = new soapClient("https://secure.payzen.com.br/vads-ws/v5?wsdl", $options = array(
'trace'=>1,
'exceptions'=> 0,
'encoding' => 'UTF-8',
'soapaction' => '')
);
//Cálculo dos valores para ser transmitidos no cabeçalho
$ns = 'http://v5.ws.vads.lyra.com/Header/';
$shopId = "12345678";
$requestId = gen_uuid();
$timestamp = gmdate("Y-m-d\TH:i:s\Z");
$mode = "TEST";
$authToken = base64_encode(hash_hmac('sha256',$requestId.$timestamp, $key, true));
//Criação dos cabeçalhos shopId, requestId, timestamp, mode e authToken
$headerShopId = new SOAPHeader($ns, 'shopId', $shopId);
$headerRequestId = new SOAPHeader($ns, 'requestId', $requestId);
$headerTimestamp = new SOAPHeader($ns, 'timestamp', $timestamp);
$headerMode = new SOAPHeader($ns, 'mode', $mode);
$headerAuthToken = new SOAPHeader($ns, 'authToken', $authToken);
//Acrescentar cabeçalhos no SOAP Header
$headers = array(
$headerShopId,
$headerRequestId,
$headerTimestamp,
$headerMode,
$headerAuthToken
);
$client->__setSoapHeaders($headers);
Exemplos em diversas linguagens de programação são disponíveis na Internet.
• Em JAVA
http://www.mkyong.com/webservices/jax-ws/jax-ws-soap-handler-in-client-side/
• Em Visual Basic .NET
https://msdn.microsoft.com/en-fr/library/vstudio/whew6x7f(v=vs.100).aspx
http://forums.asp.net/t/1137408.aspx?Adding+information+to+the+SOAP+Header
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 30 / 237
4.3. Verificar o cabeçalho SOAP na resposta
Para que você tenha a garantia que a resposta venha da plataforma de pagamento, você deve verificar o
valor da ficha de autenticação recebida.
Para isso, calcular de novo a ficha de autenticação:
1. Resgatar os valores de shopId, timestamp, requestId, mode e authToken no cabeçalho SOAP na
resposta.
2. Concatenar os atributos timestamp e requestId sem separador.
Cuidado, a ordem é inversa em relação à solicitação.
Exemplo de resultado de concatenação com:
• timestamp = 2014-10-31T16:38:19Z
• requestId = 04967dae-af01-43ff-a7d8-f3f228b9b1c2
"2014-10-31T16:38:19Z04967dae-af01-43ff-a7d8-f3f228b9b1c"
3. Aplicar o algoritmo HMAC_SHA256 no string obtido com o valor do certificado de teste ou de
produção (em função do valor de mode) como chave compartilhada.
4. Codificar o resultado em Base64.
5. Comparar o valor de authToken presente no cabeçalho SOAP HEADER com outro valor calculado.
Resultado:
Se os valores são diferentes, o vendedor analisa a origem do erro (erro de cálculo, fraude etc...).
Observação: o requestId transmitido no cabeçalho da resposta será idêntico a aquele transmitido na
solicitação pelo site de e-commerce.
Exemplo de código PHP para resgatar os cabeçalhos SOAP na resposta
Segue um exemplo para lhe ajudar a resgatar os cabeçalhos SOAP HEADER na resposta:
//Resgatar o SOAP Header da resposta para armazenar
// os cabeçalhos em um quadro (aqui $responseHeader)
$dom = new DOMDocument;
$dom->loadXML($client->__getLastResponse(), LIBXML_NOWARNING);
$path = new DOMXPath($dom);
$headers = $path->query('//*[local-name()="Header"]/*');
$responseHeader = array();
foreach($headers as $headerItem) {
$responseHeader[$headerItem->nodeName] = $headerItem->nodeValue;
}
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 31 / 237
5. Gerar um uuid - retro compatibilidade
Um uuid (Universally Unique IDentifier) é um código único que permite, nesta versão dos Web Services,
identificar uma transação com total certeza.
Porém,uuid não era gerado nas versões anteriores.
Para identificar e consultar uma transação, os atributos transactionId, sequenceNumber ecreationDate
eram utilizados.
Permitiam identificar uma transação específica a partir de:
• o código único dela para um dia,
• a data e a hora da solicitação com a qual a transação era criada,
• o número de sequência.
Nesta versão, somente o atributo uuid (referência única da transação) é necessário.
É utilizado para substituir os antigos atributos e simplificar as solicitações.
É gerado pela plataforma de pagamento após a criação de uma transação de pagamento. Este código único
garante a unicidade.
O valor deste atributo é retornado no objeto paymentResponse da operação createPayment.
Desta forma, para toda solicitação com transação específica, o atributo uuid será pedido no objeto
queryRequest.
Porém, por razões de retro compatibilidade, esta versão dos Web Services permite resgatar o uuid de uma
transação (código único da transação) a partir do seu antigo código.
Por isso, a operação getPaymentUuid está a disposição.
5.1. Solicitação para enviar
A solicitação getPaymentUuid é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação getPaymentUuid toma na entrada um objeto do tipo getPaymentUuid.
O tipo getPaymentUuid é constituído do parâmetro seguinte:
Objeto
Formato
legacyTransactionKeyRequest
legacyTransactionKeyRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 32 / 237
Requisito
legacyTransactionKeyRequest
O
objeto
legacyTransactionKeyRequest
permite
traduzir
os
antigos
atributostransactionId,sequenceNumber etransmissionDate em transactionUuid (referência única de
transação).
Os atributos para serem valorizados para obter o valor de transactionUuid são os seguintes:
legacyTransactionKeyRequest
Atributo
Requisito
transactionId
Código da transação para procurar.
Formato
string
sequenceNumber
Número de sequência da transação para procurar.
Vale "1" para um pagamento unitário.
Toma o valor do número de prestação no caso de um pagamento parcelado criado a partir do
formulário de pagamento.
creationDate
Data de criação da transação apresentada no formato ISO 8601 definido pelo W3C.
Se nenhuma data for informada, a data do dia terá o valor por padrão.
Exemplo : 2016-07-16T19:20:00Z
n..3
dateTime
ans..40
Tabela 7 : Objeto legacyTransactionKeyRequest
5.2. Resposta
A resposta à operação getPaymentUuid é constituída de um HEADER e de um BODY de tipo
getPaymentUuidResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Contém as informações relativas à autenticação (ver capítulo O cabeçalho SOAP HEADER).
• BODY
A estrutura da mensagemgetPaymentUuidResponse é a seguinte:
Nome
Tipo
legacyTransactionKeyResult
legacyTransactionKeyResult
A estrutura da mensagem legacyTransactionKeyResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
paymentResponse
paymentResponse
commonResponse
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 33 / 237
n..2
string
commonResponse
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
Formato
Tabela 8 : Objeto commonResponse
paymentResponse
O objeto paymentResponse retorna o atributotransactionUuid.
paymentResponse
Formato
transactionUuid
Referência única da transação gerada pela plataforma de pagamento.
string
ans32
Tabela 9 : Objeto paymentResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 34 / 237
6. Realizar operações comuns nas transações
A opção pagamento por web services permite realizar uma certa quantidade de operações tais como:
Nome da operação web service
Descrição
createPayment
Iniciar uma transação de pagamento
updatePayment
Modificar uma transação de pagamento
updatePaymentDetails
Modificar os dados de uma transação (carrinho)
cancelPayment
Cancelar uma transação de pagamento
findPayments
Pesquisar transações de pagamentos
refundPayment
Reembolsar um comprador
duplicatePayment
Duplicar uma transação de pagamento
validatePayment
Validar uma transação de pagamento
capturePayment
Capturar uma transação de pagamento
getPaymentDetails
Obter os detalhes de uma transação de pagamento
verifyThreeDSEnrollment
Verificar a autenticação 3D Secure do cartão do comprador
checkThreeDSAuthentication
Verificar o status da autenticação 3D Secure.
Tabela 10 : Operações disponíveis com a opção pagamento por web services
Exemplos de codificação são apresentados em anexo a este documento.
6.1. Criar uma transação de pagamento 'createPayment'
A chamada da operação createPayment permite de iniciar uma transação de pagamento
Dependendo da valorização dos atributos na solicitação, pode-se realizar:
• pagamentos à vista,
• pagamentos agendados,
• pagamentos com ou sem autenticação 3D Secure,
• pagamentos utilizando um Token Cartão já existente.
A operação createPayment é estruturada da maneira seguinte:
Operação
Entrada
Saída
createPayment
createPayment
createPaymentResponse
Compartilhamento de códigos
Pode-se compartilhar códigos (Token Cartão) entre diversas entidades jurídicas.
Os códigos compartilhados entre diversas entidades jurídicas devem ser únicos e devem obrigatoriamente
ser gerados pela plataforma de pagamento (ou seja o atributo paymentToken do objeto cardRequest não
deve ser informado).
No entanto, esta funcionalidade é submetida a condições particulares. Favor entrar em contato com a sua
plataforma de pagamento para conhecê-las.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 35 / 237
Solicitação para enviar
A solicitação createPayment é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo Construir o cabeçalho SOAP HEADER).
• BODY
A operação createPayment toma na entrada um objeto do tipo createPayment.
O tipo createPayment é constituído dos parâmetros seguintes:
Objeto
Formato
commonRequest
commonRequest
threeDSRequest
threeDSRequest
paymentRequest
paymentRequest
orderRequest
orderRequest
cardRequest
cardRequest
customerRequest
customerRequest
techRequest
techRequest
shoppingCartRequest
shoppingCartRequest
Requisito
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Diversos atributos podem ser especificados na solicitação. Porém, somente um atributo deve
obrigatoriamente ser enviado:
commonRequest
Atributo
Requisito
paymentSource
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
Parâmetro utilizado por padrão se nenhum valor estiver informado ou se for diferente dos
valores possíveis.
• MOTO para um pedido por correio ou telefone.
• CC para um call center.
• OTHER para um outro canal de venda.
Somente o valor EC permite criar uma transação com 3D Secure.
Os outros valores somente devem ser utilizados para a venda à distancia, pela qual o 3D Secure não
é aplicável.
submissionDate
Data e hora UTC da transação apresentadas no formato ISO 8601 definido pelo W3C.
Exemplo: 2016-07-16T19:20:00Z
Se o valor deste atributo é distante demais da hora atual, a solicitação será rejeitada (código de
erro 13).
contractNumber
Número de contrato comerciante utilizado.
Se este campo é informado, tomar cuidado em utilizar o contrato certo em relação à rede do
cartão.
Por exemplo, um contrato CB não pode ser utilizado para uma transação AMEX.
Tabela 11 : Objeto commonRequest
O atributo comment não é levado em consideração para esta operação, nos dias de hoje.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 36 / 237
Formato
string
dateTime
ans..40
string
O objeto threeDSRequest permite:
• determinar se um pagamento for realizado com ou sem autenticação 3D Secure,
• transmitir informações vinculadas ao 3D Secure.
Se nenhum valor for informado para este objeto, um pagamento sem autenticação 3D Secure será
efetuado por padrão.
Os objetos e atributos do objeto threeDSRequest variam segundo o tipo de pagamento.
• Pagamento sem 3D Secure.
Um pagamento sem autenticação 3D Secure é uma operação de débito pela qual a autenticação do
portador do cartão não é efetuada.
Somente um atributo deve obrigatoriamente ser enviado:
threeDSRequest
Atributo
Formato
mode
Seleção do modo de autenticação 3D Secure.
DISABLED
Pagamento sem autenticação 3D Secure. Parâmetro utilizado por padrão se nenhum valor estiver
informado.
string
Observação: todos os atributos não são levados em consideração para criar um pagamento sem 3D Secure.
• Pagamento com 3D Secure.
O pagamento com autenticação 3D Secure requer duas chamadas à operaçãocreatePayment.
• Uma primeira chamada para verificar o alistamento do cartão e para resgatar as informações
necessárias para redirecionar o comprador para o ACS.
Somente um atributo deve obrigatoriamente ser enviado:
threeDSRequest
Atributo
Formato
mode
Seleção do modo de autenticação 3D Secure.
ENABLED_CREATE
Permite verificar o alistamento do cartão 3D Secure antes de efetuar o pagamento.
string
Observação: todos os atributos não são levados em consideração para criar um pagamento com3D
Secure.
• Uma segunda chamada para analisar o retorno do 3D Secure e finalizar a transação.
Três atributos devem obrigatoriamente ser enviados:
threeDSRequest
Atributo
Formato
mode
Seleção do modo de autenticação 3D Secure.
ENABLED_FINALIZE
Permite finalizar um pagamento 3D Secure.
string
requestId
Com o modo ENABLED_FINALIZE, este campo deve conter o valor retornado no atributo
threeDSRequestId do objeto threeDsResponse na operação createPayment com o modo
ENABLED_CREATE.
string
pares
Mensagem PaRes (Payer Authentication Response) reenviada pelo ACS.
string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 37 / 237
Observação: todos os atributos não são levados em consideração para criar um pagamento com3D
Secure.
• Pagamento com autenticação 3D Secure realizado pelo MPI do vendedor
Diferentes atributos devem obrigatoriamente ser enviados para este tipo de pagamento.
Cuidado: um valor específico para um atributo pode resultar na valorização de um outro atributo!
threeDSRequest
Atributo
Requisito
Formato
mode
Seleção do modo de autenticação 3D Secure.
MERCHANT_3DS
Permite realizar um pagamento 3DS com o MPI do vendedor.
string
brand
Rede do cartão.
string
enrolled
Status de alistamento do portador. Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
string
status
Status da autenticação do portador. Os valores possíveis são:
• Y para um status autenticado 3 DS.
• N para um erro de autenticação.
• U para uma autenticação impossível.
• A para uma tentativa de autenticação.
Se enrolled é
valorizado a Y
string
Se status é valorizado a
Y ou A
string
Se status é valorizado
aY
string
Se status é valorizado a
Y ou A
string
Se status é valorizado a
Y ou A
string
eci
Indicador de Comercio Eletrônico.
O valor eci depende do status da autenticação 3DS e do tipo de cartão. Os
valores possíveis são:
VISA AMEX
status =Y
status = A
status = U
status =N
5
6
7
-
01
-
-
MasterCard 02
xid
Número de transação 3DS.
cavv
Certificado do ACS.
algorithm
Algoritmo de verificação da autenticação do portador (CAVV). Os valores
possíveis são:
• 0 para HMAC.
• 1 para CVV.
• 2 para CVV_ATN.
• 3 para Mastercard SPA.
Tabela 12 : Objeto threeDSRequest
O objeto paymentRequest permite transmitir informações vinculadas ao pagamento.
Possui os atributos seguintes:
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 38 / 237
paymentRequest
Atributo
Requisito
Formato
transactionId
Código da transação durante a criação ou a modificação de uma transação de pagamento.
Seu valor é único para o mesmo dia.
• Ou este código será gerado pela plataforma. Neste caso, este parâmetro não deve ser
informado.
• Ou este código será gerado pelo site de e-commerce. Neste caso, este parâmetro deve ser
informado com o valor do código desejado. Cuidado, cabe ao site de e-commerce garantir o
caráter único dos códigos de usuários. Toda solicitação de registro contendo um código de
usuário já existente, será recusada, e será retornada com o código de erro 12.
Observação : este atributo não pode ser enviado vazio.
an..6
amount
Valor da transação expresso na menor unidade da moeda .
Observação:
• Não deve ser enviado vazio ou com o valor 0.
• Não deve ser superior ao valor inicial (exemplo: reembolso).
n..12
currency
Código da moeda da transação (norma ISO 4217).
Exemplo: ;986;840 para o dollar americano.
n3
expectedCaptureDate
Data de entrega solicitada apresentada no formato ISO 8601 definido pelo W3C.
Exemplo: 2016-07-16T19:20:00Z.
Este parâmetro é utilizado para efetuar um pagamento a prazo.
Se a quantidade de dias entre a data de captura e a data do dia vigente for superior ao tempo
de validade da autorização, uma autorização de 1 BRL será realizada o mesmo dia da transação.
Permite verificar a validade do cartão.
A autorização para o valor total será efetuada:
• processo padrão: o dia da data de captura no banco desejada,
• processo com autorização antecipada: em função do meio de pagamento selecionado, a Dquantidade de dias correspondente ao tempo de validade de uma autorização antes da data de
captura no banco desejada.
Se você quiser receber a notificação de resultado desta solicitação de autorização, você deve
configurar a regra de notificação URL de notificação em autorização por Batch no Back Office
(Configuração > Regras de notificações).
dateTime
ans..40
manualValidation
Permite validar manualmente uma transação enquanto a data de entrega desejada não for vencida.
Para isso, este atributo deve ser valorizado a 1 (validação manual).
Com o valor 0, a validação será automática.
n1
Tabela 13 : Objeto paymentRequest
O objeto orderRequest permite transmitir informações vinculadas ao pedido.
É composto do atributo seguinte:
orderRequest
Atributo
Requisito
orderId
Referência do pedido.
Formato
string
an..64
Tabela 14 : Objeto orderRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 39 / 237
O objeto cardRequest permite transmitir informações sobre o cartão de pagamento.
Dependendo do tipo de pagamento (pagamento com digitação dos dados bancários ou pagamento por
Token Cartão), um ou mais atributos são requisitados.
• Pagamento com digitação dos dados bancários:
cardRequest
Atributo
Requisito
Formato
number
Número do cartão.
string
scheme
Tipos de cartões.
Os valores possíveis são: AMEX, CB, MASTERCARD, VISA, VISA_ELECTRON, MAESTRO, ECARTEBLEUE o JCB.
string
expiryMonth
Mês de vencimento do cartão, entre 1 e 12.
n..2
expiryYear
Mês de vencimento do cartão de 4 dígitos
Exemplo : 2016
n4
cardSecurityCode
CVV de 3 números (ou 4 para Amex:
Este campo é obrigatório quando o cartão possui um código criptograma visual. Se o CVV não é
transmitido, o banco emissor recusará o pagamento.
No entanto, este campo é facultativo quando a origem da transação for valorizada com MOTO.
cardHolderBirthday
Data de nascimento do portador no formato YYYY-MM-DD.
Este campo é obrigatório para os meios de pagamento COFINOGA et CDGP, salvo se uma
autenticação 3D Secure for realizada.
string
Requerido
em função dateTime
do tipo de
ans..64
pagamento.
Tabela 15 : Objeto cardRequest
• Pagamento via um Token Cartão existente:
cardRequest
Atributo
Requisito
Formato
paymentToken
Código único (alias) associado a um meio de pagamento.
• Ou este código foi gerado pela plataforma.
• Ou este código foi gerado pelo site de e-commerce.
string
ans..64
cardSecurityCode
CVV de 3 números (ou 4 para Amex).
Para que o pagamento seja garantido, o vendedor deve pedir ao comprador:
• digitar o CVV
• uma autenticação 3D Secure.
string
ans..64
Tabela 16 : Objeto cardRequest
Observação:
Para que um pagamento utilizando um Token Cartão existente (pagamento em um clic) seja garantido, o
vendedor deve pedir ao comprador:
• digitar o CVV
• uma autenticação 3D Secure.
O objeto customerRequest permite transmitir informações a respeito da entrega, do faturamento e dos
dados técnicos sobre o comprador.
Este objeto deve obriagatoriamente ser enviado na solicitação.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 40 / 237
Porém, os sub objetos contidos nele (ver quadro abaixo) são facultativos para esta operação.
Sub objeto
Formato
Requisitado
billingDetails
Dados de faturamento do comprador.
billingDetailsRequest
shippingDetails
Dados de entrega do comprador.
shippingDetailsRequest
extraDetails
Dados técnicos sobre o comprador.
extraDetailsRequest
Tabela 17 : Sub objetos de customerRequest
billingDetails possui os atributos seguintes:
billingDetails
Atributo
Requisito
Formato
reference
Referência do comprador.
string
n..80
title
Estado civil do comprador.
Exemplos de valores possíveis:
• Senhora, etc..
string
n..80
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string
(enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string
ans..32
email
E-mail do comprador.
string
ans..150
streetNumber
Número de rua do comprador.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string
an..5
address
Endereço do comprador.
string
ans..255
district
Bairro do comprador.
string
ans..127
zipCode
CEP do comprador.
string
ans..64
city
Cidade do comprador.
string
ans..128
state
UF / Região do comprador.
string
ans..128
country
País do comprador conforme à norma ISO 3166.
Exemplos de valores possíveis:
•
DE para a Alemanha
•
IT para a Itália
•
PT para o Portugal
•
GB para o Reino-Unido
•
JA para o Japão
•
RU para a Rússia
•
ES para a Espanha
•
NL para a Holanda
•
SE para a Suécia
•
FR para a França
•
PL para a Polônia
•
CN para a China
language
string - a2
string - a2
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 41 / 237
billingDetails
Atributo
Idioma do comprador conforme à norma ISO 639-1.
Exemplos de valores possíveis:
Requisito
•
de para o alemão
•
it para o italiano
•
pt para o português
•
en para o inglês
•
ja para o japonês
•
ru para o russo
•
es para o espanhol
•
nl para o holandês
•
sv para o sueco
•
fr para o francês
•
pl para o polonês
•
zh para o chinês
•
tr para o turco
Formato
cellPhoneNumber
Número de telefone celular
string
ans..32
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato
numérico, tendo de 11 a 20 dígitos).
string
ans..255
Tabela 18 : Objeto billingDetails
shippingDetails possui os atributos seguintes:
shippingDetails
Atributo
Requisito
Formato
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string
(enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string
ans..32
streetNumber
Número de rua para a entrega.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string
an..5
address
Endereço de entrega.
string
ans..255
address2
Complemento de endereço de entrega.
string
ans..255
district
Bairro de entrega.
string
ans..127
zipCode
CEP de entrega.
string
ans..64
city
Cidade de entrega.
string
ans..128
state
UF / Região de entrega.
string
ans..128
country
País de entrega.
string - a2
deliveryCompanyName
Informações sobre a transportadora.
string
ans..128
shippingSpeed
Modo de entrega selecionado.
Os valores possíveis são:
string
(enum)
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 42 / 237
shippingDetails
Atributo
• STANDARD para uma entrega padrão.
• EXPRESS para uma entrega express.
Requisito
Formato
shippingMethod
Método de entrega utilizado.
Os valores possíveis são:
• RECLAIM_IN_SHOP para retirar a mercadoria na loja.
• RELAY_POINT para a utilização de uma rede de pontos de entrega terceirizada (Kiala, Alveol,
etc).
• RECLAIM_IN_STATION para retirar num aeroporto, uma agência de viagens ou outros.
• PACKAGE_DELIVERY_COMPANY para a entrega por transportadora (Colissimo, UPS, etc).
• ETICKET para emitir de uma passagem eletrônica, baixar.
string
(enum)
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato
numérico, tendo de 11 a 20 dígitos).
string
ans..255
Tabela 19 : Objeto shippingDetails
extraDetails possui os atributos seguintes:
extraDetails
Atributo
Requisito
Formato
ipAddress
O endereço IP do comprador.
string
ans40
fingerPrintId
Identificador único de sessão.
Específico ao Brasil e ao analisador de fraude ClearSale.
Codificado a 128 octetos, pode conter maiúsculas ou minúsculas, números ou hífen ([A-Z] [a-z], 0-9,
_, -).
string
ans128
Tabela 20 : Objeto extraDetails
O objeto techRequest permite transmitir informações técnicas a respeito do navegador do comprador.
Este objeto deve obriagatoriamente ser enviado na solicitação.
No entanto, os atributos dele são facultativos.
techRequest
Atributo
Requisitado Formato
browserUserAgent
Header « User-Agent » do navegador do comprador (HTTP/1.1 - RFC. 2616).
string
browserAccept
Header « Accept » do navegador do comprado (HTTP/1.1 - RFC. 2616).
string
Tabela 21 : Objeto techRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 43 / 237
O objeto shoppingCartRequest permite transmitir o conteúdo do carrinho.
shoppingCartRequest
Atributo
Requisito
Formato
insuranceAmount
Valor do seguro
n..3
shippingAmount
Despesas de entrega.
n..3
taxAmount
Valor dos impostos.
n..3
cartItemInfo
Campos personalizáveis para adicionar elementos no carrinho.
O atributo cartItemInfo contém sub objetos:
• productLabel : nome do produto. O formato dele é "string".
• productType : tipo do artigo. O formato dele é "string (enum)".
Valor
Descrição
FOOD_AND_GROCERY
Produtos alimentares e de mercadinho
AUTOMOTIVE
Automóveis / Motos
ENTERTAINMENT
Entretenimento / Cultura
HOME_AND_GARDEN
Casa e jardim
HOME_APPLIANCE
Equipamentos para a casa
AUCTION_AND_GROUP_BUYING
Leilões e compras em grupo
FLOWERS_AND_GIFTS|
Flores e presentes
COMPUTER_AND_SOFTWARE
Computadores e softwares
HEALTH_AND_BEAUTY
Saúde e beleza
SERVICE_FOR_INDIVIDUAL
Serviços para pessoa física
SERVICE_FOR_BUSINESS
Serviços para pessoa jurídica
SPORTS
Esportes
CLOTHING_AND_ACCESSORIES
Roupas e acessórios
TRAVEL
Viagem
HOME_AUDIO_PHOTO_VIDEO
Som, imagem e vídeo
TELEPHONY
Telefonia
Tabela 23 : Valores associados a productType
• productRef : referência produto. O formato dele é "string".
• productQty : quantidade de produto. O formato dele é "integer".
• productAmount : valor em centavos do produto. O formato dele é "string".
• productVat : valor dos impostos sobre o produto. O formato dele é "string".
Exemplo :
<cartItemInfo>
<productLabel>CHIPS</productLabel>
<productType>FOOD_AND_GROCERY</productType>
<productRef>188545</productRef>
<productQty>10</productQty>
<productAmount>10000</productAmount>
</cartItemInfo>
Tabela 22 : Objeto shoppingCartRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 44 / 237
cartItemInfo
Resposta
A resposta à operação createPayment é constituída de um HEADER e de um BODY de tipo
createPaymentResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem createPaymentResponse é a seguinte:
Nome
Tipo
createPaymentResult
createPaymentResult
A estrutura da mensagem createPaymentResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
paymentResponse
paymentResponse
orderResponse
orderResponse
cardResponse
cardResponse
authorizationResponse
authorizationResponse
captureResponse
captureResponse
customerResponse
customerResponse
markResponse
markResponse
threeDSResponse
threeDSResponse
extraResponse
extraResponse
fraudManagementResponse
fraudManagementResponse
shoppingCartResponse
shoppingCartResponse
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
Observação:
Porém, o valor 0, indicador do sucesso da operação, não quer dizer que a transação foi aprovada. Para
verificar o status da transação, é preciso analisar o atributo transactionStatusLabel.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 45 / 237
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso (não confundir com o status da transação).
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
n..2
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
string
transactionStatusLabel
Denominação do status da transação. Os valores possíveis são:
• INITIAL
Em andamento.
string
•
•
•
•
Este status temporário. O status definitivo será retornado assim que a sincronização acabar.
NOT_CREATED
A transação não foi criada e portanto não será exibida no Back Office.
AUTHORISED
Captura em andamento.
A transação foi aceita e será capturada automaticamente no banco na data prevista.
AUTHORISED_TO_VALIDATE
Para ser aprovado.
A transação, criada em validação manual, foi autorizada. O vendedor deve validar manualmente a captura
no banco. A transação pode ser aprovada enquanto a data de captura não for vencida. Se esta data estiver
vencida, então o pagamento tem o status Expirado (status definitivo).
WAITING_AUTHORISATION
Autorização em andamento.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitado de autorização e a captura
no banco serão acionadas automaticamente.
WAITING_AUTHORISATION_TO_VALIDATE
Para ser aprovado e autorizado.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitação de autorização será
automaticamente efetuada a D-1 antes da data de captura no banco. O pagamento poderá ser aceito ou
recusado. A captura no banco é automática.
REFUSED
Recusada.
A transação foi recusada.
shopId
Código da loja.
n8
paymentSource
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
• MOTO para um pedido por e-mail ou telefone.
• CC para um call center.
• OTHER para um outro canal de venda.
submissionDate
Data e hora UTC da transação apresentadas em formato W3C (exemplo: 2016-07-16T19:20:00Z).
string
(enum)
dateTime
ans..40
contractNumber
Número de contrato comerciante utilizado.
string
paymentToken
Alias ou Código da conta comprador (pagamento por código).
string
Tabela 24 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 46 / 237
O objeto paymentResponse detalha as informações sobre a transação.
paymentResponse
Formato
transactionUuid
Referência única da transação gerada pela plataforma de pagamento.
string
ans32
transactionId
Código da transação durante a criação ou a modificação de uma transação de pagamento.
Seu valor é único para o mesmo dia.
• Ou este código será gerado pela plataforma.
• Ou este código será gerado pelo site de e-commerce.
an..6
amount
Valor da transação expresso na menor unidade da moeda .
n..12
currency
Código da moeda da transação (norma ISO 4217).
Exemplo: ;986;840 para o dollar americano.
effectiveAmount
Valor da transação na moeda efetivamente usada para a captura no banco.
effectiveCurrency
Moeda efetivamente usada para a captura no banco.
expectedCaptureDate
Data de captura no banco solicitada.
operationType
Tipo de operação
Os valores possíveis são:
• DEBIT para uma operação de débito.
• CREDIT para uma operação de reembolso.
creationDate
Data e hora do registro da transação apresentado em formato W3C.
n3
n..12
n3
dateTime
ans..40
string
dateTime
ans..40
externalTransactionId
Referência dada por um terceiro: número de transação para Paypal, Boleto, RRN para Prism, etc...
string
liabilityShift
Transferência de responsabilidade.
Os valores possíveis são:
• YES quando o pagamento é garantido.
• NO quando pagamento não é garantido.
string
paymentType
Tipo de pagamento.
Os valores possíveis são:
• SINGLE
string
(enum)
•
Pagamento em uma única parcela.
INSTALLMENT
•
Pagamento em várias parcelas.
SPLIT
•
Pagamento realizado com vários meios de pagamento.
SUBSCRIPTION
•
Pagamento por Token cartão ou vinculado a uma assinatura.
RETRY
Quando um pagamento for recusado, pode-se reiterar a solicitação de pagamento. Para qualquer reiteração,
o pagamento será valorizado com este valor.
Observação:
Durante uma operação createPayment, somente um pagamento em uma única parcela pode ser criada (valor
SINGLE).
Os valores INSTALLMENT, SPLIT, SUBSCRIPTION e RETRY podem ser retornados somente se há pagamentos que
foram criados via o formulário de pagamento.
sequenceNumber
Número de seqüência da transação. Vale "1" para um pagamento unitário.
Toma o valor do número de prestação no caso de um pagamento parcelado criado a partir do formulário de
pagamento.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 47 / 237
n..3
paymentResponse
Formato
paymentError
Complemento de informação em caso de erro técnico. Retorna um código de erro associado ao erro técnico (ver
capítulo Gerenciar os códigos de erros durante um pagamento recusado).
n..3
Tabela 25 : Objeto paymentResponse
O objeto orderResponse detalha o pedido.
orderResponse
Formato
orderId
Referência do pedido.
string
an..64
extInfo
Dados personalizados retornados em função das necessidades.
Exemplo : extInfo.key, extInfo.value
• key : nome do dado (o formato dele é "string").
• value : valor do dado (o formato dele é "string").
extInfo
Tabela 26 : Objeto orderResponse
O objeto cardResponse apresenta em detalhes as informações sobre o meio de pagamento utilizado.
cardResponse
Formato
number
• Número de cartão inválido. Contém os 6 primeiros dígitos do número, seguido por "XXXXXX" e finalmente os
4 últimos números.
• IBAN e BIC usados para o pagamento, separados por um "_" no caso de um pagamento por débito no cartão
de crédito.
string
scheme
Tipo do cartão.
string
brand
Marca do cartão.
string
country
Código país do país emissor do cartão (Código numérico ISO 3166).
productCode
Código produto do cartão.
ISO 3166
ano..3
bankCode
Código banco do banco emissor.
n..5
expiryMonth
Mês de vencimento entre 1 e 12 (ex: 3 para março, 10 para outubro).
n..2
expiryYear
Ano de vencimento com 4 dígitos (ex: 2023).
n4
Tabela 27 : Objeto cardResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 48 / 237
O objeto authorizationResponse permite obter informações sobre a solicitação de autorização.
authorizationResponse
Formato
mode
Especifica de que maneira é realizada a solicitação de autorização. Dois valores possíveis:
• MARK
Uma autorização 1 BRL foi efetuada para verificar a validade do cartão.
•
string
Isso acontece quando a data de captura ultrapassa o período de validade de uma autorização .
FULL
Autorização para o valor total pedido na solicitação.
amount
Valor da autorização na menor unidade da moeda se mode vale FULL.
currency
Código da moeda utilizada durante o pedido de autorização (conforme a norma ISO 4217) se mode vale FULL.
date
Data e hora do pedido de autorização se mode vale FULL.
n..12
n3
dateTime
anos..40
number
Número do pedido de autorização se mode vaut FULL.
n..2
result
Código retorno da solicitação de autorização retornado pelo banco emissor quando for recusado.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de autorização.
n..2
Tabela 28 : Objeto authorizationResponse
O objeto captureResponse permite obter informações a respeito do desconto se a transação for com
desconto.
captureResponse
Formato
date
Data e hora de captura.
dateTime
anos..40
number
Número de captura.
n3
reconciliationStatus
Status de aproximação bancária da transação.
n1
refundAmount
Valor que já foi sujeito a um reembolso na sua menor unidade de moeda.
refundCurrency
Moeda do valor que já foi sujeito a um reembolso (Código moeda ISO 4217: 986 para o BRL; 840 para o dólar
americano..
chargeback
Lítigio, não pago. Os valores possíveis são:
• 0 : transação sujeita a um litígio.
• 1 : transação não sujeita a um litígio.
Tabela 29 : Objeto captureResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 49 / 237
n..12
n3
O objeto customerResponse detalha as numerosas informações sobre o comprador.
A resposta contém as análises de:
• billingDetails
Dados de faturamento do comprador.
• shippingDetails
Dados de entrega do comprador.
• extraDetails
Dados técnicos sobre o comprador.
billingDetails
Atributo
Formato
reference
Referência do comprador.
string n..80
title
Estado civil do comprador.
Exemplos de valores possíveis:
• Senhora, etc..
string n..80
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string (enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string ans..32
email
E-mail do comprador.
Parâmetro obrigatório quando criar um alias.
string
ans..150
streetNumber
Número de rua do comprador.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string an..5
address
Endereço do comprador.
string
ans..255
district
Bairro do comprador.
string
ans..127
zipCode
CEP do comprador.
string ans..64
city
Cidade do comprador.
string
ans..128
state
UF / Região do comprador.
string
ans..128
country
País do comprador conforme à norma ISO 3166.
Exemplos de valores possíveis:
•
DE para a Alemanha
•
IT para a Itália
•
PT para o Portugal
•
GB para o Reino-Unido
•
JA para o Japão
•
RU para a Rússia
•
ES para a Espanha
•
NL para a Holanda
•
SE para a Suécia
•
FR para a França
•
PL para a Polônia
•
CN para a China
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 50 / 237
string - a2
billingDetails
Atributo
Formato
language
Idioma do comprador conforme à norma ISO 639-1.
Exemplos de valores possíveis:
•
de para o alemão
•
it para o italiano
•
pt para o português
•
en para o inglês
•
ja para o japonês
•
ru para o russo
•
es para o espanhol
•
nl para o holandês
•
sv para o sueco
•
fr para o francês
•
pl para o polonês
•
zh para o chinês
•
tr para o turco
cellPhoneNumber
Número de telefone celular
string - a2
string ans..32
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato numérico,
tendo de 11 a 20 dígitos).
string
ans..255
Tabela 30 : Objeto billingDetails
shippingDetails
Atributo
Formato
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string
(enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string
ans..32
streetNumber
Número de rua para a entrega.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string an..5
address
Endereço de entrega.
string
ans..255
address2
Complemento de endereço de entrega.
string
ans..255
district
Bairro de entrega.
string
ans..127
zipCode
CEP de entrega.
string
ans..64
city
Cidade de entrega.
string
ans..128
state
UF / Região de entrega.
string
ans..128
country
País de entrega.
string - a2
deliveryCompanyName
Informações sobre a transportadora.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 51 / 237
string
ans..128
shippingDetails
Atributo
Formato
shippingSpeed
Modo de entrega selecionado.
Os valores possíveis são:
• STANDARD para uma entrega padrão.
• EXPRESS para uma entrega express.
string
(enum)
shippingMethod
Método de entrega utilizado.
Os valores possíveis são:
• RECLAIM_IN_SHOP para retirar a mercadoria na loja.
• RELAY_POINT para a utilização de uma rede de pontos de entrega terceirizada (Kiala, Alveol, etc).
• RECLAIM_IN_STATION para retirar num aeroporto, uma agência de viagens ou outros.
• PACKAGE_DELIVERY_COMPANY para a entrega por transportadora (Colissimo, UPS, etc).
• ETICKET para emitir de uma passagem eletrônica, baixar.
string
(enum)
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato numérico,
tendo de 11 a 20 dígitos).
string
ans..255
Tabela 31 : Objeto shippingDetails
extraDetails
Formato
ipAddress
O endereço IP do comprador.
string
ans40
Tabela 32 : Objeto extraDetails
O objeto markResponse permite obter informações sobre a solicitação de autorização de 1 BRL.
markResponse
Formato
amount
Valor utilizado para verificar a validade do cartão, na menor unidade da moeda .
currency
Código da moeda utilizado para verificar a validade do cartão (conforme a norma ISO 4217).
n..12
n3
date
Data e hora da solicitação de autorização efetuada se o atributo mode do objetoauthorizationResponse vaut
MARK.
dateTime
anos..40
number
Número de autorização da solicitação de autorização se o atributo mode do objeto authorizationResponse vale
MARK.
dateTime
anos..40
result
Resultado da solicitação de autorização efetuada se o atributo mode do objeto authorizationResponse vale MARK.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de autorização.
Tabela 33 : Objet markResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 52 / 237
n..2
O objeto threeDSResponse permite obter informações sobre a autenticação 3D Secure.
Este objeto contém:
• authenticationRequestData
Descreve o resultado da solicitado de alistamento bem como a mensagem codificada que será
transmitida pelo navegador para o ACS.
• authenticationResultData
Descreve os detalhes da autenticação 3D Secure.
authenticationRequestData
Formato
threeDSAcctId
Certificado reenviado pelo Directory Server.
string
threeDSAcsUrl
Url de ACS que deve ser solicitado.
string
threeDSBrand
Rede do cartão.
string
threeDSEncodedPareq
Mensagem PAReq encodificada, pronto para enviar ao ACS.
string
threeDSEnrolled
Status de alistamento do portador.
Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
a1
threeDSRequestId
Número de solicitação, para relembrar na chamada ENABLED_FINALIZE do atributo mode do objeto
threeDSRequest.
Tabela 34 : Objeto authenticationRequestData
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 53 / 237
string
authenticationResultData
Formato
transactionCondition
Status da autenticação 3D Secure. Os valores possíveis são:
• COND_3D_SUCCESS
Sucesso da autenticação.
•
•
•
•
•
string
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure e o portador autenticou-se
corretamente.
COND_3D_FAILURE
Autenticação não sucedida.
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure mas o comprador não conseguiu
autenticar-se (senha errada).
COND_3D_ERROR
Autenticação em falha.
O vendedor participa ao programa 3D secure mas o servidor da plataforma de pagamento encontrou um
problema técnico durante o processo de autenticação (quando verificou a inscrição do cartão ao programa
3D ou durante a autenticação do portador).
COND_3D_NOTENROLLED
Portador não alistado.
O vendedor participa ao programa 3D Secure mas o cartão do portador não é alistado.
COND_3D_ATTEMPT
Tentativa de autenticação.
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure mas o comprador não teve
que autenticar-se (o servidor de controle de acesso do banco que emitiu o cartão somente implementa a
geração de um comprovante de tentativa de autenticação).
COND_SSL
3D Secure não aplicável.
O vendedor não é alistado ao 3D Secure ou o canal de venda não tem cobertura com esta garantia.
enrolled
Status de alistamento do portador. Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
string
status
Status da autenticação do portador. Os valores possíveis são:
• Y para um status autenticado 3 DS.
• N para um erro de autenticação.
• U para uma autenticação impossível.
• A para uma tentativa de autenticação.
a1
eci
Indicador de Comercio Eletrônico.
O valor eci depende do status da autenticação 3DS e do tipo de cartão. Os valores possíveis são:
status =Y
status = A
status = U
status =N
VISA - AMEX
5
6
7
-
MasterCard
02
01
-
-
xid
Número de transação 3DS.
string
string
cavvAlgorithm
Algoritmo de verificação da autenticação do portador (CAVV). Os valores possíveis são:
• 0 para HMAC.
• 1 para CVV.
• 2 para CVV_ATN.
• 3 para Mastercard SPA.
n1
cavv
Certificado do ACS.
string
signValid
Assinatura da autenticação 3DS.
string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 54 / 237
authenticationResultData
Formato
brand
Rede do cartão.
string
Tabela 35 : Objeto authenticationResultData
O objeto extraResponse permite obter informações adicionais sobre o pagamento.
extraResponse
Formato
paymentOptionCode
Reservado para um uso específico (Brasil).
Define o código de opção utilizada para caracterizar a quantidade de prestações para uma transação).
paymentOptionOccNumb
Reservado para um uso específico.
Define a quantidade de prestações para uma transação.
Por exemplo, para um pagamento em 3 vezes, este atributo terá o valor 3.
n..2
string
Tabela 36 : Objeto extraResponse
O objeto fraudManagementResponse permite obter os resultados dos controle de gerenciamento de
riscos.
A resposta contem as análises dos atributos:
• riskControl
Retorna o resultado do controle de gerenciamento de riscos realizado.
• riskAnalysis
Retorna o resultado da análise de gerenciamento de riscos efetuada por um sistema externo (ClearSale,
CyberSource,...).
• riskAssessment
Retorna o resultado da análise de gerenciamento dos riscos avançados realizado pela plataforma de
pagamento.
O atributo riskControl
O formato é o seguinte: name1=result1;name2=result2
Nome
Formato
Descrição
name
string
Nome da regra de gerenciamento de risco.
result
string
Resultado do controle.
Valores possíveis para 'name'
CARD
Cartão presente na lista cinza.
COUNTRY
País do comprador na lista cinza.
IPADDR
Endereço IP do comprador presente na lista cinza.
AMOUNT
Valor máximo autorizado por pedido foi atingido.
BIN
O código BIN do cartão está presente na lista cinza.
ECB
Detecção de um e-carte bleue.
CARD_COMMERCIAL_NATIONAL
Detecção de um cartão comercial nacional.
CARD_COMMERCIAL_FOREIGN
Detecção de um cartão comercial estrangeiro.
CAS
Detecção de um cartão com autorização sistemática.
COUNTRY_CONSISTENCY
O país de origem do cartão, o país do endereço IP do comprador e o país do
comprador não correspondem.
NON_GUARANTEED_PAYMENT
Detecção de um pagamento sem transferência de responsabilidade.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 55 / 237
Valores possíveis para 'name'
IPADDR_COUNTRY
O pais do endereço IP do comprador está presente na lista cinza.
Tabela 37 : Valores possíveis para 'name'
Valores possíveis para 'result'
OK
Indica que o controle é correto.
KO
Indica que o controle está em falha.
Tabela 38 : Valores possíveis para 'result'
O atributo riskAnalysis
riskAnalysis
Formato
score
Pontuação atribuída para toda transação para avaliar o risco associado a ela.
string
resultCode
Código retornado por um analista de risco externo.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno retornados pelo analista de
risco externo.
string
status
Status da analise de risco Os valores possíveis são os seguintes:
• P_SEND_OK, "Sent to clearsale and successfully processed"
Sucesso
• P_TO_SEND, "Transaction analysis is scheduled to be sent to risk analyzer"
O envio está programado
• P_TO_SEND_KO, "Problem when tried to send to risk analyzer"
Erro de tratamento
• P_PENDING_AT_ANALYZER, "Analysis result is still being processed by the risk analyzer. We should keep
checking/waiting for the analysis result"
Tratamento em andamento pelo analista
• P_MANUAL, "Analysis should be requested through user request (not automatically)"
A espera de envio manual
• P_SKIPPED, "Analysis request discarded by current transaction status/problem"
Descartado
• P_SEND_EXPIRED, "Analysis request expired"
Vencido
string
requestId
Código da analise para o analista de risco.
string
extraInfo
Sem valorização para ClearSale.
Para CyberSource, este atributo retorna todos os códigos retornados pelo DecisionManager.
• key : nome do dado (o formato dele é "string").
• value : valor do dado (o formato dele é "string").
Exemplo :
• COR-BA=Endereço de faturamento corrigido ou corrigível
• A=Mudanças de endereços excessivos. O comprador mudou de endereço de faturamento pelo menos duas
vezes durante os seis últimos meses.
• etc.
extInfo
Tabela 39 : Atributo riskAnalysis
O atributo riskAssessment
Valores
Descrição
ENABLE_3DS
3D Secure ativado
DISABLE_3DS
3D Secure desativado
MANUAL_VALIDATION
A transação foi criada em validação manual.
A captura do pagamento esta bloqueada temporariamente para permitir ao vendedor
efetuar todas as verificações desejadas.
REFUSE
A transação foi recusada.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 56 / 237
Valores
Descrição
RUN_RISK_ANALYSIS
Chamada para um analisador de riscos externos sob a condição que o vendedor possua
um contrato
Consultar a descrição do campo vads_risk_analysis_result para identificar a lista dos
valores possíveis e a descrição deles.
INFORM
Uma alerta apareceu.
O vendedor é avisado quando um risco é identificado.
O vendedor é informado via uma ou mais regras do centro de notificação (URL de
notificação, e-mail ou SMS).
O objeto shoppingCartResponse apresenta em detalhes o conteúdo do carrinho.
shoppingCartResponse
Atributo
Formato
cartItemInfo
Campos personalizáveis para adicionar elementos no carrinho.
O atributo cartItemInfo contém sub objetos:
• productLabel : nome do produto. O formato dele é "string".
• productType : tipo do artigo. O formato dele é "string (enum)".
Valor
Descrição
FOOD_AND_GROCERY
Produtos alimentares e de mercadinho
AUTOMOTIVE
Automóveis / Motos
ENTERTAINMENT
Entretenimento / Cultura
HOME_AND_GARDEN
Casa e jardim
HOME_APPLIANCE
Equipamentos para a casa
AUCTION_AND_GROUP_BUYING
Leilões e compras em grupo
FLOWERS_AND_GIFTS|
Flores e presentes
COMPUTER_AND_SOFTWARE
Computadores e softwares
HEALTH_AND_BEAUTY
Saúde e beleza
SERVICE_FOR_INDIVIDUAL
Serviços para pessoa física
SERVICE_FOR_BUSINESS
Serviços para pessoa jurídica
SPORTS
Esportes
CLOTHING_AND_ACCESSORIES
Roupas e acessórios
TRAVEL
Viagem
HOME_AUDIO_PHOTO_VIDEO
Som, imagem e vídeo
TELEPHONY
Telefonia
Tabela 40 : Valores associados a productType
• productRef : referência produto. O formato dele é "string".
• productQty : quantidade de produto. O formato dele é "integer".
• productAmount : valor em centavos do produto. O formato dele é "string".
• productVat : valor dos impostos sobre o produto. O formato dele é "string".
Exemplo :
<cartItemInfo>
<productLabel>CHIPS</productLabel>
<productType>FOOD_AND_GROCERY</productType>
<productRef>188545</productRef>
<productQty>10</productQty>
<productAmount>10000</productAmount>
</cartItemInfo>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 57 / 237
cartItemInfo
Criar um pagamento sem autenticação 3D Secure
A cinemática do pagamento sem autenticação 3D Secure é a seguinte:
Figura 2 : Cinemática do pagamento sem autenticação 3D Secure
1. O comprador valida o pedido dele e digita os dados do cartão no site de e-commerce para realizar o
pagamento.
2. O site de e-commerce entra em contato com a plataforma de pagamento.
Chama a operação createPayment.
Para um pagamento sem autenticação 3D Secure, ele pode:
• não valorizar o atributo mode do objeto threeDSRequest (sem valorização, o valor DISABLED é dado
ao atributo por padrão),
• valorizar o atributo mode do objeto threeDSRequest a DISABLED.
3. A plataforma de pagamento realiza a solicitação de autorização e retorna o resultado do pagamento
para o site de e-commerce.
Exemplo de código para iniciar um pagamento sem 3D Secure
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:v5="http://
v5.ws.vads.lyra.com/">
<soap:Header xmlns:soapHeader="http://v5.ws.vads.lyra.com/Header">
<soapHeader:shopId>12345678</soapHeader:shopId>
<soapHeader:requestId>9a4bf6ef-af95-4078-b791-4e9e87888eaa</soapHeader:requestId>
<soapHeader:timestamp>2015-04-01T12:07:34Z</soapHeader:timestamp>
<soapHeader:mode>TEST</soapHeader:mode>
<soapHeader:authToken>OWXz7lNdyoaQInKJcDxaKA/djtx6lk7RbaMTgwPhFVo=</soapHeader:authToken>
</soap:Header>
<soap:Body>
<v5:createPayment>
<commonRequest>
<paymentSource>EC</paymentSource>
<submissionDate>2015-04-01T12:05:42Z</submissionDate>
</commonRequest>
<threeDSRequest>
<mode>DISABLED</mode>
</threeDSRequest>
<paymentRequest>
<amount>1</amount>
<currency>978</currency>
</paymentRequest>
<orderRequest>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 58 / 237
<orderId>TEST-01</orderId>
</orderRequest>
<cardRequest>
<number>4970100000000000</number>
<scheme>VISA</scheme>
<expiryMonth>12</expiryMonth>
<expiryYear>2015</expiryYear>
<cardSecurityCode>123</cardSecurityCode>
<cardHolderBirthDay>1976-04-18</cardHolderBirthDay>
</cardRequest>
<customerRequest>
<billingDetails>
<email>[email protected]</email>
</billingDetails>
<extraDetails>
<ipAddress>127.0.0.1</ipAddress>
</extraDetails>
</customerRequest>
</v5:createPayment>
</soap:Body>
</soap:Envelope>
Exemplo de resposta para um pagamento sem 3D Secure realizado com sucesso.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">9a4bf6ef-af95-4078-b791-4e9e87888eaa</
requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T12:07:34Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/
Header/">BmIP5CNeLyAQQDuzrFjvfoSWEZlCa5OidTV3WNqUXL4=</authToken>
</env:Header>
<soap:Body>
<ns2:createPaymentResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createPaymentResult>
<requestId>9a4bf6ef-af95-4078-b791-4e9e87888eaa</requestId>
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
<transactionStatusLabel>AUTHORISED</transactionStatusLabel>
<shopId>12345678</shopId>
<paymentSource>EC</paymentSource>
<submissionDate>2015-04-01T14:05:42+02:00</submissionDate>
<contractNumber>5785350</contractNumber>
</commonResponse>
<paymentResponse>
<transactionId>124478</transactionId>
<amount>1</amount>
<currency>978</currency>
<expectedCaptureDate>2015-04-01T14:07:54.396+02:00</expectedCaptureDate>
<operationType>0</operationType>
<creationDate>2015-04-01T14:07:54.387+02:00</creationDate>
<liabilityShift>NO</liabilityShift>
<transactionUuid>a27d1907d7f74be1843318dce5875b99</transactionUuid>
</paymentResponse>
<orderResponse>
<orderId>TEST-01</orderId>
</orderResponse>
<cardResponse>
<number>497010XXXXXX0000</number>
<scheme>CB</scheme>
<brand>CB</brand>
<country>FR</country>
<productCode>A</productCode>
<bankCode>17807</bankCode>
<expiryMonth>12</expiryMonth>
<expiryYear>2015</expiryYear>
</cardResponse>
<authorizationResponse>
<mode>FULL</mode>
<amount>1</amount>
<currency>978</currency>
<date>2015-04-01T14:07:54.387+02:00</date>
<number>3fe19a</number>
<result>0</result>
</authorizationResponse>
<captureResponse/>
<customerResponse>
<billingDetails>
<email>[email protected]</email>
<language>fr_FR</language>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 59 / 237
</billingDetails>
<shippingDetails/>
<extraDetails>
<ipAddress>127.0.0.1</ipAddress>
</extraDetails>
</customerResponse>
<markResponse/>
<threeDSResponse>
<authenticationResultData>
<transactionCondition>COND_SSL</transactionCondition>
</authenticationResultData>
</threeDSResponse>
<extraResponse/>
<fraudManagementResponse>
<riskControl>
<name>CARD_FRAUD</name>
<result>OK</result>
</riskControl>
<riskControl>
<name>COMMERCIAL_CARD</name>
<result>OK</result>
</riskControl>
</fraudManagementResponse>
</createPaymentResult>
</ns2:createPaymentResponse>
</soap:Body>
</soap:Envelope>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 60 / 237
Criar um pagamento com autenticação 3D Secure
A cinemática do pagamento com autenticação 3D Secure é a seguinte:
Figura 3 : Cinemática do pagamento com autenticação 3D Secure
1. O comprador valida o pedido dele e digita os dados do cartão no site de e-commerce para realizar o
pagamento.
2. O site de e-commerce entra em contato com a plataforma de pagamento.
Chama a operação createPayment. Valoriza o atributo mode do objeto threeDSRequest a
ENABLED_CREATE.
3. A plataforma de pagamento, via o MPI dela, consulta o directory servidor VISA, Mastercard ou AMEX
(SafeKey).
• Se o cartão não for alistado, a plataforma de pagamento realiza a solicitação de autorização e retorna
o resultado do pagamento para o site de e-commerce.
• O atributo threeDSEnrolled do objeto authenticationRequestData do threeDSResponse é
valorizado a N.
• Se o cartão for alistado:
a plataforma de pagamento retorna ao vendedor as informações seguintes:
• O atributo threeDSEnrolled do objeto authenticationRequestData do threeDSResponse é
valorizado a Y,
• a URL do site internet do banco do portador (ACS) para qual o vendedor deverá redirecionar o
comprador,
• a mensagem PAReq codificada (threeDSEncodedPareq),
• o código da solicitação (threeDSRequestId).
4. O site de e-commerce salvo no campo MD :
• o código de sessão presente no cabeçalho HTTP da resposta (JSESSIONID ),
• o código da solicitação (threeDSRequestId ) presente na resposta authenticationRequestData.
MD é a abreviação de MerchantData. Trata-se de um campo criado para a solicitação.
5. O site de e-commerce envia para o navegador do comprador uma solicitação HTTP POST com:
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 61 / 237
• PaReq
• TermUrl
• MD
6. O comprador é redirecionado para o site do banco emissor (ACS) e autentica-se.
7. No final da autenticação, o comprador é redirecionado para o site de e-commerce. O navegador dele
realiza e envia uma solicitação POST para o site de e-commerce com os campos MD e PaRes.
8. O site de e-commerce recupera estes dois campos e os transmite para a plataforma de pagamento para
verificar a autenticação e criar a transação.
Para criar a transação, ele deve:
• chamar de novo a operação createPayment informando o atributo mode do objeto threeDSRequest
a ENABLED_FINALIZE,
• informar o atributo requestId do objeto threeDSRequest,
• informar o atributo pares do objeto threeDSRequest,
9. O MPI da plataforma de pagamento verifica os dados presentes no PaRes :
• o comprador não se autenticou, o pagamento é recusado.
• o comprador autenticou-se, a plataforma de pagamento realiza a solicitação de autorização.
10.A plataforma de pagamento
(authenticationResultData).
retorna
o
resultado
para
o
site
de
e-commerce
Iniciar um pagamento com 3D Secure
O exemplo abaixo permite iniciar um pagamento (createPayment) com autenticação 3D Secure.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:v5="http://
v5.ws.vads.lyra.com/">
<soap:Header xmlns:soapHeader="http://v5.ws.vads.lyra.com/Header">
<soapHeader:shopId>12345678</soapHeader:shopId>
<soapHeader:requestId>09016abd-2869-40cc-b32f-a467bd541e42</soapHeader:requestId>
<soapHeader:timestamp>2015-04-01T12:09:44Z</soapHeader:timestamp>
<soapHeader:mode>TEST</soapHeader:mode>
<soapHeader:authToken>ASQu/agMyf5UDEkd2HZbBZAKkIjrAMoJV98ZN2W9o/g=</soapHeader:authToken>
</soap:Header>
<soap:Body>
<v5:createPayment>
<commonRequest>
<paymentSource>EC</paymentSource>
<submissionDate>2015-04-01T12:09:44Z</submissionDate>
</commonRequest>
<threeDSRequest>
<mode>ENABLED_CREATE</mode>
</threeDSRequest>
<paymentRequest>
<amount>1</amount>
<currency>978</currency>
<manualValidation>1</manualValidation>
</paymentRequest>
<orderRequest>
<orderId>TEST-01</orderId>
</orderRequest>
<cardRequest>
<number>4970100000000009</number>
<scheme>VISA</scheme>
<expiryMonth>12</expiryMonth>
<expiryYear>2015</expiryYear>
<cardSecurityCode>123</cardSecurityCode>
<cardHolderBirthDay>1976-04-18</cardHolderBirthDay>
</cardRequest>
</v5:createPayment>
</soap:Body>
</soap:Envelope>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 62 / 237
A criação de um pagamento com autenticação 3D Secure retorna um objeto threeDSResponse.
Exemplos de respostas: pagamento com autenticação 3D Secure solicitada
• Caso 1: o cartão esta alistado
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">09016abd-2869-40cc-b32fa467bd541e42</requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T12:09:44Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/
Header/">3fRs8IRBhkPvomIoILJmP/4sdfWg4V5AbppfGEN7PW0=</authToken>
</env:Header>
<soap:Body>
<ns2:createPaymentResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createPaymentResult>
<requestId>09016abd-2869-40cc-b32f-a467bd541e42</requestId>
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
</commonResponse>
<paymentResponse/>
<orderResponse/>
<cardResponse/>
<authorizationResponse/>
<captureResponse/>
<customerResponse/>
<markResponse/>
<threeDSResponse>
<authenticationRequestData>
<threeDSAcctId>98b7b83c590d4aaabab3667b4ec2</threeDSAcctId>
<threeDSAcsUrl>https://[ACS-URL]</threeDSAcsUrl>
<threeDSBrand>VISA</threeDSBrand>
<threeDSEncodedPareq>eJxVUstu2zAQ/BVBd5kPiaZkrBgkNYqka[...]</
threeDSEncodedPareq>
<threeDSEnrolled>Y</threeDSEnrolled>
<threeDSRequestId>_a7c5c935-24d1-4d6c-873e-7e29f4e5dec1</
threeDSRequestId>
</authenticationRequestData>
</threeDSResponse>
<extraResponse/>
<fraudManagementResponse/>
</createPaymentResult>
</ns2:createPaymentResponse>
</soap:Body>
</soap:Envelope>
• Caso 2: o cartão não esta alistado
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">c63b5e8ee6b9-47f1-8890-98ff62f4d018</requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-09-17T09:19:44Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/
Header/">BKlVnOafVsEJTtdQRvYgHvHVTjlt68CFKefT0s8sikk=</authToken>
</SOAP-ENV:Header>
<soap:Body>
<ns2:createPaymentResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createPaymentResult><requestId>c63b5e8e-e6b9-47f1-8890-98ff62f4d018</requestId>
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
<transactionStatusLabel>AUTHORISED</transactionStatusLabel>
<shopId>12345678</shopId>
<paymentSource>EC</paymentSource>
<submissionDate>2015-09-17T11:19:44+02:00</submissionDate>
<contractNumber>5555555</contractNumber>
</commonResponse>
<paymentResponse>
<transactionId>962003</transactionId>
<amount>2990</amount>
<currency>978</currency>
<expectedCaptureDate>2015-09-17T11:19:44.732+02:00</expectedCaptureDate>
<operationType>0</operationType>
<creationDate>2015-09-17T11:19:44.702+02:00</creationDate>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 63 / 237
<transactionUuid>04474adae6c24b688d4892a1a80833c3</transactionUuid>
<sequenceNumber>1</sequenceNumber>
<paymentType>SINGLE</paymentType>
</paymentResponse>
<orderResponse>
<orderId>myOder</orderId>
</orderResponse>
<cardResponse>
<number>497010XXXXXX0001</number>
<scheme>CB</scheme>
<brand>CB</brand>
<country>FR</country>
<productCode>F</productCode>
<expiryMonth>12</expiryMonth>
<expiryYear>2023</expiryYear>
</cardResponse>
<authorizationResponse>
<mode>FULL</mode>
<amount>2990</amount>
<currency>978</currency>
<date>2015-09-17T11:19:44.702+02:00</date>
<number>3fc075</number>
<result>0</result>
</authorizationResponse>
<captureResponse/>
<customerResponse>
<billingDetails>
<email>[email protected]</email>
<language>fr_FR</language>
</billingDetails>
<shippingDetails/>
<extraDetails/>
</customerResponse>
<markResponse/>
<threeDSResponse>
<authenticationRequestData/>
<authenticationResultData>
<brand>VISA</brand>
<enrolled>N</enrolled>
<transactionCondition>COND_3D_NOTENROLLED</transactionCondition>
</authenticationResultData>
</threeDSResponse>
<extraResponse/>
<fraudManagementResponse>
<riskControl>
<name>COMMERCIAL_CARD</name>
<result>OK</result>
</riskControl>
<riskControl>
<name>SYSTEMATIC_AUTO</name>
<result>OK</result>
</riskControl>
<riskAssesments/>
</fraudManagementResponse>
</createPaymentResult>
</ns2:createPaymentResponse>
</soap:Body>
</soap:Envelope>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 64 / 237
Manter uma mesma sessão HTTP para um pagamento com autenticação 3D Secure
A arquitetura da plataforma de pagamento baseia-se em um conjunto de servidores com repartição de
carga.
Para garantir a continuidade do processo, cada solicitação vinculada a um mesmo pagamento deve ser
realizada com a mesma sessão HTTP.
Desta forma, para toda solicitação createPayment com autenticação 3D Secure (threeDSRequest), uma
sessão é criada no servidor.
A ID desta sessão deve ser retornada no cabeçalho HTTP da resposta e deverá ser retornada na solicitação
createPayment em modo ENABLED_FINALIZE.
Em função da linguagem utilizada, seguem dois exemplos para efetuar esta operação.
• Em JAVA
Utilize a propriedade SESSION_MAINTAIN_PROPERTY garantido que ela seja valorizada como True
para recuperar automaticamente as informações de sessão associadas à solicitação HTTP e manter um
cookie com o ID da sessão (Standard Java , JAX-WS).
((BindingProvider)port).getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY,true);
• Em PHP
Segue um exemplo de código para resgatar a id de sessão e transmiti-la:
/* O método abaixo permite resgatar o cabeçalho HTTP da resposta
$/$header= $client -> __getLastResponseHeaders ();
/* No string de símbolos obtido, procuramos a presença do ID da sessão HTTP, armazenada no
elemento
"JSESSIONID" : */
if(!preg_match("#JSESSIONID=([A-Za-z0-9\.]+)#",$header, $matches)){
return " Nenhum ID de Sessão retornado. " ; //Case de erro técnico
}
$cookie= $matches[1] ) ;
/*O método abaixo permite especificar um cookie que será enviado em todo cabeçalho http
*/
$client ->__setCookie ("JSESSIONID",$cookie );
Este método permite ao servidor resgatar o conteudo do header e transmiti-lo na forma de cookie na
solicitação HTTP.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 65 / 237
Redirecionar o navegador do comprador para o ACS dele
Após ter resgatado o conteúdo do objeto authenticationRequestData, é preciso redirecionar o navegador
do comprador para o ACS dele, retornando uma página HTML com um formulário POST auto submetido.
A url do ACS é utilizada como ação do POST. O valor dele é redirecionado para o campo threeDSAcsUrl.
É preciso também ter uma URL de retorno no servidor para resgatar a resposta do ACS retornada por POST.
Este formulário deve obrigatoriamente conter os atributos seguintes:
• PaReq
Mensagem PAReq encodificada, pronto para enviar ao ACS.
• TermUrl
URL de retorno para tratar o retorno do ACS.
• MD
Contém o código de sessão presente no cabeçalho HTTP da resposta(JSESSIONID) e o código da
solicitação (threeDSRequestId) presente no objeto authenticationRequestData da resposta separado
por um separador (por exemplo o caractere « + »).
Estes dados serão restituídos na resposta do ACS.
Nota a respeito do modo TEST:
Para manter a continuidade das transações em modo teste, é preciso transmitir o código da sessão durante
o redirecionamento para o ACS.
Isto deverá ser feito concatenando:
• A URL do ACS obtida na resposta authenticationRequestData
• O código de sessão retornado no cabeçalho http, separados por ;jsessionid= »
Respeitar a sintaxe seguinte: ${URL};jsessionid=${session}
Exemplo :
<form name="Form" method="post" action=https://secure.payzen.com.br/vads-payment/
acs.silent_authenticate.a;jsessionid=B420BF68835F6563FB6E4B289ABB9080.bdxvad3" >
...
</form>
EM MODO PRODUÇÃO, VOCÊ NUNCA DEVE TRANSMITIR UM CÓDIGO DE SESSÃO PARA O ACS
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 66 / 237
Resgatar a resposta do ACS
Para resgatar a resposta do ACS, é preciso configurar uma URL de retorno do ACS.
Esta permitirá retornar os dados do PaRes para o site de e-commerce.
Os parâmetros retornados pelo ACS são os seguintes:
• PaRes : contém a mensagem PaRes (Payer Authentication Response).
• MD : Contém o código de sessão presente no cabeçalho da resposta e o código da solicitação
(threeDSRequestId ) presente na resposta authenticationRequestData.
Estes dois valores devem ser extraídos para utiliza-los durante a chamada da operação createPayment
quando o atributo mode do objeto threeDSRequest for valorizado a ENABLED_FINALIZE.
Exemplo:
PaRes:eJzNWVmPo0i2frfk/1CqeXRXsZjFtJw5YjVgg81mlpcrdjCrzWr/+gln1pLdqjvqOz0PN6UUcIg4ceIs33cCb/
85V+WnMb51eVO/fEa+wp8/xXXYRHmdvny2TOHL5vM/X7dmdotjzojD4Ra/bpW46/w0/pRHL5//hyBQHEsI/
EuyJsMvGBmvv1BUsPlCUlQUUFiAoQH5+XV7ovW4e5vR5WkdR1//6sRvtr0C076iW+j7IzDiFmZ+3b9u/
[...]
MD:pcpSryKqB0NynWVHj8LQj0uz+_66254f65-f37c-47e3-99b8-799db94b42b7
Neste exemplo, o campo MD contém o código da sessão e o código da solicitação, separados pelo símbolo
«+»:
JSESSIONID: pcpSryKqB0NynWVHj8LQj0uz
requestId:_66254f65-f37c-47e3-99b8-799db94b42b7
Verificar a autenticação e finalizar o pagamento
Para verificar o resultado da autenticação 3DS e finalizar o pagamento, é preciso submeter para a
plataforma de pagamento:
• o requestId,
• a mensagem PaRes recebida após a autenticação 3DS.
Para isso, é preciso chamar a operação createPayment e valorisar o atributo mode do objeto
threeDSRequest a ENABLED_FINALIZE.
Esta operação retornará uma resposta threeDSResponse com um objeto authenticationResultData.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:v5="http://
v5.ws.vads.lyra.com/">
<soap:Header xmlns:soapHeader="http://v5.ws.vads.lyra.com/Header">
<soapHeader:shopId>12345678</soapHeader:shopId>
<soapHeader:requestId>1416ffba-66ca-4609-bac8-041764fa4cad</soapHeader:requestId>
<soapHeader:timestamp>2015-04-01T12:18:21Z</soapHeader:timestamp>
<soapHeader:mode>TEST</soapHeader:mode>
<soapHeader:authToken>J8wgBbvfbMGWZAMUbn+3HFUJMblBG+//rkclkJOz2aA=</soapHeader:authToken>
</soap:Header>
<soap:Body>
<v5:createPayment>
<commonRequest>
<paymentSource>EC</paymentSource>
<submissionDate>2015-04-01T12:18:21Z</submissionDate>
</commonRequest>
<threeDSRequest>
<mode>ENABLED_FINALIZE</mode>
<pares>eJzNWVmPo0i2frfk/1CqeXRXsZjFtJw5YjVgg81mlpcrdjCrzWr/+gl [...] </pares>
<requestId>_66254f65-f37c-47e3-99b8-799db94b42b7</requestId>
</v5:createPayment>
</soap:Body>
</soap:Envelope>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 67 / 237
Exemplo de arquivo de resposta gerado após a chamada ENABLED_FINALIZE :
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">1416ffba-66ca-4609-bac8-041764fa4cad</
requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T12:18:21Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/
Header/">CwOMOsyYYLzxcDyY0+7JyNi70uUbNEYGUAD81MttVnA=</authToken>
</env:Header>
<soap:Body>
<ns2:createPaymentResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createPaymentResult>
<requestId>1416ffba-66ca-4609-bac8-041764fa4cad</requestId>
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
<transactionStatusLabel>AUTHORISED_TO_VALIDATE</transactionStatusLabel>
<shopId>12345678</shopId>
<paymentSource>EC</paymentSource>
<submissionDate>2015-04-01T14:09:44+02:00</submissionDate>
<contractNumber>5785350</contractNumber>
</commonResponse>
<paymentResponse>
<transactionId>124472</transactionId>
<amount>1</amount>
<currency>978</currency>
<expectedCaptureDate>2015-04-01T14:18:58.522+02:00</expectedCaptureDate>
<operationType>0</operationType>
<creationDate>2015-04-01T14:18:58.514+02:00</creationDate>
<transactionUuid>170fd39a02c847feb5a5f750e8b320d2</transactionUuid>
<sequenceNumber>1</sequenceNumber>
<paymentType>SINGLE</paymentType>
</paymentResponse>
<orderResponse>
<orderId>TEST-01</orderId>
</orderResponse>
<cardResponse>
<number>497010XXXXXX0009</number>
<scheme>CB</scheme>
<brand>CB</brand>
<country>FR</country>
<productCode>G1</productCode>
<bankCode>17807</bankCode>
<expiryMonth>12</expiryMonth>
<expiryYear>2015</expiryYear>
</cardResponse>
<authorizationResponse>
<mode>FULL</mode>
<amount>1</amount>
<currency>978</currency>
<date>2015-04-01T14:18:58.514+02:00</date>
<number>3fea6c</number>
<result>0</result>
</authorizationResponse>
<captureResponse/>
<customerResponse>
<billingDetails>
<language>fr_FR</language>
</billingDetails>
<shippingDetails/>
<extraDetails/>
</customerResponse>
<markResponse/>
<threeDSResponse>
<authenticationResultData>
<brand>VISA</brand>
<enrolled>Y</enrolled>
<status>Y</status>
<eci>05</eci>
<xid>TUN3a0JZczB2QlRDeHZTT2lqakk=</xid>
<cavv>Q2F2dkNhdnZDYXZ2Q2F2dkNhdnY=</cavv>
<cavvAlgorithm>2</cavvAlgorithm>
<transactionCondition>COND_3D_SUCCESS</transactionCondition>
</authenticationResultData>
</threeDSResponse>
<extraResponse/>
<fraudManagementResponse>
<riskControl>
<name>CARD_FRAUD</name>
<result>OK</result>
</riskControl>
<riskControl>
<name>COMMERCIAL_CARD</name>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 68 / 237
<result>OK</result>
</riskControl>
</fraudManagementResponse>
</createPaymentResult>
</ns2:createPaymentResponse>
</soap:Body>
</soap:Envelope>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 69 / 237
6.2. Modificar uma transação de pagamento 'updatePayment'
updatePayment permite:
• Modificar o valor de uma transação (para baixo)
• Modificar a data de captura desejada
As transações que podem estar sujeitas à modificação possuem uns dos status seguintes:
• Para ser aprovado
• Para ser aprovado e autorizado
• Autorização em andamento
• Captura em andamento
Observação : Se nenhuma informação for modificada, a solicitação sera rejeitada com um código de erro.
Solicitação para enviar
A solicitação updatePayment é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação updatePayment toma na entrada um objeto do tipo updatePayment.
O tipo updatePayment é constituído dos parâmetros seguintes:
Objeto
Formato
commonRequest
commonRequest
queryRequest
queryRequest
paymentRequest
paymentRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 70 / 237
Requisito
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Somente um atributo pode ser valorizado, se precisar:
commonRequest
Atributo
Requisito
comment
Comentário livre.
Formato
string
Tabela 41 : Objeto commonRequest
O comentário será exibido no histórico da transação que você pode consultar no Back Office.
O objeto paymentRequest permite transmitir informações sobre o pagamento.
Possui os atributos seguintes:
paymentRequest
Atributo
Requisito
amount
Valor da transação expresso na menor unidade da moeda .
Observação:
• Não deve ser enviado vazio ou com o valor 0.
• Não deve ser superior ao valor inicial (exemplo: reembolso).
Formato
n..12
currency
Código da moeda da transação (norma ISO 4217).
Exemplo: ;986;840 para o dollar americano.
n3
expectedCaptureDate
Data de entrega solicitada apresentada no formato ISO 8601 definido pelo W3C.
Exemplo: 2016-07-16T19:20:00Z.
Este parâmetro é utilizado para efetuar um pagamento a prazo.
Se a quantidade de dias entre a data de captura e a data do dia vigente for superior ao tempo
de validade da autorização, uma autorização de 1 BRL será realizada o mesmo dia da transação.
Permite verificar a validade do cartão.
A autorização para o valor total será efetuada:
• processo padrão: o dia da data de captura no banco desejada,
• processo com autorização antecipada: em função do meio de pagamento selecionado, a Dquantidade de dias correspondente ao tempo de validade de uma autorização antes da data de
captura no banco desejada.
Se você quiser receber a notificação de resultado desta solicitação de autorização, você deve
configurar a regra de notificação URL de notificação em autorização por Batch no Back Office
(Configuração > Regras de notificações).
dateTime
ans..40
manualValidation
Permite validar manualmente uma transação enquanto a data de entrega desejada não for vencida.
Para isso, este atributo deve ser valorizado a 1 (validação manual).
Com o valor 0, a validação será automática.
n1
Tabela 42 : Objeto paymentRequest
O objeto queryRequest permite consultar uma transação para saber quais são os diferentes atributos dela.
O atributo a ser valorizado é o seguinte:
queryRequest
Atributo
uuid
Referência única da transação.
Observação: este atributo é utilizado para substituir antigos atributos transactionId,
sequenceNumber e creationDate.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 71 / 237
Requisito
Formato
string
queryRequest
Atributo
Porém, pode-se continuar a utilizar estes antigos atributos por razões de retro compatibilidade.
Para maiores informações, consultar o capítulo Gerenciar a retro contabilidade.
Requisito
Formato
Tabela 43 : Objeto queryRequest
Os atributos orderId, subscriptionId e paymentToken não são hoje levados em consideração para esta
operação.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 72 / 237
Resposta
A resposta à operação updatePayment é constituída de um HEADER e de um BODY de tipo
updatePaymentResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem updatePaymentResponse é a seguinte:
Nome
Tipo
updatePaymentResult
updatePaymentResult
A estrutura da mensagem updatePaymentResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
paymentResponse
paymentResponse
orderResponse
orderResponse
cardResponse
cardResponse
authorizationResponse
authorizationResponse
captureResponse
captureResponse
customerResponse
customerResponse
markResponse
markResponse
threeDSResponse
threeDSResponse
extraResponse
extraResponse
fraudManagementResponse
fraudManagementResponse
Observação : o objeto subscriptionResponse não está valorizado na resposta.
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 73 / 237
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso (não confundir com o status da transação).
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
n..2
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
string
transactionStatusLabel
Denominação do status da transação. Os valores possíveis são:
• AUTHORISED
Captura em andamento.
string
•
•
A transação foi aceita e será capturada automaticamente no banco na data prevista.
AUTHORISED_TO_VALIDATE
Para ser aprovado.
A transação, criada em validação manual, foi autorizada. O vendedor deve validar manualmente a captura
no banco. A transação pode ser aprovada enquanto a data de captura não for vencida. Se esta data estiver
vencida, então o pagamento tem o status Expirado (status definitivo).
WAITING_AUTHORISATION
Autorização em andamento.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitado de autorização e a captura
no banco serão acionadas automaticamente.
WAITING_AUTHORISATION_TO_VALIDATE
Para ser aprovado e autorizado.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitação de autorização será
automaticamente efetuada a D-1 antes da data de captura no banco. O pagamento poderá ser aceito ou
recusado. A captura no banco é automática.
REFUSED
Recusada.
A transação foi recusada.
shopId
Código da loja.
n8
paymentSource
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
• MOTO para um pedido por e-mail ou telefone.
• CC para um call center.
• OTHER para um outro canal de venda.
submissionDate
Data e hora UTC da transação apresentadas em formato W3C (exemplo: 2016-07-16T19:20:00Z).
contractNumber
Número de contrato comerciante utilizado.
string
(enum)
dateTime
ans..40
string
Tabela 44 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 74 / 237
O objeto paymentResponse detalha as informações sobre a transação.
paymentResponse
Formato
transactionUuid
Referência única da transação gerada pela plataforma de pagamento.
string
ans32
transactionId
Código da transação durante a criação ou a modificação de uma transação de pagamento.
Seu valor é único para o mesmo dia.
• Ou este código será gerado pela plataforma.
• Ou este código será gerado pelo site de e-commerce.
an..6
amount
Valor da transação expresso na menor unidade da moeda .
n..12
currency
Código da moeda da transação (norma ISO 4217).
Exemplo: ;986;840 para o dollar americano.
effectiveAmount
Valor da transação na moeda efetivamente usada para a captura no banco.
effectiveCurrency
Moeda efetivamente usada para a captura no banco.
expectedCaptureDate
Data de captura no banco solicitada.
operationType
Tipo de operação
Os valores possíveis são:
• DEBIT para uma operação de débito.
• CREDIT para uma operação de reembolso.
creationDate
Data e hora do registro da transação apresentado em formato W3C.
n3
n..12
n3
dateTime
ans..40
string
dateTime
ans..40
externalTransactionId
Referência dada por um terceiro: número de transação para Paypal, Boleto, RRN para Prism, etc...
string
liabilityShift
Transferência de responsabilidade.
Os valores possíveis são:
• YES quando o pagamento é garantido.
• NO quando pagamento não é garantido.
string
paymentType
Tipo de pagamento.
Os valores possíveis são:
• SINGLE
string
(enum)
•
Pagamento em uma única parcela.
INSTALLMENT
•
Pagamento em várias parcelas.
SPLIT
•
Pagamento realizado com vários meios de pagamento.
SUBSCRIPTION
•
Pagamento por Token cartão ou vinculado a uma assinatura.
RETRY
Quando um pagamento for recusado, pode-se reiterar a solicitação de pagamento. Para qualquer reiteração,
o pagamento será valorizado com este valor.
Observação:
Durante uma operação createPayment, somente um pagamento em uma única parcela pode ser criada (valor
SINGLE).
Os valores INSTALLMENT, SPLIT, SUBSCRIPTION e RETRY podem ser retornados somente se há pagamentos que
foram criados via o formulário de pagamento.
sequenceNumber
Número de seqüência da transação. Vale "1" para um pagamento unitário.
Toma o valor do número de prestação no caso de um pagamento parcelado criado a partir do formulário de
pagamento.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 75 / 237
n..3
paymentResponse
Formato
paymentError
Complemento de informação em caso de erro técnico. Retorna um código de erro associado ao erro técnico (ver
capítulo Gerenciar os códigos de erros durante um pagamento recusado).
n..3
Tabela 45 : Objeto paymentResponse
O objeto orderResponse detalha o pedido.
orderResponse
Formato
orderId
Referência do pedido.
string
an..64
extInfo
Dados personalizados retornados em função das necessidades.
Exemplo : extInfo.key, extInfo.value
• key : nome do dado (o formato dele é "string").
• value : valor do dado (o formato dele é "string").
extInfo
Tabela 46 : Objeto orderResponse
O objeto cardResponse apresenta em detalhes as informações sobre o meio de pagamento utilizado.
cardResponse
Formato
number
• Número de cartão inválido. Contém os 6 primeiros dígitos do número, seguido por "XXXXXX" e finalmente os
4 últimos números.
• IBAN e BIC usados para o pagamento, separados por um "_" no caso de um pagamento por débito no cartão
de crédito.
string
scheme
Tipo do cartão.
string
brand
Marca do cartão.
string
country
Código país do país emissor do cartão (Código numérico ISO 3166).
productCode
Código produto do cartão.
ISO 3166
ano..3
bankCode
Código banco do banco emissor.
n..5
expiryMonth
Mês de vencimento entre 1 e 12 (ex: 3 para março, 10 para outubro).
n..2
expiryYear
Ano de vencimento com 4 dígitos (ex: 2023).
n4
Tabela 47 : Objeto cardResponse
O objeto authorizationResponse permite obter informações sobre a solicitação de autorização.
authorizationResponse
Formato
mode
Especifica de que maneira é realizada a solicitação de autorização. Dois valores possíveis:
• MARK
Uma autorização 1 BRL foi efetuada para verificar a validade do cartão.
•
string
Isso acontece quando a data de captura ultrapassa o período de validade de uma autorização .
FULL
Autorização para o valor total pedido na solicitação.
amount
Valor da autorização na menor unidade da moeda se mode vale FULL.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 76 / 237
n..12
authorizationResponse
Formato
currency
Código da moeda utilizada durante o pedido de autorização (conforme a norma ISO 4217) se mode vale FULL.
date
Data e hora do pedido de autorização se mode vale FULL.
n3
dateTime
anos..40
number
Número do pedido de autorização se mode vaut FULL.
n..2
result
Código retorno da solicitação de autorização retornado pelo banco emissor quando for recusado.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de autorização.
n..2
Tabela 48 : Objeto authorizationResponse
O objeto captureResponse permite obter informações a respeito do desconto se a transação for com
desconto.
captureResponse
Formato
date
Data e hora de captura.
dateTime
anos..40
number
Número de captura.
n3
reconciliationStatus
Status de aproximação bancária da transação.
n1
refundAmount
Valor que já foi sujeito a um reembolso na sua menor unidade de moeda.
refundCurrency
Moeda do valor que já foi sujeito a um reembolso (Código moeda ISO 4217: 986 para o BRL; 840 para o dólar
americano..
chargeback
Lítigio, não pago. Os valores possíveis são:
• 0 : transação sujeita a um litígio.
• 1 : transação não sujeita a um litígio.
Tabela 49 : Objeto captureResponse
O objeto customerResponse detalha as numerosas informações sobre o comprador.
A resposta contém as análises de:
• billingDetails
Dados de faturamento do comprador.
• shippingDetails
Dados de entrega do comprador.
• extraDetails
Dados técnicos sobre o comprador.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 77 / 237
n..12
n3
billingDetails
Atributo
Formato
reference
Referência do comprador.
string n..80
title
Estado civil do comprador.
Exemplos de valores possíveis:
• Senhora, etc..
string n..80
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string (enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string ans..32
email
E-mail do comprador.
Parâmetro obrigatório quando criar um alias.
string
ans..150
streetNumber
Número de rua do comprador.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string an..5
address
Endereço do comprador.
string
ans..255
district
Bairro do comprador.
string
ans..127
zipCode
CEP do comprador.
string ans..64
city
Cidade do comprador.
string
ans..128
state
UF / Região do comprador.
string
ans..128
country
País do comprador conforme à norma ISO 3166.
Exemplos de valores possíveis:
•
DE para a Alemanha
•
IT para a Itália
•
PT para o Portugal
•
GB para o Reino-Unido
•
JA para o Japão
•
RU para a Rússia
•
ES para a Espanha
•
NL para a Holanda
•
SE para a Suécia
•
FR para a França
•
PL para a Polônia
•
CN para a China
string - a2
language
Idioma do comprador conforme à norma ISO 639-1.
Exemplos de valores possíveis:
•
de para o alemão
•
it para o italiano
•
pt para o português
•
en para o inglês
•
ja para o japonês
•
ru para o russo
•
es para o espanhol
•
nl para o holandês
•
sv para o sueco
•
fr para o francês
•
pl para o polonês
•
zh para o chinês
•
tr para o turco
cellPhoneNumber
Número de telefone celular
string - a2
string ans..32
legalName
Razão social da empresa.
string
ans..128
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 78 / 237
billingDetails
Atributo
Formato
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato numérico,
tendo de 11 a 20 dígitos).
string
ans..255
Tabela 50 : Objeto billingDetails
shippingDetails
Atributo
Formato
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string
(enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string
ans..32
streetNumber
Número de rua para a entrega.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string an..5
address
Endereço de entrega.
string
ans..255
address2
Complemento de endereço de entrega.
string
ans..255
district
Bairro de entrega.
string
ans..127
zipCode
CEP de entrega.
string
ans..64
city
Cidade de entrega.
string
ans..128
state
UF / Região de entrega.
string
ans..128
country
País de entrega.
string - a2
deliveryCompanyName
Informações sobre a transportadora.
string
ans..128
shippingSpeed
Modo de entrega selecionado.
Os valores possíveis são:
• STANDARD para uma entrega padrão.
• EXPRESS para uma entrega express.
string
(enum)
shippingMethod
Método de entrega utilizado.
Os valores possíveis são:
• RECLAIM_IN_SHOP para retirar a mercadoria na loja.
• RELAY_POINT para a utilização de uma rede de pontos de entrega terceirizada (Kiala, Alveol, etc).
• RECLAIM_IN_STATION para retirar num aeroporto, uma agência de viagens ou outros.
• PACKAGE_DELIVERY_COMPANY para a entrega por transportadora (Colissimo, UPS, etc).
• ETICKET para emitir de uma passagem eletrônica, baixar.
string
(enum)
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 79 / 237
shippingDetails
Atributo
Formato
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato numérico,
tendo de 11 a 20 dígitos).
string
ans..255
Tabela 51 : Objeto shippingDetails
extraDetails
Formato
ipAddress
O endereço IP do comprador.
string
ans40
Tabela 52 : Objeto extraDetails
O objeto markResponse permite obter informações sobre a solicitação de autorização de 1 BRL.
markResponse
Formato
amount
Valor utilizado para verificar a validade do cartão, na menor unidade da moeda .
n..12
currency
Código da moeda utilizado para verificar a validade do cartão (conforme a norma ISO 4217).
n3
date
Data e hora da solicitação de autorização efetuada se o atributo mode do objetoauthorizationResponse vaut
MARK.
dateTime
anos..40
number
Número de autorização da solicitação de autorização se o atributo mode do objeto authorizationResponse vale
MARK.
dateTime
anos..40
result
Resultado da solicitação de autorização efetuada se o atributo mode do objeto authorizationResponse vale MARK.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de autorização.
n..2
Tabela 53 : Objet markResponse
O objeto threeDSResponse permite obter informações sobre a autenticação 3D Secure.
Este objeto contém:
• authenticationRequestData
Descreve o resultado da solicitado de alistamento bem como a mensagem codificada que será
transmitida pelo navegador para o ACS.
• authenticationResultData
Descreve os detalhes da autenticação 3D Secure.
authenticationRequestData
Formato
threeDSAcctId
Certificado reenviado pelo Directory Server.
string
threeDSAcsUrl
Url de ACS que deve ser solicitado.
string
threeDSBrand
Rede do cartão.
string
threeDSEncodedPareq
Mensagem PAReq encodificada, pronto para enviar ao ACS.
string
threeDSEnrolled
a1
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 80 / 237
authenticationRequestData
Status de alistamento do portador.
Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
Formato
threeDSRequestId
Número de solicitação, para relembrar na chamada ENABLED_FINALIZE do atributo mode do objeto
threeDSRequest.
Tabela 54 : Objeto authenticationRequestData
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 81 / 237
string
authenticationResultData
Formato
transactionCondition
Status da autenticação 3D Secure. Os valores possíveis são:
• COND_3D_SUCCESS
Sucesso da autenticação.
•
•
•
•
•
string
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure e o portador autenticou-se
corretamente.
COND_3D_FAILURE
Autenticação não sucedida.
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure mas o comprador não conseguiu
autenticar-se (senha errada).
COND_3D_ERROR
Autenticação em falha.
O vendedor participa ao programa 3D secure mas o servidor da plataforma de pagamento encontrou um
problema técnico durante o processo de autenticação (quando verificou a inscrição do cartão ao programa
3D ou durante a autenticação do portador).
COND_3D_NOTENROLLED
Portador não alistado.
O vendedor participa ao programa 3D Secure mas o cartão do portador não é alistado.
COND_3D_ATTEMPT
Tentativa de autenticação.
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure mas o comprador não teve
que autenticar-se (o servidor de controle de acesso do banco que emitiu o cartão somente implementa a
geração de um comprovante de tentativa de autenticação).
COND_SSL
3D Secure não aplicável.
O vendedor não é alistado ao 3D Secure ou o canal de venda não tem cobertura com esta garantia.
enrolled
Status de alistamento do portador. Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
string
status
Status da autenticação do portador. Os valores possíveis são:
• Y para um status autenticado 3 DS.
• N para um erro de autenticação.
• U para uma autenticação impossível.
• A para uma tentativa de autenticação.
a1
eci
Indicador de Comercio Eletrônico.
O valor eci depende do status da autenticação 3DS e do tipo de cartão. Os valores possíveis são:
status =Y
status = A
status = U
status =N
VISA - AMEX
5
6
7
-
MasterCard
02
01
-
-
xid
Número de transação 3DS.
string
string
cavvAlgorithm
Algoritmo de verificação da autenticação do portador (CAVV). Os valores possíveis são:
• 0 para HMAC.
• 1 para CVV.
• 2 para CVV_ATN.
• 3 para Mastercard SPA.
n1
cavv
Certificado do ACS.
string
signValid
Assinatura da autenticação 3DS.
string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 82 / 237
authenticationResultData
Formato
brand
Rede do cartão.
string
Tabela 55 : Objeto authenticationResultData
O objeto fraudManagementResponse permite obter os resultados dos controle de gerenciamento de
riscos.
A resposta contem as análises dos atributos:
• riskControl
Retorna o resultado do controle de gerenciamento de riscos realizado.
• riskAnalysis
Retorna o resultado da análise de gerenciamento de riscos efetuada por um sistema externo (ClearSale,
CyberSource,...).
• riskAssessment
Retorna o resultado da análise de gerenciamento dos riscos avançados realizado pela plataforma de
pagamento.
O atributo riskControl
O formato é o seguinte: name1=result1;name2=result2
Nome
Formato
Descrição
name
string
Nome da regra de gerenciamento de risco.
result
string
Resultado do controle.
Valores possíveis para 'name'
CARD
Cartão presente na lista cinza.
COUNTRY
País do comprador na lista cinza.
IPADDR
Endereço IP do comprador presente na lista cinza.
AMOUNT
Valor máximo autorizado por pedido foi atingido.
BIN
O código BIN do cartão está presente na lista cinza.
ECB
Detecção de um e-carte bleue.
CARD_COMMERCIAL_NATIONAL
Detecção de um cartão comercial nacional.
CARD_COMMERCIAL_FOREIGN
Detecção de um cartão comercial estrangeiro.
CAS
Detecção de um cartão com autorização sistemática.
COUNTRY_CONSISTENCY
O país de origem do cartão, o país do endereço IP do comprador e o país do
comprador não correspondem.
NON_GUARANTEED_PAYMENT
Detecção de um pagamento sem transferência de responsabilidade.
IPADDR_COUNTRY
O pais do endereço IP do comprador está presente na lista cinza.
Tabela 56 : Valores possíveis para 'name'
Valores possíveis para 'result'
OK
Indica que o controle é correto.
KO
Indica que o controle está em falha.
Tabela 57 : Valores possíveis para 'result'
O atributo riskAnalysis
riskAnalysis
Formato
score
Pontuação atribuída para toda transação para avaliar o risco associado a ela.
string
resultCode
string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 83 / 237
riskAnalysis
Código retornado por um analista de risco externo.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno retornados pelo analista de
risco externo.
Formato
status
Status da analise de risco Os valores possíveis são os seguintes:
• P_SEND_OK, "Sent to clearsale and successfully processed"
Sucesso
• P_TO_SEND, "Transaction analysis is scheduled to be sent to risk analyzer"
O envio está programado
• P_TO_SEND_KO, "Problem when tried to send to risk analyzer"
Erro de tratamento
• P_PENDING_AT_ANALYZER, "Analysis result is still being processed by the risk analyzer. We should keep
checking/waiting for the analysis result"
Tratamento em andamento pelo analista
• P_MANUAL, "Analysis should be requested through user request (not automatically)"
A espera de envio manual
• P_SKIPPED, "Analysis request discarded by current transaction status/problem"
Descartado
• P_SEND_EXPIRED, "Analysis request expired"
Vencido
string
requestId
Código da analise para o analista de risco.
string
extraInfo
Sem valorização para ClearSale.
Para CyberSource, este atributo retorna todos os códigos retornados pelo DecisionManager.
• key : nome do dado (o formato dele é "string").
• value : valor do dado (o formato dele é "string").
Exemplo :
• COR-BA=Endereço de faturamento corrigido ou corrigível
• A=Mudanças de endereços excessivos. O comprador mudou de endereço de faturamento pelo menos duas
vezes durante os seis últimos meses.
• etc.
extInfo
Tabela 58 : Atributo riskAnalysis
O atributo riskAssessment
Valores
Descrição
ENABLE_3DS
3D Secure ativado
DISABLE_3DS
3D Secure desativado
MANUAL_VALIDATION
A transação foi criada em validação manual.
A captura do pagamento esta bloqueada temporariamente para permitir ao vendedor
efetuar todas as verificações desejadas.
REFUSE
A transação foi recusada.
RUN_RISK_ANALYSIS
Chamada para um analisador de riscos externos sob a condição que o vendedor possua
um contrato
Consultar a descrição do campo vads_risk_analysis_result para identificar a lista dos
valores possíveis e a descrição deles.
INFORM
Uma alerta apareceu.
O vendedor é avisado quando um risco é identificado.
O vendedor é informado via uma ou mais regras do centro de notificação (URL de
notificação, e-mail ou SMS).
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 84 / 237
O objeto extraResponse permite obter informações adicionais sobre o pagamento.
extraResponse
Formato
paymentOptionCode
Reservado para um uso específico (Brasil).
Define o código de opção utilizada para caracterizar a quantidade de prestações para uma transação).
n..2
paymentOptionOccNumb
Reservado para um uso específico.
Define a quantidade de prestações para uma transação.
Por exemplo, para um pagamento em 3 vezes, este atributo terá o valor 3.
string
Tabela 59 : Objeto extraResponse
6.3. Modificar os dados (carrinho) de uma transação
'updatePaymentDetails'
updatePaymentDetails permite modificar/atualizar os dados do carrinho.
updatePaymentDetails é por enquanto somente disponível para as transações Klarna, com a condição
que estas:
• possuam um carrinho
• tenham um dos status seguintes:
• Para ser aprovado e autorizado
• Para ser aprovado
• Para ser autorizado
• Captura em andamento
• Capturado
• sejam de um valor global menor ou igual (sem aumento)
Solicitação para enviar
A solicitação updatePaymentDetails é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação updatePaymentDetails toma na entrada um objeto do tipo updatePaymentDetails.
O tipo updatePaymentDetails é constituído dos parâmetros seguintes:
Objeto
Formato
queryRequest
queryRequest
shoppingCartRequest
shoppingCartRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 85 / 237
Requisito
O objeto queryRequest permite consultar uma transação para saber quais são os diferentes atributos dela.
O atributo a ser valorizado é o seguinte:
queryRequest
Atributo
Requisito
uuid
Referência única da transação.
Observação: este atributo é utilizado para substituir antigos atributos transactionId,
sequenceNumber e creationDate.
Porém, pode-se continuar a utilizar estes antigos atributos por razões de retro compatibilidade.
Para maiores informações, consultar o capítulo Gerenciar a retro contabilidade.
Formato
string
Tabela 60 : Objeto queryRequest
Os atributos orderId, subscriptionId e paymentToken não são hoje levados em consideração para esta
operação.
O objeto shoppingCartRequest permite transmitir o conteúdo do carrinho modificado.
Deve conter todos os atributos que permitirão definir o carrinho definitivo.
Observação:
Se um atributo for apagado na solicitação, ele será apagado definitivamente. Para evitar erros ou omissões,
todos os campos são requeridos. Aconselhamos enviá-los na solicitação mesmo se um deles for valorizado
a 0 ou vazio.
shoppingCartRequest
Atributo
Requisito
Formato
insuranceAmount
Valor do seguro
n..3
shippingAmount
Despesas de entrega.
n..3
cartItemInfo
Campos personalizáveis para adicionar elementos no carrinho.
O atributo cartItemInfo contém sub objetos:
• productLabel : nome do produto. O formato dele é "string".
• productType : tipo do artigo. O formato dele é "string (enum)".
Valor
Descrição
FOOD_AND_GROCERY
Produtos alimentares e de mercadinho
AUTOMOTIVE
Automóveis / Motos
ENTERTAINMENT
Entretenimento / Cultura
HOME_AND_GARDEN
Casa e jardim
HOME_APPLIANCE
Equipamentos para a casa
AUCTION_AND_GROUP_BUYING
Leilões e compras em grupo
FLOWERS_AND_GIFTS|
Flores e presentes
COMPUTER_AND_SOFTWARE
Computadores e softwares
HEALTH_AND_BEAUTY
Saúde e beleza
SERVICE_FOR_INDIVIDUAL
Serviços para pessoa física
SERVICE_FOR_BUSINESS
Serviços para pessoa jurídica
SPORTS
Esportes
CLOTHING_AND_ACCESSORIES
Roupas e acessórios
TRAVEL
Viagem
HOME_AUDIO_PHOTO_VIDEO
Som, imagem e vídeo
TELEPHONY
Telefonia
Tabela 62 : Valores associados a productType
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 86 / 237
cartItemInfo
shoppingCartRequest
Atributo
• productRef : referência produto. O formato dele é "string".
• productQty : quantidade de produto. O formato dele é "integer".
• productAmount : valor em centavos do produto. O formato dele é "string".
• productVat : valor dos impostos sobre o produto. O formato dele é "string".
Exemplo :
Requisito
Formato
<cartItemInfo>
<productLabel>CHIPS</productLabel>
<productType>FOOD_AND_GROCERY</productType>
<productRef>188545</productRef>
<productQty>10</productQty>
<productAmount>10000</productAmount>
</cartItemInfo>
Tabela 61 : Objeto shoppingCartRequest
O atributo taxAmount não é levado em consideração para esta operação, nos dias de hoje.
Resposta
A resposta à operação updatePaymentDetails é constituída de um HEADER e de um BODY de tipo
updatePaymentDetailsResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem updatePaymentDetailsResponse é a seguinte:
Nome
Tipo
updatePaymentDetailsResult
updatePaymentDetailsResult
A estrutura da mensagem updatePaymentDetailsResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
paymentResponse
paymentResponse
orderResponse
orderResponse
cardResponse
cardResponse
authorizationResponse
authorizationResponse
captureResponse
captureResponse
customerResponse
customerResponse
markResponse
markResponse
threeDSResponse
threeDSResponse
extraResponse
extraResponse
fraudManagementResponse
fraudManagementResponse
shoppingCartResponse
shoppingCartResponse
Observação : o objeto subscriptionResponse não está valorizado na resposta.
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 87 / 237
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso (não confundir com o status da transação).
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
n..2
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
string
transactionStatusLabel
Denominação do status da transação. Os valores possíveis são:
• AUTHORISED
Captura em andamento.
string
•
•
A transação foi aceita e será capturada automaticamente no banco na data prevista.
AUTHORISED_TO_VALIDATE
Para ser aprovado.
A transação, criada em validação manual, foi autorizada. O vendedor deve validar manualmente a captura
no banco. A transação pode ser aprovada enquanto a data de captura não for vencida. Se esta data estiver
vencida, então o pagamento tem o status Expirado (status definitivo).
WAITING_AUTHORISATION
Autorização em andamento.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitado de autorização e a captura
no banco serão acionadas automaticamente.
WAITING_AUTHORISATION_TO_VALIDATE
Para ser aprovado e autorizado.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitação de autorização será
automaticamente efetuada a D-1 antes da data de captura no banco. O pagamento poderá ser aceito ou
recusado. A captura no banco é automática.
CAPTURED
A transação foi capturada no banco.
shopId
Código da loja.
n8
paymentSource
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
• MOTO para um pedido por e-mail ou telefone.
• CC para um call center.
• OTHER para um outro canal de venda.
submissionDate
Data e hora UTC da transação apresentadas em formato W3C (exemplo: 2016-07-16T19:20:00Z).
contractNumber
Número de contrato comerciante utilizado.
string
(enum)
dateTime
ans..40
string
Tabela 63 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 88 / 237
O objeto paymentResponse detalha as informações sobre a transação.
paymentResponse
Formato
transactionUuid
Referência única da transação gerada pela plataforma de pagamento.
string
ans32
transactionId
Código da transação durante a criação ou a modificação de uma transação de pagamento.
Seu valor é único para o mesmo dia.
• Ou este código será gerado pela plataforma.
• Ou este código será gerado pelo site de e-commerce.
an..6
amount
Valor da transação expresso na menor unidade da moeda .
n..12
currency
Código da moeda da transação (norma ISO 4217).
Exemplo: ;986;840 para o dollar americano.
effectiveAmount
Valor da transação na moeda efetivamente usada para a captura no banco.
effectiveCurrency
Moeda efetivamente usada para a captura no banco.
expectedCaptureDate
Data de captura no banco solicitada.
operationType
Tipo de operação
Os valores possíveis são:
• DEBIT para uma operação de débito.
• CREDIT para uma operação de reembolso.
creationDate
Data e hora do registro da transação apresentado em formato W3C.
n3
n..12
n3
dateTime
ans..40
string
dateTime
ans..40
externalTransactionId
Referência dada por um terceiro: número de transação para Paypal, Boleto, RRN para Prism, etc...
string
liabilityShift
Transferência de responsabilidade.
Os valores possíveis são:
• YES quando o pagamento é garantido.
• NO quando pagamento não é garantido.
string
paymentType
Tipo de pagamento.
Os valores possíveis são:
• SINGLE
string
(enum)
•
Pagamento em uma única parcela.
INSTALLMENT
•
Pagamento em várias parcelas.
SPLIT
•
Pagamento realizado com vários meios de pagamento.
SUBSCRIPTION
•
Pagamento por Token cartão ou vinculado a uma assinatura.
RETRY
Quando um pagamento for recusado, pode-se reiterar a solicitação de pagamento. Para qualquer reiteração,
o pagamento será valorizado com este valor.
Observação:
Durante uma operação createPayment, somente um pagamento em uma única parcela pode ser criada (valor
SINGLE).
Os valores INSTALLMENT, SPLIT, SUBSCRIPTION e RETRY podem ser retornados somente se há pagamentos que
foram criados via o formulário de pagamento.
sequenceNumber
Número de seqüência da transação. Vale "1" para um pagamento unitário.
Toma o valor do número de prestação no caso de um pagamento parcelado criado a partir do formulário de
pagamento.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 89 / 237
n..3
paymentResponse
Formato
paymentError
Complemento de informação em caso de erro técnico. Retorna um código de erro associado ao erro técnico (ver
capítulo Gerenciar os códigos de erros durante um pagamento recusado).
n..3
Tabela 64 : Objeto paymentResponse
O objeto orderResponse detalha o pedido.
orderResponse
Formato
orderId
Referência do pedido.
string
an..64
extInfo
Dados personalizados retornados em função das necessidades.
Exemplo : extInfo.key, extInfo.value
• key : nome do dado (o formato dele é "string").
• value : valor do dado (o formato dele é "string").
extInfo
Tabela 65 : Objeto orderResponse
O objeto cardResponse apresenta em detalhes as informações sobre o meio de pagamento utilizado.
cardResponse
Formato
number
• Número de cartão inválido. Contém os 6 primeiros dígitos do número, seguido por "XXXXXX" e finalmente os
4 últimos números.
• IBAN e BIC usados para o pagamento, separados por um "_" no caso de um pagamento por débito no cartão
de crédito.
string
scheme
Tipo do cartão.
string
brand
Marca do cartão.
string
country
Código país do país emissor do cartão (Código numérico ISO 3166).
productCode
Código produto do cartão.
ISO 3166
ano..3
bankCode
Código banco do banco emissor.
n..5
expiryMonth
Mês de vencimento entre 1 e 12 (ex: 3 para março, 10 para outubro).
n..2
expiryYear
Ano de vencimento com 4 dígitos (ex: 2023).
n4
Tabela 66 : Objeto cardResponse
O objeto authorizationResponse permite obter informações sobre a solicitação de autorização.
authorizationResponse
Formato
mode
Especifica de que maneira é realizada a solicitação de autorização. Dois valores possíveis:
• MARK
Uma autorização 1 BRL foi efetuada para verificar a validade do cartão.
•
string
Isso acontece quando a data de captura ultrapassa o período de validade de uma autorização .
FULL
Autorização para o valor total pedido na solicitação.
amount
Valor da autorização na menor unidade da moeda se mode vale FULL.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 90 / 237
n..12
authorizationResponse
Formato
currency
Código da moeda utilizada durante o pedido de autorização (conforme a norma ISO 4217) se mode vale FULL.
n3
date
Data e hora do pedido de autorização se mode vale FULL.
dateTime
anos..40
number
Número do pedido de autorização se mode vaut FULL.
n..2
result
Código retorno da solicitação de autorização retornado pelo banco emissor quando for recusado.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de autorização.
n..2
Tabela 67 : Objeto authorizationResponse
O objeto captureResponse permite obter informações a respeito do desconto se a transação for com
desconto.
captureResponse
Formato
date
Data e hora de captura.
dateTime
anos..40
number
Número de captura.
n3
reconciliationStatus
Status de aproximação bancária da transação.
n1
refundAmount
Valor que já foi sujeito a um reembolso na sua menor unidade de moeda.
refundCurrency
Moeda do valor que já foi sujeito a um reembolso (Código moeda ISO 4217: 986 para o BRL; 840 para o dólar
americano..
n..12
n3
chargeback
Lítigio, não pago. Os valores possíveis são:
• 0 : transação sujeita a um litígio.
• 1 : transação não sujeita a um litígio.
Tabela 68 : Objeto captureResponse
O objeto customerResponse detalha as numerosas informações sobre o comprador.
A resposta contém as análises de:
• billingDetails
Dados de faturamento do comprador.
• shippingDetails
Dados de entrega do comprador.
• extraDetails
Dados técnicos sobre o comprador.
billingDetails
Atributo
Formato
reference
Referência do comprador.
string n..80
title
Estado civil do comprador.
Exemplos de valores possíveis:
• Senhora, etc..
string n..80
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 91 / 237
billingDetails
Atributo
Formato
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string (enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string ans..32
email
E-mail do comprador.
Parâmetro obrigatório quando criar um alias.
string
ans..150
streetNumber
Número de rua do comprador.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string an..5
address
Endereço do comprador.
string
ans..255
district
Bairro do comprador.
string
ans..127
zipCode
CEP do comprador.
string ans..64
city
Cidade do comprador.
string
ans..128
state
UF / Região do comprador.
string
ans..128
country
País do comprador conforme à norma ISO 3166.
Exemplos de valores possíveis:
•
DE para a Alemanha
•
IT para a Itália
•
PT para o Portugal
•
GB para o Reino-Unido
•
JA para o Japão
•
RU para a Rússia
•
ES para a Espanha
•
NL para a Holanda
•
SE para a Suécia
•
FR para a França
•
PL para a Polônia
•
CN para a China
string - a2
language
Idioma do comprador conforme à norma ISO 639-1.
Exemplos de valores possíveis:
•
de para o alemão
•
it para o italiano
•
pt para o português
•
en para o inglês
•
ja para o japonês
•
ru para o russo
•
es para o espanhol
•
nl para o holandês
•
sv para o sueco
•
fr para o francês
•
pl para o polonês
•
zh para o chinês
•
tr para o turco
cellPhoneNumber
Número de telefone celular
string - a2
string ans..32
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato numérico,
tendo de 11 a 20 dígitos).
string
ans..255
Tabela 69 : Objeto billingDetails
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 92 / 237
shippingDetails
Atributo
Formato
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string
(enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string
ans..32
streetNumber
Número de rua para a entrega.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string an..5
address
Endereço de entrega.
string
ans..255
address2
Complemento de endereço de entrega.
string
ans..255
district
Bairro de entrega.
string
ans..127
zipCode
CEP de entrega.
string
ans..64
city
Cidade de entrega.
string
ans..128
state
UF / Região de entrega.
string
ans..128
country
País de entrega.
string - a2
deliveryCompanyName
Informações sobre a transportadora.
string
ans..128
shippingSpeed
Modo de entrega selecionado.
Os valores possíveis são:
• STANDARD para uma entrega padrão.
• EXPRESS para uma entrega express.
string
(enum)
shippingMethod
Método de entrega utilizado.
Os valores possíveis são:
• RECLAIM_IN_SHOP para retirar a mercadoria na loja.
• RELAY_POINT para a utilização de uma rede de pontos de entrega terceirizada (Kiala, Alveol, etc).
• RECLAIM_IN_STATION para retirar num aeroporto, uma agência de viagens ou outros.
• PACKAGE_DELIVERY_COMPANY para a entrega por transportadora (Colissimo, UPS, etc).
• ETICKET para emitir de uma passagem eletrônica, baixar.
string
(enum)
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato numérico,
tendo de 11 a 20 dígitos).
string
ans..255
Tabela 70 : Objeto shippingDetails
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 93 / 237
extraDetails
Formato
ipAddress
O endereço IP do comprador.
string
ans40
Tabela 71 : Objeto extraDetails
O objeto markResponse permite obter informações sobre a solicitação de autorização de 1 BRL.
markResponse
Formato
amount
Valor utilizado para verificar a validade do cartão, na menor unidade da moeda .
n..12
currency
Código da moeda utilizado para verificar a validade do cartão (conforme a norma ISO 4217).
n3
date
Data e hora da solicitação de autorização efetuada se o atributo mode do objetoauthorizationResponse vaut
MARK.
dateTime
anos..40
number
Número de autorização da solicitação de autorização se o atributo mode do objeto authorizationResponse vale
MARK.
dateTime
anos..40
result
Resultado da solicitação de autorização efetuada se o atributo mode do objeto authorizationResponse vale MARK.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de autorização.
n..2
Tabela 72 : Objet markResponse
O objeto threeDSResponse permite obter informações sobre a autenticação 3D Secure.
Este objeto contém:
• authenticationRequestData
Descreve o resultado da solicitado de alistamento bem como a mensagem codificada que será
transmitida pelo navegador para o ACS.
• authenticationResultData
Descreve os detalhes da autenticação 3D Secure.
authenticationRequestData
Formato
threeDSAcctId
Certificado reenviado pelo Directory Server.
string
threeDSAcsUrl
Url de ACS que deve ser solicitado.
string
threeDSBrand
Rede do cartão.
string
threeDSEncodedPareq
Mensagem PAReq encodificada, pronto para enviar ao ACS.
string
threeDSEnrolled
Status de alistamento do portador.
Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
a1
threeDSRequestId
Número de solicitação, para relembrar na chamada ENABLED_FINALIZE do atributo mode do objeto
threeDSRequest.
Tabela 73 : Objeto authenticationRequestData
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 94 / 237
string
authenticationResultData
Formato
transactionCondition
Status da autenticação 3D Secure. Os valores possíveis são:
• COND_3D_SUCCESS
Sucesso da autenticação.
•
•
•
•
•
string
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure e o portador autenticou-se
corretamente.
COND_3D_FAILURE
Autenticação não sucedida.
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure mas o comprador não conseguiu
autenticar-se (senha errada).
COND_3D_ERROR
Autenticação em falha.
O vendedor participa ao programa 3D secure mas o servidor da plataforma de pagamento encontrou um
problema técnico durante o processo de autenticação (quando verificou a inscrição do cartão ao programa
3D ou durante a autenticação do portador).
COND_3D_NOTENROLLED
Portador não alistado.
O vendedor participa ao programa 3D Secure mas o cartão do portador não é alistado.
COND_3D_ATTEMPT
Tentativa de autenticação.
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure mas o comprador não teve
que autenticar-se (o servidor de controle de acesso do banco que emitiu o cartão somente implementa a
geração de um comprovante de tentativa de autenticação).
COND_SSL
3D Secure não aplicável.
O vendedor não é alistado ao 3D Secure ou o canal de venda não tem cobertura com esta garantia.
enrolled
Status de alistamento do portador. Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
string
status
Status da autenticação do portador. Os valores possíveis são:
• Y para um status autenticado 3 DS.
• N para um erro de autenticação.
• U para uma autenticação impossível.
• A para uma tentativa de autenticação.
a1
eci
Indicador de Comercio Eletrônico.
O valor eci depende do status da autenticação 3DS e do tipo de cartão. Os valores possíveis são:
status =Y
status = A
status = U
status =N
VISA - AMEX
5
6
7
-
MasterCard
02
01
-
-
xid
Número de transação 3DS.
string
string
cavvAlgorithm
Algoritmo de verificação da autenticação do portador (CAVV). Os valores possíveis são:
• 0 para HMAC.
• 1 para CVV.
• 2 para CVV_ATN.
• 3 para Mastercard SPA.
n1
cavv
Certificado do ACS.
string
signValid
Assinatura da autenticação 3DS.
string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 95 / 237
authenticationResultData
Formato
brand
Rede do cartão.
string
Tabela 74 : Objeto authenticationResultData
O objeto fraudManagementResponse permite obter os resultados dos controle de gerenciamento de
riscos.
A resposta contem as análises dos atributos:
• riskControl
Retorna o resultado do controle de gerenciamento de riscos realizado.
• riskAnalysis
Retorna o resultado da análise de gerenciamento de riscos efetuada por um sistema externo (ClearSale,
CyberSource,...).
• riskAssessment
Retorna o resultado da análise de gerenciamento dos riscos avançados realizado pela plataforma de
pagamento.
O atributo riskControl
O formato é o seguinte: name1=result1;name2=result2
Nome
Formato
Descrição
name
string
Nome da regra de gerenciamento de risco.
result
string
Resultado do controle.
Valores possíveis para 'name'
CARD
Cartão presente na lista cinza.
COUNTRY
País do comprador na lista cinza.
IPADDR
Endereço IP do comprador presente na lista cinza.
AMOUNT
Valor máximo autorizado por pedido foi atingido.
BIN
O código BIN do cartão está presente na lista cinza.
ECB
Detecção de um e-carte bleue.
CARD_COMMERCIAL_NATIONAL
Detecção de um cartão comercial nacional.
CARD_COMMERCIAL_FOREIGN
Detecção de um cartão comercial estrangeiro.
CAS
Detecção de um cartão com autorização sistemática.
COUNTRY_CONSISTENCY
O país de origem do cartão, o país do endereço IP do comprador e o país do
comprador não correspondem.
NON_GUARANTEED_PAYMENT
Detecção de um pagamento sem transferência de responsabilidade.
IPADDR_COUNTRY
O pais do endereço IP do comprador está presente na lista cinza.
Tabela 75 : Valores possíveis para 'name'
Valores possíveis para 'result'
OK
Indica que o controle é correto.
KO
Indica que o controle está em falha.
Tabela 76 : Valores possíveis para 'result'
O atributo riskAnalysis
riskAnalysis
Formato
score
Pontuação atribuída para toda transação para avaliar o risco associado a ela.
string
resultCode
string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 96 / 237
riskAnalysis
Código retornado por um analista de risco externo.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno retornados pelo analista de
risco externo.
Formato
status
Status da analise de risco Os valores possíveis são os seguintes:
• P_SEND_OK, "Sent to clearsale and successfully processed"
Sucesso
• P_TO_SEND, "Transaction analysis is scheduled to be sent to risk analyzer"
O envio está programado
• P_TO_SEND_KO, "Problem when tried to send to risk analyzer"
Erro de tratamento
• P_PENDING_AT_ANALYZER, "Analysis result is still being processed by the risk analyzer. We should keep
checking/waiting for the analysis result"
Tratamento em andamento pelo analista
• P_MANUAL, "Analysis should be requested through user request (not automatically)"
A espera de envio manual
• P_SKIPPED, "Analysis request discarded by current transaction status/problem"
Descartado
• P_SEND_EXPIRED, "Analysis request expired"
Vencido
string
requestId
Código da analise para o analista de risco.
string
extraInfo
Sem valorização para ClearSale.
Para CyberSource, este atributo retorna todos os códigos retornados pelo DecisionManager.
• key : nome do dado (o formato dele é "string").
• value : valor do dado (o formato dele é "string").
Exemplo :
• COR-BA=Endereço de faturamento corrigido ou corrigível
• A=Mudanças de endereços excessivos. O comprador mudou de endereço de faturamento pelo menos duas
vezes durante os seis últimos meses.
• etc.
extInfo
Tabela 77 : Atributo riskAnalysis
O atributo riskAssessment
Valores
Descrição
ENABLE_3DS
3D Secure ativado
DISABLE_3DS
3D Secure desativado
MANUAL_VALIDATION
A transação foi criada em validação manual.
A captura do pagamento esta bloqueada temporariamente para permitir ao vendedor
efetuar todas as verificações desejadas.
REFUSE
A transação foi recusada.
RUN_RISK_ANALYSIS
Chamada para um analisador de riscos externos sob a condição que o vendedor possua
um contrato
Consultar a descrição do campo vads_risk_analysis_result para identificar a lista dos
valores possíveis e a descrição deles.
INFORM
Uma alerta apareceu.
O vendedor é avisado quando um risco é identificado.
O vendedor é informado via uma ou mais regras do centro de notificação (URL de
notificação, e-mail ou SMS).
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 97 / 237
O objeto extraResponse permite obter informações adicionais sobre o pagamento.
extraResponse
Formato
paymentOptionCode
Reservado para um uso específico (Brasil).
Define o código de opção utilizada para caracterizar a quantidade de prestações para uma transação).
paymentOptionOccNumb
Reservado para um uso específico.
Define a quantidade de prestações para uma transação.
Por exemplo, para um pagamento em 3 vezes, este atributo terá o valor 3.
n..2
string
Tabela 78 : Objeto extraResponse
O objeto shoppingCartResponse apresenta em detalhes o conteúdo do carrinho.
shoppingCartResponse
Atributo
Formato
cartItemInfo
Campos personalizáveis para adicionar elementos no carrinho.
O atributo cartItemInfo contém sub objetos:
• productLabel : nome do produto. O formato dele é "string".
• productType : tipo do artigo. O formato dele é "string (enum)".
Valor
Descrição
FOOD_AND_GROCERY
Produtos alimentares e de mercadinho
AUTOMOTIVE
Automóveis / Motos
ENTERTAINMENT
Entretenimento / Cultura
HOME_AND_GARDEN
Casa e jardim
HOME_APPLIANCE
Equipamentos para a casa
AUCTION_AND_GROUP_BUYING
Leilões e compras em grupo
FLOWERS_AND_GIFTS|
Flores e presentes
COMPUTER_AND_SOFTWARE
Computadores e softwares
HEALTH_AND_BEAUTY
Saúde e beleza
SERVICE_FOR_INDIVIDUAL
Serviços para pessoa física
SERVICE_FOR_BUSINESS
Serviços para pessoa jurídica
SPORTS
Esportes
CLOTHING_AND_ACCESSORIES
Roupas e acessórios
TRAVEL
Viagem
HOME_AUDIO_PHOTO_VIDEO
Som, imagem e vídeo
TELEPHONY
Telefonia
Tabela 79 : Valores associados a productType
• productRef : referência produto. O formato dele é "string".
• productQty : quantidade de produto. O formato dele é "integer".
• productAmount : valor em centavos do produto. O formato dele é "string".
• productVat : valor dos impostos sobre o produto. O formato dele é "string".
Exemplo :
<cartItemInfo>
<productLabel>CHIPS</productLabel>
<productType>FOOD_AND_GROCERY</productType>
<productRef>188545</productRef>
<productQty>10</productQty>
<productAmount>10000</productAmount>
</cartItemInfo>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 98 / 237
cartItemInfo
6.4. Cancelar uma transação de pagamento 'cancelPayment'
Cancelar uma transação de pagamento é possível graças à chamada da operaçãocancelPayment.
cancelPayment permite cancelar definitivamente uma transação, que não foi capturada, e tendo uns dos
status seguintes:
• Para ser aprovado
• Para ser aprovado e autorizado
• Autorização em andamento
• Captura em andamento
Solicitação para enviar
A solicitação cancelPayment é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação cancelPayment toma na entrada um objeto do tipo cancelPayment.
O tipo cancelPayment é constituído dos parâmetros seguintes:
Objeto
Formato
commonRequest
commonRequest
queryRequest
queryRequest
Requisito
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Somente um atributo pode ser valorizado, se precisar:
commonRequest
Atributo
Requisito
comment
Comentário livre.
Formato
string
Tabela 80 : Objeto commonRequest
O comentário será exibido no histórico da transação que você pode consultar no Back Office.
O objeto queryRequest permite consultar uma transação para saber quais são os diferentes atributos dela.
O atributo a ser valorizado é o seguinte:
queryRequest
Atributo
Requisito
uuid
Referência única da transação.
Observação: este atributo é utilizado para substituir antigos atributos transactionId,
sequenceNumber e creationDate.
Porém, pode-se continuar a utilizar estes antigos atributos por razões de retro compatibilidade.
Para maiores informações, consultar o capítulo Gerenciar a retro contabilidade.
Tabela 81 : Objeto queryRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 99 / 237
Formato
string
Resposta
A resposta à operação cancelPayment é feita pela plataforma de pagamento após uma solicitação de
cancelamento de um pagamento.
É constituída de um HEADER e de um BODY de tipo cancelPaymentResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem cancelPaymentResponse é a seguinte:
Nome
Tipo
cancelPaymentResult
cancelPaymentResult
A estrutura da mensagem cancelPaymentResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso (não confundir com o status da transação).
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
n..2
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
string
transactionStatusLabel
Denominação do status da transação. Os valores possíveis são:
• CANCELLED
Cancelada.
string
A transação foi cancelada pelo vendedor.
shopId
Código da loja.
n8
paymentSource
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
• MOTO para um pedido por e-mail ou telefone.
• CC para um call center.
• OTHER para um outro canal de venda.
submissionDate
Data e hora UTC da transação apresentadas em formato W3C (exemplo: 2016-07-16T19:20:00Z).
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 100 / 237
string
(enum)
dateTime
ans..40
commonResponse
Formato
contractNumber
Número de contrato comerciante utilizado.
string
paymentToken
Alias ou Código da conta comprador (pagamento por código).
string
Tabela 82 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 101 / 237
6.5. Procurar pagamentos 'findPayments'
Procurar pagamentos é possível graças à chamada da operação findPayments.
findPayments permite obter a lista de pagamentos correspondentes aos critérios de pesquisa digitados.
Solicitação para enviar
A operação findPayments é utilizada para pesquisar um ou mais pagamentos.
A solicitação findPayments é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação findPayments toma na entrada um objeto do tipo findPayments.
O tipo findPayments é constituído do parâmetro seguinte:
Objeto
Formato
queryRequest
queryRequest
Requisito
O objeto queryRequest permite consultar uma transação para saber quais são os diferentes atributos dela.
Para a operação findPayments, somente o atributo orderId deve ser informado para encontrar uma lista
de pagamentos.
queryRequest
Atributo
orderId
Referência do pedido.
Requisito
Formato
string-n8
Tabela 83 : Objeto queryRequest
Os atributos paymentToken, subscriptionId e uuid não são hoje levados em consideração para esta
operação.
Exemplo de solicitação para ser enviada:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:v5="http://
v5.ws.vads.lyra.com/">
<soap:Header xmlns:soapHeader="http://v5.ws.vads.lyra.com/Header">
<soapHeader:shopId>12345678</soapHeader:shopId>
<soapHeader:requestId>1d37acc0-c5a7-4e32-b3df-168b9e2617e0</soapHeader:requestId>
<soapHeader:timestamp>2015-04-01T12:21:09Z</soapHeader:timestamp>
<soapHeader:mode>TEST</soapHeader:mode>
<soapHeader:authToken>WFBz7scW8n/xYro5Od3iTUyFhr0Jw6Y4z1EhX71fR6U=</soapHeader:authToken>
</soap:Header>
<soap:Body>
<v5:findPayments>
<queryRequest>
<orderId>TEST-01</orderId>
</queryRequest>
</v5:findPayments>
</soap:Body>
</soap:Envelope>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 102 / 237
Resposta
A resposta à operação findPayments é feita pela plataforma de pagamento após uma pesquisa de um ou
mais pagamentos.
É constituída de um HEADER e de um BODY de tipo findPaymentsResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem findPaymentsResponse é a seguinte:
Nome
Tipo
findPaymentsResult
findPaymentsResult
A estrutura da mensagem findPaymentsResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
orderResponse
orderResponse
transactionItem
transactionItem
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
O objeto commonResponse permite obter informações gerais sobre uma operação.
Os atributos que contém um valor na resposta são os seguintes:
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso (não confundir com o status da transação).
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
shopId
Código da loja.
n..2
string
n8
Tabela 84 : Objeto commonResponse
Os atributos transactionStatusLabel, paymentSource,
paymentToken não são informados nesta operação.
submissionDate,
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 103 / 237
contractNumber
e
O objeto orderResponse detalha o pedido.
orderResponse
Formato
orderId
Referência do pedido.
string
an..64
extInfo
Dados personalizados retornados em função das necessidades.
Exemplo : extInfo.key, extInfo.value
• key : nome do dado (o formato dele é "string").
• value : valor do dado (o formato dele é "string").
extInfo
Tabela 85 : Objeto orderResponse
O objeto transactionItem detalha as informações sobre a transação que você esta procurando.
transactionItem
Formato
transactionUuid
Referência única da transação gerada pela plataforma de pagamento.
string
ans32
transactionStatusLabel
Denominação do status da transação. Os valores possíveis são:
• INITIAL
Em andamento.
•
Este status temporário. O status definitivo será retornado assim que a sincronização acabar.
AUTHORISED
Captura em andamento.
•
A transação foi aceita e será capturada automaticamente no banco na data prevista.
AUTHORISED_TO_VALIDATE
Para ser aprovado.
•
string
A transação, criada em validação manual, foi autorizada. O vendedor deve validar manualmente a captura
no banco. A transação pode ser aprovada enquanto a data de captura não for vencida. Se esta data estiver
vencida, então o pagamento tem o status Expirado (status definitivo).
WAITING_AUTHORISATION
Autorização em andamento.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitado de autorização e a captura
no banco serão acionadas automaticamente.
WAITING_AUTHORISATION_TO_VALIDATE
Para ser aprovado e autorizado.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
•
•
•
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitação de autorização será
automaticamente efetuada a D-1 antes da data de captura no banco. O pagamento poderá ser aceito ou
recusado. A captura no banco é automática.
REFUSED
Recusada.
A transação foi recusada.
CAPTURED
A transação foi capturada no banco.
CANCELLED
Cancelada.
A transação foi cancelada pelo vendedor.
EXPIRED
Expirada.
A date de captura foi atingida mas o vendedor não validou a transação.
UNDER_VERIFICATION (Específico a PayPal)
Verificação por PayPal em andamento. Este valor significa que Paypal segura a transação por causa de uma
suspeita de fraude. O pagamento esta então na aba Pagamento em andamento.
amount
Valor da transação expresso na menor unidade da moeda .
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 104 / 237
n..12
transactionItem
Observação:
Não deve ser enviado vazio ou com o valor 0.
Se você não quiser modificar o status da transação, deve informar o atributo amount com o valor inicial.
Se nenhuma informação for mofdificada, a solicitação sera rejeitada com um código de erro.
currency
Código da moeda da transação (norma ISO 4217).
Exemplo: ;986;840 para o dollar americano.
expectedCaptureDate
Data de captura no banco solicitada.
Formato
n3
dateTime
ans..40
Tabela 86 : Objeto transactionItem
Exemplo de resposta:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">1d37acc0-c5a7-4e32-b3df-168b9e2617e0</
requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T12:21:09Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/Header/">m2+EUcE2+4OLrPe/
zpmo0W9BXqxAnTsA77OdesXCkiY=</authToken>
</env:Header>
<soap:Body>
<ns2:findPaymentsResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<findPaymentsResult>
<requestId>1d37acc0-c5a7-4e32-b3df-168b9e2617e0</requestId>
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
<shopId>12345678</shopId>
</commonResponse>
<orderResponse>
<orderId>TEST-01</orderId>
</orderResponse>
<transactionItem>
<transactionUuid>a27d1907d7f74be1843318dce5875b99</transactionUuid>
<transactionStatusLabel>AUTHORISED</transactionStatusLabel>
<amount>1</amount>
<currency>978</currency>
<expectedCaptureDate>2015-04-01T14:07:54+02:00</expectedCaptureDate>
</transactionItem>
<transactionItem>
<transactionUuid>170fd39a02c847feb5a5f750e8b320d2</transactionUuid>
<transactionStatusLabel>AUTHORISED_TO_VALIDATE</transactionStatusLabel>
<amount>1</amount>
<currency>978</currency>
<expectedCaptureDate>2015-04-01T14:18:58+02:00</expectedCaptureDate>
</transactionItem>
</findPaymentsResult>
</ns2:findPaymentsResponse>
</soap:Body>
</soap:Envelope>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 105 / 237
6.6. Reembolsar um comprador 'refundPayment'
A operação refundPayment permite reembolsar um comprador.
As transações que podem estar sujeitas a um reembolso tem o status Capturada.
Solicitação para enviar
A operação refundPayment é utilizada para efetuar um reembolso sobre uma transação cujo status é
Capturado.
A solicitação refundPayment é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação refundPayment toma na entrada um objeto do tipo refundPayment.
O tipo refundPayment é constituído dos parâmetros seguintes:
Objeto
Formato
commonRequest
commonRequest
paymentRequest
paymentRequest
queryRequest
queryRequest
Requisito
Observação:
Se o cartão estiver vencido na hora da solicitação de reembolso, uma transação recusada pelo motivo
cartão vencido será criada.
A resposta terá os valores seguintes:
• responseCode : 0
• transactionStatusLabel : REFUSED
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Somente um atributo pode ser valorizado, se precisar:
commonRequest
Atributo
Requisito
comment
Comentário livre.
Formato
string
Tabela 87 : Objeto commonRequest
O comentário será exibido no histórico da transação que você pode consultar no Back Office.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 106 / 237
O objeto paymentRequest permite transmitir informações vinculadas ao pagamento.
Possui os atributos seguintes:
paymentRequest
Atributo
Requisito
Formato
transactionId
Código da transação durante a criação ou a modificação de uma transação de pagamento.
Seu valor é único para o mesmo dia.
• Ou este código será gerado pela plataforma. Neste caso, este parâmetro não deve ser
informado.
• Ou este código será gerado pelo site de e-commerce. Neste caso, este parâmetro deve ser
informado com o valor do código desejado. Cuidado, cabe ao site de e-commerce garantir o
caráter único dos códigos de usuários. Toda solicitação de registro contendo um código de
usuário já existente, será recusada, e será retornada com o código de erro 12.
Observação : este atributo não pode ser enviado vazio.
an..6
amount
Valor da transação expresso na menor unidade da moeda .
Observação:
• Não deve ser enviado vazio ou com o valor 0.
• Não deve ser superior ao valor inicial (exemplo: reembolso).
n..12
currency
Código da moeda da transação (norma ISO 4217).
Exemplo: ;986;840 para o dollar americano.
n3
expectedCaptureDate
Data de entrega solicitada apresentada no formato ISO 8601 definido pelo W3C.
Exemplo: 2016-07-16T19:20:00Z.
Este parâmetro é utilizado para efetuar um pagamento a prazo.
Se a quantidade de dias entre a data de captura e a data do dia vigente for superior ao tempo
de validade da autorização, uma autorização de 1 BRL será realizada o mesmo dia da transação.
Permite verificar a validade do cartão.
A autorização para o valor total será efetuada:
• processo padrão: o dia da data de captura no banco desejada,
• processo com autorização antecipada: em função do meio de pagamento selecionado, a Dquantidade de dias correspondente ao tempo de validade de uma autorização antes da data de
captura no banco desejada.
Se você quiser receber a notificação de resultado desta solicitação de autorização, você deve
configurar a regra de notificação URL de notificação em autorização por Batch no Back Office
(Configuração > Regras de notificações).
dateTime
ans..40
manualValidation
Permite validar manualmente uma transação enquanto a data de entrega desejada não for vencida.
Para isso, este atributo deve ser valorizado a 1 (validação manual).
Com o valor 0, a validação será automática.
n1
Tabela 88 : Objeto paymentRequest
O objeto queryRequest permite consultar uma transação para saber quais são os diferentes atributos dela.
O atributo a ser valorizado é o seguinte:
queryRequest
Atributo
Requisito
uuid
Referência única da transação.
Observação: este atributo é utilizado para substituir antigos atributos transactionId,
sequenceNumber e creationDate.
Porém, pode-se continuar a utilizar estes antigos atributos por razões de retro compatibilidade.
Para maiores informações, consultar o capítulo Gerenciar a retro contabilidade.
Tabela 89 : Objeto queryRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 107 / 237
Formato
string
Resposta
A resposta à operação refundPayment é feita pela plataforma de pagamento após uma solicitação de
reembolso.
É constituída de um HEADER e de um BODY de tipo refundPaymentResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem refundPaymentResponse é a seguinte:
Nome
Tipo
refundPaymentResult
refundPaymentResult
A estrutura da mensagem refundPaymentResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
paymentResponse
paymentResponse
orderResponse
orderResponse
cardResponse
cardResponse
authorizationResponse
authorizationResponse
captureResponse
captureResponse
customerResponse
customerResponse
markResponse
markResponse
threeDSResponse
threeDSResponse
extraResponse
extraResponse
fraudManagementResponse
fraudManagementResponse
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 108 / 237
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso (não confundir com o status da transação).
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
n..2
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
string
transactionStatusLabel
Denominação do status da transação. Os valores possíveis são:
• INITIAL
Em andamento.
string
•
•
•
•
Este status temporário. O status definitivo será retornado assim que a sincronização acabar.
NOT_CREATED
A transação não foi criada e portanto não será exibida no Back Office.
AUTHORISED
Captura em andamento.
A transação foi aceita e será capturada automaticamente no banco na data prevista.
AUTHORISED_TO_VALIDATE
Para ser aprovado.
A transação, criada em validação manual, foi autorizada. O vendedor deve validar manualmente a captura
no banco. A transação pode ser aprovada enquanto a data de captura não for vencida. Se esta data estiver
vencida, então o pagamento tem o status Expirado (status definitivo).
WAITING_AUTHORISATION
Autorização em andamento.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitado de autorização e a captura
no banco serão acionadas automaticamente.
WAITING_AUTHORISATION_TO_VALIDATE
Para ser aprovado e autorizado.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitação de autorização será
automaticamente efetuada a D-1 antes da data de captura no banco. O pagamento poderá ser aceito ou
recusado. A captura no banco é automática.
REFUSED
Recusada.
A transação foi recusada.
shopId
Código da loja.
n8
paymentSource
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
• MOTO para um pedido por e-mail ou telefone.
• CC para um call center.
• OTHER para um outro canal de venda.
submissionDate
Data e hora UTC da transação apresentadas em formato W3C (exemplo: 2016-07-16T19:20:00Z).
string
(enum)
dateTime
ans..40
contractNumber
Número de contrato comerciante utilizado.
string
paymentToken
Alias ou Código da conta comprador (pagamento por código).
string
Tabela 90 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 109 / 237
O objeto paymentResponse detalha as informações sobre a transação.
paymentResponse
Formato
transactionUuid
Referência única da transação gerada pela plataforma de pagamento.
string
ans32
transactionId
Código da transação durante a criação ou a modificação de uma transação de pagamento.
Seu valor é único para o mesmo dia.
• Ou este código será gerado pela plataforma.
• Ou este código será gerado pelo site de e-commerce.
an..6
amount
Valor da transação expresso na menor unidade da moeda .
n..12
currency
Código da moeda da transação (norma ISO 4217).
Exemplo: ;986;840 para o dollar americano.
effectiveAmount
Valor da transação na moeda efetivamente usada para a captura no banco.
effectiveCurrency
Moeda efetivamente usada para a captura no banco.
expectedCaptureDate
Data de captura no banco solicitada.
operationType
Tipo de operação
Os valores possíveis são:
• DEBIT para uma operação de débito.
• CREDIT para uma operação de reembolso.
creationDate
Data e hora do registro da transação apresentado em formato W3C.
n3
n..12
n3
dateTime
ans..40
string
dateTime
ans..40
externalTransactionId
Referência dada por um terceiro: número de transação para Paypal, Boleto, RRN para Prism, etc...
string
liabilityShift
Transferência de responsabilidade.
Os valores possíveis são:
• YES quando o pagamento é garantido.
• NO quando pagamento não é garantido.
string
paymentType
Tipo de pagamento.
Os valores possíveis são:
• SINGLE
string
(enum)
•
Pagamento em uma única parcela.
INSTALLMENT
•
Pagamento em várias parcelas.
SPLIT
•
Pagamento realizado com vários meios de pagamento.
SUBSCRIPTION
•
Pagamento por Token cartão ou vinculado a uma assinatura.
RETRY
Quando um pagamento for recusado, pode-se reiterar a solicitação de pagamento. Para qualquer reiteração,
o pagamento será valorizado com este valor.
Observação:
Durante uma operação createPayment, somente um pagamento em uma única parcela pode ser criada (valor
SINGLE).
Os valores INSTALLMENT, SPLIT, SUBSCRIPTION e RETRY podem ser retornados somente se há pagamentos que
foram criados via o formulário de pagamento.
sequenceNumber
Número de seqüência da transação. Vale "1" para um pagamento unitário.
Toma o valor do número de prestação no caso de um pagamento parcelado criado a partir do formulário de
pagamento.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 110 / 237
n..3
paymentResponse
Formato
paymentError
Complemento de informação em caso de erro técnico. Retorna um código de erro associado ao erro técnico (ver
capítulo Gerenciar os códigos de erros durante um pagamento recusado).
n..3
Tabela 91 : Objeto paymentResponse
O objeto orderResponse detalha o pedido.
orderResponse
Formato
orderId
Referência do pedido.
string
an..64
extInfo
Dados personalizados retornados em função das necessidades.
Exemplo : extInfo.key, extInfo.value
• key : nome do dado (o formato dele é "string").
• value : valor do dado (o formato dele é "string").
extInfo
Tabela 92 : Objeto orderResponse
O objeto cardResponse apresenta em detalhes as informações sobre o meio de pagamento utilizado.
cardResponse
Formato
number
• Número de cartão inválido. Contém os 6 primeiros dígitos do número, seguido por "XXXXXX" e finalmente os
4 últimos números.
• IBAN e BIC usados para o pagamento, separados por um "_" no caso de um pagamento por débito no cartão
de crédito.
string
scheme
Tipo do cartão.
string
brand
Marca do cartão.
string
country
Código país do país emissor do cartão (Código numérico ISO 3166).
productCode
Código produto do cartão.
ISO 3166
ano..3
bankCode
Código banco do banco emissor.
n..5
expiryMonth
Mês de vencimento entre 1 e 12 (ex: 3 para março, 10 para outubro).
n..2
expiryYear
Ano de vencimento com 4 dígitos (ex: 2023).
n4
Tabela 93 : Objeto cardResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 111 / 237
O objeto authorizationResponse permite obter informações sobre a solicitação de autorização.
authorizationResponse
Formato
mode
Especifica de que maneira é realizada a solicitação de autorização. Dois valores possíveis:
• MARK
Uma autorização 1 BRL foi efetuada para verificar a validade do cartão.
•
string
Isso acontece quando a data de captura ultrapassa o período de validade de uma autorização .
FULL
Autorização para o valor total pedido na solicitação.
amount
Valor da autorização na menor unidade da moeda se mode vale FULL.
currency
Código da moeda utilizada durante o pedido de autorização (conforme a norma ISO 4217) se mode vale FULL.
date
Data e hora do pedido de autorização se mode vale FULL.
n..12
n3
dateTime
anos..40
number
Número do pedido de autorização se mode vaut FULL.
n..2
result
Código retorno da solicitação de autorização retornado pelo banco emissor quando for recusado.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de autorização.
n..2
Tabela 94 : Objeto authorizationResponse
O objeto captureResponse permite obter informações a respeito do desconto se a transação for com
desconto.
captureResponse
Formato
date
Data e hora de captura.
dateTime
anos..40
number
Número de captura.
n3
reconciliationStatus
Status de aproximação bancária da transação.
n1
refundAmount
Valor que já foi sujeito a um reembolso na sua menor unidade de moeda.
refundCurrency
Moeda do valor que já foi sujeito a um reembolso (Código moeda ISO 4217: 986 para o BRL; 840 para o dólar
americano..
chargeback
Lítigio, não pago. Os valores possíveis são:
• 0 : transação sujeita a um litígio.
• 1 : transação não sujeita a um litígio.
Tabela 95 : Objeto captureResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 112 / 237
n..12
n3
O objeto customerResponse detalha as numerosas informações sobre o comprador.
A resposta contém as análises de:
• billingDetails
Dados de faturamento do comprador.
• shippingDetails
Dados de entrega do comprador.
• extraDetails
Dados técnicos sobre o comprador.
billingDetails
Atributo
Formato
reference
Referência do comprador.
string n..80
title
Estado civil do comprador.
Exemplos de valores possíveis:
• Senhora, etc..
string n..80
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string (enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string ans..32
email
E-mail do comprador.
Parâmetro obrigatório quando criar um alias.
string
ans..150
streetNumber
Número de rua do comprador.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string an..5
address
Endereço do comprador.
string
ans..255
district
Bairro do comprador.
string
ans..127
zipCode
CEP do comprador.
string ans..64
city
Cidade do comprador.
string
ans..128
state
UF / Região do comprador.
string
ans..128
country
País do comprador conforme à norma ISO 3166.
Exemplos de valores possíveis:
•
DE para a Alemanha
•
IT para a Itália
•
PT para o Portugal
•
GB para o Reino-Unido
•
JA para o Japão
•
RU para a Rússia
•
ES para a Espanha
•
NL para a Holanda
•
SE para a Suécia
•
FR para a França
•
PL para a Polônia
•
CN para a China
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 113 / 237
string - a2
billingDetails
Atributo
Formato
language
Idioma do comprador conforme à norma ISO 639-1.
Exemplos de valores possíveis:
•
de para o alemão
•
it para o italiano
•
pt para o português
•
en para o inglês
•
ja para o japonês
•
ru para o russo
•
es para o espanhol
•
nl para o holandês
•
sv para o sueco
•
fr para o francês
•
pl para o polonês
•
zh para o chinês
•
tr para o turco
cellPhoneNumber
Número de telefone celular
string - a2
string ans..32
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato numérico,
tendo de 11 a 20 dígitos).
string
ans..255
Tabela 96 : Objeto billingDetails
shippingDetails
Atributo
Formato
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string
(enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string
ans..32
streetNumber
Número de rua para a entrega.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string an..5
address
Endereço de entrega.
string
ans..255
address2
Complemento de endereço de entrega.
string
ans..255
district
Bairro de entrega.
string
ans..127
zipCode
CEP de entrega.
string
ans..64
city
Cidade de entrega.
string
ans..128
state
UF / Região de entrega.
string
ans..128
country
País de entrega.
string - a2
deliveryCompanyName
Informações sobre a transportadora.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 114 / 237
string
ans..128
shippingDetails
Atributo
Formato
shippingSpeed
Modo de entrega selecionado.
Os valores possíveis são:
• STANDARD para uma entrega padrão.
• EXPRESS para uma entrega express.
string
(enum)
shippingMethod
Método de entrega utilizado.
Os valores possíveis são:
• RECLAIM_IN_SHOP para retirar a mercadoria na loja.
• RELAY_POINT para a utilização de uma rede de pontos de entrega terceirizada (Kiala, Alveol, etc).
• RECLAIM_IN_STATION para retirar num aeroporto, uma agência de viagens ou outros.
• PACKAGE_DELIVERY_COMPANY para a entrega por transportadora (Colissimo, UPS, etc).
• ETICKET para emitir de uma passagem eletrônica, baixar.
string
(enum)
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato numérico,
tendo de 11 a 20 dígitos).
string
ans..255
Tabela 97 : Objeto shippingDetails
extraDetails
Formato
ipAddress
O endereço IP do comprador.
string
ans40
Tabela 98 : Objeto extraDetails
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 115 / 237
O objeto markResponse permite obter informações sobre a solicitação de autorização de 1 BRL.
markResponse
Formato
amount
Valor utilizado para verificar a validade do cartão, na menor unidade da moeda .
n..12
currency
Código da moeda utilizado para verificar a validade do cartão (conforme a norma ISO 4217).
n3
date
Data e hora da solicitação de autorização efetuada se o atributo mode do objetoauthorizationResponse vaut
MARK.
dateTime
anos..40
number
Número de autorização da solicitação de autorização se o atributo mode do objeto authorizationResponse vale
MARK.
dateTime
anos..40
result
Resultado da solicitação de autorização efetuada se o atributo mode do objeto authorizationResponse vale MARK.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de autorização.
n..2
Tabela 99 : Objet markResponse
O objeto threeDSResponse permite obter informações sobre a autenticação 3D Secure.
Este objeto contém:
• authenticationRequestData
Descreve o resultado da solicitado de alistamento bem como a mensagem codificada que será
transmitida pelo navegador para o ACS.
• authenticationResultData
Descreve os detalhes da autenticação 3D Secure.
authenticationRequestData
Formato
threeDSAcctId
Certificado reenviado pelo Directory Server.
string
threeDSAcsUrl
Url de ACS que deve ser solicitado.
string
threeDSBrand
Rede do cartão.
string
threeDSEncodedPareq
Mensagem PAReq encodificada, pronto para enviar ao ACS.
string
threeDSEnrolled
Status de alistamento do portador.
Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
a1
threeDSRequestId
Número de solicitação, para relembrar na chamada ENABLED_FINALIZE do atributo mode do objeto
threeDSRequest.
Tabela 100 : Objeto authenticationRequestData
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 116 / 237
string
authenticationResultData
Formato
transactionCondition
Status da autenticação 3D Secure. Os valores possíveis são:
• COND_3D_SUCCESS
Sucesso da autenticação.
•
•
•
•
•
string
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure e o portador autenticou-se
corretamente.
COND_3D_FAILURE
Autenticação não sucedida.
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure mas o comprador não conseguiu
autenticar-se (senha errada).
COND_3D_ERROR
Autenticação em falha.
O vendedor participa ao programa 3D secure mas o servidor da plataforma de pagamento encontrou um
problema técnico durante o processo de autenticação (quando verificou a inscrição do cartão ao programa
3D ou durante a autenticação do portador).
COND_3D_NOTENROLLED
Portador não alistado.
O vendedor participa ao programa 3D Secure mas o cartão do portador não é alistado.
COND_3D_ATTEMPT
Tentativa de autenticação.
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure mas o comprador não teve
que autenticar-se (o servidor de controle de acesso do banco que emitiu o cartão somente implementa a
geração de um comprovante de tentativa de autenticação).
COND_SSL
3D Secure não aplicável.
O vendedor não é alistado ao 3D Secure ou o canal de venda não tem cobertura com esta garantia.
enrolled
Status de alistamento do portador. Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
string
status
Status da autenticação do portador. Os valores possíveis são:
• Y para um status autenticado 3 DS.
• N para um erro de autenticação.
• U para uma autenticação impossível.
• A para uma tentativa de autenticação.
a1
eci
Indicador de Comercio Eletrônico.
O valor eci depende do status da autenticação 3DS e do tipo de cartão. Os valores possíveis são:
status =Y
status = A
status = U
status =N
VISA - AMEX
5
6
7
-
MasterCard
02
01
-
-
xid
Número de transação 3DS.
string
string
cavvAlgorithm
Algoritmo de verificação da autenticação do portador (CAVV). Os valores possíveis são:
• 0 para HMAC.
• 1 para CVV.
• 2 para CVV_ATN.
• 3 para Mastercard SPA.
n1
cavv
Certificado do ACS.
string
signValid
Assinatura da autenticação 3DS.
string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 117 / 237
authenticationResultData
Formato
brand
Rede do cartão.
string
Tabela 101 : Objeto authenticationResultData
O objeto fraudManagementResponse permite obter os resultados dos controle de gerenciamento de
riscos.
A resposta contem as análises dos atributos:
• riskControl
Retorna o resultado do controle de gerenciamento de riscos realizado.
• riskAnalysis
Retorna o resultado da análise de gerenciamento de riscos efetuada por um sistema externo (ClearSale,
CyberSource,...).
• riskAssessment
Retorna o resultado da análise de gerenciamento dos riscos avançados realizado pela plataforma de
pagamento.
O atributo riskControl
O formato é o seguinte: name1=result1;name2=result2
Nome
Formato
Descrição
name
string
Nome da regra de gerenciamento de risco.
result
string
Resultado do controle.
Valores possíveis para 'name'
CARD
Cartão presente na lista cinza.
COUNTRY
País do comprador na lista cinza.
IPADDR
Endereço IP do comprador presente na lista cinza.
AMOUNT
Valor máximo autorizado por pedido foi atingido.
BIN
O código BIN do cartão está presente na lista cinza.
ECB
Detecção de um e-carte bleue.
CARD_COMMERCIAL_NATIONAL
Detecção de um cartão comercial nacional.
CARD_COMMERCIAL_FOREIGN
Detecção de um cartão comercial estrangeiro.
CAS
Detecção de um cartão com autorização sistemática.
COUNTRY_CONSISTENCY
O país de origem do cartão, o país do endereço IP do comprador e o país do
comprador não correspondem.
NON_GUARANTEED_PAYMENT
Detecção de um pagamento sem transferência de responsabilidade.
IPADDR_COUNTRY
O pais do endereço IP do comprador está presente na lista cinza.
Tabela 102 : Valores possíveis para 'name'
Valores possíveis para 'result'
OK
Indica que o controle é correto.
KO
Indica que o controle está em falha.
Tabela 103 : Valores possíveis para 'result'
O atributo riskAnalysis
riskAnalysis
Formato
score
Pontuação atribuída para toda transação para avaliar o risco associado a ela.
string
resultCode
string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 118 / 237
riskAnalysis
Código retornado por um analista de risco externo.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno retornados pelo analista de
risco externo.
Formato
status
Status da analise de risco Os valores possíveis são os seguintes:
• P_SEND_OK, "Sent to clearsale and successfully processed"
Sucesso
• P_TO_SEND, "Transaction analysis is scheduled to be sent to risk analyzer"
O envio está programado
• P_TO_SEND_KO, "Problem when tried to send to risk analyzer"
Erro de tratamento
• P_PENDING_AT_ANALYZER, "Analysis result is still being processed by the risk analyzer. We should keep
checking/waiting for the analysis result"
Tratamento em andamento pelo analista
• P_MANUAL, "Analysis should be requested through user request (not automatically)"
A espera de envio manual
• P_SKIPPED, "Analysis request discarded by current transaction status/problem"
Descartado
• P_SEND_EXPIRED, "Analysis request expired"
Vencido
string
requestId
Código da analise para o analista de risco.
string
extraInfo
Sem valorização para ClearSale.
Para CyberSource, este atributo retorna todos os códigos retornados pelo DecisionManager.
• key : nome do dado (o formato dele é "string").
• value : valor do dado (o formato dele é "string").
Exemplo :
• COR-BA=Endereço de faturamento corrigido ou corrigível
• A=Mudanças de endereços excessivos. O comprador mudou de endereço de faturamento pelo menos duas
vezes durante os seis últimos meses.
• etc.
extInfo
Tabela 104 : Atributo riskAnalysis
O atributo riskAssessment
Valores
Descrição
ENABLE_3DS
3D Secure ativado
DISABLE_3DS
3D Secure desativado
MANUAL_VALIDATION
A transação foi criada em validação manual.
A captura do pagamento esta bloqueada temporariamente para permitir ao vendedor
efetuar todas as verificações desejadas.
REFUSE
A transação foi recusada.
RUN_RISK_ANALYSIS
Chamada para um analisador de riscos externos sob a condição que o vendedor possua
um contrato
Consultar a descrição do campo vads_risk_analysis_result para identificar a lista dos
valores possíveis e a descrição deles.
INFORM
Uma alerta apareceu.
O vendedor é avisado quando um risco é identificado.
O vendedor é informado via uma ou mais regras do centro de notificação (URL de
notificação, e-mail ou SMS).
O objeto extraResponse permite obter informações adicionais sobre o pagamento.
extraResponse
Formato
paymentOptionCode
Reservado para um uso específico (Brasil).
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 119 / 237
n..2
extraResponse
Define o código de opção utilizada para caracterizar a quantidade de prestações para uma transação).
paymentOptionOccNumb
Reservado para um uso específico.
Define a quantidade de prestações para uma transação.
Por exemplo, para um pagamento em 3 vezes, este atributo terá o valor 3.
Tabela 105 : Objeto extraResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 120 / 237
Formato
string
6.7. Duplicar uma transação de pagamento 'duplicatePayment'
A operação duplicatePayment permite criar uma nova transação tendo exatamente as mesmas
características que a transação que deu origem a duplicação.
As transações que podem estar sujeitas à duplicação devem possuir uns dos status seguintes:
• Capturado
• Vencido
• Cancelado
• Recusado
Solicitação para enviar
A operação duplicatePayment é utilizada para criar uma nova transação tendo exatamente as mesmas
características do que a transação que deu origem à duplicação.
A solicitação duplicatePayment é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação duplicatePayment toma na entrada um objeto do tipo duplicatePayment.
O tipo duplicatePayment é constituído dos parâmetros seguintes:
Objeto
Formato
commonRequest
commonRequest
paymentRequest
paymentRequest
queryRequest
queryRequest
orderRequest
orderRequest
Requisito
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Somente um atributo pode ser valorizado, se precisar:
commonRequest
Atributo
Requisito
comment
Comentário livre.
Formato
string
Tabela 106 : Objeto commonRequest
O comentário será exibido no histórico da transação que você pode consultar no Back Office.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 121 / 237
O objeto queryRequest permite consultar uma transação para saber quais são os diferentes atributos dela.
O atributo a ser valorizado é o seguinte:
queryRequest
Atributo
Requisito
uuid
Referência única da transação.
Observação: este atributo é utilizado para substituir antigos atributos transactionId,
sequenceNumber e creationDate.
Porém, pode-se continuar a utilizar estes antigos atributos por razões de retro compatibilidade.
Para maiores informações, consultar o capítulo Gerenciar a retro contabilidade.
Formato
string
Tabela 107 : Objeto queryRequest
O objeto paymentRequest permite transmitir informações vinculadas ao pagamento.
Possui os atributos seguintes:
paymentRequest
Atributo
Requisito
Formato
transactionId
Código da transação durante a criação ou a modificação de uma transação de pagamento.
Seu valor é único para o mesmo dia.
• Ou este código será gerado pela plataforma. Neste caso, este parâmetro não deve ser
informado.
• Ou este código será gerado pelo site de e-commerce. Neste caso, este parâmetro deve ser
informado com o valor do código desejado. Cuidado, cabe ao site de e-commerce garantir o
caráter único dos códigos de usuários. Toda solicitação de registro contendo um código de
usuário já existente, será recusada, e será retornada com o código de erro 12.
Observação : este atributo não pode ser enviado vazio.
an..6
amount
Valor da transação expresso na menor unidade da moeda .
Observação:
• Não deve ser enviado vazio ou com o valor 0.
• Não deve ser superior ao valor inicial (exemplo: reembolso).
n..12
currency
Código da moeda da transação (norma ISO 4217).
Exemplo: ;986;840 para o dollar americano.
n3
expectedCaptureDate
Data de entrega solicitada apresentada no formato ISO 8601 definido pelo W3C.
Exemplo: 2016-07-16T19:20:00Z.
Este parâmetro é utilizado para efetuar um pagamento a prazo.
Se a quantidade de dias entre a data de captura e a data do dia vigente for superior ao tempo
de validade da autorização, uma autorização de 1 BRL será realizada o mesmo dia da transação.
Permite verificar a validade do cartão.
A autorização para o valor total será efetuada:
• processo padrão: o dia da data de captura no banco desejada,
• processo com autorização antecipada: em função do meio de pagamento selecionado, a Dquantidade de dias correspondente ao tempo de validade de uma autorização antes da data de
captura no banco desejada.
Se você quiser receber a notificação de resultado desta solicitação de autorização, você deve
configurar a regra de notificação URL de notificação em autorização por Batch no Back Office
(Configuração > Regras de notificações).
dateTime
ans..40
manualValidation
Permite validar manualmente uma transação enquanto a data de entrega desejada não for vencida.
Para isso, este atributo deve ser valorizado a 1 (validação manual).
Com o valor 0, a validação será automática.
n1
Tabela 108 : Objeto paymentRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 122 / 237
O objeto orderRequest permite transmitir informações vinculadas ao pedido.
É composto do atributo seguinte:
orderRequest
Atributo
Requisito
orderId
Referência do pedido.
Formato
string
an..64
Tabela 109 : Objeto orderRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 123 / 237
Resposta
A resposta à operação duplicatePayment é feita pela plataforma de pagamento após uma solicitação de
duplicação de uma transação.
É constituída de um HEADER e de um BODY de tipo duplicatePaymentResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem duplicatePaymentResponse é a seguinte:
Nome
Tipo
duplicatePaymentResult
duplicatePaymentResult
A estrutura da mensagem duplicatePaymentResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
paymentResponse
paymentResponse
orderResponse
orderResponse
cardResponse
cardResponse
authorizationResponse
authorizationResponse
captureResponse
captureResponse
customerResponse
customerResponse
markResponse
markResponse
threeDSResponse
threeDSResponse
extraResponse
extraResponse
fraudManagementResponse
fraudManagementResponse
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 124 / 237
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso (não confundir com o status da transação).
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
n..2
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
string
transactionStatusLabel
Denominação do status da transação. Os valores possíveis são:
• INITIAL
Em andamento.
string
•
•
•
•
Este status temporário. O status definitivo será retornado assim que a sincronização acabar.
NOT_CREATED
A transação não foi criada e portanto não será exibida no Back Office.
AUTHORISED
Captura em andamento.
A transação foi aceita e será capturada automaticamente no banco na data prevista.
AUTHORISED_TO_VALIDATE
Para ser aprovado.
A transação, criada em validação manual, foi autorizada. O vendedor deve validar manualmente a captura
no banco. A transação pode ser aprovada enquanto a data de captura não for vencida. Se esta data estiver
vencida, então o pagamento tem o status Expirado (status definitivo).
WAITING_AUTHORISATION
Autorização em andamento.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitado de autorização e a captura
no banco serão acionadas automaticamente.
WAITING_AUTHORISATION_TO_VALIDATE
Para ser aprovado e autorizado.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitação de autorização será
automaticamente efetuada a D-1 antes da data de captura no banco. O pagamento poderá ser aceito ou
recusado. A captura no banco é automática.
REFUSED
Recusada.
A transação foi recusada.
shopId
Código da loja.
n8
paymentSource
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
• MOTO para um pedido por e-mail ou telefone.
• CC para um call center.
• OTHER para um outro canal de venda.
submissionDate
Data e hora UTC da transação apresentadas em formato W3C (exemplo: 2016-07-16T19:20:00Z).
string
(enum)
dateTime
ans..40
contractNumber
Número de contrato comerciante utilizado.
string
paymentToken
Alias ou Código da conta comprador (pagamento por código).
string
Tabela 110 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 125 / 237
O objeto paymentResponse detalha as informações sobre a transação.
paymentResponse
Formato
transactionUuid
Referência única da transação gerada pela plataforma de pagamento.
string
ans32
transactionId
Código da transação durante a criação ou a modificação de uma transação de pagamento.
Seu valor é único para o mesmo dia.
• Ou este código será gerado pela plataforma.
• Ou este código será gerado pelo site de e-commerce.
an..6
amount
Valor da transação expresso na menor unidade da moeda .
n..12
currency
Código da moeda da transação (norma ISO 4217).
Exemplo: ;986;840 para o dollar americano.
effectiveAmount
Valor da transação na moeda efetivamente usada para a captura no banco.
effectiveCurrency
Moeda efetivamente usada para a captura no banco.
expectedCaptureDate
Data de captura no banco solicitada.
operationType
Tipo de operação
Os valores possíveis são:
• DEBIT para uma operação de débito.
• CREDIT para uma operação de reembolso.
creationDate
Data e hora do registro da transação apresentado em formato W3C.
n3
n..12
n3
dateTime
ans..40
string
dateTime
ans..40
externalTransactionId
Referência dada por um terceiro: número de transação para Paypal, Boleto, RRN para Prism, etc...
string
liabilityShift
Transferência de responsabilidade.
Os valores possíveis são:
• YES quando o pagamento é garantido.
• NO quando pagamento não é garantido.
string
paymentType
Tipo de pagamento.
Os valores possíveis são:
• SINGLE
string
(enum)
•
Pagamento em uma única parcela.
INSTALLMENT
•
Pagamento em várias parcelas.
SPLIT
•
Pagamento realizado com vários meios de pagamento.
SUBSCRIPTION
•
Pagamento por Token cartão ou vinculado a uma assinatura.
RETRY
Quando um pagamento for recusado, pode-se reiterar a solicitação de pagamento. Para qualquer reiteração,
o pagamento será valorizado com este valor.
Observação:
Durante uma operação createPayment, somente um pagamento em uma única parcela pode ser criada (valor
SINGLE).
Os valores INSTALLMENT, SPLIT, SUBSCRIPTION e RETRY podem ser retornados somente se há pagamentos que
foram criados via o formulário de pagamento.
sequenceNumber
Número de seqüência da transação. Vale "1" para um pagamento unitário.
Toma o valor do número de prestação no caso de um pagamento parcelado criado a partir do formulário de
pagamento.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 126 / 237
n..3
paymentResponse
Formato
paymentError
Complemento de informação em caso de erro técnico. Retorna um código de erro associado ao erro técnico (ver
capítulo Gerenciar os códigos de erros durante um pagamento recusado).
n..3
Tabela 111 : Objeto paymentResponse
O objeto orderResponse detalha o pedido.
orderResponse
Formato
orderId
Referência do pedido.
string
an..64
extInfo
Dados personalizados retornados em função das necessidades.
Exemplo : extInfo.key, extInfo.value
• key : nome do dado (o formato dele é "string").
• value : valor do dado (o formato dele é "string").
extInfo
Tabela 112 : Objeto orderResponse
O objeto cardResponse apresenta em detalhes as informações sobre o meio de pagamento utilizado.
cardResponse
Formato
number
• Número de cartão inválido. Contém os 6 primeiros dígitos do número, seguido por "XXXXXX" e finalmente os
4 últimos números.
• IBAN e BIC usados para o pagamento, separados por um "_" no caso de um pagamento por débito no cartão
de crédito.
string
scheme
Tipo do cartão.
string
brand
Marca do cartão.
string
country
Código país do país emissor do cartão (Código numérico ISO 3166).
productCode
Código produto do cartão.
ISO 3166
ano..3
bankCode
Código banco do banco emissor.
n..5
expiryMonth
Mês de vencimento entre 1 e 12 (ex: 3 para março, 10 para outubro).
n..2
expiryYear
Ano de vencimento com 4 dígitos (ex: 2023).
n4
Tabela 113 : Objeto cardResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 127 / 237
O objeto authorizationResponse permite obter informações sobre a solicitação de autorização.
authorizationResponse
Formato
mode
Especifica de que maneira é realizada a solicitação de autorização. Dois valores possíveis:
• MARK
Uma autorização 1 BRL foi efetuada para verificar a validade do cartão.
•
string
Isso acontece quando a data de captura ultrapassa o período de validade de uma autorização .
FULL
Autorização para o valor total pedido na solicitação.
amount
Valor da autorização na menor unidade da moeda se mode vale FULL.
currency
Código da moeda utilizada durante o pedido de autorização (conforme a norma ISO 4217) se mode vale FULL.
date
Data e hora do pedido de autorização se mode vale FULL.
n..12
n3
dateTime
anos..40
number
Número do pedido de autorização se mode vaut FULL.
n..2
result
Código retorno da solicitação de autorização retornado pelo banco emissor quando for recusado.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de autorização.
n..2
Tabela 114 : Objeto authorizationResponse
O objeto captureResponse permite obter informações a respeito do desconto se a transação for com
desconto.
captureResponse
Formato
date
Data e hora de captura.
dateTime
anos..40
number
Número de captura.
n3
reconciliationStatus
Status de aproximação bancária da transação.
n1
refundAmount
Valor que já foi sujeito a um reembolso na sua menor unidade de moeda.
refundCurrency
Moeda do valor que já foi sujeito a um reembolso (Código moeda ISO 4217: 986 para o BRL; 840 para o dólar
americano..
chargeback
Lítigio, não pago. Os valores possíveis são:
• 0 : transação sujeita a um litígio.
• 1 : transação não sujeita a um litígio.
Tabela 115 : Objeto captureResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 128 / 237
n..12
n3
O objeto customerResponse detalha as numerosas informações sobre o comprador.
A resposta contém as análises de:
• billingDetails
Dados de faturamento do comprador.
• shippingDetails
Dados de entrega do comprador.
• extraDetails
Dados técnicos sobre o comprador.
billingDetails
Atributo
Formato
reference
Referência do comprador.
string n..80
title
Estado civil do comprador.
Exemplos de valores possíveis:
• Senhora, etc..
string n..80
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string (enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string ans..32
email
E-mail do comprador.
Parâmetro obrigatório quando criar um alias.
string
ans..150
streetNumber
Número de rua do comprador.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string an..5
address
Endereço do comprador.
string
ans..255
district
Bairro do comprador.
string
ans..127
zipCode
CEP do comprador.
string ans..64
city
Cidade do comprador.
string
ans..128
state
UF / Região do comprador.
string
ans..128
country
País do comprador conforme à norma ISO 3166.
Exemplos de valores possíveis:
•
DE para a Alemanha
•
IT para a Itália
•
PT para o Portugal
•
GB para o Reino-Unido
•
JA para o Japão
•
RU para a Rússia
•
ES para a Espanha
•
NL para a Holanda
•
SE para a Suécia
•
FR para a França
•
PL para a Polônia
•
CN para a China
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 129 / 237
string - a2
billingDetails
Atributo
Formato
language
Idioma do comprador conforme à norma ISO 639-1.
Exemplos de valores possíveis:
•
de para o alemão
•
it para o italiano
•
pt para o português
•
en para o inglês
•
ja para o japonês
•
ru para o russo
•
es para o espanhol
•
nl para o holandês
•
sv para o sueco
•
fr para o francês
•
pl para o polonês
•
zh para o chinês
•
tr para o turco
cellPhoneNumber
Número de telefone celular
string - a2
string ans..32
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato numérico,
tendo de 11 a 20 dígitos).
string
ans..255
Tabela 116 : Objeto billingDetails
shippingDetails
Atributo
Formato
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string
(enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string
ans..32
streetNumber
Número de rua para a entrega.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string an..5
address
Endereço de entrega.
string
ans..255
address2
Complemento de endereço de entrega.
string
ans..255
district
Bairro de entrega.
string
ans..127
zipCode
CEP de entrega.
string
ans..64
city
Cidade de entrega.
string
ans..128
state
UF / Região de entrega.
string
ans..128
country
País de entrega.
string - a2
deliveryCompanyName
Informações sobre a transportadora.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 130 / 237
string
ans..128
shippingDetails
Atributo
Formato
shippingSpeed
Modo de entrega selecionado.
Os valores possíveis são:
• STANDARD para uma entrega padrão.
• EXPRESS para uma entrega express.
string
(enum)
shippingMethod
Método de entrega utilizado.
Os valores possíveis são:
• RECLAIM_IN_SHOP para retirar a mercadoria na loja.
• RELAY_POINT para a utilização de uma rede de pontos de entrega terceirizada (Kiala, Alveol, etc).
• RECLAIM_IN_STATION para retirar num aeroporto, uma agência de viagens ou outros.
• PACKAGE_DELIVERY_COMPANY para a entrega por transportadora (Colissimo, UPS, etc).
• ETICKET para emitir de uma passagem eletrônica, baixar.
string
(enum)
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato numérico,
tendo de 11 a 20 dígitos).
string
ans..255
Tabela 117 : Objeto shippingDetails
extraDetails
Formato
ipAddress
O endereço IP do comprador.
string
ans40
Tabela 118 : Objeto extraDetails
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 131 / 237
O objeto markResponse permite obter informações sobre a solicitação de autorização de 1 BRL.
markResponse
Formato
amount
Valor utilizado para verificar a validade do cartão, na menor unidade da moeda .
n..12
currency
Código da moeda utilizado para verificar a validade do cartão (conforme a norma ISO 4217).
n3
date
Data e hora da solicitação de autorização efetuada se o atributo mode do objetoauthorizationResponse vaut
MARK.
dateTime
anos..40
number
Número de autorização da solicitação de autorização se o atributo mode do objeto authorizationResponse vale
MARK.
dateTime
anos..40
result
Resultado da solicitação de autorização efetuada se o atributo mode do objeto authorizationResponse vale MARK.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de autorização.
n..2
Tabela 119 : Objet markResponse
O objeto threeDSResponse permite obter informações sobre a autenticação 3D Secure.
Este objeto contém:
• authenticationRequestData
Descreve o resultado da solicitado de alistamento bem como a mensagem codificada que será
transmitida pelo navegador para o ACS.
• authenticationResultData
Descreve os detalhes da autenticação 3D Secure.
authenticationRequestData
Formato
threeDSAcctId
Certificado reenviado pelo Directory Server.
string
threeDSAcsUrl
Url de ACS que deve ser solicitado.
string
threeDSBrand
Rede do cartão.
string
threeDSEncodedPareq
Mensagem PAReq encodificada, pronto para enviar ao ACS.
string
threeDSEnrolled
Status de alistamento do portador.
Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
a1
threeDSRequestId
Número de solicitação, para relembrar na chamada ENABLED_FINALIZE do atributo mode do objeto
threeDSRequest.
Tabela 120 : Objeto authenticationRequestData
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 132 / 237
string
authenticationResultData
Formato
transactionCondition
Status da autenticação 3D Secure. Os valores possíveis são:
• COND_3D_SUCCESS
Sucesso da autenticação.
•
•
•
•
•
string
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure e o portador autenticou-se
corretamente.
COND_3D_FAILURE
Autenticação não sucedida.
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure mas o comprador não conseguiu
autenticar-se (senha errada).
COND_3D_ERROR
Autenticação em falha.
O vendedor participa ao programa 3D secure mas o servidor da plataforma de pagamento encontrou um
problema técnico durante o processo de autenticação (quando verificou a inscrição do cartão ao programa
3D ou durante a autenticação do portador).
COND_3D_NOTENROLLED
Portador não alistado.
O vendedor participa ao programa 3D Secure mas o cartão do portador não é alistado.
COND_3D_ATTEMPT
Tentativa de autenticação.
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure mas o comprador não teve
que autenticar-se (o servidor de controle de acesso do banco que emitiu o cartão somente implementa a
geração de um comprovante de tentativa de autenticação).
COND_SSL
3D Secure não aplicável.
O vendedor não é alistado ao 3D Secure ou o canal de venda não tem cobertura com esta garantia.
enrolled
Status de alistamento do portador. Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
string
status
Status da autenticação do portador. Os valores possíveis são:
• Y para um status autenticado 3 DS.
• N para um erro de autenticação.
• U para uma autenticação impossível.
• A para uma tentativa de autenticação.
a1
eci
Indicador de Comercio Eletrônico.
O valor eci depende do status da autenticação 3DS e do tipo de cartão. Os valores possíveis são:
status =Y
status = A
status = U
status =N
VISA - AMEX
5
6
7
-
MasterCard
02
01
-
-
xid
Número de transação 3DS.
string
string
cavvAlgorithm
Algoritmo de verificação da autenticação do portador (CAVV). Os valores possíveis são:
• 0 para HMAC.
• 1 para CVV.
• 2 para CVV_ATN.
• 3 para Mastercard SPA.
n1
cavv
Certificado do ACS.
string
signValid
Assinatura da autenticação 3DS.
string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 133 / 237
authenticationResultData
Formato
brand
Rede do cartão.
string
Tabela 121 : Objeto authenticationResultData
O objeto extraResponse permite obter informações adicionais sobre o pagamento.
extraResponse
Formato
paymentOptionCode
Reservado para um uso específico (Brasil).
Define o código de opção utilizada para caracterizar a quantidade de prestações para uma transação).
paymentOptionOccNumb
Reservado para um uso específico.
Define a quantidade de prestações para uma transação.
Por exemplo, para um pagamento em 3 vezes, este atributo terá o valor 3.
n..2
string
Tabela 122 : Objeto extraResponse
O objeto fraudManagementResponse permite obter os resultados dos controle de gerenciamento de
riscos.
A resposta contem as análises dos atributos:
• riskControl
Retorna o resultado do controle de gerenciamento de riscos realizado.
• riskAnalysis
Retorna o resultado da análise de gerenciamento de riscos efetuada por um sistema externo (ClearSale,
CyberSource,...).
• riskAssessment
Retorna o resultado da análise de gerenciamento dos riscos avançados realizado pela plataforma de
pagamento.
O atributo riskControl
O formato é o seguinte: name1=result1;name2=result2
Nome
Formato
Descrição
name
string
Nome da regra de gerenciamento de risco.
result
string
Resultado do controle.
Valores possíveis para 'name'
CARD
Cartão presente na lista cinza.
COUNTRY
País do comprador na lista cinza.
IPADDR
Endereço IP do comprador presente na lista cinza.
AMOUNT
Valor máximo autorizado por pedido foi atingido.
BIN
O código BIN do cartão está presente na lista cinza.
ECB
Detecção de um e-carte bleue.
CARD_COMMERCIAL_NATIONAL
Detecção de um cartão comercial nacional.
CARD_COMMERCIAL_FOREIGN
Detecção de um cartão comercial estrangeiro.
CAS
Detecção de um cartão com autorização sistemática.
COUNTRY_CONSISTENCY
O país de origem do cartão, o país do endereço IP do comprador e o país do
comprador não correspondem.
NON_GUARANTEED_PAYMENT
Detecção de um pagamento sem transferência de responsabilidade.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 134 / 237
Valores possíveis para 'name'
IPADDR_COUNTRY
O pais do endereço IP do comprador está presente na lista cinza.
Tabela 123 : Valores possíveis para 'name'
Valores possíveis para 'result'
OK
Indica que o controle é correto.
KO
Indica que o controle está em falha.
Tabela 124 : Valores possíveis para 'result'
O atributo riskAnalysis
riskAnalysis
Formato
score
Pontuação atribuída para toda transação para avaliar o risco associado a ela.
string
resultCode
Código retornado por um analista de risco externo.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno retornados pelo analista de
risco externo.
string
status
Status da analise de risco Os valores possíveis são os seguintes:
• P_SEND_OK, "Sent to clearsale and successfully processed"
Sucesso
• P_TO_SEND, "Transaction analysis is scheduled to be sent to risk analyzer"
O envio está programado
• P_TO_SEND_KO, "Problem when tried to send to risk analyzer"
Erro de tratamento
• P_PENDING_AT_ANALYZER, "Analysis result is still being processed by the risk analyzer. We should keep
checking/waiting for the analysis result"
Tratamento em andamento pelo analista
• P_MANUAL, "Analysis should be requested through user request (not automatically)"
A espera de envio manual
• P_SKIPPED, "Analysis request discarded by current transaction status/problem"
Descartado
• P_SEND_EXPIRED, "Analysis request expired"
Vencido
string
requestId
Código da analise para o analista de risco.
string
extraInfo
Sem valorização para ClearSale.
Para CyberSource, este atributo retorna todos os códigos retornados pelo DecisionManager.
• key : nome do dado (o formato dele é "string").
• value : valor do dado (o formato dele é "string").
Exemplo :
• COR-BA=Endereço de faturamento corrigido ou corrigível
• A=Mudanças de endereços excessivos. O comprador mudou de endereço de faturamento pelo menos duas
vezes durante os seis últimos meses.
• etc.
extInfo
Tabela 125 : Atributo riskAnalysis
O atributo riskAssessment
Valores
Descrição
ENABLE_3DS
3D Secure ativado
DISABLE_3DS
3D Secure desativado
MANUAL_VALIDATION
A transação foi criada em validação manual.
A captura do pagamento esta bloqueada temporariamente para permitir ao vendedor
efetuar todas as verificações desejadas.
REFUSE
A transação foi recusada.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 135 / 237
Valores
Descrição
RUN_RISK_ANALYSIS
Chamada para um analisador de riscos externos sob a condição que o vendedor possua
um contrato
Consultar a descrição do campo vads_risk_analysis_result para identificar a lista dos
valores possíveis e a descrição deles.
INFORM
Uma alerta apareceu.
O vendedor é avisado quando um risco é identificado.
O vendedor é informado via uma ou mais regras do centro de notificação (URL de
notificação, e-mail ou SMS).
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 136 / 237
6.8. Validar uma transação de pagamento 'validatePayment'
A operação validatePayment permite autorizar a captura no banco de uma transação na data da
apresentação pedida no pagamento original.
As transações que podem estar sujeitas à validação possuem uns dos status seguintes:
• Para ser aprovado
• Para ser aprovado e autorizado
Solicitação para enviar
A operação validatePayment é utilizada para validar um pagamento.
A solicitação validatePayment é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação validatePayment toma na entrada um objeto do tipo validatePayment.
O tipo validatePayment é constituído dos parâmetros seguintes:
Objeto
Formato
commonRequest
commonRequest
queryRequest
queryRequest
Requisito
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Somente um atributo pode ser valorizado, se precisar:
commonRequest
Atributo
Requisito
comment
Comentário livre.
Formato
string
Tabela 126 : Objeto commonRequest
O comentário será exibido no histórico da transação que você pode consultar no Back Office.
O objeto queryRequest permite consultar uma transação para saber quais são os diferentes atributos dela.
O atributo a ser valorizado é o seguinte:
queryRequest
Atributo
Requisito
uuid
Referência única da transação.
Observação: este atributo é utilizado para substituir antigos atributos transactionId,
sequenceNumber e creationDate.
Porém, pode-se continuar a utilizar estes antigos atributos por razões de retro compatibilidade.
Para maiores informações, consultar o capítulo Gerenciar a retro contabilidade.
Tabela 127 : Objeto queryRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 137 / 237
Formato
string
Resposta
A resposta à operação validatePayment é feita pela plataforma de pagamento após a validação de um
pagamento. É constituída de um HEADER e de um BODY de tipo validatePaymentResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem validatePaymentResponse é a seguinte:
Nome
Tipo
validatePaymentResult
validatePaymentResult
A estrutura da mensagem validatePaymentResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso (não confundir com o status da transação).
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
n..2
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
string
transactionStatusLabel
Denominação do status da transação. Os valores possíveis são:
• AUTHORISED
Captura em andamento.
string
•
A transação foi aceita e será capturada automaticamente no banco na data prevista.
WAITING_AUTHORISATION
Autorização em andamento.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitado de autorização e a captura
no banco serão acionadas automaticamente.
REFUSED
Recusada.
A transação foi recusada.
shopId
Código da loja.
n8
paymentSource
string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 138 / 237
commonResponse
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
• MOTO para um pedido por e-mail ou telefone.
• CC para um call center.
• OTHER para um outro canal de venda.
submissionDate
Data e hora UTC da transação apresentadas em formato W3C (exemplo: 2016-07-16T19:20:00Z).
Formato
dateTime
ans..40
contractNumber
Número de contrato comerciante utilizado.
string
paymentToken
Alias ou Código da conta comprador (pagamento por código).
string
Tabela 128 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 139 / 237
6.9. Capturar uma transação de pagamento 'capturePayment'
A operação capturePayment é específica a certos tipos de pagamentos realizados no Brasil.
Permite capturar um pagamento a partir do momento que a transação for capturada.
Solicitação para enviar
A solicitação capturePayment é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação capturePayment toma na entrada um objeto do tipo capturePayment.
O tipo capturePayment é composto de um só objeto.
Objeto
Formato
settlementRequest
settlementRequest
Requisito
O objeto settlementRequest permite capturar uma transação via cartão ou Boleto (Brasil).
settlementRequest
Atributo
Requisito
transactionUuids
Lista de transações para quais uma captura é solicitada.
commission
Reservado para um uso específico (Brasil).
Este atributo é obrigatório para um Boleto.
Comissão paga ao banco pelo serviço de faturamento.
date
Reservado para um uso específico (Brasil).
Data da captura no banco apresentada no formato ISO 8601 definido pelo W3C.
Exemplo : 2016-07-16T00:00:00Z. As horas, os minutos e segundos terão o valor zero para este
atributo.
Tabela 129 : Objeto settlementRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 140 / 237
Formato
string
n2
dateTime
ans..40
Resposta
A resposta à operação capturePayment é feita pela plataforma de pagamento após a captura de um
pagamento.
É constituída de um HEADER e de um BODY de tipo capturePaymentResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem capturePaymentResponse é a seguinte:
Nome
Tipo
capturePaymentResult
capturePaymentResult
A estrutura da mensagem capturePaymentResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso (não confundir com o status da transação).
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
Tabela 130 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 141 / 237
n..2
string
6.10. Obter o detalhes de uma transação de pagamento
'getPaymentDetails'
A operação getPaymentDetails permite realizar uma solicitação de resultado de um pagamento para saber
quais são os diferentes atributos dele.
Solicitação para enviar
A solicitação getPaymentDetails é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação getPaymentDetails toma na entrada um objeto do tipo getPaymentDetails.
O tipo getPaymentDetails é composto de um só objeto.
Objeto
Formato
queryRequest
queryRequest
Requisito
O objeto queryRequest permite consultar uma transação para saber quais são os diferentes atributos dela.
O atributo a ser valorizado é o seguinte:
queryRequest
Atributo
Requisito
uuid
Referência única da transação.
Observação: este atributo é utilizado para substituir antigos atributos transactionId,
sequenceNumber e creationDate.
Porém, pode-se continuar a utilizar estes antigos atributos por razões de retro compatibilidade.
Para maiores informações, consultar o capítulo Gerenciar a retro contabilidade.
Tabela 131 : Objeto queryRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 142 / 237
Formato
string
Resposta
A resposta à operação getPaymentDetails é feita pela plataforma de pagamento após uma solicitação de
informação sobre um pagamento.
É constituída de um HEADER e de um BODY de tipo getPaymentDetailsResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem getPaymentDetailsResponse é a seguinte:
Nome
Tipo
getPaymentDetailsResult
getPaymentDetailsResult
A estrutura da mensagem getPaymentDetailsResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
paymentResponse
paymentResponse
orderResponse
orderResponse
cardResponse
cardResponse
authorizationResponse
authorizationResponse
captureResponse
captureResponse
customerResponse
customerResponse
markResponse
markResponse
threeDSResponse
threeDSResponse
extraResponse
extraResponse
fraudManagementResponse
fraudManagementResponse
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
Observação : os objetos subscriptionResponse et tokenResponse não são informados na resposta.
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso (não confundir com o status da transação).
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
n..2
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
string
transactionStatusLabel
string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 143 / 237
commonResponse
Denominação do status da transação. Os valores possíveis são:
• AUTHORISED
Captura em andamento.
•
•
Formato
A transação foi aceita e será capturada automaticamente no banco na data prevista.
AUTHORISED_TO_VALIDATE
Para ser aprovado.
A transação, criada em validação manual, foi autorizada. O vendedor deve validar manualmente a captura
no banco. A transação pode ser aprovada enquanto a data de captura não for vencida. Se esta data estiver
vencida, então o pagamento tem o status Expirado (status definitivo).
WAITING_AUTHORISATION
Autorização em andamento.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitado de autorização e a captura
no banco serão acionadas automaticamente.
WAITING_AUTHORISATION_TO_VALIDATE
Para ser aprovado e autorizado.
A data de captura solicitada é superior à data de fim de validade da solicitação de autorização.
•
•
•
•
•
Uma autorização de 1 BRL foi efetuada e aceita pelo banco emissor. A solicitação de autorização será
automaticamente efetuada a D-1 antes da data de captura no banco. O pagamento poderá ser aceito ou
recusado. A captura no banco é automática.
REFUSED
Recusada.
A transação foi recusada.
CAPTURED
A transação foi capturada no banco.
CANCELLED
Cancelada.
A transação foi cancelada pelo vendedor.
EXPIRED
Expirada.
A date de captura foi atingida mas o vendedor não validou a transação.
UNDER_VERIFICATION (Específico a PayPal)
Verificação por PayPal em andamento. Este valor significa que Paypal segura a transação por causa de uma
suspeita de fraude. O pagamento esta então na aba Pagamento em andamento.
shopId
Código da loja.
n8
paymentSource
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
• MOTO para um pedido por e-mail ou telefone.
• CC para um call center.
• OTHER para um outro canal de venda.
submissionDate
Data e hora UTC da transação apresentadas em formato W3C (exemplo: 2016-07-16T19:20:00Z).
string
dateTime
ans..40
contractNumber
Número de contrato comerciante utilizado.
string
paymentToken
Alias ou Código da conta comprador (pagamento por código).
string
Tabela 132 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 144 / 237
O objeto paymentResponse detalha as informações sobre a transação.
paymentResponse
Formato
transactionUuid
Referência única da transação gerada pela plataforma de pagamento.
string
ans32
transactionId
Código da transação durante a criação ou a modificação de uma transação de pagamento.
Seu valor é único para o mesmo dia.
• Ou este código será gerado pela plataforma.
• Ou este código será gerado pelo site de e-commerce.
an..6
amount
Valor da transação expresso na menor unidade da moeda .
n..12
currency
Código da moeda da transação (norma ISO 4217).
Exemplo: ;986;840 para o dollar americano.
effectiveAmount
Valor da transação na moeda efetivamente usada para a captura no banco.
effectiveCurrency
Moeda efetivamente usada para a captura no banco.
expectedCaptureDate
Data de captura no banco solicitada.
operationType
Tipo de operação
Os valores possíveis são:
• DEBIT para uma operação de débito.
• CREDIT para uma operação de reembolso.
creationDate
Data e hora do registro da transação apresentado em formato W3C.
n3
n..12
n3
dateTime
ans..40
string
dateTime
ans..40
externalTransactionId
Referência dada por um terceiro: número de transação para Paypal, Boleto, RRN para Prism, etc...
string
liabilityShift
Transferência de responsabilidade.
Os valores possíveis são:
• YES quando o pagamento é garantido.
• NO quando pagamento não é garantido.
string
paymentType
Tipo de pagamento.
Os valores possíveis são:
• SINGLE
string
(enum)
•
Pagamento em uma única parcela.
INSTALLMENT
•
Pagamento em várias parcelas.
SPLIT
•
Pagamento realizado com vários meios de pagamento.
SUBSCRIPTION
•
Pagamento por Token cartão ou vinculado a uma assinatura.
RETRY
Quando um pagamento for recusado, pode-se reiterar a solicitação de pagamento. Para qualquer reiteração,
o pagamento será valorizado com este valor.
Observação:
Durante uma operação createPayment, somente um pagamento em uma única parcela pode ser criada (valor
SINGLE).
Os valores INSTALLMENT, SPLIT, SUBSCRIPTION e RETRY podem ser retornados somente se há pagamentos que
foram criados via o formulário de pagamento.
sequenceNumber
Número de seqüência da transação. Vale "1" para um pagamento unitário.
Toma o valor do número de prestação no caso de um pagamento parcelado criado a partir do formulário de
pagamento.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 145 / 237
n..3
paymentResponse
Formato
paymentError
Complemento de informação em caso de erro técnico. Retorna um código de erro associado ao erro técnico (ver
capítulo Gerenciar os códigos de erros durante um pagamento recusado).
n..3
Tabela 133 : Objeto paymentResponse
O objeto orderResponse detalha o pedido.
orderResponse
Formato
orderId
Referência do pedido.
string
an..64
extInfo
Dados personalizados retornados em função das necessidades.
Exemplo : extInfo.key, extInfo.value
• key : nome do dado (o formato dele é "string").
• value : valor do dado (o formato dele é "string").
extInfo
Tabela 134 : Objeto orderResponse
O objeto cardResponse apresenta em detalhes as informações sobre o meio de pagamento utilizado.
cardResponse
Formato
number
• Número de cartão inválido. Contém os 6 primeiros dígitos do número, seguido por "XXXXXX" e finalmente os
4 últimos números.
• IBAN e BIC usados para o pagamento, separados por um "_" no caso de um pagamento por débito no cartão
de crédito.
string
scheme
Tipo do cartão.
string
brand
Marca do cartão.
string
country
Código país do país emissor do cartão (Código numérico ISO 3166).
productCode
Código produto do cartão.
ISO 3166
ano..3
bankCode
Código banco do banco emissor.
n..5
expiryMonth
Mês de vencimento entre 1 e 12 (ex: 3 para março, 10 para outubro).
n..2
expiryYear
Ano de vencimento com 4 dígitos (ex: 2023).
n4
Tabela 135 : Objeto cardResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 146 / 237
O objeto authorizationResponse permite obter informações sobre a solicitação de autorização.
authorizationResponse
Formato
mode
Especifica de que maneira é realizada a solicitação de autorização. Dois valores possíveis:
• MARK
Uma autorização 1 BRL foi efetuada para verificar a validade do cartão.
•
string
Isso acontece quando a data de captura ultrapassa o período de validade de uma autorização .
FULL
Autorização para o valor total pedido na solicitação.
amount
Valor da autorização na menor unidade da moeda se mode vale FULL.
currency
Código da moeda utilizada durante o pedido de autorização (conforme a norma ISO 4217) se mode vale FULL.
date
Data e hora do pedido de autorização se mode vale FULL.
n..12
n3
dateTime
anos..40
number
Número do pedido de autorização se mode vaut FULL.
n..2
result
Código retorno da solicitação de autorização retornado pelo banco emissor quando for recusado.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de autorização.
n..2
Tabela 136 : Objeto authorizationResponse
O objeto captureResponse permite obter informações a respeito do desconto se a transação for com
desconto.
captureResponse
Formato
date
Data e hora de captura.
dateTime
anos..40
number
Número de captura.
n3
reconciliationStatus
Status de aproximação bancária da transação.
n1
refundAmount
Valor que já foi sujeito a um reembolso na sua menor unidade de moeda.
refundCurrency
Moeda do valor que já foi sujeito a um reembolso (Código moeda ISO 4217: 986 para o BRL; 840 para o dólar
americano..
chargeback
Lítigio, não pago. Os valores possíveis são:
• 0 : transação sujeita a um litígio.
• 1 : transação não sujeita a um litígio.
Tabela 137 : Objeto captureResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 147 / 237
n..12
n3
O objeto customerResponse detalha as numerosas informações sobre o comprador.
A resposta contém as análises de:
• billingDetails
Dados de faturamento do comprador.
• shippingDetails
Dados de entrega do comprador.
• extraDetails
Dados técnicos sobre o comprador.
billingDetails
Atributo
Formato
reference
Referência do comprador.
string n..80
title
Estado civil do comprador.
Exemplos de valores possíveis:
• Senhora, etc..
string n..80
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string (enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string ans..32
email
E-mail do comprador.
Parâmetro obrigatório quando criar um alias.
string
ans..150
streetNumber
Número de rua do comprador.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string an..5
address
Endereço do comprador.
string
ans..255
district
Bairro do comprador.
string
ans..127
zipCode
CEP do comprador.
string ans..64
city
Cidade do comprador.
string
ans..128
state
UF / Região do comprador.
string
ans..128
country
País do comprador conforme à norma ISO 3166.
Exemplos de valores possíveis:
•
DE para a Alemanha
•
IT para a Itália
•
PT para o Portugal
•
GB para o Reino-Unido
•
JA para o Japão
•
RU para a Rússia
•
ES para a Espanha
•
NL para a Holanda
•
SE para a Suécia
•
FR para a França
•
PL para a Polônia
•
CN para a China
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 148 / 237
string - a2
billingDetails
Atributo
Formato
language
Idioma do comprador conforme à norma ISO 639-1.
Exemplos de valores possíveis:
•
de para o alemão
•
it para o italiano
•
pt para o português
•
en para o inglês
•
ja para o japonês
•
ru para o russo
•
es para o espanhol
•
nl para o holandês
•
sv para o sueco
•
fr para o francês
•
pl para o polonês
•
zh para o chinês
•
tr para o turco
cellPhoneNumber
Número de telefone celular
string - a2
string ans..32
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato numérico,
tendo de 11 a 20 dígitos).
string
ans..255
Tabela 138 : Objeto billingDetails
shippingDetails
Atributo
Formato
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string
(enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string
ans..32
streetNumber
Número de rua para a entrega.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string an..5
address
Endereço de entrega.
string
ans..255
address2
Complemento de endereço de entrega.
string
ans..255
district
Bairro de entrega.
string
ans..127
zipCode
CEP de entrega.
string
ans..64
city
Cidade de entrega.
string
ans..128
state
UF / Região de entrega.
string
ans..128
country
País de entrega.
string - a2
deliveryCompanyName
Informações sobre a transportadora.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 149 / 237
string
ans..128
shippingDetails
Atributo
Formato
shippingSpeed
Modo de entrega selecionado.
Os valores possíveis são:
• STANDARD para uma entrega padrão.
• EXPRESS para uma entrega express.
string
(enum)
shippingMethod
Método de entrega utilizado.
Os valores possíveis são:
• RECLAIM_IN_SHOP para retirar a mercadoria na loja.
• RELAY_POINT para a utilização de uma rede de pontos de entrega terceirizada (Kiala, Alveol, etc).
• RECLAIM_IN_STATION para retirar num aeroporto, uma agência de viagens ou outros.
• PACKAGE_DELIVERY_COMPANY para a entrega por transportadora (Colissimo, UPS, etc).
• ETICKET para emitir de uma passagem eletrônica, baixar.
string
(enum)
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato numérico,
tendo de 11 a 20 dígitos).
string
ans..255
Tabela 139 : Objeto shippingDetails
extraDetails
Formato
ipAddress
O endereço IP do comprador.
string
ans40
Tabela 140 : Objeto extraDetails
O objeto markResponse permite obter informações sobre a solicitação de autorização de 1 BRL.
markResponse
Formato
amount
Valor utilizado para verificar a validade do cartão, na menor unidade da moeda .
currency
Código da moeda utilizado para verificar a validade do cartão (conforme a norma ISO 4217).
n..12
n3
date
Data e hora da solicitação de autorização efetuada se o atributo mode do objetoauthorizationResponse vaut
MARK.
dateTime
anos..40
number
Número de autorização da solicitação de autorização se o atributo mode do objeto authorizationResponse vale
MARK.
dateTime
anos..40
result
Resultado da solicitação de autorização efetuada se o atributo mode do objeto authorizationResponse vale MARK.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de autorização.
Tabela 141 : Objet markResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 150 / 237
n..2
O objeto threeDSResponse permite obter informações sobre a autenticação 3D Secure.
Este objeto contém:
• authenticationRequestData
Descreve o resultado da solicitado de alistamento bem como a mensagem codificada que será
transmitida pelo navegador para o ACS.
• authenticationResultData
Descreve os detalhes da autenticação 3D Secure.
authenticationRequestData
Formato
threeDSAcctId
Certificado reenviado pelo Directory Server.
string
threeDSAcsUrl
Url de ACS que deve ser solicitado.
string
threeDSBrand
Rede do cartão.
string
threeDSEncodedPareq
Mensagem PAReq encodificada, pronto para enviar ao ACS.
string
threeDSEnrolled
Status de alistamento do portador.
Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
a1
threeDSRequestId
Número de solicitação, para relembrar na chamada ENABLED_FINALIZE do atributo mode do objeto
threeDSRequest.
Tabela 142 : Objeto authenticationRequestData
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 151 / 237
string
authenticationResultData
Formato
transactionCondition
Status da autenticação 3D Secure. Os valores possíveis são:
• COND_3D_SUCCESS
Sucesso da autenticação.
•
•
•
•
•
string
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure e o portador autenticou-se
corretamente.
COND_3D_FAILURE
Autenticação não sucedida.
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure mas o comprador não conseguiu
autenticar-se (senha errada).
COND_3D_ERROR
Autenticação em falha.
O vendedor participa ao programa 3D secure mas o servidor da plataforma de pagamento encontrou um
problema técnico durante o processo de autenticação (quando verificou a inscrição do cartão ao programa
3D ou durante a autenticação do portador).
COND_3D_NOTENROLLED
Portador não alistado.
O vendedor participa ao programa 3D Secure mas o cartão do portador não é alistado.
COND_3D_ATTEMPT
Tentativa de autenticação.
O vendedor e o portador do cartão estão inscritos ao programa 3D Secure mas o comprador não teve
que autenticar-se (o servidor de controle de acesso do banco que emitiu o cartão somente implementa a
geração de um comprovante de tentativa de autenticação).
COND_SSL
3D Secure não aplicável.
O vendedor não é alistado ao 3D Secure ou o canal de venda não tem cobertura com esta garantia.
enrolled
Status de alistamento do portador. Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
string
status
Status da autenticação do portador. Os valores possíveis são:
• Y para um status autenticado 3 DS.
• N para um erro de autenticação.
• U para uma autenticação impossível.
• A para uma tentativa de autenticação.
a1
eci
Indicador de Comercio Eletrônico.
O valor eci depende do status da autenticação 3DS e do tipo de cartão. Os valores possíveis são:
status =Y
status = A
status = U
status =N
VISA - AMEX
5
6
7
-
MasterCard
02
01
-
-
xid
Número de transação 3DS.
string
string
cavvAlgorithm
Algoritmo de verificação da autenticação do portador (CAVV). Os valores possíveis são:
• 0 para HMAC.
• 1 para CVV.
• 2 para CVV_ATN.
• 3 para Mastercard SPA.
n1
cavv
Certificado do ACS.
string
signValid
Assinatura da autenticação 3DS.
string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 152 / 237
authenticationResultData
Formato
brand
Rede do cartão.
string
Tabela 143 : Objeto authenticationResultData
O objeto fraudManagementResponse permite obter os resultados dos controle de gerenciamento de
riscos.
A resposta contem as análises dos atributos:
• riskControl
Retorna o resultado do controle de gerenciamento de riscos realizado.
• riskAnalysis
Retorna o resultado da análise de gerenciamento de riscos efetuada por um sistema externo (ClearSale,
CyberSource,...).
• riskAssessment
Retorna o resultado da análise de gerenciamento dos riscos avançados realizado pela plataforma de
pagamento.
O atributo riskControl
O formato é o seguinte: name1=result1;name2=result2
Nome
Formato
Descrição
name
string
Nome da regra de gerenciamento de risco.
result
string
Resultado do controle.
Valores possíveis para 'name'
CARD
Cartão presente na lista cinza.
COUNTRY
País do comprador na lista cinza.
IPADDR
Endereço IP do comprador presente na lista cinza.
AMOUNT
Valor máximo autorizado por pedido foi atingido.
BIN
O código BIN do cartão está presente na lista cinza.
ECB
Detecção de um e-carte bleue.
CARD_COMMERCIAL_NATIONAL
Detecção de um cartão comercial nacional.
CARD_COMMERCIAL_FOREIGN
Detecção de um cartão comercial estrangeiro.
CAS
Detecção de um cartão com autorização sistemática.
COUNTRY_CONSISTENCY
O país de origem do cartão, o país do endereço IP do comprador e o país do
comprador não correspondem.
NON_GUARANTEED_PAYMENT
Detecção de um pagamento sem transferência de responsabilidade.
IPADDR_COUNTRY
O pais do endereço IP do comprador está presente na lista cinza.
Tabela 144 : Valores possíveis para 'name'
Valores possíveis para 'result'
OK
Indica que o controle é correto.
KO
Indica que o controle está em falha.
Tabela 145 : Valores possíveis para 'result'
O atributo riskAnalysis
riskAnalysis
Formato
score
Pontuação atribuída para toda transação para avaliar o risco associado a ela.
string
resultCode
string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 153 / 237
riskAnalysis
Código retornado por um analista de risco externo.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno retornados pelo analista de
risco externo.
Formato
status
Status da analise de risco Os valores possíveis são os seguintes:
• P_SEND_OK, "Sent to clearsale and successfully processed"
Sucesso
• P_TO_SEND, "Transaction analysis is scheduled to be sent to risk analyzer"
O envio está programado
• P_TO_SEND_KO, "Problem when tried to send to risk analyzer"
Erro de tratamento
• P_PENDING_AT_ANALYZER, "Analysis result is still being processed by the risk analyzer. We should keep
checking/waiting for the analysis result"
Tratamento em andamento pelo analista
• P_MANUAL, "Analysis should be requested through user request (not automatically)"
A espera de envio manual
• P_SKIPPED, "Analysis request discarded by current transaction status/problem"
Descartado
• P_SEND_EXPIRED, "Analysis request expired"
Vencido
string
requestId
Código da analise para o analista de risco.
string
extraInfo
Sem valorização para ClearSale.
Para CyberSource, este atributo retorna todos os códigos retornados pelo DecisionManager.
• key : nome do dado (o formato dele é "string").
• value : valor do dado (o formato dele é "string").
Exemplo :
• COR-BA=Endereço de faturamento corrigido ou corrigível
• A=Mudanças de endereços excessivos. O comprador mudou de endereço de faturamento pelo menos duas
vezes durante os seis últimos meses.
• etc.
extInfo
Tabela 146 : Atributo riskAnalysis
O atributo riskAssessment
Valores
Descrição
ENABLE_3DS
3D Secure ativado
DISABLE_3DS
3D Secure desativado
MANUAL_VALIDATION
A transação foi criada em validação manual.
A captura do pagamento esta bloqueada temporariamente para permitir ao vendedor
efetuar todas as verificações desejadas.
REFUSE
A transação foi recusada.
RUN_RISK_ANALYSIS
Chamada para um analisador de riscos externos sob a condição que o vendedor possua
um contrato
Consultar a descrição do campo vads_risk_analysis_result para identificar a lista dos
valores possíveis e a descrição deles.
INFORM
Uma alerta apareceu.
O vendedor é avisado quando um risco é identificado.
O vendedor é informado via uma ou mais regras do centro de notificação (URL de
notificação, e-mail ou SMS).
O objeto extraResponse permite obter informações adicionais sobre o pagamento.
extraResponse
Formato
paymentOptionCode
Reservado para um uso específico (Brasil).
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 154 / 237
n..2
extraResponse
Define o código de opção utilizada para caracterizar a quantidade de prestações para uma transação).
paymentOptionOccNumb
Reservado para um uso específico.
Define a quantidade de prestações para uma transação.
Por exemplo, para um pagamento em 3 vezes, este atributo terá o valor 3.
Tabela 147 : Objeto extraResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 155 / 237
Formato
string
6.11. Verificar a autenticação 3D Secure. 'verifyThreeDSEnrollment'
A operação verifyThreeDSEnrollement permite verificar que o cartão do comprador é compatível com a
autenticação 3D Secure.
Solicitação para enviar
A solicitação verifyThreeDSEnrollement é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação verifyThreeDSEnrollement toma na entrada um objeto do tipo verifyThreeDSEnrollement.
O tipo verifyThreeDSEnrollement é constituído dos parâmetros seguintes:
Objeto
Formato
commonRequest
commonRequest
paymentRequest
paymentRequest
cardRequest
cardRequest
techRequest
techRequest
threeDSRequest
threeDSRequest
Requisito
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Possui os atributos seguintes:
commonRequest
Atributo
Requisito
contractNumber
Número de contrato comerciante utilizado.
Formato
string
Tabela 148 : Objeto commonRequest
O objeto paymentRequest permite transmitir informações sobre o pagamento.
Possui os atributos seguintes:
paymentRequest
Atributo
Requisito
amount
Valor da transação expresso na menor unidade da moeda .
Observação:
Não deve ser enviado vazio ou com o valor 0.
Se você não quiser modificar o status da transação, deve informar o atributo amount com o valor
inicial.
Se nenhuma informação for mofdificada, a solicitação sera rejeitada com um código de erro.
currency
Código da moeda da transação (norma ISO 4217).
Exemplo: ;986;840 para o dollar americano.
Tabela 149 : Objeto paymentRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 156 / 237
Formato
n..12
n3
O objeto cardRequest permite transmitir informações sobre o cartão de pagamento.
Duas possibilidades:
• Verificação sem alias (código)
Possui os atributos seguintes:
cardRequest
Atributo
Requisito
number
Número do cartão.
Formato
string
expiryMonth
Mês de vencimento do cartão, entre 1 e 12.
n..2
expiryYear
Mês de vencimento do cartão de 4 dígitos
Exemplo : 2016
n4
Tabela 150 : Objeto cardRequest
• Verificação com alias (código)
Possui o atributo seguinte:
cardRequest
Atributo
Requisito
paymentToken
Código único (alias) associado a um meio de pagamento.
• Ou este código foi gerado pela plataforma.
• Ou este código foi gerado pelo site de e-commerce.
Formato
string
ans..64
Tabela 151 : Objeto cardRequest
O objeto techRequest permite transmitir informações técnicas a respeito do navegador do comprador.
Este objeto deve obriagatoriamente ser enviado na solicitação.
No entanto, os atributos dele são facultativos.
techRequest
Atributo
Requisitado Formato
browserUserAgent
Header « User-Agent » do navegador do comprador (HTTP/1.1 - RFC. 2616).
string
browserAccept
Header « Accept » do navegador do comprado (HTTP/1.1 - RFC. 2616).
string
Tabela 152 : Objeto techRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 157 / 237
O objeto threeDSRequest permite transmitir informações sobre o 3D Secure.
Na operação verifyThreeDSEnrollment, threeDSRequest é específico à Índia.
Na Índia, umas informações adicionais são requeridas para realizar a autentificação (exemplo: número de
telefone do comprador).
Para isso, um atributo deve ser enviado:
threeDSRequest
Atributo
Formato
mpiExtension
Dados adicionais após à verificação realizada pelo MPI do vendedor.
Composto de um subobjeto extensionData de tipo extInfo.
Exemplo: extensionData.key, extensionData.value
• key: nome do dado (o formato dele "string").
• value : valor do dado (o formato dele é "string").
Exemplo:
<threeDSRequest>
<mpiExtension>
<extensionData>
<key>extensionType</key>
<value>npc356</value>
</extensionData>
<extensionData>
<key>phoneid</key>
<value>91000000000</value>
</extensionData>
</mpiExtension>
</threeDSRequest>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 158 / 237
extensionData
Resposta
A resposta à operação verifyThreeDSEnrollement é feita pela plataforma de pagamento após verificar se
o cartão do comprador está alistado ao 3D Secure.
É constituída de um HEADER e de um BODY de tipo verifyThreeDSEnrollementResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem verifyThreeDSEnrollementResponse é a seguinte:
Nome
Tipo
verifyThreeDSEnrollementResult
verifyThreeDSEnrollementResult
A estrutura da mensagem verifyThreeDSEnrollementResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
threeDSResponse
threeDSResponse
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
O objeto commonResponse permite obter informações gerais sobre uma operação.
Os atributos que contém um valor na resposta são os seguintes:
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
n..2
string
Tabela 153 : Objeto commonResponse
Os atributos shopId, paymentSource, submissionDate, contractNumber e paymentToken não são
informados nesta operação.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 159 / 237
O objeto threeDSResponse permite obter informações sobre a autenticação 3D Secure.
• authenticationRequestData
Décrit le résultat de la demande d’enrôlement ainsi que le message encodé qui sera transmis par le
navigateur de l'acheteur à l’ACS.
authenticationRequestData
Formato
threeDSAcctId
Certificado reenviado pelo Directory Server.
string
threeDSAcsUrl
Url de ACS que deve ser solicitado.
string
threeDSBrand
Rede do cartão.
string
threeDSEncodedPareq
Mensagem PAReq encodificada, pronto para enviar ao ACS.
string
threeDSEnrolled
Status de alistamento do portador.
Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
a1
threeDSRequestId
Número de solicitação, para relembrar na chamada ENABLED_FINALIZE do atributo mode do objeto
threeDSRequest.
Tabela 154 : Objeto authenticationRequestData
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 160 / 237
string
6.12. Verificar o status da autenticação 3D
Secure.'checkThreeDSAuthentication'
A operação checkThreeDSAuthentication permite verificar o status da autenticação 3D Secure.
Solicitação para enviar
A solicitação checkThreeDSAuthentication é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação checkThreeDSAuthentication
checkThreeDSAuthentication.
toma
na
entrada
um
objeto
do
tipo
O tipo checkThreeDSAuthentication é constituído dos parâmetros seguintes:
Objeto
Formato
commonRequest
commonRequest
threeDSRequest
threeDSRequest
Requisito
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Possui os atributos seguintes:
commonRequest
Atributo
Requisito
contractNumber
Número de contrato comerciante utilizado.
Formato
string
Tabela 155 : Objeto commonRequest
O objeto threeDSRequest permite transmitir informações sobre o 3D Secure.
Dois atributos devem obrigatoriamente ser enviados:
threeDSRequest
Atributo
Requisito
Formato
requestId
Deve conter o valor retornado no atributothreeDSRequestId do objeto
authenticationRequestData na operação verifyThreeDSEnrollment.
string
pares
Mensagem PaRes (Payer Authentication Response) reenviada pelo ACS.
string
Tabela 156 : Objeto threeDSRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 161 / 237
Resposta
A resposta à operação checkThreeDSAuthentication é feita pela plataforma de pagamento após verificar
o status de autenticação 3D Secure.
É constituída de um HEADER e de um BODY de tipo checkThreeDSAuthenticationResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem checkThreeDSAuthenticationResponse é a seguinte:
Nome
Tipo
checkThreeDSAuthenticationResult
checkThreeDSAuthenticationResult
A estrutura da mensagem checkThreeDSAuthenticationResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
threeDSResponse
threeDSResponse
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso (não confundir com o status da transação).
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
Tabela 157 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 162 / 237
n..2
string
O objeto threeDSResponse permite obter informações sobre a autenticação 3D Secure.
• authenticationResultData
Descreve os detalhes da autenticação 3D Secure.
authenticationResultData
Formato
enrolled
Status de alistamento do portador. Os valores possíveis são:
• Y para um status alistado.
• N para um status não alistado.
• U para um status desconhecido.
string
status
Status da autenticação do portador. Os valores possíveis são:
• Y para um status autenticado 3 DS.
• N para um erro de autenticação.
• U para uma autenticação impossível.
• A para uma tentativa de autenticação.
a1
eci
Indicador de Comercio Eletrônico.
O valor eci depende do status da autenticação 3DS e do tipo de cartão. Os valores possíveis são:
status =Y
status = A
status = U
status =N
VISA - AMEX
5
6
7
-
MasterCard
02
01
-
-
xid
Número de transação 3DS.
string
string
cavvAlgorithm
Algoritmo de verificação da autenticação do portador (CAVV). Os valores possíveis são:
• 0 para HMAC.
• 1 para CVV.
• 2 para CVV_ATN.
• 3 para Mastercard SPA.
n1
cavv
Certificado do ACS.
string
signValid
Assinatura da autenticação 3DS.
string
brand
Rede do cartão.
string
Tabela 158 : Objeto authenticationResultData
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 163 / 237
7. Efetuar operações específicas aos pagamento por código
A opção pagamento por código permite realizar uma certa quantidade de operações tais como:
Operação
Nome da operação web service a ser usada
Criar um alias (código)
createToken
Criar um Token Cartão (identificador) a partir de uma
transação
createTokenFromTransaction
Realizar pagamentos recorrentes (assinaturas)
createSubscription
Modificar um alias (código)
updateToken
Modificar uma assinatura
updateSubscription
Recuperar os detalhes de um alias (código)
getTokenDetails
Resgatar o detalhe de uma assinatura
getSubscriptionDetails
Rescindir um alias (código)
cancelToken
Cancelar uma assinatura
cancelSubscription
Reativar um alias (código)
reactivateToken
Tabela 159 : Operações disponíveis com a opção pagamento por código
Exemplos de codificação são apresentados em anexo a este documento.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 164 / 237
7.1. Criar um alias (código) 'createToken'
A operação createToken permite ao site de e-commerce oferecer para seus compradores a opção de
associar um alias (código) com um ou mais números de cartão bancário, com a finalidade de facilitar
pagamentos posteriores.
Esta opção permite:
• Pagamentos rápidos e seguros (pagamento em um clic).
• Efetuar pagamentos periódicos ou assinatura.
Compartilhamento de códigos
Pode-se compartilhar códigos (Token Cartão) entre diversas entidades jurídicas.
Os códigos compartilhados entre diversas entidades jurídicas devem ser únicos e devem obrigatoriamente
ser gerados pela plataforma de pagamento (ou seja o atributo paymentToken do objeto cardRequest não
deve ser informado).
No entanto, esta funcionalidade é submetida a condições particulares. Favor entrar em contato com a sua
plataforma de pagamento para conhecê-las.
Solicitação para enviar
A solicitação createToken é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação createToken toma na entrada um objeto do tipo createToken.
O tipo createToken é constituído dos parâmetros seguintes:
Objeto
Formato
commonRequest
commonRequest
cardRequest
cardRequest
customerRequest
customerRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 165 / 237
Requisito
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Possui os atributos seguintes:
commonRequest
Atributo
Requisito
paymentSource
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
Parâmetro utilizado por padrão se nenhum valor estiver informado ou se for diferente dos
valores possíveis.
• MOTO para um pedido por correio ou telefone.
• CC para um call center.
• OTHER para um outro canal de venda.
Somente o valor EC permite criar uma transação com 3D Secure.
Os outros valores somente devem ser utilizados para a venda à distancia, pela qual o 3D Secure não
é aplicável.
submissionDate
Data e hora UTC da transação apresentadas no formato ISO 8601 definido pelo W3C.
Exemplo: 2016-07-16T19:20:00Z
Se o valor deste atributo é distante demais da hora atual, a solicitação será rejeitada (código de
erro 13).
Formato
string
dateTime
ans..40
contractNumber
Número de contrato comerciante utilizado.
Se este campo é informado, tomar cuidado em utilizar o contrato certo em relação à rede do
cartão.
Por exemplo, um contrato CB não pode ser utilizado para uma transação AMEX.
string
comment
Comentário livre.
string
Tabela 160 : Objeto CommonRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 166 / 237
O objeto cardRequest permite transmitir informações sobre o cartão de pagamento.
Para criar um alias, diferentes atributos são requisitados:
cardRequest
Atributo
Requisito
Formato
number
Número do cartão.
string
scheme
Tipos de cartões.
Os valores possíveis são: AMEX, CB, MASTERCARD, VISA, VISA_ELECTRON, MAESTRO, ECARTEBLEUE o JCB.
string
expiryMonth
Mês de vencimento do cartão, entre 1 e 12.
n..2
expiryYear
Mês de vencimento do cartão de 4 dígitos
Exemplo : 2016
n4
cardSecurityCode
CVV de 3 números (ou 4 para Amex:
Este campo é obrigatório quando o cartão possui um código criptograma visual. Se o CVV não é
transmitido, o banco emissor recusará o pagamento.
No entanto, este campo é facultativo quando a origem da transação for valorizada com MOTO.
cardHolderBirthday
Data de nascimento do portador no formato YYYY-MM-DD.
Este campo é obrigatório para os meios de pagamento COFINOGA et CDGP, salvo se uma
autenticação 3D Secure for realizada.
paymentToken
Código único (alias) associado a um meio de pagamento.
• Ou este código será gerado pela plataforma.
Neste caso, este parâmetro não deve ser informado.
• Ou este código será gerado pelo site de e-commerce.
Neste caso, este parâmetro deve ser informado com o valor do código desejado. Cuidado,
cabe ao site de e-commerce garantir o caráter único dos códigos de usuários. Toda solicitação
de registro contendo um código de usuário já existente será recusada e será exibido uma
mensagem de erro.
string
Requerido
em função dateTime
do tipo de
ans..64
pagamento
string
ans..64
Tabela 161 : Objeto cardRequest
O objeto customerRequest permite transmitir informações a respeito da entrega, do faturamento e dos
dados técnicos sobre o comprador
Este objeto deve obriagatoriamente ser enviado na solicitação.
É constituído dos sub objetos seguintes:
Sub objeto
Formato
billingDetails
Dados de faturamento do comprador.
billingDetailsRequest
shippingDetails
Dados de entrega do comprador.
shippingDetailsRequest
extraDetails
Dados técnicos sobre o comprador.
extraDetailsRequest
Tabela 162 : Sub objetos de customerRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 167 / 237
Requisito
billingDetails possui os atributos seguintes:
billingDetails
Atributo
Requisito
Formato
reference
Referência do comprador.
string
n..80
title
Estado civil do comprador.
Exemplos de valores possíveis:
• Senhora, etc..
string
n..80
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string
(enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string
ans..32
email
E-mail do comprador.
Parâmetro obrigatório quando criar um alias.
para a criação de um
alias
streetNumber
Número de rua do comprador.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string
ans..150
string
an..5
address
Endereço do comprador.
string
ans..255
district
Bairro do comprador.
string
ans..127
zipCode
CEP do comprador.
string
ans..64
city
Cidade do comprador.
string
ans..128
state
UF / Região do comprador.
string
ans..128
country
País do comprador conforme à norma ISO 3166.
Exemplos de valores possíveis:
•
DE para a Alemanha
•
IT para a Itália
•
PT para o Portugal
•
GB para o Reino-Unido
•
JA para o Japão
•
RU para a Rússia
•
ES para a Espanha
•
NL para a Holanda
•
SE para a Suécia
•
FR para a França
•
PL para a Polônia
•
CN para a China
string - a2
language
Idioma do comprador conforme à norma ISO 639-1.
Exemplos de valores possíveis:
•
de para o alemão
•
it para o italiano
•
pt para o português
•
en para o inglês
•
ja para o japonês
•
ru para o russo
•
es para o espanhol
•
nl para o holandês
•
sv para o sueco
•
fr para o francês
•
pl para o polonês
•
zh para o chinês
•
tr para o turco
cellPhoneNumber
Número de telefone celular
string - a2
string
ans..32
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 168 / 237
billingDetails
Atributo
Requisito
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ
(formato numérico, tendo de 11 a 20 dígitos).
Formato
string
ans..255
Tabela 163 : Objeto billingDetails
shippingDetails possui os atributos seguintes:
shippingDetails
Atributo
Requisito
Formato
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string
(enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string
ans..32
streetNumber
Número de rua para a entrega.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string
an..5
address
Endereço de entrega.
string
ans..255
address2
Complemento de endereço de entrega.
string
ans..255
district
Bairro de entrega.
string
ans..127
zipCode
CEP de entrega.
string
ans..64
city
Cidade de entrega.
string
ans..128
state
UF / Região de entrega.
string
ans..128
country
País de entrega.
string - a2
deliveryCompanyName
Informações sobre a transportadora.
string
ans..128
shippingSpeed
Modo de entrega selecionado.
Os valores possíveis são:
• STANDARD para uma entrega padrão.
• EXPRESS para uma entrega express.
string
(enum)
shippingMethod
Método de entrega utilizado.
Os valores possíveis são:
• RECLAIM_IN_SHOP para retirar a mercadoria na loja.
• RELAY_POINT para a utilização de uma rede de pontos de entrega terceirizada (Kiala, Alveol,
etc).
• RECLAIM_IN_STATION para retirar num aeroporto, uma agência de viagens ou outros.
• PACKAGE_DELIVERY_COMPANY para a entrega por transportadora (Colissimo, UPS, etc).
• ETICKET para emitir de uma passagem eletrônica, baixar.
string
(enum)
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 169 / 237
shippingDetails
Atributo
Requisito
Formato
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato
numérico, tendo de 11 a 20 dígitos).
string
ans..255
Tabela 164 : Objeto shippingDetails
extraDetails possui os atributos seguintes:
extraDetails
Atributo
Requisito
Formato
ipAddress
O endereço IP do comprador.
string
ans40
fingerPrintId
Identificador único de sessão.
Específico ao Brasil e ao analisador de fraude ClearSale.
Codificado a 128 octetos, pode conter maiúsculas ou minúsculas, números ou hífen ([A-Z] [a-z], 0-9,
_, -).
string
ans128
Tabela 165 : Objeto extraDetails
Exemplo de solicitação para ser enviada:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:v5="http://
v5.ws.vads.lyra.com/">
<soap:Header xmlns:soapHeader="http://v5.ws.vads.lyra.com/Header">
<soapHeader:shopId>12345678</soapHeader:shopId>
<soapHeader:requestId>78c944ce-511b-4e5a-b9cb-312e79666ed8</soapHeader:requestId>
<soapHeader:timestamp>2015-04-01T12:24:56Z</soapHeader:timestamp>
<soapHeader:mode>TEST</soapHeader:mode>
<soapHeader:authToken>/a36O9j1fU765pBBPEmTmjtjawL08dNVmYd0zVevHtA=</soapHeader:authToken>
</soap:Header>
<soap:Body>
<v5:createToken>
<commonRequest>
<submissionDate>2015-04-01T12:24:56Z</submissionDate>
</commonRequest>
<cardRequest>
<number>4970100000000003</number>
<scheme>VISA</scheme>
<expiryMonth>12</expiryMonth>
<expiryYear>2018</expiryYear>
<cardSecurityCode>123</cardSecurityCode>
</cardRequest>
<customerRequest>
<billingDetails>
<title>Mr</title>
<type>PRIVATE</type>
<firstName>Jean</firstName>
<lastName>Dupont</lastName>
<phoneNumber>123456789</phoneNumber>
<email>[email protected]</email>
<streetNumber>15</streetNumber>
<address>test address</address>
<district>district</district>
<zipCode>31000</zipCode>
<city>TOULOUSE</city>
<state>state</state>
<country>France</country>
<cellPhoneNumber>0612345678</cellPhoneNumber>
<legalName>Jean Dupont</legalName>
</billingDetails>
<shippingDetails>
<type>PRIVATE</type>
<firstName>Jean</firstName>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 170 / 237
<lastName>Dupont</lastName>
<phoneNumber>123456789</phoneNumber>
<streetNumber>1234</streetNumber>
<address>street</street>
<address2>street2</street2>
<district>district</district>
<zipCode>1234</zipCode>
<city>City</city>
<state>State</state>
<country>France</country>
<deliveryCompanyName>DELIVERYCOMP</deliveryCompanyName>
<shippingSpeed>STANDARD</shippingSpeed>
<shippingMethod>PACKAGE_DELIVERY_COMPANY</shippingMethod>
<legalName>Jean Dupont</legalName>
</shippingDetails>
</customerRequest>
</v5:createToken>
</soap:Body>
</soap:Envelope>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 171 / 237
Resposta
A resposta a operação createToken é feita pela plataforma de pagamento durante a criação de um alias
(Código conta comprador) para efetuar pagamentos em um clic (pagamento por código).
É constituída de um HEADER e de um BODY de tipo createTokenResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem createTokenResponse é a seguinte:
Nome
Tipo
createTokenResult
createTokenResult
A estrutura da mensagem createTokenResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
authorizationResponsese a solicitação de autorização for
recusada pelo banco.
authorizationResponse
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
Observação:
Os objetos paymentResponse, orderResponse,cardResponse,captureResponse, customerResponse,
markResponse, threeDSResponse, extraResponse,subscriptionResponse, shoppingCartResponse e
fraudManagementResponse não são informados na resposta.
Observação:
Para obter os detalhes sobre o meio de pagamento utilizado, faça a operação getTokenDetails. O objeto
cardResponse é retornado na resposta.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 172 / 237
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
n..2
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
string
paymentToken
Alias ou Código da conta comprador (pagamento por código).
string
Tabela 166 : Objeto commonResponse
O objeto authorizationResponse permite obter informações sobre a solicitação de autorização.
Somente um atributo é retornado na resposta:
authorizationResponse
Formato
result
Código retorno da solicitação de autorização retornado pelo banco emissor quando for recusado.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de
autorização.
n2
Tabela 167 : Objeto authorizationResponse
Exemplo de resposta:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">78c944ce-511b-4e5a-b9cb-312e79666ed8</
requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T12:24:56Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/Header/">padDTG41Q1UEh560px
+dwKl3bgtjkkv6d2c4ahoQPJs=</authToken>
</env:Header>
<soap:Body>
<ns2:createTokenResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createTokenResult>
<requestId>78c944ce-511b-4e5a-b9cb-312e79666ed8</requestId>
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
<paymentToken>cb059d56f8564674bc139a373a8daebb</paymentToken>
</commonResponse>
<authorizationResponse/>
</createTokenResult>
</ns2:createTokenResponse>
</soap:Body>
</soap:Envelope>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 173 / 237
7.2. Criar um Token Cartão (código) a partir de uma transação
'createTokenFromTransaction'
A operação createTokenFromTransaction permite a um site de e-commerce criar um Token Cartão
(código) a partir de uma transação existente.
Para reduzir pagamentos pendentes, antes de criar o Token Cartão, a validade do meio de pagamento
utilizado para a transação de origem é verificada a partir dos dados da última transação realizada com este
mesmo meio de pagamento.
Assim, pode-se que a partir de uma transação de pagamento válida, a operação
createTokenFromTransaction não seja realizada com sucesso, devido a uma transação inválida mais
recente.
Solicitação para enviar
A solicitação createTokenFromTransaction é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação createTokenFromTransaction
createTokenFromTransaction.
toma
na
entrada
um
objeto
do
tipo
O tipo createTokenFromTransaction é constituído dos parâmetros seguintes:
Objeto
Formato
commonRequest
commonRequest
queryRequest
queryRequest
Requisito
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Possui os atributos seguintes:
commonRequest
Atributo
Requisito
paymentSource
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
Parâmetro utilizado por padrão se nenhum valor estiver informado ou se for diferente dos
valores possíveis.
• MOTO para um pedido por correio ou telefone.
• CC para um call center.
• OTHER para um outro canal de venda.
Somente o valor EC permite criar uma transação com 3D Secure.
Os outros valores somente devem ser utilizados para a venda à distancia, pela qual o 3D Secure não
é aplicável.
submissionDate
Data e hora UTC da transação apresentadas no formato ISO 8601 definido pelo W3C.
Exemplo: 2016-07-16T19:20:00Z
Se o valor deste atributo é distante demais da hora atual, a solicitação será rejeitada (código de
erro 13).
contractNumber
Número de contrato comerciante utilizado.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 174 / 237
Formato
string
dateTime
ans..40
string
commonRequest
Atributo
Se este campo é informado, tomar cuidado em utilizar o contrato certo em relação à rede do
cartão.
Por exemplo, um contrato CB não pode ser utilizado para uma transação AMEX.
Requisito
Formato
comment
Comentário livre.
string
Tabela 168 : Objeto CommonRequest
O objeto queryRequest permite consultar um alias (código de conta) para saber quais são os diferentes
atributos dele.
Somente o atributo uuid é imprenscidível para esta operação.
queryRequest
Atributo
Requisito
Formato
uuid
Referência única da transação.
string
Tabela 169 : Objeto queryRequest
Resposta
A resposta à operação createTokenFromTransaction é realizada pela plataforma de pagamento quando
criar um Token Cartão (Identificador) durante um pagamento.
É constituída de um HEADER e de um BODY de tipo createTokenFromTransactionResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem createTokenFromTransactionResponse é a seguinte:
Nome
Tipo
createTokenFromTransactionResult
createTokenFromTransactionResult
A estrutura da mensagem createTokenFromTransactionResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
authorizationResponse
authorizationResponse
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
Observação:
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 175 / 237
Os objetos paymentResponse, orderResponse,cardResponse,captureResponse, customerResponse,
markResponse, threeDSResponse, extraResponse,subscriptionResponse, shoppingCartResponse e
fraudManagementResponse não são informados na resposta.
Observação:
Para obter os detalhes sobre o meio de pagamento utilizado, faça a operação getTokenDetails. O objeto
cardResponse é retornado na resposta.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 176 / 237
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
n..2
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
string
paymentToken
Alias ou Código da conta comprador (pagamento por código).
string
Tabela 170 : Objeto commonResponse
O objeto authorizationResponse permite obter informações sobre a solicitação de autorização.
Somente um atributo é retornado na resposta:
authorizationResponse
Formato
result
Código retorno da solicitação de autorização retornado pelo banco emissor quando for recusado.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de
autorização.
n2
Tabela 171 : Objeto authorizationResponse
Para ajudar você a entender a razão da recusa, segue uma lista dos códigos frequentemente retornados:
0 : Ação efetuada com sucesso.
2 : Atributo inválido (o códigoa da loja deve ser o mesmo que o código da transação)
10 : Transação não encontrada
35 : Criação do Token Cartão recusada (a transação utilizada para criar o Token Cartão deve ser realizada
com sucesso e autorizada pelo banco)
56 : PAN não encontrado (PAN da transação de origem não encontrado)
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 177 / 237
7.3. Modificar um alias (código) 'updateToken'
A operação updateToken permite modificar todas as informações salvas sobre o comprador (dados
bancários e pessoais).
Solicitação para enviar
A solicitação updateToken é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação updateToken toma na entrada um objeto do tipo updateToken.
O tipo updateToken é constituído dos parâmetros seguintes:
Modificação do meio de pagamento:
Objeto
Formato
commonRequest
commonRequest
queryRequest
queryRequest
cardRequest
cardRequest
customerRequest
customerRequest
Requisito
Modificação dos dados do comprador:
Objeto
Formato
commonRequest
commonRequest
queryRequest
queryRequest
cardRequest
cardRequest
customerRequest
customerRequest
Requisito
Modificação do meio de pagamento e dos dados do comprador:
Objeto
Formato
commonRequest
commonRequest
queryRequest
queryRequest
cardRequest
cardRequest
customerRequest
customerRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 178 / 237
Requisito
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Possui os atributos facultativos seguintes:
commonRequest
Atributo
Requisito
paymentSource
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
Parâmetro utilizado por padrão se nenhum valor estiver informado ou se for diferente dos valores
possíveis.
• MOTO para um pedido por correio ou telefone.
• CC para um call center.
• OTHER para um outro canal de venda.
Somente o valor EC permite criar uma transação com 3D Secure.
Os outros valores somente devem ser utilizados para a venda à distancia, pela qual o 3D Secure não é
aplicável.
Formato
string
submissionDate
Data e hora UTC da transação apresentadas no formato ISO 8601 definido pelo W3C.
Exemplo: 2016-07-16T19:20:00Z
Se o valor deste atributo é distante demais da hora atual, a solicitação será rejeitada (código de erro
13).
dateTime
ans..40
contractNumber
Número de contrato comerciante utilizado.
Se este campo é informado, tomar cuidado em utilizar o contrato certo em relação à rede do cartão.
Por exemplo, um contrato CB não pode ser utilizado para uma transação AMEX.
string
comment
Comentário livre.
string
Tabela 172 : Objeto CommonRequest
O objeto queryRequest permite consultar um alias (código de conta) para saber quais são os diferentes
atributos dele.
Somente o atributo paymentToken é imprenscidível para esta operação.
queryRequest
Atributo
Requisito
paymentToken
Alias (pagamento por código).
Formato
string
ans..64
Tabela 173 : Objeto queryRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 179 / 237
O objeto cardRequest permite transmitir informações sobre o cartão de pagamento.
Dependendo do tipo de pagamento (pagamento por alias ou pagamento com digitação dos dados
bancários), um ou mais atributos são requisitados.
cardRequest
Atributo
Requisito
Formato
number
Número do cartão.
string
scheme
Tipos de cartões.
Os valores possíveis são: AMEX, CB, MASTERCARD, VISA, VISA_ELECTRON, MAESTRO, ECARTEBLEUE o JCB.
string
expiryMonth
Mês de vencimento do cartão, entre 1 e 12.
n..2
expiryYear
Mês de vencimento do cartão de 4 dígitos
Exemplo : 2016
n4
cardSecurityCode
CVV de 3 números (ou 4 para Amex:
Este campo é obrigatório quando o cartão possui um código criptograma visual. Se o CVV não é
transmitido, o banco emissor recusará o pagamento.
No entanto, este campo é facultativo quando a origem da transação for valorizada com MOTO.
cardHolderBirthday
Data de nascimento do portador no formato YYYY-MM-DD.
Este campo é obrigatório para os meios de pagamento COFINOGA et CDGP, salvo se uma
autenticação 3D Secure for realizada.
Tabela 174 : Objeto cardRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 180 / 237
string
Requerido
em função dateTime
do tipo de
ans..64
pagamento.
O objeto customerRequest permite transmitir informações a respeito da entrega, do faturamento e dos
dados técnicos sobre o comprador
Este objeto deve obriagatoriamente ser enviado na solicitação.
É constituído dos sub objetos seguintes:
Sub objeto
Formato
billingDetails
Dados de faturamento do comprador.
billingDetailsRequest
shippingDetails
Dados de entrega do comprador.
shippingDetailsRequest
extraDetails
Dados técnicos sobre o comprador.
extraDetailsRequest
Requisito
Tabela 175 : Sub objetos de customerRequest
billingDetails possui os atributos seguintes:
billingDetails
Atributo
Requisito
Formato
reference
Referência do comprador.
string
n..80
title
Estado civil do comprador.
Exemplos de valores possíveis:
• Senhora, etc..
string
n..80
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string
(enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string
ans..32
email
E-mail do comprador.
Parâmetro obrigatório quando criar um alias.
para a criação de um
alias
streetNumber
Número de rua do comprador.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string
ans..150
string
an..5
address
Endereço do comprador.
string
ans..255
district
Bairro do comprador.
string
ans..127
zipCode
CEP do comprador.
string
ans..64
city
Cidade do comprador.
string
ans..128
state
UF / Região do comprador.
string
ans..128
country
País do comprador conforme à norma ISO 3166.
Exemplos de valores possíveis:
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 181 / 237
string - a2
billingDetails
Atributo
Requisito
•
DE para a Alemanha
•
IT para a Itália
•
PT para o Portugal
•
GB para o Reino-Unido
•
JA para o Japão
•
RU para a Rússia
•
ES para a Espanha
•
NL para a Holanda
•
SE para a Suécia
•
FR para a França
•
PL para a Polônia
•
CN para a China
Formato
language
Idioma do comprador conforme à norma ISO 639-1.
Exemplos de valores possíveis:
•
de para o alemão
•
it para o italiano
•
pt para o português
•
en para o inglês
•
ja para o japonês
•
ru para o russo
•
es para o espanhol
•
nl para o holandês
•
sv para o sueco
•
fr para o francês
•
pl para o polonês
•
zh para o chinês
•
tr para o turco
string - a2
cellPhoneNumber
Número de telefone celular
string
ans..32
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ
(formato numérico, tendo de 11 a 20 dígitos).
string
ans..255
Tabela 176 : Objeto billingDetails
shippingDetails possui os atributos seguintes:
shippingDetails
Atributo
Requisito
Formato
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string
(enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string
ans..32
streetNumber
Número de rua para a entrega.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string
an..5
address
Endereço de entrega.
string
ans..255
address2
Complemento de endereço de entrega.
string
ans..255
district
Bairro de entrega.
string
ans..127
zipCode
CEP de entrega.
string
ans..64
city
Cidade de entrega.
string
ans..128
state
UF / Região de entrega.
string
ans..128
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 182 / 237
shippingDetails
Atributo
Requisito
country
País de entrega.
Formato
string - a2
deliveryCompanyName
Informações sobre a transportadora.
string
ans..128
shippingSpeed
Modo de entrega selecionado.
Os valores possíveis são:
• STANDARD para uma entrega padrão.
• EXPRESS para uma entrega express.
string
(enum)
shippingMethod
Método de entrega utilizado.
Os valores possíveis são:
• RECLAIM_IN_SHOP para retirar a mercadoria na loja.
• RELAY_POINT para a utilização de uma rede de pontos de entrega terceirizada (Kiala, Alveol,
etc).
• RECLAIM_IN_STATION para retirar num aeroporto, uma agência de viagens ou outros.
• PACKAGE_DELIVERY_COMPANY para a entrega por transportadora (Colissimo, UPS, etc).
• ETICKET para emitir de uma passagem eletrônica, baixar.
string
(enum)
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato
numérico, tendo de 11 a 20 dígitos).
string
ans..255
Tabela 177 : Objeto shippingDetails
extraDetails possui os atributos seguintes:
extraDetails
Atributo
Requisito
Formato
ipAddress
O endereço IP do comprador.
string
ans40
fingerPrintId
Identificador único de sessão.
Específico ao Brasil e ao analisador de fraude ClearSale.
Codificado a 128 octetos, pode conter maiúsculas ou minúsculas, números ou hífen ([A-Z] [a-z], 0-9,
_, -).
string
ans128
Tabela 178 : Objeto extraDetails
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 183 / 237
Resposta
A resposta à operação updateToken é feita pela plataforma de pagamento após uma solicitação de
modificação de um alias/código conta comprador.
É constituída de um HEADER e de um BODY de tipo updateTokenResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem updateTokenResponse é a seguinte:
Nome
Tipo
updateTokenResult
updateTokenResult
A estrutura da mensagem updateTokenResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
authorizationResponse se modificações para o meio de
pagamento forem realizadas.
authorizationResponse
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
Observação : os objetos paymentResponse,orderResponse, cardResponse, captureResponse,
customerResponse, markResponse, threeDSResponse,extraResponse, subscriptionResponse e
fraudManagementResponse não são informados na resposta.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 184 / 237
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
n..2
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
string
paymentToken
Alias ou Código da conta comprador (pagamento por código).
string
Tabela 179 : Objeto commonResponse
O objeto authorizationResponse permite obter informações sobre a solicitação de autorização.
authorizationResponse
Formato
mode
Especifica de que maneira é realizada a solicitação de autorização. Dois valores possíveis:
• MARK
Uma autorização 1 BRL foi efetuada para verificar a validade do cartão.
result
Código retorno da solicitação de autorização retornado pelo banco emissor quando for recusado.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de autorização.
Tabela 180 : Objeto authorizationResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 185 / 237
string
n2
7.4. Recuperar os detalhes de um alias (código) 'getTokenDetails'
A operação getTokenDetails permite recuperar certas informações vinculadas ao alias (código).
Solicitação para enviar
A solicitação getTokenDetails é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação getTokenDetails toma na entrada um objeto do tipo getTokenDetails.
O tipo getTokenDetails é composto de um só objeto.
Objeto
Formato
queryRequest
queryRequest
Requisito
O objeto queryRequest permite consultar um alias (código de conta) para saber quais são os diferentes
atributos dele.
Somente o atributo paymentToken é imprenscidível para esta operação.
queryRequest
Atributo
Requisito
paymentToken
Alias (pagamento por código).
Formato
string
ans..64
Tabela 181 : Objeto queryRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 186 / 237
Resposta
A resposta à operação getTokenDetails é feita pela plataforma de pagamento após uma solicitação de
informação sobre um token.
É constituída de um HEADER e de um BODY de tipo getTokenDetailsResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem getTokenDetailsResponse é a seguinte:
Nome
Tipo
getTokenDetailsResult
getTokenDetailsResult
A estrutura da mensagem getTokenDetailsResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
cardResponse
cardResponse
customerResponse
customerResponse
authorizationResponse
authorizationResponse
tokenResponse
tokenResponse
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
Observação : os objetos paymentResponse, orderResponse, captureResponse, markResponse,
subscriptionResponse, extraResponse etfraudManagementResponse não são levados em consideração
na resposta.
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
Tabela 182 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 187 / 237
n..2
string
O objeto cardResponse apresenta em detalhes as informações sobre o meio de pagamento utilizado.
cardResponse
Formato
number
• Número de cartão inválido. Contém os 6 primeiros dígitos do número, seguido por "XXXXXX" e finalmente os
4 últimos números.
• IBAN e BIC usados para o pagamento, separados por um "_" no caso de um pagamento por débito no cartão
de crédito.
string
scheme
Tipo do cartão.
string
brand
Marca do cartão.
string
country
Código país do país emissor do cartão (Código numérico ISO 3166).
productCode
Código produto do cartão.
ISO 3166
ano..3
bankCode
Código banco do banco emissor.
n..5
expiryMonth
Mês de vencimento entre 1 e 12 (ex: 3 para março, 10 para outubro).
n..2
expiryYear
Ano de vencimento com 4 dígitos (ex: 2023).
n4
Tabela 183 : Objeto cardResponse
O objeto authorizationResponse permite obter informações sobre a solicitação de autorização.
authorizationResponse
Formato
date
Data e hora do pedido de autorização se mode vale FULL.
dateTime
anos..40
number
Número do pedido de autorização se mode vaut FULL.
result
Código retorno da solicitação de autorização retornado pelo banco emissor quando for recusado.
Os valores possíveis estão listados no capítulo Gerenciar os códigos de retorno de uma solicitação de autorização.
Tabela 184 : Objeto authorizationResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 188 / 237
ano..6
n..2
O objeto customerResponse detalha as numerosas informações sobre o comprador.
A resposta contém as análises de:
• billingDetails
Dados de faturamento do comprador.
• shippingDetails
Dados de entrega do comprador.
• extraDetails
Dados técnicos sobre o comprador.
billingDetails
Atributo
Formato
reference
Referência do comprador.
string n..80
title
Estado civil do comprador.
Exemplos de valores possíveis:
• Senhora, etc..
string n..80
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string (enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string ans..32
email
E-mail do comprador.
Parâmetro obrigatório quando criar um alias.
string
ans..150
streetNumber
Número de rua do comprador.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string an..5
address
Endereço do comprador.
string
ans..255
district
Bairro do comprador.
string
ans..127
zipCode
CEP do comprador.
string ans..64
city
Cidade do comprador.
string
ans..128
state
UF / Região do comprador.
string
ans..128
country
País do comprador conforme à norma ISO 3166.
Exemplos de valores possíveis:
•
DE para a Alemanha
•
IT para a Itália
•
PT para o Portugal
•
GB para o Reino-Unido
•
JA para o Japão
•
RU para a Rússia
•
ES para a Espanha
•
NL para a Holanda
•
SE para a Suécia
•
FR para a França
•
PL para a Polônia
•
CN para a China
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 189 / 237
string - a2
billingDetails
Atributo
Formato
language
Idioma do comprador conforme à norma ISO 639-1.
Exemplos de valores possíveis:
•
de para o alemão
•
it para o italiano
•
pt para o português
•
en para o inglês
•
ja para o japonês
•
ru para o russo
•
es para o espanhol
•
nl para o holandês
•
sv para o sueco
•
fr para o francês
•
pl para o polonês
•
zh para o chinês
•
tr para o turco
cellPhoneNumber
Número de telefone celular
string - a2
string ans..32
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato numérico,
tendo de 11 a 20 dígitos).
string
ans..255
Tabela 185 : Objeto billingDetails
shippingDetails
Atributo
Formato
type
Tipo de comprador.
Os valores possíveis são:
• PRIVATE para uma pessoa física.
• COMPANY para uma pessoa jurídica.
string
(enum)
firstName
Sobrenome do comprador.
string
ans..128
lastName
Nome do comprador.
string
ans..128
phoneNumber
Número de telefone do comprador.
string
ans..32
streetNumber
Número de rua para a entrega.
Observação: se este atributo está presente na solicitação, não pode ser enviado vazio.
string an..5
address
Endereço de entrega.
string
ans..255
address2
Complemento de endereço de entrega.
string
ans..255
district
Bairro de entrega.
string
ans..127
zipCode
CEP de entrega.
string
ans..64
city
Cidade de entrega.
string
ans..128
state
UF / Região de entrega.
string
ans..128
country
País de entrega.
string - a2
deliveryCompanyName
Informações sobre a transportadora.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 190 / 237
string
ans..128
shippingDetails
Atributo
Formato
shippingSpeed
Modo de entrega selecionado.
Os valores possíveis são:
• STANDARD para uma entrega padrão.
• EXPRESS para uma entrega express.
string
(enum)
shippingMethod
Método de entrega utilizado.
Os valores possíveis são:
• RECLAIM_IN_SHOP para retirar a mercadoria na loja.
• RELAY_POINT para a utilização de uma rede de pontos de entrega terceirizada (Kiala, Alveol, etc).
• RECLAIM_IN_STATION para retirar num aeroporto, uma agência de viagens ou outros.
• PACKAGE_DELIVERY_COMPANY para a entrega por transportadora (Colissimo, UPS, etc).
• ETICKET para emitir de uma passagem eletrônica, baixar.
string
(enum)
legalName
Razão social da empresa.
string
ans..128
identityCode
Permite identificar de maneira única cada cidadão dentro de um país.
Por exemplo, ClearSale no Brasil exige que este campo seja valorizado com o CPF/CNPJ (formato numérico,
tendo de 11 a 20 dígitos).
string
ans..255
Tabela 186 : Objeto shippingDetails
extraDetails
Formato
ipAddress
O endereço IP do comprador.
string
ans40
Tabela 187 : Objeto extraDetails
O objeto tokenResponse permite obter informações sobre a data de criação e/ou de rescisão de um Token
Cartão.
tokenResponse
Formato
creationDate
Data de criação do Token Cartão.
dateTime
ans..40
cancellationDate
Data de rescisão do Token Cartão.
dateTime
ans..40
Tabela 188 : Objeto tokenResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 191 / 237
7.5. Rescindir um Token Cartão (código) 'cancelToken'
A operação cancelToken permite desativar/rescindir um Token Cartão (código) que permite efetuar
pagamentos.
Observação:
Um Token Cartão rescindido / desativado após esta operação rescinde todas as assinaturas vinculadas a
este Token Cartão.
Solicitação para enviar
A solicitação cancelToken é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação cancelToken toma na entrada um objeto do tipo cancelToken.
O tipo cancelToken é constituído dos parâmetros seguintes:
Objeto
Formato
commonRequest
commonRequest
queryRequest
queryRequest
Requisito
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Somente o atributo submissionDate pode ser valorizado, se for preciso. Este atributo é facultativo.
commonRequest
Atributo
Requisito
submissionDate
Data e hora UTC da rescisão apresentadas no formato ISO 8601 definido pelo W3C.
Exemplo: 2016-07-16T19:20:00Z
Se o valor deste atributo é distante demais da hora atual, a solicitação será rejeitada (código de
erro 13).
Formato
dateTime
ans..40
Tabela 189 : Objeto commonRequest
Os atributos paymentSource,contractNumber ecomment não são hoje levados em consideração para esta
operação.
O objeto queryRequest permite consultar um alias (código de conta) para saber quais são os diferentes
atributos dele.
Somente o atributo paymentToken é imprenscidível para esta operação.
queryRequest
Atributo
Requisito
paymentToken
Alias (pagamento por código).
Formato
string
ans..64
Tabela 190 : Objeto queryRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 192 / 237
Resposta
A resposta à operação cancelToken é feita pela plataforma de pagamento após uma solicitação de
desativação de um código (token en inglês) que permite efetuar pagamentos.
É constituída de um HEADER e de um BODY de tipo cancelTokenResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem cancelTokenResponse é a seguinte:
Nome
Tipo
cancelTokenResult
cancelTokenResult
A estrutura da mensagem cancelTokenResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
Tabela 191 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 193 / 237
n..2
string
7.6. Reativar um alias (código) 'reactivateToken'
A operação reactivateToken permite reativar um alias (código).
Solicitação para enviar
A solicitação reactivateToken é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação reactivateToken toma na entrada um objeto do tipo reactivateToken.
O tipo reactivateToken É composto do seguinte objeto:
Objeto
Formato
queryRequest
queryRequest
Requisito
O objeto queryRequest permite consultar um alias (código de conta) para saber quais são os diferentes
atributos dele.
Somente o atributo paymentToken é imprenscidível para esta operação.
queryRequest
Atributo
Requisito
paymentToken
Alias (pagamento por código).
Formato
string
ans..64
Tabela 192 : Objeto queryRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 194 / 237
Resposta
A resposta à operação reactivateToken é feita pela plataforma de pagamento após uma reativação de um
código/alias (token en inglês).
É constituída de um HEADER e de um BODY de tipo reactivateTokenResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem reactivateTokenResponse é a seguinte:
Nome
Tipo
reactivateTokenResult
reactivateTokenResult
A estrutura da mensagem reactivateTokenResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
Tabela 193 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 195 / 237
n..2
string
7.7. Realizar pagamentos recorrentes (assinaturas) 'createSubscription'
A operação createSubscription permite realizar pagamentos recorrentes (assinaturas).
É preciso utilizar um alias já existente e válido.
Este alias pode ser criado via:
• a operação createToken,
ou
• pelo formulário (ver Guia de Implementação do formulário de pagamento).
Quando a operação createSubscription for criada, a plataforma de pagamento processa automaticamente
os pagamentos agendados para serem realizados. Para ser notificado sobre o resultado de um pagamento
agendado, o vendedor deve configurar a regra URL de notificação para a criação de um pagamento
recorrente pelo seu Back Office (ver capítulo Configurar as notificações do Guia de Implementação do
formulário de pagamento...).
Erros frequentes durante a criação de pagamentos recorrentes:
• O alias (código) fornecido não existe, foi cancelado ou suspenso.
• A data de efeito (atributo effectDate do objeto subscriptionRequest) venceu.
Um código de erro será enviado.
Solicitação para enviar
A solicitação createSubscription é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação createSubscription toma na entrada um objeto do tipo createSubscription.
O tipo createSubscription é constituído dos parâmetros seguintes:
Objeto
Formato
commonRequest
commonRequest
orderRequest
orderRequest
subscriptionRequest
subscriptionRequest
cardRequest
cardRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 196 / 237
Requisito
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Possui os atributos seguintes:
commonRequest
Atributo
Requisito
paymentSource
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
Parâmetro utilizado por padrão se nenhum valor estiver informado ou se for diferente dos
valores possíveis.
• MOTO para um pedido por correio ou telefone.
• CC para um call center.
• OTHER para um outro canal de venda.
Somente o valor EC permite criar uma transação com 3D Secure.
Os outros valores somente devem ser utilizados para a venda à distancia, pela qual o 3D Secure não
é aplicável.
Formato
string
submissionDate
Data e hora UTC da transação apresentadas no formato ISO 8601 definido pelo W3C.
Exemplo: 2016-07-16T19:20:00Z
Se o valor deste atributo é distante demais da hora atual, a solicitação será rejeitada (código de
erro 13).
dateTime
ans..40
contractNumber
Número de contrato comerciante utilizado.
Se este campo é informado, tomar cuidado em utilizar o contrato certo em relação à rede do
cartão.
Por exemplo, um contrato CB não pode ser utilizado para uma transação AMEX.
string
comment
Comentário livre.
string
Tabela 194 : Objeto CommonRequest
O objeto orderRequest permite transmitir informações vinculadas ao pedido.
É composto do atributo seguinte:
orderRequest
Atributo
Requisito
orderId
Referência do pedido.
Formato
string
an..64
Tabela 195 : Objeto orderRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 197 / 237
O objeto subscriptionRequest permite transmitir informações sobre a assinatura.
Possui os atributos seguintes:
subscriptionRequest
Atributo
Requisito
effectDate
Data de vigência no formato W3C.
Exemplo : 2016-07-16T19:20Z
A data não pode ser vencida.
Formato
dateTime
ans..40
amount
Valor da assinatura na sua menor unidade monetária.
currency
Código da moeda (Código moeda ISO 4217: 986 para o BRL).
initialAmount
Valor das parcelas da assinatura (na sua menor unidade monetária) para a ou as primeiras parcelas
se estas últimas são diferentes do valor da assinatura amount.
initialAmountNumber
Quantidades de parcelas para as quais é preciso aplicar o valor initialAmount.
Este atributo se torna obrigatório se initialAmount é valorizado.
rrule
Descrição da regra da assinatura.
O valor esperado neste atributo é um string de dígitos conforme à especificação iCalendar, ou
Internet Calendar, apresentado na RFC5545 (ver http://tools.ietf.org/html/rfc5545).
Por razões técnicas. não é possível definir períodos de assinatura inferiores a um dia.
As palavras chaves SECONDLY" / "MINUTELY" / "HOURLY não são levados em conta.
Exemplos:
• Para definir parcelas de pagamento que ocorrem o último dia de cada mês, durante 12 meses, a
regra se escreve:
RRULE:FREQ=MONTHLY;BYMONTHDAY=28,29,30,31;BYSETPOS=-1;COUNT=12
Esta regra significa que se o mês corrente não contém um dia 31, então o motor levará em
conta o dia 30. Se o dia 30 não existe, então ele levará em conta o dia 29, e assim por diante até
o dia 28.
Outra versão desta regra é: RRULE:FREQ=MONTHLY;COUNT=5;BYMONTHDAY=-1
•
Para definir parcelas de pagamento que ocorrem o dia 10 de cada mês,
durante 12 meses, a regra de assinatura se escreve da seguinte forma:
RRULE:FREQ=MONTHLY;COUNT=12;BYMONTHDAY=10
•
Para definir parcelas de pagamento que ocorrem todo trimestre, até o 31/12/2016:
RRULE:FREQ=YEARLY;BYMONTHDAY=1;BYMONTH=1,4,7,10;UNTIL=20161231
As parcelas ocorrerão todo dia 1° de janeiro, abril, julho e outubro. A quantidade total de
parcelas depende da data de início da assinatura.
Para maiores detalhes e exemplos, você pode consultar o site http://
recurrance.sourceforge.net/.
subscriptionId
Código da assinatura.
n..12
n3
n..12
int
string
string
description
Descrição da assinatura.
string
Tabela 196 : Objeto subscriptionRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 198 / 237
O objeto cardRequest permite transmitir informações sobre o cartão de pagamento.
Somente o atributo paymentToken deve ser valorizado.
cardRequest
Atributo
Requisito
paymentToken
Código único (alias) associado a um meio de pagamento.
• Ou este código foi gerado pela plataforma.
• Ou este código foi gerado pelo site de e-commerce.
para o pagamento por
código
Formato
string ans..64
Tabela 197 : Objeto cardRequest
Exemplo de solicitação para ser enviada
A solicitação abaixo é um exemplo de assinatura com código.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:v5="http://
v5.ws.vads.lyra.com/">
<soap:Header xmlns:soapHeader="http://v5.ws.vads.lyra.com/Header">
<soapHeader:shopId>12345678</soapHeader:shopId>
<soapHeader:requestId>4e977101-9551-4dd8-9296-a4fdad0b5fe4</soapHeader:requestId>
<soapHeader:timestamp>2015-04-01T12:28:49Z</soapHeader:timestamp>
<soapHeader:mode>TEST</soapHeader:mode>
<soapHeader:authToken>rk/ufZhrnsq2yrJMhehRWu9UQ9jbU9RSt2MsP0czeIA=</soapHeader:authToken>
</soap:Header>
<soap:Body>
<v5:createSubscription>
<commonRequest>
<paymentSource>EC</paymentSource>
<submissionDate>2015-04-01T12:28:49Z</submissionDate>
</commonRequest>
<orderRequest>
<orderId>TEST-ORDER</orderId>
</orderRequest>
<subscriptionRequest>
<subscriptionId>TEST-SUBSCRIPTION-01</subscriptionId>
<effectDate>2015-04-01T12:28:49Z</effectDate>
<amount>10</amount>
<currency>978</currency>
<initialAmount>10</initialAmount>
<initialAmountNumber>100</initialAmountNumber>
<rrule>RRULE:FREQ=MONTHLY;COUNT=10;BYMONTHDAY=10</rrule>
</subscriptionRequest>
<cardRequest>
<paymentToken>cb059d56f8564674bc139a373a8daebb</paymentToken>
</cardRequest>
</v5:createSubscription>
</soap:Body>
</soap:Envelope>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 199 / 237
Resposta
A resposta à operação createSubscription é feita pela plataforma de pagamento após uma solicitação de
criação de uma assinatura.
É constituída de um HEADER e de um BODY de tipo createSubscriptionResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem createSubscriptionResponse é a seguinte:
Nome
Tipo
createSubscriptionResult
createSubscriptionResult
A estrutura da mensagem createSubscriptionResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
subscriptionResponse
subscriptionResponse
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
Observação : os objetos paymentResponse,orderResponse, cardResponse, captureResponse,
authorizationResponse, customerResponse,markResponse,threeDSResponse, extraResponse e
fraudManagementResponse não são levados em consideração na resposta.
O objeto commonResponse permite obter informações gerais sobre uma operação.
Os atributos que contém um valor na resposta são os seguintes:
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
n..2
string
Tabela 198 : Objeto commonResponse
Os atributos shopId, paymentSource, submissionDate, contractNumber e paymentToken não são
informados nesta operação.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 200 / 237
O objeto subscriptionResponse detalha todas as informações que constituem uma assinatura. Nesta
operação, somente o atributo subscriptionId é retornado se este último foi enviado na solicitação.
subscriptionResponse
Formato
subscriptionId
Código da assinatura.
string
Tabela 199 : Objeto subscriptionResponse
Exemplo de resposta:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">4e977101-9551-4dd8-9296a4fdad0b5fe4</requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T12:28:49Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/
Header/">cOS5ykWUf7lerOaIrAmkfmNFD7ZbqvEWHiqUEmlngUU=</authToken>
</env:Header>
<soap:Body>
<ns2:createSubscriptionResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createSubscriptionResult>
<requestId>4e977101-9551-4dd8-9296-a4fdad0b5fe4</requestId>
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
</commonResponse>
<authorizationResponse/>
</createSubscriptionResult>
</ns2:createSubscriptionResponse>
</soap:Body>
</soap:Envelope>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 201 / 237
7.8. Modificar uma assinatura 'updateSubscription'
A operação updateSubscription permite modificar:
• Os dados sobre o comprador.
• Os pagamentos: um valor, uma moeda, uma data de vencimento, um status, etc.
Esta operação não pode ser pedida se a data de vigência for atingida.
Solicitação para enviar
A solicitação updateSubscription é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação updateSubscription toma na entrada um objeto do tipo updateSubscription.
O tipo updateSubscription é constituído dos parâmetros seguintes:
Objeto
Formato
commonRequest
commonRequest
queryRequest
queryRequest
subscriptionRequest
subscriptionRequest
paymentRequest
paymentRequest
Requisito
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Diversos atributos, facultativos, podem ser especificados na solicitação.
commonRequest
Atributo
Requisito
Formato
paymentSource
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
Parâmetro utilizado por padrão se nenhum valor estiver informado ou se for diferente dos
valores possíveis.
• MOTO para um pedido por correio ou telefone.
• CC para um call center.
• OTHER para um outro canal de venda.
Somente o valor EC permite criar uma transação com 3D Secure.
Os outros valores somente devem ser utilizados para a venda à distancia, pela qual o 3D Secure não
é aplicável.
string
contractNumber
Número de contrato comerciante utilizado.
Se este campo é informado, tomar cuidado em utilizar o contrato certo em relação à rede do
cartão.
Por exemplo, um contrato CB não pode ser utilizado para uma transação AMEX.
string
Tabela 200 : Objeto commonRequest
O atributo comment não é levado em consideração para esta operação, nos dias de hoje.
O objeto queryRequest permite consultar uma transação para saber quais são os diferentes atributos dela.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 202 / 237
Possui os atributos seguintes:
queryRequest
Atributo
Requisito
paymentToken
Alias (pagamento por código).
Formato
string
ans..64
subscriptionId
Código da assinatura.
string
Tabela 201 : Objeto queryRequest
O objeto subscriptionRequest permite transmitir informações sobre a assinatura.
Possui os atributos seguintes:
subscriptionRequest
Atributo
Requisito
effectDate
Data de vigência no formato W3C.
Exemplo : 2016-07-16T19:20Z
A data não pode ser vencida.
Formato
dateTime
ans..40
amount
Valor da assinatura na sua menor unidade monetária.
currency
Código da moeda (Código moeda ISO 4217: 986 para o BRL).
initialAmount
Valor das parcelas da assinatura (na sua menor unidade monetária) para a ou as primeiras parcelas
se estas últimas são diferentes do valor da assinatura amount.
initialAmountNumber
Quantidades de parcelas para as quais é preciso aplicar o valor initialAmount.
Este atributo se torna obrigatório se initialAmount é valorizado.
rrule
Descrição da regra da assinatura.
O valor esperado neste atributo é um string de dígitos conforme à especificação iCalendar, ou
Internet Calendar, apresentado na RFC5545 (ver http://tools.ietf.org/html/rfc5545).
Por razões técnicas. não é possível definir períodos de assinatura inferiores a um dia.
As palavras chaves SECONDLY" / "MINUTELY" / "HOURLY não são levados em conta.
Exemplos:
• Para definir parcelas de pagamento que ocorrem o último dia de cada mês, durante 12 meses, a
regra se escreve:
RRULE:FREQ=MONTHLY;BYMONTHDAY=28,29,30,31;BYSETPOS=-1;COUNT=12
Esta regra significa que se o mês corrente não contém um dia 31, então o motor levará em
conta o dia 30. Se o dia 30 não existe, então ele levará em conta o dia 29, e assim por diante até
o dia 28.
Outra versão desta regra é: RRULE:FREQ=MONTHLY;COUNT=5;BYMONTHDAY=-1
•
Para definir parcelas de pagamento que ocorrem o dia 10 de cada mês,
durante 12 meses, a regra de assinatura se escreve da seguinte forma:
RRULE:FREQ=MONTHLY;COUNT=12;BYMONTHDAY=10
•
Para definir parcelas de pagamento que ocorrem todo trimestre, até o 31/12/2016:
RRULE:FREQ=YEARLY;BYMONTHDAY=1;BYMONTH=1,4,7,10;UNTIL=20161231
As parcelas ocorrerão todo dia 1° de janeiro, abril, julho e outubro. A quantidade total de
parcelas depende da data de início da assinatura.
Para maiores detalhes e exemplos, você pode consultar o site http://
recurrance.sourceforge.net/.
subscriptionId
Código da assinatura.
n..12
n3
n..12
int
string
string
description
Descrição da assinatura.
string
Tabela 202 : Objeto subscriptionRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 203 / 237
O objeto paymentRequest permite transmitir informações sobre o pagamento.
Pode ser valorizado com o atributo seguinte:
paymentRequest
Atributo
Requisito
manualValidation
Permite validar manualmente uma transação enquanto a data de entrega desejada não for vencida.
Para isso, este atributo deve ser valorizado a 1 (validação manual).
Com o valor 0, a validação será automática.
Tabela 203 : Objeto paymentRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 204 / 237
Formato
n..12
Resposta
A resposta à operação updateSubscription é feita pela plataforma de pagamento após uma solicitação de
modificação de uma assinatura.
É constituída de um HEADER e de um BODY de tipo updateSubscriptionResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem updateSubscriptionResponse é a seguinte:
Nome
Tipo
updateSubscriptionResult
updateSubscriptionResult
A estrutura da mensagem updateSubscriptionResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
Observação : los objetos paymentResponse,orderResponse, cardResponse, authorizationResponse,
captureResponse,
customerResponse,markResponse,threeDSResponse,
extraResponse,
subscriptionResponse e fraudManagementResponse não são levados em consideração na resposta.
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
n..2
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
string
paymentToken
Alias ou Código da conta comprador (pagamento por código).
string
Tabela 204 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 205 / 237
7.9. Recuperar os detalhes de uma assinatura 'getSubscriptionDetails'
A operação getSubscriptionDetails permite procurar uma assinatura para saber quais são os diferentes
atributos dela.
Solicitação para enviar
A solicitação getSubscriptionDetails é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação getSubscriptionDetails toma na entrada um objeto do tipo getSubscriptionDetails.
O tipo getSubscriptionDetails É composto do seguinte objeto:
Objeto
Formato
queryRequest
queryRequest
Requisito
O objeto queryRequest permite consultar uma transação para saber quais são os diferentes atributos dela.
Possui os atributos seguintes:
queryRequest
Atributo
paymentToken
Alias (pagamento por código).
Requisito
Formato
string
ans..64
subscriptionId
Código da assinatura.
string
Tabela 205 : Objeto queryRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 206 / 237
Resposta
A resposta à operação getSubscriptionDetails é feita pela plataforma de pagamento após uma solicitação
de informação sobre uma assinatura..
É constituída de um HEADER e de um BODY de tipo getSubscriptionDetailsResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem getSubscriptionDetailsResponse é a seguinte:
Nome
Tipo
getSubscriptionDetailsResult
getSubscriptionDetailsResult
A estrutura da mensagem getSubscriptionDetailsResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
orderResponse
orderResponse
subscriptionResponse
subscriptionResponse
Os dados retornados na resposta dependem dos objetos e dos atributos enviados na solicitação.
No entanto, seja qual for a operação, o atributo responseCode do objeto CommonResponse deve ser
analisado previamente:
• O valor 0 indica que a operação foi realizada com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último indica a
origem do erro.
Observação : os objetos paymentResponse,cardResponse,authorizationResponse, captureResponse,
customerResponse, markResponse, extraResponse,fraudManagementResponse et tokenResponse não
são levados em consideração na resposta.
O objeto commonResponse permite obter informações gerais sobre uma operação.
Os atributos que contém um valor na resposta são os seguintes:
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a origem
do erro.
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
shopId
Código da loja.
n..2
string
n8
paymentSource
Origem da transação Os valores possíveis são:
• EC para o comércio eletrônico.
• MOTO para um pedido por e-mail ou telefone.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 207 / 237
string
(enum)
commonResponse
• CC para um call center.
• OTHER para um outro canal de venda.
Formato
submissionDate
Data e hora UTC da transação apresentadas em formato W3C (exemplo: 2016-07-16T19:20:00Z).
dateTime
ans..40
contractNumber
Número de contrato comerciante utilizado.
string
paymentToken
Alias ou Código da conta comprador (pagamento por código).
string
Tabela 206 : Objeto commonResponse
O atributo transactionStatusLabel, não é informado nesta operação.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 208 / 237
O objeto orderResponse detalha o pedido.
orderResponse
Formato
orderId
Referência do pedido.
string
an..64
extInfo
Dados personalizados retornados em função das necessidades.
Exemplo : extInfo.key, extInfo.value
• key : nome do dado (o formato dele é "string").
• value : valor do dado (o formato dele é "string").
extInfo
Tabela 207 : Objeto orderResponse
O objeto subscriptionResponse detalha todas as informações que constituem uma assinatura.
subscriptionResponse
Formato
subscriptionId
Código da assinatura.
string
effectDate
Data de vigência no formato W3C.
Exemplo : 2016-07-16T19:20Z
A data não pode ser vencida.
dateTime
anos..40
cancelDate
Data de cancelamento de uma prestação de pagamento.
dateTime
anos..40
initialAmountNumber
Número da parcela do valor inicial da assinatura.
Este atributo se torna obrigatório se initialAmount é valorizado.
int
rrule
Descrição da regra da assinatura.
Exemplo:
• RRULE:FREQ=MONTHLY;COUNT=12;BYMONTHDAY=10
Parcelas de pagamento no dia 10 de todo mês, durante 12 meses.
string
description
Descrição da assinatura.
string
pastPaymentsNumber
Quantidade de pagamentos anteriores.
int
totalPaymentsNumber
Quantidade total de pagamentos.
int
Tabela 208 : Objeto subscriptionResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 209 / 237
7.10. Cancelar uma assinatura 'cancelSubscription'
A operação cancelSubscription permite desativar uma assinatura numa data precisa.
Solicitação para enviar
A solicitação cancelSubscription é constituída de um HEADER e de um BODY.
• HEADER
Informe o HEADER para transmitir o valor dos atributos shopId, requestId, timestamp, mode et authToken
(ver capítulo O Cabeçalho).
• BODY
A operação cancelSubscription toma na entrada um objeto do tipo cancelSubscription.
O tipo cancelSubscription é constituído dos parâmetros seguintes:
Objeto
Formato
commonRequest
commonRequest
queryRequest
queryRequest
Requisito
O objeto commonRequest permite transmitir informações gerais sobre uma operação.
Somente o atributo submissionDate pode ser valorizado, se for preciso. Este atributo é facultativo.
commonRequest
Atributo
Requisito
submissionDate
Data e hora UTC da rescisão apresentadas no formato ISO 8601 definido pelo W3C.
Exemplo: 2016-07-16T19:20:00Z
Se o valor deste atributo é distante demais da hora atual, a solicitação será rejeitada (código de
erro 13).
Formato
dateTime
ans..40
Tabela 209 : Objeto commonRequest
Os atributos paymentSource,contractNumber ecomment não são hoje levados em consideração para esta
operação.
O objeto queryRequest permite consultar uma transação para saber quais são os diferentes atributos dela.
Possui os atributos seguintes:
queryRequest
Atributo
paymentToken
Alias (pagamento por código).
Requisito
Formato
string
ans..64
subscriptionId
Código da assinatura.
string
Tabela 210 : Objeto queryRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 210 / 237
Resposta
A resposta à operação cancelSubscription é feita pela plataforma de pagamento após uma solicitação de
desativação de uma assinatura.
É constituída de um HEADER e de um BODY de tipo cancelSubscriptionResponse.
• HEADER
O HEADER é transmitido pela plataforma de pagamento
Conferir o valor da ficha de autenticação (ver capítulo Verificar o cabeçalho SOAP na resposta).
• BODY
A estrutura da mensagem cancelSubscriptionResponse é a seguinte:
Nome
Tipo
cancelSubscriptionResult
cancelSubscriptionResult
A estrutura da mensagem cancelSubscriptionResult é a seguinte:
Objeto
Tipo
commonResponse
commonResponse
O objeto commonResponse permite obter informações gerais sobre uma operação.
commonResponse
Formato
responseCode
Consultar o capítulo Gerenciar os erros aplicativos.
Primeiro atributo para ser analisado seja qual for a operação.
• O valor 0 indica que a operação ocorreu com sucesso.
• Um valor diferente de 0 requer uma análise do atributo responseCodeDetails. Este último menciona a
origem do erro.
responseCodeDetail
Detalhe do erro se o atributo responseCode é diferente de 0.
Consultar o capítulo Gerenciar os erros aplicativos para maiores informações.
Tabela 211 : Objeto commonResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 211 / 237
n..2
string
8. Anexo
Exemplo completos de codificação em PHP são apresentados neste capítulo.
8.1. Exemplos em PHP
Para todos os exemplos em PHP apresentados em anexos, dois arquivos devem ser criados anteriormente
para ser utilizados nas solicitações. São os mesmos para todas as operações.
• Um arquivo "v5.php" para a definição dos objetos:
<?php
class commonRequest {
public $paymentSource; // string
public $submissionDate; // dateTime
public $contractNumber; // string
public $comment; // string
}
class commonResponse {
public $responseCode; // int
public $responseCodeDetail; // string
public $transactionStatusLabel; // string
public $shopId; // string
public $paymentSource; // string
public $submissionDate; // dateTime
public $contractNumber; // string
public $paymentToken; // string
}
class cardRequest {
public $number; // string
public $scheme; // string
public $expiryMonth; // int
public $expiryYear; // int
public $cardSecurityCode; // string
public $cardHolderBirthDay; // dateTime
public $paymentToken; // string
}
class customerRequest {
public $billingDetails; // billingDetailsRequest
public $shippingDetails; // shippingDetailsRequest
public $extraDetails; // extraDetailsRequest
}
class billingDetailsRequest {
public $reference; // string
public $title; // string
public $type; // custStatus
public $firstName; // string
public $lastName; // string
public $phoneNumber; // string
public $email; // string
public $streetNumber; // string
public $address; // string
public $district; // string
public $zipCode; // string
public $city; // string
public $state; // string
public $country; // string
public $language; // string
public $cellPhoneNumber; // string
public $legalName; // string
public $identityCode; // string
}
class shippingDetailsRequest {
public $type; // custStatus
public $firstName; // string
public $lastName; // string
public $phoneNumber; // string
public $streetNumber; // string
public $address; // string
public $address2; // string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 212 / 237
}
public
public
public
public
public
public
public
public
public
public
$district; // string
$zipCode; // string
$city; // string
$state; // string
$country; // string
$deliveryCompanyName; // string
$shippingSpeed; // deliverySpeed
$shippingMethod; // deliveryType
$legalName; // string
$identityCode; // string
class extraDetailsRequest {
public $ipAddress; // string
public $fingerPrintId; // string
}
class shoppintCartRequest {
public $insuranceNumber; // long
public $shippingAmount; // long
public $taxAmount; // long
public $cartItemInfo; // cartItemInfo
}
class cartItemInfo {
public $productLabel; // string
public $productType; // productType
public $productRef; // string
public $productQty ; // int
public $productAmount; // string
public $productVat; // string
}
class paymentRequest {
public $transactionId; // string
public $amount; // long
public $currency; // int
public $expectedCaptureDate; // dateTime
public $manualValidation; // int
public $paymentOptionCode; // string
}
class paymentResponse {
public $transactionId; // string
public $amount; // long
public $currency; // int
public $effectiveAmount; // long
public $effectiveCurrency; // int
public $expectedCaptureDate; // dateTime
public $manualValidation; // int
public $operationType; // int
public $creationDate; // dateTime
public $externalTransactionId; // string
public $liabilityShift; // string
public $sequenceNumber; // int
public $paymentType; // paymentType
public $paymentError; // int
}
class orderResponse {
public $orderId; // string
public $extInfo; // extInfo
}
class extInfo {
public $key; // string
public $value; // string
}
class cardResponse {
public $number; // string
public $scheme; // string
public $brand; // string
public $country; // string
public $productCode; // string
public $bankCode; // string
public $expiryMonth; // int
public $expiryYear; // int
}
class authorizationResponse {
public $mode; // string
public $amount; // long
public $currency; // int
public $date; // dateTime
public $number; // string
public $result; // int
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 213 / 237
}
class captureResponse {
public $date; // dateTime
public $number; // int
public $reconciliationStatus; // int
public $refundAmount; // long
public $refundCurrency; // int
public $chargeback; // boolean
}
class customerResponse {
public $billingDetails; // billingDetailsResponse
public $shippingDetails; // shippingDetailsResponse
public $extraDetails; // extraDetailsResponse
}
class billingDetailsResponse {
public $reference; // string
public $title; // string
public $type; // custStatus
public $firstName; // string
public $lastName; // string
public $phoneNumber; // string
public $email; // string
public $streetNumber; // string
public $address; // string
public $district; // string
public $zipCode; // string
public $city; // string
public $state; // string
public $country; // string
public $language; // string
public $cellPhoneNumber; // string
public $legalName; // string
}
class shippingDetailsResponse {
public $type; // custStatus
public $firstName; // string
public $lastName; // string
public $phoneNumber; // string
public $streetNumber; // string
public $address; // string
public $address2; // string
public $district; // string
public $zipCode; // string
public $city; // string
public $state; // string
public $country; // string
public $deliveryCompanyName; // string
public $shippingSpeed; // deliverySpeed
public $shippingMethod; // deliveryType
public $legalName; // string
}
class extraDetailsResponse {
public $ipAddress; // string
}
class markResponse {
public $amount; // long
public $currency; // int
public $date; // dateTime
public $number; // string
public $result; // int
}
class threeDSResponse {
public $authenticationRequestData; // authenticationRequestData
public $authenticationResultData; // authenticationResultData
}
class authenticationRequestData {
public $threeDSAcctId; // string
public $threeDSAcsUrl; // string
public $threeDSBrand; // string
public $threeDSEncodedPareq; // string
public $threeDSEnrolled; // string
public $threeDSRequestId; // string
}
class authenticationResultData {
public $brand; // string
public $enrolled; // string
public $status; // string
public $eci; // string
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 214 / 237
}
public
public
public
public
public
$xid; // string
$cavv; // string
$cavvAlgorithm; // string
$signValid; // string
$transactionCondition; // string
class extraResponse {
public $paymentOptionCode; // string
public $paymentOptionOccNumber; // int
}
class fraudManagementResponse {
public $riskControl; // riskControl
public $riskAnalysis; // riskAnalysis
public $riskAssessments; // riskAssessments
}
class shoppingCartResponse {
public $cartItemInfo; // cartItemInfo
}
class riskControl {
public $name; // string
public $result; // string
}
class riskAnalysis {
public $score; // string
public $resultCode; // string
public $status; // vadRiskAnalysisProcessingStatus
public $requestId; // string
public $extraInfo; // extInfo
}
class riskAssessments {
public $results; // string
}
class techRequest {
public $browserUserAgent; // string
public $browserAccept; // string
}
class orderRequest {
public $orderId; // string
public $extInfo; // extInfo
}
class createPayment {
public $commonRequest; // commonRequest
public $threeDSRequest; // threeDSRequest
public $paymentRequest; // paymentRequest
public $orderRequest; // orderRequest
public $cardRequest; // cardRequest
public $customerRequest; // customerRequest
public $techRequest; // techRequest
public $shoppingCartRequest; // shoppingCartRequest
}
class threeDSRequest {
public $mode; // threeDSMode
public $requestId; // string
public $pares; // string
public $brand; // string
public $enrolled; // string
public $status; // string
public $eci; // string
public $xid; // string
public $cavv; // string
public $algorithm; // string
}
class createPaymentResponse {
public $createPaymentResult; // createPaymentResult
}
class createPaymentResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 215 / 237
}
public
public
public
public
$extraResponse; // extraResponse
$subscriptionResponse; // subscriptionResponse
$fraudManagementResponse; // fraudManagementResponse
$shoppingCartResponse; // shoppingCartResponse
class cancelToken {
public $commonRequest; // commonRequest
public $queryRequest; // queryRequest
}
class cancelTokenResponse {
public $cancelTokenResult; // cancelTokenResult
}
class cancelTokenResult {
public $commonResponse; // commonResponse
}
class queryRequest {
public $uuid; // string
public $orderId; // string
public $subscriptionId; // string
public $paymentToken; // string
}
class wsResponse {
public $requestId; // string
}
class createToken {
public $commonRequest; // commonRequest
public $cardRequest; // cardRequest
public $customerRequest; // customerRequest
}
class createTokenResponse {
public $createTokenResult; // createTokenResult
}
class createTokenResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
public $extraResponse; // extraResponse
public $subscriptionResponse; // subscriptionResponse
public $fraudManagementResponse; // fraudManagementResponse
public $shoppingCartResponse; // shoppingCartResponse
}
class subscriptionResponse {
public $subscriptionId; // string
public $effectDate; // dateTime
public $cancelDate; // dateTime
public $initialAmount; // long
public $rrule; // string
public $description; // string
public $initialAmountNumber; // int
public $pastPaymentNumber; // int
public $totalPaymentNumber; // int
public $amount; // long
public $currency; // int
}
class getTokenDetails {
public $queryRequest; // queryRequest
}
class getTokenDetailsResponse {
public $getTokenDetailsResult; // getTokenDetailsResult
}
class getTokenDetailsResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 216 / 237
}
public
public
public
public
public
$subscriptionResponse; // subscriptionResponse
$extraResponse; // extraResponse
$fraudManagementResponse; // fraudManagementResponse
$threeDSResponse; // threeDSResponse
$tokenResponse; // tokenResponse
class updateSubscription {
public $commonRequest; // commonRequest
public $queryRequest; // queryRequest
public $subscriptionRequest; // subscriptionRequest
}
class subscriptionRequest {
public $subscriptionId; // string
public $effectDate; // dateTime
public $amount; // long
public $currency; // int
public $initialAmount; // long
public $initialAmountNumber; // int
public $rrule; // string
public $description; // string
}
class updateSubscriptionResponse {
public $updateSubscriptionResult; // updateSubscriptionResult
}
class updateSubscriptionResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
public $extraResponse; // extraResponse
public $subscriptionResponse; // subscriptionResponse
public $fraudManagementResponse; // fraudManagementResponse
}
class capturePayment {
public $settlementRequest; // settlementRequest
}
class settlementRequest {
public $transactionUuids; // string
public $commission; // double
public $date; // dateTime
}
class capturePaymentResponse {
public $capturePaymentResult; // capturePaymentResult
}
class capturePaymentResult {
public $commonResponse; // commonResponse
}
class findPayments {
public $queryRequest; // queryRequest
}
class findPaymentsResponse {
public $findPaymentsResult; // findPaymentsResult
}
class findPaymentsResult {
public $commonResponse; // commonResponse
public $orderResponse; // orderResponse
public $transactionItem; // transactionItem
}
class transactionItem {
public $transactionUuid; // string
public $transactionStatusLabel; // string
public $amount; // long
public $currency; // int
public $expectedCaptureDate; // dateTime
}
class refundPayment {
public $commonRequest; // commonRequest
public $paymentRequest; // paymentRequest
public $queryRequest; // queryRequest
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 217 / 237
}
class refundPaymentResponse {
public $refundPaymentResult; // refundPaymentResult
}
class refundPaymentResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
public $extraResponse; // extraResponse
public $fraudManagementResponse; // fraudManagementResponse
}
class verifyThreeDSEnrollment {
public $commonRequest; // commonRequest
public $paymentRequest; // paymentRequest
public $cardRequest; // cardRequest
public $techRequest; // techRequest
}
class verifyThreeDSEnrollmentResponse {
public $verifyThreeDSEnrollmentResult; // verifyThreeDSEnrollmentResult
}
class verifyThreeDSEnrollmentResult {
public $commonResponse; // commonResponse
public $threeDSResponse; // threeDSResponse
}
class reactivateToken {
public $queryRequest; // queryRequest
}
class reactivateTokenResponse {
public $reactivateTokenResult; // reactivateTokenResult
}
class reactivateTokenResult {
public $commonResponse; // commonResponse
}
class createSubscription {
public $commonRequest; // commonRequest
public $orderRequest; // orderRequest
public $subscriptionRequest; // subscriptionRequest
public $cardRequest; // cardRequest
}
class createSubscriptionResponse {
public $createSubscriptionResult; // createSubscriptionResult
}
class createSubscriptionResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
public $extraResponse; // extraResponse
public $subscriptionResponse; // subscriptionResponse
public $fraudManagementResponse; // fraudManagementResponse
public $shoppingCartResponse; // shoppingCartResponse
}
class cancelSubscription {
public $commonRequest; // commonRequest
public $queryRequest; // queryRequest
}
class cancelSubscriptionResponse {
public $cancelSubscriptionResult; // cancelSubscriptionResult
}
class cancelSubscriptionResult {
public $commonResponse; // commonResponse
}
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 218 / 237
class updatePayment {
public $commonRequest; // commonRequest
public $queryRequest; // queryRequest
public $paymentRequest; // paymentRequest
}
class updatePaymentResponse {
public $updatePaymentResult; // updatePaymentResult
}
class updatePaymentResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
public $extraResponse; // extraResponse
public $subscriptionResponse; // subscriptionResponse
public $fraudManagementResponse; // fraudManagementResponse
}
class validatePayment {
public $commonRequest; // commonRequest
public $queryRequest; // queryRequest
}
class validatePaymentResponse {
public $validatePaymentResult; // validatePaymentResult
}
class validatePaymentResult {
public $commonResponse; // commonResponse
}
class cancelPayment {
public $commonRequest; // commonRequest
public $queryRequest; // queryRequest
}
class cancelPaymentResponse {
public $cancelPaymentResult; // cancelPaymentResult
}
class cancelPaymentResult {
public $commonResponse; // commonResponse
}
class checkThreeDSAuthentication {
public $commonRequest; // commonRequest
public $threeDSRequest; // threeDSRequest
}
class checkThreeDSAuthenticationResponse {
public $checkThreeDSAuthenticationResult; // checkThreeDSAuthenticationResult
}
class checkThreeDSAuthenticationResult {
public $commonResponse; // commonResponse
public $threeDSResponse; // threeDSResponse
}
class getPaymentDetails {
public $queryRequest; // queryRequest
}
class getPaymentDetailsResponse {
public $getPaymentDetailsResult; // getPaymentDetailsResult
}
class getPaymentDetailsResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $subscriptionResponse; // subscriptionResponse
public $extraResponse; // extraResponse
public $fraudManagementResponse; // fraudManagementResponse
public $threeDSResponse; // threeDSResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 219 / 237
}
public $tokenResponse; // tokenResponse
class duplicatePayment {
public $commonRequest; // commonRequest
public $paymentRequest; // paymentRequest
public $orderRequest; // orderRequest
public $queryRequest; // queryRequest
}
class duplicatePaymentResponse {
public $duplicatePaymentResult; // duplicatePaymentResult
}
class duplicatePaymentResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
public $extraResponse; // extraResponse
public $fraudManagementResponse; // fraudManagementResponse
}
class updateToken {
public $commonRequest; // commonRequest
public $queryRequest; // queryRequest
public $cardRequest; // cardRequest
public $customerRequest; // customerRequest
}
class updateTokenResponse {
public $updateTokenResult; // updateTokenResult
}
class updateTokenResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
public $extraResponse; // extraResponse
public $subscriptionResponse; // subscriptionResponse
public $fraudManagementResponse; // fraudManagementResponse
}
class getPaymentUuid {
public $legacyTransactionKeyRequest; // legacyTransactionKeyRequest
}
class legacyTransactionKeyRequest {
public $transactionId; // string
public $sequenceNumber; // int
public $creationDate; // dateTime
}
class getPaymentUuidResponse {
public $legacyTransactionKeyResult; // legacyTransactionKeyResult
}
class legacyTransactionKeyResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
}
class getSubscriptionDetails {
public $queryRequest; // queryRequest
}
class getSubscriptionDetailsResponse {
public $getSubscriptionDetailsResult; // getSubscriptionDetailsResult
}
class getSubscriptionDetailsResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 220 / 237
}
public
public
public
public
public
public
public
public
$captureResponse; // captureResponse
$customerResponse; // customerResponse
$markResponse; // markResponse
$subscriptionResponse; // subscriptionResponse
$extraResponse; // extraResponse
$fraudManagementResponse; // fraudManagementResponse
$threeDSResponse; // threeDSResponse
$tokenResponse; // tokenResponse
class paymentType {
const SINGLE = 'SINGLE';
const INSTALLMENT = 'INSTALLMENT';
const SPLIT = 'SPLIT';
const SUBSCRIPTION = 'SUBSCRIPTION';
const RETRY = 'RETRY';
}
class custStatus {
const _PRIVATE = 'PRIVATE';
const COMPANY = 'COMPANY';
}
class deliverySpeed {
const STANDARD = 'STANDARD';
const EXPRESS = 'EXPRESS';
}
class deliveryType {
const RECLAIM_IN_SHOP = 'RECLAIM_IN_SHOP';
const RELAY_POINT = 'RELAY_POINT';
const RECLAIM_IN_STATION = 'RECLAIM_IN_STATION';
const PACKAGE_DELIVERY_COMPANY = 'PACKAGE_DELIVERY_COMPANY';
const ETICKET = 'ETICKET';
}
class vadRiskAnalysisProcessingStatus {
const P_TO_SEND = 'P_TO_SEND';
const P_SEND_KO = 'P_SEND_KO';
const P_PENDING_AT_ANALYZER = 'P_PENDING_AT_ANALYZER';
const P_SEND_OK = 'P_SEND_OK';
const P_MANUAL = 'P_MANUAL';
const P_SKIPPED = 'P_SKIPPED';
const P_SEND_EXPIRED = 'P_SEND_EXPIRED';
}
class threeDSMode {
const DISABLED = 'DISABLED';
const ENABLED_CREATE = 'ENABLED_CREATE';
const ENABLED_FINALIZE = 'ENABLED_FINALIZE';
const MERCHANT_3DS = 'MERCHANT_3DS';
}
class productType {
const FOOD_AND_GROCERY = 'FOOD_AND_GROCERY';
const AUTOMOTIVE = 'AUTOMOTIVE';
const ENTERTAINMENT = 'ENTERTAINMENT';
const HOME_AND_GARDEN = 'HOME_AND_GARDEN';
const HOME_APPLIANCE = 'HOME_APPLIANCE';
const AUCTION_AND_GROUP_BUYING = 'AUCTION_AND_GROUP_BUYING';
const FLOWERS_AND_GIFTS = 'FLOWERS_AND_GIFTS';
const COMPUTER_AND_SOFTWARE = 'COMPUTER_AND_SOFTWARE';
const HEALTH_AND_BEAUTY = 'HEALTH_AND_BEAUTY';
const SERVICE_FOR_INDIVIDUAL = 'SERVICE_FOR_INDIVIDUAL';
const SERVICE_FOR_BUSINESS = 'SERVICE_FOR_BUSINESS';
const SPORTS = 'SPORTS';
const CLOTHING_AND_ACCESSORIES = 'CLOTHING_AND_ACCESSORIES';
const TRAVEL = 'TRAVEL';
const HOME_AUDIO_PHOTO_VIDEO = 'HOME_AUDIO_PHOTO_VIDEO';
const TELEPHONY = 'TELEPHONY';
}
?>
• Um arquivo "function.php" para as funções :
<?php
function getAuthToken ($requestId , $timestamp, $key)
{
$data = "";
$data = $requestId.$timestamp;
$authToken = hash_hmac("sha256", $data, $key, true);
$authToken = base64_encode ($authToken);
//var_dump($authToken);
return $authToken;
}
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 221 / 237
function gen_uuid() {
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
mt_rand( 0, 0xffff ),
mt_rand( 0, 0x0fff ) | 0x4000,
mt_rand( 0, 0x3fff ) | 0x8000,
mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
);
}
function setHeaders ($shopId, $requestId, $timestamp, $mode, $authToken, $key, $client) {
//Criação dos cabeçalhos shopId, requestId, timestamp, mode et authToken
$ns = 'http://v5.ws.vads.lyra.com/Header/';
$headerShopId = new SOAPHeader ( $ns, 'shopId', $shopId );
$headerRequestId = new SOAPHeader ( $ns, 'requestId', $requestId);
$headerTimestamp = new SOAPHeader ( $ns, 'timestamp', $timestamp );
$headerMode = new SOAPHeader ( $ns, 'mode', $mode );
$authToken = getAuthToken ($requestId, $timestamp, $key);
$headerAuthToken = new SOAPHeader ( $ns, 'authToken', $authToken );
//Acrescentar cabeçalhos no SOAP Header
$headers = array (
$headerShopId,
$headerRequestId,
$headerTimestamp,
$headerMode,
$headerAuthToken
);
$client->__setSoapHeaders ( $headers );
}
function setJsessionId($client){
$cookie=$_SESSION['JSESSIONID'];
$client->__setCookie('JSESSIONID', $cookie);
return $cookie;
}
/**
*
*
* @param $client
* @return string $JSESSIONID
*/
function getJsessionId($client){
//resgate do cabeçalho da resposta
$header=($client->__getLastResponseHeaders());
if(!preg_match("#JSESSIONID=([A-Za-z0-9\._]+)#",$header, $matches)){
return "Nenhum ID de Sessão Retornado." ; //Este caso nunca deverá acontecer;
die;
}
$JSESSIONID = $matches[1];
$_SESSION['JSESSIONID'] = $JSESSIONID;
//print_r($JSESSIONID);
return $JSESSIONID;
}
function formConstructor ($threeDsAcsUrl,$threeDSrequestId,$threeDsEncodedPareq,
$threeDsServerResponseUrl){
$msg= ('
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<title>3DS</title>
<script type="text/javascript">
<!-function submitForm(){
document.redirectForm.submit();
}
-->
</script>
</head>
<body id="lyra" onLoad="setTimeout(\'submitForm()'.'\',500);">
<div id="container">
<div id="paymentSolutionInfo">
<div id="title">&nbsp;</div>
</div>
<hr class="ensureDivHeight"/>
<br/>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 222 / 237
<br/>
<br/>
<br/>
<br/>
<form name="redirectForm" action="'.$threeDsAcsUrl.'" method="POST">
<input type="hidden" name="PaReq" value="'.$threeDsEncodedPareq.'"/>
<input type="hidden" name="TermUrl" value="'.$threeDsServerResponseUrl.'"/>
<input type="hidden" name="MD" value="'.$threeDSrequestId.'"/>
<noscript><input type="submit" name="Go" value="Click to continue"/></noscript>
</form>
<div id="backToBoutiqueBlock"> </div>
<div id="footer"> </div>
</div>
</body>
</html>'
);
echo $msg;
}
?>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 223 / 237
createPayment
Criação de uma transação de pagamento com autenticação 3D Secure
Quatro arquivos são requeridos para criar uma transação de pagamento com autenticação 3D Secure:
• um arquivo para as funções "function.php" (conteúdo disponível no capítulo Anexo).
• um arquivo para a definição dos objetos "v5.php" (conteúdo disponível no capítulo Anexo).
• um arquivo para a operação createPayment:
<?php
include_once 'v5.php'; // Arquivo contendo a definição dos diferentes objetos
include_once 'function.php';// Arquivo contendo todas as funções úteis (geração do uuid,
etc...)
//Inicialização das variáveis
$shopId = "123456789";
$key = "123456789123456";
$mode = "TEST";
$wsdl = "https://secure.payzen.com.br/vads-ws/v5?wsdl";
//Exemplo de inicialização de um cliente SOAP com gerenciamento do SNI
/*
$client = new soapClient($wsdl, $options = array('trace'=>1,
'exceptions'=> 0,
'encoding' => 'UTF-8','soapaction' => '',
'uri' => 'http://v5.ws.vads.lyra.com/',
'cache_wsdl' => WSDL_CACHE_NONE,
//Proxy parameters
'proxy_host' => 'my.proxy.host',
'proxy_port' => 3128,
'stream_context' => stream_context_create (array('ssl' => array(
'SNI_enabled' => true,
'SNI_server_name' => 'secure.payzen.eu')))
));
*/
//Exemplo de inicialização de um cliente SOAP sem proxy
$client = new soapClient($wsdl, $options = array(
'trace'=>1,
'exceptions'=> 0,
'encoding' => 'UTF-8',
'soapaction' => '')
);
//Geração do header
$requestId = gen_uuid ();
$timestamp = gmdate ( "Y-m-d\TH:i:s\Z" );
$authToken = base64_encode(hash_hmac('sha256',$requestId.$timestamp, $key, true));
setHeaders ($shopId, $requestId, $timestamp, $mode, $authToken, $key, $client);
//Geração do body
$commonRequest = new commonRequest;
$commonRequest->paymentSource = 'EC';
$commonRequest->submissionDate = new DateTime('now',new DateTimeZone('UTC'));
$threeDSRequest = new threeDSRequest;
$threeDSRequest->mode = "ENABLED_CREATE";
$paymentRequest = new paymentRequest;
$paymentRequest->amount = "2990";
$paymentRequest->currency = "978";
$paymentRequest->manualValidation = '0';
$orderRequest = new orderRequest;
$orderRequest->orderId = "myOrder";
$cardRequest = new cardRequest;
$cardRequest->number = "4970100000000000";
$cardRequest->scheme = "VISA";
$cardRequest->expiryMonth = "12";
$cardRequest->expiryYear = "2023";
$cardRequest->cardSecurityCode = "123";
$cardRequest->cardHolderBirthDay = "2008-12-31";
$customerRequest = new customerRequest;
$customerRequest->billingDetails = new billingDetailsRequest;
$customerRequest->billingDetails->email="[email protected]";
$customerRequest->extraDetails = new extraDetailsRequest;
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 224 / 237
$techRequest = new techRequest;
//Chamada da operação createPayment
try {
$createPaymentRequest = new createPayment;
$createPaymentRequest->commonRequest = $commonRequest;
$createPaymentRequest->threeDSRequest = $threeDSRequest;
$createPaymentRequest->paymentRequest = $paymentRequest;
$createPaymentRequest->orderRequest = $orderRequest;
$createPaymentRequest->cardRequest = $cardRequest;
$createPaymentRequest->customerRequest = $customerRequest;
$createPaymentRequest->techRequest = $techRequest;
$createPaymentRequest->commonRequest->submissionDate = $createPaymentRequest>commonRequest->submissionDate->format(dateTime::W3C);
$createPaymentResponse= new createPaymentResponse();
$createPaymentResponse = $client->createPayment($createPaymentRequest);
} catch (SoapFault $fault) {
//Gerenciamento das exceções
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault>faultstring})", E_USER_ERROR);
}
/* Exibição dos logs XML para substituir por uma escritura em um arquivo de log.
*
* CUIDADO VOCÊ NÃO DEVE SALVAR OS NÚMEROS DE CARTÃO NOS SEUS LOGS
*/
echo "<hr> [Request Header] <br/>", htmlspecialchars($client->__getLastRequestHeaders()),
"<br/>";
echo "<hr> [Request] <br/>", htmlspecialchars($client->__getLastRequest()), "<br/>";
echo "<hr> [Response Header]<br/>", htmlspecialchars($client->__getLastResponseHeaders()),
"<br/>";
echo "<hr> [Response]<br/>", htmlspecialchars($client->__getLastResponse()), "<br/>";
echo '<hr>';
echo "<hr> [Response SOAP Headers]<br/>";
//Analise da resposta
//Resgate do SOAP Header da resposta para armazenar os cabeçalhos em um quadro (aqui
$responseHeader)
$dom = new DOMDocument;
$dom->loadXML($client->__getLastResponse(), LIBXML_NOWARNING);
$path = new DOMXPath($dom);
$headers = $path->query('//*[local-name()="Header"]/*');
$responseHeader = array();
foreach($headers as $headerItem) {
$responseHeader[$headerItem->nodeName] = $headerItem->nodeValue;
}
//Cálculo da ficha de autenticação da resposta
$authTokenResponse = base64_encode(hash_hmac('sha256',$responseHeader['timestamp'].
$responseHeader['requestId'], $key, true));
if ($authTokenResponse !== $responseHeader['authToken']){
//Erro de cálculo ou tentativa de fraude
echo 'Erro interno encontrado';
}
else{
//Analise da resposta
if ($createPaymentResponse->createPaymentResult->commonResponse->responseCode != "0"){
//process error
}
else{
//Processo finalizado com sucesso
//Teste da presença do du transactionStatusLabel:
if (isset ($createPaymentResponse->createPaymentResult->commonResponse>transactionStatusLabel)){
//O cartão não é alistado ou 3DS Desativado
// O pagamento foi aceito
// O código abaixo deve ser modificado para integrar as atualizações de base de
dados etc..
switch ($createPaymentResponse->createPaymentResult->commonResponse>transactionStatusLabel) {
case "AUTHORISED":
echo "pagamento aceito";
break;
case "WAITING_AUTHORISATION":
echo "pagamento aceito";
break;
case "AUTHORISED_TO_VALIDATE":
echo "pagamento aceito";
break;
case "WAITING_AUTHORISATION_TO_VALIDATE":
echo "pagamento aceito";
break;
// O pagamento foi recusado
default:
echo "pagamento recusado";
break;
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 225 / 237
}
}
else{
// se ausente = a transação não é criada, portanto o cartão não é alistado
// segue então a geração do formulário de redirecionamento 3DS
//Deve-se resgatar o código de sessão para manter a sessão durante a análise da
resposta do acs
$cookie = getJsessionId($client);
// Guardar o código de sessão no campo MD. Este campo será retornado idêntico pelo ACS
$MD=setJsessionId($client)."+".$createPaymentResponse->createPaymentResult>threeDSResponse->authenticationRequestData->threeDSRequestId;
//Inicializar os outros campos necessários ao redirecionamento para o ACS
$threeDsAcsUrl = $createPaymentResponse->createPaymentResult->threeDSResponse>authenticationRequestData->threeDSAcsUrl;
$threeDsEncodedPareq = $createPaymentResponse->createPaymentResult->threeDSResponse>authenticationRequestData->threeDSEncodedPareq;
$threeDsServerResponseUrl = "http://127.0.0.1/webservices/ws-v5/retour3DS.php";
//CUIDADO em modo TESTE, o código de sessão deve ser acrescentado à URL do ACS para
manter a sessão HTTP
$JSESSIONID=setJsessionId($client);
if ($mode == "TEST"){
$threeDsAcsUrl = $threeDsAcsUrl.";jsessionid=".$JSESSIONID;
}
formConstructor ($threeDsAcsUrl,$MD,$threeDsEncodedPareq,$threeDsServerResponseUrl);
}
}
}
?>
• um arquivo para tratar o retorno da autenticação 3D Secure "retour3DS.php"
<?php
include_once 'v5.php'; // Arquivo contendo a definição dos diferentes objetos
include_once 'function.php';// Arquivo contendo todas as funções úteis (geração do uuid,
etc...)
//Inicialização das variáveis
$shopId = "12345678";
$key = "123456789123456";
$mode = "TEST";
$wsdl = "https://secure.payzen.com.br/vads-ws/v5?wsdl";
//Resgate da resposta do ACS
//Encontramos o código de sessão no campo MD para manter a sessão HTTP
if (isset ($_POST['MD']) AND (isset ($_POST['PaRes']))){
list($JSESSIONID, $threeDSRequestId) = explode("+",$_POST['MD']);
//Deletar os espaços e os Enters da mensagemPaRes
$pares = str_replace("\r\n","",$_POST['PaRes'],$count);;
//Exemplo de inicialização de um cliente SOAP com gerenciamento do SNI
/*
$client = new soapClient($wsdl, $options = array('trace'=>1,
'exceptions'=> 0,
'encoding' => 'UTF-8','soapaction' => '',
'uri' => 'http://v5.ws.vads.lyra.com/',
'cache_wsdl' => WSDL_CACHE_NONE,
//Proxy parameters
'proxy_host' => 'my.proxy.host',
'proxy_port' => 3128,
'stream_context' => stream_context_create (array('ssl' => array(
'SNI_enabled' => true,
'SNI_server_name' => 'secure.payzen.eu')))
));
*/
//Exemplo de inicialização de um cliente SOAP sem proxy
$client = new soapClient($wsdl, $options = array(
'trace'=>1,
'exceptions'=> 0,
'encoding' => 'UTF-8',
'soapaction' => '')
);
//Geração do header
$requestId = gen_uuid ();
$timestamp = gmdate ( "Y-m-d\TH:i:s\Z" );
$authToken = base64_encode(hash_hmac('sha256',$requestId.$timestamp, $key, true));
setHeaders ($shopId, $requestId, $timestamp, $mode, $authToken, $key, $client);
//Geração do body
$commonRequest = new commonRequest;
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 226 / 237
$commonRequest->submissionDate = new DateTime('now',new DateTimeZone('UTC'));
$threeDSRequest = new threeDSRequest;
$threeDSRequest->mode = "ENABLED_FINALIZE";
$threeDSRequest->requestId = $threeDSRequestId;
$threeDSRequest->pares = $pares;
$createPaymentRequest = new createPayment;
$createPaymentRequest->commonRequest = $commonRequest;
$createPaymentRequest->threeDSRequest = $threeDSRequest;
$createPaymentRequest->commonRequest->submissionDate = $createPaymentRequest>commonRequest->submissionDate->format(dateTime::W3C);
try {
//Manter a sessão HTTP
$client->__setCookie('JSESSIONID', $JSESSIONID);
//Chamada da operação createPayment
$createPaymentResponse= new createPaymentResponse();
$createPaymentResponse = $client->createPayment($createPaymentRequest);
} catch (SoapFault $fault) {
//gerenciamento das exceções
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault>faultstring})", E_USER_ERROR);
}
/*
* Exibição dos logs XML para substituir por uma escritura em um arquivo de log.
*/
echo "<hr> [Request Header] <br/>", htmlspecialchars($client->__getLastRequestHeaders()),
"<br/>";
echo "<hr> [Request] <br/>", htmlspecialchars($client->__getLastRequest()), "<br/>";
echo "<hr> [Response Header]<br/>", htmlspecialchars($client>__getLastResponseHeaders()), "<br/>";
echo "<hr> [Response]<br/>", htmlspecialchars($client->__getLastResponse()), "<br/>";
echo '<hr>';
//Analise da resposta
//Resgate do SOAP Header da resposta para armazenar os cabeçalhos em um quadro (aqui
$responseHeader)
$dom = new DOMDocument;
$dom->loadXML($client->__getLastResponse(), LIBXML_NOWARNING);
$path = new DOMXPath($dom);
$headers = $path->query('//*[local-name()="Header"]/*');
$responseHeader = array();
foreach($headers as $headerItem) {
$responseHeader[$headerItem->nodeName] = $headerItem->nodeValue;
}
//Cálculo da ficha de autenticação da resposta.
$authTokenResponse = base64_encode(hash_hmac('sha256',$responseHeader['timestamp'].
$responseHeader['requestId'], $key, true));
if ($authTokenResponse !== $responseHeader['authToken']){
//Erro de cálculo ou tentativa de fraude
echo 'Erro interno encontrado';
}
else{
//Análise da resposta
//Verificação do responseCode
if ($createPaymentResponse->createPaymentResult->commonResponse->responseCode != "0"){
//process error
echo 'erro interno';
}
else{
//Processo finalizado com sucesso
//teste da presença do du transactionStatusLabel:
if (isset ($createPaymentResponse->createPaymentResult->commonResponse>transactionStatusLabel)){
// O pagamento foi aceito
// O código abaixo deve ser modificado para integrar as atualizações de base de
dados etc..
switch ($createPaymentResponse->createPaymentResult->commonResponse>transactionStatusLabel) {
case "AUTHORISED":
echo "pagamento aceito";
break;
case "WAITING_AUTHORISATION":
echo "pagamento aceito";
break;
case "AUTHORISED_TO_VALIDATE":
echo "pagamento aceito";
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 227 / 237
break;
case "WAITING_AUTHORISATION_TO_VALIDATE":
echo "pagamento aceito";
break;
// O pagamento foi recusado
default:
echo "pagamento recusado";
break;
}
}
else{
echo 'erro interno';
}
}
}
}
else{
//retorno do 3DS sem parâmetro ou acesso direto à página de retorno 3DS
echo 'error';
}
?>
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 228 / 237
findPayments
Procurar um pagamento
Três arquivos são necessários para procurar um pagamento:
• um arquivo para as funções "function.php" (conteúdo disponível no capítulo Anexo).
• um arquivo para a definição dos objetos "v5.php" (conteúdo disponível no capítulo Anexo).
• um arquivo para a operação findPayments
<?php
include_once 'v5.php'; // Arquivo contendo a definição dos diferentes objetos
include_once 'function.php';// Arquivo contendo todas as funções úteis (geração do uuid,
etc...)
//Inicialização das variáveis
$shopId = "12345678";
$key = "1234567891234567";
$mode = "TEST";
$wsdl = "https://secure.payzen.com.br/vads-ws/v5?wsdl";
//Exemplo de Inicialização de um cliente SOAP com gerenciamento do SNI
/*
$client = new soapClient($wsdl,
$options = array('trace'=>1, 'exceptions'=> 0,
'encoding' => 'UTF-8','soapaction' => '',
'uri' => 'http://v5.ws.vads.lyra.com/',
'cache_wsdl' => WSDL_CACHE_NONE,
//Proxy parameters
'proxy_host' => 'my.proxy.host',
'proxy_port' => 3128,
'stream_context' => stream_context_create (array('ssl' => array(
'SNI_enabled' => true,
'SNI_server_name' => 'secure.payzen.eu')))
*/
));
//Exemplo de Inicialização de um cliente SOAP sem proxy
$client = new soapClient($wsdl, $options = array(
'trace'=>1,
'exceptions'=> 0,
'encoding' => 'UTF-8',
'soapaction' => '')
);
//Geração do header
$requestId = gen_uuid ();
$timestamp = gmdate ( "Y-m-d\TH:i:s\Z" );
$authToken = base64_encode(hash_hmac('sha256',$requestId.$timestamp, $key, true));
setHeaders ($shopId, $requestId, $timestamp, $mode, $authToken, $key, $client);
//Geração do body
$queryRequest = new queryRequest;
$queryRequest->orderId ="myOrder";
try {
$findPaymentsRequest = new findPayments;
$findPaymentsRequest->queryRequest = $queryRequest;
$findPaymentsResponse = $client->findPayments($findPaymentsRequest);
} catch (SoapFault $fault) {
//Gerenciamento das exeções
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault>faultstring})", E_USER_ERROR);
}
/* Exibição dos logs XML para substituir por uma escritura em um arquivo de log.
*
* CUIDADO VOCÊ NÃO DEVE SALVAR OS NÚMEROS DE CARTÃO NOS SEUS LOGS
*/
echo "<hr> [Request Header] <br/>", htmlspecialchars($client->__getLastRequestHeaders()),
"<br/>";
echo "<hr> [Request] <br/>", htmlspecialchars($client->__getLastRequest()), "<br/>";
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 229 / 237
echo "<hr> [Response Header]<br/>", htmlspecialchars($client>__getLastResponseHeaders()), "<br/>";
echo "<hr> [Response]<br/>", htmlspecialchars($client->__getLastResponse()), "<br/>";
echo '<hr>';
echo "<hr> [Response SOAP Headers]<br/>";
//Analise da resposta
//Resgate do SOAP Header da resposta para armazenar os cabeçalhos em um quadro (aqui
$responseHeader)
$dom = new DOMDocument;
$dom->loadXML($client->__getLastResponse(), LIBXML_NOWARNING);
$path = new DOMXPath($dom);
$headers = $path->query('//*[local-name()="Header"]/*');
$responseHeader = array();
foreach($headers as $headerItem) {
$responseHeader[$headerItem->nodeName] = $headerItem->nodeValue;
}
//Cálculo da ficha de autenticação da resposta
$authTokenResponse = base64_encode(hash_hmac('sha256',$responseHeader['timestamp'].
$responseHeader['requestId'], $key, true));
if ($authTokenResponse !== $responseHeader['authToken']){
//Erro de cálculo ou tentativa de fraude
echo 'Erro interno encontrado';
}
else{
//Analise da resposta
if ($findPaymentsResponse->findPaymentsResult->commonResponse->responseCode != "0"){
//process error
}
else{
//Processo finalizado com sucesso
//Teste da presença do du transactionStatusLabel:
if (isset ($findPaymentsResponse->findPaymentsResult->commonResponse>transactionStatusLabel)){
//o cartão não é alistado ou 3DS Desativado
// O pagamento é aceito
switch ($findPaymentsResponse->findPaymentsResult->commonResponse>transactionStatusLabel) {
case "AUTHORISED":
echo "pagamento aceito";
break;
case "WAITING_AUTHORISATION":
echo "pagamento aceito";
break;
case "AUTHORISED_TO_VALIDATE":
echo "pagamento aceito";
break;
case "WAITING_AUTHORISATION_TO_VALIDATE":
echo "pagamento aceito";
break;
// O pagamento foi recusado
default:
echo "pagamento recusado";
break;
}
}
else{
// se ausente = a transação não é criada, portanto o cartão não é alistado
// segue então a geração do formulário de redirecionamento 3DS
//Deve-se resgatar o código de sessão para manter a sessão durante a análise da
resposta do acs
$cookie = getJsessionId($client);
// Guardar o código de sessão no campo MD.
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 230 / 237
createToken
Criação de um Token Cartão
Três arquivos são necessários para criar um Token Cartão:
• um arquivo para as funções "function.php" (conteúdo disponível no capítulo Anexo).
• um arquivo para a definição dos objetos "v5.php" (conteúdo disponível no capítulo Anexo).
• um arquivo para a operação createToken
<?php
include_once 'v5.php'; // Arquivo contendo a definição dos diferentes objetos
include_once 'function.php';// Arquivo contendo todas as funções úteis (geração do uuid,
etc...)
//Inicializações das variáveis
$shopId = "12345678";
$key = "1234567891234567";
$mode = "TEST";
$wsdl = "https://secure.payzen.com.br/vads-ws/v5?wsdl";
//Exemplo de inicialização de um cliente SOAP com gerenciamento do SNI
/*
$client = new soapClient($wsdl,
$options = array('trace'=>1, 'exceptions'=> 0,
'encoding' => 'UTF-8','soapaction' => '',
'uri' => 'http://v5.ws.vads.lyra.com/',
'cache_wsdl' => WSDL_CACHE_NONE,
//Proxy parameters
'proxy_host' => 'my.proxy.host',
'proxy_port' => 3128,
'stream_context' => stream_context_create (array('ssl' => array(
'SNI_enabled' => true,
'SNI_server_name' => 'secure.payzen.eu')))
));
*/
//Exemplo de inicialização de um cliente SOAP sem proxy
$client = new soapClient($wsdl, $options = array(
'trace'=>1,
'exceptions'=> 0,
'encoding' => 'UTF-8',
'soapaction' => '')
);
//Geração do header
$requestId = gen_uuid ();
$timestamp = gmdate ( "Y-m-d\TH:i:s\Z" );
$authToken = base64_encode(hash_hmac('sha256',$requestId.$timestamp, $key, true));
setHeaders ($shopId, $requestId, $timestamp, $mode, $authToken, $key, $client);
//Geração do body
$commonRequest = new commonRequest;
$commonRequest->submissionDate = new DateTime('now',new DateTimeZone('UTC'));
$cardRequest = new cardRequest;
$cardRequest->number = "4970100000000003";
$cardRequest->scheme = "VISA";
$cardRequest->expiryMonth = "12";
$cardRequest->expiryYear = "2023";
$cardRequest->cardSecurityCode = "123";
$customerRequest = new customerRequest;
$customerRequest->billingDetails = new billingDetailsRequest;
$customerRequest->billingDetails->email="[email protected]";
$customerRequest->extraDetails = new extraDetailsRequest;
$customerRequest->extraDetails->sendMail ="1";
$customerRequest->extraDetails->ipAddress ="127.0.0.1";
//Chamada da operação createToken
try {
$createTokenRequest = new createToken;
$createTokenRequest->commonRequest = $commonRequest;
$createTokenRequest->cardRequest = $cardRequest;
$createTokenRequest->customerRequest = $customerRequest;
$createTokenRequest->commonRequest->submissionDate = $createTokenRequest->commonRequest>submissionDate->format(dateTime::W3C);
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 231 / 237
$createTokenResponse = $client->createToken($createTokenRequest);
} catch (SoapFault $fault) {
//Gerenciamento das exceções
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault>faultstring})", E_USER_ERROR);
}
/* Exibição dos logs XML para substituir por uma escritura em um arquivo de log.
*
* CUIDADO VOCÊ NÃO DEVE SALVAR OS NÚMEROS DE CARTÃO NOS SEUS LOGS
*/
echo "<hr> [Request Header] <br/>", htmlspecialchars($client->__getLastRequestHeaders()),
"<br/>";
echo "<hr> [Request] <br/>", htmlspecialchars($client->__getLastRequest()), "<br/>";
echo "<hr> [Response Header]<br/>", htmlspecialchars($client>__getLastResponseHeaders()), "<br/>";
echo "<hr> [Response]<br/>", htmlspecialchars($client->__getLastResponse()), "<br/>";
echo '<hr>';
echo "<hr> [Response SOAP Headers]<br/>";
//Analise da resposta
//Resgate do SOAP Header da resposta para armazenar os cabeçalhos em um quadro (aqui
$responseHeader)
$dom = new DOMDocument;
$dom->loadXML($client->__getLastResponse(), LIBXML_NOWARNING);
$path = new DOMXPath($dom);
$headers = $path->query('//*[local-name()="Header"]/*');
$responseHeader = array();
foreach($headers as $headerItem) {
$responseHeader[$headerItem->nodeName] = $headerItem->nodeValue;
}
//Cálculo da ficha de autenticação da resposta
$authTokenResponse = base64_encode(hash_hmac('sha256',$responseHeader['timestamp'].
$responseHeader['requestId'], $key, true));
if ($authTokenResponse !== $responseHeader['authToken']){
//Erro de cálculo ou tentativa de fraude
echo 'Erro interno encontrado';
}
else{
//Analise da resposta
if ($createTokenResponse->createTokenResult->commonResponse->responseCode != "0"){
//process error
}
else{
//Processo finalizado com sucesso
//Teste da presença do du transactionStatusLabel:
if (isset if (isset ($createTokenResponse->createTokenResult->commonResponse>transactionStatusLabel)){
//O cartão não é alistado ou 3DS Desativado
// O pagamento foi aceito
// O código abaixo deve ser modificado para integrar as atualizações de base de
dados etc..
switch ($createTokenResponse->createTokenResult->commonResponse>transactionStatusLabel) {
case "AUTHORISED":
echo "pagamento aceito";
break;
case "WAITING_AUTHORISATION":
echo "pagamento aceito";
break;
case "AUTHORISED_TO_VALIDATE":
echo "pagamento aceito";
break;
case "WAITING_AUTHORISATION_TO_VALIDATE":
echo "pagamento aceito";
break;
// O pagamento foi recusado
default:
echo "pagamento recusado";
break;
}
}
?>
}
}
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 232 / 237
createSubscription
A operação createSubscription permite realizar pagamentos recorrentes (assinaturas).
É preciso utilizar um alias já existente e válido.
Este alias pode ser criado via:
• a operação createToken,
ou
• pelo formulário (ver Guia de Implementação do formulário de pagamento).
Três arquivos são necessários para cancelar uma assinatura:
• um arquivo para as funções "function.php" (conteúdo disponível no capítulo Anexo).
• um arquivo para a definição dos objetos "v5.php" (conteúdo disponível no capítulo Anexo).
• um arquivo para a operação createSubscription
<?php
include_once 'v5.php'; // Arquivo contendo a definição dos diferentes objetos
include_once 'function.php';// Arquivo contendo todas as funções úteis (geração do uuid,
etc...)
//Inicialização das variáveis
$shopId = "12345678";
$key = "1234567891234567";
$mode = "TEST";
$wsdl = "https://secure.payzen.com.br/vads-ws/v5?wsdl";
//Exemplo de inicialização de um cliente SOAP com gerenciamento do SNI
/*
$client = new soapClient($wsdl,
$options = array('trace'=>1, 'exceptions'=> 0,
'encoding' => 'UTF-8','soapaction' => '',
'uri' => 'http://v5.ws.vads.lyra.com/',
'cache_wsdl' => WSDL_CACHE_NONE,
//Proxy parameters
'proxy_host' => 'my.proxy.host',
'proxy_port' => 3128,
'stream_context' => stream_context_create (array('ssl' => array(
'SNI_enabled' => true,
'SNI_server_name' => 'secure.payzen.eu')))
*/
));
//Exemplo de inicialização de um cliente SOAP sem proxy
$client = new soapClient($wsdl, $options = array(
'trace'=>1,
'exceptions'=> 0,
'encoding' => 'UTF-8',
'soapaction' => '')
);
//Geração do header
$requestId = gen_uuid ();
$timestamp = gmdate ( "Y-m-d\TH:i:s\Z" );
$authToken = base64_encode(hash_hmac('sha256',$requestId.$timestamp, $key, true));
setHeaders ($shopId, $requestId, $timestamp, $mode, $authToken, $key, $client);
//Geração do body
$commonRequest = new commonRequest;
$commonRequest->submissionDate = new DateTime('now',new DateTimeZone('UTC'));
$orderRequest = new orderRequest;
$orderRequest->orderId = "myFirstSubscription";
$subscriptionRequest = new subscriptionRequest;
$subscriptionRequest->effectDate = "2016-07-10T18:00:00Z";
$subscriptionRequest->amount = "30000";
$subscriptionRequest->currency = "978";
$subscriptionRequest->initialAmount = "1000";
$subscriptionRequest->initialAmountNumber = "1";
$subscriptionRequest->rrule = "RRULE:FREQ=MONTHLY;COUNT=12;BYMONTHDAY=10";
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 233 / 237
$cardRequest = new cardRequest;
$cardRequest->paymentToken = "MyToken";
//Chamada da operação createSubscription
try {
$createSubscriptionRequest = new createSubscription;
$createSubscriptionRequest->commonRequest = $commonRequest;
$createSubscriptionRequest->orderRequest = $orderRequest;
$createSubscriptionRequest->cardRequest = $cardRequest;
$createSubscriptionRequest->subscriptionRequest = $subscriptionRequest;
$createSubscriptionRequest->commonRequest->submissionDate = $createSubscriptionRequest>commonRequest->submissionDate->format(dateTime::W3C);
$createSubscriptionResponse = $client->createSubscription($createSubscriptionRequest);
} catch (SoapFault $fault) {
//Gestão das exceções
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault>faultstring})", E_USER_ERROR);
}
/* Exibição dos logs XML para substituir por uma escritura em um arquivo de log.
*
* CUIDADO VOCÊ NÃO DEVE SALVAR OS NÚMEROS DE CARTÃO NOS SEUS LOGS
*/
echo "<hr> [Request Header] <br/>", htmlspecialchars($client->__getLastRequestHeaders()),
"<br/>";
echo "<hr> [Request] <br/>", htmlspecialchars($client->__getLastRequest()), "<br/>";
echo "<hr> [Response Header]<br/>", htmlspecialchars($client>__getLastResponseHeaders()), "<br/>";
echo "<hr> [Response]<br/>", htmlspecialchars($client->__getLastResponse()), "<br/>";
echo '<hr>';
echo "<hr> [Response SOAP Headers]<br/>";
//Analise da resposta
//Resgate do SOAP Header da resposta para armazenar os cabeçalhos em um quadro (aqui
$responseHeader)
$dom = new DOMDocument;
$dom->loadXML($client->__getLastResponse(), LIBXML_NOWARNING);
$path = new DOMXPath($dom);
$headers = $path->query('//*[local-name()="Header"]/*');
$responseHeader = array();
foreach($headers as $headerItem) {
$responseHeader[$headerItem->nodeName] = $headerItem->nodeValue;
}
//Cálculo da ficha de autenticação da resposta
$authTokenResponse = base64_encode(hash_hmac('sha256',$responseHeader['timestamp'].
$responseHeader['requestId'], $key, true));
if ($authTokenResponse !== $responseHeader['authToken']){
//Erro de cálculo ou tentativa de fraude
echo 'Erro interno encontrado';
}
else{
//Analise da resposta
if ($createSubscriptionResponse->createSubscriptionResult->commonResponse>responseCode != "0"){
//process error
}
else{
//Processo finalizado com sucesso
//Teste da presença do du transactionStatusLabel:
if (isset ($createSubscriptionResponse->createSubscriptionResult->commonResponse>transactionStatusLabel)){
//O cartão não é alistado ou 3DS Desativado
// O pagamento foi aceito
// O código abaixo deve ser modificado para integrar as atualizações de base de
dados etc...
switch ($createPaymentResponse->createPaymentResult->commonResponse>transactionStatusLabel) {
case "AUTHORISED":
echo "pagamento aceito";
break;
case "WAITING_AUTHORISATION":
echo "pagamento aceito";
break;
case "AUTHORISED_TO_VALIDATE":
echo "pagamento aceito";
break;
case "WAITING_AUTHORISATION_TO_VALIDATE":
echo "pagamento aceito";
break;
// O pagamento foi recusado
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 234 / 237
}
?>
}
default:
echo "pagamento recusado";
break;
}
}
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 235 / 237
cancelSubscription
Três arquivos são necessários para cancelar uma assinatura:
• um arquivo para as funções "function.php" (conteúdo disponível no capítulo Anexo).
• um arquivo para a definição dos objetos "v5.php" (conteúdo disponível no capítulo Anexo).
• um arquivo para a operação cancelSubscription
<?php
include_once 'v5.php'; // Arquivo contendo a definição dos diferentes objetos
include_once 'function.php';// Arquivo contendo todas as funções úteis (geração do uuid,
etc...)
//Inicialização das variáveis
$shopId = "12345678";
$key = "1234567891234567";
$mode = "TEST";
$wsdl = "https://secure.payzen.com.br/vads-ws/v5?wsdl";
//Exemplo de inicialização de um cliente SOAP sem proxy
$client = new soapClient($wsdl, $options = array(
'trace'=>1,
'exceptions'=> 0,
'encoding' => 'UTF-8',
'soapaction' => '')
);
//Geração do header
$requestId = gen_uuid ();
$timestamp = gmdate ( "Y-m-d\TH:i:s\Z" );
$authToken = base64_encode(hash_hmac('sha256',$requestId.$timestamp, $key, true));
setHeaders ($shopId, $requestId, $timestamp, $mode, $authToken, $key, $client);
//Geração do body
$commonRequest = new commonRequest;
$queryRequest = new queryRequest;
$queryRequest->paymentToken = "c975d6af1d5e478da3570d43494d86d2";
$queryRequest->submissionDate = "2015-08-28T09:21:34+00:00";
$queryRequest->subscriptionId = "20150828i6VFSA";
// Chamada da operação cancelSubscription
try {
$cancelSubscriptionRequest = new cancelSubscription;
$cancelSubscriptionRequest->commonRequest = $commonRequest;
$cancelSubscriptionRequest->queryRequest = $queryRequest;
$cancelSubscriptionResponse = $client->cancelSubscription($cancelSubscriptionRequest);
} catch (SoapFault $fault) {
//Gestão das exceções
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault>faultstring})", E_USER_ERROR);
}
/* Exibição dos logs XML para substituir por uma escritura em um arquivo de log.
*
* CUIDADO VOCÊ NÃO DEVE SALVAR OS NÚMEROS DE CARTÃO NOS SEUS LOGS
*/
echo "<hr> [Request Header] <br/>", htmlspecialchars($client->__getLastRequestHeaders()),
"<br/>";
echo "<hr> [Request] <br/>", htmlspecialchars($client->__getLastRequest()), "<br/>";
echo "<hr> [Response Header]<br/>", htmlspecialchars($client>__getLastResponseHeaders()), "<br/>";
echo "<hr> [Response]<br/>", htmlspecialchars($client->__getLastResponse()), "<br/>";
echo '<hr>';
echo "<hr> [Response SOAP Headers]<br/>";
//Analise da resposta
//Resgate do SOAP Header da resposta para armazenar os cabeçalhos em um quadro (aqui
$responseHeader)
$dom = new DOMDocument;
$dom->loadXML($client->__getLastResponse(), LIBXML_NOWARNING);
$path = new DOMXPath($dom);
$headers = $path->query('//*[local-name()="Header"]/*');
$responseHeader = array();
foreach($headers as $headerItem) {
$responseHeader[$headerItem->nodeName] = $headerItem->nodeValue;
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 236 / 237
}
//Cálculo da ficha de autenticação da resposta
$authTokenResponse = base64_encode(hash_hmac('sha256',$responseHeader['timestamp'].
$responseHeader['requestId'], $key, true));
if ($authTokenResponse !== $responseHeader['authToken']){
//Erro de cálculo ou tentativa de fraude
echo 'Erro interno encontrado';
}
else{
//Analise da resposta
if ($cancelSubscriptionResponse->cancelSubscriptionResult->commonResponse>responseCode != "0"){
//process error
}
else{
//Processo finalizado com sucesso
//Teste da presença do du transactionStatusLabel:
if (isset ($cancelSubscriptionResponse->cancelSubscriptionResult->commonResponse>transactionStatusLabel)){
//O cartão não é alistado ou 3DS Desativado
// O pagamento foi aceito
// O código abaixo deve ser modificado para integrar as atualizações de base de
dados etc...
switch ($cancelSubscriptionResponse->cancelSubscriptionResult->commonResponse>transactionStatusLabel){
case "AUTHORISED":
echo "pagamento aceito";
break;
case "WAITING_AUTHORISATION":
echo "pagamento aceito";
break;
case "AUTHORISED_TO_VALIDATE":
echo "pagamento aceito";
break;
case "WAITING_AUTHORISATION_TO_VALIDATE":
echo "pagamento aceito";
break;
// O pagamento foi recusado
default:
echo "pagamento recusado";
break;
}
}
?>
}
}
Manual de integração via Web services V5 - Versão do documento 1.7.2
Direito de propriedade intelectual - 237 / 237

Documentos relacionados