PagSeguro Developers_

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

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

Descubra tudo que a nossa plataforma pode te proporcionar!

Get Started    Referência da API
Suggest Edits

Introdução

 

Você está na frente Técnica [Referência] da documentação PagSeguro para desenvolvedores.

Está documentação está dividida em duas frente, são elas:

Frente
Setor
Descrição

Documentação

Destina a todos que desejam entender o que oferecemos nesse produto

Técnica

Refência da API

Destinada a apresentar de forma simples e prática como o serviço se comporta em diferentes cenários

 
Suggest Edits

Changelog

 
Versão
Data
Alteração
Produto

V1.0

08/08/2019

Versão inicial.

N.A.

V1.0

08/08/2019

Nova Collection Postman - Checkout Redirecionamento

Checkout Redirecionamento

 
Suggest Edits

Smart POS

 
 
 
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?

O desenvolvimento de aplicações para Smart POS é realizado com um terminal de desenvolvimento, esse terminal é disponibilizado para os parceiros com configurações pré-definidas.

O ambiente que o terminal de desenvolvimento aponta é o de testes, sandbox, fazendo que não seja necessário nenhuma alteração pelo parceiro em seu código, pois a SDK já vai fechada com o endpoint cadastrado.

Quando a aplicação for enviada para produção, não será necessária nenhuma alteração, pois a SDK de produção também tem o endpoint correto cadastrado.

Código de Ativação

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

Transações Realizadas

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.5.1'
    ...
}

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 INSTALLMENT_TYPE_PARC_COMPRADOR
Forma de parcelamento: parcelamento comprador
Valor: 3
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_CUSTOM_MESSAGE
Código de evento indicando mensagem customizada pela PlugPag.
Valor: -2
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
int EVENT_CODE_CVV_REQUESTED
Código de evento indicando que foi solicitado o CVV..
Valor: 9
int EVENT_CODE_CVV_OK
Código de evento indicando que o CVV foi inserido corretamente.
Valor: 10
int EVENT_CODE_CAR_BIN_REQUESTED
Código de evento indicando que foi solicitado o BIN.
Valor: 11
int EVENT_CODE_CAR_BIN_OK
Código de evento indicando que o BIN foi inserido corretamente.
Valor: 12
int EVENT_CODE_CAR_HOLDER_REQUESTED
Código de evento indicando que foi solicitado o CVV.
Valor: 13
int EVENT_CODE_CAR_HOLDER_OK
Código de evento indicando que o HOLDER foi inserido corretamente.
Valor: 14
int EVENT_CODE_ACTIVATION_SUCCESS
Código de evento indicando que a ativação foi feita corretamente.
Valor: 15
int EVENT_CODE_DIGIT_PASSWORD
Código de evento indicando que a um número da senha foi digitado.
Valor: 16
int EVENT_CODE_NO_PASSWORD
Código de evento indicando que a senha foi apagada.
Valor: 17
int EVENT_CODE_SALE_APPROVED
Código de evento indicando a venda foi aprovada.
Valor: 18
int EVENT_CODE_SALE_NOT_APPROVED
Código de evento indicando que a venda não foi aprovada.
Valor: 19

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.

Abortar operação de leitura/escrita no cartão NFC

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

    // Escreve em um cartão NFC
    int result = plugpag.abort(); 
} 
 

O resultado do abort será retornado através da classe PlugPagNFCResult.

Se o abort 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

 
Suggest Edits

Central de Ajuda

 

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

Qual terminal 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

Quero Integrar - Suporte

 

Central de Atendimento

Buscamos sempre oferecer o melhor serviço para nossos clientes.

Conte com nossa contribuição e dedicação para o crescimento de seu negócio!

Ficamos felizes com seu desejo de se tornar um dos nossos parceiros.

Ao responder algumas perguntinhas abaixo, na opção Quero me Integrar, você estará dando o primeiro passo para se tornar nosso parceiro.

Nosso canal também está aberto para que tire suas dúvidas durante seu desenvolvimento e claro, sobre o nosso produto!

 
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

PlugPag - Windows

 
 
 
Suggest Edits

Introdução

 

