Integration

How to integrate the KNET payment gateway into Kuwaiti websites and apps

KNET payment gateway integration sends the customer from your checkout to a KNET-hosted payment page and back, and your server then confirms the result before the order is marked paid. You connect either through a Kuwaiti acquiring bank or through a CBK-licensed payment provider, and every payment is a redirect, captured at once, in Kuwaiti dinars with three decimal places.

Last verified Written by the Rukn engineering team

Key takeaways

  • KNET is redirect-only. Checkout.com's documentation lists separate authorization and capture, recurring payments and chargebacks as unsupported, and full and partial refunds as supported. Tap's docs say KNET now supports authorization, so ask your provider.
  • According to Checkout.com and Amazon Payment Services, Apple Pay payments in Kuwait run over the KNET network, using credentials from your acquirer and a certificate set up in the KNET portal.
  • The Kuwaiti dinar has three decimal places. KD 12.750 is 12750 in minor units, not 1275.
  • Since 5 June 2026 the KNET page starts with the card number, not a bank dropdown: matching bank cards appear as the shopper types.
  • Commercial Bank of Kuwait's published KNET contract limits the merchant to selling its own goods, so a marketplace collecting for other sellers looks at a CBK-licensed provider instead.

How the KNET payment flow works

KNET is Kuwait's shared debit card network. Checkout.com describes it as a method that lets customers pay with local debit cards issued by Kuwait's member banks. Whichever bank or provider you use, the flow on a website or app has the same shape:

  1. The customer picks KNET at checkout. Your server creates a payment request with the amount in KWD, your order reference and two return addresses: one for success and one for failure.
  2. The response contains a redirect link. Your checkout sends the customer's browser to that KNET-hosted page.
  3. The customer enters their card details and completes the payment on the KNET page. Your site never sees the card number.
  4. KNET sends the customer back to your success or failure address.
  5. Your server confirms the final status, through a webhook or a status call, and only then marks the order as paid.

Step 5 is the step weak integrations skip. The return address is a browser redirect, so a customer can close the tab, lose signal or land on the success page twice. Treat the webhook or server-side status check as the truth, and make the handler safe to run more than once for the same payment.

Payments also expire. In Checkout.com's KNET implementation, if the customer tries to complete payment more than seven minutes after landing on the KNET page, the payment is voided and a payment_expired webhook is sent. A customer who cancels triggers payment_canceled. Your order model needs a "pending payment" state that can time out cleanly and release reserved stock.

What KNET supports and what it does not

KNET behaves differently from Visa or Mastercard. The table below comes from Checkout.com's KNET feature table and its API-only guide. Other providers can differ: Tap's KNET documentation says authorization is now supported, so ask your provider which of these apply to your account.

CapabilityKNETWhat it means for your build
Payment flowRedirect onlyThe customer always leaves your page for the KNET page and returns
Auto-captureSupportedMoney is taken when the customer pays
Separate authorization and captureNot supported (Checkout.com)Unless your provider confirms otherwise, you cannot hold an amount now and charge it later, so plan pre-authorisation holds and "charge on dispatch" around another method
RefundsFull, partial and multiple partialBuild refunds into your admin panel, and ask your bank to enable them first
ChargebacksNot supported (Checkout.com)A clear, visible refund policy matters
Recurring paymentsNot supportedSubscriptions need a fresh customer payment each cycle
CurrencyKWDAmounts use three decimal places

Two details are easy to miss. First, Checkout.com says you must contact your bank and ask it to enable refunds before you can process them. Second, KFast does not solve the lack of recurring payments. KFast is KNET's fast-checkout option. In Checkout.com's integration, you pass a card_token with the payment request, and the customer can choose to register for KFast on the KNET page; registration needs a one-time password sent to the mobile number registered with their bank. Checkout.com describes it as a way to speed up returning customers; it does not let you charge them without their involvement.

Apple Pay in Kuwait goes through KNET

According to Checkout.com, to process Apple Pay payments in Kuwait you must use the KNET network. You need three credentials from your acquirer (the Transportal ID, the Transportal password and the encryption key) and an Apple Pay payment processing certificate configured in the KNET portal, following the merchant integration manual KNET provides. Amazon Payment Services calls Apple Pay through KNET a mandate for all Apple Pay transactions in Kuwait and states that these transactions do not support the Authorization command or recurring operations, so the KNET limits above apply to Apple Pay too. Our Apple Pay integration guide covers the web and in-app setup step by step.

