Pagamento Recorrente Transparente

Visão Geral

Com o Pagamento Recorrente Transparente, sua aplicação pode efetuar a cobrança recorrente de maneira fácil e sem a necessidade do redirecionamento do cliente para o PagSeguro. O Pagamento Recorrente está disponível para as contas Vendedor e Empresarial e aceita somente pagamento com cartão de crédito.

Como Funciona?

Com o Pagamento Recorrente você cria um plano, definindo as regras de cobrança, periodicidade, valor, entre outros. Com o plano criado, sua aplicação registra os compradores para serem cobrados no plano desejado. Além disso, você pode definir desconto para a próxima cobrança, listar pagamentos de um plano, efetuar a retentativa de pagamento, mudar o status de uma recorrência e também mudar o seu meio de pagamento. Vejamos a seguir as informações para a integração do Pagamento Recorrente PagSeguro ao seu sistema:

Autenticação

Antes de entrarmos nos detalhes de cada serviço, vamos entender como funciona a autenticação. Todas as chamadas para os serviços do PagSeguro necessitam de uma autenticação, que pode ser efetuada de duas maneiras:

Autenticação para vendedores

Este modelo utiliza o e-mail e token do vendedor como forma de autenticação. Os parâmetros devem ser passados ao fim da URL do serviço, conforme exemplo abaixo:

Ex: https://{caminho do serviço}?email={seu email}&token={seu token}

Para saber qual é o seu token, consulte o seu Painel.

Autenticação para Modelo de Aplicações

Este modelo de autenticação é voltado para sistemas que utilizam o modelo de aplicações do PagSeguro. A autenticação neste caso utiliza o ID e a chave da aplicação do vendedor. Para algumas chamadas também é necessário o código de autorização do vendedor. Os parâmetros devem ser passados ao fim da URL do serviço, conforme exemplo abaixo:

Ex: https://{caminho do serviço}?appId={id da aplicação}&appKey={chave da aplicação}&authorizationCode={código de autorização}

Para verificar as suas aplicações cadastradas, consulte o seu Painel.

Atenção: Em ambos os casos, por questões de segurança, recomenda-se não expôr estes parâmetros no front-end do seu sistema. Sendo assim, as chamadas para os serviços de integração que exigem autenticação devem ser feitos diretamente do back-end.

Por exemplo, para fazer uma chamada ao serviço de Criação de Plano (documentado mais adiante), supondo que o seu email seja a@b.com e o seu token seja 123ABC, a url de chamada deve ficar da seguinte forma:

https://ws.pagseguro.uol.com.br/pre-approvals/request?email=a@b.com&token=123ABC

Formato de dados para envio e resposta

Os serviços do PagSeguro oferecem a possibilidade de se trabalhar tanto com o formato JSON quanto com o formato XML, seja para entrada ou para saída. Além disso, também é possível enviar os dados diretamente na URL da requisição. Para tal, deve-se explicitar no cabeçalho (header) da chamada HTTP os seguintes parâmetros:

Content-type

application/xml;charset=ISO-8859-1 - Utilize este valor para enviar dados em formato XML
application/json;charset=ISO-8859-1 - Utilize este valor para enviar dados em formato JSON
application/x-www-form-urlencoded;charset=ISO-8859-1 - Utilize este valor para enviar os dados na URL

Accept

application/vnd.pagseguro.com.br.v3+xml;charset=ISO-8859-1 - Utilize este valor para receber a resposta em formato XML
application/vnd.pagseguro.com.br.v3+json;charset=ISO-8859-1 - Utilize este valor para receber a resposta em formato JSON

Por exemplo, se na sua aplicação você necessita enviar os dados em formato JSON e receber as respostas em formato XML, utilize os seguintes headers na sua chamada HTTP:

Content-type: application/json;charset=ISO-8859-1
Accept: application/vnd.pagseguro.com.br.v3+xml;charset=ISO-8859-1

Pode-se intercambiar estes valores conforme a sua necessidade, como também modificá-los a cada chamada de serviço.

Atenção: Independentemente do formato de dados utilizado, a codificação de caracteres padrão para a integração é a ISO-8859-1. Tome o cuidado de sempre enviar os dados com este encoding de caracteres. Os dados enviados pelo PagSeguro sempre estarão neste encoding.

Sandbox

