Guia de Integração PayPay

Documentos relacionados
Guia de Integração Gateway de Pagamentos Redunicre. Versão 1.1

Manual de Configuração WooCommerce

SERVIÇO CONTRATO Especificação das operações de Serviço

Serviç os da Web de distribuiç ã o digital (DDWS) GetMyPrice - Serviço manual

Nota Fiscal de Serviços Eletrônica Integração de dados Web Services - ABRASF

SRSAT Sistema de Registro de Modelos Equipamentos SAT Ambiente de Testes

Nota Fiscal de Serviços Eletrônica Integração de dados Web Services - ABRASF

Plataforma de Serviços de Interoperabilidade Especificações Técnicas. Janeiro/2018

Manual do Checkout 2.0

GUIA DE INTEGRAÇÃO. Versão Sistema 01.08

1 INTRODUÇÃO CERTIFICADO DE SEGURANÇA SSL AUTENTICAÇÃO WEB METHOD: LOGIN WEB METHOD: LISTBONDCODES...

Guia de Integração V2.0 Setembro 2015

GUIA DE INTEGRAÇÃO WEB2APP APLICATIVO PAGSEGURO 1. Guia de Integração Web2App Aplicativo PagSeguro VERSÃO 1.0.0

Integração Fidelimax. Versão Atual

1 INTRODUÇÃO CERTIFICADO DE SEGURANÇA SSL AUTENTICAÇÃO WEB METHOD: LOGIN WEB METHOD: LISTBONDCODES...

MANUAL DE INTEGRAÇÃO. Plataforma Simplus

PREFEITURA DO MUNICÍPIO DE OSASCO MANUAL PARA EMISSÃO DE NFS-E EM TEMPO REAL VIA WEBSERVICE

Manual Direct100 API V2 RICCARDO BARANA

GUIA API BTB /04/2019 INFORMAÇÃO PÚBLICA

API HTTP Rest/JSON EZ4U SMS Gateway

Manual de Integração do icarta

Guia de Utilização. Entidades Prescritoras Nova Encomenda. Versão 2 agosto 2017

SERVIÇO CONTRATO. Especificação das operações de Serviço MANUAL DO USUÁRIO CONSULTAR CONTRATO. Projeto: Plataforma de Integração.

Comércio Eletrônico Locaweb

v1.0 Manual de integração municipal ISSIntel

ANEXO I. easypay sistema de pagamentos. Especificações técnicas para a implementação de web services easypay Get e XML. 10 de Abril de 2008 Ver B

Manual de Integração DOCUMENTAÇÃO TÉCNICA. Especificação para integração via API, Webservices e SMPP.

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Simplificada (Juridica) Versão: 1.0. Autor: Angelo Bestetti Junior

API PAGAMENTOS. Todas requisições devem ser feitas para o endpoint

Guia de Referência. Integração biz API

PAPO SMS MANUAL DE INTEGRAÇÃO DO DESENVOLVEDOR VERSÃO 1.0.1

Manual de apoio ao utilizador

Fatura Eletrónica Ativação do Módulo de TTE L800 SR3 (ou superior)

MENSAGEM FONADAS. Processamento e envio de mensagens VOZ

Manual de apoio ao utilizador

Plataforma bäse Apresentação outubro/2016

Guia do usuário Módulo Cielo 3.0 Magento 1

Plataforma de Serviços de Interoperabilidade. Apresentação. outubro/2017

Manual de apoio ao utilizador. IMT Instituto da Mobilidade e dos Transportes, I.P. Av. Das Forças Armadas, LISBOA V

Manual Webservice Finnet

Este item do documento apresenta o AuthSnet, protocolo de autenticação usado para acessar os recursos privados (protected resource) da ServiceNet.

Layout de integração com webservices de clientes. Serviço de autenticação do cooperado

Pagador Transaction. Consulta. Versão 1.3

Para efetuar a configuração de s no painel, acesse o cpanel a partir do link abaixo:

Manual de Integração Cartórios

Guia do usuário Módulo Cielo 3.0 Magento 1

Manual de apoio ao utilizador. IMT Instituto da Mobilidade e dos Transportes, I.P. Av. Das Forças Armadas, LISBOA V

Minicurso Web Services com PHP

Plataforma Dados Saúde. WebAPI

Registro Nacional de Carteira de Habilitação RENACH. Manual do Produto. Versão 2.1

Danos Pessoais Causados por Veículos Auto Motores de Via Terrestre DPVAT BILHETES. Manual do Produto Versão 2.2

Pagamento de serviços e ao Estado para Empresas

Integração REST Text2Speech Versão 1.1

Especificação de Integração Linx Microvix WebApi v1.2

Manual de Integração. Soluções Pssst! e Tlim v8.15

Integração MK-Auth com a Juno/Boleto Fácil. 1. Configurando a Juno no MK-Auth

Portal de Arecadação de ISS e Emissão de Notas Fiscais. Manual de integração - Importação de Lotes RPS

MANUAL DE INTEGRAÇÃO API DE PAGAMENTOS PRIXPAY v.003

1. A Loja Lisboa Online

MILLENNIUM NETWORK. Millennium ECO Documentação Técnica 05/2017

Por exemplo, no endereço temos:

Manual de Integração

Importação de Extrato Eletrônico EEFI Operadora de Cartão de Crédito REDECARD

Guião de Preenchimento do Módulo Reporte de Execução Física Versão 1.0

API - IMERCADO Captura, Alocação e Repasse

Agora iremos configurar o modulo do Mercado Livre para isso siga as instruções abaixo.

Extrato de boletos bancários

Cláusulas Contratuais Gerais de Adesão ao Serviço MB WAY

Desenvolvimento Web II

Módulo PicPay E-commerce v1.0

Plataforma Dados Saúde. WebAPI

Factura Electrónica Activação do Módulo de TTE

DADOS CONTABILÍSTICOS

Plataforma Dados Saúde. WebAPI

gurado REST API Documentation

Manual de Integração Boleto de Cobrança Registrada Banco do Brasil S.A. Versão 1.4 Março de 2017

