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

# Shopify POS

> Take HitPay terminal payments inside Shopify POS

The **HitPay Terminal** app for Shopify POS sends each sale from Shopify POS to your HitPay terminal. Your customer pays by card or a local payment method, and the Shopify order is marked paid and linked to its HitPay payment automatically.

Watch how to set up the app and take a payment:

<iframe width="560" height="315" src="https://www.youtube.com/embed/6NsuIBPEz00" title="HitPay Terminal app for Shopify POS" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />

## Before you begin

You need:

* A HitPay account that is live and verified. If you don't have one yet, [create an account](/setup/account-creation).
* A Shopify store that uses **Shopify POS**.
* The same currency in Shopify and HitPay. Terminal payments are charged in your HitPay account's currency, so your Shopify store currency must match it.
* A supported HitPay terminal:
  * WisePOS E
  * FlexiPOS (Stripe S700 or S710)
  * HitPay All-in-One Ingenico S1F2
  * HitPay All-in-One Ingenico DX4000
  * Verifone V660P (All-in-One)

<Tip>
  Don't have a terminal yet? Order one from the [HitPay shop](https://hitpay.shop/hitpayterminal/).
</Tip>

## Set up the app

<Steps>
  <Step title="Register for the app">
    The HitPay Terminal app isn't listed in the Shopify App Store. To get it, fill in the [registration form](https://forms.gle/qUR1XpWujwbyC4t8A) with your store's `.myshopify.com` domain.

    You can find your `.myshopify.com` domain in Shopify admin under **Settings** > **Domains**.

    HitPay sends you the install link for your store only after you've submitted the form.
  </Step>

  <Step title="Install the app">
    Open the install link while you're logged in to your Shopify store as the owner, or as a staff member who can install apps. Review the permissions and click **Install**.
  </Step>

  <Step title="Copy your HitPay API key and salt">
    In your HitPay dashboard, go to **Developers** > **API Keys** and copy your **API key** and **salt**.
  </Step>

  <Step title="Connect HitPay">
    In Shopify admin, open the **HitPay Terminal** app. On the **Overview** page, paste your API key and salt and click **Connect HitPay**.

    <Warning>
      Keep your API key and salt private. Paste them only into the app, and never share them by email or chat.
    </Warning>
  </Step>

  <Step title="Put your terminal in In-Person Payment API mode">
    On the terminal, switch to **In-Person Payment API** mode. See [Displaying payments on the terminal](/apis/guide/in-person-payments/overview#displaying-payments-on-the-terminal) for the steps.
  </Step>

  <Step title="Map your terminals">
    In the app, open **Terminals** and click **Add a terminal**. Choose the Shopify POS location and the terminal it should use, then save. Repeat for each location.
  </Step>

  <Step title="Let your staff use the app">
    In Shopify admin, give your POS staff roles permission to use apps. Without it, the app tells the cashier to ask the store owner for access.
  </Step>
</Steps>

## Take a payment

<Steps>
  <Step title="Ring up the sale">
    In Shopify POS, add the items to the cart and tap **Checkout**.
  </Step>

  <Step title="Tap Mark unpaid">
    Choose **Mark unpaid**. In this app, **Mark unpaid** means "pay on the HitPay terminal". Shopify's label can't be changed.
  </Step>

  <Step title="Choose how the customer pays">
    The HitPay screen opens automatically with the order total. Tap **Card**, or a QR method such as PayNow, DuitNow, QR Ph or GCash. The terminal shows the amount, or the QR code to scan.
  </Step>

  <Step title="The customer pays">
    When the payment succeeds, the order is marked paid in Shopify automatically.
  </Step>
</Steps>

The payment shows in your HitPay dashboard with the Shopify order number as its reference, so you can match every HitPay payment to its Shopify order.

<Info>
  The payment methods offered on the terminal are the ones turned on for your HitPay account. Methods your account can't take aren't shown.
</Info>

### If the customer doesn't pay

If the customer changes their mind before paying, tap **Cancel order** on the HitPay screen, then tap it again to confirm. Shopify cancels the order and restocks the items. The customer isn't charged.

You can only cancel an order this way while it's unpaid. Once a HitPay payment has succeeded, refund it instead.

## Refund a payment

<Steps>
  <Step title="Open the order">
    In Shopify POS, open the paid order.
  </Step>

  <Step title="Refund through HitPay">
    Tap **HitPay**, then **Refund**. The refund goes back to the customer through HitPay, and appears on the Shopify order and in your HitPay dashboard.
  </Step>
</Steps>

## Customers

If you add a customer to the cart or the order **before** they pay, the customer is:

* Added to your HitPay customers, with their name, email and phone.
* Attached to the HitPay payment.
* Sent HitPay's receipt by email, if they have an email address.

If you add a customer **after** the payment, they're added to your HitPay customers, but not attached to that payment.

<Note>
  To copy customers, approve the app's customer permissions when Shopify asks. Until then, payments still work, but customers aren't copied to HitPay.
</Note>

## Optional settings

### Show HitPay as the payment method on orders

By default, Shopify records terminal payments as **Other**. To show **HitPay – Card**, **HitPay – PayNow** and so on, add manual payment methods with these exact names in Shopify admin under **Settings** > **Payments** > **Manual payment methods**. This makes Shopify's payment reports easier to reconcile.

### Charge from the POS home screen

You can also add the **HitPay Terminal** tile to your Shopify POS home screen. It lets you send the cart total to the terminal before you check out. Most stores only need **Mark unpaid**.

## Troubleshooting

<AccordionGroup>
  <Accordion title="The terminal doesn't light up">
    Check that the terminal is on, connected to the internet, and in **In-Person Payment API** mode. Then check that it's mapped to the POS location you're using under **Terminals** in the app.
  </Accordion>

  <Accordion title="&#x22;Currencies don't match&#x22;">
    Your Shopify store currency must match your HitPay account currency. Terminal payments can only be charged in your HitPay account's currency.
  </Accordion>

  <Accordion title="&#x22;HitPay rejected the API key&#x22;">
    Copy your API key and salt again from **Developers** > **API Keys** in the HitPay dashboard, and paste both into the app's **Overview** page.
  </Accordion>

  <Accordion title="The cashier sees &#x22;Ask the store owner to give your staff role permission to use apps&#x22;">
    In Shopify admin, give that staff member's POS role permission to use apps.
  </Accordion>
</AccordionGroup>

Need help? Contact [support@hit-pay.com](mailto:support@hit-pay.com).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.