Pagsmile PT
  • Introdução
  • Referência
  • API Payin
    • Ambientes
    • Checkout All-In-One
      • Checkout Page (Geral)
      • Página de Checkout (E-com)
    • Integração direta
      • Brasil
        • Cartão de crédito
        • Pix
        • Lotérica
        • Boleto
        • Depósito Express
        • Carteira
      • México
        • SPEI
        • CoDi
        • OXXO
        • OXXOPay
        • Dinheiro
        • Carteira
      • Colombia
        • PSE
        • Efecty
        • SuRed
        • Gana
        • Baloto
        • Carteira
      • Chile
        • Khipu
        • Transferência bancária
        • Carteira
      • Peru
        • Pagoefectivo
        • Transferência bancária
        • Dinheiro
      • Equador
        • Transferência bancária
        • Dinheiro
      • Guatemala
        • Transferência bancária
        • Dinheiro
      • Costa Rica
        • Transferência bancária
        • Dinheiro
      • Panamá
        • Dinheiro
      • El Salvador
        • Dinheiro
      • Rússia
        • Carteira
      • Arábia Saudita
        • Credit Card
      • Kuwait
        • Cartão de crédito
      • Qatar
        • Cartão de crédito
      • Omã
        • Cartão de crédito
      • Emirados Árabes Unidos
        • Cartão de crédito
      • Bahrein
        • Cartão de crédito
    • Notificação
      • Segurança
    • Pagamento periódicos
    • Detalhes Payin
    • Reembolso
    • Plug-in & Ferramentas
      • Pagsmile JavaScript
      • Pagsmile SDK
      • Lista de Bancos Suportados
      • Consulta de detalhes de parcelamento
    • Dados
      • Método de Pagamento
      • Dados para teste (Sandbox)
      • Status Payin
      • Lista de Bancos
        • Bancos Chile
        • Bancos Peru
        • Bancos Equador
        • Bancos Panamá
        • Bancos Costa Rica
        • Bancos El Salvador
        • Bancos Guatemala
      • Ícone dos métodos
    • Código API
  • API Payout
    • Ambientes
    • Segurança
    • Criar um payout
      • Carteira Pagsmile
        • Exemplo WebView
        • Autorização H5
        • Autorização de App nativo
        • Enviar prêmios
      • PayPal
        • Países suportados
      • Brasil
        • Pix
        • Transferência bancária
      • México
        • SPEI
      • Chile
        • Carteira
        • Transferência bancária
      • Colômbia
        • Carteira
        • Transferência bancária
      • Peru
        • Transferência bancária
        • Regiões no Peru
      • Equador
        • Transferência bancária
    • Notificação
    • Payout DryRun
    • Página de Checkout
    • Saldo da Conta
    • Status do Payout
    • Lista de Payout
    • Detalhes do Payout
    • Método de pagamento
    • Dados para teste
    • Código do Banco
      • Bancos Brasil
      • Bancos Chile
      • Bancos Colômbia
      • Bancos Equador
      • Bancos México
      • Bancos Peru
    • Código API
  • Outros
    • Changelog
Powered by GitBook
On this page
  • Notificação
  • Eventos
  • Verificação de assinaturas (opcional)
  • Exemplo de Notificação
  • Lista de IPs de Notificação
  1. API Payin

Notificação

IPN (Instant Payment Notification) é uma notificação enviada de um servidor para outro através de um pedido POST HTTP informando suas transações.

Para receber notificações sobre os eventos em sua plataforma, você tem que configurar previamente a notificação ao fazer o POST do pagamento, indicando a URL no campo notify_url.

Notificação

POST $notify_url que é definido ao submeter a transação de payin.

Parâmetros de Notificação

Headers

Name
Type
Description

Content-Type*

String

application/json

Pagsmile-Signature*

String

t=$timestamp,v2=HMAC SHA256($RequestBody)

Request Body

Name
Type
Description

trade_no*

String

ID da transação Pagsmile

out_trade_no*

String

merchant out_trade_no

out_request_no

String

ID da transação de reembolso Pagsmile. Somente para pedido de reembolso

app_id*

String

trade_status*

String

trade status.

amount*

String

method*

String

currency*

String

timestamp*

String

success

Eventos

Sempre que um evento ocorrer, nós enviaremos uma notificação em formato json usando o HTTP POST para a URL que você especificou.

Iremos notificar os seguintes eventos:

Ação
Descrição

PROCESSING

O usuário enviou as informações de pagamento

SUCCESS

Transação bem sucedida

CANCEL

Transação cancelada

RISK_CONTROLLING

Transação é considerada de alto risco ou não há informações claras para a cobrança

DISPUTE

Transação está em disputa

REFUSED

Transação foi recusada

REFUNDED

transação foi reembolsada

CHARGEBACK

Ocorreu o estorno

CHARGEBACK_REVERSED

Estorno revertido

A Pagsmile enviará notificações com o seguinte cronograma de novas tentativas e confirmação aguardando os horários. Você deve retornar um HTTP STATUS 200 (OK) com dados de resposta "sucesso" antes que o tempo correspondente expire. Caso contrário, será assumido que você não recebeu os dados corretamente e será notificado novamente.

Recomenda-se que você responda à notificação antes de executar a regra de negocio ou antes de acessar recursos externos, para não exceder os tempos de resposta estimados.

Esta comunicação é exclusivamente entre os servidores da Pagsmile e seu servidor, de modo que não haverá um usuário físico vendo qualquer tipo de resultado.

Evento
Tempo após o primeiro envio

Envio

-

1ª tentativa

10 minutos

2ª tentativa

30 minutos

3ª tentativa

60 minutos

4ª tentativa

120 minutos

5ª tentativa

360 minutos

6ª tentativa

840 minutos

Verificação de assinaturas (opcional)

O conteúdo aproximado do cabeçalho Pagsmile-Signature é o seguinte (aqui com quebras de linha para fácil visualização, o conteúdo real está todo em uma linha):

Pagsmile-Signature:
t=1577808000,
v2=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd

O cabeçalho Pagsmile-Signature contém um timestamp e uma assinatura. O timestamp é prefixado por t=, seguido por um timestamp UNIX; a assinatura é prefixada por v2=, seguido pelo conteúdo da assinatura.

Etapa 1 : Extrair o timestamp e as assinaturas do cabeçalho

Divida o cabeçalho usando o caracter [,] como separador, para obter uma lista de elementos. Em seguida, dividir cada elemento usando o caractere [=] como separador, para obter um prefixo e um par de valores.

O valor para o prefixo [t] corresponde ao timestamp, e [v2] corresponde à assinatura. Você pode descartar todos os outros elementos.

Etapa 2 : Preparar a string RequestBody original

Obtenha todo o conteúdo no RequestBody. Por favor, não utilize a estrutura autoconstruída do programa para formatar e/ou seriar o conteúdo do RequestBody.. Se você tiver requisitos semelhantes, por favor, faça após obter os dados originais para verificação para evitar a ordenação desnecessária de campos e a adição de caracteres afeta a assinatura.

Etapa 3 : Determinar a assinatura esperada

Calcule um HMAC com a função hash SHA256. Use o SecretKey get do dashboard do comerciante como a chave (salt), e use a string RequestBody original como a mensagem.

Etapa 4 : Compare as assinaturas

Compare a assinatura no cabeçalho com a assinatura esperada. Para uma correspondência de igualdade, calcule a diferença entre o timestamp atual e o timestamp recebido, depois decida se a diferença está dentro de sua tolerância.

Exemplo de Notificação

A seguinte notificação é apenas um exemplo. Métodos diferentes podem ter mais ou menos parâmetros na notificação real. Por favor, consulte o que você recebeu ao testar.

Content-Type: application/json
Method: POST
Header: t=1645516741, v2=f6e345eca80d74c470ba456b7b559046f22b49fcaad9b81938ff1488b0f497ac
Body:
  {
    "amount":"12.01",
    "out_trade_no":"202201010354002",
    "method":"Boleto",
    "trade_status":"SUCCESS",
    "trade_no":"2022022201111100011",
    "currency":"BRL",
    "out_request_no":"",
    "app_id":"162************38",
    "timestamp":"1645516741",
    "user":{
      "buyer_id":"",
      "identify":{
        "type":"CPF",
        "number":"50284414727"
      },
      "name":"test user name",
      "phone":"75991435892",
      "email":"test@pagsmile.com"
    },
    "card":{
      "card_no":""
    }
  }

Lista de IPs de Notificação

  • 13.56.110.186

Nossas notificações serão enviadas a partir destes endereços IP, favor adicioná-los à sua lista branca.

PreviousCartão de créditoNextSegurança

Last updated 2 years ago