Kustom Checkout

Configure Kustom Checkout (formerly Klarna Checkout v3) with Omnium to process payments.

Kustom Checkout Integration with Omnium

Klarna Checkout v3 is now Kustom Checkout, following Klarna's rebrand of the product. Only names and API hosts changed - existing configurations keep working, and the stored provider key is still KlarnaCheckout.

Omnium supports Kustom Checkout, providing the following features for managing payments:

  • Capture payments (full or partial)
  • Cancel payments
  • Credit/Refund payments
  • Release Remaining Authorization when necessary
  • Update Merchant ID/Order ID during conversion from cart to order
  • Update Authorization to reflect changes in order value without creating a new order
  • Extend Authorization Time before expiration
  • Update Shipment Information with tracking details after capture
  • Retrieve Settlements/Payouts for reconciliation

This integration allows seamless payment management, helping you stay flexible in handling orders and payments.


Setup Instructions

Follow these steps to configure Kustom Checkout in Omnium and get everything working smoothly.

Configuration Path

  1. Navigate to: Configuration > Settings > Payment > Payment Types > "..." > Add

  2. Select Kustom Checkout. Omnium fills in the Payment Service, Provider Name, Display Name, Base URL, Vue Template and logo for you - the table below is what those values are, and what to check if you are editing an older configuration.

  3. Fill in your Merchant ID and API Token.


Required Fields

FieldDescriptionValue
Unique Payment NameYour label for this configuration. Free text - choose anything that is unique within the tenant.e.g. KustomCheckout
Payment ServiceIdentifies the method on orders and in the chart of accounts.KustomCheckout
Provider NameDropdown selecting the provider that processes the payment.Select Kustom Checkout
Display NameThe name shown to customers in the checkout process.Kustom Checkout
Base URLThe target URL for the API (see Base URL Options below).KustomTestBaseUrl (test) or KustomBaseUrl (production)
Vue TemplateThe template for payment method integration.kustom-checkout-template
Merchant IDYour unique identifier for Kustom, from the Kustom portal.Your Merchant ID from Kustom
API TokenThe API token used for authentication, from the Kustom portal.Your API Token from Kustom

Provider Name is a dropdown - pick Kustom Checkout. Behind it Omnium still stores the original key KlarnaCheckout, so that value appears if you look at the settings as JSON or export them. That is expected and must not be edited: it is what the payment provider is resolved by.

Older configurations may use klarna-v3-payment as the Vue Template and any of KlarnaV3, KlarnaCheckout or Klarna as the Unique Payment Name. Those keep working. Move a configuration to kustom-checkout-template when convenient: the older template only completes the return from the checkout when the configuration is named exactly KlarnaV3.


Base URL Options

Following Klarna's rebrand to Kustom, the API is served from kustom.co. Select the environment from the Base URL dropdown:

EnvironmentShortcutResolves To
ProductionKustomBaseUrlhttps://api.kustom.co
Sandbox/TestKustomTestBaseUrlhttps://api.playground.kustom.co

There is no regional split - the same pair serves every market.

Retired klarna.com hosts

Klarna's API hosts have been switched off and every configuration has been moved to Kustom, so the Klarna options are gone from the Base URL dropdown. The old shortcut values (eubaseurl, eutestbaseurl, nabaseurl, natestbaseurl) are still resolved to the matching Kustom host, so a value left behind anywhere keeps working - it simply shows in the editor as a custom URL rather than as one of the two environments.

Credentials were unchanged by the move: only the host differs.


Additional Configuration

Display Options

SettingDescriptionDefault
Display in CartSet to true to show the Kustom payment option in the shopping cart interface.false
EditableAllow editing payment details in the GUI.false
HiddenHide this payment method from the GUI entirely.false
Read OnlyMake this payment method read-only in the GUI.false
Logo URLURL to a custom logo image to display in the GUI.-

Authorization Settings

SettingDescriptionDefault
Enable Update Authorization AmountAllow updating the authorized amount from the GUI (e.g., when order value changes).false
Enable Extend Authorization TimeAllow extending the authorization expiration time from the GUI.false
Authorization Time In DaysDefault authorization expiration time in days (informational, actual expiration set by Kustom).0

Market & Store Restrictions

SettingDescriptionDefault
Valid On MarketsRestrict this payment method to specific markets. Leave empty for all markets.All markets
Valid For StoresRestrict this payment method to specific stores. Leave empty for all stores.All stores

Operational Settings

SettingDescriptionDefault
Disable TransactionsPrevent new transactions from being created with this payment method.false
Is empty paymentRecord payments without calling Kustom, for when the storefront captures and refunds itself. Provider Name, Base URL and credentials are then ignored. See Empty payment types.false
Get Details From ProviderEnable fetching real-time payment details from Kustom via "Get payment information" action.false

Priority Settings

SettingDescriptionDefault
Credit PriorityPriority for refund processing when order has multiple payments. Lower value = higher priority.0
Capture PriorityPriority for capture when order has multiple payments. Lower value = higher priority.0

Reporting

SettingDescriptionDefault
Payment Provider FeeFee percentage charged by the payment provider. Used in reports.0

Advanced Features

Update Authorization Amount

When enabled via Enable Update Authorization Amount, you can update the authorized amount on an order without creating a new Kustom order. This is useful when:

  • Order value changes after authorization (e.g., item quantity adjustment)
  • Customer adds or removes items before capture

