Home - POPRecarga/Br-PartnerAPI GitHub Wiki

#Links Rapidos


#COMO USAR

Se você precisa de um novo método de pagamento para seu site, a InPDV te oferece a possibilidade de adicionar o POP Recarga como um método de pagamento para aqueles que não possuem cartão de credito ou conta em banco. Eles compram crédito em nossos pontos de venda, e usam esses créditos para comprar em seu site.

##1.Autenticação

Existem 3 etapas simples para realizar sua primeira chamada na nossa API REST.

###1.1.Criar uma Aplicação Peça seu ''client_id'' e ''client_secret'' para o time InPDV([email protected]), ou use nossa Loja de Exemplo para testar as chamadas na nossa API.

###1.2.Obter um token de acesso Antes de sua aplicação ser capaz de acessar a parte privada de nossa API, ela precisa obter um Token de Acesso. Para fazer isso, basta realizar um HTTP Basic Authentication no caminho /token usando o seu client_id e secret incluindo a chave grant_type predefinido como client_credentials no corpo da requisição. Nosso servidor de autorização vai responder sua chamada com um Token de Acesso. O Tipo especifico de Token que a InPDV fornece é chamado de “Bearer Token”.

Abaixo temos uma requisição POST exemplificando como obter o token de acesso:

POST /token HTTP/1.1
Host: api.sandbox.inpdv.com.br
content-type: application/x-www-form-urlencoded;charset=utf-8
Content-Length: 71

grant_type=client_credentials&client_id=3&client_secret=3333

O corpo da requisição está todo em uma linha. No entanto, quebras de linha foram adicionadas para tornar os exemplos mais fáceis de ler.

POST /token HTTP/1.1
Host: api.sandbox.inpdv.com.br 
content-type: application/x-www-form-urlencoded;charset=utf-8
Content-Length: 71

grant_type=client_credentials
&client_id=3
&client_secret=3333

Abaixo temos um exemplo de resposta da amostra:

HTTP/1.1 200 OK
 
{
    "access_token":"BNACateSkXmuLt5wKCp2PktcYYMRH5zZtugL0L4WeCpu1079Am…",
    "token_type":"bearer",
    "expires_in":3599
}

###1.3.Fazer uma chamada na API

Depois de ter seu token de acesso, você estará pronto para começar a fazer suas chamadas. Aqui está uma simples chamada para testar a nossa API usando apenas algumas informações.

GET /users/me HTTP/1.1
Host: api.sandbox.inpdv.com.br 
Authorization: Bearer BNACateSkXmuLt5wKCp2PktcYYMRH5zZtugL0L4WeCpu1079Am…

Abaixo temos um exemplo de resposta da amostra:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
    "identifier":"MyUserName",
    "links":[]
}

Os tokens de acesso emitidos pelo InPDV podem ser usados ​​para acessar todos os endpoints da REST API e tem uma vida útil limitada. Você deve escrever um código para detectar quando um token de acesso expira. Você pode fazer isso mantendo o controle do valor 'expires_in' (retornado como um valor em segundos) na solicitação do token, ou tratando a resposta de erro (401 Unauthorized) do ponto de extremidade da API quando um token expirado é usado.







##2.Pagamento Unico

O pagamento único envolve três etapas:

I.Passar informações para criar um pagamento: Primeiro colete detalhes de pagamento do usuário e passe-os para o InPDV. Com essas informações criaremos uma transação pendente que precisa da aprovação do usuário.

II.Aprovação de pagamento: O usuário deve aprovar o pagamento antes que você possa executar e concluir a venda. Para isso, o usuário deve fornecer uma OTP(senha única).

III.Executar o pagamento: Quando o usuário aprova o pagamento, você pode então executá-lo e completá-lo.

Para todas as formas de pagamentos usando POP Recarga, o usuário deve ativar sua conta anteriormente. Se o usuário ainda não estiver ativo, ele terminará a ordem ao concluir o registro.

Fluxogram

###2.1.Fazer seu Primeiro Pagamento

Há três etapas simples para fazer seu primeiro pagamento usando a Integração de API - Chamada de Token de SMS.

####2.1.1.CRIAR PAGAMENTO

Para criar uma transação de pagamento, você deve fazer uma solicitação POST no recurso /payments.

O seguinte é um exemplo de solicitação POST para criar uma transação de pagamento.

POST /payments HTTP/1.1
Host: api.sandbox.inpdv.com.br 
Content-Type: application/json; charset=utf-8
Authorization: Bearer BNACateSkXmuLt5wKCp2PktcYYMRH5zZtugL0L4WeCpu1079Am…
Content-Length: 190