API DE INTEGRAÇÃO VERSÃO 2. Janeiro/2017. Manual de Integração. Setor de Desenvolvimento

Sistema Integrado de Gerenciamento do ISS SIG-ISS. Manual de integração do WebService para NFS-e

NOVOS MÉTODOS DE CARREGAMENTO DO CARTÃO SIGE Agora pode carregar o cartão SIGE através da plataforma Unicard Wallet. CÓMODO SIMPLES RÁPIDO SEGURO

Transcrição:

Guia de Integração PayPay

Histórico de revisões Versão Data Descrição das alterações 1.0 07/03/2016 Versão inicial 1.1 07/04/2016 Correção dos campos date, adicionado campo idtransaction no método dowebpayment. 1.2 14/04/2016 Adicionados métodos saveentitypayments e getentitypayments. Atualizado link para as estruturas. 1.3 21/06/2016 Correção dos tipos de dados dos pedidos. Atualização da gama de referências. 1.4 06/07/2016 Adicionado método subscribetowebhook 1.5 09/02/2017 Adicionados campos method e mbwpayment 1.6 14/03/2017 Adicionado campo paymentid 1.7 22/06/2017 Adicionados campos productcode e productdesc no método createpaymentreference 1.8 30/08/2017 Adicionados campos productcode e productdesc no método dowebpayment 1.9 21/02/2018 Adicionados campos validstartdate e validenddate 1.10 04/04/2018 Adicionados recursos e cartões de teste 2

Índice 1. Introdução... 5 2. Requisitos... 6 2.1 Recursos... 6 3. Autenticação... 7 4. Geração e Verificação de Dados de Pagamento... 8 4.1 Método checkintegrationstate... 8 4.1.1 Parâmetros do pedido... 8 4.1.2 Parâmetros da resposta... 8 4.1.3 Exemplo de pedido... 9 4.1.4 Exemplo de resposta... 9 4.2 Método createpaymentreference... 10 4.2.1 Parâmetros do pedido... 10 4.2.2 Parâmetros da resposta... 11 4.2.3 Exemplo de pedido... 11 4.2.4 Exemplo de resposta... 12 4.3 Método checkentitypayments... 13 4.3.1 Parâmetros do pedido... 13 4.3.2 Parâmetros da resposta... 13 4.3.3 Exemplo de pedido... 14 4.3.4 Exemplo de resposta... 15 5. Pedido de pagamento com token via cartão de crédito ou MB WAY... 16 5.1 Método dowebpayment... 16 5.1.1 Parâmetros do pedido... 16 5.1.2 Parâmetros da resposta... 17 5.1.3 Exemplo de pedido... 18 5.1.4 Exemplo de resposta... 19 5.2 Método checkwebpayment... 20 5.2.1 Parâmetros do pedido... 20 5.2.2 Parâmetros da resposta... 20 5.2.3 Exemplo de pedido... 21 5.2.4 Exemplo de resposta... 21 5.3 Método getentitypayments... 22 3

5.3.1 Parâmetros do pedido... 22 5.3.2 Exemplo de pedido... 22 5.3.3 Exemplo de resposta... 23 6. Pedidos com gama de referências... 24 6.1 Método saveentitypayments... 24 6.1.1 Parâmetros do pedido... 24 6.1.2 Parâmetros da resposta... 25 6.1.3 Exemplo de pedido... 26 6.1.4 Exemplo de resposta c/ sucesso... 27 6.1.5 Exemplo de resposta c/ erros... 28 7. Pedidos de pagamentos por Webhook... 29 7.1 Método subscribetowebhook... 29 7.1.1 Parâmetros do pedido... 29 7.1.2 Parâmetros da resposta... 29 7.1.3 Exemplo de pedido... 30 7.1.4 Exemplo de resposta c/ sucesso... 30 7.1.5 Exemplo de resposta c/ erro... 31 7.2 Autenticação de WebHooks... 32 7.2.1 Tipos de ações possíveis... 32 7.3 Parâmetros do pedido POST... 33 8. Códigos de formas de pagamento... 34 9. Códigos de Erro... 35 9.1 Erros de configuração da entidade... 35 9.2 Método saveentitypayments... 35 9.3 Método dowebpayment... 35 9.4 Método checkwebpayment... 35 9.5 Método subscribetowebhook... 35 10. Acesso aos vários Ambientes... 37 10.1 Ambiente de Teste... 37 10.2 Ambiente de Produção... 37 11. Cartões de Crédito de Teste... 38 4

1. Introdução Este documento descreve os requisitos e passos necessários para a integração com a PayPay para os clientes que pretendam ter maior controlo sobre processo de pagamento nas suas aplicações. São disponibilizados mecanismos para a obtenção de referências de pagamento, pagamento direto do site do comerciante, consulta do estado do pagamento e processamento da confirmação de pagamento. 5

2. Requisitos Para realização de testes utilizar os dados de acesso ao ambiente de testes ou solicitar um novo acesso à nossa equipa de apoio. O comerciante deverá estar registado e aprovado na plataforma PayPay; Obter dados de acesso da plataforma de integração no backoffice; Utilização do protocolo SOAP v1.2 para a realização dos pedidos por webservice; 2.1 Recursos Biblioteca GitHub disponível em: https://github.com/apoiopaypay/paypay-soap-php 6

3. Autenticação O sistema verifica as credencias da plataforma integrada, é fornecida uma chave secreta para permitir realizar pedidos ao webservice. Para cada pedido do webservice deve ser enviada uma hash em sha256. O parâmetro hash é composto pela chave de encriptação e uma data. Atributos hash* Tipo String *sha256 (Chave de encriptação + Data**) **ex: 15-05-2012 15:11:23 A data utilizada deve ser igual ou superior ao último pedido e sempre superior à data e hora atuais. Chave de encriptação (Ambiente de testes) Y1JgnTGN2lMOz8OXLs0s O resultado deste caso em específico, será uma hash com o seguinte valor: 0dcfe29792a1a0516612071fb8482c434bf64865b08987df004abe5ed8f56a6e De forma a testar a integração, utilize os dados acima, bem como: Código da plataforma (PlatformCode): 0004 NIF: 503129445 7

