PagSeguro Developers_

Tudo o que você precisa em serviços de pagamentos.

Aqui você encontra as documentações necessárias para integrar com as APIs, Bibliotecas e Módulos do PagSeguro.

Descubra tudo que a nossa plataforma pode te proporcionar!

Get Started    Referência da API

GuiaRápido PagSeguro - Split de Pagamentos

Objetivo

Apresentarmos um exemplo prático de aplicação da API Split de Pagamentos.

📘

Com o split de pagamento é possível:

Dividir um pagamento definindo multiplos recebedores, assim como é feito em um marketplace por exemplo.

Premissas: Modelo de Aplicação

Após criar uma aplicação você poderá pedir a autorização do seu cliente para criar checkout, criar assinaturas, efetuar consultas entre outras ações, conforme o fluxo abaixo:

📘

Os dados da transação secundária são mostrados apenas quando o status da transação for atualizado para Pago ou/e Disponível.

Criação de aplicação em sandbox:

Note que no sandbox não é necessário criar uma aplicação e um appKey e um appId, em sandbox já está tudo pronto para sua integração, veja abaixo como localizar suas credenciais de aplicação em sandbox:

1 - Realize o login em sua conta em sandbox.
2 - Em "Perfis de Integração, "Clicar em "Aplicação".
3 - E na próxima tela terá suas credenciais de aplicação como appKey e appId, assim como mostra imagem abaixo.

🚧

Note que em sandbox além do appKey e appId, você já tem acesso aos vendedores de testes com publicKey também.

Após criar uma aplicação você poderá pedir a autorização do seu cliente para criar checkout, criar assinaturas, efetuar consultas entre outras ações, conforme o fluxo abaixo:

Solicitando Autorização

A requisição à API de Autorizações é feita informando os dados de autorização via XML em conjunto com os parâmetros de autenticação da sua aplicação (appId e appKey) utilizando o método POST.

POST https://ws.pagseguro.uol.com.br/v2/authorizations/request/?{appId={appId}&appKey={appKey}}

Veja abaixo os cabeçalhos HTTP necessários para fazer uma requisição à API de autorização do PagSeguro informando os dados no formato XML.

O cabeçalho Content-Type deve ser informado como no exemplo abaixo:

Content-Type: application/xml; charset=ISO-8859-1

Dados do cliente e sugestão para cadastro

Ao criar uma autorização você também pode encaminhar os dados do cliente. Assim, caso o e-mail do vendedor enviado via API já esteja cadastrado na base, será sugerido o login com este e-mail.

Caso ele não tenha conta, os dados serão utilizados como sugestão para o cadastro e assim facilitando o cadastro do cliente.

🚧

Atenção

Quantos mais dados corretos forem informados, maior a chance de conversão do vendedor não cadastrado nesse fluxo.

É possível encaminhar os dados tanto de um cliente Vendedor (utilizando CPF) quanto para um cliente Empresarial (Utilizando o CNPJ).

Tratando a resposta

Após realizar uma chamada com sucesso à API de autorização, você deve direcionar o vendedor para o fluxo de autorização, usando o código de requisição retornado. O exemplo abaixo mostra uma URL montada para que o usuário inicie um fluxo de autorização:

''GET https://pagseguro.uol.com.br/v2/authorization/request.jhtml?code={resquestCode}''

Direcionando para autorização

Após realizar uma chamada com sucesso à API de autorização, você deve direcionar o vendedor para o fluxo de autorização, usando o código de requisição retornado. O exemplo abaixo mostra uma URL montada para que o usuário inicie um fluxo de autorização.

''GET https://pagseguro.uol.com.br/v2/authorization/request.jhtml?code={resquestCode}''

Fluxo de autorização

Ao realizar a chamada com sucesso à API de autorização e redirecionar o cliente ao PagSeguro, será exibido uma tela com base nas informações que você encaminhou na chamada.

Caso não tenha encaminhado nenhum dado do cliente ou encaminhou os dados e o PagSeguro verificou que este cliente não possui uma conta no PagSeguro, será apresentada uma tela propondo a criação de uma conta e abaixo a opção de efetuar o login no PagSeguro:

Caso tenha encaminhado os dados e o PagSeguro verificou que este cliente possui uma conta no PagSeguro, serão apresentados os campos para que ele possa efetuar o login no PagSeguro e abaixo a opção propondo a criação de uma conta:

Mais sobre o fluxo de autorização pode ser visto aqui.

Se o cliente clique em "Autorizar , ele será redirecionado para a sua URL de retorno. Neste retorno o PagSeguro encaminha via GET o código de notificação da autorização para que você possa consultar o resultado desta autorização.

O retorno será feito como no exemplo a seguir:
''GET http://www.seusite.com.br/retorno?notificationCode={notificationCode}''