Todos os serviços que serão citados abaixo mostram a URL de produção, que é https://ws.pagseguro.uol.com.br/. Para fazer a chamada aos serviços utilizando o Sandbox, basta trocar a URL por https://ws.sandbox.pagseguro.uol.com.br/.

Criação de planos

Antes de mais nada, é necessário criar ao menos um plano de pagamento. Note que não há a necessidade de se criar um plano para cada pagamento, mas sim o ideal é agregar vários pagamentos, de vários consumidores, dentro de um mesmo plano.

Os planos podem ser de dois tipos: de cobrança Automática ou de cobrança Manual.

1 - Plano de Cobrança Automática

  • Nesta modalidade, você define a periodicidade, e o PagSeguro se encarrega de efetuar todas as cobranças nas datas especificadas. Deve-se usar este método para planos pré-pagos, pois a primeira cobrança é feita no momento da adesão.

2 - Plano de Cobrança Manual

  • Nesta modalidade, nas datas definidas no plano, você deverá fazer uma chamada ao serviço /pre-approvals/payment - documentado mais adiante - para realizar a cobrança. Deve-se usar este método para planos pós-pagos, onde a primeira cobrança é feita um período após o início da recorrência (ex.: um mês após a recorrência, no caso de um plano mensal).

Em ambos os casos é possível postergar a primeira cobrança, utilizando-se do parâmetro trialPeriodDuration. Ou, para criar planos sem data de expiração, basta não informar os parâmetros finalDate e expiration.

Para criar um plano, utilize o método /pre-approvals/request (veja a documentação).

URL: POST https://ws.pagseguro.uol.com.br/pre-approvals/request{autenticação}

O método irá retornar o código do plano criado. Usaremos este código para fazer a adesão ao plano.

Os planos criados podem ser visualizados no seu Painel.

Atenção: Na modalidade de cobrança Manual (planos pós-pagos), a responsabilidade de fazer o pedido de cobrança é do vendedor. Não é recomendada a criação deste tipo de plano caso não haja condições de adequar os seus sitemas para enviar a chamada ao serviço de cobrança nos momentos corretos. Na dúvida, opte pelo plano pré-pago, de cobrança Automática (charge = AUTO).

Exemplo: Para criar um plano pré-pago (Cobrança Automática) com cobranças mensais de R$ 100,00 por durante 1 ano:

{
    "preApproval": {
        "name": "Assinatura da Revista Fictícia",
        "charge": "AUTO",
        "period": "MONTHLY",
        "amountPerPayment": 100.00,
        "expiration": {
            "value": 1,
            "unit": "YEARS"
        }
    },
    "receiver": {
        "email": "seu@email.com.br"
    }
}

Exemplo: Para criar um plano pós-pago (Cobrança Manual) com cobranças semanais de R$ 10,00 a serem efetuadas toda Segunda-feira, com duração ilimitada, e taxa de adesão de R$ 50,00:

{
  "preApproval": {
    "name": "Acesso ao Site Fictício",
    "charge": "MANUAL",
    "period": "WEEKLY",
    "amountPerPayment": 10.00,
    "membershipFee": 50.00,
    "maxAmountPerPeriod": 50.00,
    "maxPaymentsPerPeriod": 5,
    "dayOfWeek": "MONDAY"
  },
  "receiver": {
    "email": "seu@email.com.br"
  }
}

Iniciando uma sessão de pagamento

Após a criação do(s) seu(s) plano(s), precisamos preparar o sistema para fazer uma adesão a um plano existente. O primeiro passo do fluxo de pagamento é a criação da sessão de pagamento. Assim que o usuário do seu site for realizar um pagamento, precisamos recuperar um ID de sessão com o PagSeguro.

Para gerar um ID de sessão válido, utilize o método /sessions (veja a documentação).

URL: POST https://ws.pagseguro.uol.com.br/sessions{autenticação}

O método irá retornar o ID da sessão. Coloque esse ID no seu contexto de página, pois ele será utilizado nas chamadas Javascript que documentamos a seguir.

Integrações no browser

A API do Pagamento Transparente, que é a forma de pagamento não recorrente, possui funções JavaScript para algumas operações que devem ser executadas no browser do cliente, a fim de se obter a adesão a um plano. Para ter acesso a essas funções, uma API JavaScript deve ser importada no final da página de pagamento do seu site. Como esta API é documentada em outra sessão desta documentação, colocaremos abaixo os passos que devem ser seguidos e os links para a documentação da API.