A solução busca fornecer a possibidade de terceiros desenvolverem aplicações que se conectem com os terminais do PagSeguro, a conexão utilizada é o bluetooth e permite o envio de requisições para pagamentos, estornos e etc.

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 PlugPag tem como objetivo atender o público de clientes e parceiros que desejam utilizar plataforma com os seguintes Sistemas Operacionais:

  • Windows

Pré-requisitos?

  • Possuir um terminal PagSeguro elegível;
  • Possuir um dispositivo Windows para realizar a integração.
 
Suggest Edits

Estrutura da aplicação

 

Fluxo de Integração - Moderninhas PRO e Wifi

Fluxo normal para transações com sucesso - Moderninhas PRO e Wifi

Fluxo com erro - Moderninhas PRO e Wifi

Fluxo em caso de timeout - Moderninhas PRO e Wifi

Fluxo de Integração - Minizinha

Fluxo normal para transações com sucesso - Minizinha

Fluxo com erro - Minizinha

 
Suggest Edits

Ambientes Disponíveis

 

Como começar?

A integração deverá utilizar os nossos terminais de produção, ou seja, você pode utilizar qualquer um dos nossos terminais diponíveis em nosso site, desde que eles sejam aptos para o PlugPag.

Lembrando que, como o PlugPag não realiza transações, apenas faz a conexão com os terminais e esses por sua vez realizam a transação, não possuímos ambiente de testes para esse modelo de captura, pois os terminais já estão conectados diretamente no PagSeguro.

Como o ambiente apontado pelos terminais é o de produção, qualquer bandeira aceita pelo PagSeguro poderá ser utilizada nos testes.

Não esqueça que durante os testes, todas as transações que forem efetuadas poderão ser estornadas.

 
Suggest Edits

Guide - Moderninha WIFI - Windows

 

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

Já se você possui uma aplicação Windows, 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/

 
Suggest Edits

Guide - Moderninha Pro - Windows

 

É 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

Já se você possui uma aplicação Windows, 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/

 
Suggest Edits

Providers

 
 
 
Suggest Edits

Providers - 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.

 
Suggest Edits

Providers - 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.

 
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 Windows

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

Demo C#

Demo Java

Demo Python

 
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 Pro: Sistemas Operacionais aceitos:

  • Android
  • iOS
  • Windows
  • Linux

Moderninha WiFi: Sistemas Operacionais aceitos:

  • Android
  • iOS
  • Windows
  • Linux

Moderninha Plus: Sistemas Operacionais aceitos:

  • Android
  • iOS
  • Windows
  • Linux

Minizinha Chip: Sistemas Operacionais aceitos:

  • Android
  • iOS

Minizinha : Sistemas Operacionais aceitos:

  • 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

PlugPag - Linux

 
 
 
Suggest Edits

Introdução

 

A solução busca fornecer a possibidade de terceiros desenvolverem aplicações que se conectem com os terminais do PagSeguro, a conexão utilizada é o bluetooth e permite o envio de requisições para pagamentos, estornos e etc.

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 PlugPag tem como objetivo atender o público de clientes e parceiros que desejam utilizar plataforma com os seguintes Sistemas Operacionais:

  • Linux

Pré-requisitos?

  • Possuir um terminal PagSeguro elegível;
  • Possuir um dispositivo Linux para realizar a integração.
 
Suggest Edits

Estrutura da aplicação

 

Fluxo de Integração - Moderninhas PRO e Wifi

Fluxo normal para transações com sucesso - Moderninhas PRO e Wifi

Fluxo com erro - Moderninhas PRO e Wifi

Fluxo em caso de timeout - Moderninhas PRO e Wifi

Fluxo de Integração - Minizinha

Fluxo normal para transações com sucesso - Minizinha

Fluxo com erro - Minizinha

 
Suggest Edits

Ambientes Disponíveis

 

Como começar?

A integração deverá utilizar os nossos terminais de produção, ou seja, você pode utilizar qualquer um dos nossos terminais diponíveis em nosso site, desde que eles sejam aptos para o PlugPag.

Lembrando que, como o PlugPag não realiza transações, apenas faz a conexão com os terminais e esses por sua vez realizam a transação, não possuímos ambiente de testes para esse modelo de captura, pois os terminais já estão conectados diretamente no PagSeguro.

