Skip to content
Last updated

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:

{
    "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

{
    "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).

BLIK Checklist

from "INSUFFICIENT_FUNDS" downwards.

List of Errors When Providing BLIK Code

CodeMeaning
INVALID_BLIK_CODEInvalid BLIK code.
PAYER_APP_NOT_ACTIVEBLIK has not been activated in the payer's banking app.
PAYER_APP_NOT_FOUNDBLIK not found in the payer's banking app.
INVALID_BLIK_CODE_FORMATInvalid BLIK code format.
BLIK_CODE_EXPIREDBLIK code has expired.
BLIK_CODE_LIMITLimit exceeded for this code.
BLIK_CODE_CANCELLEDBLIK code has been cancelled.
BLIK_CODE_NOT_SUPPORTEDBLIK code is not supported.
BLIK_CODE_USEDBLIK code has already been used.
BLIK_GENERAL_ERRORGeneral BLIK error.
BLIK_TECHNICAL_BREAKTechnical 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 CodeCode Meaning
999000Valid BLIK code
100001PAYER_APP_NOT_ACTIVE
100002PAYER_APP_NOT_FOUND
100003INVALID_BLIK_CODE_FORMAT
100004BLIK_CODE_EXPIRED
100005BLIK_CODE_LIMIT
100006BLIK_CODE_CANCELLED
100007BLIK_CODE_NOT_SUPPORTED
100008BLIK_CODE_USED
100009BLIK_GENERAL_ERROR
100010BLIK_TECHNICAL_BREAK
200001INSUFFICIENT_FUNDS
200002LIMIT_EXCEEDED
200003TIMEOUT
200004GENERAL_ERROR
200005SYSTEM_ERROR
200006SEC_DECLINED
200007USER_DECLINED
200008TAS_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.