BLIK One Click

This section offers details about the BLIK One Click transaction flow and integration.

Transaction Flow

Seamless flow

This flow allows the consumer to stay in the merchant environment without saving the merchant as a trusted shop.

📘

Tip

Best suited for:

  • merchants whose consumers don't order frequently
  • merchants who don't have the development capacity to implement a full-fledged one-click flow

One Click flow

The One Click flow allows the consumer to save the merchant as a trusted shop in the mobile banking app.

This flow requires both you and the merchants to implement a few more scenarios to properly handle the user experience. These scenarios include:

  • sending an alias
  • updating an alias according to a notification
  • handling multi-banking scenarios
  • handling declined aliases (due to risk factors)

Pre-transaction alias check (One Click flow)

BLIK One Click flow requires a REQUESTDATA call to determine the right UI to show to the consumer before making a TRANSACTION call.

The TYPE output parameter will always be set to application/JSON. The CONTENT output parameter will consist of a URL-encoded string, which contains a JSON representation of an object following the structure of the example below:

{
    "status": "FOUND",
    "aliasList": [
        {
            "key": "unique-blik-id-1",
            "label": "Alias label 1"
        } ]
}

There are two possible status values, based on which the merchant must adjust the UI:

  • FOUND: The merchant must show:
    • a button allowing the consumer to initiate the payment with the consumer’s most recently used banking app
    • a link taking the consumer to the input form described below (NOT_FOUND)
  • NOT_FOUND: The merchant must show an input form accepting a 6-digit number (the consumer’s BLIK authentication code). The value of that input field must be passed as specin.authcode to the subsequent TRANSACTION call.

If the aliasList array contains more than one element, it means that a “multi-banking” scenario will occur for the consumer (specified by the given specin.consumerref). It can be used to prevent a transaction failure described in the section below about the “multi-banking” scenario.

👍

Note

The aliasList array is included in the response only when the status value is FOUND.

The following parameters are required to get a consumer’s alias information:

Field NameTypeTypeDescription
resourceMasciiRequested resource identifier. Must be set to alias_info
specin.consumerrefMasciiUnique reference identifying the consumer. Maximum 64 characters.

Must not contain personal data.

Alias not existing/The consumer chooses to pay with a new bank account

This scenario occurs when a consumer with an existing Alias chooses to pay with a new bank account using the same alias. To enable this, you must allow the consumer to go back to paying with a 6-digit BLIK code even if they already have a valid alias.

Alias valid

Multi-banking scenario

If there are 2 different bank accounts linked to the same alias, PPRO responds to a TRANSACTION call with a REMOTE_DECLINED code and a transientout.aliaslist output parameter. Based on this output, you can display the list of bank accounts. This allows the consumer to choose the bank account for the payment.

Alias declined scenario

In the alias declined scenario, consumer has a valid alias, but the bank sees risk and decides to force a T6 code on the transaction. In this case, ask again for the consumer’s BLIK code.

When the alias is declined, PPRO responds to a TRANSACTION call with a REMOTE_DECLINED code, containing the string ALIAS_DECLINED. Based on this output, you must display the BLIK code input to the consumer.

Blik One Click Integration

Specific input parameters for the TRANSACTION call

Field NameM/O/CTypeRegexDescription
specin.authcodeCnumeric/[0-9]{6}/6-digit code used to authenticate a consumer within BLIK.
specin.consumerrefMascii/[ -~]{3,64}/Unique reference identifying the consumer. Maximum 64 characters. Must not contain personal data.
specin.aliaskeyCascii/[0-9]+/A reference to an alias returned in TRANSIENTOUT. ALIASLIST in a previous TRANSACTION call.

For standard input parameters, check Input parameters for the TRANSACTION call.

Transient input parameters for the TRANSACTION call

Field NameM/O/CTypeRegExDescription
transientin.aliaslabelMascii/[ -~]{8,35}/The consumer’s friendly identifier (e.g., John Doe or john.doe@mail. com) used as a display name for a registered alias in BLIK-enabled banking apps.

Must be a string with a length ranging from 8 to 35 characters (inclusive).
transientin.consumeripMasciiN/AThe consumer’s IPv4/IPv6 address
transientin.consumeruseragentMasciiN/AThe consumer’s User-Agent string

