Buy Now, Pay Later (BNPL) is a payment method that allows consumers to purchase products and services immediately but with the option to defer payment to a later date or to split the payment into installments. It is an alternative to traditional forms of credit, such as credit cards.
To accept payments via BNPL, the Merchant's MCC (Merchant Category Code) must not be on the prohibited industries list (MCC blacklist). The MCC is determined during the verification process by specifying the store's/industry's category.
The BNPL process typically involves several steps:
| MCC Code | Code Name |
|---|---|
| 1041 | Production of oils and other liquid fats |
| 1101 | Distilling, rectifying, and blending of alcohols |
| 2446 | Manufacturing of nuclear fuels |
| 2540 | Manufacturing of weapons and ammunition |
| 4612 | Activities of agents engaged in the sale of fuels, ores, metals, and industrial chemicals |
| 4671 | Wholesale sale of fuels and related products |
| 4672 | Wholesale sale of metals and metal ores |
| 4677 | Wholesale sale of waste and scrap |
| 9200 | Activities related to games of chance and mutual betting |
| 9491 | Activities of religious organizations |
| 9492 | Activities of political organizations |
| 9405 | Organizations and associations |
Ensure that:
Process Buy Now, Pay Later payments by using the transaction creation endpoint and providing the appropriate payment channel identifier.
| ChannelId | Payment Channel Name |
|---|---|
| 71 | Twisto |
| 83 | PayPo |
| 84 | BLIK Pay Later |
| 85 | Pragma Pay Later for business |
To create a BNPL transaction, send a POST request to the endpoint.
https://api.tpay.com/transactions
Check the details in the API Reference documentation: POST /transactions
In the request, specify the following parameters:
amount * | Transaction amount. |
description * | Transaction description visible to the payer. |
payer.email | Payer's email address |
payer.name | Payer's full name. |
pay.channelId | BNPL payment channel identifier. |
* Pola obowiązkowe.
The basic request body should look like this:
{ "amount": 0.1, "description": "Testowa transakcja BNPL", "payer": { "email": "[email protected]", "name": "Jan Nowak" }, "pay": { "channelId": 71 } }
Example:
curl --location 'https://api.tpay.com/transactions' \ --header 'Authorization: Bearer <access_token>' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 0.1, "description": "Testowa transakcja BNPL", "payer": { "email": "[email protected]", "name": "Jan Nowak" }, "pay": { "channelId": 71 } }'
After sending the request, you will receive a TransactionCreated schema in response.
The key response parameters are:
result | success - The transaction was successfully created. |
status | pending - The transaction is awaiting payment. |
transactionPaymentUrl | URL to which the payer should be redirected. |
Example response:
{ "result": "success", "requestId": "786dee7ec39502226238", "transactionId": "01K5BK4HEPB0WBCGT51FMTYSYJ", "title": "TR-CWM-D14339X", "posId": "ps_e4dkPVDEm4Jg726q", "status": "pending", "date": { "creation": "2024-07-04 21:15:23", "realization": null }, "amount": 0.1, "currency": "PLN", "description": "Testowa transakcja BNPL", "hiddenDescription": "", "payer": { "payerId": "py_a9rjlZWxRLdG1bqY", "email": "[email protected]", "name": "Jan Nowak", "phone": "", "address": "", "city": "", "country": "PL", "postalCode": "" }, "payments": { "status": "pending", "method": "pay_by_link", "amountPaid": 0, "date": { "realization": null } }, "transactionPaymentUrl": "https://secure.tpay.com/?title=TR-CWM-D14339X&uid=01J1ZJREPKDXXJ5E4JRWYVXMN2" }
Redirect the payer to the URL provided in the response in the transactionPaymentUrl field.
At the given URL, the payer will be redirected to the Buy Now, Pay Later application, where they complete the required information and submit the application. Credit verification follows. Check out the purchase process..
We will inform you about the transaction status via notification after transaction posting..