Skip to content

BLIK without a code

With BLIK without a code users can make purchases with just a single click, eliminating the hassle of repeatedly entering their payment code for each transaction.

This streamlined process not only saves time but also reduces the risk of errors that may occur when manually typing sensitive information.

Step 1: Token creation

Action 1: Create the order
Action 2: Generate the transaction
Action 3: Get the transaction status

To begin using this feature, you first need to generate a unique token that will securely represent your payment details. This token creation step ensures that your sensitive information is protected while enabling seamless and swift transactions.

Action 1: Create the order

When creating an order, the BLIK without a code process enhances the existing order body message by incorporating tokenization elements and setting the paymentMethod as BLIK.

Request URL:

https://stargate-cer.qly.site1.sibs.pt/api/v1/payments

Request Headers:

Autorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6I (...)
X-IBM-Client-Id: b4480347-9fc8-4790-b359-100a99c60ea3
Content-Type: application/json
Data ElementTypeConditionDescription
tokenisationTokenisationMandatoryCustomer payment tokens. These tokens are provided at the end of a successful tokenization. Only present for Tokenization purposes.
tokenisationRequestTokenisationRequestMandatoryProvided field on Checkout request to perform card tokenization. 
tokeniseCardBooleanMandatoryIndicates if a card tokenization is requested.

Example request including the tokenization and customer acceptance elements as follows:

{
    "merchant": {
        "terminalId": {{TerminalID}},
        "channel": "web",
        "merchantTransactionId": "9227074" // mock merchanttransactionId
    },
    "tokenisation": {
        "tokenisationRequest": {
            "tokeniseCard": true
        },
    },
    "transaction": {
        "transactionTimestamp": "{{trxDatetime}}",
        "description": "Ugi fuvun vaocotuz co oho okazi ozutit pam rulucni apulimcil faupef ufuri da.",
        "moto": false,
        "paymentType": "AUTH", // PURS
        "amount": {
            "value": 24.00,
            "currency": "PLN"
        },
        "paymentMethod": [
            "BLIK"
        ]
    }
}
Action 2: Generate the transaction

Note that the following request needs an Authorisation Header with the transactionSignature returned from checkout operation and createToken parameter set to true.

In this request, the Bearer Token is replaced by the checkout response transactionSignature.

Request example:

Request URL:

https://stargate-cer.qly.site1.sibs.pt/api/v1/payments/{transactionID}/blik/purchase

Request Headers:

Authorisation: Digest {transactionSignature}
X-IBM-Client-Id: b4480347-9fc8-4790-b359-100a99c60ea3
Content-Type: application/json
{
    "info": {
        "deviceInfo": {
            "browserAcceptHeader": "application/json, text/plain, */*",
            "browserJavaEnabled": "false",
            "browserLanguage": "en",
            "browserColorDepth": "24",
            "browserScreenHeight": "1080",
            "browserScreenWidth": "1920",
            "browserTZ": "-60",
            "browserUserAgent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
            "geoLocalization": "Lat: 38.7350528 | Long: -9.2143616",
            "systemFamily": "Windows",
            "systemVersion": "Windows",
            "deviceID": "498bfd4c3a3645b38667a7037b616c18",
            "applicationName": "Chrome",
            "applicationVersion": "106"
        },
        "customerInfo": [
            {
                "key": "customerName",
                "value": "DIOGO M"
            },
            {
                "key": "customerEmail",
                "value": "{{CustomerEmail}}"
            }
        ]
    },
    "merchant": {
        "merchantURL": "https://egadget2.azurewebsites.net/#/returns?id=4qm1q5p6eTgzREWYHRPA"
    },
    "BLIKCode": "{{blikCode}}"
}

Upon completing the purchase operation, you should receive a pending paymentStatus. To obtain the latest update, it is necessary to subsequently perform a “Get Status” operation.

Action 3: Get the transaction status

The Authorization HTTP header is set to the Bearer token as it was used in the initial Checkout.

GET {transactionID}/status

Request URL:

https://stargate-cer.qly.site1.sibs.pt/api/v1/payments/{transactionID}/status

Request Headers:

Authorization: ‘Bearer <AuthToken>’
X-IBM-Client-Id: ‘<ClientId>’
Content-Type: application/json

A successful technical response comprises of an HTTP-200 status and a returnStatus.statusCode=”000″.

Here are some examples of the possible result codes:

Result CodestatusMsgDescriptionAction
HTTP-200SuccessSuccess responseN/A
HTTP-400Bad RequestThe JSON payload is not matching the API definition or some mandatory HTTP headers are missing.Please check in API Market for the correct syntax.
HTTP-401UnauthorizedOn the Authorization, Bearer token is invalid/expired or not associated with the Terminal used.Please check in SIBS Backoffice under the Credentials if the token is valid and create a new one if needed.
HTTP-403ForbiddenThe ClientID set on the X-IBM-Client-Id HTTP header is not valid or does not possess a valid subscription to the API.Please check in SIBS Backoffice under the SPG APP 2.0 if the ClientID is correct. If the problem persists contact SIBS Gateway support for a ClientID reset.
HTTP-405Method Not AllowedThe HTTP Method used is not matching any of the API definitions available.Please check in API Market for the correct HTTP Method.
HTTP-429Too Many Requests
The API calls rate limit has been exceeded.Please check in API Market for information on the rate limits that apply to the API.
HTTP-500Internal Server ErrorThe API call has failed… and its most likely on our side.You should retry the operation, and if the problem persists contact SIBS Gateway support for assistance.
HTTP-503Service UnavailableThe API call is not currently available. Usually we are always on, but short availability issues may occur during scheduled maintenance.You should wait and try again later.