Como o ambiente apontado pelos terminais é o de produção, qualquer bandeira aceita pelo PagSeguro poderá ser utilizada nos testes.

Não esqueça que durante os testes, todas as transações que forem efetuadas poderão ser estornadas.

 
Suggest Edits

Guide - Moderninha WIFI - Linux

 

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

Já se você possui uma aplicação 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/

 
Suggest Edits

Guide - Moderninha Pro - Linux

 

É 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

Já se você possui uma aplicação 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/

 
Suggest Edits

Providers

 
 
 
Suggest Edits

Providers - 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

Providers - 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

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 Linux

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

Demo Linux

 
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 Pro: Sistemas Operacionais aceitos:

  • Android
  • iOS
  • Windows
  • Linux

Moderninha WiFi: Sistemas Operacionais aceitos:

  • Android
  • iOS
  • Windows
  • Linux

Moderninha Plus: Sistemas Operacionais aceitos:

  • Android
  • iOS
  • Windows
  • Linux

Minizinha Chip: Sistemas Operacionais aceitos:

  • Android
  • iOS

Minizinha : Sistemas Operacionais aceitos:

  • 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

PlugPag - iOS

 
 
 
Suggest Edits

Introdução

 

A solução busca fornecer a possibidade de terceiros desenvolverem aplicações que se conectem com os terminais do PagSeguro, a conexão utilizada é o bluetooth e permite o envio de requisições para pagamentos, estornos e etc.

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 PlugPag tem como objetivo atender o público de clientes e parceiros que desejam utilizar plataforma com os seguintes Sistemas Operacionais:

  • Linux

Pré-requisitos?

  • Possuir um terminal PagSeguro elegível;
  • Possuir um dispositivo Linux para realizar a integração.
 
Suggest Edits

Estrutura da aplicação

 

Fluxo de Integração - Moderninhas PRO e Wifi

Fluxo normal para transações com sucesso - Moderninhas PRO e Wifi

Fluxo com erro - Moderninhas PRO e Wifi

Fluxo em caso de timeout - Moderninhas PRO e Wifi

Fluxo de Integração - Minizinha

Fluxo normal para transações com sucesso - Minizinha

Fluxo com erro - Minizinha

 
Suggest Edits

Ambientes Disponíveis

 

Como começar?

A integração deverá utilizar os nossos terminais de produção, ou seja, você pode utilizar qualquer um dos nossos terminais diponíveis em nosso site, desde que eles sejam aptos para o PlugPag.

Lembrando que, como o PlugPag não realiza transações, apenas faz a conexão com os terminais e esses por sua vez realizam a transação, não possuímos ambiente de testes para esse modelo de captura, pois os terminais já estão conectados diretamente no PagSeguro.

Como o ambiente apontado pelos terminais é o de produção, qualquer bandeira aceita pelo PagSeguro poderá ser utilizada nos testes.

Não esqueça que durante os testes, todas as transações que forem efetuadas poderão ser estornadas.

 
Suggest Edits

Guide - Minizinha - iOS

 

É 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 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.

Pareando a sua Minizinha

É 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/

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

Guide - Moderninha WIFI - iOS

 

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 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.

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/

 
Suggest Edits

Guide - Moderninha Pro - iOS

 

É 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 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.

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/

 
Suggest Edits

Providers

 
 
 
Suggest Edits

Providers - 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];
 
Suggest Edits

Providers - 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+).
 
Suggest Edits

Providers - 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+).

 
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 iOS

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

Minizinha - Swift

PRO - Swift

PRO - Objective C

WIFI - Swift

WIFI - Objective C

 
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 Pro: Sistemas Operacionais aceitos:

  • Android
  • iOS
  • Windows
  • Linux

Moderninha WiFi: Sistemas Operacionais aceitos:

  • Android
  • iOS
  • Windows
  • Linux

Moderninha Plus: Sistemas Operacionais aceitos:

  • Android
  • iOS
  • Windows
  • Linux

Minizinha Chip: Sistemas Operacionais aceitos:

  • Android
  • iOS

Minizinha : Sistemas Operacionais aceitos:

  • 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

PlugPag - Android

 
 
 
Suggest Edits