{
    "brandId": 1,
    "identifier": "+5511XXXXXXXXX",
    "transaction": {
        "amount": 1.99,
        "currencyCode": "BRL",
        "description": "Product X",
        "referralCode": "a48s4d87g8a9d5v8h4k4az48f4"  
    }
}

Obs:Os parâmetros "brandId", "currencyCode" e "referralCode" são opcionais.

Obs2:O parâmetro "identifier" é um número de telefone do usuário no formato E.164. Por exemplo, +5511999999999

Obs3:A API da InPDV cria seus próprios transactionIds, se você quiser manter o controle dos ids gerados pelo seu aplicativo, pode usar o parâmetro _ "referralCode" _

Abaixo temos um exemplo de resposta da amostra:

HTTP/1.1 201 Created
Content-Type: application/json; charset=utf-8

{
   "id":"5578a3ae-ee7f-4ed8-9e56-529da9f263d8",
   "links":[
   {
       "href":"https://api.sandbox.inpdv.com.br/payments/5578a3ae-ee7f-4ed8-9e56-529da9f263d8",
       "rel":"Self",
       "method":"Get"
   },
   {
       "href":"https://api.sandbox.inpdv.com.br/payments/5578a3ae-ee7f-4ed8-9e56-529da9f263d8/token/{token-value}",
       "rel":"Approval",
       "method":"Put"
   },
   {
       "href":" https://api.sandbox.inpdv.com.br/payments/5578a3ae-ee7f-4ed8-9e56-529da9f263d8/cancel",
       "rel":"Cancel",
       "method":"Put"
   }]
}

Obs: A resposta da operação de criar pagamento tem todos os links que você precisa para obter aprovação ou cancelar a transação especificada.

####2.1.2.APROVAR PAGAMENTO

Para aprovar uma transação de pagamento, você deve fazer uma solicitação PUT no recurso /payments/{transactionId}/token/{token}, onde {transactionId} é o identificador de uma transação previamente criada e {token} é o valor alfanumérico(OTP) enviado ao usuário

The following is a PUT request example to approve a payment:

PUT /payments/5578a3ae-ee7f-4ed8-9e56-529da9f263d8/token/{token} HTTP/1.1
Host: api.sandbox.inpdv.com.br 
Content-Type: application/json; charset=utf-8
Authorization: Bearer BNACateSkXmuLt5wKCp2PktcYYMRH5zZtugL0L4WeCpu1079Am…

Abaixo temos um exemplo de resposta da amostra:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
 
{
    "id":"0cf4e997-2c5d-4bf3-8238-1c4915c5cada",
    "links":[
    {
        "href":"https://api.sandbox.inpdv.com.br/payments/0cf4e997-2c5d-4bf3-8238-1c4915c5cada",
        "rel":"Self",
        "method":"Get"
    },
    {
        "href":"https://api.sandbox.inpdv.com.br/payments/0cf4e997-2c5d-4bf3-8238-1c4915c5cada/execute",
        "rel":"Execute",
        "method":"Put"
    },
    {
        "href":"https://api.sandbox.inpdv.com.br/payments/0cf4e997-2c5d-4bf3-8238-1c4915c5cada/cancel",
        "rel":"Cancel",
        "method":"Put"
    }]
}

Obs: A resposta tem todos os links que você precisa para executar, cancelar ou obter a transação especificada.

####2.1.3.CANCELAR PAGAMENTO Para cancelar um pagamento, você deve fazer um pedido PUT no recurso /payments/{transactionId}/cancel , onde {transactionId} é o identificador de uma transação de pagamento previamente criada ou aprovada.

O seguinte é um exemplo de requisição PUT para cancelar um pagamento:

PUT /payments/5578a3ae-ee7f-4ed8-9e56-529da9f263d8/cancel HTTP/1.1
Host: sandbox.api.sandbox.inpdv.com.br 
Content-Type: application/json; charset=utf-8
Authorization: Bearer BNACateSkXmuLt5wKCp2PktcYYMRH5zZtugL0L4WeCpu1079Am…

Obs: O pagamento será cancelado caso não tenha sido previamente executado. Você pode cancelar as transações de pagamento já criadas ou aprovadas.

Obs2: Todas as transações pendentes de aprovação ou execução são automaticamente canceladas após um intervalo.

Abaixo temos um exemplo de resposta da amostra:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
 