Os passos que devem ser seguidos são:

  1. Incluir a API Javascript na página de pagamento
  2. Setar o ID da sessão gerado anteriormente
  3. Obter o token do cartão de crédito

Além destes passos obrigatórios, existem outros métodos auxiliares que podem lhe ajudar com outras tarefas, inclusive para enriquecer a experiência do seu usuário. São eles:

  • Obter os meios de pagamento - Com este método é possível obter, dentre outras informações, caminhos para imagens que representam os diversos meios de pagamento aceitos pelo PagSeguro. Mas lembre-se: no pagamento recorrente, apenas o método Cartão de Crédito é aceito.

  • Obter bandeira do cartão de crédito - Com este método é possível saber, após digitados seis dígitos do cartão, qual é a bandeira do cartão.

  • Obter identificação do comprador - Pode-se utilizar o hash gerado aqui como parâmetro no método /pre-approvals, que é o método que cria a recorrência (adesão a um plano). O método citado requer ou o IP do assinante, que você deve obter por seus próprios meios, ou este hash. Fique à vontade para usar o que preferir.

De posse do token do cartão de crédito, e também da identificação do comprador (hash) caso tiver optado por ela, já podemos prosseguir para a adesão.

Adesão ao plano

A adesão é o mecanismo que une o plano ao consumidor, e que permitirá ao seu cliente lhe fazer pagamentos de forma recorrente, de acordo com o que foi estipulado no plano ao qual ele está aderindo. A esta série de pagamentos damos o nome de recorrência.

Para criar uma recorrência utilize o método /pre-approvals (veja a documentação).

URL: POST https://ws.pagseguro.uol.com.br/pre-approvals{autenticação}

O método retorna o código da recorrência. Guarde este código para cada adesão efetuada, pois ele será necessário para operar sobre a mesma nos métodos que serão documentados a seguir.

As recorrências podem ser visualizadas no seu Painel.

Cobrança manual

Este método deve ser chamado apenas para planos criados como pós-pagos, onde a primeira cobrança é feita um período após o início da recorrência (ex.: um mês após a recorrência, no caso de um plano mensal). Para cada cobrança, deve ser feita uma chamada a este serviço na data correta da cobrança. Note que qualquer chamada a este serviço que esteja divergente das configurações do plano no qual a cobrança será efetuada - por exemplo, na data errada ou com outro valor - será recusada.

Para efetuar uma cobrança manual, utilize o método /pre-approvals/payment (veja a documentação)

URL: POST https://ws.pagseguro.uol.com.br/pre-approvals/payment{autenticação}

O método retorna o código da transação de cobrança efetuada.

Suspensão e Reativação

Com este método é possível alterar o estado de uma recorrência, movendo-a de ativa para suspensa e vice-versa. Uma recorrência não terá cobranças no período em que estiver suspensa.

Para alterar o estado de uma recorrência, utilize o método /pre-approvals/{preApprovalCode}/status (veja a documentação)

URL: PUT https://ws.pagseguro.uol.com.br/pre-approvals/{preApprovalCode}/status{autenticação}

O parâmetro {preApprovalCode} é o código da recorrência obtido no método /pre-approvals.

A resposta deste método não possui corpo.

Cancelamento de recorrência

Com este serviço é possível solicitar o cancelamento de um pagamento recorrente. Note que, para o cancelamento ser efetuado, é necessário que a recorrência esteja ativa (status ACTIVE).

Para solicitar o cancelamento de uma recorrência, utilize o método /pre-approvals/{preApprovalCode}/cancel (veja a documentação)

URL: PUT https://ws.pagseguro.uol.com.br/pre-approvals/{preApprovalCode}/cancel/{autenticação}

O parâmetro {preApprovalCode} é o código da recorrência obtido no método /pre-approvals.

A resposta deste método não possui corpo.

Desconto no pagamento

É possível conceder desconto a cada parcela de uma recorrência. Note que o desconto se aplica somente à cobrança subsequente, não se aplicando às demais cobranças futuras.

Para prover um desconto à próxima cobrança de uma recorrência, utilize o método /pre-approvals/{preApprovalCode}/discount (veja a documentação)

URL: PUT https://ws.pagseguro.uol.com.br/pre-approvals/{preApprovalCode}/discount{autenticação}

O parâmetro {preApprovalCode} é o código da recorrência obtido no método /pre-approvals.

A resposta deste método não possui corpo.

