- METHOD TYPEReal-Time Bank Transfer
- PAYMENTS
- PAYOUTS
- REFUNDS
- RECURRING
Introduction
BLIK is a mobile payment system in Poland that allows users to make payments using their mobile phone. It can be used to make purchases in stores, online and to transfer money to other users.
It is a secure, fast, and convenient way to make payments and it is widely accepted by retailers and businesses in Poland.
Supported Countries
- Poland
Supported Currencies
- PLN
UX Requirements
- Use the most up-to-date logo.
- The method name is BLIK and the input field is blik_code.
- BLIK code validation: only 6 digits are allowed.
- When entering the 6-digit code, the cashier should display it to the user as [3digits][space][3digits].
- The 6-digit code should prompt the numeric keyboard on a mobile device.
- Once a One-Click account is created (after a successful transaction), the cashier should display two BLIK options:
- The “original method” is renamed to “BLIK with code”.
- The saved account appears as “BLIK without code” (press here for details).
- After initiating a deposit, the user needs to see this message:
- PL: “Potwierdź płatność w aplikacji swojego banku.”
- ENG: “Confirm the payment in your bank’s app.”
Payment (Deposit) Flow
Send a /payments Request
Perform the payment by sending a /payments request with its mandatory parameters including:
buyerDetails.buyerIdamountcurrencypaymentOption.alternativePaymentMethod:name: "blik"data.blikCode
deviceDetails.ipAddressbuyerDetails.billingAddress.countryCodebuyerDetails.firstName, lastName, country, email
Example /payments Request
{
"processingEntityId": "",
"amount": 1,
"currency": "EUR",
"transactionType": "Sale",
"paymentOption": {
"alternativePaymentMethod": {
"name": "blik",
"data": {
"code": "<blik code>"
}
}
},
"custom": {
"description": "Some description"
},
"urlDetails": {
"webhookUrl": "https://example.com/webhook",
"successUrl": "https://example.com/success",
"failureUrl": "https://example.com/failure",
"pendingUrl": "https://example.com/pending"
},
"deviceDetails": {
"ipAddress": "192.168.2.38"
},
"buyerDetails": {
"buyerId": "JohnSmith123",
"firstName": "John",
"lastName": "JSmith",
"companyName": "Nuvei Corp",
"locale": "bg-BG",
"dateOfBirth": "1978-01-01",
"email": "[email protected]",
"phone": "+1234567889",
"billingAddress": {
"address": "30 Alenbi st",
"zip": "1234",
"city": "Berlin",
"countryCode": "DE",
"phone": "+1234567889",
"addressMatch": true
},
"shippingAddress": {
"sameAsBilling": true
}
}
}
BLIK processes the transaction and returns a transaction notification and status.
Example /payments Response
{
"internalRequestId": 913985339,
"status": "SUCCESS",
"errCode": 0,
"reason": "",
"merchantId": "4273555827014385119",
"merchantSiteId": "222058",
"version": "1.0",
"clientRequestId": "20240212132854",
"sessionToken": "103fe11e-06b2-4af7-b494-724b44bc4e8b",
"clientUniqueId": "20180327175242",
"orderId": "420274599",
"userTokenId": "TestToken2",
"paymentOption": {
"userPaymentOptionId": "104082698",
"card": {}
},
"transactionStatus": "PENDING",
"transactionId": "711000000032057913"
}
After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) (webhook) that includes the result of the transaction to urlDetails.webhookUrl, which Nuvei recommends including in the /payments request.
Example /payments DMN with status=APPROVED
...'ppp_status=OK&Status=APPROVED&ExErrCode=0&ErrCode=0&errApmCode=0&errApmDescription=&errScCode=0&errScDescription=&Reason=&ReasonCode=0&PPP_TransactionID=49999999999&userid=7129999999990408448&merchant_unique_id=P991115001029224930BPG&customData=&productId=&first_name=John&last_name=Smith&email=john.smith%40email.com¤cy=PLN&clientUniqueId=P231111111111111111&customField1=&customField2=&customField3=&customField4=&customField5=&customField6=&customField7=&customField8=&customField9=&customField10=&customField11=&customField12=&customField13=&customField14=&customField15=&invoice_id=&address1=&address2=&country=Poland&state=&city=&zip=&phone1=48-500038756&phone2=&phone3=&client_ip=188.123.211.13&nameOnCard=&cardNumber=&bin=&noCVV=&acquirerId=&acquirerBank=BLIK-PI&expMonth=&expYear=&Token=&tokenId=&AuthCode=&AvsCode=&Cvv2Reply=&shippingCountry=&shippingState=&shippingCity=&shippingAddress=&shippingZip=&shippingFirstName=&shippingLastName=&shippingPhone=&shippingCell=&shippingMail=&total_discount=0.00&total_handling=0.00&total_shipping=0.00&total_tax=0.00&buyButtonProductBundleId=&merchant_site_id=253318&merchant_status=&action=&requestVersion=&message=APPROVED&merchantLocale=&unknownParameters=&payment_method=apmgw_BLIK&ID=&merchant_id=5855689376797576890&responseTimeStamp=2023-11-15.22%3A50%3A09&buyButtonProductId=&webMasterId=&appliedPromotions=&uniqueCC=&transactionType=Sale&externalEmail=&cardCompany=&eci=&user_token_id=7124648678530408448&userPaymentOptionId=3343678286&TransactionID=2130000003751688921&ExternalaccountID=009040&externalTransactionId=77335772831&APMReferenceID=641AEA29FD681BD156CC5F798C539FA3&orderTransactionId=49934074126&totalAmount=303.99&dynamicDescriptor=NuveiDescriptor&item_name_1=NA&item_number_1=&item_amount_1=100.00&item_quantity_1=1&item_discount_1=0.00&item_handling_1=0.00&item_shipping_1=0.00&feeAmount=&amountWithoutFee=&houseNumber=&customCurrency=&externalToken_blockedCard=&externalToken_cardAcquirerId=&externalToken_cardAcquirerName=&externalToken_cardBin=&externalToken_cardBrandId=&externalToken_cardBrandName=&externalToken_cardExpiration=&externalToken_cardLength=&externalToken_cardMask=&externalToken_cardName=&externalToken_cardTypeId=&externalToken_cardTypeName=&externalToken_clubName=&externalToken_creditCompanyId=&externalToken_creditCompanyName=&externalToken_extendedCardType=&externalToken_Indication=&externalToken_tokenValue=&externalToken_tokenProvider=&ECIRaw=&cryptogram=&upoRegistrationDate=20231116&type=DEPOSIT&clientRequestId=P231115001029224930BPG&relatedTransactionId=&sessionId=52d54fb30876dabfd3248ac87402&responsechecksum=5cc71c96c150f2ddeaad0112f9be686e073a26809caa36f45a685f2179633c1b&advanceResponseChecksum=db1fb6d1256d5b230756c8f80e413b040f93e8e558b582ad295c772e4d4d9e77',
User Experience (Direct)
- The user selects the BLIK payment option on the Merchant’s payment page.
- The user logs in to their bank application to get their 6-digit BLIK code.

- The user enters the 6-digit code in the Cashier.

- The user must confirm the transaction on their bank application.
Testing
Testing payments using the BLIK channel requires an authorization code. For test payments, a valid authorization code starts with 777 (such as 777654). A code that does not start with 777 (such as 332885) is considered invalid and the payment is declined.
To test one-click, use amount *.04 PLN
Appendix – BLIK One-Click
The one-click payment method is an extension of the regular BLIK payment, with the ability to remember the device that the customer most often uses to finalize the transaction. The user interface is extended by the option to pay with a one-click flow. In the one-click flow, the user only needs to enter their 6-digit code once. For future deposits, the code is not required.
REST API
To initiate one-click, include usageIntent: “direct” in the /payments request.
Example One-Click /payments Request
{
"paymentOption": {
"alternativePaymentMethod": {
"name": "blik",
"data": {
"code": "<blik code>"
},
"usageIntent": "direct"
}
}
}
The response and the DMN (webhook) include the paymentTokenId to use in subsequent BLIK one-click transaction requests.
Example Subsequent One-Click/payments Request with paymentTokenId
{
"paymentOption": {
"paymentTokenId": {
"paymentTokenId": "<payment token id>",
"usageIntent": "direct"
}
}