Przelewy24
Integrate Przelewy24 and allow consumers to pay in various ways, such as online bank transfers, e-wallet, or installments.
Payment Method Properties
Available country codes | PL |
Processing (Presentation) currencies | EUR, PLN |
Settlement currencies | EUR, PLN |
Consumer currencies | PLN |
Channel member tag | p24 |
Scheme name in the settlement file | Przelewy24 |
Minimum transaction amount | PLN 0.01, EUR 0.01 |
Maximum transaction amount | PLN 55,000 or EUR equivalent |
Session timeout | 1 hour |
Refund | Full, partial and multiple partial refunds are all available. |
Refund Validity | 365 days |
Chargeback | No |
Integration Type | Asynchronous |
Sandbox | PPRO-hosted |
Transaction Flow
- The consumer selects the payment method on the merchant checkout page.
- They are redirected to the P24 payment page where they choose their bank or provide their BLIK code.
- They are redirected to the bank’s online banking portal.
- To confirm the transaction, the consumer logs in to the online banking portal.
- They are redirected back to the merchant’s website for payment confirmation.
P24 Integration
Specific input parameters for the TRANSACTION call
Field Name | M/O/C | Type | Description |
---|---|---|---|
specin.email | M | ascii | The email address of the account holder. Maximum of 50 characters. |
specin.p24method | O | ascii | The numeric identifier of the bank. Used for bypassing the P24 HPP and redirecting to a pre-selected banking page. The values for this SPECIN are retrieved via the REQUESTDATA call; this is documented below. |
specin.termsaccepted | O | ascii | Determines whether the GDPR page is displayed before the payment page. Possible values: - 0 (default): The GDPR page is shown- 1 : The GDPR page is not shown |
For standard input parameters, see Input parameters for the TRANSACTION call.
This payment method supports the dynamic descriptor field (see The dynamic descriptor).
Retrieving bank information with a REQUESTDATA call
If specin.p24method
is passed with a TRANSACTION call and contains a valid bank identifier, the bank selection page will be bypassed. The consumer will be redirected to that bank directly.
Note
If an invalid value is sent for
specin.p24method
, the consumer is redirected to the P24 bank selection page.
You can retrieve valid values for specin.p24method
through a REQUESTDATA call with the same channel
, tag
, and countrycode
parameters as for the TRANSACTION call. Set the resource to p24methods
.
returnmode=urlencodeext
&txtype=REQUESTDATA
&login=YOURLOGIN
&password=YOURPASSWORD
&contractid=YOURCONTRACTID
&channel=livechannel
&tag=p24
&resource=p24methods
STATUS=SUCCEEDED
&TYPE=contentType
&CONTENT=content
STATUS=FAILED
&ERRMSG=Oh+no
The REQUESTDATA output parameter TYPE will be application/JSON, and CONTENT will be a JSON structure containing information about available banks.
CONTENT:
{"resource": "p24methods",
"specin": "p24method",
"p24methods": [
{
"name": "BLIK - PSP",
"p24method": "154"
},
{
"name": "Euro Bank",
"p24method": "94"
},
{
"name": "mBank - mTransfer",
"p24method": "25"
},
{
"name": "Płac ̨e z IKO",
"p24method": "135"
},
{
"name": "Płac ̨e z Orange",
"p24method": "146"
},
{
"name": "Przekaz tradycyjny",
"p24method": "178"
},
{
"name": "Raiffeisen Bank PBL",
"p24method": "102"
},
{
"name": "U ̇zyj przedpłaty",
"p24method": "177"
},
{
"name": "Przekaz/Przelew tradycyjny",
"p24method": "1000"
}
]
}
The JSON field p24method
s reflects what you must pass as an optional input parameter to the TRANSACTION call to bypass the bank selection page.
Request p24methods
data for every contractid
separately.
Cache the list based on the value of contractid
. Fetch a new one if the cached list gets too old, for example, 15 minutes. If fetching a list fails, continue to use the previous list.
Example: Sending specin.p24method=25
as part of a P24 API call redirects the consumer to the bank page.
Note
Due to the General Data Protection, P24 requires that the consumers accept their terms and conditions as an intermediate redirect before redirecting to the bank page.
Specific output parameters for the TRANSACTION call
Field Name | Type | Description |
---|---|---|
specout.p24descriptor | A P24-generated payment descriptor. It contains the dynamic descriptor specin (subject to truncation). | |
specout.p24method | The numeric identifier of the payment scheme or bank used for the payment. P24 assigns this number once the transaction succeeded. | |
specout.p24methodname | Friendly name of the payment scheme or bank used for the payment. It is assigned together with the above output parameters if current information of available payment methods could be retrieved from the scheme |
For standard output parameters, see Output parameters for the TRANSACTION call.
TRANSACTION call input
tag=p24
&txtype=TRANSACTION
&countrycode=PL
¤cy=PLN
&amount=1055
&merchanttxid=bAnr8kK2GmJf
&login=johndoe
&password=wXBrpVporFVjGO4R
&contractid=JOHNDOE
&channel=testchannel
&merchantredirecturl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Flanding.php
¬ificationurl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Fnotification.php
&specin.dynamicdescriptor=DynDescriptor&accountholdername=Tester%20Doe
&specin.email=test%40gmx.de
&returnmode=urlencodeext
TRANSACTION call output
REQUESTSTATUS=SUCCEEDED
&STATUS=SUCCEEDED
&TXID=598968946
&ERRMSG=
&CHANNEL=testchannel
&TAG=p24
&PAYMENTGUARANTEE=NONE
&REDIRECTSECRET=CwbROPqA2Fc90AviHtOtAC0dAdeh37xb
&SPECOUT.P24DESCRIPTOR=P24-H99-999-999 ABC1234 Dynamic
&SPECOUT.P24METHOD=25
&SPECOUT.P24METHODNAME=mBank - mTransfer
&SPECOUT.SRCCOUNTRY=PL
Additional information
We report the name of the merchant in the transaction. The API parameter is merchantLabel.
Branding Guidelines
For more information about branding, see the P24 branding guidelines.
FAQ
How does currency conversion work when charging a Polish consumer in EUR?
The consumer pays in PLN based on an exchange rate calculated by P24 based on FX feeds from a number of sources. PPRO presents and settles in EUR, with the consumer paying any FX margin.
What happens if a P24 bank goes down?
P24 disables or removes a bank that is either in maintenance or down at the time the consumer loads the P24 paywall. The bank is also not returned in the REQUESTDATA call for the p24methods resource. PPRO recommends caching the data from the REQUESTDATA call once every ~15 minutes to ensure an up-to-date banklist is available.
Updated 10 months ago