Além disso, o PagSeguro também envia uma notificação para o seu site via POST. Veja mais detalhes na documentação da API de Notificações clicando [aqui.]https://dev.pagseguro.uol.com.br/v1.0/docs/api-notificacao)

Informação Importante:

É exatamente com esse notificationCode que, fazendo a consulta do mesmo obterá os dados do vendedor que autorizou aplicação, como por exemplo:

Autorizações que foram solicitadas e autorizadas, e onde será retornada a publicKey por exemplo.

1º Passo: Gerar Token do ambiente de teste:

  • Para obter o token de sandbox, acesse nossa página de Sandbox.
  • Após realizar o Login, Localize o menu Perfis de Integração e clique em Vendedor. O token de sandbox estará disponível na seção Credenciais. *

2º Gerar sessão:

Chamada:

Header:

Content-Type

Type

Request:

currency:BRL
itemId1:0001
itemDescription1:Notebook Prata
itemAmount1:100.00
itemQuantity1:1
itemWeight1:1000
reference:REF1234
senderName:Jose Comprador
senderAreaCode:11
senderPhone:56713293
senderCPF:38440987803
senderBornDate:12/03/1990
senderEmail:[email protected]
shippingType:1
shippingAddressStreet:Av. Brig. Faria Lima
shippingAddressNumber:1384
shippingAddressComplement:2o andar
shippingAddressDistrict:Jardim Paulistano
shippingAddressPostalCode:01452002
shippingAddressCity:Sao Paulo
shippingAddressState:SP
shippingAddressCountry:BRA
extraAmount:-0.01
redirectURL:http://sitedocliente.com
notificationURL:https://url_de_notificacao.com
maxUses:1
maxAge:3000
shippingCost:0.00

Response:

<session>
    <id>736d6fe8a53a4491950b26376dc48436</id>
</session>

2º Passo: Importar biblioteca PagSeguro em JavaScript:

Features:

Método

Descrição

Chamada

Gerar sessão

Após importar a biblioteca, o primeiro passo é informar o código de sessão.

setSessionId

Obter meios de pagamento disponíveis

Obter todos os meios de pagamento disponíveis para sua conta.

getPaymentMethods

Gerar SenderHash

O senderHash é um identificador com os dados do comprador baseado naquela determinada sessão, garantindo a segurança da venda.

onSenderHashReady

Obter bandeiras

Utilizado para verificar qual a bandeira do cartão que está sendo digitada.

getBrand

Obter valor de parcelas

Opções de parcelamento disponíveis ao comprador.

getInstallment

Gerar token

Utiliza os dados do cartão de crédito para gerar uma criptografia enviada na requisição de cobrança.

createCardToken

Importando a biblioteca:

Página:

3º Processando o Checkout:

Chamada:

Header:

Parâmetro

Dado

Accept

application/vnd.pagseguro.com.br.v3+xml

Content-Type

application/xml

Request

<?xml version="1.0" encoding="UTF-8"?>
<payment>
   <mode>default</mode>
   <method>eft</method>
   <bank>
      <name>itau</name>
   </bank>
   <sender>
      <name>Fulano Silva</name>
      <email>[email protected]</email>
      <phone>
         <areaCode>11</areaCode>
         <number>30380000</number>
      </phone>
      <documents>
         <document>
            <type>CPF</type>
            <value>11475714734</value>
         </document>
      </documents>
      <hash>{{hash_do_comprador}}</hash>
   </sender>
   <currency>BRL</currency>
   <notificationURL>https://sualoja.com.br/notificacao</notificationURL>
   <items>
      <item>
         <id>1</id>
         <description>Descricao do item a ser vendido</description>
         <quantity>1</quantity>
         <amount>1.00</amount>
      </item>
   </items>
   <extraAmount>0.00</extraAmount>
   <reference>R123456</reference>
   <shippingAddressRequired>true</shippingAddressRequired>
   <shipping>
      <address>
         <street>Av. Brigadeiro Faria Lima</street>
         <number>1384</number>
         <complement>1 andar</complement>
         <district>Jardim Paulistano</district>
         <city>Sao Paulo</city>
         <state>SP</state>
         <country>BRA</country>
         <postalCode>01452002</postalCode>
      </address>
      <type>3</type>
      <cost>0.00</cost>
   </shipping>
   <primaryReceiver>
      <publicKey>PUBCF30546BDF334CC3A59D772E3636D8D3</publicKey>
   </primaryReceiver>
   <receivers>
    <receiver>
      <publicKey>PUBCF30546BDF334CC3A59D772E3636D8D5</publicKey>
      <split>
         <amount>30.00</amount>
         <ratePercent>50.00</ratePercent>
         <feePercent>50.00</feePercent>
      </split>
    </receiver>
   </receivers>