4. Geração e Verificação de Dados de Pagamento Nas seguintes subseções descrevemos os principais métodos disponibilizados pela API da PayPay, para a geração e verificação de dados de pagamento. 4.1 Método checkintegrationstate O método checkintegrationstate permite verificar o estado da integração. 4.1.1 Parâmetros do pedido Campo Tipo Descrição entity RequestEntity Dados de validação da entidade platformcode String Código da plataforma hash String Resultado da chave de encriptação e data lang String Configuração da língua date String Data de acesso nif String NIF da entidade 4.1.2 Parâmetros da resposta Campo Tipo Descrição requeststate ResponseIntegrationState Contém a informação da integração state String Estado da integração code String Código do estado de integração message String Mensagem do estado de integração No caso de ocorrer uma exceção durante o processamento do pedido, será devolvida uma resposta do tipo SoapException: Campo Tipo Descrição faultcode String Código do erro faultstring String Descrição do erro Os erros possíveis são os seguintes. faultcode faultstring 0000 The credentials are invalid, verify your access information. 0001 The entity parameter {campo} cannot be empty. 8

4.1.3 Exemplo de pedido <soapenv:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://paypay.acin.pt/paypaybeta/index.php/paypayservices/paypayservices_c/wsdl"> <soapenv:header/> <soapenv:body> <wsdl: checkintegrationstate soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"> <entity xsi:type="wsdl:requestentity"> <platformcode xsi:type="xsd:string">0004</platformcode> <hash xsi:type="xsd:string">85ae4b362e08f476b6e114aaf59e46fc64686758fb8bce370973ac719a7da400</has h> <date xsi:type="xsd:string">2016-02-28 15:00:00</date> <nif xsi:type="xsd:string">503129445</nif> <lang xsi:type="xsd:string">pt</lang> </entity> </wsdl:checkintegrationstate> </soapenv:body> </soapenv:envelope> 4.1.4 Exemplo de resposta <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://paypay.acin.pt/paypaybeta/index.php/paypayservices/paypayservices_c/wsdl" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:checkintegrationstateresponse> <return xsi:type="ns1:responseintegrationstate"> <state xsi:type="xsd:string">1</state> <code xsi:type="xsd:string">02</code> <message xsi:type="xsd:string">entidade registada e configurada</message> </return> </ns1:checkintegrationstateresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 9

4.2 Método createpaymentreference Método usado para obtenção de dados de pagamento, através de cartão de crédito ou multibanco. 4.2.1 Parâmetros do pedido Campo Tipo Descrição entity RequestEntity Dados de validação da entidade platformcode String Código da plataforma hash String Resultado da chave de encriptação e data lang String Configuração da língua date String Data de acesso nif String NIF da entidade payment RequestReferenceDetails Informação do pagamento a criar amount Int Montante pretendido para a criação do pagamento (obrigatório) productcode String Código do produto/serviço (opcional) productdesc String Descrição do produto/serviço (opcional) validstartdate* String Data de início da validade da referência. validenddate* String Data limite de pagamento da referência. * As datas devem estar no formato ISO8601 (ex: 2014-09-27T18:30:49-03:00). 10

4.2.2 Parâmetros da resposta Campo Tipo Descrição integrationstate ResponseIntegrationState Indica o sucesso do pedido idpayment Int Identificador do pedido amount Int Montante do pagamento creditcardpayment Int Indica se é possível o pagamento via cartão de crédito atmpayment Int Indica se é possível o pagamento via multibanco atmentity String Entidade multibanco reference String Referência do pagamento mbwpayment Int Indica se o pagamento é possível por MB WAY hash String Hash do pedido linkpayment String Link da apresentação do pagamento na plataforma productcode String Código do produto/serviço productdesc String Descrição do produto/serviço err_code String Código de erro err_msg String Mensagem de erro validstartdate String Data de início da validade validenddate String Data de fim da validade 4.2.3 Exemplo de pedido <soapenv:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://paypay.acin.pt/paypaybeta/index.php/paypayservices/paypayservices_c/wsdl"> <soapenv:header/> <soapenv:body> <wsdl:createpaymentreference soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"> <entity xsi:type="wsdl:requestentity"> <platformcode xsi:type="xsd:string">0003</platformcode> <hash xsi:type="xsd:string">29df0239abeac9eb63be5d85c837ae66540fe4be66ce08485ab9bb440d5</hash> <date xsi:type="xsd:string">2016-02-29 15:00:00</date> <nif xsi:type="xsd:string">133604934</nif> <lang xsi:type="xsd:string">pt</lang> </entity> <payment xsi:type="wsdl:requestreferencedetails"> <amount xsi:type="xsd:int">620</amount> <productcode xsi:type="xsd:string">productcode</productcode> <productdesc xsi:type="xsd:string">productdesc</productdesc> <validstartdate xsi:type="xsd:string">2018-05-14t14:48:28+01:00</validstartdate> <validenddate xsi:type="xsd:string">2018-11-14t14:48:28+00:00</validenddate> </payment> </wsdl:createpaymentreference> </soapenv:body> </soapenv:envelope> 11

4.2.4 Exemplo de resposta <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://paypay.acin.pt/paypaybeta/index.php/paypayservices/paypayservices_c/wsdl" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:createpaymentreferenceresponse> <return xsi:type="ns1:responsegetpayment"> <state xsi:type="xsd:int">1</state> <idpayment xsi:type="xsd:int">3861</idpayment> <amount xsi:type="xsd:int">620</amount> <creditcardpayment xsi:type="xsd:int">1</creditcardpayment> <atmpayment xsi:type="xsd:int">1</atmpayment> <atmentity xsi:type="xsd:string">12345</atmentity> <reference xsi:type="xsd:string">000149087</reference> <mbwpayment xsi:type="xsd:int">1</ mbwpayment > <hash xsi:type="xsd:string">b1de3c83e1698eb48a9b1324f55f755f06e6b34b</hash> <linkpayment xsi:type="xsd:string">http://paypay.acin.pt/paypaybeta/index.php/referencia/referencia_c/pay/b1de3c 83e1698eb48a9b1324f55f755f06e6b34b</linkPayment> <productcode xsi:type="xsd:string"/ > <productdesc xsi:type="xsd:string"/> <err_code xsi:type="xsd:string"/> <err_msg xsi:type="xsd:string"/> <validstartdate xsi:type="xsd:string">2018-05-14t14:48:28+01:00</validstartdate> <validenddate xsi:type="xsd:string">2018-11-14t14:48:28+00:00</validenddate> </return> </ns1:createpaymentreferenceresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 12

