PagSeguro Developers_

Aqui você encontra as documentações necessárias para integrar com as APIs, Bibliotecas e Módulos do PagSeguro. Tudo o que você precisa em serviços de pagamentos digitais e presenciais.

Suggest Edits

Ambiente de testes

 

O que é o Sandbox?

O PagSeguro Sandbox é um ambiente de teste que deve ser usado para você integrar e testar os processos de interação entre o seu sistema e o PagSeguro.

Nenhuma das transações realizadas nesse ambiente tem valor monetário e nele é possível simular diversas alterações de estado das transações e, caso necessário, reenviar notificações.

Como começar

Basicamente você precisa apontar o seu sistema para o Sandbox trocando o domínio pagseguro.uol.com.br por sandbox.pagseguro.uol.com.br.

Com isso o seu sistema estará apontando para o ambiente de teste e não mais para ambiente real.

Exemplos:

 
Suggest Edits

Comprador de testes

 

Para o seu sistema não existe diferença entre checkouts realizados por usuários cadastrados ou não, no PagSeguro.

Mesmo assim o PagSeguro Sandbox fornece um comprador cadastrado para que você use em seus checkouts.

Você pode visualizá-lo aqui.

Caso sinta a necessidade de fazer um checkout com o usuário não cadastrado, sinta-se à vontade para utilizar qualquer e-mail no formato xxxxxxx@sandbox.pagseguro.com.br.

 
Suggest Edits

Cartões de crédito para testes

 

No PagSeguro Sandbox qualquer número de cartão que possua uma sequência válida, uma data de validade maior que a data de hoje e um código de segurança com o tamanho correto será aceito no checkout.

Vale lembrar que no PagSeguro Sandbox nenhuma transação é enviada para o ambiente real, portanto mesmo que você use dados de um cartão real essa transação nunca será cobrada.

De qualquer forma, nós fornecemos um cartão para testes:

Número
Bandeira
Valido até
CVV

4111 1111 1111 1111

VISA

12/2030

123

 
Suggest Edits

Autenticação

 

Para efetuar chamadas para as APIs do PagSeguro é necessário se autenticar usando suas {{credenciais}}. A autenticação pode ser feita de duas maneiras:

1. Credenciais de Conta

Esse tipo de autenticação é utilizada para que você efetue vendas através da sua conta PagSeguro, informando o e-mail e token, que devem ser encaminhados via parâmetro no momento de sua chamada. O e-mail utilizado será o mesmo do cadastro de sua conta PagSeguro, já o token você pode obtê-lo através de sua tela logada em sua conta PagSeguro.

Obtenha seu token clicando aqui

Caso você gere um novo token, o anterior é invalidado.

Exemplo de como utilizar suas {{credenciais}}:

https://ws.pagseguro.uol.com.br/{{api-endpoint}}?email={{email}}&token={{token}}
https://ws.sandbox.pagseguro.uol.com.br/{{api-endpoint}}?email={{email}}&token={{token-sandbox}}

2. Credenciais de Aplicação

Esse tipo de autenticação é utilizada quando você necessita efetuar vendas em nome de outros vendedores como, por exemplo, plataformas e marketplaces. A autenticação neste caso utiliza o ID (appID) e a chave da aplicação do vendedor (appKey).

Para algumas chamadas também é necessário o código de autorização do vendedor (authorizationCode), o qual é recebido na implementação do Modelo de Aplicações.

Clique aqui para criar sua aplicação

Por questões de segurança, recomenda-se não expor as credenciais no front-end do seu sistema. Sendo assim, as chamadas para os serviços de integração que exigem autenticação devem ser feitos diretamente do back-end.

Exemplo de como utilizar suas {{credenciais}} de aplicação:

https://ws.pagseguro.uol.com.br/{{api-endpoint}}?appID={{appID}}&appKey={{appKey}}
https://ws.sandbox.pagseguro.uol.com.br/{{api-endpoint}}?appID={{appID}}&appKey={{appKey-sandbox}}

Ao excluir uma aplicação, todas as permissões concedidas a ela são perdidas, ou seja:

  • Ela não poderá mais criar checkouts;
  • Ela não poderá mais receber pagamentos a partir de checkouts criados antes da remoção;
  • Ela poderá continuar recebendo notificações;
  • Ela não será exibida mais na listagem de aplicações do integrador;
  • Ela não será mais exibida na listagem de autorizações concedidas.
 

HTTP 401 – Unauthorized

Ocorre quando sua aplicação encaminhou uma credencial invalida ou inexistente.

HTTP 403 – Forbidden

Ocorre quando sua conta ou aplicação não tem permissão para utilizar o serviço.

HTTP 405 – Method Not Allowed

Ocorre quando sua aplicação efetuou a chamada utilizando um método não esperado. Neste caso verifique se o método da chamada é GET , POST ou PUT.

HTTP 415 – Cannot consume content type

Ocorre quando não é encaminhado o Content-Type na chamada.

HTTP 400 – Bad Request

Ocorre quando um ou mais dados foram encaminhados de forma incorreta ou fora do padrão. Este retorno possui um JSON ou XML no corpo da mensagem que identifica quais os erros presentes na chamada, no retorno sempre terá um código e uma mensagem descrevendo o erro.
Veja abaixo exemplos de retorno em XML e JSON.

Algumas API's tem somente a opção de retorno em XML.

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<errors>
    <error>
        <code>Error Code</code>
        <message>Error Description</message>
    </error>
</errors>
{
  "error": true,
  "errors": {
    "error-number": "error description."
  }
}
 
Suggest Edits

Introdução

 

Requisitos.

Se o seu computador não possui a conectividade com bluetooth, você pode utilizar um adaptador bluetooth USB com os seguintes requerimentos mínimos:

INTERFACE: USB 2.0

Bluetooth Power Class: Class 2 - 2.5mW (4dBm) 10 meters

CONECTIVIDADE: Compatível com a versão Bluetooth: 4.2 + compatibilidade com 2.1 EDR / 3.0 / 4.0 & 4.1

Para determinar a versão do seu Bluetooth, acesse a propriedade do dispositivo e na guia avançado procure por LMP.

Utilize o digito inicial para achar a versão do Bluetooth utilizando a tabela abaixo:

LMP

Bluetooth Version

0

Bluetooth 1.0b

1

Bluetooth 1.1

2

Bluetooth 1.2

3

Bluetooth 2.0 + EDR

4

Bluetooth 2.1 + EDR

5

Bluetooth 3.0 + HS

6

Bluetooth 4.0

7

Bluetooth 4.1

8

Bluetooth 4.2

9

Bluetooth 5

Para quem é destinado?

O PluPag tem como objetivo atender o público de clientes e parceiros que desejam utilizar plataforma com os seguintes Sistemas Operacionais:

  • Windows
  • Linux
  • Android
  • iOS

Pré-requisitos?

 
Suggest Edits

Estrutura da aplicação

 
 
Suggest Edits

Ambientes Disponíveis

 

Como começar?

Nossos terminais de produção podem ser utilizados apontando para o nosso ambiente de teste.

Cartões de Crédito para teste

Vale lembrar que no PagSeguro Sandbox nenhuma transação é enviada para o ambiente real, portanto mesmo que você use dados de um cartão real essa transação nunca será cobrada.

 

Moderninha Pro

Antes de iniciar, entre no Menu e verifique a versão do firmware conforme as imagens abaixo:

Caso sua Moderninha PRO não esteja na versão 3.11.x (ou superior), basta iniciar a atualização manual através da opção menu > configurações gerais > atualização.

Pareando a sua Moderninha Pro

É muito simples. Tudo o que você precisa fazer para começar é parear via Bluetooth o seu dispositivo Android e a Moderninha Pro. Estando os dois pareados, podemos começar a integração.

É importante destacar que a sua aplicação precisa identificar o MacAddress Bluetooth da Moderninha Pro com a qual se deseja comunicar, pois esta informação será utilizada durante o processo.

Para tornar o bluetooth da moderninha visível, basta apertar a tecla '0'.

Não é necessário qualquer forma de autenticação (login). A identificação de usuário é feita diretamente na Moderninha Pro.

Ainda não tem a sua Moderninha Pro? Adquira a sua agora em https://loja.pagseguro.uol.com.br/

 
Suggest Edits

Moderninha Pro - Android

 

É um terminal de pagamento GPRS/3G, sem fio, que aceita cartões de crédito e débito, e integrações com tecnologia com Wi-Fi, Bluetooth e NFC. Permite fácil integração com os sistemas de automação comercial em várias plataformas.

Visão Geral

Se você tem um aplicativo Android ou iOS e quer fazer vendas a partir dele usando a sua Moderninha Pro, o PlugPag é a solução ideal. Com ele você consegue conectar o seu app à Moderninha Pro e realizar cobranças através do PagSeguro.

Já se você possui uma aplicação Windows ou Linux, esta integração com a Moderninha Pro permite que a sua aplicação se conecte via Bluetooth, possibilitando ações como Solicitação de Pagamentos, obtenção dos dados de retorno e solicitação de estorno de transações.

Versão

Antes de iniciar, entre no Menu e verifique a versão do firmware conforme as imagens abaixo:

Caso sua Moderninha PRO não esteja na versão 3.11.x (ou superior), basta iniciar a atualização manual através da opção menu > configurações gerais > atualização.

Pareando a sua Moderninha Pro

É muito simples. Tudo o que você precisa fazer para começar é parear via Bluetooth o seu dispositivo Android e a Moderninha Pro. Estando os dois pareados, podemos começar a integração.

É importante destacar que a sua aplicação precisa identificar o MacAddress Bluetooth da Moderninha Pro com a qual se deseja comunicar, pois esta informação será utilizada durante o processo.

Para tornar o bluetooth da moderninha visível, basta apertar a tecla '0'.

Não é necessário qualquer forma de autenticação (login). A identificação de usuário é feita diretamente na Moderninha Pro.

Ainda não tem a sua Moderninha Pro? Adquira a sua agora em https://loja.pagseguro.uol.com.br/

Importando a biblioteca

Todas as chamadas que você verá nos próximos passos são efetuadas utilizando uma biblioteca exclusiva para android, que deverá ser importada em seu projeto.

Primeiramente é necessário configurar o repositório da biblioteca no arquivo build.gradle localizado na raiz do projeto. Nele adicione as linhas destacadas abaixo:

repositories {
       jcenter()
       maven {
            url 'https://github.com/pagseguromaster/plugpag/raw/master/android'
       }
}

Em seguida inclua a linha abaixo no arquivo build.gradle do módulo de seu projeto:

dependencies {
    ...
    compile 'br.uol.pagseguro.client:btserial:1.1.0'
    compile 'br.uol.pagseguro.client:plugpag:1.1.0'
    ...
}

Também é importante informar que esta biblioteca não necessita de nenhum tipo de autenticação com login e senha pois a Moderninha já está autenticada e vinculada a uma conta PagSeguro.

Dados

public class PlugPag {

   public static final int RET_OK;
   public static final int BUFF_SIZE;
   public static final int NULL_PTR;
   public static final int POS_NOT_READY;
   public static final int TRANS_DENIED;
   public static final int DATA_INV_RESULT_MESSAGE;
   public static final int INV_AMOUNT_PARAM;
   public static final int INV_TOT_AMOUNT_PARAM;
   public static final int INV_USER_REF_PARAM;
   public static final int INV_TRS_RESULT_PARAM;
   public static final int DRIVER_NOT_FOUND;
   public static final int DRIVER_FUNCTION_ERROR;
   public static final int JNI_EXIT_EXCEPTION;

   public static final int CREDIT = 1;
   public static final int DEBIT = 2;
   public static final int VOUCHER = 3;

   public static final int A_VISTA = 1;
   public static final int PARC_VENDEDOR = 2;
}
 
Suggest Edits

Moderninha WIFI - Android

 

Moderninha WIFI

É um terminal de pagamento GPRS/3G, sem fio, que aceita cartões de crédito e débito, e integrações com tecnologia com Wi-Fi, Bluetooth e NFC. Permite fácil integração com os sistemas de automação comercial em várias plataformas.

Visão Geral

Se você tem um aplicativo Android ou iOS e quer fazer vendas a partir dele usando a sua Moderninha, o PlugPag é a solução ideal. Com ele você consegue conectar o seu app à Moderninha e realizar cobranças através do PagSeguro.

Já se você possui uma aplicação Windows ou Linux, esta integração com a Moderninha permite que a sua aplicação se conecte via Bluetooth à Moderninha do PagSeguro, possibilitando ações como Solicitação de Pagamentos, obtenção dos dados de retorno e solicitação de estorno de transações.

Versão

Antes de iniciar, entre no Menu e verifique a versão do firmware conforme as imagens abaixo:

Caso sua Moderninha não esteja na versão 3.11.x (ou superior), basta iniciar a atualização manual através da opção menu > configurações gerais > atualização.

Pareando a sua Moderninha

É muito simples. Tudo o que você precisa fazer para começar é parear via Bluetooth o seu dispositivo Android e a Moderninha. Estando os dois pareados, podemos começar a integração.

É importante destacar que a sua aplicação precisa identificar o MacAddress Bluetooth da Moderninha com a qual se deseja comunicar, pois esta informação será utilizada durante o processo.

Para tornar o bluetooth da moderninha visível, basta apertar a tecla '0'

Não é necessário qualquer forma de autenticação (login). A identificação de usuário é feita diretamente na Moderninha.

Ainda não tem a sua Moderninha? Adquira a sua agora em https://loja.pagseguro.uol.com.br/

Importando a biblioteca

Todas as chamadas que você verá nos próximos passos são efetuadas utilizando uma biblioteca exclusiva para android, que deverá ser importada em seu projeto.

Primeiramente é necessário configurar o repositório da biblioteca no arquivo build.gradle localizado na raiz do projeto. Nele adicione as linhas destacadas abaixo:

repositories {
       jcenter()
       maven {
            url 'https://github.com/pagseguromaster/plugpag/raw/master/android'
       }
}

Em seguida inclua a linha abaixo no arquivo build.gradle do módulo de seu projeto:

dependencies {
    ...
    compile 'br.uol.pagseguro.client:btserial:1.1.0'
    compile 'br.uol.pagseguro.client:plugpag:1.1.0'
    ...
}

Também é importante informar que esta biblioteca não necessita de nenhum tipo de autenticação com login e senha pois a Moderninha já está autenticada e vinculada a uma conta PagSeguro.

Dados

public class PlugPag {

   public static final int RET_OK;
   public static final int BUFF_SIZE;
   public static final int NULL_PTR;
   public static final int POS_NOT_READY;
   public static final int TRANS_DENIED;
   public static final int DATA_INV_RESULT_MESSAGE;
   public static final int INV_AMOUNT_PARAM;
   public static final int INV_TOT_AMOUNT_PARAM;
   public static final int INV_USER_REF_PARAM;
   public static final int INV_TRS_RESULT_PARAM;
   public static final int DRIVER_NOT_FOUND;
   public static final int DRIVER_FUNCTION_ERROR;
   public static final int JNI_EXIT_EXCEPTION;

   public static final int CREDIT = 1;
   public static final int DEBIT = 2;
   public static final int VOUCHER = 3;

   public static final int A_VISTA = 1;
   public static final int PARC_VENDEDOR = 2;
}
 
Suggest Edits

Minizinha - Android

 

É um leitor de pagamento, sem fio, que aceita cartões de crédito e débito, e integrações com tecnologia Bluetooth. Permite fácil integração com os sistemas de automação comercial em várias plataformas.

Visão Geral

Se você tem um aplicativo Android ou iOS e quer fazer vendas a partir dele usando a sua Minizinha, o PlugPag é a solução ideal. Com ele você consegue conectar o seu app à Minizinha e realizar cobranças através do PagSeguro.

Observações

A biblioteca PlugPag possui suporte para API level 16 (4.1 Jelly Bean) à 26 (8.0 Oreo)
Não é possível fazer chamadas da biblioteca caso o usuário tenha permissões de root no aparelho por motivos de segurança.

Pareando a sua Moderninha Pro

É muito simples. Tudo o que você precisa fazer para começar é parear via Bluetooth o seu dispositivo Android e a Minizinha. Estando os dois pareados, podemos começar a integração.

Para tornar o bluetooth da Minizinha visível, basta apertar a tecla '0'.

Ainda não tem a sua Minizinha? Adquira a sua agora em https://loja.pagseguro.uol.com.br/

Importando a biblioteca

Todas as chamadas que você verá nos próximos passos são efetuadas utilizando uma biblioteca exclusiva para android, que deverá ser importada em seu projeto.

Primeiramente é necessário configurar o repositório da biblioteca no arquivo build.gradle localizado na raiz do projeto. Nele adicione as linhas destacadas abaixo:

repositories {
       ...
       maven {
            url 'https://github.com/pagseguromaster/plugpag/raw/master/3.x/android'
       }
       ...
}

Em seguida inclua a linha abaixo no arquivo build.gradle do módulo de seu projeto:

dependencies {
  ...
   implementation 'com.android.support:design:27.1.0'
   implementation 'br.com.uol.pagseguro:plugpag:3.0.0'
   ...
}

Permissões

Para integrar com a biblioteca PlugPag é necessário adicionar algumas permissões no arquivo AndroidManifest.xml:

Permissões obrigatórios

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

Permissões opcionais

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Essas permissões permitem à biblioteca obter coordenadas no momento da transação. Essas coordenadas são enviadas aos servidores do PagSeguro e ajudam a melhorar nossos serviços.

Activity

Algumas funcionalidades da biblioteca PlugPag necessitam que uma Activity seja iniciada.

Para isso, é necessário incluir o trecho abaixo:

<application ...>
  ...
  <activity
    android:name="br.com.uol.pagseguro.plugpag.PlugPagActivity" />
 ...
</application>

Classes

A biblioteca PlugPag é composta de um conjunto de classes. A classe principal chama-se PlugPag, mas é necessário utilizar classes auxiliares para configurações e trocas de informações.

Segue abaixo uma lista com classes que compõe a biblioteca.

Classe
Descrição

DeviceInfo

Informações sobre o aparelho (smartphone/tablet) utilizado.

PlugPag

Classe principal da biblioteca. Essa classe é responsável pela configuração de comunição com os dispositivos bluetooth e pelas transações.

PlugPagAbortResult

Resultado obtido ao solicitar um cancelamento de operação, enquanto a operação está em andamento.

PlugPagAppIdentification

Identificação do aplicativo.

PlugPagDevice

Identificação do terminal ou leitor que será utilizado para as transações.

PlugPagEventData

Dados de eventos gerados durante transações para atualização de eventos no aplicativo.

PlugPagPaymentData

Informações de um pagamento a ser realizado.

 
Suggest Edits

Providers

 
 
 
Suggest Edits

Moderninha Pro - Android ds

 

Métodos

Método
Retorno
Descrição

GetVersionLib

String

Retorna uma string null terminated com a versão da biblioteca de integração.

SetVersionName

Int

Seta o nome e versão da aplicação que está utilizando a PlugPag. É MANDATÓRIO que esta função seja chamada antes de se realizar qualquer transação.

InitBTConnection

Nenhum

Inicializa a comunicação blutooth utilizando o dispositivo padrão do aparelho Android.

SimplePaymentTransaction

Int

Inicia a transação de venda. Em caso de sucesso, retorna os dados da transação numa estrutura.

CancelTransaction

Int

Inicia a transação de estorno. Em caso de sucesso, retorna os dados da transação numa estrutura

GetLastApprovedTransactionStatus

Int

Verifica qual foi a última transação com sucesso feita pelo terminal.

getRawBuffer

Byte[]

Retorna o buffer recebido como resultado da última comunicação via bluetooth.

getMessage

Nenhum

Retorna a mensagem resultante da transação (ISO-8859-1/Latin-1).

getTransactionCode

String

Retorna o transaction code obtido pela última chamada de SimplePaymentTransaction ou GetLastApprovedTransaction.

getDate

String

Retorna a data da transação da última chamada de SimplePayment ou GetLastApprovedTransaction no formato “yyyy-mm-dd”.

getTime

String

Retorna a hora da transação da última chamada de SimplePayment ou GetLastApprovedTransaction no formato “hh:mm:ss”

getHostNsu

String

Retorna o NSU do host obtido pela última chamada de SimplePaymentTransaction, GetLastApprovedTransaction ou CancelTransaction.

getCardBrand

String

Retorna a bandeira do cartão da transação da última chamada de SimplePayment ou GetLastApprovedTransaction.

getBin

String

Retorna os 6 primeiros dígitos do cartão da última transação de sucesso.

getHolder

String

Retorna os 4 últimos dígitos do cartão da última transação de sucesso.

getTerminalSerialNumber

String

Retorna o número de série da Moderninha que realizou a última transação.

Para mais detalhes você pode baixar a documentação completa

Efetuando uma Solicitação de Pagamento

Para efetuar uma chamada para a Moderninha Pro, você deve utilizar o método SimplePaymentTransaction. Veja abaixo alguns exemplos de uma solicitação de venda:

    int ret;

    //  Transação de 12,34
    String amount = "1234";

    //  A Vista, 1 Parcela
    int installmentType = PlugPag.A_VISTA;
    int installment = 1;


    //  Transação crédito
    int method = PlugPag.CREDIT;

    //  Meu código de venda é “CODIGVENDA”
    String codigoVenda = ”CODIGVENDA”;


    PlugPag plugPag = new PlugPag();
    plugPag.InitBTConnection();
    pugPag.SetVersionName("MyApp", "R001");


    ret = plugPag.SimplePaymentTransaction(
            method,
            installmentType,
            installment,
            amount,
            codigoVenda);

    String date = plugPag.getDate();
    String time = plugPag.getTime();
    String cardBrand = plugPag.getCardBrand();
    int ret;

    //  Transação de 1208,34
    String amount = "128034";

    //  7 Parcelas
    int installmentType = PlugPag.PARC_VENDEDOR;
    int installment = 7;


    //  Transação crédito
    int method = PlugPag.CREDIT;

    //  Meu código de venda é “CODIGVENDA”
    String codigoVenda = ”CODIGVENDA”;


    PlugPag plugPag = new PlugPag();
    plugPag.InitBTConnection();

    pugPag.SetVersionName("MyApp", "R001");

    ret = plugPag.SimplePaymentTransaction(
            method,
            installmentType,
            installment,
            amount,
            codigoVenda);

    String date = plugPag.getDate();
    String time = plugPag.getTime();
    String cardBrand = plugPag.getCardBrand();

Estornando uma Transação

Para iniciar uma transação de estorno na Moderninha Pro, acompanhe o exemplo a seguir:

PlugPag plugPag = new PlugPag();

plugPag.InitBTConnection();

ret = plugPag.CancelTransaction();

Consultando a última transação

Para consultar a última transação na Moderninha Pro, acompanhe o exemplo a seguir:

PlugPag plugPag = new PlugPag();

plugPag.InitBTConnection();

ret = plugPag.GetLastApprovedTransactionStatus ();

String date = plugPag.getDate();
String time = plugPag.getTime();
String cardBrand = plugPag.getCardBrand();
String hostNsu = plugPag.getHostNsu();

Caso exista uma transação em andamento no momento da consulta, a função GetLastApprovedTransactionStatus() aguarda a finalização da transação e retorna os dados desta se aprovada (nessessário biblioteca 1.3.0+ e moderninha 3.12+).

Aplicação Exemplo

A aplicação de exemplo está disponível no GitHub. Basta acessar o link a seguir:

Exemplo Java

 
Suggest Edits

Moderninha Pro - iOS

 

Métodos

Método
Retorno
Descrição

GetVersionLib

const char*

Retorna uma const char com a versão da biblioteca de integração.

SetVersionName: withVersion

Int

Seta o nome e versão da aplicação que está utilizando a PlugPag. É MANDATÓRIO que esta função seja chamada antes de se realizar qualquer transação.

InitBTConnection

Int

Inicializa a comunicação blutooth utilizando o dispositivo padrão do aparelho iOS.

SimplePaymentTransaction: withInstallmentType: endInstallments: endAmount

Int

Inicia a transação de venda. Em caso de sucesso, retorna os dados da transação numa estrutura.

CancelTransaction

Int

Inicia a transação de estorno. Em caso de sucesso, retorna os dados da transação numa estrutura

GetLastApprovedTransactionStatus

Int

Verifica qual foi a última transação com sucesso feita pelo terminal.

SetModel

nenhum

Seta o modelo do terminal PagSeguro que a PlugPag vai parear e conectar via bluetooth

SetPeripheralName

nenhum

Seta o ID do terminal PagSeguro que a PlugPag vai parear e conectar via Bluetooth (O ID pode ser encontrado ao pressionar a tecla '0' no terminal).

SetPeripheral:withName

nenhum

Seta o modelo do terminal e o ID do terminal PagSeguro que a PlugPag vai parear e conectar via Bluetooth.

GetListModels

NSArray (NSArray de Strings)

Retorna uma lista de modelos de terminais PagSeguro disponível para pareamento via Bluetooth.

GetListPeripheral

NSArray (NSArray de Strings)

Retorna uma lista de terminais PagSeguro disponíveis para pareamento via Bluetooth de acordo com o modelo selecionado. Limitação: Deve ser Chamado após ter informado o modelo desejado através do método SetModel

GetPairPeripheralStatus

Int

Retorna o status do pareamento Bluetooth, sendo 3 status possíveis: PAIR_STATE_PROCESSING, PAIR_STATE_OK ou PAIR_STATE_FAIL.

Para mais detalhes você pode baixar a documentação completa

Efetuando uma Solicitação de Pagamento

Para efetuar uma chamada para a Moderninha PRO, você deve utilizar o método SimplePaymentTransaction. Veja abaixo alguns exemplos de uma solicitação de venda:

[[PlugPag sharedInstance] SetVersionName:@"MyApp" withVersion:@"R001"];
int ret = [[PlugPag sharedInstance] InitBTConnection];

    if (ret == RET_OK) {

        // Transação de 12,34
        NSString * value = @"1234";

        // Venda, Crédito, A Vista, R$ 12,34
        ret = [[PlugPag sharedInstance] SimplePaymentTransaction:CREDIT withInstallmentType:A_VISTA andInstallments:1 andAmount:value andUserReference:@"CODIGVENDA"];

        if (ret == RET_OK) {
            _txtResultado.text = @"Transação realizada com sucesso";
        }else{
            _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
        }
    }else{
        _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
    }

Estornando uma Transação

Para iniciar uma transação de estorno na Moderninha PRO, acompanhe o exemplo a seguir:

int ret = [[PlugPag sharedInstance] InitBTConnection];

    if (ret == RET_OK) {

        // Estorno
        ret = [[PlugPag sharedInstance] CancelTransaction];

        if (ret == RET_OK) {
            _txtResultado.text = @"Estorno realizado com sucesso";
        }else{
            _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
        }

    }else{
        _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
    }

Consultando a última transação aprovada

Para consultar a última transação aprovada na Moderninha PRO, acompanhe o exemplo a seguir:

int ret = [[PlugPag sharedInstance] InitBTConnection];

    if (ret == RET_OK) {

        // Consulta a última transação
        ret = [[PlugPag sharedInstance] GetLastApprovedTransactionStatus];

        if (ret == RET_OK) {

            NSString *txDate = [PlugPag sharedInstance].date;
            NSString *txTime = [PlugPag sharedInstance].time;
            NSString *txHost = [PlugPag sharedInstance].hostNsu;
            NSString *txCardBrand = [PlugPag sharedInstance].cardBrand;

        }else{
            _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
        }

    }else{
        _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
    }
  • Caso exista uma transação em andamento no momento da consulta, a função GetLastApprovedTransactionStatus() aguarda a finalização da transação e retorna os dados desta se aprovada (nessessário biblioteca 1.3.0+ e moderninha 3.12+).

Aplicação Exemplo

A aplicação de exemplo está disponível no GitHub. Basta acessar o link de acordo com a linguagem desejada:

Objective-C
Swift

 
Suggest Edits

Moderninha Pro - Windows

 

Métodos

Método
Retorno
Descrição

GetVersionLib

const char*

Retorna uma string null terminated com a versão da biblioteca de integração.

SetVersionName

Int

Seta o nome e versão da aplicação que está utilizando a PlugPag. É MANDATÓRIO que esta função seja chamada antes de se realizar qualquer transação.

InitBTConnection

Nenhum

Configura a porta com que está pareada com a Moderninha.

SimplePaymentTransaction

Int

Inicia a transação de venda. Em caso de sucesso, retorna os dados da transação numa estrutura.

CancelTransaction

Int

Inicia a transação de estorno. Em caso de sucesso, retorna os dados da transação numa estrutura

GetLastApprovedTransactionStatus

Int

Verifica qual foi a última transação com sucesso feita pelo terminal.

Para mais detalhes você pode baixar a documentação completa

Efetuando uma Solicitação de Pagamento