</payment>
payment.mode:default
payment.method:creditCard
currency:BRL
item[1].id:123
item[1].description:Product 1 Description
item[1].amount:100.00
item[1].quantity:1
notificationURL:https://yourstore.com.br/notification
reference:ORDER123-teste
sender.name:jose silva
sender.CPF:22111944785
sender.areaCode:11
sender.phone:56273440
sender.email:[email protected]
//sender.hash:c162e6131dbb9696e8b49147a9c5eacabac0cdca91458ee5177819d0a3c9d565
shipping.address.street:Av. Brig. Faria Lima
shipping.address.number:1384
shipping.address.complement:5o andar
shipping.address.district:Jardim Paulistano
shipping.address.postalCode:01452002
shipping.address.city:Sao Paulo
shipping.address.state:SP
shipping.address.country:BRA
shipping.type:3
shipping.cost:0.00
installment.value:100.00
installment.quantity:1
//installment.value=50.00:
installment.noInterestInstallmentQuantity:3
creditCard.token:b4571725ddb2434a89a4d4538dc047c1
creditCard.holder.name:Jose Ocamoto
creditCard.holder.CPF:81496469062
creditCard.holder.birthDate:15/08/1990
creditCard.holder.areaCode:11
creditCard.holder.phone:993019352
billingAddress.street:Rua Doutor Benedito Gomes da Silva
billingAddress.number:178
billingAddress.complement:5o andar
billingAddress.district:Jardim Paulistano
billingAddress.postalCode:01452002
billingAddress.city:Sao Paulo
billingAddress.state:SP
billingAddress.country:BRA
//primaryReceiver.publicKey:PUB2C3E649BD8BB4648A99BB3F6BC424126
receiver[1].publicKey:PUBE17726B1213241668CE17D761C8986E8
receiver[1].split.amount:30.00
//receiver[2].publicKey:PUB6A1B73FA699D4AD7A9D1319815C87055
//receiver[2].split.amount:30.00

Responde:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<transaction>
    <date>2019-08-16T18:02:42.000-03:00</date>
    <code>6ED5D7B1-6F59-4E1F-AA1E-198F13817E98</code>
    <reference>ORDER123</reference>
    <type>1</type>
    <status>3</status>
    <lastEventDate>2019-08-16T18:02:43.000-03:00</lastEventDate>
    <paymentMethod>
        <type>1</type>
        <code>101</code>
    </paymentMethod>
    <grossAmount>100.00</grossAmount>
    <discountAmount>0.00</discountAmount>
    <creditorFees>
        <installmentFeeAmount>3.61</installmentFeeAmount>
        <intermediationRateAmount>0.40</intermediationRateAmount>
        <intermediationFeeAmount>4.99</intermediationFeeAmount>
    </creditorFees>
    <netAmount>91.00</netAmount>
    <extraAmount>0.00</extraAmount>
    <escrowEndDate>2019-08-30T18:02:43.000-03:00</escrowEndDate>
    <installmentCount>2</installmentCount>
    <itemCount>1</itemCount>
    <items>
        <item>
            <id>123</id>
            <description>Product 1 Description</description>
            <quantity>1</quantity>
            <amount>100.00</amount>
        </item>
    </items>
    <sender>
        <name>Customer Name</name>
        <email>[email protected]</email>
        <phone>
            <areaCode>11</areaCode>
            <number>56273440</number>
        </phone>
        <documents>
            <document>
                <type>CPF</type>
                <value>22111944785</value>
            </document>
        </documents>
    </sender>
    <shipping>
        <address>
            <street>Av. Brig. Faria Lima</street>
            <number>1384</number>
            <complement>5o andar</complement>
            <district>Jardim Paulistano</district>
            <city>Sao Paulo</city>
            <state>SP</state>
            <country>BRA</country>
            <postalCode>01452002</postalCode>
        </address>
        <type>3</type>
        <cost>0.00</cost>
    </shipping>
    <applications>
        <application>
            <id>app4281418834</id>
            <name>app4281418834</name>
            <role>INTERMEDIATION</role>
        </application>
    </applications>
    <gatewaySystem>
        <type>cielo</type>
        <rawCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <rawMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <normalizedCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <normalizedMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <authorizationCode>0</authorizationCode>
        <nsu>0</nsu>
        <tid>0</tid>
        <establishmentCode>1056784170</establishmentCode>
        <acquirerName>CIELO</acquirerName>
    </gatewaySystem>
    <primaryReceiver>
        <publicKey>PUBCF30546BDF334CC3A59D772E3636D8D3</publicKey>
    </primaryReceiver>
    <secondaryTransactions>
        <secondaryTransaction>
            <code>96A42D4A-93E8-49E7-A0E9-C09EACC90624</code>
            <receiver>
                <publicKey>PUBCF30546BDF334CC3A59D772E3636D8D5</publicKey>
            </receiver>
        </secondaryTransaction>
    </secondaryTransactions>
</transaction>

Link relacionados: