Transfersmile PTTransfersmile PT
  • EN
  • PT
  • ES
  • EN
  • PT
  • ES
  • Introdução
  • API Payin
    • Ambientes
    • Integração direta
      • Brasil
        • Cartão de crédito
        • Pix
        • Lotérica
        • Boleto
        • Depósito Express
        • Carteira
    • Notificação
      • Segurança
    • Detalhes Payin
    • Reembolso
    • Plug-in & Ferramentas
      • transfersmile JavaScript
      • transfersmile SDK
      • Lista de Bancos Suportados
      • Consulta de detalhes de parcelamento
    • Dados
      • Método de Pagamento
      • Dados para teste (Sandbox)
      • Status Payin
      • Lista de Bancos
      • Ícone dos métodos
    • Código API
  • API Payout
    • Ambientes
    • Segurança
    • Criar um payout
      • Carteira transfersmile
        • Exemplo WebView
        • Autorização H5
        • Autorização de App nativo
        • Enviar prêmios
      • Brasil
        • Pix
        • Transferência bancária
    • Notificação
    • Payout DryRun
    • 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
    • Código API

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.

Post Notificação

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

Parâmetros de Notificação

Parameters

Header

Content-Type*stringapplication/json
transfersmile-Signature*stringt=$timestamp,v2=HMAC SHA256($RequestBody)

Body

trade_no*ID da transação transfersmile
out_trade_no*merchant out_trade_no
out_request_noID da transação de reembolso transfersmile. Somente para pedido de reembolso
app_id*
trade_status*trade status.
amount*
method*
currency*
timestamp*

Responses

200:OKMerchant process the callback, and response "success"
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çãoDescrição
PROCESSINGO usuário enviou as informações de pagamento
SUCCESSTransação bem sucedida
CANCELTransação cancelada
RISK_CONTROLLINGTransação é considerada de alto risco ou não há informações claras para a cobrança
DISPUTETransação está em disputa
REFUSEDTransação foi recusada
REFUNDEDtransação foi reembolsada
CHARGEBACKOcorreu o estorno
CHARGEBACK_REVERSEDEstorno revertido

A transfersmile 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 transfersmile e seu servidor, de modo que não haverá um usuário físico vendo qualquer tipo de resultado.

EventoTempo após o primeiro envio
Envio-
1ª tentativa10 minutos
2ª tentativa30 minutos
3ª tentativa60 minutos
4ª tentativa120 minutos
5ª tentativa360 minutos
6ª tentativa840 minutos

Verificação de assinaturas (opcional)

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

transfersmile-Signature:

t=1577808000,

v2=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd

O cabeçalho transfersmile-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

Tips

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":"[email protected]"
      },
      "card":{
        "card_no":""
      }
    }
}

Lista de IPs de Notificação

  • 13.56.110.186

Warning

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

Prev
Integração direta
Next
Detalhes Payin