Para efetuar uma chamada para a Moderninha PRO, você deve utilizar o método SimplePaymentTransaction. Veja abaixo alguns exemplos de uma solicitação de venda:

    int ret;
    tyComPort comPort;
    enPPPSPaymentMethod paymentMethod;
    enPPPSInstallmentType installmentType;
    unsigned int installment;
    tyAmount amount;
    tyUserReference userReference;
    tyAppName appName;
    tyAppVersion appVersion;
    stPPPSTransactionResult transactionResult;

    memset ((void*) comPort, 0, sizeof (tyComPort));
    memset ((void*) amount, 0, sizeof (tyAmount));
    memset ((void*) userReference, 0, sizeof (tyUserReference));
    memset ((void*) appName, 0, sizeof (tyAppName));
    memset ((void*) appVersion, 0, sizeof (tyAppVersion));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memcpy (comPort, "COM11", 5);

    // Pagamento no débito
    paymentMethod = PPPAGSEGURO_DEBIT;
    // A vista (1 parcela)
    installmentType = PPPAGSEGURO_A_VISTA;
    installment = 1;

    // R$ 30,00 Reais
    memcpy (amount, "3000", 4);

    // Meu código de venda é "0000000001"
    memcpy (userReference, "0000000001", 10);

    InitBTConnection (comPort);

    // Setar o nome e versão da aplicação
    memcpy (appName, "MyApplication", 13);
    memcpy (appVersion, "R001", 4);

    SetVersionName(appName, appVersion);

    ret = SimplePaymentTransaction (
        paymentMethod,
        installmentType,
        installment,
        &amount,
        &userReference,
        &transactionResult
    );
    int ret;
    tyComPort comPort;
    enPPPSPaymentMethod paymentMethod;
    enPPPSInstallmentType installmentType;
    unsigned int installment;
    tyAmount amount;
    tyUserReference userReference;
    tyAppName appName;
    tyAppVersion appVersion;
    stPPPSTransactionResult transactionResult;

    memset ((void*) comPort, 0, sizeof (tyComPort));
    memset ((void*) amount, 0, sizeof (tyAmount));
    memset ((void*) userReference, 0, sizeof (tyUserReference));
    memset ((void*) appName, 0, sizeof (tyAppName));
    memset ((void*) appVersion, 0, sizeof (tyAppVersion));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memcpy (comPort, "COM11", 5);

    // Pagamento no crédito
    paymentMethod = PPPAGSEGURO_CREDIT;
    //(7 parcelas)
    installmentType = PPPAGSEGURO_PARC_VENDEDOR;
    installment = 7;

    // R$ 200,00 Reais
    memcpy (amount, "20000", 4);

    // Meu código de venda é "CODIGVENDA"
    memcpy (userReference, "CODIGVENDA", 10);

    InitBTConnection (comPort);

    // Setar o nome e versão da aplicação
    memcpy (appName, "MyApplication", 13);
    memcpy (appVersion, "R001", 4);

    SetVersionName(appName, appVersion);

    ret = SimplePaymentTransaction (
        paymentMethod,
        installmentType,
        installment,
        &amount,
        &userReference,
        &transactionResult
    );

Assim que a chamada é feita, a Moderninha PRO iniciará o processo de venda com os parâmetros encaminhados pela sua aplicação. Você pode configurar a Solicitação de Pagamento a partir dos parâmetros que são passados para o método SimplePaymentTransaction. Veja abaixo a listagem dos parâmetros:

Parâmetro
Tipo
Descrição

comPort

*tyComPort

Porta COM mapeada para Bluetooth e já pareada com a Moderninha PRO.

paymentMethod

enPPPSPaymentMethod

Tipo de transação: crédito, débito ou voucher.

installmentType

enPPPSInstallmentType

Tipo de parcelamento: à vista ou parcelado.

installment

unsigned int

Número de parcelas. Caso seja pagamento à vista, valor deve ser 1.

amount

*tyAmount

Valor da transação, com 2 para centavos, sem pontos e virgulas. Ex: "R$ 1.234,56" deve ser passado como "123456".

reference

*tyUserReference

Código da venda, definido pela sua aplicação.

Os tipos customizados são definidos da seguinte maneira:

Tipo
Definição

tyComPort

char[8]

enPPPSPaymentMethod

enum {PPPAGSEGURO_CREDIT = 1, PPPAGSEGURO_DEBIT = 2, PPPAGSEGURO_VOUCHER = 3}

enPPPSInstallmentType

enum {PPPAGSEGURO_A_VISTA = 1, PPPAGSEGURO_PARC_VENDEDOR = 2}

tyAmount

char[33]

tyUserReference

char[21]

A configuração da Solicitação de Pagamento deve seguir estas regras:

  • Não é possível realizar pagamentos de menos de R$ 1,00;
  • Pagamentos parcelados podem ser divididos em no máximo 12 parcelas;
  • Pagamentos parcelados devem ter valor mínimo de parcela de R$ 5,00.

O último parâmetro do método SimplePaymentTransaction é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha PRO. A estrutura é apresentada no item Dados desta documentação.

Outro ponto importante é o código de referência (ou código de venda) que pode ser encaminhado pela sua aplicação. Este parâmetro pode conter o seu número de ordem ou pedido para que você possa efetuar a conciliação dos seus pagamentos posteriormente.

Consultando a última transação

Sua aplicação pode obter os dados da última transação efetuada com sucesso em sua Moderninha PRO. Para isso você deve utilizar o método GetLastApprovedTransactionStatus(). Veja o exemplo abaixo:

    int ret;
    tyComPort portaCom;

    memset ((void*) portaCom, 0, sizeof (portaCom));

    // Porta COM11 está com a Moderninha Pro pareada no Bluetooth
    memset (portaCom, "COM11", 5);

    ret = GetLastApprovedTransactionStatus (&comPort, &transactionResult);

O último parâmetro do método GetLastApprovedTransactionStatus é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha PRO. A estrutura é apresentada no item Dados.

  • Caso exista uma transação em andamento no momento da consulta, a função GetLastApprovedTransactionStatus() aguarda a finalização da transação e retorna os dados desta se aprovada (nessessário biblioteca 1.3.0+ e moderninha 3.12+).

Estornando uma Transação

Sua aplicação também pode iniciar um processo de estorno de transação. É importante salientar que esta chamada apenas inicia o processo de estorno. Os demais passos são feitos diretamente na moderninha. Veja exemplo a seguir:

    int ret;
    tyComPort portaCom;

    memset ((void*) portaCom, 0, sizeof (portaCom));

    // Porta COM11 está com a Moderninha Pro pareada no Bluetooth
    memset (portaCom, "COM11", 5);

    ret = CancelTransaction (&portaCom, &transactionResult);

O último parâmetro do método CancelTransaction é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha PRO. A estrutura é apresentada no item Dados.

Aplicação Exemplo

A aplicação de exemplo está disponível no GitHub. Basta acessar o link a seguir:

Exemplo C#
Exemplo Java
Exemplo Python

 
Suggest Edits

Moderninha Pro - Linux

 

Métodos

Método
Retorno
Descrição

GetVersionLib

const char*

Retorna uma string null terminated com a versão da biblioteca de integração.

SetVersionName

Int

Seta o nome e versão da aplicação que está utilizando a PlugPag. É MANDATÓRIO que esta função seja chamada antes de se realizar qualquer transação.

InitBTConnection

Nenhum

Configura a porta com que está pareada com a Moderninha. Deve ser passada a porta que foi mapeada seguindo as instruções em Mapeando device bluetooth

SimplePaymentTransaction

Int

Inicia a transação de venda. Em caso de sucesso, retorna os dados da transação numa estrutura.

CancelTransaction

Int

Inicia a transação de estorno. Em caso de sucesso, retorna os dados da transação numa estrutura

GetLastApprovedTransactionStatus

Int

Verifica qual foi a última transação com sucesso feita pelo terminal.

Para mais detalhes você pode baixar a documentação completa

Efetuando uma Solicitação de Pagamento

Para efetuar uma chamada para a Moderninha PRO, você deve utilizar o método SimplePaymentTransaction. Veja abaixo alguns exemplos de uma solicitação de venda:

    int ret;
    tyComPort comPort;
    enPPPSPaymentMethod paymentMethod;
    enPPPSInstallmentType installmentType;
    unsigned int installment;
    tyAmount amount;
    tyUserReference userReference;
    tyAppName appName;
    tyAppVersion appVersion;
    stPPPSTransactionResult transactionResult;

    memset ((void*) comPort, 0, sizeof (tyComPort));
    memset ((void*) amount, 0, sizeof (tyAmount));
    memset ((void*) userReference, 0, sizeof (tyUserReference));
    memset ((void*) appName, 0, sizeof (tyAppName));
    memset ((void*) appVersion, 0, sizeof (tyAppVersion));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memcpy (comPort, "COM11", 5);

    // Pagamento no débito
    paymentMethod = PPPAGSEGURO_DEBIT;
    // A vista (1 parcela)
    installmentType = PPPAGSEGURO_A_VISTA;
    installment = 1;

    // R$ 30,00 Reais
    memcpy (amount, "3000", 4);

    // Meu código de venda é "0000000001"
    memcpy (userReference, "0000000001", 10);

    InitBTConnection (comPort);

    // Setar o nome e versão da aplicação
    memcpy (appName, "MyApplication", 13);
    memcpy (appVersion, "R001", 4);

    SetVersionName(appName, appVersion);

    ret = SimplePaymentTransaction (
        paymentMethod,
        installmentType,
        installment,
        &amount,
        &userReference,
        &transactionResult
    );
    int ret;
    tyComPort comPort;
    enPPPSPaymentMethod paymentMethod;
    enPPPSInstallmentType installmentType;
    unsigned int installment;
    tyAmount amount;
    tyUserReference userReference;
    tyAppName appName;
    tyAppVersion appVersion;
    stPPPSTransactionResult transactionResult;

    memset ((void*) comPort, 0, sizeof (tyComPort));
    memset ((void*) amount, 0, sizeof (tyAmount));
    memset ((void*) userReference, 0, sizeof (tyUserReference));
    memset ((void*) appName, 0, sizeof (tyAppName));
    memset ((void*) appVersion, 0, sizeof (tyAppVersion));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memcpy (comPort, "COM11", 5);

    // Pagamento no crédito
    paymentMethod = PPPAGSEGURO_CREDIT;
    //(7 parcelas)
    installmentType = PPPAGSEGURO_PARC_VENDEDOR;
    installment = 7;

    // R$ 200,00 Reais
    memcpy (amount, "20000", 4);

    // Meu código de venda é "CODIGVENDA"
    memcpy (userReference, "CODIGVENDA", 10);

    InitBTConnection (comPort);

    // Setar o nome e versão da aplicação
    memcpy (appName, "MyApplication", 13);
    memcpy (appVersion, "R001", 4);

    SetVersionName(appName, appVersion);

    ret = SimplePaymentTransaction (
        paymentMethod,
        installmentType,
        installment,
        &amount,
        &userReference,
        &transactionResult
    );

Assim que a chamada é feita, a Moderninha PRO iniciará o processo de venda com os parâmetros encaminhados pela sua aplicação. Você pode configurar a Solicitação de Pagamento a partir dos parâmetros que são passados para o método SimplePaymentTransaction. Veja abaixo a listagem dos parâmetros:

Parâmetro
Tipo
Descrição

comPort

*tyComPort

Porta COM mapeada para Bluetooth e já pareada com a Moderninha PRO.

paymentMethod

enPPPSPaymentMethod

Tipo de transação: crédito, débito ou voucher.

installmentType

enPPPSInstallmentType

Tipo de parcelamento: à vista ou parcelado.

installment

unsigned int

Número de parcelas. Caso seja pagamento à vista, valor deve ser 1.

amount

*tyAmount

Valor da transação, com 2 para centavos, sem pontos e virgulas. Ex: "R$ 1.234,56" deve ser passado como "123456".

reference

*tyUserReference

Código da venda, definido pela sua aplicação.

Os tipos customizados são definidos da seguinte maneira:

Tipo
Definição

tyComPort

char[8]

enPPPSPaymentMethod

enum {PPPAGSEGURO_CREDIT = 1, PPPAGSEGURO_DEBIT = 2, PPPAGSEGURO_VOUCHER = 3}

enPPPSInstallmentType

enum {PPPAGSEGURO_A_VISTA = 1, PPPAGSEGURO_PARC_VENDEDOR = 2}

tyAmount

char[33]

tyUserReference

char[21]

A configuração da Solicitação de Pagamento deve seguir estas regras:

  • Não é possível realizar pagamentos de menos de R$ 1,00;
  • Pagamentos parcelados podem ser divididos em no máximo 12 parcelas;
  • Pagamentos parcelados devem ter valor mínimo de parcela de R$ 5,00.

O último parâmetro do método SimplePaymentTransaction é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha PRO. A estrutura é apresentada no item Dados desta documentação

Outro ponto importante é o código de referência (ou código de venda) que pode ser encaminhado pela sua aplicação. Este parâmetro pode conter o seu número de ordem ou pedido para que você possa efetuar a conciliação dos seus pagamentos posteriormente.

Consultando a última transação

Sua aplicação pode obter os dados da última transação efetuada com sucesso em sua Moderninha PRO. Para isso você deve utilizar o método GetLastApprovedTransactionStatus(). Veja o exemplo abaixo:

    int ret;
    tyComPort portaCom;

    memset ((void*) portaCom, 0, sizeof (portaCom));

    // Porta COM11 está com a Moderninha Pro pareada no Bluetooth
    memset (portaCom, "COM11", 5);

    ret = GetLastApprovedTransactionStatus (&comPort, &transactionResult);

O último parâmetro do método GetLastApprovedTransactionStatus é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha PRO. A estrutura é apresentada no item Dados.

Caso exista uma transação em andamento no momento da consulta, a função GetLastApprovedTransactionStatus() aguarda a finalização da transação e retorna os dados desta se aprovada (nessessário biblioteca 1.3.0+ e moderninha 3.12+).

Estornando uma Transação

Sua aplicação também pode iniciar um processo de estorno de transação. É importante salientar que esta chamada apenas inicia o processo de estorno. Os demais passos são feitos diretamente na moderninha. Veja exemplo a seguir:

    int ret;
    tyComPort portaCom;

    memset ((void*) portaCom, 0, sizeof (portaCom));

    // Porta COM11 está com a Moderninha Pro pareada no Bluetooth
    memset (portaCom, "COM11", 5);

    ret = CancelTransaction (&portaCom, &transactionResult);

O último parâmetro do método CancelTransaction é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha PRO. A estrutura é apresentada no item Dados.

 
Suggest Edits

Moderninha WIFI - Android

 

Métodos

Método
Retorno
Descrição

GetVersionLib

String

Retorna uma string null terminated com a versão da biblioteca de integração.

SetVersionName

Int

Seta o nome e versão da aplicação que está utilizando a PlugPag. É MANDATÓRIO que esta função seja chamada antes de se realizar qualquer transação.

InitBTConnection

Nenhum

Inicializa a comunicação bluetooth utilizando o dispositivo padrão do aparelho Android.

SimplePaymentTransaction

Int

Inicia a transação de venda. Em caso de sucesso, retorna os dados da transação numa estrutura.

CancelTransaction

Int

Inicia a transação de estorno. Em caso de sucesso, retorna os dados da transação numa estrutura

GetLastApprovedTransactionStatus

Int

Verifica qual foi a última transação com sucesso feita pelo terminal.

getRawBuffer

Byte[]

Retorna o buffer recebido como resultado da última comunicação via bluetooth.

getMessage

Nenhum

Retorna a mensagem resultante da transação (ISO-8859-1/Latin-1).

getTransactionCode

String

Retorna o transaction code obtido pela última chamada de SimplePaymentTransaction ou GetLastApprovedTransaction.

getDate

String

Retorna a data da transação da última chamada de SimplePayment ou GetLastApprovedTransaction no formato “yyyy-mm-dd”.

getTime

String

Retorna a hora da transação da última chamada de SimplePayment ou GetLastApprovedTransaction no formato “hh:mm:ss”

getHostNsu

String

Retorna o NSU do host obtido pela última chamada de SimplePaymentTransaction, GetLastApprovedTransaction ou CancelTransaction.

getCardBrand

String

Retorna a bandeira do cartão da transação da última chamada de SimplePayment ou GetLastApprovedTransaction.

getBin

String

Retorna os 6 primeiros dígitos do cartão da última transação de sucesso.

getHolder

String

Retorna os 4 últimos dígitos do cartão da última transação de sucesso.

getTerminalSerialNumber

String

Retorna o número de série da Moderninha que realizou a última transação.

Para mais detalhes você pode baixar a documentação completa

Efetuando uma Solicitação de Pagamento

Para efetuar uma chamada para a Moderninha, você deve utilizar o método SimplePaymentTransaction. Veja abaixo alguns exemplos de uma solicitação de venda:

    int ret;

    //  Transação de 12,34
    String amount = "1234";

    //  A Vista, 7 Parcelas
    int installmentType = PlugPag.A_VISTA;
    int installment = 1;


    //  Transação crédito
    int method = PlugPag.CREDIT;

    //  Meu código de venda é “CODIGVENDA”
    String codigoVenda = ”CODIGVENDA”;


    PlugPag plugPag = new PlugPag();
    plugPag.InitBTConnection();
    pugPag.SetVersionName("MyApp", "R001");


    ret = plugPag.SimplePaymentTransaction(
            method,
            installmentType,
            installment,
            amount,
            codigoVenda);

    String date = plugPag.getDate();
    String time = plugPag.getTime();
    String cardBrand = plugPag.getCardBrand();
    int ret;

    //  Transação de 1208,34
    String amount = "128034";

    //  A Vista, 7 Parcelas
    int installmentType = PlugPag.PARC_VENDEDOR;
    int installment = 7;


    //  Transação crédito
    int method = PlugPag.CREDIT;

    //  Meu código de venda é “CODIGVENDA”
    String codigoVenda = ”CODIGVENDA”;


    PlugPag plugPag = new PlugPag();
    plugPag.InitBTConnection();

    pugPag.SetVersionName("MyApp", "R001");

    ret = plugPag.SimplePaymentTransaction(
            method,
            installmentType,
            installment,
            amount,
            codigoVenda);

    String date = plugPag.getDate();
    String time = plugPag.getTime();
    String cardBrand = plugPag.getCardBrand();

Estornando uma Transação

Para iniciar uma transação de estorno na Moderninha, acompanhe o exemplo a seguir:

PlugPag plugPag = new PlugPag();

plugPag.InitBTConnection();

ret = plugPag.CancelTransaction();

Consultando a última transação

Para consultar a última transação na Moderninha, acompanhe o exemplo a seguir:

PlugPag plugPag = new PlugPag();

plugPag.InitBTConnection();

ret = plugPag.GetLastApprovedTransactionStatus ();

String date = plugPag.getDate();
String time = plugPag.getTime();
String cardBrand = plugPag.getCardBrand();
String hostNsu = plugPag.getHostNsu();

Caso exista uma transação em andamento no momento da consulta, a função GetLastApprovedTransactionStatus() aguarda a finalização da transação e retorna os dados desta se aprovada (nessessário biblioteca 1.3.0+ e moderninha 3.12+).

Aplicação Exemplo

A aplicação de exemplo está disponível no GitHub. Basta acessar o link a seguir:

 
Suggest Edits

Moderninha WIFI - iOS

 

Métodos

Método
Retorno
Descrição

GetVersionLib

const char*

Retorna uma const char com a versão da biblioteca de integração.

SetVersionName: withVersion

Int

Seta o nome e versão da aplicação que está utilizando a PlugPag. É MANDATÓRIO que esta função seja chamada antes de se realizar qualquer transação.

InitBTConnection

Int

Inicializa a comunicação bluetooth utilizando o dispositivo padrão do aparelho iOS.

SimplePaymentTransaction: withInstallmentType: endInstallments: endAmount

Int

Inicia a transação de venda. Em caso de sucesso, retorna os dados da transação numa estrutura.

CancelTransaction

Int

Inicia a transação de estorno. Em caso de sucesso, retorna os dados da transação numa estrutura.

GetLastApprovedTransactionStatus

Int

Verifica qual foi a última transação com sucesso feita pelo terminal.

SetModel

nenhum

Seta o modelo do terminal PagSeguro que a PlugPag vai parear e conectar via bluetooth.

SetPeripheralName

nenhum

Seta o ID do terminal PagSeguro que a PlugPag vai parear e conectar via Bluetooth (O ID pode ser encontrado ao pressionar a tecla '0' no terminal).

SetPeripheral:withName

nenhum

Seta o modelo do terminal e o ID do terminal PagSeguro que a PlugPag vai parear e conectar via Bluetooth.

GetListModels

NSArray (NSArray de Strings)

Retorna uma lista de modelos de terminais PagSeguro disponível para pareamento via Bluetooth.

GetListPeripheral

NSArray (NSArray de Strings)

Retorna uma lista de terminais PagSeguro disponíveis para pareamento via Bluetooth de acordo com o modelo selecionado. Limitação: Deve ser Chamado após ter informado o modelo desejado através do método SetModel

GetPairPeripheralStatus

Int

Retorna o status do pareamento Bluetooth, sendo 3 status possíveis: PAIR_STATE_PROCESSING, PAIR_STATE_OK ou PAIR_STATE_FAIL.

Efetuando uma Solicitação de Pagamento

Para efetuar uma chamada para a Moderninha, você deve utilizar o método SimplePaymentTransaction. Veja abaixo alguns exemplos de uma solicitação de venda:

[[PlugPag sharedInstance] SetVersionName:@"MyApp" withVersion:@"R001"];
int ret = [[PlugPag sharedInstance] InitBTConnection];

    if (ret == RET_OK) {

        // Transação de 12,34
        NSString * value = @"1234";

        // Venda, Crédito, A Vista, R$ 12,34
        ret = [[PlugPag sharedInstance] SimplePaymentTransaction:CREDIT withInstallmentType:A_VISTA andInstallments:1 andAmount:value andUserReference:@"CODIGVENDA"];

        if (ret == RET_OK) {
            _txtResultado.text = @"Transação realizada com sucesso";
        }else{
            _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
        }
    }else{
        _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
    }
[[PlugPag sharedInstance] SetVersionName:@"MyApp" withVersion:@"R001"];
int ret = [[PlugPag sharedInstance] InitBTConnection];

    if (ret == RET_OK) {

        // Transação de 1208,34
        NSString * value = @"128034";

        // A vista, 7 parcelas
        int numeroParcelas = 7;

        // Venda, Crédito, Parcelado Vendedor, 7 parcelas, R$ 1.208,34
        ret = [[PlugPag sharedInstance] SimplePaymentTransaction:CREDIT withInstallmentType:PARC_VENDEDOR andInstallments:numeroParcelas andAmount:value andUserReference:@"CODIGVENDA"];

        if (ret == RET_OK) {
            _txtResultado.text = @"Transação realizada com sucesso";
        }else{
            _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
        }
    }else{
        _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
    }

Estornando uma Transação

Para iniciar uma transação de estorno na Moderninha, acompanhe o exemplo a seguir:

int ret = [[PlugPag sharedInstance] InitBTConnection];

    if (ret == RET_OK) {

        // Estorno
        ret = [[PlugPag sharedInstance] CancelTransaction];

        if (ret == RET_OK) {
            _txtResultado.text = @"Estorno realizado com sucesso";
        }else{
            _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
        }

    }else{
        _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
    }

Consultando a última transação aprovada

Para consultar a última transação aprovada na Moderninha, acompanhe o exemplo a seguir:

int ret = [[PlugPag sharedInstance] InitBTConnection];

    if (ret == RET_OK) {

        // Consulta a última transação
        ret = [[PlugPag sharedInstance] GetLastApprovedTransactionStatus];

        if (ret == RET_OK) {

            NSString *txDate = [PlugPag sharedInstance].date;
            NSString *txTime = [PlugPag sharedInstance].time;
            NSString *txHost = [PlugPag sharedInstance].hostNsu;
            NSString *txCardBrand = [PlugPag sharedInstance].cardBrand;

        }else{
            _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
        }

    }else{
        _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
    }

Caso exista uma transação em andamento no momento da consulta, a função GetLastApprovedTransactionStatus() aguarda a finalização da transação e retorna os dados desta se aprovada (nessessário biblioteca 1.3.0+ e moderninha 3.12+).

Aplicação Exemplo
A aplicação de exemplo está disponível no GitHub. Basta acessar o link de acordo com a linguagem desejada:

 
Suggest Edits

Moderninha WIFI - Windows

 

Métodos

Método
Retorno
Descrição

GetVersionLib

const char*

Retorna uma string null terminated com a versão da biblioteca de integração.

SetVersionName

Int

Seta o nome e versão da aplicação que está utilizando a PlugPag. É MANDATÓRIO que esta função seja chamada antes de se realizar qualquer transação.

InitBTConnection

void

Configura a porta com que está pareada com a Moderninha.

SimplePaymentTransaction

Int

Inicia a transação de venda. Em caso de sucesso, retorna os dados da transação numa estrutura.

CancelTransaction

Int

Inicia a transação de estorno. Em caso de sucesso, retorna os dados da transação numa estrutura

GetLastApprovedTransactionStatus

Int

Verifica qual foi a última transação com sucesso feita pelo terminal.

Efetuando uma Solicitação de Pagamento

Para efetuar uma chamada para a Moderninha, você deve utilizar o método SimplePaymentTransaction. Veja abaixo alguns exemplos de uma solicitação de venda:

    int ret;
    tyComPort comPort;
    enPPPSPaymentMethod paymentMethod;
    enPPPSInstallmentType installmentType;
    unsigned int installment;
    tyAmount amount;
    tyUserReference userReference;
    tyAppName appName;
    tyAppVersion appVersion;
    stPPPSTransactionResult transactionResult;

    memset ((void*) comPort, 0, sizeof (tyComPort));
    memset ((void*) amount, 0, sizeof (tyAmount));
    memset ((void*) userReference, 0, sizeof (tyUserReference));
    memset ((void*) appName, 0, sizeof (tyAppName));
    memset ((void*) appVersion, 0, sizeof (tyAppVersion));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memcpy (comPort, "COM11", 5);

    // Pagamento no débito
    paymentMethod = PPPAGSEGURO_DEBIT;
    // A vista (1 parcela)
    installmentType = PPPAGSEGURO_A_VISTA;
    installment = 1;

    // R$ 30,00 Reais
    memcpy (amount, "3000", 4);

    // Meu código de venda é "0000000001"
    memcpy (userReference, "0000000001", 10);

    InitBTConnection (comPort);

    // Setar o nome e versão da aplicação
    memcpy (appName, "MyApplication", 13);
    memcpy (appVersion, "R001", 4);

    SetVersionName(appName, appVersion);

    ret = SimplePaymentTransaction (
        paymentMethod,
        installmentType,
        installment,
        &amount,
        &userReference,
        &transactionResult
    );
    int ret;
    tyComPort comPort;
    enPPPSPaymentMethod paymentMethod;
    enPPPSInstallmentType installmentType;
    unsigned int installment;
    tyAmount amount;
    tyUserReference userReference;
    tyAppName appName;
    tyAppVersion appVersion;
    stPPPSTransactionResult transactionResult;

    memset ((void*) comPort, 0, sizeof (tyComPort));
    memset ((void*) amount, 0, sizeof (tyAmount));
    memset ((void*) userReference, 0, sizeof (tyUserReference));
    memset ((void*) appName, 0, sizeof (tyAppName));
    memset ((void*) appVersion, 0, sizeof (tyAppVersion));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memcpy (comPort, "COM11", 5);

    // Pagamento no crédito
    paymentMethod = PPPAGSEGURO_CREDIT;
    //(7 parcelas)
    installmentType = PPPAGSEGURO_PARC_VENDEDOR;
    installment = 7;

    // R$ 200,00 Reais
    memcpy (amount, "20000", 4);

    // Meu código de venda é "CODIGVENDA"
    memcpy (userReference, "CODIGVENDA", 10);

    InitBTConnection (comPort);

    // Setar o nome e versão da aplicação
    memcpy (appName, "MyApplication", 13);
    memcpy (appVersion, "R001", 4);
    SetVersionName(appName, appVersion);

    ret = SimplePaymentTransaction (
        paymentMethod,
        installmentType,
        installment,
        &amount,
        &userReference,
        &transactionResult
    );

Assim que a chamada é feita, a Moderninha iniciará o processo de venda com os parâmetros encaminhados pela sua aplicação. Você pode configurar a Solicitação de Pagamento a partir dos parâmetros que são passados para o método SimplePaymentTransaction. Veja abaixo a listagem dos parâmetros:

Parâmetro
Tipo
Descrição

comPort

*tyComPort

Porta COM mapeada para Bluetooth e já pareada com a Moderninha.

paymentMethod

enPPPSPaymentMethod

Tipo de transação: credito, debito ou voucher.

installmentType

enPPPSInstallmentType

Tipo de parcelamento: à vista ou parcelado.

installment

unsigned int

Número de parcelas. Caso seja pagamento à vista, valor deve ser 1.

amount

*tyAmount

Valor da transação, com 2 para centavos, sem pontos e virgulas. Ex: "R$ 1.234,56" deve ser passado como "123456".

reference

*tyUserReference

Código da venda, definido pela sua aplicação.

Os tipos customizados são definidos da seguinte maneira:

Tipo
Definição

tyComPort

char[8]

enPPPSPaymentMethod

enum {PPPAGSEGURO_CREDIT = 1, PPPAGSEGURO_DEBIT = 2, PPPAGSEGURO_VOUCHER = 3}

enPPPSInstallmentType

enum {PPPAGSEGURO_A_VISTA = 1, PPPAGSEGURO_PARC_VENDEDOR = 2}

tyAmount

char[33]

tyUserReference

char[21]

A configuração da Solicitação de Pagamento deve seguir estas regras:

  • Não é possível realizar pagamentos de menos de R$ 1,00;
  • Pagamentos parcelados podem ser divididos em no máximo 12 parcelas;
  • Pagamentos parcelados devem ter valor mínimo de parcela de R$ 5,00.

O último parâmetro do método SimplePaymentTransaction é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha. A estrutura é apresentada no item Dados desta documentação

Outro ponto importante é o código de referência (ou código de venda) que pode ser encaminhado pela sua aplicação. Este parâmetro pode conter o seu número de ordem ou pedido para que você possa efetuar a conciliação dos seus pagamentos posteriormente.

Consultando a última transação

Sua aplicação pode obter os dados da última transação efetuada com sucesso em sua Moderninha. Para isso você deve utilizar o método GetLastApprovedTransactionStatus(). Veja o exemplo abaixo:

    int ret;
    tyComPort portaCom;

    memset ((void*) portaCom, 0, sizeof (portaCom));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memset (portaCom, "COM11", 5);

    ret = GetLastApprovedTransactionStatus (&comPort, &transactionResult);

