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.
###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
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
###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.
###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]