4.3 Método checkentitypayments Permite verificar o estado dos pagamentos. 4.3.1 Parâmetros do pedido Campo Tipo Descrição entity RequestEntity Dados de validação da entidade platformcode String Código da plataforma hash String Resultado da chave de encriptação e data lang String Configuração da língua date String Data de acesso nif String NIF da entidade requestpayments RequestEntityPayments Lista de pagamentos a verificar payments RequestReferenceDetails[] Array de referências de pagamentos reference String Referência do pagamento paymentid Int Id do pagamento 4.3.2 Parâmetros da resposta Campo Tipo Descrição response ResponseEntityPaymentsDetails Contém a informação da referência state ResponseIntegrationState Informação do estado da integração payments PaymentDetails[] Array de detalhes de pagamentos state Int Estado do pedido code String Código da mensagem message String Mensagem de erro/sucesso reference String Referência de pagamento paymentstate Int Estado do pagamento (0. Pendente 1. Pago) paymentstateid Int Identificador do estado do pagamento paymentblocked Int Indica se o pagamento está bloqueado paymentcancelled Int Indica se o pagamento foi cancelado paymentdate String Data de pagamento paymentmode String Modo de pagamento (1. Cartão de crédito, 2.Multibanco, 4.MB WAY) paymentid Int Id do pagamento 13

4.3.3 Exemplo de pedido <soapenv:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://paypay.acin.pt/paypaybeta/index.php/paypayservices/paypayservices_c/wsdl"> <soapenv:header/> <soapenv:body> <wsdl:checkentitypayments soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"> <entity xsi:type="wsdl:requestentity"> <platformcode xsi:type="xsd:string">0003</platformcode> <hash xsi:type="xsd:string">29df0239abeac9eb63be5d85c837ae66540fe4be66ce08485ab9db831bb440d5</h ash> <date xsi:type="xsd:string">2016-02-29 15:00:00</date> <nif xsi:type="xsd:string">133604934</nif> <lang xsi:type="xsd:string">pt</lang> </entity> <entity_payments xsi:type="wsdl:requestentitypayments"> <payments enc:itemtype="enc:struct" enc:arraysize="2" xsi:type="enc:array"> <item xsi:type="ns1:requestreferencedetails"> <reference xsi:type="xsd:string">000015410</reference> <paymentid xsi:type="xsd:int">7856</ paymentid > </item> <item xsi:type="ns1:requestreferencedetails"> <reference xsi:type="xsd:string">000015528</reference> <paymentid xsi:type="xsd:int">7857</ paymentid > </item> </payments> </entity_payments> </wsdl:checkentitypayments> </soapenv:body> </soapenv:envelope> 14

4.3.4 Exemplo de resposta <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://paypay.acin.pt/paypaybeta/index.php/paypayservices/paypayservices_c/wsdl" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:checkentitypaymentsresponse> <return xsi:type="ns1:responseentitypaymentsdetails"> <state xsi:type="ns1:responseintegrationstate"> <state xsi:type="xsd:string">1</state> <code xsi:type="xsd:string">02</code> <message xsi:type="xsd:string">entidade registada e configurada</message> </state> <payments SOAP-ENC:arrayType="ns1:PaymentDetails[2]" xsi:type="ns1:arrayofpaymentdetails"> <item xsi:type="ns1:paymentdetails"> <code xsi:type="xsd:string">02</code> <state xsi:type="xsd:int">1</state> <paymentid xsi:type="xsd:int">7856</paymentid> <reference xsi:type="xsd:string">000015410</reference> <paymentstate xsi:type="xsd:int">1</paymentstate> <paymentstateid xsi:type="xsd:int">3</paymentstateid> <paymentblocked xsi:type="xsd:string">0</paymentblocked> <paymentcancelled xsi:type="xsd:int">0</paymentcancelled> <paymentdate xsi:type="xsd:string">2016-02-12 09:49:32</paymentDate> <paymentmode xsi:type="xsd:string">1</paymentmode> <message xsi:nil="true"/> </item> <item xsi:type="ns1:paymentdetails"> <code xsi:type="xsd:string">02</code> <state xsi:type="xsd:int">0</state> <paymentid xsi:type="xsd:int">7857</paymentid> <reference xsi:type="xsd:string">000015528</reference> <paymentstate xsi:nil="true"/> <paymentstateid xsi:nil="true"/> <paymentblocked xsi:nil="true"/> <paymentcancelled xsi:nil="true"/> <paymentdate xsi:nil="true"/> <paymentmode xsi:nil="true"/> <message xsi:nil="true"/> </item> </payments> </return> </ns1:checkentitypaymentsresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 15

