Formulário de pagamento
Neste tópico, você aprenderá a enviar dados de uma transação para o portal de pagamento PayU. Para isso, deve-se gerar um formulário HTML com os dados da transação utilizando o método HTTP POST e apontando-o para o nosso sistema.
Observações
- Verifique se você tem
merchantId
,accountId
eapiKey
. - Use uma referência de pagamento diferente por pagamento.
- Não inclua espaços nos valores dos parâmetros.
- Não inclua valores com mais de duas casas decimais.
- Não inclua caracteres especiais no parâmetro
referenceCode
.
Variáveis
As seguintes variáveis podem ser incluídas no formulário de pagamento.
Variáveis no formulário de pagamento
Campo | Tipo | Tamanho | Descrição | Obrigatório |
---|---|---|---|---|
merchantId | Número | 12 | Número de identificação da sua loja no sistema PayU. Você encontrará este número no e-mail de criação de conta. | Sim |
referenceCode | Alfanumérico | 255 | Referência da venda ou ordem. Deve ser exclusiva para cada transação enviada ao sistema. Normalmente, é uma forma de identificar as solicitações enviadas para a plataforma de pagamento. | Sim |
accountId | Número | 6 | ID da conta do usuário para cada país associado à loja. Esta variável é usada para exibir os métodos de pagamento disponíveis para este país. | Sim |
description | Alfanumérico | 255 | Descrição da venda. | Sim |
currency | Alfanumérico | 3 | A respectiva moeda na qual o pagamento é feito. O processo de reconciliação é realizado em pesos na taxa representativa do dia. Veja as moedas aceitas. |
Sim |
amount | Número | 10 | Valor total da transação. Ele pode conter dois dígitos decimais. Exemplo 10000.00 ou 10000. | Sim |
tax | Número | 10,2 | Valor do IVA da transação. Na Colômbia, se nenhum IVA for enviado, o sistema aplica 19% automaticamente. Ele pode conter dois dígitos decimais, por exemplo 19000.00. Se o produto ou serviço for isento de IVA, atribua 0 a esta variável. |
Sim |
discount | Número | 10,2 | Discount value applied to the sale. | Não |
taxReturnBase | Número | 10,2 | Valor base para cálculo do VAT. Se o produto ou serviço for isento de IVA, atribua 0 a esta variável. |
Sim |
additionalValue | Número | 10,2 | Valor adicional da venda. | Não |
signature | Alfanumérico | 255 | Assinatura digital criada para cada transação. Consultar Assinatura para forma de pagamento para aprender como gerar. | Sim |
algorithmSignature | Alfanumérico | 255 | Algoritmo de criptografia da assinatura digital (campo signature ). Os três algoritmos disponíveis são: MD5 , SHA e SHA256 . |
Não |
test | Número | 1 | Indica se a transação está em modo de teste ou produção. Definir 1 para teste e 0 para produção. |
Não |
lng | Alfanumérico | 3 | Idioma no qual a plataforma de pagamento deve ser exibida. Veja os idiomas disponíveis. |
Não |
extra1 | Alfanumérico | 255 | Campo adicional para envio de informações sobre a compra. | Não |
extra2 | Alfanumérico | 255 | Campo adicional para envio de informações sobre a compra. | Não |
extra3 | Alfanumérico | 255 | Campo adicional para envio de informações sobre a compra. | Não |
template | Alfanumérico | 255 | Modelo para a página de pagamento. | Não |
responseUrl | Alfanumérico | 255 | URL da página de resposta. | Não |
confirmationUrl | Alfanumérico | 255 | URL da página de resposta. | Não |
sourceUrl | Alfanumérico | 255 | URL de origem das transações do comércio. É aqui que o botão de pagamento está localizado. | Não |
airline | Alfanumérico | 4 | Código da companhia aérea. | Não |
billingAddress | Alfanumérico | 255 | Endereço de correspondência. | Não |
shippingAddress | Alfanumérico | 255 | O endereço de entrega da mercadoria. * Obrigatório se sua loja enviar o produto. |
Sim* |
billingCity | Alfanumérico | 50 | Cidade associada ao endereço de cobrança. | Não |
shippingCity | Alfanumérico | 50 | A cidade de entrega da mercadoria. * Obrigatório se sua loja enviar o produto. |
Sim* |
zipCode | Alfanumérico | 20 | Código postal. | Não |
billingCountry | Alfanumérico | 2 | Código ISO do país associado ao endereço de cobrança. | Não |
shippingCountry | Alfanumérico | 2 | O código ISO do país associado ao endereço de entrega da mercadoria. * Obrigatório se sua loja enviar o produto. Veja os países de processamento. |
Sim* |
buyerEmail | Alfanumérico | 255 | Campo que contém o e-mail do comprador para notificar o resultado da transação por e-mail. Recomenda-se validar se este campo foi fornecido no formulário. | Sim |
telephone | Alfanumérico | 50 | O telefone residencial do comprador. | Sim |
officeTelephone | Alfanumérico | 50 | O telefone do comprador em horário comercial. | Não |
mobilePhone | Alfanumérico | 50 | O número do celular do comprador. Este valor será usado para preencher o formulário do cartão de crédito e será o telefone de contato. | Não |
buyerFullName | Alfanumérico | 150 | O nome completo do comprador. | Sim |
paymentMethods | Alfanumérico | 255 | Lista das formas de pagamento habilitadas no processo de pagamento. Esta lista deve ser separada por vírgula e sem espaços em branco. Por exemplo: VISA,MASTERCARD .YVocê pode incluir parcelas para as formas de pagamento adicionando-as usando hifens. Exemplo: VISA-1-3,MASTERCARD-3-5-9 .Veja os métodos de pagamento disponíveis para seu país na coluna Parâmetro paymentMethod . |
Não |
administrativeFee | Número | 10,2 | Valor da taxa administrativa. | Não |
taxAdministrativeFee | Número | 10,2 | Valor do imposto da taxa administrativa. | Não |
taxAdministrativeFeeReturnBase | Número | 10,2 | Valor base para cálculo do imposto da taxa administrativa. | Não |
payerEmail | Alfanumérico | 255 | E-mail do pagador. | Sim |
payerPhone | Alfanumérico | 20 | Número de telefone do pagador. | Sim |
payerOfficePhone | Alfanumérico | 20 | Número de telefone do local de trabalho do pagador. | Não |
payerMobilePhone | Alfanumérico | 20 | Número do celular do pagador. | Não |
expirationDate | Alfanumérico | 19 | Prazo de validade das transações de pagamentos da Dinheiro. Formato: YYYY-MM-DD HH:mm:ss .Este valor deve ser inferior ao número padrão de dias para o pagamento à vista (15 dias para a Argentina e 7 dias para os demais países). |
- |
payerFullName | Alfanumérico | 50 | O nome do pagador. Este valor será usado para preencher o formulário do cartão de crédito. | Sim |
payerDocument | Alfanumérico | 25 | O número de identificação do comprador. Este valor será usado para preencher o formulário do cartão de crédito. | Sim |
payerDocumentType | Alfanumérico | 25 | O tipo de identificação do comprador. Este valor será usado para preencher o formulário do cartão de crédito. | Sim |
iin | Alfanumérico | 2048 | Lista de Bins admitidos durante o processo de pagamento (separados por vírgula). Este parâmetro só pode ser utilizado por estabelecimentos que validem assinatura. |
Não |
paymentMethodsDescription | Alfanumérico | 255 | Descrição dos meios de pagamento e Caixas admitidas durante o processo de pagamento. | Não |
pseBanks | Alfanumérico | 255 | Lista de códigos bancários habilitados no processo de pagamento via PSE. Esta lista deve ser separada por vírgula e sem espaços em branco. |
Não |
Considerações sobre variáveis
- o
tax
é o IVA que pode ser usado em alguns países e otaxReturnBase
é o valor base para cálculo do IVA. Se o seu produto é isento de impostos, atribua ambas as variáveis para0
(tax=0
,taxReturnBase=0
) - Se alguns elementos têm o imposto e este não se aplica a outros, deve-se realizar o seguinte cálculo para saber como enviar os valores para a plataforma de pagamento.
Produto | campo taxReturnBase | campo tax | Valor |
---|---|---|---|
A | 84.033 | 15.966 (19%) | 100.000 |
B | 181.818 | 18.181 (10%) | 200.000 |
C | 0 | 0 (0%) | 150.000 |
Total | 268.851 | 34.147 | 450.000 |
Importante
Tax + taxReturnBase não pode ser maior que o Valor Total de cada produto.- Para empresas registradas na Colômbia que pertencem ao programa Régimen común, se você não enviar o imposto, PayU calcula automaticamente o imposto usando 19%. Se sua empresa pertence ao programa Régimen simplificado, se você não enviar o imposto, PayU atribui automaticamente o valor como zero (0).
Exemplo de formulário
A seguir, veja um exemplo de um formulário de pagamento básico usando apenas os campos obrigatórios e direcionando a solicitação para o ambiente Sandbox (modo de teste).
<form method="post" action="https://sandbox.checkout.payulatam.com/ppp-web-gateway-payu/">
<input name="merchantId" type="hidden" value="508029" >
<input name="accountId" type="hidden" value="512321" >
<input name="description" type="hidden" value="Test PAYU" >
<input name="referenceCode" type="hidden" value="TestPayU" >
<input name="amount" type="hidden" value="20000" >
<input name="tax" type="hidden" value="3193" >
<input name="taxReturnBase" type="hidden" value="16806" >
<input name="currency" type="hidden" value="COP" >
<input name="signature" type="hidden" value="7ee7cf808ce6a39b17481c54f2c57acc" >
<input name="test" type="hidden" value="0" >
<input name="buyerEmail" type="hidden" value="test@test.com" >
<input name="responseUrl" type="hidden" value="http://www.test.com/response" >
<input name="confirmationUrl" type="hidden" value="http://www.test.com/confirmation" >
<input name="Submit" type="submit" value="Enviar" >
</form>
Se sua loja envia os produtos, você precisa incluir os seguintes valores:
<input name="shippingAddress" type="hidden" value="calle 93 n 47 - 65" >
<input name="shippingCity" type="hidden" value="Bogotá" >
<input name="shippingCountry" type="hidden" value="CO" >
A URL configurada em action
depende do ambiente:
Teste: https://sandbox.checkout.payulatam.com/ppp-web-gateway-payu/
Produção: https://checkout.payulatam.com/ppp-web-gateway-payu/
Assinatura para formulário de pagamento
A assinatura é uma forma de validar os pagamentos efetuados na plataforma e garantir a sua autenticidade. Consiste em uma string criptografada usando MD5
, SHA1
ou SHA256
. A string é criada da seguinte maneira:
"ApiKey~merchantId~referenceCode~amount~currency"
Observação
Se sua forma de pagamento inclui as variáveis paymentMethods
, iin
ou pseBanks
, você deve concatená-las nesta ordem:
"ApiKey~merchantId~referenceCode~amount~currency~paymentMethods~iin~pseBanks"
Por exemplo, com os seguintes dados:
merchantId: 508029
ApiKey: 4Vj8eK4rloUd272L48hsrarnUA
referenceCode: TestPayU
amount: 20000
currency: COP
accountId: 512326
buyerEmail: test@test.com
A assinatura é:
"4Vj8eK4rloUd272L48hsrarnUA~508029~TestPayU~20000~COP"
Criptografado usando MD5
:
"7ee7cf808ce6a39b17481c54f2c57acc"
Criptografado usando SHA1
:
"fa890d3f94e12b5cdb62e8771453b99b78e7ccdc"
Criptografado usando SHA256
:
"af3899a22336b79db46006491d15813158826f944599bf3bf601e2327f898022"
Compare a sua assinatura
Esta calculadora permite gerar a assinatura usando qualquer um dos métodos de criptografia disponíveis.