> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tabby.sa/llms.txt
> Use this file to discover all available pages before exploring further.

# Shopify Plugin Installation

> Install the Tabby app for Shopify, configure webhooks and settings, and go live.

<Note>
  Tabby works on the Shopify platform for all supported countries. Currency conversion may apply for multi-currency stores, check **Multi-Currency Processing and Currency Conversion** below.
</Note>

## Installation Steps

No time to read or have questions on any of the steps? Watch video guide on<br />
**How to set up Tabby on Shopify:**

<video controls alt="How to set up Tabby on Shopify" className="rounded-xl w-full" src="https://mintcdn.com/tabby-26277sa/fJVMkzMpWAVssPgF/images/shopify-setting-up-tabby.mp4?fit=max&auto=format&n=fJVMkzMpWAVssPgF&q=85&s=db7a0a9431645f2b3ae4c3b7c9f2acad" data-path="images/shopify-setting-up-tabby.mp4" />

<Steps>
  <Step title="Register with Tabby">
    [Register with Tabby](https://merchant.tabby.ai/) (KSA: [merchant.tabby.sa](https://merchant.tabby.sa/)) and fill all required business details to collect Tabby Live API Keys.
  </Step>

  <Step title="Install the Tabby Payment App">
    To install Tabby Payment App, [click here](https://apps.shopify.com/tabby-payment-1).
  </Step>

  <Step title="Activate Tabby as a payment method">
    As soon as the payment method is installed, open **Settings → Payments** in your Shopify admin. In **Additional payment methods** click **Add payment method**, choose **Search by payment method** and input **"tabby"**. Click "Tabby" to see all options, choose the first line **"tabby >"** and click **Activate**.
  </Step>

  <Step title="Add your API keys">
    At the Tabby settings page click **More actions → Manage**. Copy the **Live Public** and **Secret keys** from the [Merchant Dashboard](https://merchant.tabby.ai/business-profile/stores) (KSA: [merchant.tabby.sa](https://merchant.tabby.sa/business-profile/stores)) and paste them in the necessary fields. Leave the **Webhook Key** empty, you will get it in the next steps. Click **Save**.
  </Step>

  <Step title="Set up Shopify Webhooks">
    Tabby requires Shopify Webhooks to update the order number, fetch the phone number and order lines from Shopify.

    Open **Settings → Notifications → Webhooks** and click **Create webhook**. Add 4 webhooks:

    | event                | Callback URL                                                  | Format | API version |
    | -------------------- | ------------------------------------------------------------- | ------ | ----------- |
    | Transaction creation | `https://sfy-payment.tabby.ai/api/webhook/transaction/create` | JSON   | Latest      |
    | Order creation       | `https://sfy-payment.tabby.ai/api/webhook/order/create`       | JSON   | Latest      |
    | Checkout creation    | `https://sfy-payment.tabby.ai/api/webhook/checkout/create`    | JSON   | Latest      |
    | Checkout update      | `https://sfy-payment.tabby.ai/api/webhook/checkout/create`    | JSON   | Latest      |
  </Step>

  <Step title="Add the Webhook Verification Key">
    Copy the Webhook Verification Key which is generated after the first Webhook creation.

    <div className="product-shot-figure">
      <img alt="Webhook Verification Key" className="product-shot" src="https://mintcdn.com/tabby-26277sa/fJVMkzMpWAVssPgF/images/webhook-verf.png?fit=max&auto=format&n=fJVMkzMpWAVssPgF&q=85&s=1214445d9d7afe9d9734d8ff384125c2" width="1518" height="1128" data-path="images/webhook-verf.png" />

      <p className="product-shot-caption">Webhook Verification Key</p>
    </div>

    Paste the key in **Settings → Payments → Supported/Additional payment methods → tabby → More actions → Manage → Webhook Verification Key**.
  </Step>

  <Step title="Check the required settings">
    1. Check that you have **"Automatic at checkout"** option in the "Payment capture method" setting in the "Payments" tab.
    2. Make sure to uncheck **"Enable test mode"** as Tabby does NOT pay out for test / playground orders ever, even if a live customer places a real order while "Test mode" was checked.
    3. Email and phone number are required for Tabby payment method. Please enable the following settings in your admin panel:

    <img alt="Customer contact method" className="product-shot" src="https://mintcdn.com/tabby-26277sa/fJVMkzMpWAVssPgF/images/webhook-2.png?fit=max&auto=format&n=fJVMkzMpWAVssPgF&q=85&s=0669d87c5a28352fec0763e62f4ea19a" width="600" data-path="images/webhook-2.png" />

    <img alt="Shipping address phone number" className="product-shot" src="https://mintcdn.com/tabby-26277sa/fJVMkzMpWAVssPgF/images/webhook-3.png?fit=max&auto=format&n=fJVMkzMpWAVssPgF&q=85&s=1d2615c4b895694cbf108aa5172fccd0" width="600" data-path="images/webhook-3.png" />
  </Step>
</Steps>

<Warning>
  If you have installed Webhooks earlier and have issues with updating order numbers - please, make sure all 4 webhooks are set up and you are using the latest available API version. Kindly refer to the
  <a href="/e-commerce-platforms/shopify/shopify-plugin-installation#webhook-api-version-update">Webhook API Version Update.</a>
</Warning>

### Webhook API Version Update

Here **Webhook Update Demonstration** can be reviewed:

<video controls alt="Webhook Update Demonstration" className="rounded-xl w-full" src="https://mintcdn.com/tabby-26277sa/fJVMkzMpWAVssPgF/images/shopify-webhooks-update.mp4?fit=max&auto=format&n=fJVMkzMpWAVssPgF&q=85&s=fb6aebe5d443c303e2ef819e997f6e37" data-path="images/shopify-webhooks-update.mp4" />

Shopify Webhooks are created for the particular API version. Shopify releases several versions per year, so it means your initial API version settings will inevitably expire. Tabby makes the necessary changes to support the latest updated API versions, but this also requires a manual action from the partner's end.

You need to go to Settings -<span>></span> Notifications -<span>></span> Webhooks and choose the **latest** API version from the dropdown of a particular Tabby Webhook.

## Add Tabby Snippets

<div className="grid grid-cols-2 gap-4">
  <div>
    <img alt="Tabby snippet on product page" className="rounded shadow" src="https://mintcdn.com/tabby-26277sa/fJVMkzMpWAVssPgF/images/shopify-snippet-new-aed.png?fit=max&auto=format&n=fJVMkzMpWAVssPgF&q=85&s=3044084281c576f77645c5b54c16e226" width="1724" height="1028" data-path="images/shopify-snippet-new-aed.png" />
  </div>

  <div>
    <img alt="Pop-up" className="rounded shadow" src="https://mintcdn.com/tabby-26277sa/4QuRvEaK4cqRahj2/images/shopify-popup-test.png?fit=max&auto=format&n=4QuRvEaK4cqRahj2&q=85&s=f928ba389ddf95ea1232629bfb35b390" width="2742" height="1596" data-path="images/shopify-popup-test.png" />
  </div>
</div>

Tabby snippets let your customers know they can split their payments with Tabby in your store. Snippets appear on the product and cart pages and may help improve conversion.

To add Tabby snippets to your product and cart pages, please follow our detailed instructions and video manuals here: <a href="/e-commerce-platforms/shopify/shopify-snippets">Tabby Snippets for Shopify</a>

<Warning>
  <div>
    <span style={{ textDecoration: 'none', fontWeight: 'bold' }}>Please note that snippets alone do not activate Tabby as a payment method in your store and don’t affect payment processing. Before adding snippets, make sure Tabby is already integrated and visible on your checkout page. </span>
  </div>
</Warning>

## Tabby is live now!

Tabby orders are captured automatically. Refunds can be initiated from Shopify admin panel and will reflect on Tabby Merchant Dashboard, Customer Portal and Settlements.

## Limitations and Known Constraints

### Language Settings

The locale for Tabby Hosted Payment Page and Payment Method will be set based on the store's language, Tabby supports English and Arabic. If the locale is not supported, English is used by default. You can configure your store's language in your Shopify admin under Settings -<span>></span> Languages.

### Order Number Update

When an order is placed in Shopify, a payment id is set in the Shopify order timeline information under the "payment was processed on tabby." section, within the "**Information from the gateway**" subsection. This payment id is set in the Tabby order's "reference\_id" (order number). Shopify does not share the <a href="https://community.shopify.com/c/shopify-apps/getting-the-order-number/td-p/1429420" rel="noopener noreferrer" target="_blank">Shopify order number</a> for this payment app integration and Tabby is not able to match the Shopify order number or order number in the Tabby order. The Webhooks allow to update order number or Tabby Merchant Dashboard, Customer Portal and Settlements.

<img alt="Order number" className="product-shot" src="https://mintcdn.com/tabby-26277sa/fJVMkzMpWAVssPgF/images/webhook-5.png?fit=max&auto=format&n=fJVMkzMpWAVssPgF&q=85&s=ddf6589dcd66e47c4c5fd367e9f334bc" width="1456" height="1038" data-path="images/webhook-5.png" />

### Order Editing

Please note that order details editing (as order lines, customer details, etc.) will be reflected in Shopify Dashboard only and will not updated for the payment on Tabby Merchant Dashboard, Customer Portal and Settlements.

### Order Lines

Shopify doesn't share order data via the Payment App and Shopify does not share any order line data for non-product order lines, e.g. VAT/taxes, discounts, surcharges, tip, etc. Tabby orders will have necessary Order Lines data after Webhook installation.

### Order Tagging

Tabby Payment App cannot currently set tags on a Shopify order. You can use the <a href="https://apps.shopify.com/flow" rel="noopener noreferrer" target="_blank">Shopify Flow app</a> (free and <a href="https://help.shopify.com/en/manual/shopify-flow" rel="noopener noreferrer" target="_blank">available on all Shopify plans</a>) which can set order tags within a flow for Tabby orders.

### Payment Method Presentation

The Tabby payment method name is provided with English and Arabic translations out of the box.

To reorder or hide payment methods in Shopify checkout, use Shopify's <a href="https://help.shopify.com/en/manual/checkout-settings/checkout-customization" rel="noopener noreferrer" target="_blank">checkout customizations</a> powered by <a href="https://shopify.dev/docs/api/functions/latest/payment-customization" rel="noopener noreferrer" target="_blank">Payment Customization Functions</a> — either via a Functions-powered app from the Shopify App Store, or via Checkout Blocks (Shopify Plus). The legacy checkout scripts (Script Editor) <a href="https://shopify.dev/changelog/shopify-scripts-will-be-deprecated-on-june-30-2026" rel="noopener noreferrer" target="_blank">stopped executing on June 30, 2026</a> and can no longer be used for payment method customization.

Customizations of the Tabby payment method presentation (logo, footer text) are currently supported only for Shopify Plus merchants. If you implement your own custom snippet, notify your Tabby account manager so we can keep your integration in sync with upcoming changes.

### Domain Filtering

Payment App uses a different hosted payment page URL: `checkout.tabby.ai` (UAE, Kuwait) or `checkout.tabby.sa` (KSA).
Merchants that filter this domain in Google Analytics will need to update their GA configurations accordingly.

### Market Limitation

Tabby Payment App accept orders only for the billing addresses in the markets of KSA, UAE, Kuwait. Customers for non-supported regions based on the order's currency are shown an error message on page load that the Tabby order cannot be processed.

We recommend limiting Tabby's visibility at checkout to the countries where your store works with Tabby — has a signed contract and an active integration. You can hide Tabby for other countries using Shopify's <a href="https://help.shopify.com/en/manual/checkout-settings/checkout-customization" rel="noopener noreferrer" target="_blank">checkout customizations</a> (available on all Shopify plans), so customers from non-supported regions don't see the error message.

### Multi-Currency Processing and Currency Conversion

Tabby processes payments in the following currencies: SAR (SR), AED (Dhs), and KWD (KD), which must correspond to the customer's billing address. Tabby Payment App is compatible with all Shopify stores, regardless of their base currency.

If the store’s base currency differs from the customer’s billing currency, currency conversion will be applied, and the converted amount will be displayed at Tabby checkout. Customer transactions and merchant settlements will be processed in the customer’s billing currency.

Currency conversion is also applied between supported currencies if the store’s base currency differs from the customer’s billing currency.

Please note that to enable conversion, the “Enable Multi-Currency Processing” option must be selected in the Tabby settings.

### Inventory Lock Limitation and Inventory Stock Check

When a customer places an order with an alternative payment integration, such as Tabby Payment App, Shopify redirects to the payment method but does not lock the order's product inventory and thus stock inventory cannot be guaranteed.

However, Tabby can check inventory immediately after payment is completed but before the order is created in Shopify. If an item goes out of stock during the payment process, the funds will be refunded to the customer, and the Shopify order will not be created.

To enable this functionality, please turn on the **Check Inventory Stock** feature in Tabby settings in your Shopify admin panel.
Note that this feature only works when the following settings are applied to your products in Shopify settings:

* **Inventory tracking** is enabled
* **Continue selling when out of stock** setting is disabled

### Additional Request of the Phone Number

Shopify may not share the customer's phone number with payment integrations at checkout (for example, when email is required instead of phone). Tabby fetches the phone number via the Shopify Webhooks set up during the <a href="/e-commerce-platforms/shopify/shopify-plugin-installation#installation-steps">Installation Steps</a>. If the webhooks are not set up, Tabby will ask the customer to enter the phone number again within our Hosted Payment Page.

### Checkout Error Limitation

*"There was an issue processing your payment. Try again or use a different payment method." –* this message can happen for tech/authorization reasons only. The most common reason (for new integrations) is that the API keys haven't been populated fully. You can check the API credentials at <a href="https://merchant.tabby.ai/" rel="noopener noreferrer" target="_blank">merchant.tabby.ai</a> (KSA: <a href="https://merchant.tabby.sa/" rel="noopener noreferrer" target="_blank">merchant.tabby.sa</a>). Also, this message appears if country in shipping or billing address is different from country (countries) that your Tabby account is signed for. It can also appear if your integration hasn't been set up on the Tabby side yet — in this case contact Tabby partner support at `partner@tabby.ai` / `partner@tabby.sa`.

<img alt="Checkout error limitation" className="product-shot" src="https://mintcdn.com/tabby-26277sa/fJVMkzMpWAVssPgF/images/webhook-6.png?fit=max&auto=format&n=fJVMkzMpWAVssPgF&q=85&s=bb40599a66f1ccb4d9963a9fcec7c18f" width="1276" height="1212" data-path="images/webhook-6.png" />

### Redirection for Background Pre-Scoring Rejection

Tabby now redirects the customers to our internal rejection screens where we explain the reason and advise how to avoid this rejection if possible. Customers may see the general rejection explanation (can't be avoided), too high cart total and too low cart total rejections (can be skipped by adjusting the cart total).

### The Amount Paid by the Customer to Tabby Doesn't Match the Shopify Order Total

If customers update a related, but different Shopify session separately from the Shopify session used to place the Tabby order, the order totals between the Shopify and Tabby orders may not match, but the amount "Paid by customer" for the Shopify order should always match the Tabby order total. While not ideal, this is working as expected and designed. Care should be taken to only fulfill order line items paid for by the customer.

### Feedback and Support

If additional support is needed, email `partner@tabby.ai` / `partner@tabby.sa` (please include your Shopify store name and add your Account Manager in CC) for specific Tabby support.

Customer Tabby Support available at `help@tabby.ai` / `help@tabby.sa`

<a href="https://community.shopify.com" rel="noopener noreferrer" target="_blank">[https://community.shopify.com](https://community.shopify.com)</a> is a good place for Shopify questions, support, and feedback, in addition to <a href="https://help.shopify.com/" rel="noopener noreferrer" target="_blank">[https://help.shopify.com/](https://help.shopify.com/)</a>