5. Pedido de pagamento com token via cartão de crédito ou MB WAY De seguida apresentamos o processo de comunicação, na criação de uma transação para o pagamento via cartão de crédito ou MB WAY através da PayPay. O site do comerciante comunica com a PayPay com o objetivo de obter um token de pagamento para a forma de pagamento pretendida; O site do comerciante deverá armazenar o token e redirecionar o cliente para o endereço obtido; Em caso de sucesso ou cancelamento pelo cliente, este será redirecionado para a página de sucesso ou cancelamento do comerciante (esclarecido mais à frente); Se, por qualquer razão, o site do comerciante não estiver acessível no momento da resposta, é recomendada a consulta ao estado da transação após um intervalo de referência de 10 minutos. A consulta com token é possível usando o método checkwebpayment (Ver ponto 5.2). Nas seguintes subsecções descrevemos os métodos que dão suporte a este funcionamento. 5.1 Método dowebpayment Obtém dados para efetuar um pagamento por cartão de crédito. 5.1.1 Parâmetros do pedido Campo Tipo Descrição entity RequestEntity Dados de validação da entidade platformcode String Código da plataforma hash String Resultado da chave de encriptação e data lang String Configuração da língua date String Data de acesso nif String NIF da entidade payment RequestCreditCardPayment Dados relativos ao pagamento e redirecionamento order RequestPaymentOrder Informação do pagamento amount * Int Montante do pagamento reference ** String Referência do pagamento hash ** String Hash do pagamento idtransaction*** String ID de pagamento productcode String Código do produto productdesc String Descrição do produto 16

method**** String Código da forma de pagamento que vai ser utilizada. Ver ponto 8. returnurlsuccess String Endereço que será acedido caso o cliente realize o pagamento por cartão de crédito com sucesso returnurlcancel String Endereço que será acedido em caso de cancelamento pelo cliente buyer (opcional) RequestBuyerInfo Informação do cliente lastname String Apelido do cliente firstname String Nome do cliente customerid String Id do cliente email String Email do cliente * Deverá ser enviado quando se pretende criar um pagamento. ** Estes dados deverão ser enviados para efetuar um pagamento por cartão de crédito de pagamento criados através de outros webservice, não descritos neste documento. *** Neste caso é obrigatório especificar o montante (amount) do pagamento. Caso o montante não coincida com o montante do pagamento com idtransaction será criado um novo pagamento. **** Caso não seja especificado por defeito é escolhido o código CC - Cartão de Crédito. O pagamento por Multibanco não é suportado pois não permite o pagamento instantâneo. 5.1.2 Parâmetros da resposta Campo Tipo Descrição requeststate ResponseIntegrationState Contém a informação da integração state String Estado do pedido code String Código do erro message String Mensagem do erro url String Endereço que deverá ser utilizado para redirecionar o cliente para a página de pagamentos da PayPay. idtransaction Int Identificador do pagamento no PayPay token String Token do pagamento 17

5.1.3 Exemplo de pedido <soapenv:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://paypay.acin.pt/paypaybeta/index.php/paypayservices/paypayservices_c/wsdl"> <soapenv:header/> <soapenv:body> <wsdl:dowebpayment soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"> <entity xsi:type="wsdl:requestentity"> <platformcode xsi:type="xsd:string">0004</platformcode> <hash xsi:type="xsd:string">85ae4b362e08f476b6e114aaf59e46fc64686758fb8bce370973ac719a7da400</has h> <date xsi:type="xsd:string">2016-02-28 15:00:00</date> <nif xsi:type="xsd:string">503129445</nif> <lang xsi:type="xsd:string">pt</lang> </entity> <payment xsi:type="wsdl:requestcreditcardpayment"> <order xsi:type="wsdl:requestpaymentorder"> <idtransaction xsi:type="xsd:string"></idtransaction> <amount xsi:type="xsd:int">1850</amount> <reference xsi:type="xsd:string"></reference> <hash xsi:type="xsd:string"></hash> <productcode xsi:type="xsd:string"></ productcode> <productdesc xsi:type="xsd:string"></ productdesc > </order> <returnurlsuccess xsi:type="xsd:string"></returnurlsuccess> <returnurlcancel xsi:type="xsd:string"></returnurlcancel> </payment> </wsdl:dowebpayment> </soapenv:body> </soapenv:envelope> 18

5.1.4 Exemplo de resposta <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://paypay.acin.pt/paypaybeta/index.php/paypayservices/paypayservices_c/wsdl" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:dowebpaymentresponse> <return xsi:type="ns1:responsecreditcardpayment"> <requeststate xsi:type="ns1:responseintegrationstate"> <state xsi:type="xsd:string">1</state> <code xsi:type="xsd:string"/> <message xsi:type="xsd:string"/> </requeststate> <url xsi:type="xsd:string">https://www.paypay.pt/paypay/2njnouefziuibjc5a7971456156785851</url> <token xsi:type="xsd:string">2njnouefziuibjc5a7971456156785851</token> <idtransaction xsi:type="xsd:int">3348</idtransaction> </return> </ns1:dowebpaymentresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 19

5.2 Método checkwebpayment Este método permite verificar o estado de uma determinada transação. Deverá ser invocado sempre que o url de sucesso* seja acedido. 5.2.1 Parâmetros do pedido Campo Tipo Descrição entity RequestEntity Dados de validação da entidade platformcode String Código da plataforma hash String Resultado da chave de encriptação e data lang String Configuração da língua date String Data de acesso nif String NIF da entidade request RequestPaymentDetails Dados relativos ao pagamento token String Token do pagamento idtransaction Int Identificador do pagamento 5.2.2 Parâmetros da resposta Campo Tipo Descrição requeststate ResponseIntegrationState Contém a informação da integração state String Estado do pedido code String Código do erro message String Mensagem do erro paymentdate String Data do pagamento paid Int Indica se o pagamento está pago 20

5.2.3 Exemplo de pedido <soapenv:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://paypay.acin.pt/paypaybeta/index.php/paypayservices/paypayservices_c/wsdl"> <soapenv:header/> <soapenv:body> <wsdl:checkwebpayment soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"> <entity xsi:type="wsdl:requestentity"> <platformcode xsi:type="xsd:string">0004</platformcode> <hash xsi:type="xsd:string">85ae4b362e08f476b6e114aaf59e46fc64686758fb8bce370973ac719a7da400</has h> <date xsi:type="xsd:string">2016-02-28 15:00:00</date> <nif xsi:type="xsd:string">503129445</nif> <lang xsi:type="xsd:string">pt</lang> </entity> <paymentdetails xsi:type="wsdl:requestpaymentdetails"> <token xsi:type="xsd:string">2b0kupsossgwm43sd3431456157675690</token> <idtransaction xsi:type="xsd:int">3349</idtransaction> </paymentdetails> </wsdl:checkwebpayment> </soapenv:body> </soapenv:envelope> 5.2.4 Exemplo de resposta <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://paypay.acin.pt/paypaybeta/index.php/paypayservices/paypayservices_c/wsdl" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:checkwebpaymentresponse> <return xsi:type="ns1:responsepaymentdetails"> <requeststate xsi:type="ns1:responseintegrationstate"> <state xsi:type="xsd:string">1</state> <code xsi:type="xsd:string"/> <message xsi:type="xsd:string"/> </requeststate> <paid xsi:type="xsd:int">0</paid> <paymentdate xsi:type="xsd:string"/> </return> </ns1:checkwebpaymentresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 21