Introdução

 

A solução busca fornecer a possibidade de terceiros desenvolverem aplicações que se conectem com os terminais do PagSeguro, a conexão utilizada é o bluetooth e permite o envio de requisições para pagamentos, estornos e etc.

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 PlugPag tem como objetivo atender o público de clientes e parceiros que desejam utilizar plataforma com os seguintes Sistemas Operacionais:

  • Android

Pré-requisitos?

  • Possuir um terminal PagSeguro elegível;
  • Possuir um dispositivo Android para realizar a integração.
 
Suggest Edits

Estrutura da aplicação

 

Fluxo de Integração - Moderninhas PRO e Wifi

Fluxo normal para transações com sucesso - Moderninhas PRO e Wifi

Fluxo com erro - Moderninhas PRO e Wifi

Fluxo em caso de timeout - Moderninhas PRO e Wifi

Fluxo de Integração - Minizinha

Fluxo normal para transações com sucesso - Minizinha

Fluxo com erro - Minizinha

 
Suggest Edits

Ambientes Disponíveis

 

Como começar?

A integração deverá utilizar os nossos terminais de produção, ou seja, você pode utilizar qualquer um dos nossos terminais diponíveis em nosso site, desde que eles sejam aptos para o PlugPag.

Lembrando que, como o PlugPag não realiza transações, apenas faz a conexão com os terminais e esses por sua vez realizam a transação, não possuímos ambiente de testes para esse modelo de captura, pois os terminais já estão conectados diretamente no PagSeguro.

Como o ambiente apontado pelos terminais é o de produção, qualquer bandeira aceita pelo PagSeguro poderá ser utilizada nos testes.

Lembra que durante os testes, todas as transações que forem efetuadas poderão ser estornadas.

 
Suggest Edits

Guide - 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 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 Minizinha

É 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

Guide - 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 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.

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

Guide - 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 Androide 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.

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

Providers

 
 
 
Suggest Edits

Providers - Moderninha Pro - 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 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+).

 
Suggest Edits

Providers - 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+).

 
Suggest Edits

Providers - 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);
    ...
}
 
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 Android

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

PRO - Java

WIFI - Java

Minizinha - Java

 
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 Pro: Sistemas Operacionais aceitos:

  • Android
  • iOS
  • Windows
  • Linux

Moderninha WiFi: Sistemas Operacionais aceitos:

  • Android
  • iOS
  • Windows
  • Linux

Moderninha Plus: Sistemas Operacionais aceitos:

  • Android
  • iOS
  • Windows
  • Linux

Minizinha Chip: Sistemas Operacionais aceitos:

  • Android
  • iOS

Minizinha : Sistemas Operacionais aceitos:

  • 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

Connect Parcerias

 

Está documentação está dividida em duas frente, são elas:

Frente
Setor
Descrição

Documentação

Destina a todos que desejam entender o que oferecemos nesse produto

Técnica

Refência da API

Destinada a apresentar de forma simples e prática como o serviço se comporta em diferentes cenários

 
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.

 
Suggest Edits

Estrutura da aplicação

 

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)

 

Como obter o TOKEN em PRODUÇÃO:

 
Suggest Edits

Abientes disponíveis

 
Ambiente
URL
 
Suggest Edits

Modelo de aplicações

 

O modelo de aplicação do PagSeguro utilizado no Connect Parcerias permite que sua aplicação receba notificaçõe 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.

/v2/authorizations/request?

Geração do código de autorização (utilizado para redirecionar o cliente para o ambiente do PagSeguro)

/userapplication/v2/authorization/request.jhtml?code=

URL utilizada para redirecionar o cliente para o ambiente do PagSeguro

/promotions/{nome-promocao}/enrollment?

Excluir cliente da parceria

 
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

 
get/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.

curl --request GET \
  --url 'http://example.com/userapplication/v2/authorization/request.jhtml?code=0D0379DF44F8484CBFEB4DD3D88DC29D'
var request = require("request");