O último parâmetro do método GetLastApprovedTransactionStatus é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha. A estrutura é apresentada no item Dados.

  • Caso exista uma transação em andamento no momento da consulta, a função GetLastApprovedTransactionStatus() aguarda a finalização da transação e retorna os dados desta se aprovada (nessessário biblioteca 1.3.0+ e moderninha 3.12+).

Estornando uma Transação

Sua aplicação também pode iniciar um processo de estorno de transação. É importante salientar que esta chamada apenas inicia o processo de estorno. Os demais passos são feitos diretamente na moderninha. Veja exemplo a seguir:

    int ret;
    tyComPort portaCom;

    memset ((void*) portaCom, 0, sizeof (portaCom));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memset (portaCom, "COM11", 5);

    ret = CancelTransaction (&portaCom, &transactionResult);

O último parâmetro do método CancelTransaction é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha. A estrutura é apresentada no item Dados.

Aplicação Exemplo

A aplicação de exemplo está disponível no GitHub. Basta acessar o link a seguir:

Exemplo C#
Exemplo Java
Exemplo Python

 
Suggest Edits

Moderninha WIFI - Linux

 

Métodos

Método
Retorno
Descrição

GetVersionLib

const char*

Retorna uma string null terminated com a versão da biblioteca de integração.

SetVersionName

Int

Seta o nome e versão da aplicação que está utilizando a PlugPag. É MANDATÓRIO que esta função seja chamada antes de se realizar qualquer transação.

InitBTConnection

Nenhum

Configura a porta com que está pareada com a Moderninha. Deve ser passada a porta que foi mapeada seguindo as instruções em Mapeando device bluetooth.

SimplePaymentTransaction

Int

Inicia a transação de venda. Em caso de sucesso, retorna os dados da transação numa estrutura.

CancelTransaction

Int

Inicia a transação de estorno. Em caso de sucesso, retorna os dados da transação numa estrutura.

GetLastApprovedTransactionStatus

Int

Verifica qual foi a última transação com sucesso feita pelo terminal.

Para mais detalhes você pode baixar a documentação completa

Efetuando uma Solicitação de Pagamento

Para efetuar uma chamada para a Moderninha, você deve utilizar o método SimplePaymentTransaction. Veja abaixo alguns exemplos de uma solicitação de venda:

    int ret;
    tyComPort comPort;
    enPPPSPaymentMethod paymentMethod;
    enPPPSInstallmentType installmentType;
    unsigned int installment;
    tyAmount amount;
    tyUserReference userReference;
    tyAppName appName;
    tyAppVersion appVersion;
    stPPPSTransactionResult transactionResult;

    memset ((void*) comPort, 0, sizeof (tyComPort));
    memset ((void*) amount, 0, sizeof (tyAmount));
    memset ((void*) userReference, 0, sizeof (tyUserReference));
    memset ((void*) appName, 0, sizeof (tyAppName));
    memset ((void*) appVersion, 0, sizeof (tyAppVersion));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memcpy (comPort, "COM11", 5);

    // Pagamento no débito
    paymentMethod = PPPAGSEGURO_DEBIT;
    // A vista (1 parcela)
    installmentType = PPPAGSEGURO_A_VISTA;
    installment = 1;

    // R$ 30,00 Reais
    memcpy (amount, "3000", 4);

    // Meu código de venda é "0000000001"
    memcpy (userReference, "0000000001", 10);

    InitBTConnection (comPort);

    // Setar o nome e versão da aplicação
    memcpy (appName, "MyApplication", 13);
    memcpy (appVersion, "R001", 4);

    SetVersionName(appName, appVersion);

    ret = SimplePaymentTransaction (
        paymentMethod,
        installmentType,
        installment,
        &amount,
        &userReference,
        &transactionResult
    );
    int ret;
    tyComPort comPort;
    enPPPSPaymentMethod paymentMethod;
    enPPPSInstallmentType installmentType;
    unsigned int installment;
    tyAmount amount;
    tyUserReference userReference;
    tyAppName appName;
    tyAppVersion appVersion;
    stPPPSTransactionResult transactionResult;

    memset ((void*) comPort, 0, sizeof (tyComPort));
    memset ((void*) amount, 0, sizeof (tyAmount));
    memset ((void*) userReference, 0, sizeof (tyUserReference));
    memset ((void*) appName, 0, sizeof (tyAppName));
    memset ((void*) appVersion, 0, sizeof (tyAppVersion));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memcpy (comPort, "COM11", 5);

    // Pagamento no crédito
    paymentMethod = PPPAGSEGURO_CREDIT;
    //(7 parcelas)
    installmentType = PPPAGSEGURO_PARC_VENDEDOR;
    installment = 7;

    // R$ 200,00 Reais
    memcpy (amount, "20000", 4);

    // Meu código de venda é "CODIGVENDA"
    memcpy (userReference, "CODIGVENDA", 10);

    InitBTConnection (comPort);

    // Setar o nome e versão da aplicação
    memcpy (appName, "MyApplication", 13);
    memcpy (appVersion, "R001", 4);
    SetVersionName(appName, appVersion);

    ret = SimplePaymentTransaction (
        paymentMethod,
        installmentType,
        installment,
        &amount,
        &userReference,
        &transactionResult
    );

Assim que a chamada é feita, a Moderninha iniciará o processo de venda com os parâmetros encaminhados pela sua aplicação. Você pode configurar a Solicitação de Pagamento a partir dos parâmetros que são passados para o método SimplePaymentTransaction. Veja abaixo a listagem dos parâmetros:

Parâmetro
Tipo
Descrição

comPort

*tyComPort

Porta COM mapeada para Bluetooth e já pareada com a Moderninha.

paymentMethod

enPPPSPaymentMethod

Tipo de transação: crédito, débito ou voucher.

installmentType

enPPPSInstallmentType

Tipo de parcelamento: à vista ou parcelado.

installment

unsigned int

Número de parcelas. Caso seja pagamento à vista, valor deve ser 1.

amount

*tyAmount

Valor da transação, com 2 para centavos, sem pontos e vírgulas. Ex: "R$ 1.234,56" deve ser passado como "123456".

reference

*tyUserReference

Código da venda, definido pela sua aplicação.

Os tipos customizados são definidos da seguinte maneira:

Tipo
Definição

tyComPort

char[8]

enPPPSPaymentMethod

enum {PPPAGSEGURO_CREDIT = 1, PPPAGSEGURO_DEBIT = 2, PPPAGSEGURO_VOUCHER = 3}

enPPPSInstallmentType

enum {PPPAGSEGURO_A_VISTA = 1, PPPAGSEGURO_PARC_VENDEDOR = 2}

tyAmount

char[33]

tyUserReference

char[21]

A configuração da Solicitação de Pagamento deve seguir estas regras:

  • Não é possível realizar pagamentos de menos de R$ 1,00;
  • Pagamentos parcelados podem ser divididos em no máximo 12 parcelas;
  • Pagamentos parcelados devem ter valor mínimo de parcela de R$ 5,00.

O último parâmetro do método SimplePaymentTransaction é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha. A estrutura é apresentada no item Dados.

Outro ponto importante é o código de referência (ou código de venda) que pode ser encaminhado pela sua aplicação. Este parâmetro pode conter o seu número de ordem ou pedido para que você possa efetuar a conciliação dos seus pagamentos posteriormente.

Consultando a última transação

Sua aplicação pode obter os dados da última transação efetuada com sucesso em sua Moderninha. Para isso você deve utilizar o método GetLastApprovedTransactionStatus(). Veja o exemplo abaixo:

    int ret;
    tyComPort portaCom;

    memset ((void*) portaCom, 0, sizeof (portaCom));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memset (portaCom, "COM11", 5);

    ret = GetLastApprovedTransactionStatus (&comPort, &transactionResult);

O último parâmetro do método GetLastApprovedTransactionStatus é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha. A estrutura é apresentada no item Dados.

  • Caso exista uma transação em andamento no momento da consulta, a função GetLastApprovedTransactionStatus() aguarda a finalização da transação e retorna os dados desta se aprovada (nessessário biblioteca 1.3.0+ e moderninha 3.12+).

Estornando uma Transação

Sua aplicação também pode iniciar um processo de estorno de transação. É importante salientar que esta chamada apenas inicia o processo de estorno. Os demais passos são feitos diretamente na moderninha. Veja exemplo a seguir:

    int ret;
    tyComPort portaCom;

    memset ((void*) portaCom, 0, sizeof (portaCom));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memset (portaCom, "COM11", 5);

    ret = CancelTransaction (&portaCom, &transactionResult);

O último parâmetro do método CancelTransaction é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha. A estrutura é apresentada no item Dados.

 
Suggest Edits

Minizinha - Android

 

Métodos

Métodos
Retorno
Descrição

initBTConnection

int

Configura a conexão bluetooth utilizando os dados de deviceInformation.

isAuthenticated

boolean

Verifica se há um usuário autenticado.

invalidateAuthentication

void

Invalida uma autenticação. Equivalente a realizar um logout

requestAuthentication

void

Solicita autenticação. Para realizar autenticação, uma Activity será aberta utilizando o método Activity.startActivityForResult(Intent, int).

setEventListener

void

Armazena a referência de uma instância de interface que receberá os eventos gerados durante as transações. Os eventos são gerados apenas para transações feitas utilizando um leitor.

doPayment

PlugPagTransactionResult

Efetua um pagamento.

voidPayment

PlugPagTransactionResult

Efetua um estorno.

abort

PlugPagAbortResult

Solicita o cancelamento da operação atual. O cancelamento da transação não ocorre instantaneamente, pois depende das ações que estão sendo executadas.

getVersionLib

String

Retorna a versão da biblioteca PlugPag.

setVersionName

int

Define o nome e a versão do aplicativo que está integrando com o PlugPag

Efetuando uma Solicitação de Pagamento

Para efetuar uma chamada para a Minizinha, você deve utilizar o método doPayment. Veja abaixo alguns exemplos de uma solicitação de venda:

public void startPayment(Context context) {
  // Define o terminal ou leitor que será utilizado para transação
  String deviceIdentification = "Nome ou MAC address do leitor/pinpad";
  PlugPagDevice device = new PlugPagDevice(deviceIdentification);

  // Define os dados do pagamento
  PlugPagPaymentData paymentData =
          new PlugPagPaymentData(
                  PlugPag.TYPE_CREDITO,
                  25000,
                  PlugPag.INSTALLMENT_TYPE_A_VISTA,
                  1,
                  "CODVENDA");

  // Cria a identificação do aplicativo
  PlugPagAppIdentification appIdentification =
          new PlugPagAppIdentification("MeuApp", "1.0.0");

  // Cria a referência do PlugPag
  PlugPag plugpag = new PlugPag(context, appIdentification);

  // Prepara conexão bluetooth e faz o pagamento
  int initResult = plugpag.initBTConnection(device);

  if (initResult == PlugPag.RET_OK) {
      PlugPagTransactionResult result = plugpag.doPayment(paymentData);

      // Trata o resultado da transação
      ...
  }
}
public void startPayment(Context context) {
  // Define o terminal ou leitor que será utilizado para transação
  String deviceIdentification = "Nome ou MAC address do leitor/pinpad";
  PlugPagDevice device = new PlugPagDevice(deviceIdentification);

  // Define os dados do pagamento
  PlugPagPaymentData paymentData =
          new PlugPagPaymentData(
                  PlugPag.TYPE_CREDITO,
                  30000,
                  PlugPag.INSTALLMENT_TYPE_PARC_VENDEDOR,
                  3,
                  "CODVENDA");

  // Cria a identificação do aplicativo
  PlugPagAppIdentification appIdentification =
          new PlugPagAppIdentification("MeuApp", "1.0.0");

  // Cria a referência do PlugPag
  PlugPag plugpag = new PlugPag(context, appIdentification);

  // Prepara conexão bluetooth e faz o pagamento
  int initResult = plugpag.initBTConnection(device);

  if (initResult == PlugPag.RET_OK) {
      PlugPagTransactionResult result = plugpag.doPayment(paymentData);

      // Trata o resultado da transação
      ...
  }
}

Estornando uma Transação

Para iniciar uma transação de estorno na Minizinha, acompanhe o exemplo a seguir:

public void voidPayment(Context context) {
    // Define o terminal ou leitor que será utilizado para transação
    String deviceIdentification = "Nome ou MAC address do leitor/pinpad";
    PlugPagDevice device = new PlugPagDevice(deviceIdentification);

    // Define os dados do estorno
    PlugPagVoidData voidData =
            new PlugPagVoidData
                    .Builder()
                    .setTransactionCode("transactionCode")
                    .setTransactionId("transactionId")
                    .build();

    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.0");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context, appIdentification);

    // Prepara conexão bluetooth e faz o pagamento
    int initResult = plugpag.initBTConnection(device);

    if (initResult == PlugPag.RET_OK) {
        PlugPagTransactionResult result = plugpag.voidPayment(voidData);

        // Trata o resultado do estorno
        ...
    }
}

Solicitar Autenticação

public void showAuthenticationActivity(Activity activity) {
    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.0");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(activity, appIdentification);

    // Solicita autenticação
    plugpag.requestAuthentication(activity);
    ...
}

Aplicação Exemplo

Aplicações exemplo estão disponíveis no GitHub. Basta acessar o link a seguir:

* Exemplos Java

 
Suggest Edits

Minizinha - iOS

 

Métodos

Métodos
Retorno
Descrição

getVersionLib

char

Retorna uma String com a versão da biblioteca PlugPag.

setInitBTConnection:

PlugPagTransactionResult

Configura a conexão bluetooth utilizando os dados de deviceInformation.

isAuthenticated

BOOL

Verifica se há um usuário autenticado.

invalidateAuthentication

void

Invalida uma autenticação. Equivalente a realizar um logout

requestAuthentication

void

Solicita autenticação. Uma UIViewController é executada no device para autenticação na conta PagSeguro.

doPayment

PlugPagTransactionResult

Inicia a transação de venda. Em caso de sucesso, retorna os dados da transação no objeto PlugPagTransactionResult.

voidPayment

PlugPagTransactionResult

Inicia a transação de estorno. Em caso de sucesso, retorna os dados da transação no objeto PlugPagTransactionResult.

getLastApprovedTransaction

PlugPagTransactionResult

Recebe dados da última transação finalizada com sucesso pelo terminal.

abort

PlugPagAbortResult

Solicita o cancelamento da operação atual. O cancelamento da transação não ocorre instantaneamente, pois depende das ações que estão sendo executadas.

plugPagAppIdentification: withVersion

int

Define o nome e a versão do aplicativo que está integrando com o PlugPag

startScanForPeripherals

void

Inicia o processo de scanner para encontrar maquinas PagSeguro que estejam próximas.

pairPeripheral

void

Inicia o processo de pareamento com a máquina PagSeguro informada por parametro

setDelegate

String

Define o delegate do destinatário para um determinado objeto.

peripheralDiscover

void

Delegate disparado após a PlugPag encontrar uma nova máquina PagSeguro próxima durante o scanner

userEventsInterface

void

Delegate disparado contendo os eventos durante uma transação com pinpad.

pairPeripheralStatus

void

Delegate disparado contendo o resultado do pareamento do device iOS com a máquina PagSeguro.

Efetuando uma Solicitação de Pagamento

Para efetuar uma chamada para a Minizinha, você deve utilizar o método doPayment. Veja abaixo alguns exemplos de uma solicitação de venda:

PlugPagDevice *device = [PlugPagDevice new]; // configura a maquina que realizara a transação
device.mPeripheralName = @"PRO-68000001";

[[PlugPag sharedInstance] plugPagAppIdentification:@"MyApp" withVersion:@"R001"];
PlugPagTransactionResult *ret = [[PlugPag sharedInstance]
setInitBTConnection:device];

if (ret.mResult == RET_OK) {

  NSString *value = @"1234"; // Transação de R$ 12,34
  int numeroParcelas = 1; // Venda, Crédito, A Vista, R$ 12,34
  PlugPagPaymentData *data = [PlugPagPaymentData new];
  data.mType = CREDIT;
  data.mAmount = [value intValue];
  data.mInstallmentType = A_VISTA;
  data.mInstallment = numeroParcelas;
  data.mUserReference = @"CODIGVENDA";

  PlugPagTransactionResult *result = [[PlugPag sharedInstance] doPayment:data];

  if (result.mResult == RET_OK) {
    NSLog(@"%@", result.mMessage);
  }
}
PlugPagDevice *device = [PlugPagDevice new]; // configura a maquina que realizara a transação
device.mPeripheralName = @"PRO-68000001";

[[PlugPag sharedInstance] plugPagAppIdentification:@"MyApp" withVersion:@"R001"];
PlugPagTransactionResult *ret = [[PlugPag sharedInstance]
setInitBTConnection:device];

if (ret.mResult == RET_OK) {

  NSString *value = @"128034"; // Transação de R$ 1.208,34
  int numeroParcelas = 7; // Venda, Crédito, Parcelado Vendedor, 7 parcelas, R$ 1.208,34
  PlugPagPaymentData *data = [PlugPagPaymentData new];
  data.mType = CREDIT;
  data.mAmount = [value intValue];
  data.mInstallmentType = PARC_VENDEDOR;
  data.mInstallment = numeroParcelas;
  data.mUserReference = @"CODIGVENDA";

  PlugPagTransactionResult *result = [[PlugPag sharedInstance] doPayment:data];

  if (result.mResult == RET_OK) {
    NSLog(@"%@", result.mMessage);
  }
}

Estornando uma Transação

Para iniciar uma transação de estorno na Minizinha, acompanhe o exemplo a seguir:

PlugPagDevice *device = [PlugPagDevice new]; // configura a maquina que realizara a transação
device.mPeripheralName = @"PRO-68000001";

[[PlugPag sharedInstance] plugPagAppIdentification:@"MyApp" withVersion:@"R001"];
PlugPagTransactionResult *ret = [[PlugPag sharedInstance]
setInitBTConnection:device];

if (ret.mResult == RET_OK) {

  PlugPagVoidData *voidData = [PlugPagVoidData new];
  voidData.mTransactionId = @"TRANSACTIONID";
  voidData.mTransactionCode = @"TRANSACTIONCODE";

  PlugPagTransactionResult *result = [[PlugPag sharedInstance]
voidPayment:voidData];
  if (result.mResult == RET_OK) {
    NSLog(@"%@", result.mMessage);
  }
}

Solicitar Autenticação

[[PlugPag sharedInstance] plugPagAppIdentification:@"MyApp" withVersion:@"R001"];
[[PlugPag sharedInstance] requestAuthentication:self];

Aplicação Exemplo

A aplicação de exemplo está disponível no GitHub. Basta acessar o link de acordo com a linguagem desejada:

* Swift

 
Suggest Edits

Exemplo de implementação

 
 
 
Suggest Edits

Demo PlugPag

 

PlugPag é uma biblioteca para integrar aplicativos, via bluetooth, com os leitores (Mini, Minizinha e Mobi Pin 10) e terminais (Moderninha Pro e Moderninha Wifi) do PagSeguro.

O PlugPag é desenvolvido pelo PagSeguro com o objetivo de permitir que empresas e desenvolvedores independentes possam criar novas soluções com integração com um meio de pagamento presencial.

Demo PagCafe

Para facilitar o processo de entendimento sobre o PlugPag desenvolvemos um app Demo que trás as pricipais chamadas existente na nossa biblioteca hoje. Vale ressaltar que tomamos o cuidado de comentar boa parte do código exposto.

Repositório Demo PagCafe

Biblioteca PlugPag

Nossa biblioteca está previamente intaladas nos terminais PagSeguro Smart, não sendo necessário download para esse cenário.

 
Suggest Edits

Central de Ajuda

 

O que é?

Solução que possibilita um sistema de automação comercial se comunicar com as moderninhas de maneira simples, sem a necessidade de se preocupar com o fluxo de pagamento. Dessa forma o cliente pode realizar todo o processo de pagamento pela automação comercial e no momento do pagamento enviar os dados da cobrança via bluetooth para um terminal PagSeguro.

Para quem indicamos?

Parceiros que desejam criar uma automação comercial com funcionalidades que nossos terminais não oferecem hoje, mas no momento do pagamento preferem passar todos os dados previamente coletados para o terminal PagSeguro. Uma das vantagens é evitarmos os erros de digitação do operador e agilizar o processo de pagamento.

Requisitos?

Se o seu computador não possui a conectividade com bluetooth, você pode utilizar um adaptador bluetooth USB (dongle) com os seguintes requerimentos mínimos:

  • Interface: USB 2.0
  • Bluetooth Power Class: Class 2 - 2.5mW (4dBm) 10 meters
  • Conectividade: Compatível com a versão Bluetooth: 4.2 + compatibilidade com 2.1 EDR / 3.0 / 4.0 & 4.1

Para determinar a versão do seu Bluetooth, acesse a propriedade do dispositivo e na guia avançado procure por LMP.