{
    "id":"0cf4e997-2c5d-4bf3-8238-1c4915c5cada",
    "links":[
    {
        "href":"https://sandbox.api.sandbox.inpdv.com.br/payments/5578a3ae-ee7f-4ed8-9e56-529da9f263d8",
        "rel":"Self",
        "method":"Get"
    }]}

Obs: A resposta tem apenas um link do qual você pode obter a transação especificada.

####2.1.4.EXECUTAR PAGAMENTO

Para executar um pagamento, você deve fazer uma requisição PUT no recurso /payments/{transactionId}/execute , onde {transactionId} é o identificador de uma transação de pagamento previamente criada e aprovada.

O seguinte é um exemplo de solicitação PUT para executar um pagamento:

PUT /payments/5578a3ae-ee7f-4ed8-9e56-529da9f263d8/execute HTTP/1.1
Host: api.sandbox.inpdv.com.br 
Content-Type: application/json; charset=utf-8
Authorization: Bearer BNACateSkXmuLt5wKCp2PktcYYMRH5zZtugL0L4WeCpu1079Am…

Abaixo temos um exemplo de resposta da amostra:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8 

{
    "id":"0cf4e997-2c5d-4bf3-8238-1c4915c5cada",
    "links":[
    {
        "href":"https://api.sandbox.inpdv.com.br/payments/5578a3ae-ee7f-4ed8-9e56-529da9f263d8",
        "rel":"Self",
        "method":"Get"
    }]
}

Obs: A resposta tem apenas um link que você pode obter a transação especificada.







##3.Pagamento Recorrente

###3.1.Obtendo o Token de Recorrência

Para fazer um pagamento recorrente, primeiro você deve autenticar a relação entre seu aplicativo e o cliente. Este é um processo de duas etapas e sua aplicação deve ter permissões de pagamentos recorrentes:

AUTENTICAÇÃO

Primeiro colete o identificador do usuário e o passe para a API.

O seguinte é um exemplo de requisição PUT para gerar uma autenticação OTPassword para o usuário.

PUT /recurring/+5511XXXXXXXXX HTTP/1.1
Host: api.sandbox.inpdv.com.br 
Content-Type: application/json; charset=utf-8
Authorization: Bearer BNACateSkXmuLt5wKCp2PktcYYMRH5zZtugL0L4WeCpu1079Am…

A resposta esperada é:

HTTP/1.1 200 OK

Authentication Fluxogram

AUTORIZAÇÃO

Após a solicitação de autenticação, você precisa coletar a senha única do cliente para autorizar e gerar um token recorrente para sua aplicação

O seguinte é um exemplo de requisição POST para autorizar sua aplicação e obter o token recorrente.

POST /recurring/authorize/+5511XXXXXXXXX HTTP/1.1
Host: api.sandbox.inpdv.com.br 
Content-Type: application/json; charset=utf-8
Authorization: Bearer BNACateSkXmuLt5wKCp2PktcYYMRH5zZtugL0L4WeCpu1079Am…
Content-Length: 8

“ClientOTP”

Obs: “ClientOTP” deve ser passado diretamente no corpo da requisição

Abaixo temos um exemplo de resposta da amostra:

HTTP/1.1 200 OK
Content-Length: 130
Content-Type: application/json; charset=utf-8
… 
  
"2348f9d3e20f29f7cf0a964dd2d3edb359c86f497f8b12f13b6e5c9a8c3be374c491afa7f516c13629a47c2e03ce93d3392beab3a2e5a7150b7776fb9f3722f0"

Obs: O recurringToken do usuário deve ser repassado sempre que você quiser fazer um pagamento recorrente

Authentication Fluxogram

###3.2.Pagamento usando o Token de Recorrência

Tendo o Token recorrente do usuário, fazer e executar um pagamento tornam-se simples, tudo o que você precisa fazer é passar as informações de compra e o token recorrente para a nossa API.

PAGAMENTO

O POST a seguir é um exemplo de requisição para criar e executar um novo pagamento usando o método recorrente.

POST /recurring/payment HTTP/1.1
Host: api.sandbox.inpdv.com.br 
Content-Type: application/json; charset=utf-8
Authorization: Bearer BNACateSkXmuLt5wKCp2PktcYYMRH5zZtugL0L4WeCpu1079Am…
  
{
    “brandId”: 1,
    “identifier”: “+5511XXXXXXXXX”,
    “recurringToken”: “185ac379da056f769ab594b77f143c0083916388dcdd14746…”,
    “transaction”: 
    {
        “amount”: 1.99,
        “currencyCode”: “BRL”,
        “description”: “Product X”
    }
}