Mudança de meio de pagamento

Durante o período de uma recorrência, é provável que o seu cliente queira atualizar seus dados de pagamento, trocando o cartão no qual são debitados os pagamentos. Com este método é possível fazer tal alteração, mas lembre-se: no Pagamento Recorrente só é possível aceitar pagamentos com cartão de crédito.

Para alterar os dados de pagamento, utilize o método /pre-approvals/{preApprovalCode}/payment-method (veja a documentação)

URL: PUT https://ws.pagseguro.uol.com.br/pre-approvals/{preApprovalCode}/payment-method{autenticação}

O parâmetro {preApprovalCode} é o código da recorrência obtido no método /pre-approvals.

A resposta deste método não possui corpo.

Listar ordens de pagamento

A cada intervalo de recorrência, o PagSeguro irá gerar uma Ordem de Pagamento. Ela identifica uma necessidade de cobrança. Em seguida, será gerada uma Transação, que é a tentativa dessa cobrança. Se a transação for bem sucedida, a Ordem de Pagamento fica com o status 5 - Paga. Caso contrário, podem ser geradas novas tentativas de cobrança, através de novas Transações, dentro da mesma Ordem de Pagamento.

Com este método é possível verificar todas as Ordens de Pagamento geradas para uma recorrência, bem como as Transações associadas a cada Ordem de Pagamento. A partir destes dados pode-se verificar se as cobranças foram efetuadas ou não, e por qual motivo.

Para listar as ordens de pagamento de uma recorrência, utilize o método /pre-approvals/{preApprovalCode}/payment-orders (veja a documentação)

URL: GET https://ws.pagseguro.uol.com.br/pre-approvals/{preApprovalCode}/payment-orders{autenticação}

O parâmetro {preApprovalCode} é o código da recorrência obtido no método /pre-approvals.

O retorno deste método pode ser paginado, verifique na referência da API os parâmetros de entrada.

O status da ordem de pagamento pode ser lido da seguinte forma:

Status Valor Descrição
1 Agendada A ordem de pagamento está aguardando a data agendada para processamento.
2 Processando A ordem de pagamento está sendo processada pelo sistema.
3 Não Processada A ordem de pagamento não pôde ser processada por alguma falha interna, a equipe do PagSeguro é notificada imediatamente assim que isso ocorre.
4 Suspensa A ordem de pagamento foi desconsiderada pois a recorrência estava suspensa na data agendada para processamento.
5 Paga A ordem de pagamento foi paga, ou seja, a última transação vinculada à ordem de pagamento foi paga.
6 Não Paga A ordem de pagamento não pôde ser paga, ou seja, nenhuma transação associada apresentou sucesso no pagamento.

O status da transação pode ser lido da seguinte forma:

Status Valor Descrição
1 Aguardando pagamento O comprador iniciou a transação, mas até o momento o PagSeguro não recebeu nenhuma informação sobre o pagamento.
2 Em análise O comprador optou por pagar com um cartão de crédito e o PagSeguro está analisando o risco da transação.
3 Paga A transação foi paga pelo comprador e o PagSeguro já recebeu uma confirmação da instituição financeira responsável pelo processamento.
4 Disponível A transação foi paga e chegou ao final de seu prazo de liberação sem ter sido retornada e sem que haja nenhuma disputa aberta.
5 Em disputa O comprador, dentro do prazo de liberação da transação, abriu uma disputa.
6 Devolvida O valor da transação foi devolvido para o comprador.
7 Cancelada A transação foi cancelada sem ter sido finalizada.

Retentativa de pagamento

Para uma Ordem de Pagamento que não tenha sido cobrada com sucesso, pode-se efetuar a retentativa de cobrança através deste serviço. Isto irá gerar uma nova Transação para esta Ordem de Pagamento.

Para efetuar a retentativa de cobrança, utilize o método /pre-approvals/{preApprovalCode}/payment-orders/{paymentOrderCode}/payment (veja a documentação)

URL: POST https://ws.pagseguro.uol.com.br/pre-approvals/{preApprovalCode}/payment-orders/{paymentOrderCode}/payment{autenticação}

O parâmetro {preApprovalCode} é o código da recorrência obtido no método /pre-approvals.

O parâmetro {paymentOrderCode} é o código da ordem de pagamento obtido no método /pre-approvals/{preApprovalCode}/payment-orders.

O método retorna o código da nova transação.

