Exemplos_Pagamentos - POPRecarga/Br-PartnerAPI GitHub Wiki
#Pagamento Somente o usuários autenticados podem fazer isso.
Método | Recurso | Notas |
---|---|---|
POST | /payments | Cria um novo pagamento no sistema. |
GET | /payments/{transactionId} | Recupera detalhes da transação de pagamento. |
GET | /payments/{transactionId}/token/ | Reenvia um novo token para a transação especificada. |
PUT | /payments/{transactionId}/token/{token} | Autoriza a transação especificada usando token especificado. |
PUT | /payments/{transactionId}/execute | Executa a transação especificada. |
PUT | /payments/{transactionId}/cancel | Cancela transação não executada. Apenas as transações pendentes, autorizadas e inativas podem ser canceladas. |
Requisição POST valida no recurso /payments:
POST /payments HTTP/1.1
Host: api.sandbox.inpdv.com.br
Content-Type: application/json; charset=utf-8
Authorization: Bearer oHPBScnPNxJYRe7f9jtvHsSk627_CGzkgGi-f…
Content-Length: 187
{
"brandId": 1,
"identifier": "+5511XXXXXXXXX",
"transaction": {
"amount": 1.99,
"currencyCode": "BRL",
"description": "Product X",
"referralCode": "a48s4d87g8a9d5v8h4k4az48f4"
}
}
Requisição GET valida no recurso /payments/{transaction}:
GET /payments/96af9850-bdbb-42c0-95c3-cb6a5a3178ae HTTP/1.1
Host: api.sandbox.inpdv.com.br
Content-Type: application/json; charset=utf-8
Authorization: Bearer oHPBScnPNxJYRe7f9jtvHsSk627_3ap7ISSw…
Requisição GET no recurso /payments/{transaction}/token:
GET /payments/96af9850-bdbb-42c0-95c3-cb6a5a3178ae/token HTTP/1.1
Host: api.sandbox.inpdv.com.br
Content-Type: application/json; charset=utf-8
Authorization: Bearer oHPBScnPNxJYRe7f9jtvHsSk627_CGzkgGi-fscDRE…
Requisição PUT valida no recurso /payments/{transaction}/token/{token}:
GET /payments/96af9850-bdbb-42c0-95c3-cb6a5a3178ae/token/648741 HTTP/1.1
Host: api.sandbox.inpdv.com.br
Content-Type: application/json; charset=utf-8
Authorization: Bearer oHPBScnPNxJYRe7f9jtvHsSk627_CGzkgGi-fscDRE…
Requisição PUT valida no recurso /payments/{transaction}/execute:
PUT /payments/0972741f-7aa1-47b8-a1aa-8774c7031c1c/execute HTTP/1.1
Host: api.sandbox.inpdv.com.br
Content-Type: application/json; charset=utf-8
Authorization: Bearer oHPBScnPNxJYRe7f9jtvHsSk627_CGzkgGi-fscDRE…
Requisição PUT no recurso /payments/{transaction}/cancel:
PUT /payments/a48bfd6b-c671-4354-9cb9-49bcf196faf9/cancel HTTP/1.1
Host: api.sandbox.inpdv.com.br
Content-Type: application/json; charset=utf-8
Authorization: Bearer oHPBScnPNxJYRe7f9jtvHsSk627_CGzkgGi-fRWRRjH8v…
Resposta de sucesso vinda do recurso /payments:
HTTP/1.1 201 Created
Content-Length: 474
{
"id":"4e319e3d-07f7-4181-9403-0505f01fd2cc",
"status":"Pending",
"amount":1.99,
"links":
[
{"href":"https://inpdv-api-sandbox.net/payments/4e319e3d..."},
{"href":"https://inpdv-api-sandbox.net/payments/4e319e3d.../cancel","rel":"Cancel","method":"Put"},
{"href":"https://inpdv-api-sandbox.net/payments/4e319e3d.../token/"tokenvalue","rel":"Approval","method":"Put"}
]
}
Resposta de valor invalido vinda do recurso /payments:
HTTP/1.1 400 Bad Request
Content-Length: 148
{
"codeDescription":"UnknownError",
"extendedProperties":{"mS_LoggedBy":[{}]},
"message":"The amount must be greater than 0\r\nParameter name: amount"
}
OBS: Qualquer parâmetro inválido virá com o mesmo erro 400, mas com mensagens diferentes
Resposta de sucesso do recurso /payments/{transaction}:
HTTP/1.1 200 OK
Content-Length: 92
{
"id":"96af9850-bdbb-42c0-95c3-cb6a5a3178ae",
"status":"Authorized",
"amount":1.99,
"links":[]
}
Resposta de sucesso vinda do recurso /payments/{transaction} quando a transação tiver um ou mais estornos:
HTTP/1.1 200 OK
Content-Length: 92
{
"id":"96af9850-bdbb-42c0-95c3-cb6a5a3178ae",
"status":"Finalized",
"amount":20.00,
"links":[],
"chargebacks":
[
{"href":"http://localhost:58043/payments/9a21d151-e183-11e5-be9a-5cf9ddee0305"},
{"href":"http://localhost:58043/payments/eccffc91-e183-11e5-be9a-5cf9ddee0305"},
{"href":"http://localhost:58043/payments/58203abc-e184-11e5-be9a-5cf9ddee0305"}
]
}
O valor é o valor da transação original e os estornos são links para as transações de estorno
Resposta do recurso /payments/{transaction} quando a transação especificada não existe:
HTTP/1.1 404 Not Found
Content-Length: 177
{
"code":1,"codeDescription":"NotFound",
"extendedProperties":
{
"mS_LoggedBy":[{}]
},
"message":"The Transaction identified by '96af9850-bdbb-42c0-95c3-cb6a5a31a7ae' was not found."
}
Resposta de sucesso do recurso /payments/{transaction}/token:
HTTP/1.1 200 OK
Content-Length: 4
true
Resposta de sucesso do recurso /payments/{transaction}/token/{token}:
HTTP/1.1 200 OK
Content-Length: 458
{
"id":"96af9850-bdbb-42c0-95c3-cb6a5a3178ae",
"status":"Authorized",
"amount":1.99,
"links":
[
{"href":"https://inpdv-api-hmg.azurewebsites.net/payments/96af9850-bdbb-42c0-95c3-cb6a5a3178ae"},
{"href":"https://inpdv-api-hmg.azurewebsites.net/payments/96af9850-bdbb-42c0-95c3-cb6a5a3178ae/execute","rel":"Execute","method":"Put"},
{"href":"https://inpdv-api-hmg.azurewebsites.net/payments/96af9850-bdbb-42c0-95c3-cb6a5a3178ae/cancel","rel":"Cancel","method":"Put"}
]
}
Resposta do recurso /payments/{transaction}/token/{token} quando a transação está expirada:
HTTP/1.1 400 Bad Request
Content-Length: 154
{
"code":7,
"codeDescription":"ExpiredTransactionToken",
"extendedProperties":{"mS_LoggedBy":[{}]},
"message":"The transaction token has expired by timeout."
}
Resposta do recurso /payments/{transaction}/token/{token} quando a transação está cancelada/finalizada:
HTTP/1.1 400 Bad Request
Content-Length: 156
{
"code":9,
"codeDescription":"AlreadyExecutedTransaction",
"extendedProperties":{"mS_LoggedBy":[{}]},
"message":"The transaction already has its final state."
}
Resposta do recurso /payments/{transaction}/token/{token} quando o token é errado:
HTTP/1.1 400 Bad Request
Content-Length: 170
{
"code":8,
"codeDescription":"InvalidTransactionToken",
"extendedProperties":{"failCount":1,"failLimit":3,"mS_LoggedBy":[{}]},
"message":"The transaction token is invalid."
}
Se o usuário falhar 3 vezes sua conta será bloqueada e deve desbloqueá-la antes de fazer qualquer outra compra.
Resposta do recurso /payments/{transaction}/token/{token} quando o token já foi usado:
HTTP/1.1 400 Bad Request
Content-Length: 121
{
"code":18,
"codeDescription":"TokenAlreadyUsed",
"extendedProperties":{"mS_LoggedBy":[{}]},
"message":"token already used"
}
Por razões de segurança, o token é um TOTP. Se o token já foi usado, o usuário deve esperar até que um novo token possa ser gerado.
Resposta de sucesso do recurso /payments/{transaction}/execute:
HTTP/1.1 200 OK
Content-Length: 186
{
"id":"0972741f-7aa1-47b8-a1aa-8774c7031c1c",
"status":"Finished",
"amount":1.99,
"links":[{"href":"https://inpdv-api-hmg.azurewebsites.net/payments/0972741f-7aa1-47b8-a1aa-8774c7031c1c"}]
}
Resposta do recurso /payments/{transaction}/execute quando a transação ainda não foi autorizada:
HTTP/1.1 400 Bad Request
Content-Length: 145
{
"code":5,
"codeDescription":"NotAuthorizedTransaction",
"extendedProperties":{"mS_LoggedBy":[{}]},"message":"The transaction must be authorized."
}
Resposta de sucesso do recurso /payments/{transaction}/cancel:
HTTP/1.1 200 OK
Content-Length: 187
{
"id":"a48bfd6b-c671-4354-9cb9-49bcf196faf9",
"status":"Cancelled",
"amount":1.99,
"links":[{"href":"https://inpdv-api-hmg.azurewebsites.net/payments/a48bfd6b-c671-4354-9cb9-49bcf196faf9"}]
}