var options = { method: 'GET',
  url:
   'http://example.com/userapplication/v2/authorization/request.jhtml',
  qs: { code: '0D0379DF44F8484CBFEB4DD3D88DC29D' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/userapplication/v2/authorization/request.jhtml?code=0D0379DF44F8484CBFEB4DD3D88DC29D")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://example.com/userapplication/v2/authorization/request.jhtml?code=0D0379DF44F8484CBFEB4DD3D88DC29D");

xhr.send(data);
import requests

url = "http://example.com/userapplication/v2/authorization/request.jhtml"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
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.

No code samples available
A binary file was returned

You couldn't be authenticated

No response examples available
 
Suggest Edits

Collection Postman

 

Para facilitar sua integração, desponibilizamos uma Collection no Postman, onde apresentamos como realizar a integração com o Connect Parcerias.

Collection - Connect Parcerias

 
Suggest Edits

Central de Ajuda

 

FAQ - Perguntas Frequentes

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

Checkout PagSeguro

 

Está documentação está dividida em duas frente, são elas:

Frente
Setor
Descrição

Documentação

Destina a todos que desejam entender o que oferecemos nesse produto

Técnica

Refência da API

Destinada a apresentar de forma simples e prática como o serviço se comporta em diferentes cenários

 
Suggest Edits

Introdução

 

O Checkout PagSeguro é conhecido como Redirect, onde o cliente sai da tela do eCommerce que está realizando a compra no momento em que precisa finalizar o checkout adicionando os dados do cartão e conclusão da compra. Neste momento o cliente será direcionado para uma página padrão PagSeguro. Ao finalizar a compra, o mesmo será redirecionado para a página do parceiro.

 
Suggest Edits

Ambientes disponíveis para integração

 

Como obter o TOKEN em PRODUÇÃO:

1 - Para gerar seu token de acesso, utilize o portal UOL Pagseguro

Como obter o TOKEN em SANDBOX:

2 - Faça seu login ou registro:

2 - Selecione o campo "Integrações" dentro de Venda Online:

3 - Selecione "Gerar Token":

Deve ser enviada uma chamada de API para cada comprador, podendo conter nesta mesma chamada todas as parcelas necessárias para este cliente.

A pré modulagem permite configurar qual a primeira data de cobrança, quantas vezes a cobrança será repetida (por períodos mensais), o valor de cada cobrança e a personalização do campo “instruções” do boleto.

 
Suggest Edits

Providers Redirect

 
Chamada
Ação

../checkout

Obter autorização - Código Checkout

../transactions/cancels

Cancelar transação

../transactions/refunds

Estornar transação

 
Suggest Edits

Obter autorização - Código Checkout

Usando a tela do PagSeguro

 
posthttps://ws.sandbox.pagseguro.uol.com.br/v2/checkout/email=email&token=token-sandbox

Query Params

email
string
required

Veja mais sobre as credenciais em Autenticação

token-sandbox
string
required

Veja mais sobre as credenciais em Autenticação)

Body Params

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: addressstreet
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: addressnumber
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: addresscomplement
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: addressdistrict
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: addresscity
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: addressstate
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: addresscountry
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: addresspostalCode
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: phoneareaCode
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: phonenumber
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: documentstype
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: documentsvalue
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

receiveremail
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
object
acceptedPaymentMethods: exclude.payment
object
acceptedPaymentMethods: exclude.payment.method
object
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
object
paymentMethodConfigs: paymentMethodConfig.paymentMethod
object
paymentMethodConfigs: paymentMethodConfig.paymentMethod.group
string

Método de pagamento que receberá a configuração, parâmetro usado para oferecer configurações.

paymentMethodConfigs: paymentMethodConfig.paymentMethod.value
string

Valor da configuração que será atribuída ao método de pagamento.

paymentMethodConfigs: paymentMethodConfig.configs
object
paymentMethodConfigs: paymentMethodConfig.configs.config
object
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.

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:Notebook Prata
itemAmount1:100.00
itemQuantity1:1
itemWeight1:1000
reference:REF1234
senderName:Jose Comprador
senderAreaCode:11
senderPhone:56713293
senderCPF:38440987803
senderBornDate:12/03/1990
senderEmail:email@sandbox.pagseguro.com.br
shippingType:1
shippingAddressStreet:Av. Brig. Faria Lima
shippingAddressNumber:1384
shippingAddressComplement:2o andar
shippingAddressDistrict:Jardim Paulistano
shippingAddressPostalCode:01452002
shippingAddressCity:Sao Paulo
shippingAddressState:SP
shippingAddressCountry:BRA
extraAmount:-0.01
redirectURL:http://sitedocliente.com
notificationURL:https://url_de_notificacao.com
maxUses:1
maxAge:3000
shippingCost:0.00
<?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

