Terminal-2 icon

One-time numeric code payments

Accept one-time numeric code payments with BLIK.

Shoppers in Poland can make secure payments with a one-time numeric code generated from their BLIK banking app. A BLIK payment can be initiated by your store staff from the POS app or by the shopper on the terminal.

Requirements

Before you begin, take into account the following requirements, limitations, and preparations.

Requirement Description
Integration type Make sure that you have built a Terminal API integration or a Standalone terminal solution. Standalone terminals only support the shopper-initiated flow.
Limitations BLIK one-time numeric code payments are only supported in Poland.
Setup steps Before you begin, add the BLIK payment method to your Adyen account.

One-time numeric code payment flows

With a Terminal API integration, there are several flows you can use for a BLIK one-time numeric code payment.

  • Merchant-initiated flow: The shopper informs the store staff, that they want to make a BLIK payment. From the POS app, the store staff initiates a payment. The payment request must specify the blik_pos payment brand. The shopper then enters their 6-digit BLIK code on the terminal. This flow requires an update to your integration, but it is faster and easier for the shopper.

  • Shopper-initiated flow: You send a payment request to the terminal. On the terminal, the shopper selects the Scan button (Inne in Polish) and then BLIK, and enters a 6-digit BLIK code. This flow requires no changes to the integration. You just need to add the BLIK payment method in your Customer Area. This flow, however, is less convenient for the shopper compared to the merchant-initiated flow.

Merchant-initiated flow

To initiate a BLIK payment from the POS app:

  1. Make a POST Terminal API request, specifying:

    • The standard SaleToPOIRequest.MessageHeader object, with MessageClass set to Service and MessageCategory set to Payment.

      Parameter Required Description
      ProtocolVersion -white_check_mark- 3.0
      MessageClass -white_check_mark- Service
      MessageCategory -white_check_mark- Payment
      MessageType -white_check_mark- Request
      ServiceID -white_check_mark- Your unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal (POIID) being used.
      SaleID -white_check_mark- Your unique ID for the POS system component to send this request from.
      POIID -white_check_mark- The unique ID of the terminal to send this request to. Format: [device model]-[serial number].
    • PaymentRequest: The request body. This must include:

      Parameter Required Description
      SaleData.SaleTransactionID -white_check_mark- An object with:
      • TransactionID: your reference to identify a payment. We recommend using a unique value per payment. In your Customer Area and Adyen reports, this will show as the merchant reference for the transaction.
      • TimeStamp: date and time of the request in UTC format.
      PaymentTransaction.AmountsReq -white_check_mark- An object with:
      • Currency: the transaction currency.
      • RequestedAmount: The final transaction amount.
    • The TransactionConditions object, including:

      Parameter Required Description
      paymentBrand -white_check_mark- An object with:
      • Currency: the transaction currency.
      • RequestedAmount: The final transaction amount.
      AllowedPaymentBrand -white_check_mark- The payment brands accepted for this transaction: blik_pos

    This shows an entry field for the BLIK code on the terminal screen.

  2. The shopper gets a 6-digit BLIK code from their BLIK banking app and enters the code on the terminal.
    The payment is sent to the Adyen payments platform for processing.

  3. The shopper receives a request in their BLIK banking app to confirm the payment.

  4. You receive the result of the payment, as you would receive the result of a card payment. Note that on the shopper receipt, you find BLIK's reference for the payment in the Transaction ref field.

You can view the details of a payment in your Customer Area, under Transactions > Payments.

Shopper-initiated flow

  1. In the shopper-initiated flow, you make a payment request as you would for a card payment:

  2. On the terminal, the shopper selects the Scan button and then BLIK Code from the card options. This shows an entry field for the BLIK code on the terminal screen.

  3. The shopper gets a 6-digit BLIK code from their BLIK banking app and enters the code on the terminal

  4. The shopper receives a request in their BLIK banking app to confirm the payment.

  5. You receive the result of the payment, as you would receive the result of a card payment. Note that on the shopper receipt, you find BLIK's reference for the payment in the Transaction ref field.

Refunds

Payments with a one-time numeric code support referenced refunds, so you have to make a ReversalRequest to refund this type of payment.
Both full and partial referenced refunds are allowed.

See also