5.3 Método getentitypayments Este método permite obter os todos os pagamentos pagos num determinado intervalo. 5.3.1 Parâmetros do pedido Campo Tipo Descrição entity RequestEntity Dados de integração da entidade platformcode String Código da plataforma hash String Resultado da chave de encriptação e data lang String Configuração da língua date String Data de acesso nif String NIF da entidade datetimeinterval* RequestInterval Intervalo de datas startdate String Data de início da pesquisa enddate String Data de fim da pesquisa * Esta data corresponde à última data em que o pagamento foi atualizado no PayPay. Ex: Quando um pagamento é pago ou cancelado essa data é atualizada. 5.3.2 Exemplo de pedido <soapenv:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://10.11.10.51/wilmer/paypay/index.php/paypayservices/paypayservices_c/wsdl"> <soapenv:header/> <soapenv:body> <wsdl:getentitypayments soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"> <entity xsi:type="wsdl:requestentity"> <platformcode xsi:type="xsd:string">0002</platformcode> <hash xsi:type="xsd:string">d436b4ed4bdac9bbd730e9c95ed5761f669f68277ee23fc0145afc46e12392e7</has h> <date xsi:type="xsd:string">07-03-2017 19:40:00</date> <nif xsi:type="xsd:string">503966819</nif> <lang xsi:type="xsd:string">pt</lang> </entity> <datetimeinterval xsi:type="wsdl:requestinterval"> <!--You may enter the following 2 items in any order--> <startdate xsi:type="xsd:string">30-03-2016 16:43:00</startDate> <enddate xsi:type="xsd:string">30-03-2016 16:46:00</endDate> </datetimeinterval> </wsdl:getentitypayments> </soapenv:body> </soapenv:envelope> 22

5.3.3 Exemplo de resposta <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://10.11.10.51/wilmer/paypay/index.php/paypayservices/paypayservices_c/wsdl" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:getentitypaymentsresponse> <return xsi:type="ns1:responseentitypayments"> <integrationstate xsi:type="ns1:responseintegrationstate"> <state xsi:type="xsd:string">1</state> <code xsi:type="xsd:string">02</code> <message xsi:type="xsd:string">entidade registada e configurada</message> </integrationstate> <payments SOAP-ENC:arrayType="ns1:ResponsePayment[2]" xsi:type="ns1:arrayofresponsepayment"> <item xsi:type="ns1:responsepayment"> <paymentid xsi:type="xsd:int">4225</paymentid> <referenceentity xsi:type="xsd:string">12797</referenceentity> <reference xsi:nil="true"/> <paymentmethodcode xsi:type="xsd:string">cc</paymentmethodcode> <paymentcancelled xsi:type="xsd:boolean">false</paymentcancelled> <paymentdate xsi:type="xsd:string">30-03-2016 16:45:53</paymentDate> <paymentamount xsi:type="xsd:int">1000</paymentamount> <productcode xsi:nil="true"/> <productdesc xsi:nil="true"/> </item> <item xsi:type="ns1:responsepayment"> <paymentid xsi:type="xsd:int">3953</paymentid> <referenceentity xsi:type="xsd:string">11004</referenceentity> <reference xsi:type="xsd:string">000050757</reference> <paymentmethodcode xsi:type="xsd:string">mb</paymentmethodcode> <paymentcancelled xsi:type="xsd:boolean">false</paymentcancelled> <paymentdate xsi:type="xsd:string">14-03-2016 14:05:00</paymentDate> <paymentamount xsi:type="xsd:int">500</paymentamount> <productcode xsi:type="xsd:string">1019804</productcode> <productdesc xsi:type="xsd:string"/> </item> </payments> </return> </ns1:getentitypaymentsresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 23

6. Pedidos com gama de referências A gama de referências deve estar previamente configurada no PayPay só serão aceites referências que estejam dentro da gama configurada. Em ambiente de testes pode ser utilizada a seguinte gama: Início da gama Fim da gama Número de referências 0002596XX 0052595XX 50000 6.1 Método saveentitypayments Este método permite enviar referências multibanco emitidas localmente por uma aplicação para uma determinada gama de referências. 6.1.1 Parâmetros do pedido Campo Tipo Descrição entity RequestEntity Dados de integração da entidade platformcode String Código da plataforma hash String Resultado da chave de encriptação e data lang String Configuração da língua date String Data de acesso nif String NIF da entidade paymentreferences RequestPaymentRefere nce[ ] Lista de referências de pagamento referenceentity String Entidade multibanco (5 dígitos) reference* String Número da referência (9 dígitos = 7 dígitos da gama + 2 checkdigits) amount Int Montante da referência (em cêntimos, ex: 1000=10,00EUR) creationdate String Data de emissão da referência productcode String Código do produto (opcional) productdesc String Descrição do produto (opcional) 24

6.1.2 Parâmetros da resposta Quando todas as referências foram guardadas com sucesso. Campo state Descrição Estado do resultado (sucesso=1) Quando existem referências processadas com erros é devolvida a lista de erros e a respetiva referência. (Ver 9.2) Campo state paymentreferenceerrors [] errorcode errormessage referenceentity referencia Descrição Estado do resultado (parcial=2, insucesso=0) Lista de referências que contêm erros Código de erro Mensagem do erro (na língua do pedido) Entidade da referência Referência do pagamento Quando não foi possível processar nenhuma referência com sucesso devido a uma exceção ou erro geral da entidade. (Ver 9.1) Campo state code message Descrição Estado do resultado (insucesso=0) Código de erro Mensagem de resultado (na língua do pedido) 25