To find out more about transient input parameters, see also this section.

Specific output parameters for the TRANSACTION call

For standard output parameters, check Output parameters for the TRANSACTION call.

Multi-banking scenario

The payment method emits the parameter below, along with a remote decline failure.

Field NameTypeDescription
transientout.aliaslistnumericThis output parameter only happens in the multi-banking scenario.

This parameter consists of a URL-encoded string, which contains a JSON representation of an object following the structure of the example below:

[
{
"key": "unique-blik-id-1",
"label": "Alias label 1"
},
{
"key": "unique-blik-id-2",
"label": "Alias label 2"
}
]

Use this to show the consumer a list of options when choosing to pay with BLIK.

Send the key field of the chosen alias in the subsequent request through the specin.aliaskey parameter.

Alias declined scenario

In rare cases, an issuer system connected to BLIK can refuse a certain transaction for security reasons. If that happens, a custom error message containing the string ALIAS_DECLINED is sent along with a remote decline failure. This means that, if the consumer decides to retry, the specin.authcode input parameter becomes mandatory for the next TRANSACTION call.

TRANSACTION call input

tag=blikoneclick
&txtype=TRANSACTION
&countrycode=PL
&currency=PLN
&amount=1055
&merchanttxid=HzJBfN9FmwEm
&login=johndoe
&password=wXBrpVporFVjGO4R
&contractid=JOHNDOECONTRACT
&channel=testchannel
&merchantredirecturl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Flanding.php
&notificationurl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Fnotification.php
&specin.dynamicdescriptor=DynDescriptor
&accountholdername=John+Doe
&specin.authcode=123456
&transientin.consumeruseragent=Mozilla%2F5.0+%28iPhone%3B+CPU+iPhone+OS+13_5+like+Mac+OS+X%29+AppleWebKit%2F605.1.15+%28KHTML%2C+like+Gecko%29+CriOS%2F83.0.4103.88+Mobile%2F15E148+Safari%2F604.1
&transientin.consumerip=1.1.1.1
&returnmode=urlencodeext

TRANSACTION call output

STATUS=FAILED
&TXID=12398874
&ERRMSG=ALIAS_DECLINED
&REDIRECTSECRET=
&FAILREASON=REMOTE_DECLINE
&CHANNEL=testchannel
&TAG=blik
&MERCHANTTXID=sale1002
&FUNDSSTATUS=NOT_EXPECTED
&FLAGS=
&RAND1234876576=76f76eb76s873aa4b3a4462d12835144
STATUS=FAILED
&TXID=12398874
&ERRMSG=ALIAS_NON_UNIQUE
&REDIRECTSECRET=
&FAILREASON=REMOTE_DECLINE
&CHANNEL=testchannel
&TAG=blik
&MERCHANTTXID=sale1002
&FUNDSSTATUS=NOT_EXPECTED
&FLAGS=
&TRANSIENTOUT%2EALIASLIST=%5B%7B%22key%22%3A%22unique-key-1%22%2C%22label%22%3A
,!%22Alias%20label%201%22%7D%2C%7B%22key%22%3A%22unique-key-2%22%2C%22label%22
,!%3A%22Alias%20label%202%22%7D%5D
&RAND1234876576=76f7bcf76s87a32ab1a4462d12835144

Certification

it is imperative to obtain UX Certification for Blik oneclick integration to guarantee adherence to the Blik UX implementation guidelines by merchants.

  1. PPRO shares the Blik oneclick guideline to merchants prior to integration.
  2. Prior to going live, PPRO provides merchant checkout screenshots and recordings of oneclick UX to Blik for alignment with UX guidelines. Alternatively, merchants may grant access to a user account for Blik to review the one-click payment process.
  3. Blik configures merchant identifiers within the system.
  4. The UX certification process is completed and merchants proceed to go live with the one-click feature.

FAQ

How do I simulate a successful One Click flow on the test environment?
When preparing to integrate BLIK One Click using the testchannel testAPI endpoint, ensure that the value you use for specin.authcode begins with 777.

Example: 777123

This value triggers the sandbox environment to simulate a successful One Click flow.