You should receive a successful technical response comprises of an HTTP-200 status, a returnStatus.statusCode=”000″ and, if the tokenisation succeeds, the BLIK token details that you should save for later use.

{
    "merchant": {
        "terminalId": "100888",
        "merchantTransactionId": "9227074"
    },
    "transactionID": "bmbd9b6KgRQG7xkNDHPx",
    "amount": {
        "currency": "PLN",
        "value": "24.00"
    },
    "paymentType": "AUTH",
    "paymentStatus": "Success",
    "token": {
        "tokenName": "#undefined#",
        "tokenType": "BLIK",
        "value": "OTFhYWE0MmMtNjQzYi00MmFlLTk1OTItM2M"
    },
    "paymentMethod": "BLIK",
    "execution": {
        "endTime": "2023-06-16T10:39:23.845Z",
        "startTime": "2023-06-16T10:39:23.680Z"
    },
    "returnStatus": {
        "statusCode": "000",
        "statusMsg": "Success",
        "statusDescription": "Success"
    }
}

Step 2: Token usage

Action 1: Create the order
Action 2: Generate the transaction
Action 3: Get the transaction status

You can now use the token generated in the previous step to authorize payments easily and securely with just a single click.

Action 1: Create the order

Create the order, adding the tokenization elements. At this point, all the saved token values for that merchant should be added to the order.

Data ElementTypeConditionDescription
tokenisationTokenisationMandatoryCustomer payment tokens. These tokens are provided at the end of a successful tokenization. Only present for Tokenization purposes.
paymentTokensPaymentTokensMandatoryToken value tuple.
tokenTypeStringMandatoryToken Type.
Possible value is BLIK.
valueStringMandatoryToken value.
{
    "merchant": {
        "terminalId": {{TerminalID}},
        "channel": "web",
        "merchantTransactionId": "9227074" // mock merchanttransactionId
    },
    "tokenisation": {
        "tokenisationRequest": {
            "tokeniseCard": false
        },
        "paymentTokens": [
            
            {
                "tokenType": "BLIK",
                "value": "NDRlOTFhODMtODgzYy00ZmM0LTkxODMtMzZ"
            },
            {
                "tokenType": "BLIK",
                "value": "{{blikTokenValue}}"
            }
        ]
    },
    "transaction": {
        "transactionTimestamp": "{{trxDatetime}}",
        "description": "Ugi fuvun vaocotuz co oho okazi ozutit pam rulucni apulimcil faupef ufuri da.",
        "moto": false,
        "paymentType": "AUTH", // PURS
        "amount": {
            "value": 24.00,
            "currency": "PLN"
        },
        "paymentMethod": [
            "BLIK"
        ]
    }
}
Action 2: Generate the transaction

The next action follows the same process as before for BLIK token creation, with the addition of including the selected BLIK Token.

{
    "info": {
        "deviceInfo": {
            "browserAcceptHeader": "application/json, text/plain, */*",
            "browserJavaEnabled": "false",
            "browserLanguage": "en",
            "browserColorDepth": "24",
            "browserScreenHeight": "1080",
            "browserScreenWidth": "1920",
            "browserTZ": "-60",
            "browserUserAgent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
            "geoLocalization": "Lat: 38.7350528 | Long: -9.2143616",
            "systemFamily": "Windows",
            "systemVersion": "Windows",
            "deviceID": "498bfd4c3a3645b38667a7037b616c18",
            "applicationName": "Chrome",
            "applicationVersion": "106"
        },
        "customerInfo": [
            {
                "key": "customerName",
                "value": "DIOGO M"
            },
            {
                "key": "customerEmail",
                "value": "{{CustomerEmail}}"
            }
        ]
    },
    "tokenInfo": {
        "tokenType": "BLIK",
        "value": "{{blikTokenValue}}"
    }
Action 3: Get the transaction status

You can check the status of your transaction making a GET request, to which you should receive a response containing the BLIK Token and the Success status.

The Authorization HTTP header is set to the Bearer token as it was used in the initial Checkout.

GET {transactionID}/status

Request URL:

https://stargate-cer.qly.site1.sibs.pt/api/v1/payments/{transactionID}/status

Request Headers:

Authorization: ‘Bearer <AuthToken>’
X-IBM-Client-Id: ‘<ClientId>’
Content-Type: application/json

A successful technical response comprises of an HTTP-200 status and a returnStatus.statusCode=”000″.

Here are some examples of the possible result codes:

Result CodestatusMsgDescriptionAction
HTTP-200SuccessSuccess responseN/A
HTTP-400Bad RequestThe JSON payload is not matching the API definition or some mandatory HTTP headers are missing.Please check in API Market for the correct syntax.
HTTP-401UnauthorizedOn the Authorization, Bearer token is invalid/expired or not associated with the Terminal used.Please check in SIBS Backoffice under the Credentials if the token is valid and create a new one if needed.
HTTP-403ForbiddenThe ClientID set on the X-IBM-Client-Id HTTP header is not valid or does not possess a valid subscription to the API.Please check in SIBS Backoffice under the SPG APP 2.0 if the ClientID is correct. If the problem persists contact SIBS Gateway support for a ClientID reset.
HTTP-405Method Not AllowedThe HTTP Method used is not matching any of the API definitions available.Please check in API Market for the correct HTTP Method.
HTTP-429Too Many Requests
The API calls rate limit has been exceeded.Please check in API Market for information on the rate limits that apply to the API.
HTTP-500Internal Server ErrorThe API call has failed… and its most likely on our side.You should retry the operation, and if the problem persists contact SIBS Gateway support for assistance.
HTTP-503Service UnavailableThe API call is not currently available. Usually we are always on, but short availability issues may occur during scheduled maintenance.You should wait and try again later.