Przelewy24(P24)
Integrate Przelewy24 and allow consumers to pay in various ways, such as online bank transfers, e-wallet, or installments.
Payment Method Properties
Category | Bank Transfer |
Markets | PL |
One-time payments | Yes |
Recurring payments | No |
Processing currencies | EUR , PLN |
Consumer currencies | EUR , PLN |
Settlement currencies | EUR , PLN |
Minimum payment amount | 0.01 PLN |
Maximum payment amount | 55,000.00 PLN |
Refund | - Full - Partial - Multiple Partial |
Refund validity | 365 days |
Captures | No |
Chargeback | No |
Sandbox availability | PPRO provided |
Make a P24 payment
To make a P24 payment, you'll need to provide the following data when calling our /v1/payment-charges API:
Data Field | Required | Description |
---|---|---|
paymentMethod | Y | P24REST |
amount.value | Y | The amount to be paid in the smallest units of the currency used. |
amount.currency | Y | PLN The currency used for the payment |
consumer.name | Y | Full name of the consumer |
consumer.country | Y | The country where the consumer is shopping |
consumer.email | Y | Email of the consumer |
authenticationSettings: REDIRECT settings.returnUrl | Y | Specify the URL to which the consumer should be redirected after completing the payment |
Request
POST /v1/payment-charges
{
"paymentMethod": "P24REST",
"amount": {
"value": 100,
"currency": "PLN"
},
"paymentDescriptor": "Payment Descriptor",
"consumer": {
"name": "John Smith",
"country": "PL",
"email": "[email protected]",
"billingAddress": {
"firstName": "John",
"lastName": "Smith",
"phoneNumber": "01522113356",
"street": "Hellersbergstraße 14",
"postalCode": "41460",
"city": "Berlin",
"region": "Berlin",
"country": "DE"
}
},
"order": {
"orderItems": [
{
"name": "Product Name 1",
"quantity": 1,
"amount": 100
}
]
},
"authenticationSettings": [
{
"type": "REDIRECT",
"settings": {
"returnUrl": "https://www.ppro.com/"
}
}
]
}
Response
You'll receive a standard payment agreement response (see potential responses in the API Reference)
{
"id": "charge_PfNx0bBEt2jrhEAKnzzuG",
"paymentMethod": "P24REST",
"paymentMedium": "ECOMMERCE",
"scheduleType": "UNSCHEDULED",
"instrumentId": "instr_PxrXFvR0tFTSygPuvJCJV",
"currency": "PLN",
"country": "PL",
"paymentDescriptor": "Payment Descriptor",
"status": "AUTHENTICATION_PENDING",
"consumer": {
"name": "John Smith",
"email": "[email protected]",
"country": "PL",
"billingAddress": {
"firstName": "John",
"lastName": "Smith",
"phoneNumber": "01522113356",
"street": "Hellersbergstraße 14",
"postalCode": "41460",
"city": "Berlin",
"region": "Berlin",
"country": "DE"
}
},
"order": {
"orderItems": [
{
"name": "Product Name 1",
"quantity": 1,
"amount": 100
}
],
"industryData": []
},
"authenticationMethods": [
{
"details": {
"requestUrl": "https://authman.sandbox.lp-pl.ppro.com/v0/redirections/forward?redirection_token=eyJhbGciOiJIUzUxMiJ9.eyJzZXNzaW9uIjp7InIiOiJjaGFyZ2VfUGZOeDBiQkV0MmpyaEVBS256enVHIn19.wRRPBKnAlZVKxVVivCilaMn0eTFHZ47DYViM0qR8zGUxrexvJT4eX95EGEZg8v_CaJd3zQG18u837wXOHE0bVw",
"requestMethod": "GET"
},
"type": "REDIRECT"
}
],
"authorizations": [
{
"id": "authz_dvSruB89emFl5VtH92hU3",
"amount": 100,
"status": "AUTHENTICATION_PENDING",
"createdAt": "2025-01-06T17:00:57.198Z",
"updatedAt": "2025-01-06T17:00:57.198Z"
}
],
"captures": [],
"refunds": [],
"voids": [],
"createdAt": "2025-01-06T17:00:56.774Z",
"updatedAt": "2025-01-06T17:00:57.198Z",
"_links": {
"authorizations": {
"href": "/v1/payment-charges/charge_PfNx0bBEt2jrhEAKnzzuG/authorizations"
},
"captures": {
"href": "/v1/payment-charges/charge_PfNx0bBEt2jrhEAKnzzuG/captures"
},
"refunds": {
"href": "/v1/payment-charges/charge_PfNx0bBEt2jrhEAKnzzuG/refunds"
},
"voids": {
"href": "/v1/payment-charges/charge_PfNx0bBEt2jrhEAKnzzuG/voids"
}
}
}
Consumer Authentication
P24 requires authentication by the consumer, which they do via their bank's online environment. You will need to redirect their browser to P24's payment page using the link provided in the requestUrl
field of the REDIRECT
authentication method response. On P24's payment page to choose their bank
The payment charge will remain in the AUTHENTICATION_PENDING
state until the consumer logs into their bank and approves the payment. After this, the charge will transition to the CAPTURED
state.
Handling the Payment Result
The consumer will be redirected to the authenticationMethods.settings.returnUrl
provided in the initial payment charge creation request, depending on whether the authorization is a success, a failure, or if the user cancelled/aborted the flow.
If the consumer fails to authenticate the payment within the timeout window, the charge will transition to the DISCARDED
state.
You can receive webhooks for all changes to the payment charge state and use these to build business logic such as delivering the goods when the charge is CAPTURED
.
Updated 1 day ago