The update is performed through the order's payment actions in the GUI.

Extend Authorization Time

Kustom authorizations have an expiration time. When enabled via Enable Extend Authorization Time, you can extend the authorization before it expires. This is useful for orders with longer fulfillment times.

Shipment Information Updates

After capturing a payment, you can update the shipment information with:

  • Shipping Company/Carrier: The name of the shipping carrier
  • Tracking Number: The shipment tracking identifier
  • Tracking URI: A link to track the shipment
  • Shipping Method: The type of shipping (e.g., postal delivery, pickup point, store pickup)

This information is sent to Kustom and can be displayed to the customer.

Settlements/Payouts

Omnium can retrieve settlement and payout data from Kustom for reconciliation purposes. Settlement data includes:

  • Sales transactions: Captured payments
  • Refund transactions: Credited/refunded payments
  • Fee transactions: Kustom processing fees

Settlement data can be filtered by date range and currency.

Get Payment Details

When Get Details From Provider is enabled, you can fetch real-time payment information from Kustom, including:

  • Current order status
  • Captured amount vs. remaining authorized amount
  • Refunded amount
  • Order lines
  • Capture history with tracking information
  • Authorization expiration date

Alongside Kustom Checkout, Omnium supports Kustom Payment Link (previously Klarna In-Store) for physical retail locations. It uses Kustom's hosted payment page, sent to the customer by SMS or email.

Add it the same way - Configuration > Settings > Payment > Payment Types > "..." > Add, then select Kustom Payment Link. Omnium fills in these values:

FieldValue
Unique Payment NameYour label, e.g. KustomPaymentLink
Payment ServiceKustomPaymentLink
Provider NameSelect Kustom Payment Link
Display NameKustom Payment Link
Vue Templatekustom-payment-link-template
Terms URLRequired. An absolute http or https URL to your terms and conditions, e.g. https://example.com/terms

Terms URL must be an absolute http or https URL. Omnium sends it to Kustom as the terms, confirmation and checkout URL when creating the order, and Kustom requires all three to be valid URIs. A blank value, or one without a scheme such as example.com/terms, is rejected with HTTP 400 and no payment link is created:

Bad value: merchant_urls.checkout (must be a valid http or https URI),
merchant_urls.terms (must be a valid http or https URI),
merchant_urls.confirmation (must be a valid http or https URI)

Omnium checks the field before sending, so an unusable value fails immediately with an explanation on the order rather than as an opaque 400. It is not filled in for you - set it before taking the payment type into use.

As with Kustom Checkout, the Provider Name dropdown reads Kustom Payment Link while the stored value remains KlarnaInStore.

Older configurations use klarna-in-store-payment as the Vue Template, which still works. Note the hyphen between "in" and "store": klarna-instore-payment does not resolve to any component and the payment panel will fail to render.

  1. A Kustom checkout order is created
  2. A hosted payment page (HPP) session is generated
  3. A payment link is distributed to the customer via SMS or email
  4. The customer completes payment on the hosted page
  5. The system polls for session completion
  6. On completion, an authorization transaction is created
  7. Standard capture/refund flow proceeds from there

Refund Limitations

Standard Refunds

Standard refunds are supported for all Kustom markets. You can perform:

  • Full refunds: Refund the entire captured amount
  • Partial refunds: Refund a portion of the captured amount with specific order lines

Return Fee (Refund Charge)

Kustom supports charging a return fee when processing refunds in certain markets. However, this feature has the following conditions:

  • The order must be fully captured in a single capture (no partial captures)
  • The sum of the refunded order lines must exactly match the refund amount
  • Supported markets: Austria, Germany, Denmark, Finland, France, Netherlands, Norway, Sweden

The return fee feature requires specific configuration. Contact support if you need this functionality enabled.


Order Line Handling

When sending order data to Kustom, the following rules apply:

AspectBehavior
Tax HandlingTaxes are always included in unit prices and total amounts
Reference LengthOrder line references are truncated to 64 characters (provider limit)
Quantity RoundingQuantities less than 1 are rounded up to 1 (decimals below 1 are not accepted)
Line TypesSupported: physical, shipping_fee, store_credit, discount, return_fee

Troubleshooting

Common Issues

IssuePossible CauseSolution
Authentication failedInvalid Merchant ID or API TokenVerify credentials in the Kustom portal
Order not foundTransaction ID doesn't match the Kustom orderCheck that the correct environment (test/prod) is used
Capture failedAuthorization expired or already capturedCheck authorization status and expiration date
Refund failedAmount exceeds captured amount or order not capturedVerify capture status before refunding
Update authorization failedOrder already captured or cancelledAuthorization updates only work on authorized orders

Error Handling

Kustom errors are logged and displayed on the order in the Errors section. Check the order details for detailed error messages from Kustom when a payment operation fails.


Supported Operations

OperationKustom CheckoutKustom Payment Link
CaptureYesYes
Partial CaptureYesYes
CancelYesYes
RefundYesYes
Partial RefundYesYes
Update AuthorizationYesYes
Extend AuthorizationYesYes
Release Remaining AuthYesYes
Update Shipment InfoYesYes
Get DetailsYesYes
Get SettlementsYesYes
In-Store HPPNoYes