Link de Redirecionamento Checkout PagSeguro

 
gethttps://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code=código de checkout

Path Params

código de checkout
string
required

Código retornado na chamada "Obtendo o código checkout", obtido no primeiro post efetuado para a geração do código de checkout.

Link

Utilizando o código de checkout gerado no provider anterior "Obter autorização - Código Checkout"

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.

No code samples available
A binary file was returned

You couldn't be authenticated

No response examples available
Suggest Edits

Estornar transação

 
posthttps://ws.sandbox.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

Body Params

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

Cancelar transação

 
posthttps://ws.sandbox.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

Body Params

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

Consulta transações por data ou código de referência

 
gethttps://ws.sandbox.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

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.sandbox.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

Body Params

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

Providers Lightbox

 
Chamada
Ação

../checkout

Criação do Checkout

Eventos Javascript

Cria Checkout

../transactions/cancels

Cancelar transação

../transactions/refunds

Estornar transação

 
Suggest Edits

Obtendo o código checkout

Usando a tela do PagSeguro

 
posthttps://ws.sandbox.pagseguro.uol.com.br/v2/checkout/email=email&token=token-sandbox

Query Params

email
string
required

Veja mais sobre as credenciais em Autenticação

token-sandbox
string
required

Veja mais sobre as credenciais em Autenticação)

Body Params

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: addressstreet
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: addressnumber
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: addresscomplement
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: addressdistrict
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: addresscity
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: addressstate
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: addresscountry
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: addresspostalCode
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: phoneareaCode
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: phonenumber
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: documentstype
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: documentsvalue
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

receiveremail
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
object
acceptedPaymentMethods: exclude.payment
object
acceptedPaymentMethods: exclude.payment.method
object
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
object
paymentMethodConfigs: paymentMethodConfig.paymentMethod
object
paymentMethodConfigs: paymentMethodConfig.paymentMethod.group
string

Método de pagamento que receberá a configuração, parâmetro usado para oferecer configurações.

paymentMethodConfigs: paymentMethodConfig.paymentMethod.value
string

Valor da configuração que será atribuída ao método de pagamento.

paymentMethodConfigs: paymentMethodConfig.configs
object
paymentMethodConfigs: paymentMethodConfig.configs.config
object
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.

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:Notebook Prata
itemAmount1:100.00
itemQuantity1:1
itemWeight1:1000
reference:REF1234
senderName:Jose Comprador
senderAreaCode:11
senderPhone:56713293
senderCPF:38440987803
senderBornDate:12/03/1990
senderEmail:email@sandbox.pagseguro.com.br
shippingType:1
shippingAddressStreet:Av. Brig. Faria Lima
shippingAddressNumber:1384
shippingAddressComplement:2o andar
shippingAddressDistrict:Jardim Paulistano
shippingAddressPostalCode:01452002
shippingAddressCity:Sao Paulo
shippingAddressState:SP
shippingAddressCountry:BRA
extraAmount:-0.01
redirectURL:http://sitedocliente.com
notificationURL:https://url_de_notificacao.com
maxUses:1
maxAge:3000
shippingCost:0.00
<?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

Lightbox Checkout

 

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

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:

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

<script type="text/javascript">
//Insira o código de checkout gerado no Passo 1
var code = 'INSIRA_SEU_CÓDIGO';
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;
    console.log("Redirecionamento")
}
        </script>
    </body>
</html>

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

Estornar transação

 
posthttps://ws.sandbox.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

Body Params

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

Cancelar transação

 
posthttps://ws.sandbox.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

Body Params

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

Consulta transações por data ou código de referência

 
gethttps://ws.sandbox.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

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.sandbox.pagseguro.uol.com.br/v2/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

Body Params

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

Apêndice

 

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

Collection Postman

Checkout Transparente

 