KWD has three decimal places

The ISO 4217 currency list gives the Kuwaiti dinar (code KWD, number 414) three minor units, so KD 1 is 1000 in minor units. Code written for dollars or euros usually assumes two decimals, and that assumption breaks KWD amounts.

Price shownMinor units (x1000)Common wrong value (x100)
KD 0.50050050
KD 12.750127501275
KD 125.00012500012500

Checkout.com divides the amount you send for KWD by 1000, so 12750 means KD 12.750. Before you go live, check four places: the amount you send to the gateway, the amount you store on the order, the amount you show on invoices and emails, and any rounding you apply to discounts or delivery fees. If one of them assumes cents, a KD 12.750 order shows up as KD 1.275.

The 5 June 2026 checkout change

KNET announced in May 2026 that from 5 June its payment page would no longer start with a list of banks. According to the Arab Times report of 4 May 2026, KNET said the change would reduce the partial account details the bank list could expose, address the rare cases where card numbers at different banks look alike, keep pace with global developments in digital payments, and make it possible to add foreign banks later. It also said CBK-licensed digital wallets could follow, though officials said there was no concrete timeline.

Kuwait Times reported on 6 June 2026 how the new page works: the customer types the first digits of their card, picks it from a list of matching bank cards with bank logos that narrows as they type, then enters the remaining digits and the expiry date.

Neither report described a change to merchant APIs, but the change affects everything around the payment page:

  • Help text, FAQs or screenshots on your site that tell customers to "select your bank" first are now wrong.
  • Automated end-to-end tests that click through the KNET page need updating.
  • Customer support scripts should match the new screen.

Direct KNET or a CBK-licensed provider

There are two ways to reach KNET: a KNET gateway contract with a Kuwaiti bank, or a CBK-licensed payment provider that offers KNET alongside cards and Apple Pay.

Commercial Bank of Kuwait publishes its KNET gateway contract (version 1.0, March 2022). Other banks' terms may differ, but it shows what a direct relationship involves:

  • The merchant may only sell goods and services it owns, and may not collect payments on behalf of other parties (clause 3.7). A marketplace paying out to many sellers does not fit this model.
  • Collected funds are transferred on the day after the payment (appendix, item 12).
  • Fees and commissions are set in the application form, and the bank can change them with at least one month's written notice (clause 5.1).
  • The merchant is responsible for securing any stored card data to the PCI DSS standard, and the bank may have the website and its security reviewed.
  • The contract runs for a year and renews automatically, and it can be terminated if no transaction passes through the KNET gateway for six months (clause 10.1.5).

What a direct bank integration looks like