Consulta pelo código do Pagamento Recorrente

Esta consulta possibilita o acesso a todos os dados de uma recorrência a partir de seu código identificador.

Para recuperar os dados de uma recorrência, utilize o método /pre-approvals/{preApprovalCode} (veja a documentação).

URL: GET https://ws.pagseguro.uol.com.br/pre-approvals/{preApprovalCode}{autenticação}

O parâmetro {preApprovalCode} é o código da recorrência obtido no método /pre-approvals.

No retorno, o status da recorrência pode ser lido de acordo com a Tabela A.

Consulta por intervalo de datas

Esta consulta possibilita o acesso aos dados de todas as recorrências criadas dentro do intervalo de datas fornecido como parâmetro. Note que a consulta não retorna resultados para datas anteriores a 6 (seis) meses da data atual.

Para recuperar os dados das recorrências, utilize o método /pre-approvals (veja a documentação).

URL: GET https://ws.pagseguro.uol.com.br/pre-approvals{autenticação}

O retorno deste método pode ser paginado, verifique na referência da API os parâmetros de entrada.

No retorno, o status da recorrência pode ser lido de acordo com a Tabela A.

Consulta pelo código de notificação

A API de Notificações pode lhe enviar mensagens a cada mudança de status ocorrida em alguma recorrência.

Para consultar os dados da recorrência em questão, utilize o método /pre-approvals/notifications/{notificationCode}. (veja a documentação).

URL: GET https://ws.pagseguro.uol.com.br/pre-approvals/notifications/{notificationCode}{autenticação}

O parâmetro {notificationCode} é o código da notificação recebida.

No retorno, o status da recorrência pode ser lido de acordo com a Tabela A.

Consulta de notificações por intervalo de dias

A API de Notificações pode lhe enviar mensagens a cada mudança de status ocorrida em alguma recorrência.

Para consultar os dados de todas as recorrências que tiveram algum tipo de notificação dentro de um intervalo em dias, utilize o método /pre-approvals/notifications. (veja a documentação).

URL: GET https://ws.pagseguro.uol.com.br/pre-approvals/notifications/{autenticação}

O retorno deste método pode ser paginado, verifique na referência da API os parâmetros de entrada.

No retorno, o status da recorrência pode ser lido de acordo com a Tabela A.

Tabela A - Status da recorrência

Status Descrição
INITIATED O comprador iniciou o processo de pagamento, mas abandonou o checkout e não concluiu a compra.
PENDING O processo de pagamento foi concluído e transação está em análise ou aguardando a confirmação da operadora.
ACTIVE A criação da recorrência, transação validadora ou transação recorrente foi aprovada.
PAYMENT_METHOD_CHANGE Uma transação retornou como "Cartão Expirado, Cancelado ou Bloqueado" e o cartão da recorrência precisa ser substituído pelo comprador.
SUSPENDED A recorrência foi suspensa pelo vendedor.
CANCELLED A criação da recorrência foi cancelada pelo PagSeguro.
CANCELLED_BY_RECEIVER A recorrência foi cancelada a pedido do vendedor.
CANCELLED_BY_SENDER A recorrência foi cancelada a pedido do comprador.
EXPIRED A recorrência expirou por atingir a data limite da vigência ou por ter atingido o valor máximo de cobrança definido na cobrança do plano.

Tabela B - Listagem de erros

