Qliro Checkout Adapter
Overview Document: Payment Adapters Overview
Overview and Unique Capabilities
The Qliro Checkout Adapter integrates Qliro Checkout with Norce Checkout. Changes made in Norce Checkout are synced with Qliro Checkout and vice versa. This page focuses on the unique technical details and configuration for Qliro.
Supported payment methods and other features: Features Overview

Configuration in Norce Admin
The adapter is configured using the following unique details obtained from Qliro:
| Field | Description | Example Value |
|---|---|---|
apiUrl | Qliro API URL (test or production). | https://pago.qit.nu |
merchantApiKey | Your Qliro merchant API key. | abc123 |
merchantApiSecret | Your Qliro merchant API secret. | xyz789 |
Optional Configuration
| Field | Description | Example Value |
|---|---|---|
recurring | Enable recurring payment tokens. | true |
useIntegratedShipping | Enable integrated shipping in Qliro. | true |
useUpsell | Enable upsell offers after checkout completion. Must also be enabled in your Qliro account. | true |
upsellTimeoutSeconds | Maximum time window (seconds) for upsell offers. Default: 300. | 300 |
primaryColor | Hex color for primary UI elements. | #FF5733 |
backgroundColor | Hex color for background. | #FFFFFF |
callToActionColor | Hex color for call-to-action buttons. | #00AA00 |
callToActionHoverColor | Hex color for call-to-action buttons on hover. | #008800 |
cornerRadius | Corner radius for UI elements (pixels). | 4 |
buttonCornerRadius | Corner radius for buttons (pixels). | 4 |
minimumCustomerAge | Minimum customer age requirement. When set, this also prevents the customer from authenticating as a company in Qliro. Leave unset or set to 0 to allow B2B/company checkout. | 18 |
requireIdentityVerification | Require BankID for Swedish customers. | true |
merchantConstraintName | Enables dynamic filtering of payment channels. | my-constraint |
Reference Source Configuration
| Field | Description | Example Value |
|---|---|---|
merchantReferenceSource | Source for merchant reference: OrderId or OrderCartReference. | OrderId |
mapDiscountPerRow | When true, discounts are embedded in item prices. When false, separate discount line items. | false |
useSkuAsIdentifier | When true, uses SKU as item reference. When false, uses item ID. | false |
shippingReferenceSource | Source for shipping reference: ShippingId or CustomValue. | ShippingId |
customShippingReference | Custom shipping reference value (when using CustomValue). | shipping-ref |
voucherReferenceSource | Source for voucher reference: VoucherId or CustomValue. | VoucherId |
customVoucherReference | Custom voucher reference value (when using CustomValue). | voucher-ref |
Redirect URLs Configuration
| Field | Description |
|---|---|
redirectUrls.checkoutUrl | URL to redirect back to checkout page. |
redirectUrls.confirmationUrl | URL to redirect after successful payment. |
redirectUrls.merchantTermsUrl | URL to merchant terms and conditions. |
redirectUrls.merchantIntegrityPolicyUrl | URL to merchant privacy/integrity policy. |
Consent Options
| Field | Description |
|---|---|
consentOptions.emailNewsletterSubscriptionConsentId | Consent ID for email newsletter subscription. |
Shipping Configuration
| Field | Description |
|---|---|
shippingConfiguration.provider | MerchantProvided, NShift, or Ingrid |
shippingConfiguration.unifaunCheckoutId | nShift checkout ID (when using NShift) |
Qliro API Environments
In addition to the generic Norce Adapter URLs (see Payment Adapters Overview), Qliro uses the following external API environments:
| Environment | Qliro API Base URL |
|---|---|
| Production | https://payments.qit.nu |
| Test | https://pago.qit.nu |
Create Payment
To get a Qliro Checkout HTML snippet, create a Qliro Checkout payment for an existing Norce order:
POST /api/checkout/v1/orders/{order_id}/payments
Host: {slug}.api-se.stage.norce.tech
x-merchant: {merchant}
x-channel: {channel}
Authorization: Bearer {token}The response includes an HTML snippet containing a script tag that should be rendered on your checkout page. The script tag will load an iframe which guides the customer through the Qliro Checkout UI.
Example response:
{
"paymentId": "pyTWfWFQDxIwodoImZHAfSsZvON",
"htmlSnippet": "<script type=\"text/javascript\">...</script><div id=\"qliro-root\"></div>"
}The adapter also updates your Norce order with the Qliro payment details. The payments[].id property represents the paymentId from the response, and payments[].reference contains the Qliro order ID.
Confirmation Page
When the payment has been confirmed, Qliro redirects the user to the confirmationUrl. You must also include the Qliro Checkout iframe on your confirmation page, as it shows important purchase details to the customer.
To display the confirmation page, retrieve the Qliro Checkout order and render the snippet:
GET /api/checkout/v1/orders/{order_id}/payments/{payment_id}
Host: {slug}.api-se.stage.norce.tech
x-merchant: {merchant}
x-channel: {channel}
Authorization: Bearer {token}When the Qliro Checkout order is in the state of PurchaseCompleted, it will show a "thank you" page instead of the default purchase flow.
Creating a Recurring Payment
To create an order using a previously stored recurring token:
POST /api/checkout/v1/orders/{order_id}/payments/recurring
Host: {slug}.api-se.stage.norce.tech
x-merchant: {merchant}
x-channel: {channel}
Authorization: Bearer {token}
Content-Type: application/json
{
"token": "3d2092a6-7baf-49e3-bd34-d0d0d85744b5"
}The token is retrieved from a previous order where the customer completed a purchase with recurring payments enabled. To use recurring payments, merchants must activate this feature on both their Qliro merchant account (by contacting Qliro support) and in the Norce Qliro configuration by setting recurring: true.
Upsell
The upsell feature allows merchants to offer additional products to customers after they have completed their initial purchase. This is useful for subscription services, accessories, or related products.
To enable upsell:
- Enable
useUpsellin the adapter configuration - Ensure upsell is also enabled in your Qliro merchant account (contact Qliro support)
- Configure
upsellTimeoutSecondsto set the maximum time window for upsell offers (default: 300 seconds)
When an order is in the Accepted state and upsell is enabled, you can add items to the order. The adapter will call Qliro's upsell API to add the items to the existing payment. Once the upsell period expires or you explicitly complete the upsell, call the complete endpoint:
POST /api/checkout/v1/callback/orders/{order_id}/payments/{payment_id}/upsell/complete
Host: {slug}.api-se.stage.norce.tech
x-merchant: {merchant}
x-channel: {channel}
Authorization: Bearer {token}This endpoint requires no request body. A successful response returns 200 OK with no content.
Synchronization Callbacks
The Qliro Checkout Adapter automatically handles synchronization between Qliro and Norce:
- Cart Changed: Qliro UI is suspended, order updated, then resumed
- Customer Update: Norce order updated with customer info from Qliro
- Shipping Option Update: Norce order updated with shipping selection
Idempotency and Retries
Qliro's checkout system uses idempotency to ensure that repeated identical requests have the same effect. This is important for retry scenarios and webhook handling. Please read the Qliro Checkout documentation on Idempotency and retries for detailed information.
Troubleshooting (Qliro Specific)
In addition to the generic troubleshooting steps:
- Review the order status in Qliro's merchant portal.
- If Capture fails, verify the Norce order is in the reserved state.
- Use the refresh endpoint to update available payment actions:
POST /api/order/v1/orders/{order_id}/payments/{payment_id}/refresh
Host: {slug}.api-se.stage.norce.tech
x-merchant: {merchant}
x-channel: {channel}
Authorization: Bearer {token}Common Errors
- 409 Conflict: A payment already exists for this order.
- Validation Fails: Check stock availability and discount validity.
- Capture Fails: Order must be in
reservedstate.