With a direct contract, your bank issues a Tranportal ID, a Tranportal password and a terminal resource key. (Checkout.com's Apple Pay guide spells these "Transportal" and calls the key an encryption key.) KNET runs a test endpoint, kpaytest, separate from the production endpoint, kpay. Your server builds the payment request with these credentials and redirects the customer. When the payment finishes, KNET sends a POST to your response URL; gateway or processing errors go to your error URL instead. A successful payment comes back with the result CAPTURED, and anything else is a failure.

These details come from an unofficial open-source .NET port of KNET's PHP sample, which its author describes as a proof of concept. Use the official merchant kit your bank provides as the reference.

The provider route

A provider trades some control for speed and breadth. CBK keeps separate registers. Its e-payment services providers register lists nine companies, of which Tap Payments, UPayments and Hesabe are classed as large providers. MyFatoorah appears on CBK's e-money services providers register as a large e-money service provider, and we cover the MyFatoorah integration on its own page. KNET itself is the only entry on CBK's register of e-payment services operators.

FactorDirect bank contractCBK-licensed provider
Who you contract withA Kuwaiti bankThe provider
Payment methodsKNET under the KNET gateway contract; Apple Pay via KNET and card acceptance need separate setup or agreements with the bankUsually KNET, cards and Apple Pay in one API
Marketplaces and split payoutsNot a fit if you collect for othersDepends on the provider's product
Integration styleBank's Tranportal credentials and KNET's gatewayProvider's REST API, SDKs, plugins and dashboard
FeesSet in your bank applicationSet in your provider agreement

KNET fees are not standardised. Banks set them in each merchant's application form (clause 5.1 above), and providers price by plan. Some publish their rates: on 27 September 2026, UPayments' pricing page listed KNET at "(0.5% + 100 Fils) OR (250 Fils) per Transaction" on its Single Merchant and Multi Merchant plans, which also carry a one-time plan fee (KD 250 and KD 700). Our guide to payment gateways in Kuwait lists the licensed providers and the fees they publish. Get the full schedule in writing and model it on your expected order volume.

What your website needs before approval

The same contract lists what must be clearly shown on the merchant's website, a good pre-launch checklist whichever route you take:

  • An accurate description of each product or service
  • Full contact details, including email and phone numbers
  • Return, refund and cancellation policies
  • Delivery policy
  • Country of origin and any export restrictions
  • A privacy policy and a statement on how cardholder data is protected
  • When the card will be charged and how orders are fulfilled
  • A note encouraging customers to keep their transaction receipt

Kuwait's digital commerce rules add their own requirements. Our digital commerce law website checklist maps them to pages and features. This page is a technical guide, not legal advice.

KNET on Shopify, WooCommerce, Magento or Salla

On an off-the-shelf store you rarely write KNET code yourself. You install the plugin or app of a licensed provider that offers KNET, then enter that provider's keys. For example, Tap's developer docs list plugins for WooCommerce, Magento and OpenCart, plus two Shopify apps (a native one and a redirect one), and Salla's help centre documents a KNET connection through Tap. Check your chosen provider's own plugin list.

A custom build makes sense when you need your own order logic, a mobile app on the same checkout, or orders that start in WhatsApp. Our guide on how to start an online store in Kuwait compares both paths.

KNET in mobile apps

KNET's redirect flow works inside an app, but it needs care. Open the KNET page in an in-app browser rather than a bare web view where possible, send the customer back to the right screen through a deep link or universal link, and confirm the result on your server before showing "payment successful". If the customer switches apps mid-payment, the app should check the order status when it returns to the foreground instead of assuming failure.

Amazon Payment Services' documentation applies the KNET requirement to all Apple Pay transactions in Kuwait, so plan for Apple Pay inside an iOS app to be processed over KNET too. Check with your provider how it supports this in apps: Amazon Payment Services' documentation, for example, lists Hosted Checkout and Custom Integration for Apple Pay via KNET, and does not list its mobile integration.

KNET payment links in WhatsApp

If your customers already order through WhatsApp, a KNET payment link fits that conversation: the customer confirms the order in chat, opens the link, pays on the KNET page, lands on your confirmation page and goes back to the chat.

Waslo, Rukn's own messaging platform, takes the order in the chat and sends a KNET payment link from the business's own licensed gateway account; the funds settle directly to the business, never through Rukn. Its AI agent answers from the business's own knowledge base. As a hypothetical example, a restaurant taking 40 WhatsApp orders a night could send a KNET link for each confirmed order instead of collecting cash on delivery. Our WhatsApp Business API integration guide explains the messaging side.

Testing KNET without real money

Each route has its own test data, and providers can change it:

  • Direct bank integrations: your acquiring bank issues test Tranportal credentials for KNET's test environment (kpaytest).
  • Checkout.com: your account manager or integrations engineer must activate KNET in your sandbox, and its KNET API guide lists the sandbox test card to use. According to the same guide, KFast registration cannot be tested in the sandbox because it needs a real one-time password.
  • Tap Payments: see Tap's testing cards reference.
  • MyFatoorah: see MyFatoorah's test cards page.

Test the unhappy paths as hard as the happy one: a cancelled payment, an expired payment, a customer who closes the tab, a double webhook and a partial refund.

Common KNET integration mistakes

  • Marking the order paid from the browser return alone, without a server-side check.
  • Sending amounts with two decimals, or formatting KD prices as KD 12.75.
  • Promising "pay later" or pre-authorization holds before your provider confirms it supports them for KNET.
  • Launching before the refund, delivery and privacy pages the bank expects are live.

How we build KNET checkouts

Rukn is a Kuwait-based team. When we build a KNET checkout, we design the pending-payment state, server-side confirmation, three-decimal amounts, refunds from the admin panel and bilingual receipts from the start, not as a patch after launch. Our website development service covers the full build, from checkout to hosting. Websites start from KD 799, and the final quote depends on scope. If you already have a bank or provider account, send us your checkout requirements and we will map the flow before quoting.

Frequently asked questions

How do I integrate KNET into my website?

Choose a route first: a KNET gateway contract with a Kuwaiti bank, or a CBK-licensed provider that offers KNET. Then your server creates a payment request in KWD, redirects the customer to the KNET page, receives them back on a success or failure address, and confirms the final status by webhook or status call before marking the order paid. Your site also needs clear refund, delivery, privacy and contact pages before approval.

What is the KNET test card number?

There is no single KNET test card: each route has its own. Checkout.com, Tap and MyFatoorah each publish KNET sandbox test cards in their developer docs, and Checkout.com requires your account manager to activate KNET in your sandbox first. For a direct bank integration, your bank issues test Tranportal credentials for KNET's test environment (kpaytest). Use the values on the provider's page on the day you test, because they can change.

Does KNET support recurring payments or subscriptions?

Not according to Checkout.com's KNET documentation, which lists recurring payments as not supported, and Amazon Payment Services says the same for Apple Pay via KNET. KFast, KNET's fast-checkout option, speeds up repeat checkouts, but Checkout.com's guide shows it does not let you charge a customer without their involvement. Ask your provider what it supports. Subscription businesses usually send a payment link before each renewal and offer a credit card option for customers who want automatic billing.

Can you refund a KNET payment?

Yes. According to Checkout.com, KNET supports full refunds, partial refunds and multiple partial refunds, through the dashboard or the refund API. You first need to ask your bank to enable refunds on your account. Checkout.com also lists chargebacks as not supported for KNET, which makes a clear, visible refund policy important.

Does Apple Pay work with KNET in Kuwait?

Yes. According to Checkout.com, Apple Pay payments in Kuwait must use the KNET network. You need a Transportal ID, Transportal password and encryption key from your acquirer, and an Apple Pay payment processing certificate configured in the KNET portal. According to Amazon Payment Services, Apple Pay via KNET does not support the Authorization command or recurring operations.

What changed in the KNET payment gateway in June 2026?

From 5 June 2026 the KNET page starts with the card number instead of a bank list: matching bank cards appear as the customer types, according to Kuwait Times. The Arab Times reported that KNET cited security, the rare overlap of card numbers between banks, keeping pace with global developments in digital payments, and a path to foreign banks and CBK-licensed wallets. No merchant API change was announced, but help text and tests that mention choosing a bank need updating.

Sources

We checked the facts on this page against these sources on 27 September 2026.

  1. Checkout.com docs: KNET payment method (supported features)
  2. Checkout.com docs: KNET for API only (request, redirect, expiry, refunds, KFast, test card)
  3. Checkout.com docs: Apple Pay via KNET
  4. Checkout.com docs: Calculating the amount (KWD amounts are divided by 1000)
  5. Arab Times: KNet set to modify access to gateway (4 May 2026, change effective 5 June 2026)
  6. Kuwait Times: KNET upgrades payment gateway to enhance security (6 June 2026)
  7. Commercial Bank of Kuwait: KNET e-payment gateway service contract (Arabic, version 1.0, March 2022)
  8. Central Bank of Kuwait: register of e-Payment Services Providers (EPSP)
  9. Central Bank of Kuwait: register of e-Money Services Providers (EMSP)
  10. Central Bank of Kuwait: register of e-Payment Services Operators (EPSO), KNET
  11. Amazon Payment Services docs: Apple Pay via KNET
  12. ISO 4217 List One, maintained by SIX (published 17 September 2026): KWD, 414, 3 minor units
  13. UPayments: pricing page (KNET per-transaction fees, checked 27 September 2026)
  14. Tap Payments developer docs: Get started (plugins for WooCommerce, Magento, OpenCart and Shopify)
  15. Salla help centre: الربط مع Knet tap
  16. knet-dotnet-core-integration on GitHub (unofficial .NET port of KNET's PHP sample)

Rukn is an independent software company. We are not affiliated with, endorsed by or a partner of KNET (The Shared Electronic Banking Services Company), and we receive no referral fees. Names and trademarks belong to their owners and are used only to describe compatibility.

Want this built for your business?

Rukn designs and builds web, mobile, cloud, WhatsApp and AI systems for businesses in Kuwait. Tell us what you need and we reply within 24 hours with a plan, timeline and quote.