6.1.3 Exemplo de pedido <soapenv:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://10.11.10.51/wilmer/paypay/index.php/paypayservices/paypayservices_c/wsdl" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> <soapenv:header/> <soapenv:body> <wsdl:saveentitypayments soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"> <entity xsi:type="wsdl:requestentity"> <!--You may enter the following 5 items in any order--> <platformcode xsi:type="xsd:string">0002</platformcode> <hash xsi:type="xsd:string">d436b4ed4bdac9bbd730e9c95ed5761f669f68277ee23fc0145afc46e12392e7</has h> <date xsi:type="xsd:string">07-03-2017 19:40:00</date> <nif xsi:type="xsd:string">503966819</nif> <lang xsi:type="xsd:string">pt</lang> </entity> <paymentreferences xsi:type="wsdl:arrayofrequestpaymentreference" soapenc:arraytype="wsdl:requestpaymentreference[]" SOAP- ENC:arrayType="ns1:RequestPaymentReference[]" xmlns:soap-enc="soap-enc"> <RequestPaymentReference> <referenceentity xsi:type="xsd:string">10010</referenceentity> <reference xsi:type="xsd:string">300026236</reference> <amount xsi:type="xsd:int">1000</amount> <creationdate xsi:type="xsd:string">14-04-2017 19:40:00</creationDate> </RequestPaymentReference> <RequestPaymentReference> <referenceentity xsi:type="xsd:string">10010</referenceentity> <reference xsi:type="xsd:string">000140041</reference> <amount xsi:type="xsd:int">1000</amount> <creationdate xsi:type="xsd:string">14-04-2017 19:40:00</creationDate> </RequestPaymentReference> </paymentreferences> </wsdl:saveentitypayments> </soapenv:body> </soapenv:envelope> 26

6.1.4 Exemplo de resposta c/ sucesso <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://10.11.10.51/wilmer/paypay/index.php/paypayservices/paypayservices_c/wsdl" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:saveentitypaymentsresponse> <return xsi:type="ns1:responseentitypaymentreferences"> <integrationstate xsi:type="ns1:responseintegrationstate"> <state xsi:type="xsd:string">1</state> <code xsi:type="xsd:string">02</code> <message xsi:type="xsd:string">entidade registada e configurada</message> </integrationstate> <paymentreferenceerrors SOAP-ENC:arrayType="ns1:ResponsePaymentReferenceError[0]" xsi:type="ns1:arrayofresponsepaymentreferenceerror"/> </return> </ns1:saveentitypaymentsresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 27

6.1.5 Exemplo de resposta c/ erros <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://10.11.10.51/wilmer/paypay/index.php/paypayservices/paypayservices_c/wsdl" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:saveentitypaymentsresponse> <return xsi:type="ns1:responseentitypaymentreferences"> <integrationstate xsi:type="ns1:responseintegrationstate"> <state xsi:type="xsd:string">0</state> <code xsi:type="xsd:string">02</code> <message xsi:type="xsd:string">entidade registada e configurada</message> </integrationstate> <paymentreferenceerrors SOAP-ENC:arrayType="ns1:ResponsePaymentReferenceError[2]" xsi:type="ns1:arrayofresponsepaymentreferenceerror"> <item xsi:type="ns1:responsepaymentreferenceerror"> <errorcode xsi:type="xsd:string">013</errorcode> <errormessage xsi:type="xsd:string">a referência foi processada anteriormente</errormessage> <referenceentity xsi:type="xsd:string">10010</referenceentity> <reference xsi:type="xsd:string">300026236</reference> </item> <item xsi:type="ns1:responsepaymentreferenceerror"> <errorcode xsi:type="xsd:string">013</errorcode> <errormessage xsi:type="xsd:string">a referência foi processada anteriormente</errormessage> <referenceentity xsi:type="xsd:string">10010</referenceentity> <reference xsi:type="xsd:string">000140041</reference> </item> </paymentreferenceerrors> </return> </ns1:saveentitypaymentsresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 28

