Key takeaways
- The CBK e-payment register lists "Tap Payments e-Payment Service Provider (KSCC)" in the large EPSP category, one of three large licences on that register.
- According to Tap's docs and help centre, KNET on Tap is a redirect to the KNET page, accepts KWD only, is available only to merchants based in Kuwait, and now supports authorization.
- Tap's help centre says KNET payouts arrive within 2 business days and Visa, Mastercard and Amex payouts within 5. KWD settlement has no extra charge.
- According to Tap's docs, it offers card SDKs for web, React Native, Flutter, native iOS and Android, plus checkout SDKs for React Native and Flutter. Its docs say secret keys stay on your server.
- Confirm payments from the webhook, and validate its hashstring with the amount formatted to three decimals for KWD and BHD.
A Tap Payments integration in Kuwait is usually one of two jobs. Either a Kuwaiti business wants KNET, cards and Apple Pay on a website or app, or a brand that already sells in Kuwait wants to add Saudi and Bahraini customers without a second gateway.
Below: Tap's CBK licence, fees and payouts, how each payment method behaves, build steps for web and React Native (Expo), sandbox testing, and the webhook details that cause lost orders. The facts come from the Central Bank of Kuwait register and Tap's developer documentation and help centre (plus Amazon Payment Services' docs for Apple Pay via KNET), checked on 27 September 2026.
Is Tap Payments licensed in Kuwait?
As of 27 September 2026, yes. The Central Bank of Kuwait (CBK) keeps a public register of e-payment services providers. It lists Tap Payments e-Payment Service Provider (KSCC) under the Large EPSP category, with an address in Salmiya and the website www.tap.company.
The register currently shows nine e-payment services providers. Three hold the large category (Tap, UPayments and Hesabe) and six hold the small category. The register does not print licence numbers or dates, so if your compliance team needs a document, ask Tap for a copy of the licence.
If you sell online in Kuwait, your checkout also has to meet Kuwait's digital commerce law. Our digital commerce law checklist for websites maps it to screens and fields. For the full list of licensed options and how they differ for developers, see payment gateways in Kuwait.
Fees, payouts and KNET activation
As of 27 September 2026, we found no published Kuwait fee table on Tap's site, so your transaction rate is a quote for your business. Get it in writing. Tap's help centre does publish these terms:
| Item | What Tap's help centre says |
|---|---|
| KNET eligibility | Only merchants based in Kuwait |
| KNET activation | Requested from Tap's Merchant Experience team, enabled within 24 business hours if eligible |
| KNET payouts | Settled within 2 business days |
| Visa, Mastercard, Amex payouts | Settled within 5 business days |
| KWD settlement | Automatic, no extra charge |
| USD settlement | On request, flat USD 25 fee per request |
If most of your customers pay by card, plan cash flow around the 5-day card cycle, not the 2-day KNET one.
Payment methods you get through one Tap integration
Tap's API uses one charge endpoint for every method. You change the source.id and the currency, and Tap routes the payment. The differences that matter are the flow and the currency lock.
| Method | Market | Currency | Flow on Tap | Notes from Tap's docs |
|---|---|---|---|---|
| KNET | Kuwait | KWD only | Redirect to the KNET page | Source src_kw.knet. Tap's KNET doc says authorization is now supported. KNET's saved-card feature is KFAST |
| Visa, Mastercard, Amex | International | Currencies enabled on your account | Card SDK or hosted page, 3-D Secure redirect when the card is enrolled | Tokenized by Tap's SDKs, so card data never touches your server |
| mada | Saudi Arabia | SAR only | Card flow or Tap's hosted page | Source src_sa.mada limits the page to mada. Test cards exist with and without 3-D Secure |
| Benefit | Bahrain | BHD only | Web Card SDK or redirect to the Benefit page, customer confirms with a PIN | Source src_bh.benefit. Does not support authorization |
| Apple Pay | Kuwait, Saudi Arabia, UAE, Qatar, Bahrain | KWD, SAR, AED, QAR, BHD, plus USD | Wallet button or Tap hosted checkout | Must be enabled by Tap first. Not supported inside iframes or pop-up windows |
Tap's test card page also lists NAPS/QPay (Qatar), STC Pay (Saudi Arabia) and OmanNet (Oman). Ask Tap which of them your Kuwaiti account can enable.
Four ways to integrate Tap
Tap's overview page describes four integration routes. The right one depends on how much of the checkout you want to own.
- Hosted checkout. Your server creates a charge and the customer pays on Tap's page. Least code, least control over design. Apple Pay and mada appear there without extra work.
- Card SDK (tokenization). Tap's SDK draws the card fields inside your page or app and returns a one-time token. Your server charges the token. You own the checkout design without handling raw card numbers.
- Plugins. According to Tap's overview page, its technical team built plugins for WooCommerce, Magento and OpenCart. For Shopify, it lists a native plugin built by Tap and a redirection plugin built by partners.
- Custom card form. Only if you hold a valid PCI DSS certificate and attestation of compliance. Tap then shares an RSA key to encrypt card data before it reaches their token API. This route is only for merchants that already hold that certification.
For a custom website or app, option 2 plus a redirect for KNET is the common pattern: embedded card fields and an Apple Pay button, with KNET and Benefit sending the customer to their own payment pages.
Integrating Tap on a website
The same steps apply to Next.js, Laravel, Django or any server-rendered stack.
- Get keys. Register at tap.company, then take the test and live keys from the Tap dashboard. Tap issues a secret key and a public key for each mode. The secret key lives in a server environment variable only. Tap's docs are explicit that secret keys must never be shipped to the frontend.
- Register your domain. Tap needs the domain that will load its web SDKs registered with them, and that includes the Apple Pay button.
- Create the charge on your server. Send amount, currency, customer,
source.id(a card token,src_kw.knet,src_bh.benefitorsrc_sa.mada), aredirect.urland apost.url. For KNET and Benefit, the response comes back with status INITIATED and atransaction.url. Send the customer there. - Handle the return. Tap sends the customer back to your redirect URL with a
tap_idparameter. Your server retrieves that charge from Tap before showing "paid". Never trust the query string alone. - Confirm from the webhook. The
post.urlreceives the final status server to server. Mark the order paid from there, after validating the hashstring (below). - Refunds. Create them through Tap's Refunds API. Pass a
post.urlon the refund request so the result also reaches your server; Tap's webhook doc includes a hashstring recipe for refunds too. Retrieve the refund from the API before you update the order.
KNET has its own rules no matter which provider you use. The details are in our KNET integration guide.
Integrating Tap in a React Native (Expo) app
According to Tap's developer docs, Tap offers React Native SDKs for cards, Apple Pay and checkout, alongside Flutter, native iOS (Swift) and native Android (Kotlin) SDKs. For an Expo app, this is the structure we use:
- Create charges on your backend. The app calls your own API, which creates the charge with the secret key and returns only what the app needs, such as the KNET
transaction.url. - Open redirect methods in an in-app browser. Open the transaction URL with
expo-web-browser, and setredirect.urlto a page on your domain that returns the customer to the app through a universal link or your app scheme. - Use native SDKs in a development build. Tap's React Native card and Apple Pay SDKs are native modules, so they run in an Expo development build, not in Expo Go. Register the app's bundle ID with Tap, or the mobile SDKs will not run.
- Keep secrets on the server. Creating charges, retrieving a charge to confirm status, and any hash string an SDK needs belong on your backend. Tap's Flutter checkout docs describe that hash string as an HMAC-SHA256 signature generated with your secret key. The app holds only the public key.
- Confirm from the backend. The order is released only after your backend reads the charge status from Tap and from the webhook.
Flutter alternative. If your app is built in Flutter, Tap's docs list a Card SDK, a Checkout SDK and an Apple Pay SDK for Flutter. Tap's Flutter checkout sample builds the hash string in Dart; in production, build it on your server and send it to the app. The same rules on bundle ID registration, secret keys and backend confirmation apply.
Apple Pay through Tap in Kuwait
Tap's docs say Apple Pay has to be enabled on the Tap side before it works, and list Kuwait, Saudi Arabia, the UAE, Qatar and Bahrain as supported, with USD as an additional currency.
Three practical points:
- Button placement on the web. Apple Pay does not work inside iframes or pop-up windows, so Tap's docs suggest adding a separate Apple Pay button on your checkout page.
- Hosted checkout. If you use Tap's hosted page, Apple Pay shows up without extra configuration.
- KNET routing in Kuwait. Amazon Payment Services' documentation describes Apple Pay through KNET as mandatory for Apple Pay transactions in Kuwait, and says KNET Apple Pay does not support authorization or recurring operations. Tap's KNET documentation says KNET card payments support authorization. As of 27 September 2026, we did not find the Apple Pay routing described in Tap's docs. If you plan pre-authorizations, subscriptions or saved-wallet billing in KWD, ask Tap in writing how Apple Pay on your Kuwaiti account is routed.
Our Apple Pay integration guide covers the Apple side: merchant IDs, domain verification and in-app setup.
Webhooks, the hashstring and three decimals
Skip the webhook and orders go missing: the customer paid, but your system never hears about it.
- According to Tap's webhook docs, Tap posts to your
post.urlonly for CAPTURED and FAILED charges. INITIATED and ABANDONED charges are not posted, and their post status stays PENDING. - If your endpoint is unreachable, Tap makes two more attempts, then marks the post status ERROR. Your system needs a job that retrieves stale pending charges directly from the API.
- Tap cannot post to localhost. Use a public tunnel or a staging server when testing.
- Each webhook carries a
hashstringheader. You rebuild it with HMAC-SHA256 from the charge ID, amount, currency, gateway and payment references, status and created time, using your secret key, then compare. - The amount must be formatted to the currency's decimals before hashing. Tap's table gives KWD and BHD three decimals (
3.000) and SAR and AED two. A KWD order of 12.5 hashed as12.50will fail validation every time.
This is also why the redirect is not enough. Tap's docs note that a customer can close the browser or lose connection after paying. The webhook still arrives, and your order still gets marked paid.
Testing in the Tap sandbox: KNET test cards
Test keys create transactions in Tap's sandbox. Tap publishes a test card page with KNET, Benefit, NAPS/QPay, mada, Visa, Mastercard, Amex and OmanNet cards, and STC Pay test phone numbers.
For KNET, Tap's page tells you which test bank to pick from the bank list on the KNET test page, and lists test cards and expiry dates that return CAPTURED or NOT CAPTURED. For cards, specific expiry dates return DECLINED, EXPIRED_CARD or TIMED_OUT. Tap can change these values, so copy them from its page before each test cycle.
A short test plan before launch:
- One captured and one failed payment per method you enable, with the order state set from the webhook, not the redirect.
- A customer who closes the tab on the KNET page.
- A webhook with a tampered amount (your validation should reject it).
- A partial and a full refund, if you offer returns.
- Arabic and English checkout on a real phone, in Safari for Apple Pay.
Selling in Saudi Arabia or Bahrain through Tap
According to Tap's docs, mada (SAR only) and Benefit (BHD only) run on the same charge endpoint as KNET. Adding them means a new source and currency on that endpoint, the same webhook handler, and the same dashboard.
For example, a hypothetical Kuwaiti fragrance brand that sells in KWD today and wants a Bahrain storefront would add a BHD price list, ask Tap to enable Benefit, and route Bahraini orders to src_bh.benefit. The order, refund and reconciliation code it already runs for KNET stays the same. Whether that brand needs a separate merchant account or legal entity in Bahrain or Saudi Arabia is Tap's call during onboarding. Ask before you build.
For other CBK-licensed providers, see our guide to payment gateways in Kuwait and our MyFatoorah integration guide.
Before you go live
- Swap test keys for live keys on the server and in the app or web SDK configuration.
- Point
redirect.urlandpost.urlat production URLs over HTTPS. - Ask Tap to enable each method you need (Apple Pay, Benefit and others are switched on by Tap).
- Run one small live payment per method and per channel (web and app), then refund it.
- Store Tap's charge ID and your own order reference on every order for reconciliation.
How Rukn builds Tap integrations
We build the checkout, the server side and the webhook handling as part of a website or app project, in Arabic and English, and test every enabled method in the sandbox before launch. See our web development service for Kuwaiti businesses. Websites start from KD 799 and mobile apps from KD 1,999; the final quote depends on scope.
Send us the payment methods and countries you need through our contact page, and we will reply with an integration plan and a quote.
Frequently asked questions
Is Tap Payments licensed by the Central Bank of Kuwait?
As of 27 September 2026, yes. The Central Bank of Kuwait register of e-payment services providers lists "Tap Payments e-Payment Service Provider (KSCC)" in the Large EPSP category, with an address in Salmiya. It is one of three large providers on that register, alongside UPayments and Hesabe. The register does not show licence numbers, so ask Tap directly if your compliance team needs a copy.
How much does Tap Payments charge in Kuwait?
We found no published Kuwait fee table on Tap's site as of 27 September 2026, so the rate is quoted for your business. Tap's help centre does publish settlement terms: KWD settlement has no extra charge, and a USD settlement costs a flat USD 25 per request. KNET payouts arrive within 2 business days and card payouts within 5. Get the quote in writing before launch.
Does Tap Payments support KNET?
According to Tap's help centre, yes, for merchants based in Kuwait. Your server creates a charge with the source src_kw.knet in KWD, Tap returns a transaction URL, and the customer completes payment on the KNET page. Tap says KNET is enabled within 24 business hours of an eligible request, and its docs say KNET now supports authorization. Mark the order paid from the webhook, not the redirect.
Where do I find Tap's KNET test cards?
On the "Test Cards Numbers" page in Tap's API reference. For KNET, the page tells you which test bank to pick on the KNET test page and lists test cards and expiry dates that return CAPTURED or NOT CAPTURED. Tap can change these values, so copy them from the page before each test cycle, and use test keys so no real money moves.
Can a Kuwaiti business accept mada and Benefit through Tap?
According to Tap's docs, its API supports both on the same charge endpoint: mada in SAR only (source src_sa.mada or the card flow) and Benefit through src_bh.benefit in BHD only. Whether your Kuwaiti entity can accept them or needs a merchant account in Saudi Arabia or Bahrain is decided by Tap during onboarding. Confirm it in writing before you price or build.
Does Apple Pay work in Kuwait through Tap?
According to Tap's docs, yes. Tap lists Kuwait and KWD among its supported Apple Pay markets, and the method must be enabled by Tap first. On the web, use a separate Apple Pay button because it does not work inside iframes or pop-ups. If you need authorization or recurring billing in KWD, ask Tap how Apple Pay is routed through KNET.
Sources
We checked the facts on this page against these sources on 27 September 2026.
- Central Bank of Kuwait: e-Payment Services Providers (EPSP) register
- Tap Payments help centre: When will I receive my payouts in Kuwait?
- Tap Payments help centre: What is KNET, and how can I accept KNET on my website or mobile app?
- Tap Payments developer docs: Overview (API keys, SDKs, checkout, plugins)
- Tap Payments developer docs: KNET
- Tap Payments developer docs: Benefit
- Tap Payments developer docs: mada
- Tap Payments developer docs: Apple Pay
- Tap Payments developer docs: Redirect flow (source IDs, transaction URL, tap_id)
- Tap Payments developer docs: Webhook (post URL, retries, hashstring)
- Tap Payments developer docs: Checkout SDK for Flutter (hash string)
- Tap Payments API reference: Test Cards Numbers
- Amazon Payment Services docs: Apple Pay via KNET
Rukn is an independent software company. We are not affiliated with, endorsed by or a partner of Tap Payments, and we receive no referral fees. Names and trademarks belong to their owners and are used only to describe compatibility.
Related reading
- How to integrate MyFatoorah: a Kuwait guide for Next.js and React NativeAs of 27 September 2026, the Central Bank of Kuwait lists MyFatoorah as a large e-money service provider. According to MyFatoorah's docs, you integrate it through its v3 REST API: your server creates a payment or session with a secret API key, the customer pays by KNET, card or wallet, and your server confirms the result through a webhook and a status call.
- How to integrate the KNET payment gateway into Kuwaiti websites and appsKNET 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.
- The best payment gateway in Kuwait starts with a CBK licenceThe best payment gateway in Kuwait starts with a provider on the Central Bank of Kuwait registers, or your own Kuwaiti bank, that supports KNET and fits your stack. On 27 September 2026 the registers listed Tap, UPayments and Hesabe as large e-payment providers and MyFatoorah as a large e-money provider. Stripe’s availability page did not list Kuwait on that date.
- How to accept Apple Pay in Kuwait: the KNET rules, web and app setupAccording to Amazon Payment Services and Checkout.com, Apple Pay payments in Kuwait are processed through KNET. Amazon Payment Services documents that this route has no authorize-then-capture and no recurring charges, so confirm what your own gateway supports and plan checkout, subscriptions and pre-orders around it.
- Kuwait Decree-Law No. 10 of 2026: the website and app checklist, article by articleDecree-Law No. 10 of 2026, Kuwait's digital commerce law, applies one month after its executive regulations are published (Art. 45), and as of 27 September 2026 we could not find them. What your store must build is already fixed in the text: seller disclosures, all-in prices, an Arabic e-invoice, 14-day withdrawal, CBK-licensed payments and 5-year records.
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.