BLIK for API only
Last updated: April 15, 2026
To accept BLIK payments, the customer enters the BLIK code in your checkout page, and you send it to Checkout.com when you request a payment.
Your customer then confirms the payment using their online banking app.
When integrating with BLIK, you must follow their UX guidelines. This compliance is a requirement for onboarding. If you do not follow these guidelines, we cannot approve you for production.
Call the Request a payment endpoint.
Information
Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see API endpoints.
post
https://{prefix}.api.checkout.com/payments
1{2"source": {3"type": "blik"4},5"amount": 1099,6"currency": "PLN",7"payment_type": "Regular",8"reference": "ORD-5023-4E89",9"processing": {10"partner_code": "333994"11},12"risk": {13"device": {14"network": {15"ipv4": "192.0.2.1",16"ipv6": "2001:db8:1:2:3:4:5:6"17}18}19}20}
In the request body, provide the BLIK code in the processing.partner_code field.
To improve your acceptance rate, include a reference to your payment in the reference field.
If you receive a 202 Accepted response with a payment id value and the status field set to Pending, your request was successful.
1{2"id": "pay_jwvjl5tin54ubn7x2stvmunske",3"status": "Pending",4"reference": "ORD-5023-4E89",5"payment_type": "Regular",6"processing": {7"partner_payment_id": "88294496710"8}9}
Call the Request a payment endpoint.
Information
Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see API endpoints.
post
https://{prefix}.api.checkout.com/payments
Set the following fields, depending on when you want to set up the agreement:
source.type– Set toblik.payment_type– Set toRecurring.merchant_initiated– Set tofalse.amount– Set to0.payment_plan– Set the agreement details, such as the name, expiry date and amount variability.
Information
When setting up the agreement before the initial payment, payment_plan.start_date is mandatory.
1{2"source": {3"type": "blik"4},5"amount": 0,6"currency": "PLN",7"payment_type": "Recurring",8"payment_plan": {9"amount_variability": "Variable",10"expiry": "20251231",11"start_date": "20251114",12"name": "Internet Subscription 123456"13},14"reference": "ORD-5023-4E89",15"merchant_initiated": false,16"processing": {17"partner_code": "333994"18}19}
If you receive a 202 Accepted response, your request was successful.
A successful response contains the following fields:
id– The payment ID.source.id– The payment instrument ID. You can use this ID to process subsequent payments, or retrieve the BLIK PayID from thesource.partner_agreement_idfield.source.partner_agreement_id– Your BLIK PayID, which you can also use to process subsequent payments.status– Set toPending.
1{2"id": "pay_kiexvrgdqwzedjr4zwkkkukwwu",3"status": "Pending",4"reference": "ORD-5023-4E89",5"payment_type": "Recurring",6"processing": {7"partner_payment_id": "90231815793"8},9"source": {10"id": "src_1233457",11"partner_agreement_id": "777001"12},13"_links": {14"self": {15"href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_kiexvrgdqwzedjr4zwkkkukwwu"16}17}18}
The agreement finalizes after the payment or agreement successfully authorizes in your customer's banking app.
You can retrieve the status of the payment or agreement via webhook or by calling the Get instrument details endpoint, and setting the source.id value from the payment response as the {id} path parameter:
Information
Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see API endpoints.
get
https://{prefix}.api.checkout.com/instruments/{id}
1{2"type": "blik",3"instrument_data": {4"agreement_id": "9d45c3f7-7bce-4f03-85a8-d2464a826fce",5"status": "VALID",6"reason": "",7"amount_variability": "Variable",8"currency": "PLN",9"partner_agreement_id": "src_kjhuc4ejrpreplip5tj2rljlty",10"name": "test subscription",11"expiry": "20270101",12"start_date": "20250101"13},14"metadata": {15"merchant_id": "memowvltf7aulpb"16},17"account": {18"entity_id": "ent_kjhuc4ejrpreplip5tj2rljlty",19"client_id": "cli_kjhuc4ejrpreplip5tj2rljlty"20}21}
You can request a recurring payment using either:
- A Checkout.com managed payment instrument
- The BLIK PayID stored on your side
Call the Request a payment endpoint. In the request body, provide the following:
source.type– Set toidsource.id– The payment instrument ID you received in the initial payment response, or the ID of the instrument created to store the agreement.
1{2"source": {3"id": "src_jwvjl5tin54ubn7x2stvmunske",4"type": "id"5},6"amount": 999,7"currency": "PLN",8"payment_type": "Recurring",9"reference": "ORD-5023-4E89",10"merchant_initiated": true11}
To retrieve details about the payment, call the Get payment details endpoint, setting the payment_id value from the payment response as the {id} path parameter:
get
https://{prefix}.api.checkout.com/payments/{id}
BLIK supports both partial and full refunds.
You can refund the payment in the Dashboard or by calling the Refund a payment endpoint, setting the payment_id value from the payment response as the {id} path parameter:
post
https://{prefix}.api.checkout.com/payments/{id}/refunds
In the request body, provide the original payment's reference ID in the reference field.
1{2"amount": 20,3"reference": "ORD-5023-4E89"4}
1{2"action_id": "act_c4x2vjvnx4uelb4io72fa4e57a",3"_links": {4"payment": {5"href": "https://{prefix}.api.checkout.com/payments/pay_fzzdurog3squjj2ityho7x3o64"6}7}8}
If the customer does not complete the payment, it expires and you receive a payment_expired webhook within five minutes.
If the customer cancels their payment, you also receive a payment_expired webhook.
For more information, see Void a payment.
You can simulate different outcomes by sending a payment request to your Sandbox environment, setting the processing.partner_code field to any of the following values, depending on the outcome you want to test:
| Error code | Error description | BLIK error code |
|---|---|---|
| Payment Authorized |
|
| Rejected |
|
| Rejected |
|
| Rejected |
|
| Rejected |
|
| Rejected |
|
| Rejected |
|
| Insufficient funds |
|
| Response received too late / Timeout |
|
| Activity amount limit exceeded |
|
| Response received too late / Timeout |
|
| Bank decline |
|
To simulate a BLIK Recurring instrument creation with a bank that currently does not support BLIK Recurring, set:
referencetomock