Para facilitar sua integração, desponibilização uma Collection no Postman, onde apresentamos como realizar a integração com o Checkout Transparente.

Collection - Checkout Redirecionamento

 
Suggest Edits

Central de Ajuda

 

Checkout PagSeguro vs Checkout Transparente PagSeguro

No checkout padrão Pagseguro o pagamento acontece em um ambiente fora da loja, na página doPagSeguro. Já no “checkout transparente”, a conclusão do pagamento ocorre dentro da própria loja.

Modalidades Permitidas através do PagSeguro

Modalidades permitidas através do PagSeguro
Crédito (Parcelado Vendedor / também conhecido como parcelado Loja ou Sem Juros);
Bandeiras:

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);

Dinners;

BrasilCard;

Aura;

Up;

PersonalCard;

SoroCred;

ValeCard;

Mais!;

Débito Online

Emissores que permitem essa operação:

Bradesco

Banco do Brasil

Itaú

Banrisul

Depósito em Conta;

Emissores que permitem essa operação:

Banco do Brasil

Saldo conta PagSeguro

Operações

Estorno (Total e Parcial*)

Cancelamento;

Reimpressão de comprovantes;

Regras importantes para gerar o checkout:

O e-mail utilizado para gerar as credenciais deve ser o mesmo utilizado no body Receiver E-mail.

No ambiente sandbox você deve utilizar o domínio @sandbox.pagseguro.com.br no e-mail
destinado ao comprador.

Como adquirir meu Token Transacional para o ambiente SANDBOX?

  1. Acesse https://sandbox.pagseguro.uol.com.br/ e faça seu login ou registro.

  2. Selecione o campo "Vendedor" dentro de Perfis de Integração. Dentro do campo "Vendedor de testes" seu e-mail e token serão disponibilizados

Como adquirir o meu Token Transacional em ambiente de Produção

  1. Acesse pagseguro.uol.com.br e faça seu login ou registro.

2.Selecione o campo "Integrações" dentro de Venda Online.

  1. Selecione "Gerar Token"
 
Suggest Edits

Change Log

 
Versão
Data
Alteração

V1.0

08/08/2019

Versão inicial.

 
Suggest Edits

API Checkout Transparente

 

Está documentação está dividida em duas frente, são elas:

Frente
Setor
Descrição

Documentação

Destina a todos que desejam entender o que oferecemos nesse produto

Técnica

Refência da API

Destinada a apresentar de forma simples e prática como o serviço se comporta em diferentes cenários

 
Suggest Edits

Introdução

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.

 

Como obter o TOKEN em PRODUÇÃO:

1 - Para gerar seu token de acesso, utilize o portal UOL Pagseguro

2 - Faça seu login ou registro:

2 - Selecione o campo "Integrações" dentro de Venda Online:

3 - Selecione "Gerar Token":

Deve ser enviada uma chamada de API para cada comprador, podendo conter nesta mesma chamada todas as parcelas necessárias para este cliente.

A pré modulagem permite configurar qual a primeira data de cobrança, quantas vezes a cobrança será repetida (por períodos mensais), o valor de cada cobrança e a personalização do campo “instruções” do boleto.

 
Suggest Edits

Ambientes Disponíveis

Checkout Transparente

 
Suggest Edits

Providers

Checkout Transparente

 
Chamada
Ação

../checkout/pagseguro.directpayment.js

Importa Biblioteca Javascript

../sessions

Cria Sessão do Usuário

../transactions

Cria Checkout (Transação)

../transactions/cancels

Cancelar transação

../transactions/refunds

Estornar transação

 
Suggest Edits

1. Gerando uma sessão

Checkout Transparente

 
posthttps://ws.pagseguro.uol.com.br/?email=email&token=token

Path Params

email
string
required

Email de sua conta

token
string
required

Token de sua conta

Exemplo de resposta:

<?xml version="1.0" encoding="ISO-8859-1"?>
<session>
	<id>620f99e348c24f07877c927b353e49d3</id>
</session>
No code samples available
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

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 ou mesmo onClick no evento "Finalizar Compra". Você pode executá-lo, por exemplo, no momento em que o cliente seleciona o campo destinado ao "Nome completo do comprador".

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

Checkout Transparente

 

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}}