Bandeiras aceitas nas operações

  • MasterCard (Crédito e Débito);
  • VISA (Crédito e Débito);
  • ELO (Crédito e Débito
  • Cabal (Crédito e Débito);
  • Hiper (Hipercard) (Crédito e Débito);
  • Banricompras (Crédito)

Vouchers

  • Sodexo (Alimentação, Refeição, Cultura, Gift, Premium e Combustível);
  • Ticket (Alimentação, Refeição, Cultura);
  • VR (Alimentação, Refeição, Cultura, Benefícios e VR Auto)
  • Alelo (Alimentação e Refeição);

Modalidades permitidas através do PagSeguro

  • Crédito (Parcelado Vendedor / também conhecido como parcelado Loja ou Sem Juros);
  • Débito;
  • Estorno (Total e Parcial*)
  • Cancelamento;
  • Reimpressão de comprovantes;

Habilitação de vouchers (Ticket, Sodexo e VR);

As empresas que fornecem estes cartões usam os adquirentes como meios para aceitação de seus cartões, devido a isto, a liberação para uso, assim como a negociação e liquidação são diretamente com as mesmas;
Mesmo que o cliente já opere com o voucher através de outro adquirente é necessário que o mesmo entre em contato com a Bandeira e solicite a liberação para o PagSeguro, com exceção da ALELO, que possui credenciamento disponível através do Ibanking.

Importante: Quando o cliente entrar em contato, não é necessário especificar qual o meio de captura, informe somente o código de filiação do PagSeguro (Disponível no IBanking), pois a liberação já contempla soluções TEF e POS.

Estorno / Cancelamento de Transações;

De forma presencial, com a presença do cartão/portador, podem ser realizadas no mesmo dia em que a transação ocorreu; Transações posteriores a data original, podem ser realizadas pelo cliente via IBanking;
*De forma parcial, existem algumas premissas:

  • Transação não deve ser maior que 30 dias.
  • Cliente necessita ter saldo disponível para a realização desta operação;
  • Transação presencial, O Cartão/Portador deve estar presente; Sem a presença do mesmo, somente através de solicitação através do canal meugerente@pagseguro.com.br
  • Não possuir Saque automático;

Como proceder em caso de troca/solicitação de POS?

Orientar o cliente a entrar em contato solicitando a troca por e-mail/telefone, através de solicitação para o canal meugerente@pagseguro.com.br 4004 2000 (Capitais e Regiões metropolitanas) / 0800-723-2000 (Demais localidades, exceto celular)
Importante: Solicitar ao cliente que informe o Número de série do Pinpad no momento da solicitação.

Terminais homologados?

Moderninha ProSistemas - Operacionais aceito:

  • Android
  • iOS
  • Windows
  • Linux

Moderninha WiFi Sistemas - Operacionais aceito:

  • Android
  • iOS
  • Windows
  • Linux

Moderninha Plus - Sistemas Operacionais aceito:

  • Android
  • iOS
  • Windows
  • Linux

Minizinha Chip

  • Sistemas Operacionais aceito:
  • Android
  • iOS

Minizinha - Sistemas Operacionais aceito:

  • Android
  • iOS
 
Suggest Edits

Apêndice

 

De Para
1 Aguardando pagamento 2 Em análise
3 Paga
7 Cancelada
11 Pré-autorizada
2 Em análise 3 Paga
4 Disponível
7 Cancelada
3 Paga 4 Disponível
5 Em disputa
6 Devolvida
9 Retenção temporária
10 Processando o estorno
4 Disponível 5 Em disputa
6 Devolvida
8 Debitado
9 Retenção temporária
5 Em disputa 3 Paga
4 Disponível
6 Devolvida
9 Retenção temporária
6 Devolvida Não é possível alterar este status.
7 Cancelada Não é possível alterar este status.
8 Debitado Não é possível alterar este status.
9 Retenção temporária 3 Paga
4 Disponível
6 Devolvida
8 Debitado
10 Processando o estorno 3 Paga
4 Disponível
6 Devolvida
11 Pré-autorizada 3 Paga
7 Cancelada
12 Bloqueada Não é possível alterar este status.

Listagem de erros

Todas a funções da API seguem os mesmos tipos de código retorno, conforme a tabela a seguir:

Valor
Descrição
Ação

0

Transação autorizada

-1001

Mensagem gerada maior que buffer dimensionado

Coletar log (se existir) e enviar para o suporte.

-1002

Parâmetro de aplicação inválido

Coletar log (se existir) e enviar para o suporte.

-1003

Terminal não está pronto para transacionar

Tente novamente.

-1004

Transação negada pelo Host.

Verificar mensagem no terminal.

-1005

Buffer de resposta da transação inválido ao obter as informações de resultado da transação

Refaça a transação.

-1006

Parâmetro de valor da transação não pode ser nulo

Verificar implementação da chamada da biblioteca.

-1007

Parâmetro de valor total da transação não pode ser nulo

Verificar implementação da chamada da biblioteca.

-1008

Parâmetro de código de venda não pode ser nulo

Verificar implementação da chamada da biblioteca.

-1009

Parâmetro de resultado da transação não pode ser nulo

Verificar implementação da chamada da biblioteca.

-1010

Driver de conexão não encontrado

Verificar se todos os arquivos estão no diretório correto.

-1011

Erro ao utilizar driver não encontrado

Reinstalar os arquivos do driver de conexão

-1012

Formato do valor da venda invalido

Valor deve ser um número inteiro sem virgula

-1013

Comprimento do REF superior a 10 dígitos

Truncar REF para no máximo 10 dígitos

-1014

Buffer de recepção corrompido

Refaça a transação

-1015

Nome da aplicação maior que 25 caracteres

Limitar nome da aplicação a 25 caracteres

-1016

Versão da aplicação maior que 10 caracteres

Limitar versão da aplicação em 10 caracteres

-1017

Necessário definir nome da aplicação

Definir nome e versão da aplicação com SetVersionName()

-1018

Não existe dados da última transação

Refaça a transação

-1019

Erro de comunicação com terminal (resposta inesperada)

Realizar consulta de última transação

-1020

Transação Bluetooth não permitida quando o terminal está em modo compartilhado

Desativar modo compartilhado

-2001

Porta COM informada não encontrada

Informar uma porta COM válida.

-2002

Não foi possível obter configurações da porta COM informada

Informar uma porta COM válida.

-2003

Não foi possível configurar a porta COM informada

Informar uma porta COM válida.

-2004

Timeout de comunicação Bluetooth

Refaça a transação.

-2005

Não foi possível enviar dados pela porta COM informada

Informar uma porta COM válida.

-2022

Adaptador Null

Verificar implementação

-2023

erro em DeviceToUse

Coletar log (se existir) e enviar para o suporte.

-2024

erro no serviço RfcommSocket

Coletar log (se existir) e enviar para o suporte.

-2026

Close exception

Coletar log (se existir) e enviar para o suporte.

-2027

Não foi possível estabelecer conexão Bluetooth

Tente novamente.

-2028

Não foi possível abrir socket ou stream

Tente novamente.

-2029

Socket null

Coletar log (se existir) e enviar para o suporte.

-2030

Exception no buffer de saída

Coletar log (se existir) e enviar para o suporte.

-2031

Exception no buffer de entrada

Coletar log (se existir) e enviar para o suporte.

-2032

Exception ao fechar socket

Coletar log (se existir) e enviar para o suporte.

-2033

Read timeout

Tente novamente

-2036

Exception ao enviar buffer

Coletar log (se existir) e enviar para o suporte.

-2037

Exception ao limpar buffer de envio

Coletar log (se existir) e enviar para o suporte.

-2038

Exception buffer de envio nulo

Coletar log (se existir) e enviar para o suporte.

-3000

Erro na camada de integração com a biblioteca

Coletar log (se existir) e enviar para o suporte.

 
Suggest Edits

ChangeLog

 
Versão
Data
Alteração

V1.0

13/06/2019

Versão inicial.

 
Suggest Edits

Introdução

 

A plataforma de desenvolvimento da moderninha Smart é composta pelo sistema de gestão de terminais e aplicações conhecida como "Loja de Aplicativos" e o conjunto de funcionalidades oferecidas pelo SDK de desenvolvimento da PagSeguro.

Esse produto tem como objetivo atender o público de clientes e parceiros que desejam utilizar um terminal Android com aplicações próprias operando abaixo da adquirência da PagSeguro.

Para quem é destinado?

Parceiro que desejam desenvolver aplicativos utilizando o Sistema Operacional Android em um terminal PAX A930

Pré-requisitos?

  • A biblioteca PlugPag possui suporte da API level 24 (7.0 Nougat) à 28 (9.0 Pie), devido a versão de Android presente no terminal Moderninha Smart.

  • Apenas uma única instância do PlugPag deve existir durante o uso do aplicativo. A existência de múltiplas instâncias pode fazer com que o comportamento seja indeterminado.

  • As chamadas dos métodos da classe PlugPag devem ser feitas em uma Thread que execute em background pois podem demorar para finalizar a execução. Caso a execução seja feita na Thread principal (UI Thread), o aplicativo pode apresentar um ANR (Application Not Responding). Além disso, alguns métodos executam transações utilizando chamadas remotas pela internet, o que impossibilita suas chamadas na Thread principal.

  • Eventos que chamem duas ou mais vezes o serviço de pagamento ou estorno antes da operação ser finalizada, podem ocasionar comportamento anormal no serviço e requerer que a aplicação seja fechada para realizar o unbind do serviço.

Terminais de desenvolvimento

Nossos terminais são encaminhados com a configuração para desenvolvimento no ambiente de teste. Nosso time de Integração irá informar o Código de Ativação.

 
Suggest Edits

Estrutura da Aplicação

 

Biblioteca PlugPag

Nossa biblioteca está previamente instaladas nos terminais PagSeguro Smart, não sendo necessário download para esse cenário.

Executando seu app em um terminal de debug/teste

Na fase de desenvolvimento pode-se validar a aplicação compilando o projeto em modo debug e enviando via cabo USB para o terminal PagSeguro Smart.

 
Suggest Edits

Ambientes Disponíveis

 

Como começar?

Nossos terminais de desenvolvimento são entregues aos parceiros apontando para o nosso ambiente de teste.

Código de Ativação

Para ativar seu terminal, favor utilizar o código 403938.

Cartões de Crédito para teste

Vale lembrar que no PagSeguro Sandbox nenhuma transação é enviada para o ambiente real, portanto mesmo que você use dados de um cartão real essa transação nunca será cobrada.

 

Importando a biblioteca PlugPagService Wrapper

Para importar a biblioteca PlugPagService Wrapper na sua aplicação nativa Android basta seguir os passos descritos abaixo:

1 - Inserir no arquivo build.gradle do projeto a URL do repositório Maven do PlugPag:

allprojects {
 repositories {
  ...
  maven {
   url 'https://github.com/pagseguro/PlugPagServiceWrapper/raw/master'
  }
  ...
 }
}

2 - Inserir as dependências no arquivo build.gradle da aplicação:

dependencies {
    ...
    implementation 'com.android.support:design:28.0.0'

    implementation 'br.com.uol.pagseguro.plugpagservice.wrapper:wrapper:1.3.3'
    ...
}

A versão da dependência com.android.support:design deve ser a mesma utilizada para as demais dependências com.android.support. A versão 28.0.0 é a mais recente no momento da edição desse documento.

AndroidManifest.xml

Permissões

Para integrar a biblioteca a biblioteca PlugPagService em aplicativos para Android é necessário adicionar a seguinte permissão ao AndroidManifest.xml.

<uses-permission android:name="br.com.uol.pagseguro.permission.MANAGE_PAYMENTS"/>

Essa permissão permite à biblioteca realizar o bind ao PlugPagService, serviço embarcado da Moderninha Smart, que gerencia todas as transações de pagamento.

Intent-filter

Para que seu aplicativo possa ser escolhido como aplicativo padrão de pagamento e receber Intents de inserção de cartão, é necessário adicionar o seguinte código em seu AndroidManifest.xml dentro da sua Activity principal.

<intent-filter>
      <action android:name="br.com.uol.pagseguro.PAYMENT"/>
      <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
 
Suggest Edits

Providers (Classes)

 

A biblioteca PlugPagService é composta de um conjunto de classes. A classe principal chama-se PlugPag, mas é necessário utilizar classes auxiliares para configurações e trocas de informações. Segue abaixo uma lista com classes que compõem a biblioteca:

Classe Descrição
PlugPag Classe principal da biblioteca.
Essa classe é responsável pelas transações.
PlugPagAbortResult Resultado obtido ao solicitar um cancelamento de operação, enquanto a operação está em andamento.
PlugPagAppIdentification Identificação do aplicativo.
PlugPagEventData Dados de eventos gerados durante transações para atualização de eventos no aplicativo.
PlugPagPaymentData Informações de um pagamento a ser realizado.
PlugPagTransactionResult Resultado de uma transação.
PlugPagVoidData Informações de um estorno a ser realizado.
PlugPagException Tipo principal de exceções geradas pelo PlugPag.
PlugPagVoidTransactionException Exceção lançada quando ocorrer um erro durante a configuração de um estorno.
PlugPagCustomPrinterLayout Classe para customização da dialog de impressão da via do cliente.
PlugPagNearFieldCardData Slots a serem lidos/escritos pelo NFC.
PlugPagNFCResult Resultado de uma leitura/escrita NFC
PlugPagPrintResult Resultado de uma requisição de impressão.
PlugPagPrinterData Informações de uma impressão a ser realizada
PlugPagPrinterListener Listener que retornar informações de erro durante uma impressão

Interfaces

As interfaces visam facilitar e padronizar algumas chamadas de métodos de forma assíncrona.

Interface Descrição
PlugPagEventListener Interface com método chamado quando um evento é enviado durante uma transação.
PlugPagAuthenticationListener Interface com métodos chamados quando é gerado um retorno de uma solicitação de autenticação.

API

Abaixo segue a descrição da interface pública da biblioteca PlugPagService:

PlugPag

Essa é a classe principal da biblioteca. É por meio dessa classe que é possível realizar transações na Moderninha Smart.

Constantes

Tipo Retorno
int RET_OK
Código utilizado para indicar sucesso nas operações.
Valor: 0
int REQUEST_CODE_AUTHENTICATION
Código utilizado para iniciar a Activity de autenticação.
Valor: 46981
int TYPE_CREDITO
Tipo de pagamento: crédito.
Valor: 1
int TYPE_DEBITO
Tipo de pagamento: débito
Valor: 2
int TYPE_VOUCHER
Tipo de pagamento: voucher (vale refeição)
Valor: 3
int INSTALLMENT_TYPE_A_VISTA
Forma de parcelamento: à vista
Valor: 1
int INSTALLMENT_TYPE_PARC_VENDEDOR
Forma de parcelamento: parcelamento vendedor
Valor: 2
int ERROR_REQUIREMENTS_MISSING_PERMISSIONS
Código de retorno para indicar erro de falta de permissões do aplicativo.
Valor: -3000
int ERROR_REQUIREMENTS_ROOT_PERMISSION
Código de retorno para indicar que o aparelho possui permissões de root.
Valor: -3001

Construtores

  • PlugPag (Context context, PlugPagAppIdentification appIdentification)
    Cria uma instância do PlugPag utilizando context para acessar dados e recursos do dispositivo e identificando as transações com os dados do aplicativo fornecidos em appIdentification.
    Gera uma exceção se context ou appIdentification forem nulos.

Métodos

Tipo de retorno Método e Descrição
PlugPagAbortResult abort()
Solicita o cancelamento da operação atual.
O cancelamento da transação não ocorre instantaneamente, pois depende do fluxo da transação. Retorna o resultado da solicitação de cancelamento.
PlugPagTransactionResult doPayment(PlugPagPaymentData paymentData)
Efetua um pagamento.
Retorna o resultado da transação.
PlugPagAppIdentification getAppIdentification()
Retorna a identificação do aparelho definido no construtor da classe.
String getApplicationCode()
Retorna o código da aplicação.
Esse código é uma constante da biblioteca.
String getLibVersion()
Retorna a versão da biblioteca PlugPagService.
int initBTConnection(PlugPagDevice deviceInformation)
Configura a conexão bluetooth utilizando os dados de deviceInformation.
Retorna PlugPag.RET_OK em caso de sucesso.
void invalidateAuthentication()
Invalida uma autenticação. Equivalente a realizar um logout.
boolean isAuthenticated()
Verifica se há um usuário autenticado.
Retorna true se houver um usuário autenticado, false caso contrário.
void requestAuthentication(PlugPagAuthenticationListener listener)
Solicita autenticação. O resultado da autenticação é notificado ao listener que é passado no parâmetro listener.
void setEventListener(PlugPagEventListener listener)
Armazena a referência de uma instância de interface que receberá os eventos gerados durante as transações. Os eventos são gerados apenas para transações feitas utilizando um leitor.
int setVersionName(String appName, String appVersion)

PlugPagAbortResult

Essa classe contém dados resultantes de uma solicitação de cancelamento de operação.

Construtores

  • PlugPagAbortResult (int result)
    Cria um container de dados resultantes de um cancelamento de operação com o código result.

Método

Tipo Método e Descrição
int getResult()
Retorna o código de resultado da solicitação de cancelamento de operação.

PlugPagAppIdentification

Essa classe representa a identificação de um aplicativo.

Construtores

  • PlugPagAppIdentification (String name, String version)
    Cria uma identificação do aplicativo, definindo seu nome e sua versão com os valores de name e version, respectivamente.
    Gera uma exceção se name ou version forem nulos ou vazios.

Método

Tipo Método e Descrição
String getName()
Retorna o nome do aplicativo.
String getVersion()
Retorna a versão do aplicativo.

PlugPagEventData

Essa classe representa um evento gerado pela biblioteca PlugPag para o aplicativo de integração.

Constantes

Tipo Retorno
int EVENT_CODE_DEFAULT
Código padrão de evento. Utilizado quando nenhum evento foi enviado.
Valor: -1
int EVENT_CODE_WAITING_CARD
Código de evento indicando que o leitor está aguardando o usuário inserir o cartão.
Valor: 0
int EVENT_CODE_INSERTED_CARD
Código de evento indicando que o cartão foi inserido.
Valor: 1
int EVENT_CODE_PIN_REQUESTED
Código de evento indicando que o leitor está aguardando o usuário digitar a senha.
Valor: 2
int EVENT_CODE_PIN_OK
Código de evento indicando que a senha digitada foi validada com sucesso.
Valor: 3
int EVENT_CODE_SALE_END
Código de evento indicando o fim da transação.
Valor: 4
int EVENT_CODE_AUTHORIZING
Código de evento indicando que o terminal está aguardando autorização da senha digitada para prosseguir com a transação.
Valor: 5
int EVENT_CODE_INSERTED_KEY
Código de evento indicando que a senha foi digitada.
Valor: 6
int EVENT_CODE_WAITING_REMOVE_CARD
Código de evento indicando que o terminal está aguardando o usuário remover o cartão.
Valor: 7
int EVENT_CODE_REMOVED_CARD
Código de evento indicando que o cartão foi removido do terminal.
Valor: 8

Construtores

  • PlugPagEventData (int eventCode)
    Cria um identificador de evento gerado pela biblioteca para o aplicativo de integração, com o código eventCode.

Método

Tipo Método e Descrição
int getEventCode()
Retorna o código do evento gerado.

PlugPagPaymentData

Essa classe representa os dados de um pagamento. É nessa classe que são definidas informações de tipo de pagamento, valor a ser pago e parcelas, além e outras informações gerenciais.

Construtores

  • PlugPagPaymentData (int paymentType, int amount, int installmentType, int installments, String userReference)
    Cria um conjunto de informações necessários para iniciar um pagamento. O pagamento configurado será do tipo paymentType, com o valor amount, com parcelamento do tipo installmentType, com installments número de parcelas, identificado por userReference.
    O parâmetro amount definido é o valor em centavos a ser pago. Para um pagamento de R$ 1,50, o amount deverá ser de 150.
    O valor de userReference deve conter apenas letras (não acentuadas) e números. Esse campo é limitado a 10 caracteres.
    Gera uma exceção se o userReference for nulo ou vazio.

  • PlugPagPaymentData (int paymentType, int amount, int installmentType, int installments, String userReference, Boolean printReceipt)
    Cria um conjunto de informações necessários para iniciar um pagamento. O pagamento configurado será do tipo paymentType, com o valor amount, com parcelamento do tipo installmentType, com installments número de parcelas, identificado por userReference.
    O parâmetro amount definido é o valor em centavos a ser pago. Para um pagamento de R$ 1,50, o amount deverá ser de 150.
    O valor de userReference deve conter apenas letras (não acentuadas) e números. Esse campo é limitado a 10 caracteres.
    O parâmetro printReceipt indicará se deverá ser impresso os comprovantes da transação.
    Gera uma exceção se o userReference for nulo ou vazio.

Método

Tipo Método e Descrição
int getAmount()
Retorna o valor a ser pago, em centavos.
int getInstallments()
Retorna o número de parcelas do pagamento.
int getInstallmentType()
Retorna o tipo de parcelamento.
Valores: PlugPag.INSTALLMENT_TYPE_A_VISTA ou PlugPag.INSTALLMENT_TYPE_PARC_VENDEDOR
int getType()
Retorna o tipo de pagamento.
Valores: PlugPag.TYPE_CREDITO, PlugPag.TYPE_DEBITO ou PlugPag.TYPE_VOUCHER.
String getUserReference()
Retorna o código de venda.

PlugPagPaymentData.Builder

Construtor de objetos PlugPagPaymentData.

Construtores

  • Builder ()
    Cria um construtor de objetos PlugPagPaymentData.

Métodos

Tipo Método e Descrição
PlugPagPaymentData build()
Cria um PlugPagPaymentData com os dados armazenados no Builder.
Builder setAmount(int amount)
Define o valor a ser pago.
Retorna a referência do próprio Builder para chamadas encadeadas.
O valor de amount deve ser fornecido em centavos. Por exemplo, se o valor desejado é de R$1,50, deve-se passar o valor 150.
Gera uma exceção se amount não for maior do que zero.
Builder setInstallments(int installments)
Retorna a quantidade de parcelas do pagamento.
Retorna a referência do próprio Builder para chamadas encadeadas.
Se installments for igual a 1, o tipo de parcelamento é automaticamente definido para PlugPag.INSTALLMENT_TYPE_A_VISTA.
Gera uma exceção se installments não for maior do que zero.
Builder setInstallmentType(int installmentType)
Define o tipo de parcelamento.
Valores válidos para installmentType são PlugPag.INSTALLMENT_TYPE_A_VISTA e PlugPag.INSTALLMENT_TYPE_PARC_VENDEDOR.
Retorna a referência do próprio Builder para chamadas encadeadas.
Gera uma exceção se installmentType for inválido.
Builder setType(int type)
Define o tipo de pagamento.
Valores válidos para type são PlugPag.TYPE_CREDITO, PlugPag.TYPE_DEBITO e PlugPag.TYPE_VOUCHER.
Retorna a referência do próprio Builder para chamadas encadeadas.
Gera uma exceção se type for inválido.
Builder setUserReference(String userReference)
Define o código de venda.
Retorna a referência do próprio Builder para chamadas encadeadas.
O valor de userReference deve conter apenas letras (não acentuadas) e números. Esse campo é limitado a 10 caracteres.
Gera uma exceção se userReference for nulo ou vazio.

PlugPagTransactionResult

Essa classe representa o resultado de uma transação.

Construtores

  • PlugPagTransactionResult(String message, String transactionCode, String transactionId, String date, String time, String hostNsu, String cardBrand, String bin, String holder, String userReference, String terminalSerialNumber, String amount, String availableBalance, String cardApplication, String cardCryptogram, String label, String holderName, String extendedHolderName)
    Cria um objeto para armazenar um conjunto de informações resultantes de uma transação.

  • PlugPagTransactionResult(String message, String errorCode, String transactionCode, String transactionId, String date, String time, String hostNsu, String cardBrand, String bin, String holder, String userReference, String terminalSerialNumber, String amount, String availableBalance, String cardApplication, String cardCryptogram, String label, String holderName, String extendedHolderName, int result)
    Cria um objeto para armazenar um conjunto de informações resultantes de uma transação, adicionando o código de resultado result.

Métodos

Tipo Método e Descrição
String getAmount()
Retorna o valor transacionado.
String getAvailableBalance()
Retorna o saldo da conta, caso o método de pagamento seja PlugPag.TYPE_VOUCHER.
String getBin()
Retorna os 4 (quatro) últimos dígitos do cartão utilizado.
String getCardApplication()
Retorna a aplicação do cartão.
String getCardBrand()
Retorna a bandeira do cartão utilizado.
String getCardCryptogram()
Retorna o criptograma do cartão.
String getDate()
Retorna a data da transação.
String getErrorCode()
Se um erro ocorreu durante a transação, retorna o código de erro.
String getExtendedHolderName()
Retorna o nome completo do titular do cartão utilizado.
String getHolder()
Retorna os 4 últimos dígitos do cartão utilizado.
String getHolderName()
Retorna o nome do titular do cartão utilizado.
String getHostNsu()
Retorna um identificador único do host (servidor).
String getLabel()
Retorna o label do cartão utilizado.
String getMessage()
Retorna uma mensagem do resultado da transação, definida pela biblioteca.
int getResult()
Retorna o código do resultado.
String getTerminalSerialNumber()
Retorna o número de série do terminal ou leitor utilizado para efetuar o pagamento.
String getTime()
Retorna o horário da transação.
String getTransactionCode()
Retorna o código da transação.
String getTransactionId()
Retorna o ID da transação.
String getUserReference()
Retorna o código de venda o pagamento efetuado.

PlugPagTransactionResult.Builder

Construtor de objetos PlugPagTransactionResult.

Construtores

  • Builder ()
    Cria um construtor de objetos PlugPagTransactionResult.

Métodos

Tipo Método e Descrição
PlugPagTransactionResult build()
Constrói uma instância da classe PlugPagTransactionResult utilizando os dados armazenados.
Builder setAmount(String amount)
Define o valor da transação.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setAvailableBalance(String availableBalance)
Define o saldo disponível.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setBin(String bin)
Define o BIN do cartão utilizado na transação.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setCardApplication(String cardApplication)
Define a aplicação do cartão utilizado na transação.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setCardBrand(String cardBrand)
Define a bandeira do cartão utilizado na transação.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setCardCryptogram(String cardCryptogram)
Define o criptograma do cartão utilizado na transação.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setDate(String date)
Define a data da transação.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setExtendedHolderName(String extendedHolderName)
Define o nome completo do titular do cartão utilizado na transação.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setHolder(String holder)
Define o nome do titular do cartão.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setHolderName(String holderName)
Define o nome do titular do cartão.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setHostNsu(String hostNsu)
Define o NSU do host que executou a transação.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setLabe(String label)
Define o label do cartão utilizado.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setMessage(String message)
Define a mensagem do resultado da transação que será construído.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setTerminalSerialNumber(String terminalSerialNumber)
Define o número de série do terminal ou leitor utilizado na transação.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setTime(String time)
Define o horário da transação.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setTransactionCode(String transactionCode)
Define o código da transação.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setTransactionId(String transactionId)
Define o ID da transação.
Retorna a referência do próprio Builder para chamadas encadeadas.
Builder setUserReference(String userReference)
Define o código de venda da transação.
Retorna a referência do próprio Builder para chamadas encadeadas.

PlugPagVoidData

Essa classe representa os dados de um estorno.

É nessa classe que são definidos dados necessários para solicitar o estorno de um pagamento.

Construtores

  • PlugPagVoidData (String transactionCode, String transactionId, Boolean printReceipt)
    Cria um conjunto de informações para solicitar o estorno de um pagamento identificado pelo transactionCode e transactionId fornecidos.
    O parâmetro printReceipt é opcional e indicará se deverá ser impresso os comprovantes da transação.
    Gera uma exceção se transactionCode for nulo ou vazio.

  • PlugPagVoidData (String transactionCode, String transactionId)
    Cria um conjunto de informações para solicitar o estorno de um pagamento identificado pelo transactionCode e transactionId fornecidos.
    Gera uma exceção se transactionCode for nulo ou vazio.

Métodos

Tipo Método e Descrição
String getTransactionCode()
Retorna o código da transação que será estornada.
String getTransactionId()
Retorna o ID da transação que será estornada.

PlugPagVoidData.Builder

Construtor de objetos PlugPagVoidData.

Construtores

  • Builder ()
    Cria um construtor de objetos PlugPagVoidData.

Método

Tipo Método e Descrição
PlugPagVoidData build()
Constrói uma instância da classe PlugPagVoidData utilizando os dados armazenados.
Builder setTransactionCode(String transactionCode)
Define o código da transação.
Retorna a referência do próprio Builder para chamadas encadeadas.
Gera uma exceção se transactionCode for nulo ou vazio.
Builder setTransactionId(String transactionid)
Define o ID da transação.
Retorna a referência do próprio Builder para chamadas encadeadas.

PlugPagCustomPrinterLayout

Essa classe representa os elementos a serem customizados da dialog de impressão da via do cliente.

Construtor

  • PlugPagCustomPrinterLayout ()
    Cria um construtor de objetos PlugPagCustomPrinterLayout.

Método

Tipo Método e Descrição
void setButtonBanckgroundColor(String hexaCodeColor)
Modifica a cor de fundo dos botões da dialog.
void setCancelText(String cancelText)
Modifica o texto do botão de cancelar da dialog.
void setCancelTextColor(String hexaCodeColor)
Altera a cor do texto do botão de cancelar da dialog.
void setConfirmText(String confirmText)
Modifica o texto do botão de confirmar da dialog.
void setConfirmTextColor(String hexaCodeColor)
Altera a cor do texto do botão de confirmar da dialog.
void setTitle(String titleText)
Seta o texto a ser mostrado na dialog.
void setTitleColor(String hexaCodeColor)
Altera a cor do texto mostrado na dialog.
void setWindowBackgroundColor(String hexaCodeColor)
Modifica a cor de fundo da dialog.

Todos os itens são opcionais. Caso não sejam setados, obeterão seus valores defaults.

PlugPagNFCResult

Essa classe representa o retorno de uma leitura ou escrita a um cartão NFC.

Construtor

  • PlugPagNFCResult (int startSlot, int endSlot, HashMap<String, Byte[]>[] slots, int result)

Métodos

Tipo Método e Descrição
int getStartSlot()
Retorna o primeiro slot a ser escrito/lido
int getEndSlot()
Retorna o último slot a ser escrito/lido.
HashMap<String, Byte[]>[] getSlots()
Retorna as informações as serem escritas/lidas de cada slot.
No total, são 64 slots onde, cada slot, possui um HashMap contendo duas informações: data e pwd. Pwd retorna a senha de deste slot e data retorna o valor que foi lido/escrito naquele slot.
int getResult()
Retorna 1 para sucesso e –1 para falha.

PlugPagPrintResult

Essa classe representa o retorno de uma requisição de impressão pelo PlugPagService.

Construtor

  • PlugPagPrintResult (int result, String message, String errorCode)

Métodos

Tipo Método e Descrição
int getResult()
Retorna PlugPag.RET_OK quando sucesso.
int getMessage()
Retorna a mensagem de erro da operação.
HashMap<String, Byte[]>[] getErrorCode()
Retorna o código de erro da operação.

PlugPagPrinterData

Essa classe representa os dados de uma impressão a ser realizada.

A impressão é feita a partir de um arquivo. O arquivo deve ser uma imagem com 1155px de largura, mas caso seja enviada uma imagem com um tamanho maior, ela será redimensionada para se adequar à largura da bobina. O arquivo fornecido e todo o caminho até ele deve estar acessível para o PlugPagService

Construtor

  • PlugPagPrinterData (String filePath, Int printerQuality, Int step)

Métodos

Tipo Método e Descrição
String filePath getFilePath()
Retorna o caminho de arquivo a ser impresso.
int printerQuality getPrinterQuality()
Retorna a qualidade da impressão. Os valores podem variar de 1 a 4, onde 4 indica a maior qualidade da impressão.
int step getStep()
Retorna o espaçamento a ser feito após a impressão terminar.
 
Suggest Edits

Exemplos de implementação

 

Seguem abaixo alguns exemplos de camadas dos métodos do PlugPagService Wrapper para realizar transações.
As formas de fazer as chamadas e de tratar os valores retornados vão depender da implementação do seu aplicativo, porém é importante que sua aplicação controle ações de duplo clique para prevenir que o serviço seja chamado duas vezes.

Pagamento de R$250,00. Credito à vista:

public void startPayment(Context context) {
    // Define os dados do pagamento
    PlugPagPaymentData paymentData = 
            new PlugPagPaymentData(
                    PlugPag.TYPE_CREDITO,
                    25000,
                    PlugPag.INSTALLMENT_TYPE_A_VISTA,
                    1,
                    "CODVENDA");
    
    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification = 
            new PlugPagAppIdentification("MeuApp", "1.0.7");
    
    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context, appIdentification);
    
    // Ativa terminal e faz o pagamento
    int initResult = plugpag.initializeAndActivatePinpad(new 
    PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO")));
    
    if (initResult == PlugPag.RET_OK) {
        PlugPagTransactionResult result = plugpag.doPayment(paymentData);
        
        // Trata o resultado da transação
        ...
    }
}

Pagamento de R$300. Credito parcelado em 3 :

public void startPayment(Context context) {
    // Define os dados do pagamento
    PlugPagPaymentData paymentData =
            new PlugPagPaymentData(
                    PlugPag.TYPE_CREDITO,
                    30000,
                    PlugPag.INSTALLMENT_TYPE_PARC_VENDEDOR,
                    3,
                    "CODVENDA");

    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.7");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context, appIdentification);

    // Ativa terminal e faz o pagamento
    int initResult = plugpag.initializeAndActivatePinpad(new 
    PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO")));

    if (initResult == PlugPag.RET_OK) {
        PlugPagTransactionResult result = plugpag.doPayment(paymentData);

        // Trata o resultado da transação
        ...
    }
}

Pagamento de R$150,00. Débito:

public void startPayment(Context context) {
    // Define os dados do pagamento
    PlugPagPaymentData paymentData =
            new PlugPagPaymentData(
                    PlugPag.TYPE_DEBITO,
                    15000,
                    PlugPag.INSTALLMENT_TYPE_A_VISTA,
                    1,
                    "CODVENDA");

    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.7");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context, appIdentification);

    // Ativa terminal e faz o pagamento
    int initResult = plugpag.initializeAndActivatePinpad(new 
    PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO")));

    if (initResult == PlugPag.RET_OK) {
        PlugPagTransactionResult result = plugpag.doPayment(paymentData);

        // Trata o resultado da transação
        ...
    }
}

Pagamento de R$50,00. Voucher:

public void startPayment(Context context) {
    // Define os dados do pagamento
    PlugPagPaymentData paymentData =
            new PlugPagPaymentData(
                    PlugPag.TYPE_VOUCHER,
                    5000,
                    PlugPag.INSTALLMENT_TYPE_A_VISTA,
                    1,
                    "CODVENDA");

    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.7");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context, appIdentification);

    // Ativa terminal e faz o pagamento
    int initResult = plugpag.initializeAndActivatePinpad(new 
    PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO")));

    if (initResult == PlugPag.RET_OK) {
        PlugPagTransactionResult result = plugpag.doPayment(paymentData);

        // Trata o resultado da transação
        ...
    }
}

Estorno de um pagamento

public void voidPayment(Context context) {

    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.7");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context, appIdentification);

    // Ativa terminal e faz o pagamento
    int initResult = plugpag.initializeAndActivatePinpad(new 
    PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO")));

    if (initResult == PlugPag.RET_OK) {
        PlugPagTransactionResult result = plugpag.voidPayment(
                          "transactionCode", 
                          "transactionId");

        // Trata o resultado do estorno
        ...
    }
}

Verificar autenticação

public void checkAuthentication(Context context) {
    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.7");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context, appIdentification);

    // Verifica autenticação
    boolean authenticated = plugpag.isAuthenticated();

    if (authenticated) {
        // Usuário autenticado
        ...
    } else {
        // Usúario não autenticado
        ...
    }
}

Invalidar autenticação

public void logout(Context context) {
    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.7");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context, appIdentification);

    // Invalida a autenticação existente
    plugpag.invalidateAuthentication();
    ...
}

Solicitar ativação

public void requestAuth(Activity activity) {
   // Cria a identificação do aplicativo
   PlugPagAppIdentification appIdentification =
          new PlugPagAppIdentification("MeuApp", "1.0.7");
   // Cria a referência do PlugPag
   PlugPag plugPag = new PlugPag(activity, appIdentification);
   // Cria objeto com informação do código de ativação
   PlugPagActivationData plugPagActivationData =
              new PlugPagActivationData("SeuCodigoDeAtivação”);

   // Solicita autenticação
   PlugPagInitializationResult result =
plugPag.initializeAndActivatePinPad(plugPagActivationData);
 
   if(result.getResult() == PlugPag.RET_OK) {
       //Sucesso
   } else {
       //Erro
   }
   ...
}

O resultado da autenticação será retornado através da classe PlugPagInitializationResult.
Se a autenticação for efetuada com sucesso, o método getResult() irá retornar valor igual a PlugPag.RET_OK. Caso contrário, mais informações do erro podem ser encontradas nos métodos getErrorCode() e getErrorMessage().

Obter versão da biblioteca

public void getLibVersion(Context context) {
    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.7");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context, appIdentification);
    
    // Obtém a versão da biblioteca
    String version = plugpag.getLibVersion();
}

Reimpressão da via do estabelecimento

public void reprintStablishmentReceipt() {
    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.7");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context, appIdentification);
    
    // Obtém a versão da biblioteca
    PlugPagPrintResutlt result = plugpag.reprintStablishmentReceipt();
}

Reimpressão da via do cliente

public void reprintCustomerReceipt() {
    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.7");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context, appIdentification); 
    
    // Obtém a versão da biblioteca
    PlugPagPrintResutlt result = plugpag.reprintCustomerReceipt();
}

Calcular parcelas

public void calculateInstallments() {
    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.7");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context, appIdentification);
    
    // Obtém a versão da biblioteca
    Array<String> installments = plugpag.calculateInstallments(saleValue);
}

O resultado retornado será uma String contendo a quantidade de parcelas permitidas mais o valor de cada parcela, seguindo o padrão “<quantidadeDeParcelas> x R$ <valorDaParcela>”.

Customizar dialog de impressão da via do cliente

public void startPayment(Context context) {
    // Define os dados do pagamento
    PlugPagPaymentData paymentData =
            new PlugPagPaymentData(
                    PlugPag.TYPE_DEBITO,
                    15000,
                    PlugPag.INSTALLMENT_TYPE_A_VISTA,
                    1,
                    "CODVENDA");

    // Cria a identificação do aplicativo
    PlugPagAppIdentification appIdentification =
            new PlugPagAppIdentification("MeuApp", "1.0.7");

    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context, appIdentification);

   // Cria a customização da dialog de impressão da via do cliente
   PlugPagCustomPrinterLayout customDialog = new                                                         PlugPagCustomPrinterLayout(); 
   customDialog.setTitle("Imprimir via do cliente?");
   customDialog.setButtonBackgroundColor("#00ff33");
   customDialog.setConfirmText("Yes");
   customDialog.setCancelText("No");

    // Ativa terminal e faz o pagamento
    int initResult = plugpag.initializeAndActivatePinpad(new 
    PlugPagActivationData("SEU_CODIGO_DE_ATIVAÇÃO")));

    if (initResult == PlugPag.RET_OK) {
        plugPag.setPlugPagCustomPrinterLayout(customDialog);
        PlugPagTransactionResult result = plugpag.doPayment(paymentData);

        // Trata o resultado da transação
        ...
    }
}

Ler cartão NFC

public void readNFCCard() {
   // Cria a referência do PlugPag
   PlugPag plugpag = new PlugPag(context);
   PlugPagNearFieldCardData dataCard = new PlugPagNearFieldCardData();
   dataCard.setStartSlot(1);
   dataCard.setEndSlot(1);
   
   // Lê um cartão NFC
   PlugPagNFCResult result = plugpag.readFromNFCCard(dataCard);
}

O resultado da autenticação será retornado através da classe PlugPagNFCResult.
Se a autenticação for efetuada com sucesso, o método getResult() irá retornar valor igual
a 1. Do contrário, o método getResult() retornará -1.

Escrever no cartão NFC

public void writeToNFCCard() {
    // Cria a referência do PlugPag
    PlugPag plugpag = new PlugPag(context);
 
    String info = "teste_com16bytes";
    byte[] infoBytes = info.getBytes();

    PlugPagNearFieldCardData dataCard = new PlugPagNearFieldCardData();
    dataCard.setStartSlot(1);
    dataCard.setEndSlot(2);
    dataCard.getSlots()[1].put(“data”, infoBytes);
 
    // Escreve em um cartão NFC
    int result = plugpag.writeToNFCCard(dataCard);
}

O resultado da autenticação será retornado através da classe PlugPagNFCResult.
Se a autenticação for efetuada com sucesso, o método getResult() irá retornar valor igual a 1. Do contrário, o método getResult() retornará -1.

Imprimir arquivo

public void printFile() {
    // Cria a referência do PlugPag
    PlugPag plugPag = new PlugPag(context);

    // Cria objeto com informações da impressão
    PlugPagPrinterData data = new PlugPagPrinterData(
          Environment.getExternalStorageDirectory().getAbsolutePath() + /SeuDiretorio/SeuArquivo”, 
          4, 
          10 * 12));

    PlugPagPrinterListener listener = new PlugPagPrinterListener() {
          @Override
          public void onError(@NotNull PlugPagPrintResult plugPagPrintResult) {
                 plugPagPrintResult.getMessage(); // Mensagem de erro
                 plugPagPrintResult.getErrorCode(); // Código de erro
 
          }
    };

    //Seta listener de impressão
    plugPag.setPrinterListener(listener)

    // Imprime arquivo
    PlugPagPrintResult result = plugPag.printFromFile(plugPagPrinterData)
    
    if (result == PlugPag.RET_OK) {
       //sucesso
    }
}

Buscar última transação aprovada

public void getLastApprovedTransaction(Context context) {
   // Cria a referência do PlugPag
   PlugPag plugpag = new PlugPag(context);
 
   PlugPagTransactionResult lastApprovedTransaction
                          = plugpag.getLastApprovedTransaction();
}
 
Suggest Edits

Demo Smart POS

 

Demo Smart Coffee

Para facilitar o processo de entendimento sobre o Smart POS desenvolvemos um app Demo que trás as pricipais chamadas existente na nossa biblioteca hoje.

Esse exemplo ajudará na compreensão das classes descritas acima.

Repositório Demo Smart Coffee

 

Aqui temos um Central de Ajuda onde reunimos as principais dúvidas que recebemos.

Qual termina posso utilizar com o PagSeguro PlugPag Android?

Hoje temos o terminal PAX A930.

Preciso realizar o download da biblioteca PagSeguro PlugPag?

Não, o terminal A930 Pagseguro já possui a biblioteca PlugPag instalada e configurada.

Configurações do dispositivo suportado:

PAX A930

PAX A930

Componente Propriedade
Memória 8GB
Tela 5.5" - 720 x 1280 pixels
Impressora Sim
Peso e dimensão 455g - 19,0 x 8,5 x 6,6 cm
Cabo e carregador USB-C e Bivolt
Conectividade Wifi 2 e 5Ghz, BT e 4G
Bateria Até 10 horas
GPS Sim
Câmera Não
Garantia 5 Anos

Como devo configurar meu terminal de teste?

Os terminais de testes encaminhados pela PagSeguro já estão configurados no nosso ambiente de Sandbox, logo para ativá-o você deve utilziar o código de ativação: 403938

 
Suggest Edits

Apêndice

 

Códigos de retorno

Os códigos de retorno descritos abaixo são obtidos ao chamar o método getResult() de um PlugPagTransactionResult retornado por um dos métodos de transação de um objeto PlugPag: doPayment(PlugPagPaymentData), voidPayment(PlugPagVoidData) e getLastApprovedTransaction().

Valor Descrição Ação
0000 Transação concluída com sucesso.
1001 Mensagem gerada maior que buffer dimensionado. Coletar log (se existir) e enviar para o suporte.
1002 Parâmetro de aplicação inválido. Coletar log (se existir) e enviar para o suporte.
1003 Terminal não está pronto para transacionar. Tente novamente.
1004 Transação não realizada. Verificar mensagem retornada.
1005 Buffer de resposta da transação inválido ao obter as informações de resultado da transação. Realizar consulta de última transação.
1006 Parâmetro de valor da transação não pode ser nulo. Verificar implementação da chamada da biblioteca.
1007 Parâmetro de valor total da transação não pode ser nulo. Verificar implementação da chamada da biblioteca.
1008 Parâmetro de código de venda não pode ser nulo. Verificar implementação da chamada da biblioteca.
1009 Parâmetro de resultado da transação não pode ser nulo. Verificar implementação da chamada da biblioteca.
1010 Driver de conexão não encontrado. Verificar se todos os arquivos estão no diretório correto.
1011 Erro ao utilizar driver de conexão. Reinstalar os arquivos do driver de conexão.
1012 Formato do valor da venda inválido. Valor deve ser um número inteiro sem vírgula.
1013 Comprimento do código de venda superior a 10 dígitos. Truncar código de venda para no máximo 10 dígitos.
1014 Buffer de recepção corrompido. Refaça a transação.
1015 Nome da aplicação maior que 25 caracteres. Limitar nome da aplicação a 25 caracteres.
1016 Versão da aplicação maior que 10 caracteres. Limitar versão da aplicação em 10 caracteres.
1017 Necessário definir nome da aplicação. Definir nome e versão da aplicação com setVersionName(String, String)
1018 Não existem dados da última transação. Refaça a transação.
1019 Erro de comunicação com terminal (resposta inesperada). Realizar consulta de última transação.
1024 Erro na carga de tabelas. Refazer inicialização (carga de tabelas).
1030 Token não encontrado Refazer autenticação.
1031 Valor inválido Verificar o valor configurado para pagamento e tentar novamente. Valor mínimo: R$ 1,00
1032 Parcelamento inválido Verificar o número de parcelas e tentar novamente.
2001 Porta COM informada não encontrada. Informar uma porta COM válida.
2002 Não foi possível obter configurações da porta COM informada. Informar uma porta COM válida.
2003 Não foi possível configurar a porta COM informada. Informar uma porta COM válida.
2005 Não foi possível enviar dados pela porta COM informada. Informar uma porta COM válida.
2022 Java – Adaptador Null. Verificar implementação.
2023 Java – erro em DeviceToUse. Coletar log (se existir) e enviar para o suporte.
2024 Java – erro no serviço RfcommSocket. Coletar log (se existir) e enviar para o suporte.
2026 Java – Close exception. Coletar log (se existir) e enviar para o suporte.
3001 Permissão de root Remover permissão de root do aparelho.
4046 Não existe dados de autenticação Efetuar a autenticação.
 
Suggest Edits

ChangeLog

 
Versão
Data
Alteração

V1.0

25/04/2019

Versão inicial.

 
Suggest Edits

Introdução

 

Possibilitar aos parceiros de negócio replicar as condições comerciais aprovadas para o cliente que está adquirindo máquinas PagSeguro.

  • Taxas, Prazos de recebimento e valor das maquinas.

Público alvo

Clientes com modelo de operação através de parcerias, franquias ou prestação de serviços.

 

Abaixo o fluxo operacional completo:

IMPORTANTE

Esse processo é utilizado em conjunto com o Modelo de Aplicações

Antes iniciar uma venda de terminal é necessário gerar um código de autorização no PagSeguro. O código de autorização representa um template do fluxo de venda e contém as seguintes informações:

1 - Solicitação de autorização para que o parceiro altere as condições comerciais do cliente.*
2 - O código de checkout, que representa as informações de venda de um terminal específico.* (O PagSeguro irá fornecer esse código para cada tipo de terminal)
3 - O código de referencia responsável por realizar a associação das condições comerciais acordadas com o parceiro.
4 - Sugestão cadastral caso o cliente opte por criar uma nova conta PagSeguro. O cliente poderá alterar TODOS os dados sugeridos
5 - Dados para a integração sistêmica (ver documentação de Modelo de Aplicações)

 
Suggest Edits

Ambientes disponíveis

 

Como começar?

Hoje não temos um ambinete de teste Sandbox para nossos parceiros utilizarem durante o processo de integração, logo, encaminhamos uma credencial de produção genérica para ser utilizada.

Vale lembrar que no PagSeguro Sandbox nenhuma transação é enviada para o ambiente real, portanto mesmo que você use dados de um cartão real essa transação nunca será cobrada.

 
Suggest Edits

Modelo de aplicações

 

O modelo de aplicações do PagSeguro permite que sua aplicação crie checkouts, receba notificações de pagamento entre outras funções em nome do vendedor sem a necessidade de configurar tokens, URL de retorno e outras informações na conta PagSeguro que você estiver utilizando.

Assim, o seu cliente pode se cadastrar em sua plataforma, autorizá-la e começar a vender sem a necessidade de inserir informações ou entrar na conta PagSeguro para efetuar configurações.

Abaixo, um exemplo para criar e autorizar a sua aplicação através do modelo de aplicação;

Para criar uma nova aplicação, acesse os menus Aplicações >>> Minhas aplicações ou o link https://pagseguro.uol.com.br/aplicacao/listagem.jhtml e clique em “Criar nova aplicação” conforme apresentado na Imagem abaixo:

Na página de criação, você deve preencher os dados solicitados que são:

CAMPO
DESCRIÇÃO

Nome da aplicação

Esse nome irá aparecer para você e para os outros clientes que usarão sua aplicação.

ID da Aplicação

O ID da aplicação será o código que identifica esta aplicação no PagSeguro.
Obs: O PagSeguro irá sugerir um ID a partir do nome que você escolheu no campo anterior.

Descrição da aplicação

Escreva a descrição que irá aparecer para os usuários em sua aplicação. Procure ser objetivo e explicar resumidamente a sua função.

URL da aplicação

Digite a url em que a sua aplicação estará disponível para acesso na internet.

Logotipo

Informe o endereço (URL) da sua logotipo ou faça upload do arquivo de imagem.
Obs: Máximo de 500kbytes, Formatos aceitos: JPG, GIF, PNG, BMP.
Sua logotipo poderá ser reduzida para as proporções máximas de 150 x 55 pixels.

URL de notificação

Digite a url em que você receberá as notificações feitas em sua aplicação.

URL de redirecionamento

Digite a url que o usuário irá ser levado após a finalização do pagamento.

Também é possível habilitar o redirecionamento com o código de transação. Com a opção habilitada, o PagSeguro irá enviar como parâmetro, via GET, o código da autorização que foi gerado. Sua aplicação poderá utilizar esse código para exibir informações da autorização ao cliente.

Caso habilite esta opção, você poderá escolher o nome do parâmetro GET que será utilizado conforme a imagem abaixo:

Após criar a sua aplicação será apresentado um resumo com os dados da aplicação, inclusive a chave da sua aplicação (ou appKey) como apresentado na imagem abaixo:

Importante

Assim que criar a aplicação salve essa appKey pois será necessário para realizar a chamada do authorization request

 
Suggest Edits

Providers

 

Aqui apresentamos todos os end-points disponíveis onde seu servicço poderá acessar nossa aplicação.

 
Suggest Edits

Exemplo de geração de código de autorização

 
posthttps://ws.pagseguro.uol.com.br/v2/authorizations/request?appId=connectparcerias&appKey=E6BD05D4AAAAFE7224B51F8BF1ECE738

BODY PARAMS

PARAMS
DESCRIPTION
<permissions>
<code>

Permissão que deverá ser autorizada

CONFIGURE_PROMOTION – Autoriza a alterar suas condições comerciais.

<checkoutCode>

Código que referencia a máquina que será comprada.

<reference>

Código responsável por realizar a associação das condições comerciais acordadas com o parceiro.

<account>
<email>

E-mail da do parceiro que será cadastrado no PagSeguro.

<account>
<type>

Tipo de conta que o Parceiro irá cadastrar
SELLER – Vendedor Pessoa Física
COMPANY – Vendedor Pessoa Jurídica.

<account>
<person>

Agrupa os dados do vendedor parceiro.

<account>
<seller>
<name>

Nome completo do vendedor/ empresa.

<seller>
<documents>
<document>
<type>

Tipo do documento
CPF ou CNPJ .

<seller>
<documents>
<document>
<type>
<value>

Número do documento
Apenas CPF ou CNPJ válidos.

No code samples available
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<authorizationRequest>
    <code>0D0379DF44F8484CBFEB4DD3D88DC29D</code>
    <date>2018-02-27T18:53:00.000-03:00</date>
</authorizationRequest>
 
Suggest Edits

Redirecionamento para o fluxo de venda

 
gethttps://ws.pagseguro.uol.com.br/userapplication/v2/authorization/request.jhtml?code=0D0379DF44F8484CBFEB4DD3D88DC29D

Nesse link o cliente entrará no fluxo de venda:

IMPORTANTE!

Lembrando que o cliente precisa utilizar o mesmo e-mail que usou em sua plataforma no PagSeguro para efetuar o login ou criar a conta no PagSeguro.

  • Logar OU criar uma conta no PagSeguro
  • Autorizar o parceiro a alterar as condições comerciais de sua conta
  • Efetuar o pagamento do terminal

Caso o parceiro não possui uma conta PagSeguro, e deseja criar uma de pessoa física ou jurídica.

Após autorizar a aplicação, o parceiro será redirecionado para a compra do terminal já com suas condições especiais.

No code samples available
A binary file was returned

You couldn't be authenticated

No response examples available
 
Suggest Edits

Notificação da autorização do cliente para o parceiro

 

Após o fluxo acima o PagSeguro irá notificar o parceiro do resultado da autorização. Ver a seção “Notificações” da documentação para mais detalhes.

CRIAR EXEMPLOS DE NOTIFICAÇÕES

Nesse momento o parceiro poderá identificar o cliente que iniciou e finalizou o fluxo de autorização através do campo reference informado na Geração do Código de Autorização.

IMPORTANTE!

O PagSeguro também irá informar ao parceiro o código do cliente no sistema PagSeguro, através do campo publicKey.

 
Suggest Edits

Excluir o cliente da condição comercial acordada

 
posthttps://ws.pagseguro.uol.com.br/promotions/nome-promocao/enrollment?publicKey=publicKey&appKey=E6BD05D4AAAAFE7224B51F8BF1ECE738&appId=connectparcerias

Como exemplo, o parceiro poderá implementar uma política de que, caso o seu cliente esteja inadimplente, ele não terá acesso à condição comercial acordada. Fica a critério do parceiro implementar essa política de gestão de condições comerciais.

IMPORTANTE!

O cliente do parceiro só terá acesso as condições comerciais acordadas APÓS a inclusão do mesmo, via chamada à API de alteração de condições comerciais**

O cliente deverá acessar a sua conta PagSeguro e optar pelo plano de recebimento (2, 14, 30 dias, etc...) da condição comercial acordada. O parceiro NÃO poderá fazer essa escolha pelo cliente.

A condição comercial possui um plano de recebimento padrão. O cliente ao ser associado a uma condição comercial será incluído no plano de recebimento padrão.

No code samples available
A binary file was returned

You couldn't be authenticated

No response examples available
 

Quando é feito a troca do meu Link promocional?

Assim que o status da compra do device estiver como Pago ou Disponível, é feito automaticamente a troca do link promocional.

O que significa CheckoutCode? Como devo utilizá-lo?

CheckoutCode é o código que referencia o modelo de terminal que será comprada. O cliente que pluga com o serviço Connect Parcerias pode escolher mais do que um device e para cada device é gerado um checkoutCode com um preço promocional.

Temos um ambiente Sandbox para esse serviço?

Hoje não temos um ambiente de sandbox para o serviço Connect Parcerias.

O produto Connect Parcerias possui dependências à outros serviços?

Connect parcerias possui a dependência do serviço Modelo de Aplicação para controle de seus sellers plugados em sua campanha/condição comercial.

O que é um Link Promocional?

O Link Promocional permite que o Vendedor (Seller) se credencie na PagSeguro com as condições comerciais tratadas pelo Parceiro responsável.

Ex: Uma plataforma entra em contato conosco e fechamos uma condição comercial diferenciada pois eles irão adicionar Vendedores Terceiros ao seu plano de negócio. Logo, para esse Vendedor Terceiro ter acesso as mesmas condições, ele deve realizar seu cadastro através do Link Promocional gerado pelo Parceiro responsável.

Link Promocional:

Hoje a troca do link promocional é feita automaticamente através do referenceCode.

Link utilizado: pagseguro.uol.com.br/userapplication/v2/authorization/request.jhtml?code=referenceCode

 
Suggest Edits

ChangeLog

 
Versão
Data
Alteração

V1.0

21/06/2019

Versão inicial.

 
Suggest Edits

Checkout PagSeguro

 

Siga os passos abaixo para integrar com a API de Checkout PagSeguro:

A autenticação desta solução é feita utilizando suas credenciais. Veja mais sobre os tipos de credenciais em Autenticação .
Os passos a seguir são sequenciais, dessa forma recomendamos que caso ocorra algum erro, interrompa o processo e implemente logs para análise e identificação dos problemas.

 
Suggest Edits

1. Obtendo o código checkout

 

Para obter o código de checkout, basta efetuar uma requisição ao endpoint abaixo, informando os dados do pedido através dos parâmetros. Confira um exemplo de uma chamada simples clicando aqui.

Para mais configurações e exemplos, confira a seção configurações opcionais

POST https://ws.pagseguro.uol.com.br/v2/checkout?{{credenciais}}
POST https://ws.sandbox.pagseguro.uol.com.br/v2/checkout?{{credenciais}}

Header

x-www-form-urlencoded
Content-Type: application/x-www-form-urlencoded; charset=ISO-8859-1
XML
Content-Type: application/xml; charset=ISO-8859-1

Caso sua aplicação não utilize o conjunto de caracteres ISO-8859-1, p.e. (UTF-8), é necessário substituir o parâmetro charset do exemplo acima.

Exemplo

Veja abaixo um exemplo padrão da requisição:

currency=BRL
&itemId1=0001
&itemDescription1=Produto PagSeguroI
&itemAmount1=99999.99
&itemQuantity1=1
&itemWeight1=1000
&itemId2=0002
&itemDescription2=Produto PagSeguroII
&itemAmount2=99999.98
&itemQuantity2=2
&itemWeight2=750
&reference=REF1234
&senderName=Jose Comprador
&senderAreaCode=99
&senderPhone=999999999
&senderEmail=comprador@uol.com.br
&shippingType=1
&shippingAddressRequired=true
&shippingAddressStreet=Av. PagSeguro
&shippingAddressNumber=9999
&shippingAddressComplement=99o andar
&shippingAddressDistrict=Jardim Internet
&shippingAddressPostalCode=99999999
&shippingAddressCity=Cidade Exemplo
&shippingAddressState=SP
&shippingAddressCountry=BRA
&timeout=25
&enableRecover=false
<?xml version="1.0"?>
<checkout>
  <sender>
    <name>Jose Comprador</name>
    <email>comprador@uol.com.br</email>
    <phone>
      <areaCode>99</areaCode>
      <number>999999999</number>
    </phone>
    <documents>
      <document>
        <type>CPF</type>
        <value>11475714734</value>
      </document>
    </documents>
  </sender>
  <currency>BRL</currency>
  <items>
    <item>
      <id>0001</id>
      <description>Produto PagSeguroI</description>
      <amount>99999.99</amount>
      <quantity>1</quantity>
      <weight>10</weight>
      <shippingCost>1.00</shippingCost>
    </item>
  </items>
  <redirectURL>http://lojamodelo.com.br/return.html</redirectURL>
  <extraAmount>10.00</extraAmount>
  <reference>REF1234</reference>
  <shipping>
    <address>
      <street>Av. PagSeguro</street>
      <number>9999</number>
      <complement>99o andar</complement>
      <district>Jardim Internet</district>
      <city>Cidade Exemplo</city>
      <state>SP</state>
      <country>BRA</country>
      <postalCode>99999999</postalCode>
    </address>
    <type>1</type>
    <cost>1.00</cost>
    <addressRequired>true</addressRequired>
  </shipping>
  <timeout>25</timeout>
  <maxAge>999999999</maxAge>
  <maxUses>999</maxUses>
  <receiver>
    <email>suporte@lojamodelo.com.br</email>
  </receiver>
  <enableRecovery>false</enableRecovery>
</checkout>

Resposta

Após realizar a chamada, o PagSeguro irá retornar o código do checkout criado em um XML semelhante ao abaixo:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<checkout>
    <code>08A9CAADCDCD16FFF42F1FB2C951A6A3</code>
    <date>2018-12-05T13:31:42.000-02:00</date>
</checkout>
 
Suggest Edits

2. Finalizando o checkout

 

Após obter o código de checkout, você deve direcionar o comprador para o fluxo de pagamento. Há duas maneiras de apresentar o comprador para a tela do PagSeguro.

Redirect

O comprador é direcionado ao PagSeguro para fazer o pagamento e concluir a compra. O exemplo abaixo mostra uma URL montada com o código de checkout criado no passo 1, pronta para o usuário iniciar o fluxo de pagamento.

https://pagseguro.uol.com.br/v2/checkout/payment.html?code={{código do checkout}}
https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code={{código de checkout}}

Para que o redirecionamento funcione, é necessário que a opção "pagamento via Formulário HTML" esteja desabilitado em sua conta PagSeguro. Para desabilitá-lo acesse este link.

Lightbox

Este modelo permite que todo o processo de pagamento seja feito em um lightbox que se sobrepõe ao site do vendedor. Para isso é necessário incluir a biblioteca javascript conforme código abaixo:

<script type="text/javascript"
src="https://stc.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.lightbox.js">
</script>
<script type="text/javascript"
src="https://stc.sandbox.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.lightbox.js">
</script>

Para chamar o lightbox, basta executar a função PagSeguroLightbox informando o código de checkout criado no passo 1, como mostrado no exemplo abaixo:

PagSeguroLightbox('ID_obtido_no_passo_1');
PagSeguroLightbox({
  code: '1F69A3CF7878ED9994B3DF9DDC706796'
});

Eventos do lightbox

O lightbox possui alguns eventos, como o de sucesso, abandono e quando o lightbox não consegue abrir. Veja abaixo como funciona:

//Insira o código de checkout gerado no Passo 1
var code = '1F69A3CF7878ED9994B3DF9DDC706796';
var callback = {
    success : function(transactionCode) {
        //Insira os comandos para quando o usuário finalizar o pagamento. 
        //O código da transação estará na variável "transactionCode"
        console.log("Compra feita com sucesso, código de transação: " + transactionCode);
    },
    abort : function() {
        //Insira os comandos para quando o usuário abandonar a tela de pagamento.
        console.log("abortado");
    }
};
//Chamada do lightbox passando o código de checkout e os comandos para o callback
var isOpenLightbox = PagSeguroLightbox(code, callback);
// Redireciona o comprador, caso o navegador não tenha suporte ao Lightbox
if (!isOpenLightbox){
    location.href="https://pagseguro.uol.com.br/v2/checkout/payment.html?code=" + code;
}
 
Suggest Edits

Configurações opcionais

 

Essas configurações devem ocorrer nos parâmetros feitos no passo 1.

Você poderá configurar sua chamada, adicionando os parâmetros necessários para a situação que desejar. Conheça cada uma delas abaixo:

Excluindo meios de pagamento

Com esta configuração você poderá excluir dinamicamente os grupos e os meios de pagamento.

Os grupos de pagamento são divididos entre BALANCE (Saldo PagSeguro), BOLETO (Boleto), CREDIT_CARD (Cartão de Crédito), DEPOSIT (Depósito) e EFT (Débito Online)

Já os meios de pagamentos são divididos entre Bandeiras e os Bancos disponíveis, sendo eles:
Débito Online: DEBITO_BRADESCO, DEBITO_ITAU, DEBITO_UNIBANCO, DEBITO_BANCO_BRASIL, DEBITO_BANRISUL e DEBITO_HSBC
Boleto: BOLETO
Bandeiras: VISA, MASTERCARD, AMEX, DINERS, HIPERCARD, AURA, ELO, PLENOCARD, PERSONALCARD, JCB, DISCOVER, BRASILCARD, FORTBRASIL, CARDBAN, VALECARD, CABAL, MAIS, AVISTA, GRANDCARD e SOROCRED.

currency=BRL
&itemId1=0001
&itemDescription1=Notebook Prata
&itemAmount1=24300.00
&itemQuantity1=1
&itemWeight1=1000
&reference=REF1234
&senderName=Jose Comprador
&senderEmail=comprador@uol.com.br
&shippingType=1
&shippingAddressStreet=Av. Brig. Faria Lima
&shippingAddressNumber=1384
&shippingAddressComplement=5o andar
&shippingAddressDistrict=Jardim Paulistano
&shippingAddressPostalCode=01452002
&shippingAddressCity=Sao Paulo
&shippingAddressState=SP
&shippingAddressCountry=BRA
&excludePaymentMethodGroup=CREDIT_CARD,BOLETO
&excludePaymentMethodName=DEBITO_ITAU,DEBITO_BRADESCO
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<checkout>
	<currency>BRL</currency>
	<items>
		<item>
			<id>0001</id>
			<description>Notebook Prata</description>
			<amount>24300.00</amount>
			<quantity>1</quantity>
			<weight>1000</weight>
		</item>
	</items>
	<reference>REF1234</reference>
	<sender>
		<name>José Comprador</name>
		<email>comprador@uol.com.br</email>
	</sender>
	<shipping>
		<type>1</type>
		<address>
			<street>Av. Brig. Faria Lima</street>
			<number>1384</number>
			<complement>5o andar</complement>
			<district>Jardim Paulistano</district>
			<postalCode>01452002</postalCode>
			<city>Sao Paulo</city>
			<state>SP</state>
			<country>BRA</country>
		</address>
	</shipping>
	<acceptedPaymentMethods>
		<exclude>
			<paymentMethod>
				<group>CREDIT_CARD</group>
			</paymentMethod>
			<paymentMethod>
				<group>BOLETO</group>
			</paymentMethod>
			<paymentMethod>
				<name>DEBITO_ITAU</name>
			</paymentMethod>
		</exclude>
	</acceptedPaymentMethods>
</checkout>

Parcelamento sem juros

Para oferecer um parcelamento sem juros, você deverá utilizar três parâmetros: Grupo, Chave e Valor paymentMethodGroup1, paymentMethodConfigKey1_1 epaymentMethodConfigValue1_1.
No parâmetro grupo você deve informar o meio pagamento CREDIT_CARD (Cartão de Crédito).
Para o campo chave, utilize o parâmetro MAX_INSTALLMENTS_NO_INTEREST que configura o parcelamento sem juros. Já no campo valor, você deve informar o número de parcelas que você deseja assumir.

currency=BRL
&itemId1=0001
&itemDescription1=Notebook Prata
&itemAmount1=24300.00
&itemQuantity1=1
&itemWeight1=1000
&reference=REF1234
&senderName=Jose Comprador
&senderAreaCode=11
&senderPhone=56273440
&senderEmail=comprador@uol.com.br
&shippingType=1
&shippingAddressRequired=true
&shippingAddressStreet=Av. Brig. Faria Lima
&shippingAddressNumber=1384
&shippingAddressComplement=5o andar
&shippingAddressDistrict=Jardim Paulistano
&shippingAddressPostalCode=01452002
&shippingAddressCity=Sao Paulo
&shippingAddressState=SP
&shippingAddressCountry=BRA
&paymentMethodGroup1=CREDIT_CARD
&paymentMethodConfigKey1_1=MAX_INSTALLMENTS_NO_INTEREST
&paymentMethodConfigValue1_1=6
<?xml version="1.0"?>
<checkout>
    <currency>BRL</currency>
    <items>
        <item>
            <id>0001</id>
            <description>Notebook Prata</description>
            <amount>24300.00</amount>
            <quantity>1</quantity>
            <weight>1000</weight>
        </item>
    </items>
    <reference>REF1234</reference>
    <sender>
        <name>José Comprador</name>
        <email>comprador@uol.com.br</email>
        <phone>
            <areaCode>11</areaCode>
            <number>56273440</number>
        </phone>
    </sender>
    <shippingAddressRequired>true</shippingAddressRequired>
    <shipping>
        <type>1</type>
        <address>
            <street>Av. Brig. Faria Lima</street>
            <number>1384</number>
            <complement>5o andar</complement>
            <district>Jardim Paulistano</district>
            <postalCode>01452002</postalCode>
            <city>Sao Paulo</city>
            <state>SP</state>
            <country>BRA</country>
        </address>
    </shipping>
    <paymentMethodConfigs>
        <paymentMethodConfig>
            <paymentMethod>
                <group>CREDIT_CARD</group>
            </paymentMethod>
            <configs>
                <config>
                    <key>MAX_INSTALLMENTS_NO_INTEREST</key>
                    <value>6</value>
                </config>
            </configs>
        </paymentMethodConfig>
    </paymentMethodConfigs>
</checkout>

Desconto por meio de pagamento

Se você deseja oferecer o desconto por meio de pagamento, também deverá utilizar os três parâmetros: Grupo, Chave e Valor paymentMethodGroup1, paymentMethodConfigKey1_1 epaymentMethodConfigValue1_1.
No campo grupo você deve informar o meio pagamento: CREDIT_CARD (Cartão de Crédito), DEPOSIT (Depósito) e/ou EFT (Débito Online). Em chave, informe o DISCOUNT_PERCENT, já o campo valor a porcentagem de desconto que deseja oferecer. No exemplo abaixo, você poderá oferecer um desconto de 10% para o meio de pagamento boleto e 5% para o meio de pagamento via cartão de crédito:

currency=BRL
&itemId1=0001
&itemDescription1=Notebook Prata
&itemAmount1=24300.00
&itemQuantity1=1
&itemWeight1=1000
&reference=REF1234
&senderName=Jose Comprador
&senderAreaCode=11
&senderPhone=56273440
&senderEmail=comprador@uol.com.br
&shippingType=1
&shippingAddressStreet=Av. Brig. Faria Lima
&shippingAddressNumber=1384
&shippingAddressComplement=5o andar
&shippingAddressDistrict=Jardim Paulistano
&shippingAddressPostalCode=01452002
&shippingAddressCity=Sao Paulo
&shippingAddressState=SP
&shippingAddressCountry=BRA
&paymentMethodGroup1=BOLETO
&paymentMethodConfigKey1_1=DISCOUNT_PERCENT
&paymentMethodConfigValue1_1=10.00
&paymentMethodGroup2=CREDIT_CARD
&paymentMethodConfigKey2_1=DISCOUNT_PERCENT
&paymentMethodConfigValue2_1=5.00
<?xml version="1.0"?>
<checkout>
    <currency>BRL</currency>
    <items>
        <item>
            <id>0001</id>
            <description>Notebook Prata</description>
            <amount>24300.00</amount>
            <quantity>1</quantity>
            <weight>1000</weight>
        </item>
    </items>
    <reference>REF1234</reference>
    <sender>
        <name>José Comprador</name>
        <email>comprador@uol.com.br</email>
        <phone>
            <areaCode>11</areaCode>
            <number>56273440</number>
        </phone>
    </sender>
    <shipping>
        <type>1</type>
        <address>
            <street>Av. Brig. Faria Lima</street>
            <number>1384</number>
            <complement>5o andar</complement>
            <district>Jardim Paulistano</district>
            <postalCode>01452002</postalCode>
            <city>Sao Paulo</city>
            <state>SP</state>
            <country>BRA</country>
        </address>
    </shipping>
    <paymentMethodConfigs>
        <paymentMethodConfig>
            <paymentMethod>
                <group>CREDIT_CARD</group>
            </paymentMethod>
            <configs>
                <config>
                    <key>DISCOUNT_PERCENT</key>
                    <value>22.50</value>
                </config>
            </configs>
        </paymentMethodConfig>
        <paymentMethodConfig>
            <paymentMethod>
                <group>BOLETO</group>
            </paymentMethod>
            <configs>
                <config>
                    <key>DISCOUNT_PERCENT</key>
                    <value>2.25</value>
                </config>
            </configs>
        </paymentMethodConfig>
    </paymentMethodConfigs>
</checkout>
 
Suggest Edits

Checkout Transparente

 

Siga os passos abaixo para integrar com a API de Checkout Transparente:

A autenticação desta solução é feita utilizando suas credenciais. Veja mais sobre os tipos de credenciais em Autenticação .
Os passos a seguir são sequenciais, dessa forma recomendamos que caso ocorra algum erro, interrompa o processo e implemente logs para análise e identificação dos problemas.

 
Suggest Edits

1. Gerando uma sessão

 

Para iniciar um Checkout Transparente é necessário ter um ID de sessão válido que pode ser obtido através de uma chamada ao endpoint abaixo:

POST https://ws.pagseguro.uol.com.br/v2/sessions?{{credenciais}}
POST https://ws.sandbox.pagseguro.uol.com.br/v2/sessions?{{credenciais}}

Exemplo de resposta:

<?xml version="1.0" encoding="ISO-8859-1"?>
<session>
	<id>620f99e348c24f07877c927b353e49d3</id>
</session>
 
Suggest Edits

2. Importando a biblioteca JavaScript

 

Todas as chamadas que você verá nos próximos passos são efetuadas utilizando uma biblioteca exclusiva executada diretamente do browser do comprador, que deverá ser importada em seu projeto. Para isso, importe o arquivo abaixo:

<script type="text/javascript" src=
"https://stc.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.directpayment.js"></script>
<script type="text/javascript" src=
"https://stc.sandbox.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.directpayment.js"></script>

Esse JavaScript possui um objeto chamado PagSeguroDirectPayment, que é a interface de acesso aos métodos. Conheça cada um deles e como podem ajudar.

2.1. setSessionId
2.2. getPaymentMethods
2.3. onSenderHashReady

A lib possui um método chamado getSenderHash que encontra-se depreciado, utilize o novo método onSenderHashReady para obter o hash identificador do comprador.

Os métodos abaixo são usados exclusivamente para pagamentos com cartão de crédito:

2.4. getBrand
2.5. getInstallments
2.6. createCardToken

2.1. setSessionId

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

PagSeguroDirectPayment.setSessionId('ID_DA_SESSÃO_OBTIDO_NO_PASSO_1');

2.2. getPaymentMethods

Com este método você pode obter todos os meios de pagamento disponíveis para sua conta.

Esse método recebe opcionalmente o valor da transação e retorna um JSON contendo os meios de pagamento disponíveis, compatíveis com o valor informado. Caso não seja informado o valor, será retornado todos os meios de pagamento.

Com essas informações você poderá apresentar as opções para pagamento ao comprador.

Exemplo:

PagSeguroDirectPayment.getPaymentMethods({
	amount: 500.00,
	success: function(response) {
	    // Retorna os meios de pagamento disponíveis.
	},
	error: function(response) {
	    // Callback para chamadas que falharam.
	},
	complete: function(response) {
	    // Callback para todas chamadas.
	}
});

O JSON possui informações como o nome utilizado na API, nome de exibição, status (Disponibilidade) e também o caminho para as imagens do meio de pagamento.

Observe que os meios de pagamento Balance e Deposit são retornados, porém atualmente não podem ser implementados.

Veja abaixo um exemplo da resposta (o JSON foi reduzido para melhor visualização):

{
   "error":false,
   "paymentMethods":{
      "BOLETO":{
         "name":"BOLETO",
         "options":{
            "BOLETO":{
               "name":"BOLETO",
               "displayName":"Boleto",
               "status":"AVAILABLE",
               "code":202,
               "images":{
                  "SMALL":{
                     "size":"SMALL",
                     "path":"/public/img/payment-methods-flags/42x20/booklet.png"
                  },
                  "MEDIUM":{
                     "size":"MEDIUM",
                     "path":"/public/img/payment-methods-flags/68x30/booklet.png"
                  }
               }
            }
         },
         "code":2
      },
      "ONLINE_DEBIT":{
         "name":"ONLINE_DEBIT",
         "options":{
            "BANCO_BRASIL":{
               "name":"BANCO_BRASIL",
               "displayName":"Banco do Brasil",
               "status":"AVAILABLE",
               "code":304,
               "images":{
                  "SMALL":{
                     "size":"SMALL",
                     "path":"/public/img/payment-methods-flags/42x20/bb.png"
                  },
                  "MEDIUM":{
                     "size":"MEDIUM",
                     "path":"/public/img/payment-methods-flags/68x30/bb.png"
                  }
               }
            },

         },
         "code":3
      },
      "CREDIT_CARD":{
         "name":"CREDIT_CARD",
         "options":{
            "MASTERCARD":{
               "name":"MASTERCARD",
               "displayName":"MasterCard",
               "status":"AVAILABLE",
               "code":102,
               "images":{
                  "SMALL":{
                     "size":"SMALL",
                     "path":"/public/img/payment-methods-flags/42x20/mastercard.png"
                  },
                  "MEDIUM":{
                     "size":"MEDIUM",
                     "path":"/public/img/payment-methods-flags/68x30/mastercard.png"
                  }
               }
            },

         },
         "code":1
      }
   }
}

As imagens são disponibilizadas em dois tamanhos: 42x20 e 68x30 e podem ser obtidas através dos caminhos apresentados no JSON.

Veja abaixo dois exemplos de imagens e seus Endpoints:

Imagem Pequena:
https://stc.pagseguro.uol.com.br/public/img/payment-methods-flags/42x20/visa.png

Imagem Grande:
https://stc.pagseguro.uol.com.br/public/img/payment-methods-flags/68x30/visa.png

2.3. onSenderHashReady

O senderHash é um identificador com os dados do comprador baseado naquela determinada sessão, garantindo a segurança da venda.
Obrigatório para todos os meios de pagamento.

O método onSenderHashReady possui algumas dependências , por isso, recomendamos que o mesmo não seja executado no onLoad da página. Você pode executá-lo, por exemplo, no momento em que o cliente clicar no botão para concluir o pagamento.

PagSeguroDirectPayment.onSenderHashReady(function(response){
    if(response.status == 'error') {
        console.log(response.message);
        return false;
    }
    var hash = response.senderHash; //Hash estará disponível nesta variável.
});

2.4. getBrand

Esse método é necessário somente para o meio de pagamento cartão de crédito.

O método getBrand é utilizado para verificar qual a bandeira do cartão que está sendo digitada. Esse método recebe por parâmetro o BIN (seis primeiros dígitos do cartão) e retorna dados como qual a bandeira, o tamanho do CVV, se possui data de expiração e qual algoritmo de validação.

PagSeguroDirectPayment.getBrand({
    cardBin: 411111,
    success: function(response) {
      //bandeira encontrada
    },
    error: function(response) {
      //tratamento do erro
    },
    complete: function(response) {
      //tratamento comum para todas chamadas
    }
});

Exemplo de Resposta:

{
		"brand":{
		"name":"visa",
		"bin":411111,
		"cvvSize":3,
		"expirable":true,
		"validationAlgorithm":"LUHN"
 	}
}

2.5. getInstallments

Esse método é necessário somente para o meio de pagamento cartão de crédito.

Você deve utilizar este método caso queira apresentar as opções de parcelamento disponíveis ao comprador. Esse método recebe o valor total a ser parcelado e retorna as opções de parcelamento calculadas de acordo com as configurações de sua conta.

Para obter um resultado mais preciso, você também pode informar a bandeira, de acordo com o nome retornado no método getBrand.

Se você quer oferecer um parcelamento sem juros, mas não possui uma promoção cadastrada em sua conta, deverá informar a quantidade de parcelas que deseja assumir no parâmetro maxInstallmentNoInterest.

Esse parâmetro deverá receber valor maior ou igual a 2.

Lembrando que se este parâmetro for utilizado, o mesmo valor informado deve ser enviado no parâmetro noInterestInstallmentQuantity ao efetuar o checkout (você verá mais detalhes no Passo 3).

Exemplo:

PagSeguroDirectPayment.getInstallments({
        amount: 118.80,
        maxInstallmentNoInterest: 2,
        brand: 'visa',
        success: function(response){
       	    // Retorna as opções de parcelamento disponíveis
       },
        error: function(response) {
       	    // callback para chamadas que falharam.
       },
        complete: function(response){
            // Callback para todas chamadas.
       }
});

Exemplo de Resposta:

{
   "error":false,
   "installments":{
      "visa":[
         {
            "quantity":1,
            "totalAmount":100,
            "installmentAmount":100,
            "interestFree":true
         },
         {
            "quantity":2,
            "totalAmount":100,
            "installmentAmount":50,
            "interestFree":true
         },
         {
            "quantity":3,
            "totalAmount":102.99,
            "installmentAmount":34.33,
            "interestFree":false
         }
      ]
   }
}

2.6. createCardToken

Esse método é necessário somente para o meio de pagamento cartão de crédito.

O método createCardToken utiliza os dados do cartão de crédito para gerar um token que será enviado no Passo 3, pois por motivos de segurança os dados do cartão não são enviados diretamente na chamada.

Exemplo:

PagSeguroDirectPayment.createCardToken({
   cardNumber: '4111111111111111', // Número do cartão de crédito
   brand: 'visa', // Bandeira do cartão
   cvv: '013', // CVV do cartão
   expirationMonth: '12', // Mês da expiração do cartão
   expirationYear: '2026', // Ano da expiração do cartão, é necessário os 4 dígitos.
   success: function(response) {
        // Retorna o cartão tokenizado.
   },
   error: function(response) {
		    // Callback para chamadas que falharam.
   },
   complete: function(response) {
        // Callback para todas chamadas.
   }
});

Exemplo de Resposta:

{
	"card":{
		"token":"653fe9044cf149f9b7db562431cb130d"
	}
}
 
Suggest Edits

3. Processando o Checkout

 

Agora você poderá efetuar chamadas aos meios de pagamento que o Checkout Transparente oferece. Conheça cada um deles abaixo:

3.1. Boleto
3.2. Débito Online
3.3. Cartão de Crédito

As chamadas para os meios de pagamento do Checkout Transparente deverão ser efetuadas para o endpoint abaixo utilizando o método POST:

POST https://ws.pagseguro.uol.com.br/v2/transactions?{{credenciais}}
POST https://ws.sandbox.pagseguro.uol.com.br/v2/transactions?{{credenciais}}

Header

x-www-form-urlencoded
Content-Type: application/x-www-form-urlencoded; charset=ISO-8859-1
XML
Content-Type: application/xml; charset=ISO-8859-1

Caso sua aplicação não utilize o conjunto de caracteres ISO-8859-1, p.e.(UTF-8), é necessário substituir o parâmetro charset do exemplo acima.

3.1. Exemplo de Checkout com Boleto

paymentMode=default
&paymentMethod=boleto
&receiverEmail=suporte@lojamodelo.com.br
&currency=BRL
&extraAmount=1.00
&itemId1=0001
&itemDescription1=Notebook Prata
&itemAmount1=24300.00
&itemQuantity1=1
&notificationURL=https://sualoja.com.br/notifica.html
&reference=REF1234
&senderName=Jose Comprador
&senderCPF=72962940005
&senderAreaCode=11
&senderPhone=56273440
&senderEmail=comprador@uol.com.br
&senderHash={hash_obtido_no_passo_2.3}
&shippingAddressRequired=true
&shippingAddressStreet=Av. Brig. Faria Lima
&shippingAddressNumber=1384
&shippingAddressComplement=5o andar
&shippingAddressDistrict=Jardim Paulistano
&shippingAddressPostalCode=01452002
&shippingAddressCity=Sao Paulo
&shippingAddressState=SP
&shippingAddressCountry=BRA
&shippingType=1
&shippingCost=1.00
<payment>
    <mode>default</mode>
    <method>boleto</method>
    <sender>
        <name>Fulano Silva</name>
        <email>fulano.silva@uol.com.br</email>
        <phone>
            <areaCode>11</areaCode>
            <number>30380000</number>
        </phone>
        <documents>
            <document>
                <type>CPF</type>
                <value>72962940005</value>
            </document>
        </documents>
        <hash>{hash_obtido_no_passo_2.3}</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>2</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>
</payment>

3.2. Exemplo de Checkout com Débito Online

paymentMode=default
&paymentMethod=eft
&bankName=itau
&receiverEmail=suporte@lojamodelo.com.br
&currency=BRL
&extraAmount=1.00
&itemId1=0001
&itemDescription1=Notebook Prata
&itemAmount1=24300.00
&itemQuantity1=1
&notificationURL=https://sualoja.com.br/notifica.html
&reference=REF1234
&senderName=Jose Comprador
&senderCPF=22111944785
&senderAreaCode=11
&senderPhone=56273440
&senderEmail=comprador@uol.com.br
&senderHash={hash_obtido_no_passo_2.3}
&shippingAddressRequired=true
&shippingAddressStreet=Av. Brig. Faria Lima
&shippingAddressNumber=1384
&shippingAddressComplement=5o andar
&shippingAddressDistrict=Jardim Paulistano
&shippingAddressPostalCode=01452002
&shippingAddressCity=Sao Paulo
&shippingAddressState=SP
&shippingAddressCountry=BRA
&shippingType=1
&shippingCost=1.00
<payment>
    <mode>default</mode>
    <method>eft</method>
    <bank>
    <name>itau</name>
</bank>
    <sender>
        <name>Fulano Silva</name>
        <email>fulano.silva@uol.com.br</email>
        <phone>
            <areaCode>11</areaCode>
            <number>30380000</number>
        </phone>
        <documents>
            <document>
                <type>CPF</type>
                <value>11475714734</value>
            </document>
        </documents>
        <hash>{hash_obtido_no_passo_2.3}</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>
</payment>

3.3. Exemplo de Checkout com Cartão de Crédito

paymentMode=default
&paymentMethod=creditCard
&receiverEmail=suporte@lojamodelo.com.br
&currency=BRL
&extraAmount=1.00
&itemId1=0001
&itemDescription1=Notebook Prata
&itemAmount1=24300.00
&itemQuantity1=1
&notificationURL=https://sualoja.com.br/notifica.html
&reference=REF1234
&senderName=Jose Comprador
&senderCPF=22111944785
&senderAreaCode=11
&senderPhone=56273440
&senderEmail=comprador@uol.com.br
&senderHash={hash_obtido_no_passo_2.3}
&shippingAddressRequired=true
&shippingAddressStreet=Av. Brig. Faria Lima
&shippingAddressNumber=1384
&shippingAddressComplement=5o andar
&shippingAddressDistrict=Jardim Paulistano
&shippingAddressPostalCode=01452002
&shippingAddressCity=Sao Paulo
&shippingAddressState=SP
&shippingAddressCountry=BRA
&shippingType=1
&shippingCost=1.00
&creditCardToken={creditCard_token_obtido_no_passo_2.6}
&installmentQuantity={quantidade_de_parcelas_escolhida}
&installmentValue={installmentAmount_obtido_no_retorno_do_passo_2.5}
&noInterestInstallmentQuantity={valor_maxInstallmentNoInterest_incluido_no_passo_2.5}
&creditCardHolderName=Jose Comprador
&creditCardHolderCPF=22111944785
&creditCardHolderBirthDate=27/10/1987
&creditCardHolderAreaCode=11
&creditCardHolderPhone=56273440
&billingAddressStreet=Av. Brig. Faria Lima
&billingAddressNumber=1384
&billingAddressComplement=5o andar
&billingAddressDistrict=Jardim Paulistano
&billingAddressPostalCode=01452002
&billingAddressCity=Sao Paulo
&billingAddressState=SP
&billingAddressCountry=BRA
<payment>
    <mode>default</mode>
    <method>creditCard</method>
    <sender>
        <name>Fulano Silva</name>
        <email>fulano.silva@uol.com.br</email>
        <phone>
            <areaCode>11</areaCode>
            <number>30380000</number>
        </phone>
        <documents>
            <document>
                <type>CPF</type>
                <value>22111944785</value>
            </document>
        </documents>
        <hash>{hash_obtido_no_passo_2.3}</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>10.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>
    <creditCard>
        <token>{creditCard_token_obtido_no_passo_2.6}</token>
       <installment>
             <quantity>{quantidade_de_parcelas_escolhida}</quantity>
            <value>{installmentAmount_obtido_no_retorno_do_passo_2.5}</value>
    				<noInterestInstallmentQuantity>{valor_maxInstallmentNoInterest_incluido_no_passo_2.5}
         		</noInterestInstallmentQuantity>
        </installment>
        <holder>
            <name>Nome impresso no cartao</name>
            <documents>
                <document>
                    <type>CPF</type>
                    <value>22111944785</value>
                </document>
            </documents>
            <birthDate>20/10/1980</birthDate>
            <phone>
                <areaCode>11</areaCode>
                <number>999991111</number>
            </phone>
        </holder>
        <billingAddress>
            <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>
        </billingAddress>
    </creditCard>
</payment>

Tratando a resposta

Após realizar a chamada para processar o checkout é retornado um XML contendo todos os dados da transação. Veja os exemplos de retorno de acordo com os respectivos meios de pagamento abaixo:

<transaction>
    <date>2011-02-05T15:46:12.000-02:00</date>  
    <lastEventDate>2011-02-15T17:39:14.000-03:00</lastEventDate>  
    <code>9E884542-81B3-4419-9A75-BCC6FB495EF1</code>  
    <reference>REF1234</reference>  
    <type>1</type>  
    <status>3</status>  
    <paymentMethod>  
        <type>1</type>  
        <code>101</code>  
    </paymentMethod>
<paymentLink>
https://pagseguro.uol.com.br/checkout/imprimeBoleto.jhtml?code=314601B208B24A5CA53260000F7BB0D
</paymentLink>
    <grossAmount>49900.00</grossAmount>
    <discountAmount>0.00</discountAmount> 
    <feeAmount>0.00</feeAmount> 
    <netAmount>49900.50</netAmount>  
    <extraAmount>0.00</extraAmount> 
    <installmentCount>1</installmentCount>  
    <itemCount>2</itemCount>  
    <items> 
        <item>  
            <id>0001</id>  
            <description>Notebook Prata</description>  
            <quantity>1</quantity>  
            <amount>24300.00</amount>  
        </item>  
        <item> 
            <id>0002</id>  
            <description>Notebook Rosa</description>  
            <quantity>1</quantity>  
            <amount>25600.00</amount>  
        </item>  
    </items>  
    <sender>  
        <name>José Comprador</name>  
        <email>comprador@uol.com.br</email>  
        <phone>  
            <areaCode>11</areaCode>  
            <number>56273440</number>  
        </phone>  
    </sender>  
    <shipping>  
        <address>  
            <street>Av. Brig. Faria Lima</street>  
            <number>1384</number>  
            <complement>5o andar</complement>  
            <district>Jardim Paulistano</district>  
            <postalCode>01452002</postalCode>  
            <city>Sao Paulo</city>  
            <state>SP</state>  
            <country>BRA</country>  
        </address>  
        <type>1</type>  
        <cost>21.50</cost>  
    </shipping>  
</transaction> 
<transaction>
    <date>2018-11-13T11:56:32.000-02:00</date>
    <code>92BDD4E2-F571-4B4B-B7C4-5699CF00C1AC</code>
    <reference>REF1234</reference>
    <recoveryCode>7df5a68dd88c50bb869c4db8e73271f82a3f91f79a49407e</recoveryCode>
    <type>1</type>
    <status>1</status>
    <lastEventDate>2018-11-13T11:56:33.000-02:00</lastEventDate>
    <paymentMethod>
        <type>3</type>
        <code>302</code>
    </paymentMethod>
    <paymentLink>https://pagseguro.uol.com.br/checkout/payment/eft/print.jhtml?c=da5005c0aed949871fb25cbfbddb725d9cd951888f3d9a0ae5a11005e2998b99219b32e8f3891c0a</paymentLink>
    <grossAmount>24302.00</grossAmount>
    <discountAmount>0.00</discountAmount>
    <feeAmount>970.05</feeAmount>
    <netAmount>23331.95</netAmount>
    <extraAmount>1.00</extraAmount>
    <installmentCount>1</installmentCount>
    <itemCount>1</itemCount>
    <items>
        <item>
            <id>0001</id>
            <description>Notebook Prata</description>
            <quantity>1</quantity>
            <amount>24300.00</amount>
        </item>
    </items>
    <sender>
        <name>Jose Comprador</name>
        <email>comprador@uol.com.br</email>
        <phone>
            <areaCode>11</areaCode>
            <number>56273440</number>
        </phone>
    </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>1</type>
        <cost>1.00</cost>
    </shipping>
</transaction>
<transaction>
    <date>2018-11-13T12:08:45.000-02:00</date>
    <code>A31CDEEB-4FC7-41A7-A895-AE91C8F54C03</code>
    <reference>REF1234</reference>
    <type>1</type>
    <status>1</status>
    <lastEventDate>2018-11-13T12:08:45.000-02:00</lastEventDate>
    <paymentMethod>
        <type>1</type>
        <code>101</code>
    </paymentMethod>
    <grossAmount>24302.00</grossAmount>
    <discountAmount>0.00</discountAmount>
    <feeAmount>1538.72</feeAmount>
    <netAmount>22763.28</netAmount>
    <extraAmount>1.00</extraAmount>
    <installmentCount>5</installmentCount>
    <itemCount>1</itemCount>
    <items>
        <item>
            <id>0001</id>
            <description>Notebook Prata</description>
            <quantity>1</quantity>
            <amount>24300.00</amount>
        </item>
    </items>
    <sender>
        <name>Jose Comprador</name>
        <email>comprador@uol.com.br</email>
        <phone>
            <areaCode>11</areaCode>
            <number>56273440</number>
        </phone>
    </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>1</type>
        <cost>1.00</cost>
    </shipping>
</transaction>

Note que para os meios de pagamento Boleto e Débito Online, o XML possui o item paymentLink . Esse parâmetro pode ser um link de acesso para a imagem do boleto ou para a página de pagamento do banco selecionado. Lembrando que a página do banco não deve ser aberta em um IFrame.

 
Suggest Edits

Criação do checkout

Usando a tela do PagSeguro

 
posthttps://ws.pagseguro.uol.com.br/v2/checkout

Query Params

email
string
required

Veja mais sobre as credenciais em Autenticação

token
string
required

Veja mais sobre as credenciais em Autenticação)

Form Data

currency
string
required

Moeda utilizada. Indica a moeda na qual o pagamento será feito. No momento, a única opção disponível é BRL (Real).
Formato: Case sensitive. Somente o valor BRL é aceito.
x-www-form-urlencoded: currency

items
object

Lista de itens contidos no pagamento

item.id
string
required

Identificadores dos itens. Identificam os itens sendo pagos. Você pode escolher códigos que tenham significado para seu sistema e informá-los nestes parâmetros. O PagSeguro não realiza qualquer validação sobre esses identificadores, mas eles não podem se repetir em um mesmo pagamento.
Formato: Livre, com limite de 100 caracteres.
x-www-form-urlencoded:itemId1, itemId2 etc.

item.description
string
required

Descrições dos itens. Descrevem os itens sendo pagos. A descrição é o texto que o PagSeguro mostra associado a cada item quando o comprador está finalizando o pagamento, portanto é importante que ela seja clara e explicativa.
Formato: Livre, com limite de 100 caracteres.
x-www-form-urlencoded:itemDescription1, itemDescription2 etc.

item.amount
string
required

Valores unitários dos itens. Representam os preços unitários de cada item sendo pago. Além de poder conter vários itens, o pagamento também pode conter várias unidades do mesmo item. Este parâmetro representa o valor de uma unidade do item, que será multiplicado pela quantidade para obter o valor total dentro do pagamento.
Formato: Decimal, com duas casas decimais separadas por ponto (p.e., 1234.56), maior que 0.00 e menor ou igual a 9999999.00.
x-www-form-urlencoded:itemAmount1, itemAmount2 etc.

item.quantity
string
required

Quantidades dos itens. Representam as quantidades de cada item sendo pago. Além de poder conter vários itens, o pagamento também pode conter várias unidades do mesmo item. Este parâmetro representa a quantidade de um item, que será multiplicado pelo valor unitário para obter o valor total dentro do pagamento.
Formato: Um número inteiro maior ou igual a 1 e menor ou igual a 999.
x-www-form-urlencoded:itemQuantity1, itemQuantity2 etc.

item.weight
string
required

Pesos dos itens. Correspondem ao peso (em gramas) de cada item sendo pago. O PagSeguro usa o peso do item para realizar o cálculo do custo de frete nos Correios, exceto se o custo de frete do item já for especificado diretamente.
Formato: Um número inteiro correspondendo ao peso em gramas do item. A soma dos pesos de todos os produtos não pode ultrapassar 30000 gramas (30 kg).
x-www-form-urlencoded:itemWeight1, itemWeight2 etc.

item.shippingCost
string

Custos de frete dos itens. Representam os custos de frete de cada item sendo pago. Caso este custo seja especificado, o PagSeguro irá assumi-lo como o custo do frete do item e não fará nenhum cálculo usando o peso do item.
Formato: Decimal, com duas casas decimais separadas por ponto (p.e., 1234.56), maior que 0.00 e menor ou igual a 9999999.00.
x-www-form-urlencoded:itemShippingCost1, itemShippingCost2 etc.

shipping.address
object

Dados do endereço de envio

shipping.addressRequired
string
required

Obrigatoriedade do endereço de entrega.

False: Não será solicitado ao comprador o endereço de entrega, recomendado para Checkouts que não possuem entrega física.

True: Solicita o endereço do comprador, mesmo que os parâmetros de shipping.address não forem passados.
x-www-form-urlencoded:shippingAddressRequired

shipping.address.street
string

Nome da rua do endereço de envio. Informa o nome da rua do endereço de envio do produto. Pode enviá-lo caso queira evitar que ele preencha esses dados novamente no PagSeguro.
Formato: Livre, com limite de 80 caracteres.
x-www-form-urlencoded:shippingAddressStreet

shipping.address.number
string

Número do endereço de envio. Informa o número do endereço de envio do produto. Pode enviá-lo caso queira evitar que ele preencha esses dados novamente no PagSeguro.
Formato: Livre, com limite de 20 caracteres.
x-www-form-urlencoded:shippingAddressNumber

shipping.address.complement
string

Complemento do endereço de envio. Informa o complemento (bloco, apartamento, etc.) do endereço de envio do produto. Pode enviá-lo caso queira evitar que ele preencha esses dados novamente no PagSeguro.
Formato: Livre, com limite de 40 caracteres.
x-www-form-urlencoded:shippingAddressComplement

shipping.address.district
string

Bairro do endereço de envio. Informa o bairro do endereço de envio do produto. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.
Formato: Livre, com limite de 60 caracteres.
x-www-form-urlencoded:shippingAddressDistrict

shipping.address.city
string

Cidade do endereço de envio. Informa a cidade do endereço de envio do produto. Pode enviá-lo caso queira evitar que ele preencha esses dados novamente no PagSeguro.
Formato: Livre. Deve ser um nome válido de cidade do Brasil, com no mínimo 2 e no máximo 60 caracteres.
x-www-form-urlencoded:shippingAddressCity

shipping.address.state
string

Estado do endereço de envio. Informa o estado do endereço de envio do produto. Pode enviá-lo caso queira evitar que ele preencha esses dados novamente no PagSeguro.
Formato: Duas letras, representando a sigla do estado brasileiro correspondente.
x-www-form-urlencoded:shippingAddressState

shipping.address.country
string

País do endereço de envio. Informa o país do endereço de envio do produto. Pode enviá-lo caso queira evitar que ele preencha esses dados novamente no PagSeguro.
Formato: No momento, apenas o valor BRA é permitido.
x-www-form-urlencoded:shippingAddressCountry

shipping.address.postalCode
string

CEP do endereço de envio. Informa o CEP do endereço de envio do produto. Pode enviá-lo caso queira evitar que ele preencha esses dados novamente no PagSeguro.
Formato: Um número de 8 dígitos
x-www-form-urlencoded:shippingAddressPostalCode

shipping
object

Dados do frete

shipping.type
int32

Tipo de frete. Informa o tipo de frete a ser usado para o envio do produto. Esta informação é usada pelo PagSeguro para calcular, junto aos Correios, o valor do frete a partir do peso dos itens. Os valores aceitos e seus significados são: 1 - Encomenda normal (PAC), 2 - SEDEX, 3 - Tipo de frete não especificado.
Formato: Um número inteiro entre 1 e 3.
x-www-form-urlencoded : shippingType

shipping.cost
string

Valor total do frete. Informa o valor total de frete do pedido. Caso este valor seja especificado, o PagSeguro irá assumi-lo como valor do frete e não fará nenhum cálculo referente aos pesos e valores de entrega dos itens.
Formato: Decimal, com duas casas decimais separadas por ponto (p.e., 1234.56), maior que 0.00 e menor ou igual a 9999999.00.
x-www-form-urlencoded : shippingCost

sender
object

Dados do comprador

sender.name
string

Nome completo do comprador. Especifica o nome completo do comprador que está realizando o pagamento. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.
Formato: No mínimo duas sequências de caracteres, com o limite total de 50 caracteres.
x-www-form-urlencoded : senderName

sender.email
string

E-mail do comprador. Especifica o e-mail do comprador que está realizando o pagamento. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.
Formato: um e-mail válido (p.e., usuario@site.com.br), com no máximo 60 caracteres.
x-www-form-urlencoded : senderEmail

sender.phone.areaCode
string

DDD do comprador. Especifica o código de área (DDD) do comprador que está realizando o pagamento. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.
Formato: Um número de 2 dígitos correspondente a um DDD válido.
x-www-form-urlencoded : senderAreaCode

sender.phone.number
string

Número do telefone do comprador. Especifica o número do telefone do comprador que está realizando o pagamento. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.
Formato: Um número de 7 a 9 dígitos.
x-www-form-urlencoded : senderPhone

sender.documents
object

Dados de documentos do comprador

sender.documents.type
string

Tipo de documento do comprador. Especifica o tipo do documento é CPF ou CNPJ.
Formato:CPF ou CNPJ
x-www-form-urlencoded : senderCPF e senderCNPJ

sender.documents.value
string

Número do CPF ou CNPJ do comprador Especifica o CPF/CNPJ do comprador que está realizando o pagamento. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.
Formato: Um número de 11 dígitos para CPF ou 14 dígitos para CNPJ.
x-www-form-urlencoded : senderCPF e senderCNPJ

reference
string

Código de referência. Define um código para fazer referência ao pagamento. Este código fica associado à transação criada pelo pagamento e é útil para vincular as transações do PagSeguro às vendas registradas no seu sistema.
Formato: Livre, com o limite de 200 caracteres.
x-www-form-urlencoded : reference

redirectURL
string

URL de redirecionamento após o pagamento. Determina a URL para a qual o comprador será redirecionado após o final do fluxo de pagamento. Este parâmetro permite que seja informado um endereço de específico para cada pagamento realizado.
Formato: Uma URL válida, com limite de 255 caracteres.
x-www-form-urlencoded : redirectURL

receiver
object

Dados do vendedor

receiver.email
string

Especifica o e-mail que deve aparecer na tela de pagamento.
Formato: um e-mail válido (p.e., usuario@site.com.br), com no máximo 60 caracteres. O e-mail informado deve estar vinculado à conta PagSeguro que está realizando a chamada à API.
x-www-form-urlencoded : receiverEmail

acceptedPaymentMethods.exclude.payment.method.group
string

Excluindo meios de pagamento Com esta configuração você poderá excluir dinamicamente os grupos de pagamento.

acceptedPaymentMethods.exclude.payment.method.name
string

Meio de pagamento que será excluído. Com esta configuração você poderá excluir dinamicamente os meios de pagamento.

paymentMethodConfigs
object
exclude
object

Representa a configuração de exclusão de meios de pagamento

paymentMethodConfigs.paymentMethodConfig.paymentMethod.group
string

Método de pagamento que receberá a configuração, parâmetro usado para oferecer configurações.

paymentMethodConfigs.paymentMethodConfig.configs.config.key
string

Chave da configuração que será atribuída ao método de pagamento, parâmetro usado para oferecer parcelamento sem juros.

paymentMethodConfigs.paymentMethodConfig.paymentMethod.value
string

Valor da configuração que será atribuída ao método de pagamento.

enableRecover
string

Parâmetro utilizado para desabilitar a funcionalidade recuperação de carrinho.
Formato: Deve ser utilizado FALSE para desabilitar a recuperação de carrinho. Na ausência do parâmetro será utilizado o valor configurado na conta PagSeguro do cliente.
Obs: Caso a conta PagSeguro do cliente estiver com a opção recuperação de carrinho desabilitada, não será possível habilita-la através da API utilizando o valor TRUE.
x-www-form-urlencoded : enableRecover

timetout
string

Tempo de expiração do checkout. Com este parâmetro você poderá definir, no momento da chamada para o PagSeguro, qual o tempo máximo que o checkout ficará disponível para o cliente antes deste ser invalidado.
Formato: Tempo em minutos.
Obs: O tempo mínimo da duração do checkout é de 20 minutos e máximo de 100000 minutos.
x-www-form-urlencoded : timeout

maxUses
string

Número máximo de usos para o código de pagamento. Determina o número máximo de vezes que o código de pagamento criado pela chamada à API de Pagamentos poderá ser usado. Este parâmetro pode ser usado como um controle de segurança.
Formato: Um número inteiro maior que 0 e menor ou igual a 999.
x-www-form-urlencoded : maxUses

maxAge
string

Prazo de validade do código de pagamento. Determina o prazo (em segundos) durante o qual o código de pagamento criado pela chamada à API de Pagamentos poderá ser usado. Este parâmetro pode ser usado como um controle de segurança.
Formato: Um número inteiro maior ou igual a 30 e menor ou igual a 999999999.
x-www-form-urlencoded : maxAge

extraAmount
string

Valor extra. Especifica um valor extra que deve ser adicionado ou subtraído ao valor total do pagamento. Esse valor pode representar uma taxa extra a ser cobrada no pagamento ou um desconto a ser concedido, caso o valor seja negativo.
Formato: Decimal (positivo ou negativo), com duas casas decimais separadas por ponto (p.e., 1234.56 ou -1234.56), maior ou igual a -9999999.00 e menor ou igual a 9999999.00. Quando negativo, este valor não pode ser maior ou igual à soma dos valores dos produtos.
x-www-form-urlencoded : extraAmount

Headers

Content-Type
string

x-www-form-urlencoded:
application/x-www-form-urlencoded; charset=ISO-8859-1
XML:
application/xml; charset=ISO-8859-1

 
currency=BRL
&itemId1=0001
&itemDescription1=Produto PagSeguroI
&itemAmount1=99999.99
&itemQuantity1=1
&itemWeight1=1000
&itemId2=0002
&itemDescription2=Produto PagSeguroII
&itemAmount2=99999.98
&itemQuantity2=2
&itemWeight2=750
&reference=REF1234
&senderName=Jose Comprador
&senderAreaCode=99
&senderPhone=999999999
&senderEmail=comprador@uol.com.br
&shippingType=1
&shippingAddressRequired=true
&shippingAddressStreet=Av. PagSeguro
&shippingAddressNumber=9999
&shippingAddressComplement=99o andar
&shippingAddressDistrict=Jardim Internet
&shippingAddressPostalCode=99999999
&shippingAddressCity=Cidade Exemplo
&shippingAddressState=SP
&shippingAddressCountry=BRA
&timeout=25
&enableRecover=false
<?xml version="1.0"?>
<checkout>
  <sender>
    <name>Jose Comprador</name>
    <email>comprador@uol.com.br</email>
    <phone>
      <areaCode>99</areaCode>
      <number>999999999</number>
    </phone>
    <documents>
      <document>
        <type>CPF</type>
        <value>11475714734</value>
      </document>
    </documents>
  </sender>
  <currency>BRL</currency>
  <items>
    <item>
      <id>0001</id>
      <description>Produto PagSeguroI</description>
      <amount>99999.99</amount>
      <quantity>1</quantity>
      <weight>10</weight>
      <shippingCost>1.00</shippingCost>
    </item>
  </items>
  <redirectURL>http://lojamodelo.com.br/return.html</redirectURL>
  <extraAmount>10.00</extraAmount>
  <reference>REF1234</reference>
  <shipping>
    <address>
      <street>Av. PagSeguro</street>
      <number>9999</number>
      <complement>99o andar</complement>
      <district>Jardim Internet</district>
      <city>Cidade Exemplo</city>
      <state>SP</state>
      <country>BRA</country>
      <postalCode>99999999</postalCode>
    </address>
    <type>1</type>
    <cost>1.00</cost>
    <addressRequired>true</addressRequired>
  </shipping>
  <timeout>25</timeout>
  <maxAge>999999999</maxAge>
  <maxUses>999</maxUses>
  <receiver>
    <email>suporte@lojamodelo.com.br</email>
  </receiver>
  <enableRecover>false</enableRecover>
</checkout>
curl -X POST \
  'https://ws.pagseguro.uol.com.br/v2/checkout?email=email@email.com&token=token' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'email=email%40email.com&token=token&currency=BRL&itemId1=001&itemDescription1=Item%201&itemAmount1=169.90&itemQuantity1=1&reference=124665c23f7896adff508377925&senderName=Natalie%20Green&senderAreaCode=51&senderPhone=988888888&senderEmail=emaildocomprador@pagseguro.com.br&shippingAddressRequired=true&extraAmount=0.00
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<checkout>
    <code>C13F573B2727DBFCC4024FB16EDEE423</code>
    <date>2019-01-16T17:26:08.000-02:00</date>
</checkout>
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<errors>
    <error>
        <code>Error Code</code>
        <message>Error Description</message>
    </error>
</errors>
 
Suggest Edits

Cancelar e estornar

 

Nesta seção trata de APIs utilizadas para cancelar e estornar transações.

 
Suggest Edits

Cancelar transação

 
posthttps://ws.pagseguro.uol.com.br/v2/transactions/cancels

Query Params

email
string
required

Veja mais sobre as credenciais em Autenticação)

token
string
required

Veja mais sobre as credenciais em Autenticação

Form Data

transactionCode
string
required

Código da transação
Transação deverá estar com os status Aguardando pagamento ou Em análise
Formato: Uma sequência de 36 caracteres, com os hífens, ou 32 caracteres, sem os hífens.

Headers

Content-Type
string

application/x-www-form-urlencoded; charset=ISO-8859-1

 
&transactionCode={{transaction-code}}
curl -X POST \
  'https://ws.pagseguro.uol.com.br/v2/transactions/cancels?email=email@email.com&token=token' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'transactionCode=F01BD7E6-3D09-4550-B904-86B09B477060&undefined='
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<result>OK</result>
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<errors>
    <error>
        <code>Error Code </code>
        <message>Error Description</message>
    </error>
</errors>
 
Suggest Edits

Estornar transação

 
posthttps://ws.pagseguro.uol.com.br/v2/transactions/refunds

Query Params

email
string
required

Veja mais sobre as credenciais em Autenticação

token
string
required

Veja mais sobre as credenciais em Autenticação

Form Data

transactionCode
string
required

Código da transação
Transação deverá estar com os status Paga, Disponível ou Em disputa.
Formato: Uma sequência de 36 caracteres, com os hífens, ou 32 caracteres, sem os hífens.

refundValue
string

Valor do estorno.
Utilizado no estorno de uma transação, corresponde ao valor a ser devolvido. Se não for informado, o PagSeguro assume que o valor a ser estornado é o valor total da transação.
Formato: Decimal, com duas casas decimais separadas por ponto (p.e., 1234.56), maior que 0.00 e menor ou igual ao valor da transação.

Headers

Content-Type
string

application/x-www-form-urlencoded; charset=ISO-8859-1

 
&transactionCode={{transaction-code}}
&refundValue=100.00
curl -X POST \
  'https://ws.pagseguro.uol.com.br/v2/transactions/refunds?email=email@email.com&token=token' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d transactionCode=BB32071D-6665-43F4-9860-EBDD69562D74
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<result>OK</result>
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<errors>
  <error>
    <code>Error Code</code>
    <message>Error Description</message>
  </error>
</erros>
 
Suggest Edits

Consultas

 

Nesta seção trata de APIs utilizadas para consultar transações.

 
Suggest Edits

Consulta transações por data ou código de referência

 
gethttps://ws.pagseguro.uol.com.br/v2/transactions

Query Params

email
string
required

Veja mais sobre as credenciais em Autenticação

token
string
required

Veja mais sobre as credenciais em Autenticação

Form Data

reference
string
required

Código de referência da transação. Código informado na criação da transação para fazer referência ao pagamento.
Formato: Livre, com no máximo 200 caracteres.

initialDate
string

Data inicial do intervalo. Especifica a data inicial do intervalo de pesquisa. Somente transações criadas a partir desta data serão retornadas. Esta data não pode ser anterior a 6 meses da data corrente.
Formato:YYYY-MM-DDThh:mm:ss.sTZD, o formato oficial do W3C para datas. Veja mais sobre formatação de datas.
Obrigatório:** Se estiver utilizando o finalDate

finalDate
string

Data final do intervalo. Especifica a data final do intervalo de pesquisa. A diferença entre initialDate e finalDate não pode ser superior a 30 dias.
Formato:YYYY-MM-DDThh:mm:ss.sTZD, o formato oficial do W3C para datas. Veja mais sobre formatação de datas.
Obrigatório:** Se estiver utilizando o initialDate

page
string

Página de resultados a ser retornada. O número de resultados retornado pela consulta por código de referência pode ser grande, portanto é possível fazer a paginação dos resultados. A primeira página retornada é 1 e assim por diante. Este parâmetro especifica qual é a página de resultados a ser retornada.
Formato: Inteiro.

maxPageResults
string

Número máximo de resultados por página. Para limitar o tamanho da resposta de cada chamada à consulta, é possível especificar um número máximo de resultados por página. Este parâmetro permite especificar este limite.
Formato: Inteiro.

 
&initialDate=2011-01-01T00:00
&finalDate=2011-01-28T00:00
&page=1
&maxPageResults=100
curl -X GET \
  'https://ws.pagseguro.uol.com.br/v2/transactions?email=email@email.com&token=token&initialDate=2018-11-07T00:00&finalDate=2018-11-14T00:00&page=1&maxPageResults=10&reference=REF123456' \
A binary file was returned

You couldn't be authenticated

<transactionSearchResult>
    <date>2011-02-16T20:14:35.000-02:00</date>
    <currentPage>1</currentPage>
    <resultsInThisPage>10</resultsInThisPage>
    <totalPages>1</totalPages>
    <transactions>
        <transaction>
            <date>2011-02-05T15:46:12.000-02:00</date>
            <lastEventDate>2011-02-15T17:39:14.000-03:00</lastEventDate>
            <code>9E884542-81B3-4419-9A75-BCC6FB495EF1</code>
            <reference>REF123456</reference>
            <type>1</type>
            <status>3</status>
            <paymentMethod>
                <type>1</type>
            </paymentMethod>
            <grossAmount>49900.00</grossAmount>
            <discountAmount>0.00</discountAmount>
            <feeAmount>0.00</feeAmount>
            <netAmount>49900.00</netAmount>
            <extraAmount>0.00</extraAmount>
        </transaction>
        <transaction>
            <date>2011-02-07T18:57:52.000-02:00</date>
            <lastEventDate>2011-02-14T21:37:24.000-03:00</lastEventDate>
            <code>2FB07A22-68FF-4F83-A356-24153A0C05E1</code>
            <reference>REF123456</reference>
            <type>3</type>
            <status>4</status>
            <paymentMethod>
                <type>3</type>
            </paymentMethod>
            <grossAmount>26900.00</grossAmount>
            <discountAmount>0.00</discountAmount>
            <feeAmount>0.00</feeAmount>
            <netAmount>26900.00</netAmount>
            <extraAmount>0.00</extraAmount>
        </transaction>
    </transactions>
</transactionSearchResult>
 
Suggest Edits

Consulta dos detalhes da transação

 
gethttps://ws.pagseguro.uol.com.br/v3/transactions/transactionCode

Query Params

email
string
required

Veja mais sobre as credenciais em Autenticação

token
string
required

Veja mais sobre as credenciais em Autenticação

Form Data

transactionCode
string
required

Código que identifica a transação. Código da transação que será consultada.
Formato: Uma sequência de 36 caracteres, com os hífens, ou 32 caracteres, sem os hífens.

 
curl -X GET \
  'https://ws.pagseguro.uol.com.br/v3/transactions/2504A4D645CD4EFCA3EA6DE8034FB945?email=email@email.com&token=token' \
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<transaction>
    <date>2017-12-04T17:19:31.000-02:00</date>
    <code>79E53362-F6B2-4DFF-B3FD-23B4E0C19B35</code>
    <reference>REF1234</reference>
    <type>1</type>
    <status>1</status>
    <lastEventDate>2017-12-04T17:19:32.000-02:00</lastEventDate>
    <paymentMethod>
        <type>2</type>
        <code>202</code>
    </paymentMethod>
    <paymentLink>https://pagseguro.uol.com.br/checkout/payment/booklet/print.jhtml?c=62238ca9db0aa8913528210ce3d7c7d4e72d138f985eb97976d39013d22fed1283fc0072edc1a23c</paymentLink>
    <grossAmount>998.98</grossAmount>
    <discountAmount>0.00</discountAmount>
    <creditorFees>
        <operationalFeeAmount>1.00</operationalFeeAmount>
        <intermediationRateAmount>0.40</intermediationRateAmount>
        <intermediationFeeAmount>39.82</intermediationFeeAmount>
    </creditorFees>
    <netAmount>957.76</netAmount>
    <extraAmount>-0.01</extraAmount>
    <installmentCount>1</installmentCount>
    <itemCount>2</itemCount>
    <items>
        <item>
            <id>0001</id>
            <description>Notebook Prata</description>
            <quantity>1</quantity>
            <amount>998.98</amount>
        </item>
        <item>
            <id>0002</id>
            <description>Notebook Rosa</description>
            <quantity>1</quantity>
            <amount>0.01</amount>
        </item>
    </items>
    <sender>
        <name>Jose Comprador</name>
        <email>jose@dominio.com.br</email>
        <phone>
            <areaCode>11</areaCode>
            <number>56713293</number>
        </phone>
    </sender>
    <primaryReceiver>
        <publicKey>PUB175E07D7FB62462BAE3C9A60EA1B32AE</publicKey>
    </primaryReceiver>
</transaction>
 
Suggest Edits

Consulta uma notificação de transação

 
gethttps://ws.pagseguro.uol.com.br/v3/transactions/notifications/notificationCode

Query Params

email
string
required

Veja mais sobre as credenciais em Autenticação

token
string
required

Veja mais sobre as credenciais em Autenticação

Form Data

notificationCode
string
required

Código identificador da notificação. Informa o código da notificação que você quer consultar. O código deve ser informado no caminho da URL. Você deve usar o código que recebeu pelo parâmetro notificationCode no envio da notificação.
Formato: Uma sequência de 39 caracteres.

 
curl -X GET \
  'https://ws.pagseguro.uol.com.br/v3/transactions/notifications/{{notification_code}}?email=email@email.com&token=token' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>  
<transaction>  
    <date>2011-02-10T16:13:41.000-03:00</date>  
    <code>9E884542-81B3-4419-9A75-BCC6FB495EF1</code>  
    <reference>REF1234</reference>
    <type>1</type>  
    <status>3</status>  
    <paymentMethod>  
        <type>2</type>  
        <code>202</code>  
    </paymentMethod>  
    <grossAmount>300021.45</grossAmount>
    <discountAmount>0.00</discountAmount>
    <creditorFees>
        <intermediationRateAmount>0.40</intermediationRateAmount>
        <intermediationFeeAmount>11970.86</intermediationFeeAmount>
    </creditorFees>
    <netAmount>288050.19</netAmount>
    <extraAmount>0.00</extraAmount>  
    <installmentCount>1</installmentCount>  
    <itemCount>3</itemCount>  
    <items>  
        <item>  
            <id>0001</id>  
            <description>Produto PagSeguroI</description>  
            <quantity>1</quantity>  
            <amount>99999.99</amount>  
        </item>  
        <item>  
            <id>0002</id>  
            <description>Produto PagSeguroII</description>  
            <quantity>2</quantity>  
            <amount>99999.98</amount>  
        </item>  
    </items>  
    <sender>  
        <name>José Comprador</name>  
        <email>comprador@uol.com.br</email>  
        <phone>  
            <areaCode>99</areaCode>  
            <number>99999999</number>  
        </phone>  
    </sender>  
    <shipping>  
        <address>  
            <street>Av. PagSeguro</street>  
            <number>9999</number>  
            <complement>99o andar</complement>  
            <district>Jardim Internet</district>  
            <postalCode>99999999</postalCode>  
            <city>Cidade Exemplo</city>  
            <state>SP</state>  
            <country>ATA</country>  
        </address>  
        <type>1</type>  
        <cost>21.50</cost>  
    </shipping>
</transaction>
 
Suggest Edits

Códigos de erro

 

Caso sua aplicação informe algum dado incorreto ou fora do padrão esperado pela API será retornado uma mensagem de erro: Erros Genéricos.

Além dos erros genéricos cada API tem sua sua tabela de códigos de erros conforme abaixo:

Código de erro
Mensagem

10001

Email is required.

10002

Token is required.

10003

Email invalid value.

Pagamentos via API

Código de erro
Mensagem

11001

receiverEmail is required.

11002

receiverEmail invalid length: {0}

11003

receiverEmail invalid value.

11004

Currency is required.

11005

Currency invalid value: {0}

11006

redirectURL invalid length: {0}

11007

redirectURL invalid value: {0}

11008

reference invalid length: {0}

11009

senderEmail invalid length: {0}

11010

senderEmail invalid value: {0}

11011

senderName invalid length: {0}

11012

senderName invalid value: {0}

11013

senderAreaCode invalid value: {0}

11014

senderPhone invalid value: {0}

11015

shippingType is required.

11016

shippingType invalid type: {0}

11017

shippingPostalCode invalid Value: {0}

11018

shippingAddressStreet invalid length: {0}

11019

shippingAddressNumber invalid length: {0}

11020

shippingAddressComplement invalid length: {0}

11021

shippingAddressDistrict invalid length: {0}

11022

shippingAddressCity invalid length: {0}

11023

shippingAddressState invalid value: {0}, must fit the pattern: \w{2} (e. g. "SP")

11024

Itens invalid quantity.

11025

Item Id is required.

11026

Item quantity is required.

11027

Item quantity out of range: {0}

11028

Item amount is required. (e.g. "12.00")

11029

Item amount invalid pattern: {0}. Must fit the patern: \d+.\d{2}

11030

Item amount out of range: {0}

11031

Item shippingCost invalid pattern: {0}. Must fit the patern: \d+.\d{2}

11032

Item shippingCost out of range: {0}

11033

Item description is required.

11034

Item description invalid length: {0}

11035

Item weight invalid Value: {0}

11036

Extra amount invalid pattern: {0}. Must fit the patern: -?\d+.\d{2}

11037

Extra amount out of range: {0}

11038

Invalid receiver for checkout: {0}, verify receiver's account status.

11039

Malformed request XML: {0}.

11040

MaxAge invalid pattern: {0}. Must fit the patern: \d+

11041

MaxAge out of range: {0}

11042

MaxUses invalid pattern: {0}. Must fit the patern: \d+

11043

MaxUses out of range.

11044

InitialDate is required.

11045

InitialDate must be lower than allowed limit.

11046

InitialDate must not be older than 6 months.

11047

InitialDate must be lower than or equal finalDate.

11048

search interval must be lower than or equal 30 days.

11049

finalDate must be lower than allowed limit.

11050

InitialDate invalid format, use 'yyyy-MM-ddTHH:mm' (eg. 2010-01-27T17:25).

11051

finalDate invalid format, use 'yyyy-MM-ddTHH:mm' (eg. 2010-01-27T17:25).

11052

page invalid value.

11053

MaxPageResults invalid value (must be between 1 and 1000).

11157

senderCPF invalid value: {0}

 
Suggest Edits

Iniciar Sessão

 
posthttps://ws.pagseguro.uol.com.br/v2/sessions

Query Params

email
string
required

Veja mais sobre as credenciais em Autenticação

token
string
required

Veja mais sobre as credenciais em Autenticação

Headers

Content-Type
string

x-www-form-urlencoded: application/x-www-form-urlencoded; charset=ISO-8859-1

ou XML: application/xml; charset=ISO-8859-1

 
curl -X POST \
  'https://ws.pagseguro.uol.com.br/v2/sessions?email=email@email.com&token=token' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d undefined=
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="ISO-8859-1"?>
<session>
	<id>620f99e348c24f07877c927b353e49d3</id>
</session>
Unauthorized
 
Suggest Edits

Cartão de Crédito

 
posthttps://ws.pagseguro.uol.com.br/v2/transactions/

Query Params

email
string
required

Veja mais sobre as credenciais em Autenticação

token
string
required

Veja mais sobre as credenciais em Autenticação

Body Params

payment
object

Nó principal, onde terá todos os dados de pagamento

mode
string
required

Modo de pagamento.
Formato: aceita a opção 'default'.
x-www-form-urlencoded : paymentMode

method
string
required

Meio de pagamento.
Formato: creditCard.
x-www-form-urlencoded : paymentMethod

currency
string
required

Moeda utilizada. Indica a moeda na qual o pagamento será feito. No momento, a única opção disponível é BRL (Real).
x-www-form-urlencoded : currency

sender
object
sender.hash
string
required

Identificador do vendedor (fingerprint) gerado pelo JavaScript do PagSeguro.
Formato: Obtido a partir de uma chamada javascript PagseguroDirectPayment.onSenderHashReady().
x-www-form-urlencoded : senderHash

sender.ip
string

IP do comprador que está realizando o pagamento.
Formato: um IP válido.
x-www-form-urlencoded : senderIp

sender.name
string
required

Nome completo do comprador. Especifica o nome completo do comprador que está realizando o pagamento.
Formato: No mínimo duas sequências de caracteres, com o limite total de 50 caracteres.
x-www-form-urlencoded : senderName

sender.email
string
required

E-mail do comprador. Especifica o e-mail do comprador que está realizando o pagamento.
Formato: Um e-mail válido (p.e., usuario@site.com.br), com no máximo 60 caracteres.
x-www-form-urlencoded : senderEmail

sender.phone
object
sender.phone.areaCode
string
required

DDD do comprador. Especifica o código de área (DDD) do comprador que está realizando o pagamento.
Formato: Um número de 2 dígitos correspondente a um DDD válido.
x-www-form-urlencoded : senderAreaCode

sender.phone.number
string
required

Número do telefone do comprador. Especifica o número do telefone do comprador que está realizando o pagamento.
Formato: Um número de 7 a 9 dígitos.
x-www-form-urlencoded : senderPhone

sender.documents
object
sender.documents.type
string
required

Tipo de documento do comprador. Especifica o tipo do documento é CPF ou CNPJ.
Formato:CPF ou CNPJ
x-www-form-urlencoded : senderCPF e senderCNPJ

sender.documents.value
string
required

Número do CPF ou CNPJ do comprador Especifica o CPF/CNPJ do comprador que está realizando o pagamento.
Formato: Um número de 11 dígitos para CPF ou 14 dígitos para CNPJ.
x-www-form-urlencoded : senderCPF e senderCNPJ

items
object
items.item
object

items.item.description

items.item.id
string
required

Identificadores dos itens. Identificam os itens sendo pagos. Você pode escolher códigos que tenham significado para seu sistema e informá-los nestes parâmetros. O PagSeguro não realiza qualquer validação sobre esses identificadores, mas eles não podem se repetir em um mesmo pagamento.
Formato: Livre, com limite de 100 caracteres.
x-www-form-urlencoded : itemId1, itemId2, etc.

items.item.description
string
required

Descrições dos itens. Descrevem os itens sendo pagos. A descrição é o texto que o PagSeguro mostra associado a cada item quando o comprador está finalizando o pagamento, portanto é importante que ela seja clara e explicativa.
Formato: Livre, com limite de 100 caracteres.
x-www-form-urlencoded : itemDescription1, itemDescription2, etc.

items.item.amount
string
required

Valores unitários dos itens. Representam os preços unitários de cada item sendo pago. Além de poder conter vários itens, o pagamento também pode conter várias unidades do mesmo item. Este parâmetro representa o valor de uma unidade do item, que será multiplicado pela quantidade para obter o valor total dentro do pagamento.
Formato: Decimal, com duas casas decimais separadas por ponto (p.e., 1234.56), maior que 0.00 e menor ou igual a 9999999.00.
x-www-form-urlencoded : itemAmount1, itemAmount2, etc.

items.item.quantity
string
required

Quantidades dos itens. Representam as quantidades de cada item sendo pago. Além de poder conter vários itens, o pagamento também pode conter várias unidades do mesmo item. Este parâmetro representa a quantidade de um item, que será multiplicado pelo valor unitário para obter o valor total dentro do pagamento.
Formato: Um número inteiro maior ou igual a 1 e menor ou igual a 999.
x-www-form-urlencoded : itemQuantity1, itemQuantity2, etc.

creditCard
object
creditCard.token
string
required

Token do Cartão de Crédito. Token retornado no serviço de obtenção de token do cartão de crédito.
Formato: Não tem limite de caracteres.
x-www-form-urlencoded : creditCardToken

creditCard.installment
object
creditCard.installment.quantity
int32
required

Quantidade de parcelas escolhidas pelo cliente.
Formato: Um inteiro entre 1 e 18.
x-www-form-urlencoded : installmentQuantity

creditCard.installment.value
string
required

Valor das parcelas obtidas no serviço de opções de parcelamento.
Formato: Numérico com 2 casas decimais e separado por ponto.
x-www-form-urlencoded : installmentValue

creditCard.installment.noInterestInstallmentQuantity
string
required

Quantidade de parcelas sem juros oferecidas ao cliente. O valor deve ser o mesmo indicado no método getInstallments, no parâmetro maxInstallmentNoInterest.
Formato: Um inteiro.
Obrigatório: Caso tenha sido informado o valor no parâmetro maxInstallmentNoInterest do método getInstallments.
x-www-form-urlencoded : noInterestInstallmentQuantity

creditCard.holder
object
creditCard.holder.name
string
required

Nome impresso no cartão de crédito.
Formato: min = 1, max = 50 caracteres.
x-www-form-urlencoded : creditCardHolderName

creditCard.holder.documents
object
creditCard.holder.documents.type
string
required

Tipo de documento do comprador. Especifica o tipo do documento é CPF ou CNPJ.
Formato:CPF ou CNPJ
x-www-form-urlencoded : senderCPF e senderCNPJ

creditCard.holder.documents.value
string

Número do CPF ou CNPJ do comprador Especifica o CPF/CNPJ do comprador que está realizando o pagamento.
Formato: Um número de 11 dígitos para CPF ou 14 dígitos para CNPJ.
Obrigatório para cartão de crédito.
x-www-form-urlencoded : senderCPF e senderCNPJ

creditCard.holder.birthDate
string
required

Data de nascimento do dono do cartão de crédito.
Formato: dd/MM/yyyy
x-www-form-urlencoded : creditCardHolderBirthDate

creditCard.holder.phone
object
creditCard.holder.phone.areaCode
string
required

DDD do comprador. Especifica o código de área (DDD) do comprador que está realizando o pagamento.
Formato: Um número de 2 dígitos correspondente a um DDD válido.
x-www-form-urlencoded :** creditCardHolderAreaCode

creditCard.holder.phone.number
string
required

Número do telefone do comprador. Especifica o número do telefone do comprador que está realizando o pagamento.
Formato: Um número de 7 a 9 dígitos.
x-www-form-urlencoded : creditCardHolderPhone

creditCard.billingAddress
object
creditCard.billingAddress.street
string
required

Nome da rua do endereço de envio. Informa o nome da rua do endereço de envio do produto.
Formato: Livre, com limite de 80 caracteres.
Obrigatório:x-www-form-urlencoded :** billingAddressStreet

creditCard.billingAddress.number
string
required

Número do endereço de envio. Informa o número do endereço de envio do produto.
Formato: Livre, com limite de 20 caracteres.
x-www-form-urlencoded : billingAddressNumber

creditCard.billingAddress.district
string
required

Bairro do endereço de envio. Informa o bairro do endereço de envio do produto.
Formato: Livre, com limite de 60 caracteres.
x-www-form-urlencoded : billingAddressDistrict

creditCard.billingAddress.city
string
required

Cidade do endereço de envio. Informa a cidade do endereço de envio do produto.
Formato: Livre. Deve ser um nome válido de cidade do Brasil, com no mínimo 2 e no máximo 60 caracteres.
x-www-form-urlencoded : billingAddressCity

creditCard.billingAddress.state
string
required

Estado do endereço de envio. Informa o estado do endereço de envio do produto.
Formato: Duas letras, representando a sigla do estado brasileiro correspondente.x-www-form-urlencoded : billingAddressState

creditCard.billingAddress.country
string
required

País do endereço de envio. Informa o país do endereço de envio do produto.
Formato: No momento, apenas o valor BRA é permitido.
Obrigatório: Cartão de crédito.
x-www-form-urlencoded : billingAddressCountry

creditCard.billingAddress.postalCode
string
required

CEP do endereço de envio. Informa o CEP do endereço de envio do produto.
Formato: Um número de 8 dígitos
x-www-form-urlencoded : billingAddressPostalCode

creditCard.billingAddress.complement
string
required

Complemento do endereço de envio. Informa o complemento (bloco, apartamento, etc.) do endereço de envio do produto.
Formato: Livre, com limite de 40 caracteres.
x-www-form-urlencoded : billingAddressComplement

shipping
object
shipping.addressRequired
string
required

Obrigatoriedade do endereço de entrega.
Formato:
True: Os parâmetros de shipping.address deverão ser passados
False: os parâmetros de shipping.address não deverão ser passados.
x-www-form-urlencoded : shippingAddressRequired

shipping.address
object
shipping.address.street
string

Nome da rua do endereço de envio. Informa o nome da rua do endereço de envio do produto.
Formato: Livre, com limite de 80 caracteres.
Obrigátorio: Se o shipping.addressRequired estiver como true.
x-www-form-urlencoded : shippingAddressStreet

shipping.address.number
string

Número do endereço de envio. Informa o número do endereço de envio do produto.
Formato: Livre, com limite de 20 caracteres.
Obrigátorio: Se o shipping.addressRequired estiver como true.
x-www-form-urlencoded : shippingAddressNumber

shipping.address.district
string

Bairro do endereço de envio. Informa o bairro do endereço de envio do produto.
Formato: Livre, com limite de 60 caracteres.
Obrigátorio: Se o shipping.addressRequired estiver como true.
x-www-form-urlencoded : shippingAddressDistrict

shipping.address.city
string

Cidade do endereço de envio. Informa a cidade do endereço de envio do produto.
Formato: Livre. Deve ser um nome válido de cidade do Brasil, com no mínimo 2 e no máximo 60 caracteres.
Obrigátorio: Se o shipping.addressRequired estiver como true.
x-www-form-urlencoded : shippingAddressCity

shipping.address.state
string

Estado do endereço de envio. Informa o estado do endereço de envio do produto.
Formato: Duas letras, representando a sigla do estado brasileiro correspondente.
Obrigátorio: Se o shipping.addressRequired estiver como true.
x-www-form-urlencoded : shippingAddressState

shipping.address.country
string

País do endereço de envio. Informa o país do endereço de envio do produto.
Formato: No momento, apenas o valor BRA é permitido.
Obrigátorio: Se o shipping.addressRequired estiver como true.
x-www-form-urlencoded : shippingAddressCountry

shipping.address.postalCode
string

CEP do endereço de envio. Informa o CEP do endereço de envio do produto.
Formato: Um número de 8 dígitos
Obrigátorio: Se o shipping.addressRequired estiver como true.
x-www-form-urlencoded : shippingAddressPostalCode

shipping.address.complement
string

Complemento do endereço de envio. Informa o complemento (bloco, apartamento, etc.) do endereço de envio do produto.
Formato: Livre, com limite de 40 caracteres.
x-www-form-urlencoded : shippingAddressComplement

shipping.cost
string

Valor total do frete. Informa o valor total de frete do pedido. Caso este valor seja especificado, o PagSeguro irá assumi-lo como valor do frete e não fará nenhum cálculo referente aos pesos e valores de entrega dos itens.
Formato: Decimal, com duas casas decimais separadas por ponto (p.e., 1234.56), maior que 0.00 e menor ou igual a 9999999.00.
x-www-form-urlencoded : shippingCost

shipping.type
int32

Tipo de frete. Informa o tipo de frete a ser usado para o envio do produto. Esta informação é usada pelo PagSeguro para calcular, junto aos Correios, o valor do frete a partir do peso dos itens. Os valores aceitos e seus significados são: 1 - Encomenda normal (PAC), 2 - SEDEX, 3 - Tipo de frete não especificado.
Formato: Um número inteiro entre 1 e 3.
x-www-form-urlencoded : shippingType

reference
string

Código de referência. Define um código para fazer referência ao pagamento. Este código fica associado à transação criada pelo pagamento e é útil para vincular as transações do PagSeguro às vendas registradas no seu sistema.
Formato: Livre, com o limite de 200 caracteres.
x-www-form-urlencoded : reference

receiver
object
receiver.email
string

Especifica o e-mail do vendedor que vai receber o pagamento.
Formato: Um e-mail válido, com limite de 60 caracteres. O e-mail informado deve estar vinculado à conta PagSeguro que está realizando a chamada à API.
x-www-form-urlencoded : receiverEmail

extraAmount
string

Valor extra. Especifica um valor extra que deve ser adicionado ou subtraído ao valor total do pagamento. Esse valor pode representar uma taxa extra a ser cobrada no pagamento ou um desconto a ser concedido, caso o valor seja negativo.
Formato: Decimal (positivo ou negativo), com duas casas decimais separadas por ponto (p.e., 1234.56 ou -1234.56), maior ou igual a -9999999.00 e menor ou igual a 9999999.00. Quando negativo, este valor não pode ser maior ou igual à soma dos valores dos produtos.
x-www-form-urlencoded : extraAmount

notificationURL
string

URL para envio de notificações.
Formato: Uma URL válida, com limite de 255 caracteres.
x-www-form-urlencoded : notificationURL

Headers

Content-Type
string

x-www-form-urlencoded:
application/x-www-form-urlencoded; charset=ISO-8859-1
XML:
application/xml; charset=ISO-8859-1

 
paymentMode=default
&paymentMethod=creditCard
&currency=BRL
&extraAmount=0.00
&itemId1=0001
&itemDescription1=Notebook Prata
&itemAmount1=10300.00
&itemQuantity1=1
&itemId2=0002
&itemDescription2=Notebook Azul
&itemAmount2=10000.00
&itemQuantity2=1
&notificationURL=https=//sualoja.com.br/notificacao.html
&reference=REF1234
&senderName=Jose Comprador
&senderCPF=22111944785
&senderAreaCode=11
&senderPhone=56273440
&senderEmail=comprador@sandbox.pagseguro.com.br
&senderHash={{hash_do_comprador}}
&shippingAddressStreet=Av. Brig. Faria Lima
&shippingAddressNumber=1384
&shippingAddressComplement=5o andar
&shippingAddressDistrict=Jardim Paulistano
&shippingAddressPostalCode=01452002
&shippingAddressCity=Sao Paulo
&shippingAddressState=SP
&shippingAddressCountry=BRA
&shippingType=1
&shippingCost=01.00
&creditCardToken={{token_do_cartao}}
&installmentQuantity=7
&installmentValue=3030.94
&noInterestInstallmentQuantity=5
&creditCardHolderName=Jose Comprador
&creditCardHolderCPF=22111944785
&creditCardHolderBirthDate=27/10/1987
&creditCardHolderAreaCode=11
&creditCardHolderPhone=56273440
&billingAddressStreet=Av. Brig. Faria Lima
&billingAddressNumber=1384
&billingAddressComplement=5o andar
&billingAddressDistrict=Jardim Paulistano
&billingAddressPostalCode=01452002
&billingAddressCity=Sao Paulo
&billingAddressState=SP
&billingAddressCountry=BRA
<payment>
    <mode>default</mode>
    <method>creditCard</method>
    <sender>
        <name>Jose Comprador</name>
        <email>comprador@sandbox.pagseguro.com.br</email>
        <phone>
            <areaCode>11</areaCode>
            <number>30380000</number>
        </phone>
        <documents>
            <document>
                <type>CPF</type>
                <value>22111944785</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>Notebook Prata</description>
            <quantity>1</quantity>
            <amount>10300.00</amount>
            <id>2</id>
            <description>Notebook Azul</description>
            <quantity>1</quantity>
            <amount>10000.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>1</type>
        <cost>1.00</cost>
    </shipping>
    <creditCard>
        <token>{{token_do_cartao}}</token>
       <installment>
             <quantity>2</quantity>
            <value>5.23</value>
        </installment>
        <holder>
            <name>Nome impresso no cartao</name>
            <documents>
                <document>
                    <type>CPF</type>
                    <value>22111944785</value>
                </document>
            </documents>
            <birthDate>20/10/1980</birthDate>
            <phone>
                <areaCode>11</areaCode>
                <number>999991111</number>
            </phone>
        </holder>
        <billingAddress>
            <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>
        </billingAddress>
    </creditCard>
</payment>
curl -X POST \
  'https://ws.sandbox.pagseguro.uol.com.br/v2/transactions?email={credenciais}}' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'paymentMode=default&paymentMethod=creditCard&receiverEmail=fsodilao%40gmail.com&currency=BRL&extraAmount=0.00&itemId1=0001&itemDescription1=Notebook%20Prata&itemAmount1=10300.00&itemQuantity1=1&itemId2=0002&itemDescription2=Notebook%20Azul&itemAmount2=10000.00&itemQuantity2=1&notificationURL=https%3A%2F%2Fsualoja.com.br%2Fnotificacao.html&reference=REF1234&senderName=Jose%20Comprador&senderCPF=22111944785&senderAreaCode=11&senderPhone=56273440&senderEmail=comprador%40sandbox.pagseguro.com.br&senderHash={{hash_do_comprador}}&shippingAddressStreet=Av.%20Brig.%20Faria%20Lima&shippingAddressNumber=1384&shippingAddressComplement=5o%20andar&shippingAddressDistrict=Jardim%20Paulistano&shippingAddressPostalCode=01452002&shippingAddressCity=Sao%20Paulo&shippingAddressState=SP&shippingAddressCountry=BRA&shippingType=1&shippingCost=01.00&creditCardToken={{token_do_cartao}}&installmentQuantity=7&installmentValue=3030.94&noInterestInstallmentQuantity=5&creditCardHolderName=Jose%20Comprador&creditCardHolderCPF=22111944785&creditCardHolderBirthDate=27%2F10%2F1987&creditCardHolderAreaCode=11&creditCardHolderPhone=56273440&billingAddressStreet=Av.%20Brig.%20Faria%20Lima&billingAddressNumber=1384&billingAddressComplement=5o%20andar&billingAddressDistrict=Jardim%20Paulistano&billingAddressPostalCode=01452002&billingAddressCity=Sao%20Paulo&billingAddressState=SP&billingAddressCountry=BRA'
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<transaction>
    <date>2019-01-29T14:37:00.000-02:00</date>
    <code>D58A27DC-E03A-47E5-A20A-63AE1B80C5B6</code>
    <reference>REF1234</reference>
    <type>1</type>
    <status>1</status>
    <lastEventDate>2019-01-29T14:37:00.000-02:00</lastEventDate>
    <paymentMethod>
        <type>1</type>
        <code>101</code>
    </paymentMethod>
    <grossAmount>20301.00</grossAmount>
    <discountAmount>0.00</discountAmount>
    <feeAmount>1774.70</feeAmount>
    <netAmount>18526.30</netAmount>
    <extraAmount>0.00</extraAmount>
    <installmentCount>7</installmentCount>
    <itemCount>2</itemCount>
    <items>
        <item>
            <id>0001</id>
            <description>Notebook Prata</description>
            <quantity>1</quantity>
            <amount>10300.00</amount>
        </item>
        <item>
            <id>0002</id>
            <description>Notebook Azul</description>
            <quantity>1</quantity>
            <amount>10000.00</amount>
        </item>
    </items>
    <sender>
        <name>Jose Comprador</name>
        <email>comprador@sandbox.pagseguro.com.br</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>1</type>
        <cost>1.00</cost>
    </shipping>
    <gatewaySystem>
        <type>cielo</type>
        <rawCode xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
        <rawMessage xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
        <normalizedCode xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
        <normalizedMessage xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
        <authorizationCode>0</authorizationCode>
        <nsu>0</nsu>
        <tid>0</tid>
        <establishmentCode>1056784170</establishmentCode>
        <acquirerName>CIELO</acquirerName>
    </gatewaySystem>
</transaction>
 
posthttps://ws.pagseguro.uol.com.br/v2/transactions

Query Params

email
string
required

Veja mais sobre as credenciais em Autenticação

token
string
required

Veja mais sobre as credenciais em Autenticação

Body Params

payment
object

Nó principal, onde terá todos os dados de pagamento

mode
string
required

Modo de pagamento.
Formato: aceita a opção 'default'.
x-www-form-urlencoded : paymentMode

method
string
required

Meio de pagamento.
Formato: boleto.
x-www-form-urlencoded : paymentMethod

currency
string
required

Moeda utilizada. Indica a moeda na qual o pagamento será feito. No momento, a única opção disponível é BRL (Real).
x-www-form-urlencoded : currency

sender
object
sender.hash
string
required

Identificador do vendedor (fingerprint) gerado pelo JavaScript do PagSeguro.
Formato: Obtido a partir de uma chamada javascript PagseguroDirectPayment.onSenderHashReady().
x-www-form-urlencoded : senderHash

sender.ip
string

IP do comprador que está realizando o pagamento.
Formato: um IP válido.
x-www-form-urlencoded : senderIp

sender.name
string
required

Nome completo do comprador. Especifica o nome completo do comprador que está realizando o pagamento.
Formato: No mínimo duas sequências de caracteres, com o limite total de 50 caracteres.
x-www-form-urlencoded : senderName

sender.email
string
required

E-mail do comprador. Especifica o e-mail do comprador que está realizando o pagamento.
Formato: Um e-mail válido (p.e., usuario@site.com.br), com no máximo 60 caracteres.
x-www-form-urlencoded : senderEmail

sender.phone
object
sender.phone.areaCode
string
required

DDD do comprador. Especifica o código de área (DDD) do comprador que está realizando o pagamento.
Formato: Um número de 2 dígitos correspondente a um DDD válido.
x-www-form-urlencoded : senderAreaCode

sender.phone.number
string
required

Número do telefone do comprador. Especifica o número do telefone do comprador que está realizando o pagamento.
Formato: Um número de 7 a 9 dígitos.
x-www-form-urlencoded : senderPhone

sender.documents
object
sender.documents.type
string
required

Tipo de documento do comprador. Especifica o tipo do documento é CPF ou CNPJ.
Formato:CPF ou CNPJ
x-www-form-urlencoded : senderCPF e senderCNPJ

sender.documents.value
string
required

Número do CPF ou CNPJ do comprador Especifica o CPF/CNPJ do comprador que está realizando o pagamento.
Formato: Um número de 11 dígitos para CPF ou 14 dígitos para CNPJ.
x-www-form-urlencoded : senderCPF e senderCNPJ

items
object
items.item
object

items.item.description

items.item.id
string
required

Identificadores dos itens. Identificam os itens sendo pagos. Você pode escolher códigos que tenham significado para seu sistema e informá-los nestes parâmetros. O PagSeguro não realiza qualquer validação sobre esses identificadores, mas eles não podem se repetir em um mesmo pagamento.
Formato: Livre, com limite de 100 caracteres.
x-www-form-urlencoded : itemId1, itemId2, etc.

items.item.description
string
required

Descrições dos itens. Descrevem os itens sendo pagos. A descrição é o texto que o PagSeguro mostra associado a cada item quando o comprador está finalizando o pagamento, portanto é importante que ela seja clara e explicativa.
Formato: Livre, com limite de 100 caracteres.
x-www-form-urlencoded : itemDescription1, itemDescription2, etc.

items.item.amount
string
required

Valores unitários dos itens. Representam os preços unitários de cada item sendo pago. Além de poder conter vários itens, o pagamento também pode conter várias unidades do mesmo item. Este parâmetro representa o valor de uma unidade do item, que será multiplicado pela quantidade para obter o valor total dentro do pagamento.
Formato: Decimal, com duas casas decimais separadas por ponto (p.e., 1234.56), maior que 0.00 e menor ou igual a 9999999.00.
x-www-form-urlencoded : itemAmount1, itemAmount2, etc.

items.item.quantity
string
required

Quantidades dos itens. Representam as quantidades de cada item sendo pago. Além de poder conter vários itens, o pagamento também pode conter várias unidades do mesmo item. Este parâmetro representa a quantidade de um item, que será multiplicado pelo valor unitário para obter o valor total dentro do pagamento.
Formato: Um número inteiro maior ou igual a 1 e menor ou igual a 999.
x-www-form-urlencoded : itemQuantity1, itemQuantity2, etc.

shipping
object
shipping.addressRequired
string
required

Obrigatoriedade do endereço de entrega.
Formato:
True: Os parâmetros de shipping.address deverão ser passados
False: os parâmetros de shipping.address não deverão ser passados.
x-www-form-urlencoded : shippingAddressRequired

shipping.address
object
shipping.address.street
string

Nome da rua do endereço de envio. Informa o nome da rua do endereço de envio do produto.
Formato: Livre, com limite de 80 caracteres.
Obrigátorio: Se o shipping.addressRequired estiver como true.
x-www-form-urlencoded : shippingAddressStreet

shipping.address.number
string

Número do endereço de envio. Informa o número do endereço de envio do produto.
Formato: Livre, com limite de 20 caracteres.
Obrigátorio: Se o shipping.addressRequired estiver como true.
x-www-form-urlencoded : shippingAddressNumber

shipping.address.district
string

Bairro do endereço de envio. Informa o bairro do endereço de envio do produto.
Formato: Livre, com limite de 60 caracteres.
Obrigátorio: Se o shipping.addressRequired estiver como true.
x-www-form-urlencoded : shippingAddressDistrict

shipping.address.city
string

Cidade do endereço de envio. Informa a cidade do endereço de envio do produto.
Formato: Livre. Deve ser um nome válido de cidade do Brasil, com no mínimo 2 e no máximo 60 caracteres.
Obrigátorio: Se o shipping.addressRequired estiver como true.
x-www-form-urlencoded : shippingAddressCity

shipping.address.state
string

Estado do endereço de envio. Informa o estado do endereço de envio do produto.
Formato: Duas letras, representando a sigla do estado brasileiro correspondente.
Obrigátorio: Se o shipping.addressRequired estiver como true.
x-www-form-urlencoded : shippingAddressState

shipping.address.country
string

País do endereço de envio. Informa o país do endereço de envio do produto.
Formato: No momento, apenas o valor BRA é permitido.
Obrigátorio: Se o shipping.addressRequired estiver como true.
x-www-form-urlencoded : shippingAddressCountry

shipping.address.postalCode
string

CEP do endereço de envio. Informa o CEP do endereço de envio do produto.
Formato: Um número de 8 dígitos
Obrigátorio: Se o shipping.addressRequired estiver como true.
x-www-form-urlencoded : shippingAddressPostalCode

shipping.address.complement
string

Complemento do endereço de envio. Informa o complemento (bloco, apartamento, etc.) do endereço de envio do produto.
Formato: Livre, com limite de 40 caracteres.
x-www-form-urlencoded : shippingAddressComplement

shipping.type
int32

Tipo de frete. Informa o tipo de frete a ser usado para o envio do produto. Esta informação é usada pelo PagSeguro para calcular, junto aos Correios, o valor do frete a partir do peso dos itens. Os valores aceitos e seus significados são: 1 - Encomenda normal (PAC), 2 - SEDEX, 3 - Tipo de frete não especificado.
Formato: Um número inteiro entre 1 e 3.
x-www-form-urlencoded : shippingType

shipping.cost
string

Valor total do frete. Informa o valor total de frete do pedido. Caso este valor seja especificado, o PagSeguro irá assumi-lo como valor do frete e não fará nenhum cálculo referente aos pesos e valores de entrega dos itens.
Formato: Decimal, com duas casas decimais separadas por ponto (p.e., 1234.56), maior que 0.00 e menor ou igual a 9999999.00.
x-www-form-urlencoded : shippingCost

reference
string

Código de referência. Define um código para fazer referência ao pagamento. Este código fica associado à transação criada pelo pagamento e é útil para vincular as transações do PagSeguro às vendas registradas no seu sistema.
Formato: Livre, com o limite de 200 caracteres.
x-www-form-urlencoded : reference

receiver
object
receiver.email
string

Especifica o e-mail do vendedor que vai receber o pagamento.
Formato: Um e-mail válido, com limite de 60 caracteres. O e-mail informado deve estar vinculado à conta PagSeguro que está realizando a chamada à API.
x-www-form-urlencoded : receiverEmail

extraAmount
string

Valor extra. Especifica um valor extra que deve ser adicionado ou subtraído ao valor total do pagamento. Esse valor pode representar uma taxa extra a ser cobrada no pagamento ou um desconto a ser concedido, caso o valor seja negativo.
Formato: Decimal (positivo ou negativo), com duas casas decimais separadas por ponto (p.e., 1234.56 ou -1234.56), maior ou igual a -9999999.00 e menor ou igual a 9999999.00. Quando negativo, este valor não pode ser maior ou igual à soma dos valores dos produtos.
x-www-form-urlencoded : extraAmount

notificationURL
string

URL para envio de notificações.
Formato: Uma URL válida, com limite de 255 caracteres.
x-www-form-urlencoded : notificationURL

Headers

Content-Type
string

x-www-form-urlencoded:
application/x-www-form-urlencoded; charset=ISO-8859-1
XML:
application/xml; charset=ISO-8859-1

 
paymentMode=default
&paymentMethod=boleto
&currency=BRL
&extraAmount=0.00
&itemId1=0001
&itemDescription1=Notebook Prata
&itemAmount1=24300.00
&itemQuantity1=1
&notificationURL=https://sualoja.com.br/notifica.html
&reference=REF1234
&senderName=Jose Comprador
&senderCPF=72962940005
&senderAreaCode=11
&senderPhone=56273440
&senderEmail=comprador@uol.com.br
&senderHash={{hash_do_comprador}}
&shippingAddressRequired=true
&shippingAddressStreet=Av. Brig. Faria Lima
&shippingAddressNumber=1384
&shippingAddressComplement=5o andar
&shippingAddressDistrict=Jardim Paulistano
&shippingAddressPostalCode=01452002
&shippingAddressCity=Sao Paulo
&shippingAddressState=SP
&shippingAddressCountry=BRA
&shippingType=1
&shippingCost=1.00
<payment>
    <mode>default</mode>
    <method>boleto</method>
    <sender>
        <name>Fulano Silva</name>
        <email>fulano.silva@sandbox.pagseguro.com.br</email>
        <phone>
            <areaCode>11</areaCode>
            <number>30380000</number>
        </phone>
        <documents>
            <document>
                <type>CPF</type>
                <value>72962940005</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>2</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>
</payment>
curl -X POST \
  'https://ws.pagseguro.uol.com.br/v2/transactions/?email=email@email.com&token=token' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'paymentMethod=boleto&paymentMode=default&currency=BRL&extraAmount=1.00&itemId1=0001&itemDescription1=Notebook%20Prata&itemAmount1=24300.00&itemQuantity1=1&notificationURL=https%3A%2F%2Fsualoja.com.br%2Fnotifica.html&reference=REF1234&senderName=Jose%20Comprador&senderCPF=22111944785&senderAreaCode=11&senderPhone=56273440&senderEmail=comprador%40sandbox.pagseguro.com.br&senderHash=d7987e16cc89269cc2c0fb50288b383fdb5193b9aa94edac54de2cf624e80e88&shippingAddressStreet=Av.%20Brig.%20Faria%20Lima&shippingAddressNumber=1384&shippingAddressComplement=5o%20andar&shippingAddressDistrict=Jardim%20Paulistano&shippingAddressPostalCode=01452002&shippingAddressCity=Sao%20Paulo&shippingAddressState=SP&shippingAddressCountry=BRA&undefined='
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<transaction>
    <date>2019-01-29T15:01:52.000-02:00</date>
    <code>96B58137-065E-4669-B055-D12B2FB38E34</code>
    <reference>R123456</reference>
    <type>1</type>
    <status>1</status>
    <lastEventDate>2019-01-29T15:01:55.000-02:00</lastEventDate>
    <paymentMethod>
        <type>2</type>
        <code>202</code>
    </paymentMethod>
    <paymentLink>https://sandbox.pagseguro.uol.com.br/checkout/payment/booklet/print.jhtml?c=b7989f954e7253974d2bf0bbe6c80cfb6caa0e146b13d70d90ffbb3243b22302c4600a923e6f02b0</paymentLink>
    <grossAmount>2.00</grossAmount>
    <discountAmount>0.00</discountAmount>
    <feeAmount>0.48</feeAmount>
    <netAmount>1.52</netAmount>
    <extraAmount>0.00</extraAmount>
    <installmentCount>1</installmentCount>
    <itemCount>1</itemCount>
    <items>
        <item>
            <id>1</id>
            <description>Descricao do item a ser vendido</description>
            <quantity>2</quantity>
            <amount>1.00</amount>
        </item>
    </items>
    <sender>
        <name>Fulano Silva</name>
        <email>fulano.silva@sandbox.pagseguro.com.br</email>
        <phone