Obs:Os parâmetros "brandId" e "currencyCode" são opcionais. Obs2:O parâmetro "identifier" é um número de telefone do usuário no formato E.164. Por exemplo, +5511999999999

Abaixo temos um exemplo de resposta da amostra:

HTTP/1.1 201 Created
Content-Type: application/json; charset=utf-8
 
{
    "id":"0cf4e997-2c5d-4bf3-8238-1c4915c5cada",
    "links":[
    {
        "href":"https://api.sandbox.inpdv.com.br/payments/5578a3ae-ee7f-4ed8-9e56-529da9f263d8",
        "rel":"Self",
        "method":"Get"
    }]
}

A resposta do pagamento recorrente tem apenas um link onde você pode obter a transação especificada.

Authentication Fluxogram

###3.3.Cancelando um Token de Recorrência

Se, por algum motivo, o cliente ou o aplicativo precisar terminar o relacionamento recorrente, tudo o que você precisa fazer é fazer um único pedido PUT. Uma vez que o Token de Recorrência é cancelado, ele não pode mais ser usado, mas se você quiser, você pode criar um novo refazendo o [processo 3.1] (#31obtendo-o-token-de-recorrência)

PUT /recurring/cancel/+5531XXXXXXXXX HTTP/1.1
Host: api.sandbox.inpdv.com.br 
Authorization: Bearer BNACateSkXmuLt5wKCp2PktcYYMRH5zZtugL0L4WeCpu1079Am…
  

A resposta esperada é:

HTTP/1.1 200 OK







##4.Estornos

Para executar um estorno, você deve fazer uma requisição GET no recurso /chargebacks/{transactionId} , onde {transactionId} é o identificador de uma transação executada anteriormente.

O seguinte é um exemplo de requisição GET para executar um estorno.

GET /chargebacks/5578a3ae-ee7f-4ed8-9e56-529da9f263d8 HTTP/1.1
Host: api.sandbox.inpdv.com.br 
Content-Type: application/json; charset=utf-8
Authorization: Bearer BNACateSkXmuLt5wKCp2PktcYYMRH5zZtugL0L4WeCpu1079Am…

Estorno Parcial

Você também pode executar um estorno parcial. O pedido é muito semelhante, mas você precisa informar para nossa API o valor que você deseja estornar:

PUT /chargebacks/5578a3ae-ee7f-4ed8-9e56-529da9f263d8/partial HTTP/1.1
Host: api.sandbox.inpdv.com.br
Content-Type: application/json; charset=utf-8
Authorization: Bearer BNACateSkXmuLt5wKCp2PktcYYMRH5zZtugL0L4WeCpu1079Am…

"25.52"

A mesma transação pode ter qualquer número de estornos parciais que você desejar, mas a soma de seus valores deve ser igual ou inferior à transação original.




#REFERENCIA DE RECURSOS DA API Para os recursos abaixo, use como base a API https://api.sandbox.inpdv.com.br

##1.Autenticação

Método Recurso Notas
POST /token Recupera um token de acesso para usar o sistema
Para mais exemplos de autenticação clique aqui

##2.Pagamento

Somente usuários autenticados podem fazer isso.

Método Recurso Notas
POST /payments Cria um novo pagamento no sistema.
PUT /payments/{transactionId}/execute Executa a transação especificada.
GET /payments/{transactionId}/token/ Reenvie um novo token para uma transação especificada.
PUT /payments/{transactionId}/token/{token} Autorize a transação especificada usando token especificado.
GET /payments/{transactionId} Recuperar detalhes da transação de pagamento.
PUT /payments/{transactionId}/cancel Cancela a transação não executada. Apenas as transações pendentes, autorizadas e inativas podem ser canceladas.
Para obter mais exemplos de pagamento clique aqui

##3.Recorrência

Somente usuários especialmente autenticados podem fazer isso.

Método Recurso Notas
PUT /recurring/{identifier} Gera um OTPassword para o cliente.
POST /recurring/authorize/{identifier} Autorize sua aplicação a usar OCTB com o recurringToken do usuário.
POST /recurring/payment Cria e executa um pagamento aprovado no sistema.
PUT /recurring/cancel/{identifier} Cancela o token de relação OCTB.
Para mais exemplos de recorrência clique aqui

##4.Estorno

Somente usuários autenticados podem fazer isso.

Método Recurso Notas
GET /chargebacks/{transactionId} Executa o estorno da transação.
PUT /chargebacks/{transactionId}/partial Executa o estorno parcial.
Para mais exemplo de estorno clique aqui

#Contato [email protected]

⚠️ **GitHub.com Fallback** ⚠️