Código de erro Mensagem
10003 Email invalid value.
10005 The accounts of the vendor and buyer can not be related to each other.
10009 Method of payment currently unavailable.
10020 Invalid payment method.
10021 Error fetching vendor data from the system.
10023 Payment Method unavailable.
10024 Unregistered buyer is not allowed.
10025 senderName cannot be blank.
10026 senderEmail cannot be blank.
10049 senderName mandatory.
10050 senderEmail mandatory.
11002 receiverEmail invalid length: {0}
11006 redirectURL invalid length: {0}
11007 redirectURL invalid value: {0}
11008 reference invalid length: {0}
11013 senderAreaCode invalid value: {0}
11014 senderPhone invalid value: {0}
11027 Item quantity out of range: {0}
11028 Item amount is required. (e.g. "12.00")
11040 maxAge invalid pattern: {0}. Must be an integer.
11041 maxAge out of range: {0}
11042 maxUses invalid pattern: {0}. Must be an integer.
11043 maxUses out of range: {0}
11054 abandonURL/reviewURL invalid length: {0}
11055 abandonURL/reviewURL invalid value: {0}
11071 preApprovalInitialDate invalid value.
11072 preApprovalFinalDate invalid value.
11084 seller has no credit card payment option.
11101 preApproval data is required.
11163 You must configure a transactions notifications (Notificação de Transações) URL before using this service.
11211 pre-approval cannot be paid twice on the same day.
13005 initialDate must be lower than allowed limit.
13006 initialDate must not be older than 180 days.
13007 initialDate must be lower than or equal finalDate.
13008 search interval must be lower than or equal 30 days.
13009 finalDate must be lower than allowed limit.
13010 initialDate invalid format use 'yyyy-MM-ddTHH:mm' (eg. 2010-01-27T17:25).
13011 finalDate invalid format use 'yyyy-MM-ddTHH:mm' (eg. 2010-01-27T17:25).
13013 page invalid value.
13014 maxPageResults invalid value (must be between 1 and 1000).
13017 initialDate and finalDate are required on searching by interval.
13018 interval must be between 1 and 30.
13019 notification interval is required.
13020 page is greater than the total number of pages returned.
13023 Invalid minimum reference length (1-255)
13024 Invalid maximum reference length (1-255)
17008 pre-approval not found.
17022 invalid pre-approval status to execute the requested operation. Pre-approval status is {0}.
17023 seller has no credit card payment option.
17024 pre-approval is not allowed for this seller {0}
17032 invalid receiver for checkout: {0} verify receiver's account status and if it is a seller's account.
17033 preApproval.paymentMethod isn't {0} must be the same from pre-approval.
17035 Due days format is invalid: {0}.
17036 Due days value is invalid: {0}. Any value from 1 to 120 is allowed.
17037 Due days must be smaller than expiration days.
17038 Expiration days format is invalid: {0}.
17039 Expiration value is invalid: {0}. Any value from 1 to 120 is allowed.
17061 Plan not found.
17063 Hash is mandatory.
17065 Documents required.
17066 Invalid document quantity.
17067 Payment method type is mandatory.
17068 Payment method type is invalid.
17069 Phone is mandatory.
17070 Address is mandatory.
17071 Sender is mandatory.
17072 Payment method is mandatory.
17073 Credit card is mandatory.
17074 Credit card holder is mandatory.
17075 Credit card token is invalid.
17078 Expiration date reached.
17079 Use limit exceeded.
17080 Pre-approval is suspended.
17081 pre-approval payment order not found.
17082 invalid pre-approval payment order status to execute the requested operation. Pre-approval payment order status is {0}.
17083 Pre-approval is already {0}.
17093 Sender hash or IP is required.
17094 There can be no new subscriptions to an inactive plan.
19001 postalCode invalid Value: {0}
19002 addressStreet invalid length: {0}
19003 addressNumber invalid length: {0}
19004 addressComplement invalid length: {0}
19005 addressDistrict invalid length: {0}
19006 addressCity invalid length: {0}
19007 addressState invalid value: {0} must fit the pattern: \w{2} (e. g. "SP")
19008 addressCountry invalid length: {0}
19014 senderPhone invalid value: {0}
19015 addressCountry invalid pattern: {0}
50103 postal code can not be empty
50105 address number can not be empty
50106 address district can not be empty
50107 address country can not be empty
50108 address city can not be empty
50131 The IP address does not follow a valid pattern
50134 address street can not be empty
53037 credit card token is required.
53042 credit card holder name is required.
53047 credit card holder birthdate is required.
53048 credit card holder birthdate invalid value: {0}
53151 Discount value cannot be blank.
53152 Discount value out of range. For DISCOUNT_PERCENT type the value must be greater than or equal to 0.00 and less than or equal to 100.00.
53153 not found next payment for this preApproval.
53154 Status cannot be blank.
53155 Discount type is mandatory.
53156 Discount type invalid value. Valid values are: DISCOUNT_AMOUNT and DISCOUNT_PERCENT.
53157 Discount value out of range. For DISCOUNT_AMOUNT type the value must be greater than or equal to 0.00 and less than or equal to the maximum amount of the corresponding payment.
53158 Discount value is mandatory.
57038 address state is required.
61007 document type is required.
61008 document type is invalid: {0}
61009 document value is required.
61010 document value is invalid: {0}
61011 cpf is invalid: {0}
61012 cnpj is invalid: {0}