In this guide, we will set up the request which gives you access to Blik Level 0 (a version of Blik redirect).
Before starting the steps in this guide, you must do the following:
In a Blik Level 0 transaction, the first request is a Transactions Create request. This request is to process the payment immediately after a customer enters their 6-digit Blik code on your checkout page.
In the following example, we set up a Blik (Level 0) transaction.
{
"account_name": "APM_Transaction_Processing",
"channel": "CNP",
"capture_mode": "AUTO",
"type": "SALE",
"amount": "1001",
"currency": "PLN",
"country": "PL",
"reference": "202412191212769",
"payment_method": {
"entry_mode": "ECOM",
"apm": {
"provider": "BLIK",
"mode": "LEVEL_ZERO",
"payment_code_initiator": "PAYER",
"payment_code": "654321"
}
},
"notifications": {
"status_url": "https://webhook.site/6dc0caed-3230-4cf8-86a9-0e0ff8ed6a9a"
},
"payer": {
"first_name": "Woodrow",
"last_name": "Wilson"
"email": "test@test.com"
"ip_address": "192.0.2.1"
"user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"
}
}{
"id": "TRN_Nbvdyqxxxx8p5CMr67me2MwEq7xxxx_412191210000",
"time_created": "2025-07-09T12:28:42.704Z",
"type": "SALE",
"status": "INITIATED",
"channel": "CNP",
"capture_mode": "AUTO",
"amount": "1001",
"currency": "PLN",
"country": "PL",
"merchant_id": "MER_28c5fcexxxxxx95bb1a5125xxxxxxxxx",
"merchant_name": "Test_Merchant",
"account_id": "TRA_a5d4xxxxxxx24195b1efe85xxxxxxxxx",
"account_name": "APM_Transaction_Processing",
"reference": "N6qsk4kYRZihmPrTXWYS6fg",
"payment_method": {
"result": "01",
"message": "PENDING",
"entry_mode": "ECOM",
"apm": {
"provider": "blik",
"provider_payer_name": "John Doe",
"wait_notification": "1"
}
},
"payer": {
"country": "PL",
"email": ""
},
"action": {
"id": "ACT_NbvdyqZ1GE8p5CMr67me2MwEq7qNhp",
"type": "INITIATE",
"time_created": "2025-07-09T12:28:42.704Z",
"result_code": "SUCCESS"
}
}The URL specified in the status_url parameter in the initial Transactions Create request, receives the final status. You may want to inform the customer at this point that their payment was finally accepted. And you can also initiate the dispatch of items to the customer.
{
"id":"TRN_Nbvdyqxxxx8p5CMr67me2MwEq7xxxx_412191210000",
"time_created":"2025-07-09T12:28:42.704Z",
"type":"SALE",
"status":"CAPTURED",
"channel":"CNP",
"capture_mode":"AUTO",
"amount":"1001",
"currency":"PLN",
"country":"PL",
"merchant_id":"MER_28c5fcexxxxxx95bb1a5125xxxxxxxxx",
"merchant_name":"Test_Merchant",
"account_id":"TRA_a5d4xxxxxxx24195b1efe85xxxxxxxxx",
"account_name":"APM_Transaction_Processing",
"reference":"N6qsk4kYRZihmPrTXWYS6fg",
"payment_method":{
"result":"00",
"message":"SUCCEEDED",
"entry_mode":"ECOM",
"apm":{
"provider":"blik",
"wait_notification":"",
"fund_status":"NOT_EXPECTED",
"payment_description":"3K1TRAA",
"confirmed_accountholder":"Former Glory",
"account_number":"93722",
"iban":"PL25700251750322205970",
"bank_identifier_code":"HYVEDEMM643",
"bank_name":"HypoVereinsbank Penzberg",
"bank_address":"",
"optional_redirect":""
}
},
"batch_id":"",
"action":{
"id":"ACT_NbvdyqZ1GE8p5CMr67me2MwEq7qNhp",
"type":"STATUS_NOTIFICATION",
"time_created":"2025-07-09T12:28:42.704Z",
"result_code":"SUCCESS",
"app_id":"jrYHwMdYRBDGmFwwAVmi5WufYzxuQIQj",
"app_name":"sample_app"
}
}Blik (Level 0) is available on a sandbox environment to validate your integration before proceeding to a production environment.
In the production environment the payer approves the transaction by PIN on a mobile. Whereas, in the sandbox environment the payer approves the transaction by accessing the URL returned in the response.
Initiate the payment by sending the Payment Initiation request.
A response for the initial request is received and a waiting screen is displayed.
The payer accesses the link returned in the sandbox response and approves the transaction on the test page. This simulates entering the PIN on a mobile in the production environment.
In the production environment, there is no intermediate page. The Blik code is confirmed on the payer’s mobile bank application.
Once a transaction is approved, you receive a transaction status update and close the waiting screen with the transaction status result.
Once you have a Global Payments client ID, you can send transaction requests to the following URL endpoints.
| Environment | URL |
|---|---|
| Sandbox | https://apis.sandbox.eservicegateway.com/ucp/transactions |
| Production | https://apis.eservicegateway.com/ucp/transactions |
For the production environment, we only accept transactions from IP addresses on your account's allow list. Your Global Payments account manager can assist you with setting this up.
Even if your Client ID has been set to Live, you can still send transactions to the sandbox environment – just target the sandbox URL.
| Code | Description | Status |
|---|---|---|
| 200 | OK | This represents a successful API action. |
| 400 | Bad Request | Error: The API request has an error in it. |
| 401 | Not Authenticated | Error: Can’t authenticate with those credentials. Need to get a new access token. |
| 403 | Forbidden | Error: Don’t have permission to execute that API action. |
| 404 | Resource Not Found | Error: the resource referenced in the request cannot be found. |
| 405 | Method Not Allowed | Error: The HTTP request method is not supported for the requested resource. |
| 409 | Duplicate | Error: The API request was blocked as it is seen as a duplicate action that must not be processed. |
| 500 | Internal Server Error | Error: Something unexpected happened. |
| 502 | Bad Gateway | Error: Something unexpected happened when communicating with another system. |
| 504 | Timeout | Error: API did not get a response from another system in the expected timeframe. |