7. Pedidos de pagamentos por Webhook Os webhooks são pedidos HTTP que podem ser configurados para serem realizados quando uma determinada acção é desencadeada (ex: quando é registado um pagamento multibanco). É realizado um pedido HTTP POST para o URL com os campos definidos para a ação. 7.1 Método subscribetowebhook Este método permite subscrever a um webhook especificando o URL onde pretende receber os dados e a ação pretendida. 7.1.1 Parâmetros do pedido Campo Tipo Descrição entity RequestEntity Dados de integração da entidade platformcode String Código da plataforma hash String Resultado da chave de encriptação e data lang String Configuração da língua date String Data de acesso nif String NIF da entidade webhook RequestWebhook Dados de configuração do action* String Ação do webhook (ex: payment_confirmed) url** String URL do webhook (ex: https://paypay.acin.pt/) *Os tipos de ações disponíveis são descritos no ponto 7.2.1. 7.1.2 Parâmetros da resposta Campo Tipo Descrição webhookresponse ResponseWebhook integrationstate ResponseIntegrationState Contém a informação da integração state String Estado da integração code String Código do erro da integração message String Mensagem do erro 29

7.1.3 Exemplo de pedido <soapenv:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="https://paypay.acin.pt/paypaybeta/index.php/paypayservices/paypayservices_c/wsdl"> <soapenv:header/> <soapenv:body> <wsdl:subscribetowebhook soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"> <entity xsi:type="wsdl:requestentity"> <!--You may enter the following 5 items in any order--> <platformcode xsi:type="xsd:string">0003</platformcode> <hash xsi:type="xsd:string">b0fdc64292866169db1e55f2e9b4a6dcb967bda1aa6f7cf40a7b881aa8b53c06</has h> <date xsi:type="xsd:string">06-07-2017 19:40:00</date> <nif xsi:type="xsd:string">133604934</nif> <lang xsi:type="xsd:string">pt</lang> </entity> <webhook xsi:type="wsdl:requestwebhook"> <!--You may enter the following 2 items in any order--> <action xsi:type="xsd:string">payment_confirmed</action> <url xsi:type="xsd:string">https://paypay.acin.pt/paypaybeta/index.php/paypayservices/paypayservices_c/ wsdl</url> </webhook> </wsdl:subscribetowebhook> </soapenv:body> </soapenv:envelope> 7.1.4 Exemplo de resposta c/ sucesso <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://paypay.acin.pt/paypaybeta/index.php/paypayservices/paypayservices_c/wsdl/4" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:subscribetowebhookresponse> <return xsi:type="ns1:responsewebhook"> <integrationstate xsi:type="ns1:responseintegrationstate"> <state xsi:type="xsd:string">1</state> <code xsi:type="xsd:string">02</code> <message xsi:type="xsd:string">entidade registada e configurada</message> </integrationstate> </return> </ns1:subscribetowebhookresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 30

7.1.5 Exemplo de resposta c/ erro <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://10.11.10.51/wilmer/paypay/index.php/paypayservices/paypayservices_c/wsdl/4" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:subscribetowebhookresponse> <return xsi:type="ns1:responsewebhook"> <integrationstate xsi:type="ns1:responseintegrationstate"> <state xsi:type="xsd:string">0</state> <code xsi:type="xsd:string">0052</code> <message xsi:type="xsd:string">o parâmetro URL não é válido, deve ser especificado o endereço completo.</message> </integrationstate> </return> </ns1:subscribetowebhookresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 31

7.2 Autenticação de WebHooks Em todos os pedidos HTTP POST via webhook é enviada uma chave hash sha256 composta pela chave privada do webservice, a ação do webhook e a data de execução do pedido. Isto permite validar a autenticidade dos pedidos recebidos. Attributes Type hookhash* String hookdate** String hookaction String *sha256(webservice key + hookaction + hookdate) **ex: 15-05-2012 15:11:23 7.2.1 Tipos de ações possíveis Ação payment_confirmed Descrição Ação é desencadeada quando se verifica um dos seguintes acontecimentos: Realizado pagamento por multibanco; Realizado pagamento por cartão de crédito ou MB WAY em que o cliente não regressou à loja; Nota: aplica-se apenas a pagamentos emitidos através do webservice(ex: usando o método createpaymentreference ou dowebpayment). 32

7.3 Parâmetros do pedido POST Na tabela seguinte são descritos os parâmetros que são enviados no pedido HTTP POST. Campo Tipo Descrição hookaction String A designação da ação desencadeada hookdate String A data do pedido hookhash String A hash do pedido payments* Array Lista de pagamentos encontrados paymentid Int O ID de pagamento referenceentity** String A entidade multibanco da referência reference** String A referência de 9 dígitos paymentmethodcode String O código da forma de pagamento (Ver ponto 8) paymentcancelled Boolean Indicação se o pagamento está cancelado paymentdate String A data de pagamento formato DD-MM- YYYY HH:MM:SS paymentamount Int Montante da referência (em cêntimos, ex: 1000=10,00EUR) productcode String Código do produto (opcional) productdesc String Descrição do produto (opcional) * Caso o número de pagamentos exceda os 50 é realizado um novo pedido com os pagamentos restantes. ** Os parâmetros não são enviados caso o pagamento não tenha uma referência multibanco associada, como é o caso do pagamento por cartão de crédito. 33

8. Códigos de formas de pagamento Código Forma de pagamento MB Multibanco CC Cartão de crédito MW MB WAY 34

9. Códigos de Erro 9.1 Erros de configuração da entidade Código Mensagem de erro 00 Não registada/credenciais inválidas 01 Registada sem integração 02 Registada com integração e referências (apta) 03 Registada com integração e sem referências 04 Registada com integração e sem gama configurada 05 Registada com integração mas sem formas de pagamento configuradas 9.2 Método saveentitypayments Código Mensagem de erro 0011 Os dados referência não são válidos 0012 A referência está fora das gamas definidas para a entidade. 0013 A referência foi processada anteriormente. 0014 Parâmetros em falta 0015 Parâmetros inválidos 0016 Ocorreu um erro ao tentar processar a referência 9.3 9.4 Método dowebpayment Código Mensagem de erro 0031 Não foi possível processar o seu pedido. 0032 Campos em falta {campos} 0033 Dados inválidos 0034 A referência foi processada anteriormente. 0035 Montante inválido 9.5 Método checkwebpayment Código Mensagem de erro 0041 Campos em falta {campos} 0042 Não foi encontrado um pagamento com os dados fornecidos 9.6 Método subscribetowebhook Código Mensagem de erro 0051 O parâmetro action não é válido ou não existe 0052 O parâmetro URL não é válido, deve ser especificado o endereço completo. 9.7 35

9.8 Método createpaymentreference Código Mensagem de erro 0061 Montante inválido. 0062 Parâmetros em falta 0063 Parâmetros inválidos 36

10. Acesso aos vários Ambientes 10.1 Ambiente de Teste Deverá testar a integração da sua aplicação com o PayPay, nos seguintes endereços: WSDL https://paypay.acin.pt/paypaybeta/paypayservices/paypayservices_c/wsdl Servidor https://paypay.acin.pt/paypaybeta/paypayservices/paypayservices_c/server 10.2 10.3 Ambiente de Produção Em ambiente de produção deverá utilizar os seguintes endereços: WSDL https://www.paypay.pt/paypay/paypayservices/paypayservices_c/wsdl Servidor https://www.paypay.pt/paypay/paypayservices/paypayservices_c/server 37

11. Cartões de Crédito de Teste Os seguintes cartões estão disponíveis para testes (em caso de erro tentar outro caso seja recusada a transacção): Cartão de crédito CVV2 Data de validade 41248713 90000500 111 02/22 52063695 00003553 565 02/22 41248913 90000177 148 02/22 Cartão de débito CVV Data de validade 40617000 90022834 166 02/22 67739300 90015736 999 02/22 38