# 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. Warning It is your responsibility to meet the requirements of the BLIK checklist for Level 0 payments, which is available here. ### Transaction Generation 1. When generating a transaction, you must: - set the `directChannel` field to `blik-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). 1. Then send a request to: `POST https://api.simpay.pl/payment/:serviceId/blik/level0/:transactionId` in the body, send: ```json { "ticket":{ "T6":"BLIK_CODE" } } ``` In case of a correct BLIK code, HTTP status 204 will be returned Warning 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 ```json { "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: ```json { "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). BLIK Checklist 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 Test 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.