Payment Page Integration
Use this flow when integrating Blikk Payment Page into your website, app, or backend-driven checkout. The payment page is a hosted solution that handles the entire payment flow, including redirecting the user to their bank for Strong Customer Authentication (SCA) and returning them to your site after the payment is complete.
It is hosted in our production environment at https://payment.blikk.tech/ and is available for both mobile and desktop browsers. The payment page is designed to be opened in a new browser tab or window.
On mobile devices it displays a button for opening the banking app directly, while on desktop it displays a QR code that can be scanned with a mobile device to open the banking app directly.
After creating a payment, do not redirect immediately when scaRedirectUrl first appears. Keep polling the payment and update UI messages based on the current status.
Recommended Flow
- Create payment.
- Start polling payment status (
GET /ecom/v3/payments/:id). - Render status-specific UI while polling.
- Redirect/open link only when the status and
scaRedirectUrlrules below are met. - Continue polling until terminal status.
Status-Driven Behavior
| Status | scaRedirectUrl | What to show/do |
|---|---|---|
DRAFT | Present and points to https://light.blikk.tech/... | Onboarding is required. Redirect user to this URL so onboarding can be completed. |
SCA_REQUIRED | Present | Mobile app/browser: show button or link labeled Open Banking App that opens scaRedirectUrl. Desktop app/browser: show QR code containing scaRedirectUrl. |
SCA_REQUIRED | Missing/empty | Show message instructing user to check their phone for a banking app notification. |
PENDING, SCA_COMPLETE | Any | Show waiting/progress message and keep polling. |
SUCCESS, CANCELLED, REJECTED, ERROR | Any | Terminal state. Stop polling and render final result. |
Important Rules
- Do not treat non-empty
scaRedirectUrlalone as a redirect trigger. - Use both
statusandscaRedirectUrlto decide the next step. - For desktop QR flow, encode the raw
scaRedirectUrlvalue directly in the QR code. - Keep backend/server-side status checks authoritative before finalizing order state.
Example SCA User Messages
| Scenario | English | Icelandic |
|---|---|---|
SCA_REQUIRED with URL (mobile) | Open your banking app to approve payment. | Opnaðu bankaappið þitt til að staðfesta greiðslu. |
SCA_REQUIRED with URL (desktop) | Scan this QR code with your phone. | Skannaðu þennan QR-kóða með símanum þínum. |
SCA_REQUIRED without URL | Please check your phone for a banking app notification. | Athugaðu hvort tilkynning frá bankanum þínum hafi borist í símann þinn. |
Displaying Payment Status (User-Facing Translations)
| Status | English | Icelandic |
|---|---|---|
DRAFT | Payment pending... | Greiðsla í vinnslu... |
PENDING | Waiting for authorization… | Beðið eftir heimild… |
SCA_REQUIRED | Waiting for authorization… | Beðið eftir heimild… |
SCA_COMPLETE | Waiting for confirmation... | Beðið eftir heimild… |
SUCCESS | Payment successful | Greiðsla tókst |
ERROR | Payment failed | Villa við greiðslu |
REJECTED | Payment rejected | Greiðslu hafnað |
CANCELLED | Payment cancelled | Hætt var við greiðslu |
Group non-terminal waiting statuses with same message to reduce flicker.
Payment Status Lifecycle
| Status | Description | Keep Polling |
|---|---|---|
DRAFT | Created; not yet initiated by debtor | ✅ |
PENDING | Initiated; awaiting bank processing | ✅ |
SCA_REQUIRED | Bank indicates SCA is required | ✅ |
SCA_COMPLETE | User has completed SCA; settlement pending | ✅ |
ERROR | Irrecoverable error; payment invalid | ❌ |
CANCELLED | Cancelled by user or merchant | ❌ |
REJECTED | Rejected by user or bank | ❌ |
SUCCESS | Completed; funds transferred | ❌ |