BLIK Level 0 Integration in SimPay
BLIK Level 0 is a simplified BLIK payment method in which the user enters the BLIK code directly on the Partner's website, without being redirected to eblik.pl.
It is your responsibility to meet the requirements of the BLIK checklist for Level 0 payments, which is available here.
Transaction Generation
- When generating a transaction, you must:
- set the
directChannel
field toblik-level0
, - send the payer's antifraud.useragent,
- send the payer's customer.email,
- send the payer's customer.ip,
- send the payer's customer.countryCode (currently only PL is supported),
- set the transaction currency to PLN (BLIK currently supports only PLN).
- Then send a request to:
POST https://api.simpay.pl/payment/:serviceId/blik/level0/:transactionId
in the body, send:
{
"ticket":{
"T6":"BLIK_CODE"
}
}
In case of a correct BLIK code, HTTP status 204 will be returned
Returning code 204 does not mean the transaction is paid. You must handle both IPN events listed below.
In case of an incorrect code, the response looks as follows: HTTP 4xx
{
"success": false,
"message": "Error message",
"errorCode": "ERROR_CODE"
}
Available errorCode values are in the table under the IPNv2 section.
IPNv2 Event Handling
For BLIK Level 0 transactions, SimPay sends 2 IPN messages:
transaction:status_changed
(same as for every payment method),transaction_blik_level0:code_status_changed
. This message contains information about the BLIK code validity (data.ticket_status field).
Example IPN:
{
"type": "transaction_blik_level0:code_status_changed",
"notification_id": "019736c4-50c3-7108-944c-11a0f9c12b72",
"date": "2025-06-03T19:08:44+02:00",
"data": {
"ticket_status": "VALID",
"transaction": {
"id": "70bc5ab3-4973-4275-a0eb-08e3f2ab54f2",
"payer_transaction_id": "6PB8JKKN",
"service_id": "e65c7519",
"status": "transaction_paid",
"amount": {
"final_currency": "PLN",
"final_value": "360.00",
"original_currency": "PLN",
"original_value": "360.00",
"commission_system": "5.36",
"commission_partner": "354.64",
"commission_currency": "PLN"
},
"control": "111122223333"
}
},
"signature": "236197b1a75a8e1c33b0feea94cab753f4b0d7f5ffd044abeea36ea8b89566cc"
}
In case of ticket_status other than VALID, you should inform the payer about the reason for transaction rejection. Here we refer to the BLIK checklist (Authorization errors section).
from "INSUFFICIENT_FUNDS" downwards.
List of Errors When Providing BLIK Code
Code | Meaning |
---|---|
INVALID_BLIK_CODE | Invalid BLIK code. |
PAYER_APP_NOT_ACTIVE | BLIK has not been activated in the payer's banking app. |
PAYER_APP_NOT_FOUND | BLIK not found in the payer's banking app. |
INVALID_BLIK_CODE_FORMAT | Invalid BLIK code format. |
BLIK_CODE_EXPIRED | BLIK code has expired. |
BLIK_CODE_LIMIT | Limit exceeded for this code. |
BLIK_CODE_CANCELLED | BLIK code has been cancelled. |
BLIK_CODE_NOT_SUPPORTED | BLIK code is not supported. |
BLIK_CODE_USED | BLIK code has already been used. |
BLIK_GENERAL_ERROR | General BLIK error. |
BLIK_TECHNICAL_BREAK | Technical break in BLIK operations. |
List of Test T6 Codes
For T6 test codes to work, test mode must be enabled in service settings in the SimPay Client Panel.
T6 Code | Code Meaning |
---|---|
999000 | Valid BLIK code |
100001 | PAYER_APP_NOT_ACTIVE |
100002 | PAYER_APP_NOT_FOUND |
100003 | INVALID_BLIK_CODE_FORMAT |
100004 | BLIK_CODE_EXPIRED |
100005 | BLIK_CODE_LIMIT |
100006 | BLIK_CODE_CANCELLED |
100007 | BLIK_CODE_NOT_SUPPORTED |
100008 | BLIK_CODE_USED |
100009 | BLIK_GENERAL_ERROR |
100010 | BLIK_TECHNICAL_BREAK |
200001 | INSUFFICIENT_FUNDS |
200002 | LIMIT_EXCEEDED |
200003 | TIMEOUT |
200004 | GENERAL_ERROR |
200005 | SYSTEM_ERROR |
200006 | SEC_DECLINED |
200007 | USER_DECLINED |
200008 | TAS_DECLINED |
{any other} | INVALID_BLIK_CODE |
Test codes starting with 1
indicate an error returned during Level 0 transaction initiation.
Test codes starting with 2
indicate an error sent in IPN in the transaction_blik_level0:code_status_changed
event.