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 Name | Type | Type | Description |
---|---|---|---|
resource | M | ascii | Requested resource identifier. Must be set to alias_info |
specin.consumerref | M | ascii | Unique 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 Name | M/O/C | Type | Regex | Description |
---|---|---|---|---|
specin.authcode | C | numeric | /[0-9]{6}/ | 6-digit code used to authenticate a consumer within BLIK. |
specin.consumerref | M | ascii | /[ -~]{3,64}/ | Unique reference identifying the consumer. Maximum 64 characters. Must not contain personal data. |
specin.aliaskey | C | ascii | /[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 Name | M/O/C | Type | RegEx | Description |
---|---|---|---|---|
transientin.aliaslabel | M | ascii | /[ -~]{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.consumerip | M | ascii | N/A | The consumer’s IPv4/IPv6 address |
transientin.consumeruseragent | M | ascii | N/A | The 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 Name | Type | Description |
---|---|---|
transientout.aliaslist | numeric | This 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
¤cy=PLN
&amount=1055
&merchanttxid=HzJBfN9FmwEm
&login=johndoe
&password=wXBrpVporFVjGO4R
&contractid=JOHNDOECONTRACT
&channel=testchannel
&merchantredirecturl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Flanding.php
¬ificationurl=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.
- PPRO shares the Blik oneclick guideline to merchants prior to integration.
- 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.
- Blik configures merchant identifiers within the system.
- 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.
Updated 6 months ago