# Jovvie Docs: complete documentation # Jovvie Docs Section: Start here > Help for merchants, and the developers and agencies who support them, using Jovvie Pay, Jovvie Checkout, and Jovvie Point of Sale. ## Choose your product [Jovvie Pay](https://jovvie.com/pay/)Enter an amount and take a card payment in person, with nothing else to set up. [Jovvie Checkout](https://docs.jovvie.com/checkout/)Add in-person card payments to the app or platform you already check out with. [Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/)Run a full register with products, a cart, customers, and orders. ## Need help? [Troubleshooting](https://docs.jovvie.com/troubleshooting/payment-errors/) [Contact Jovvie support](https://jovvie.com/support/) Source: https://docs.jovvie.com/ --- # Welcome to Jovvie Docs Section: Start here > Learn what Jovvie Pay, Jovvie Checkout, and Jovvie Point of Sale do, and where to start. Jovvie helps you take card payments in person. These docs walk you through setting up, taking payments, and fixing problems. They are written for merchants and their staff, and for developers and agencies who set up Jovvie for a merchant. Start by choosing the product that fits how you sell, then follow its setup pages. Not sure which one you need? See [Which Jovvie product do I need?](https://docs.jovvie.com/start-here/choose-a-product/) ## Jovvie Pay Jovvie Pay lets you take a card payment by entering the amount, with nothing else to set up. There are no integrations and no point of sale to configure, and the money goes straight into your Stripe account. It works with card readers and with Tap to Pay on iPhone and Android. To learn more about Jovvie Pay, see [jovvie.com/pay](https://jovvie.com/pay/). ## Jovvie Checkout Jovvie Checkout adds in-person card payments to any app or platform. Your customer or donor checks out the way they always do. Then you take the payment on a card reader, from a browser, phone, or tablet. You do not need a register or a cash drawer. Ready-made integrations are available for WooCommerce, GiveWP, Gravity Forms, and Event Tickets (with or without The Events Calendar). Developers can also build their own integration. See [Build your own Jovvie Checkout integration](https://docs.jovvie.com/developers/). Start with the [Jovvie Checkout overview](https://docs.jovvie.com/checkout/). Step-by-step guides are available for: - [WooCommerce orders](https://docs.jovvie.com/checkout/woocommerce/install-and-connect/) - [Gravity Forms forms](https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/) - [GiveWP donation forms](https://docs.jovvie.com/checkout/givewp/install-and-connect/) - [Event Tickets ticket sales](https://docs.jovvie.com/checkout/the-events-calendar/install-and-connect/) ## Jovvie Point of Sale Jovvie Point of Sale is a full register for selling in store, on the go, or wherever your customers are. It comes in two setups: **Standalone**, where Jovvie hosts your store for you, or connected to your own WooCommerce store, where it works with your WooCommerce products, customers, and orders. You can run it on a tablet, computer, or phone, and take cash, card, and other payments. Start with the [Jovvie Point of Sale overview](https://docs.jovvie.com/point-of-sale/), which helps you choose a setup. ## Learn the basics - [How Jovvie works](https://docs.jovvie.com/start-here/how-jovvie-works/) - [Glossary](https://docs.jovvie.com/start-here/glossary/) - [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/) ## Need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/start-here/ --- # Which Jovvie product do I need? Section: Start here > Compare Jovvie Pay, Jovvie Checkout, and Jovvie Point of Sale to find the one that fits how you sell. Jovvie has three products. This page helps you pick the one that matches how you take payments today. ## Quick guide | If you want to… | Use | | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | | Enter an amount and get paid, without setting up products or a full register | **Jovvie Pay** | | Add in-person payments to the app or platform your customers already check out with, such as a WooCommerce store, a form, a donation form, or ticket sales | **Jovvie Checkout** | | Run a full register with products, a cart, customers, and reports | **Jovvie Point of Sale** | ## Jovvie Pay: you just need to charge an amount Choose Jovvie Pay if you don’t need products, a cart, or an integration. You enter the amount, the customer pays, and the money goes into your Stripe account. It’s a good fit for retail stores, pop-up shops, freelancers, service providers, and nonprofits. To learn more about Jovvie Pay, see [jovvie.com/pay](https://jovvie.com/pay/). ## Jovvie Checkout: you already have a checkout Choose Jovvie Checkout if people already check out through an app or platform and you want to add in-person card payments to it. Your customer or donor checks out as usual. Then you take the payment on a card reader, from a browser, phone, or tablet. The ready-made integrations require Stripe. An integration you build yourself can use Stripe or NMI. Ready-made integrations are available for WooCommerce, GiveWP, Gravity Forms, and Event Tickets (with or without The Events Calendar). Developers can also build their own integration. See [Build your own Jovvie Checkout integration](https://docs.jovvie.com/developers/). With WooCommerce, you place the order through your store’s checkout, then take the payment on the Jovvie payment page. If you want a register for your staff instead, see [Jovvie Point of Sale: you need a register](https://docs.jovvie.com/start-here/choose-a-product/#jovvie-point-of-sale-you-need-a-register). Guides are available for [WooCommerce orders](https://docs.jovvie.com/checkout/woocommerce/install-and-connect/), [Gravity Forms forms](https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/), [GiveWP donation forms](https://docs.jovvie.com/checkout/givewp/install-and-connect/), and [Event Tickets ticket sales](https://docs.jovvie.com/checkout/the-events-calendar/install-and-connect/). See the [Jovvie Checkout overview](https://docs.jovvie.com/checkout/) for more. ## Jovvie Point of Sale: you need a register Choose Jovvie Point of Sale if you sell in person and want a full register. Staff sign in, add products to a cart, take payment, and look up orders. You can use it on a tablet, computer, or phone. It comes in two setups: **Standalone**, where Jovvie hosts your store for you, or connected to your own WooCommerce store, where it works with your WooCommerce products, customers, and orders. Start with the [Jovvie Point of Sale overview](https://docs.jovvie.com/point-of-sale/), which helps you choose a setup. ## What all three have in common - You take card payments in person with a card reader or Tap to Pay. See [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). - Your money goes to your payment processor account. Jovvie Pay and the ready-made Checkout integrations use Stripe. Point of Sale and Checkout integrations you build yourself work with Stripe or NMI, and some features differ between the two. See [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). - For pricing, see [Jovvie pricing](https://jovvie.com/pricing/). ## Need help choosing? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/start-here/choose-a-product/ --- # How Jovvie works Section: Start here > The pieces you need to take in-person payments with Jovvie, and how they fit together. Every Jovvie setup is made of the same few pieces. This page explains what each one does, so setup makes more sense and problems are easier to track down. ## Your Jovvie product You use one or more Jovvie products to take payments: - **Jovvie Pay** lets you take a card payment by entering the amount, with nothing else to set up. See [jovvie.com/pay](https://jovvie.com/pay/). - **Jovvie Checkout** adds in-person card payments to any app or platform. Ready-made integrations are available for WooCommerce, Gravity Forms, GiveWP, and Event Tickets, and developers can build their own. See the [Jovvie Checkout overview](https://docs.jovvie.com/checkout/). - **Jovvie Point of Sale** is a full register with products, a cart, customers, and orders. Use it Standalone, with Jovvie hosting your store, or connected to your WooCommerce store. See the [Jovvie Point of Sale overview](https://docs.jovvie.com/point-of-sale/). ## Your payment processor Your payment processor is the company that processes your card payments. The money from each payment goes to your account with that processor. Jovvie works with two processors: - **Stripe.** You connect your own Stripe account to Jovvie. - **NMI.** You use an NMI merchant account through Jovvie. Not every product supports both processors: | Product | Stripe | NMI | | --------------------------------------- | ------ | --- | | Jovvie Point of Sale | Yes | Yes | | Jovvie Checkout ready-made integrations | Yes | No | | Your own Jovvie Checkout integration | Yes | Yes | For Jovvie Pay, see [jovvie.com/pay](https://jovvie.com/pay/). Some features work differently depending on your processor. See [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). ## Your card readers Customers tap, insert, or swipe their card on a card reader. Stripe readers come in two types: - **Web terminals** connect to the internet on their own. You register each one with the [registration code](https://docs.jovvie.com/start-here/glossary/#registration-code) shown on the reader’s screen. - **App terminals** work through the Jovvie app on a phone or tablet. This includes Tap to Pay, where the phone itself accepts the card. See [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). NMI uses its own terminals, which staff choose at checkout. ## Your money Card payments go to your Stripe or NMI account, and your payouts come from there. See [Where to see your payouts](https://docs.jovvie.com/payments/payouts/). For pricing, see [jovvie.com/pricing](https://jovvie.com/pricing/). ## Practice first You can try Jovvie without charging real cards. See [Use test mode](https://docs.jovvie.com/payments/test-mode/). Source: https://docs.jovvie.com/start-here/how-jovvie-works/ --- # Glossary Section: Start here > Plain-language definitions of the terms you will see in Jovvie and in these docs. This page explains, in plain language, the terms you will see in Jovvie and in these docs. Terms are listed in alphabetical order. ## Access PIN A PIN that lets someone use your card readers on the Jovvie payment page. The payment page asks for it when nobody is signed in to WordPress on the device and the browser is not connected. If you do not know your Access PIN, ask the person who manages your Jovvie account. To stop the PIN prompt on a shared device, connect the browser. See [Use Jovvie Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). ## App terminal A card reader, or Tap to Pay on a phone, that you use through the Jovvie app on an iOS or Android phone or tablet. In Point of Sale settings this appears as **iOS/Android app terminal**. Compare with [web terminal](https://docs.jovvie.com/start-here/glossary/#web-terminal). See [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). ## Jovvie payment page The page where staff choose a card reader and the customer pays. After your checkout, form, or ticket order is created, Jovvie Checkout sends the browser to this page. See [Take a payment on the Jovvie payment page](https://docs.jovvie.com/checkout/jovvie-payment-page/). ## Location A place where you take in-person Stripe payments, such as your shop or venue. Each Stripe reader is registered to a location. For Point of Sale, see [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/). For Jovvie Checkout, see [Set up a Jovvie Checkout location and card readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). ## Location ID The ID of a [location](https://docs.jovvie.com/start-here/glossary/#location). Stripe uses it to tell your locations apart. When Jovvie creates a location for you, it creates one for live mode and one for test mode, and each has its own ID. See [Set up a Jovvie Checkout location and card readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). ## Operator A staff member who signs in to a Point of Sale [station](https://docs.jovvie.com/start-here/glossary/#station) to sell. Several operators can take turns on a shared device by switching users. See [Set up passcodes and user switching](https://docs.jovvie.com/point-of-sale/set-up/user-switching/). ## Payment processor The company that processes your card payments. The money from each payment goes to your account with that processor. Jovvie works with two processors, Stripe and NMI. See [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). ## Reader A card reader is the device a customer taps, inserts, or swipes their card on to pay. See [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/). ## Registration code A code that a Stripe [web terminal](https://docs.jovvie.com/start-here/glossary/#web-terminal) shows on its screen. You enter it when you register the reader. See [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/). ## Split payment One sale paid with more than one payment method, for example part in cash and part by card. See [Split a payment](https://docs.jovvie.com/point-of-sale/sell/split-payment/). ## Standalone A way to run Jovvie Point of Sale where Jovvie hosts your store for you. Your store dashboard and your register are at your own Jovvie address, such as `yourstore.jovvie.app`. A Standalone store can also include an online shop where customers order, which is off by default. The other way is to connect Point of Sale to your own WooCommerce store. See the [Jovvie Point of Sale overview](https://docs.jovvie.com/point-of-sale/). ## Station One register in Point of Sale. Each station has its own settings, such as taxes, payment methods, and card readers. See [Create and manage stations](https://docs.jovvie.com/point-of-sale/set-up/stations/). ## Tap to Pay A way to take a contactless card payment on a compatible iPhone or Android phone, without a separate card reader. See [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). ## Test mode A mode that lets you practice taking payments without charging a real card. See [Use test mode](https://docs.jovvie.com/payments/test-mode/). ## Till The cash you keep at a register. In Point of Sale, you open the till to start a cash session and close it when you finish. See [Open the till](https://docs.jovvie.com/point-of-sale/cash/open-the-till/). ## Web terminal A card reader that connects to the internet on its own. Staff use it from a web browser. You register it with a [registration code](https://docs.jovvie.com/start-here/glossary/#registration-code) shown on the reader. In Point of Sale settings this appears as **Web terminal**. Compare with [app terminal](https://docs.jovvie.com/start-here/glossary/#app-terminal). See [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). ## Webhook An automatic message that one system sends to another when something happens, such as a payment going through. In the ready-made Jovvie Checkout integrations, the WooCommerce and Event Tickets plugins mark an order as paid when your site receives a payment confirmation from Stripe. The Gravity Forms and GiveWP plugins receive payment updates from Jovvie. ## Need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/start-here/glossary/ --- # Jovvie Checkout overview Section: Jovvie Checkout > How Jovvie Checkout adds in-person card payments to any app or platform, how the ready-made WooCommerce, Gravity Forms, GiveWP, and Event Tickets integrations work, and how each one records the payment. Jovvie Checkout adds in-person card payments to any app or platform. Customers can tap, insert, or swipe their card on a card reader, or pay with Tap to Pay. This page explains how Checkout works, what each ready-made integration does, and where to start. With a ready-made integration, your site creates the order, form entry, donation, or ticket order as usual. Jovvie then opens a payment page where you choose a Stripe card reader, and the customer taps, inserts, or swipes their card on the reader. The ready-made integrations work with Stripe only. An integration you build yourself can use Stripe or NMI. For the differences, see [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). ## Supported integrations Jovvie offers ready-made integrations for these plugins: - **WooCommerce**: take in-person payments for orders placed through your WooCommerce checkout. The payment option is named **Jovvie Payments** by default. - **Gravity Forms**: take one-time payments with your Gravity Forms forms. The form needs a Jovvie payment feed and a pricing field. - **GiveWP**: take donations in person with your GiveWP donation forms. Donors see the payment option as **Swipe, Insert or Tap Donations**. - **Event Tickets**: sell tickets at the door with Tickets Commerce, the checkout built into Event Tickets. The Events Calendar is optional. Each integration is a separate Jovvie plugin or add-on that you install and connect to your Jovvie account. Your Jovvie account is linked to your Stripe account. If your app or platform is not listed, a developer can build their own integration. See [Build your own Jovvie Checkout integration](https://docs.jovvie.com/developers/). ## How a payment works With the ready-made integrations, a payment goes like this: 1. On your site, staff fill in the checkout, form, donation form, or ticket checkout and submit it. 2. Your site creates the order, entry, or donation and sends the browser to the Jovvie payment page. 3. On the payment page, staff select **In-Person Payment** and choose a reader. 4. The customer pays on the reader. 5. The payment page sends the browser back to your site. 6. Your site marks the order, entry, or donation as paid. When this happens depends on the integration. See [What each integration does](https://docs.jovvie.com/checkout/#what-each-integration-does). For the payment page steps, see [Take a payment on the Jovvie payment page](https://docs.jovvie.com/checkout/jovvie-payment-page/). > **Caution: A paid order can still look unpaid** > > The card can be charged before your site updates the order, entry, or donation: > > - **WooCommerce** and **Event Tickets**: the order is only marked paid when your site receives the payment confirmation from Stripe (a webhook). > - **Gravity Forms**: if the browser does not come back to your site, the entry stays **Processing** until an hourly check updates it. > - **GiveWP**: a one-time donation is only completed when the browser comes back to your site. If the browser is closed or loses its connection first, the donation can stay **Pending** even though the card was charged. > > Before you retry or charge another way, check your Stripe Dashboard. Make sure no payment went through and none is still processing. If you are not sure, contact [Jovvie support](https://jovvie.com/support/). ## Who can use your readers The payment page only lists your card readers on a device that is allowed to use them. At least one of these must be true: - Staff are signed in to WordPress on the device. - The browser was connected in the plugin settings. See [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). - Staff know your Access PIN and enter it on the payment page. ## What each integration does | | WooCommerce | Gravity Forms | GiveWP | Event Tickets | | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | | Where you take the payment | Your WooCommerce checkout page, with **Jovvie Payments** selected and **Place order** | Your form, after you submit it | Your donation form, with **Swipe, Insert or Tap Donations** selected | The Tickets Commerce checkout page, with **Purchase Tickets** | | How the payment is recorded | The order starts as **Pending payment**. Your site moves it to **Processing** only when it receives the payment confirmation from Stripe. Returning to your site does not complete the order by itself | The entry starts as **Processing**. When the browser comes back to your site, the add-on checks the payment with Jovvie and marks the entry **Paid**. If the browser does not return, an hourly check updates the entry | When the payment page sends the browser back to your site, GiveWP checks the payment with Jovvie and marks the donation **Complete**. If the browser does not return, the donation can stay **Pending** after a successful charge | Your site marks the order completed when it receives the payment confirmation from Stripe. Returning to your site does not complete the order by itself | | If you click **← Back** before paying | You go to the order received page, and the order stays **Pending payment** | You return to a blank form. The entry stays **Processing** until the hourly check marks it **Failed** | You return to the donation form, and GiveWP marks the donation **Abandoned** | You return to the ticket checkout page | | Test mode follows | The plugin’s own **Test mode** setting | The add-on’s own **Test Mode** setting | GiveWP’s test mode setting | The Tickets Commerce test mode (sandbox) setting | | Refunds | Contact [Jovvie support](https://jovvie.com/support/) for help with refunds | Contact [Jovvie support](https://jovvie.com/support/) for help with refunds | Make refunds in your Stripe Dashboard. Refunds are not made from inside GiveWP | Make refunds in your Stripe Dashboard | In test mode, no real card is charged. For more, see [Use test mode](https://docs.jovvie.com/payments/test-mode/). ## Get started ### WooCommerce 1. [Install and connect Jovvie Checkout for WooCommerce](https://docs.jovvie.com/checkout/woocommerce/install-and-connect/) 2. [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/) 3. [Take an in-person payment for an order](https://docs.jovvie.com/checkout/woocommerce/take-a-payment/) ### Gravity Forms 1. [Install and connect Jovvie Checkout for Gravity Forms](https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/) 2. [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/) 3. [Add Jovvie to a form](https://docs.jovvie.com/checkout/gravity-forms/add-to-a-form/) 4. [Take an in-person payment with a form](https://docs.jovvie.com/checkout/gravity-forms/take-a-payment/) ### GiveWP 1. [Install and connect Jovvie Checkout for GiveWP](https://docs.jovvie.com/checkout/givewp/install-and-connect/) 2. [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/) 3. [Turn on Jovvie for your forms](https://docs.jovvie.com/checkout/givewp/enable-on-forms/) 4. [Take an in-person donation](https://docs.jovvie.com/checkout/givewp/take-a-donation/) ### Event Tickets 1. [Install and connect Jovvie Checkout for Event Tickets](https://docs.jovvie.com/checkout/the-events-calendar/install-and-connect/) 2. [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/) 3. [Sell tickets at the door](https://docs.jovvie.com/checkout/the-events-calendar/sell-tickets-at-the-door/) ## Related pages - [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/) - [Where to see your payouts](https://docs.jovvie.com/payments/payouts/) - [Checkout payment page errors](https://docs.jovvie.com/troubleshooting/checkout-errors/) ## Need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/ --- # Take a payment on the Jovvie payment page Section: Jovvie Checkout > Choose a card reader on the Jovvie payment page and take an in-person card payment for an order, form entry, donation, or ticket order. This page shows you how to take a card payment on the Jovvie payment page. After you place a WooCommerce order, submit a Gravity Forms form, submit a GiveWP donation form, or complete an Event Tickets checkout, your site opens the Jovvie payment page. This is where you choose a Stripe card reader and the customer pays. These payment page steps apply to the ready-made Jovvie Checkout integrations for WooCommerce, Gravity Forms, GiveWP, and Event Tickets, which use Stripe. What happens to the order, entry, or donation afterward depends on the integration. See [Jovvie Checkout overview](https://docs.jovvie.com/checkout/). ## Before you start - A Stripe card reader is registered to your connected Stripe account, turned on, and connected to the internet. See [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). - The device you use can reach your card readers in one of these ways: - You are signed in to WordPress on this device. - This browser was connected in the plugin settings. See [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). - You know your Access PIN, the PIN that lets someone use your readers. Your account owner sets it. Without one of the first two, the payment page asks for it. ## What you see on the payment page - On the left (or at the top on a phone), a summary of the payment: the description, **One-time payment**, each item with its amount, and the **Total**. The **← Back** button is above the summary. - On the right, the payment options: **In-Person Payment** and **Card**. If your site is in test mode, an orange bar across the top says **Test Mode**. No real card is charged. ## Take the payment on a reader 1. Check that the **Total** is correct. 2. Select **In-Person Payment**. 3. If you see **Provide PIN to access**, enter your Access PIN in **PIN**. If you do not see it, skip to step 6. 4. Optional: select **Remember PIN** so this browser does not ask again. Only do this on a device that stays in your control. 5. Click **Submit**. If you see **Wrong PIN**, enter the PIN again. 6. Under **Choose a reader**, select the reader the customer will use. Each reader shows its name and status. These steps are for web terminals. A web terminal is a card reader that connects to the internet on its own, and staff use it from a web browser. A **Jovvie App** choice appears in the list only when the page is opened inside the Jovvie mobile app. See [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). 7. Click **Process Payment**. The button changes to **Processing**, and the page shows the reader’s progress, such as **Waiting for input. Please proceed on the connected terminal.** 8. Ask the customer to tap, insert, or swipe their card on the reader, or pay with Apple Pay or Google Pay on the reader. 9. Follow any prompts on the reader screen. When the payment goes through, the payment page sends you back to your site. What you see next depends on the integration: - **WooCommerce**: the order received page. See [Take an in-person payment for an order](https://docs.jovvie.com/checkout/woocommerce/take-a-payment/). - **Gravity Forms**: the form’s confirmation. See [Take an in-person payment with a form](https://docs.jovvie.com/checkout/gravity-forms/take-a-payment/). - **GiveWP**: the donation receipt. See [Take an in-person donation](https://docs.jovvie.com/checkout/givewp/take-a-donation/). - **Event Tickets**: the ticket order success page. See [Sell tickets at the door](https://docs.jovvie.com/checkout/the-events-calendar/sell-tickets-at-the-door/). If the list says **No readers found**, check that your reader is turned on and registered, then reload the page. If you connected this browser to a location, the reader must be registered to that location. See [Reader not showing on the payment page](https://docs.jovvie.com/troubleshooting/reader-connection/). > **Note: In test mode** > > The reader list shows simulated readers, with a message starting with **This is a simulated mode readers list.** To use physical readers registered in test mode instead, click **Switch to live readers**. This does not leave test mode or charge a real card. ## Enter card details instead Use **Card** only when the customer cannot use the reader. > **Caution: If you already tried the reader** > > A reader payment can go through even if the page shows an error. Before you switch to **Card**, check your Stripe Dashboard. Make sure no payment went through and none is still processing. If you cannot confirm this, contact [Jovvie support](https://jovvie.com/support/) before you use **Card**. 1. Select **Card**. 2. Type the card details into the form. 3. Click **Pay**. ## If something goes wrong If an error appears, the message box has two buttons: **Back** and **Reload**. > **Caution: Before you try again** > > An error does not always mean the card was not charged. Before you take the payment again or leave the page, check your Stripe Dashboard. Make sure no payment went through and none is still processing. If you are not sure, contact [Jovvie support](https://jovvie.com/support/) before you take another payment. 1. Check your Stripe Dashboard for this payment. 2. If the customer was charged, or a payment is still processing, do not charge again. Contact [Jovvie support](https://jovvie.com/support/). 3. If no payment went through and none is processing, click **Reload**. 4. Take the payment again on the same page. If you see **Payment has already been processed.**, this payment is no longer waiting for a card. It may already have gone through. Do not charge the customer again until you check your Stripe Dashboard. If the page shows **Payment completed**, the payment went through. Click **Back** to return to your site. Do not take the payment again. For other messages, see [Card declined and payment error messages](https://docs.jovvie.com/troubleshooting/payment-errors/) and [Checkout payment page errors](https://docs.jovvie.com/troubleshooting/checkout-errors/). ## Leave without paying To leave the payment page before the customer pays, click **← Back**. This cancels the payment request on the Jovvie payment page and returns you to your site: - **WooCommerce**: you go to the order received page, and the order stays **Pending payment**. - **Gravity Forms**: you return to a blank form, and no confirmation shows. - **GiveWP**: you return to the donation form, and GiveWP marks the donation **Abandoned**. - **Event Tickets**: you return to the ticket checkout page. Clicking **← Back** does not confirm that a card payment you already started on the reader was stopped. Only leave this way if the customer has not started paying. If you started a payment, or you are not sure, check your Stripe Dashboard first. Make sure no payment went through and none is still processing before you leave and take the payment another way. If you are still not sure, contact [Jovvie support](https://jovvie.com/support/). The same check applies to **Back** in an error message. It does not apply to **Back** on the **Payment completed** screen, which is the normal way back to your site after a successful payment. ## Need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/jovvie-payment-page/ --- # Use Jovvie Checkout on a shared or kiosk device Section: Jovvie Checkout > Connect a browser so staff or guests can use your card readers on the Jovvie payment page without signing in to WordPress. Connect a browser so staff or guests can use your card readers on a shared device without a WordPress sign-in. These steps apply to the Stripe-based Jovvie Checkout plugins for WooCommerce, Gravity Forms, GiveWP, and Event Tickets. By default, the Jovvie payment page shows your card readers only to people who are signed in to WordPress on that device. If you use a shared device, a kiosk, or a tablet at a door, you can connect the browser instead. A connected browser can use your readers without a WordPress sign-in, even after you sign out of the WordPress dashboard. The connection lasts one week. After that, connect the browser again. ## Before you start - The Jovvie plugin is installed and connected to your Jovvie account, which is linked to your Stripe account. See Install and connect for [WooCommerce](https://docs.jovvie.com/checkout/woocommerce/install-and-connect/), [Gravity Forms](https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/), [GiveWP](https://docs.jovvie.com/checkout/givewp/install-and-connect/), or [Event Tickets](https://docs.jovvie.com/checkout/the-events-calendar/install-and-connect/). - You are signed in to WordPress on the device you want to connect, as a WordPress administrator. - Optional: the location you want this browser to use. A location is the place your card readers are registered to, and it has an ID you can copy. Copy that ID from the **Location ID** section described in [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). The browser is connected in the plugin’s current mode, so use the live location ID when the plugin is in live mode, and the test location ID when it is in test mode. If you leave it empty, the browser is connected without a specific location. ## Where to find the setting | Plugin | Where to go | Label | | ------------- | ----------------------------------------------------------------------------------------------- | ------------------------ | | WooCommerce | **WooCommerce** > **Settings** > **Payments** > **Jovvie Payments** > **Payment Connect** | **Connect this browser** | | Gravity Forms | **Forms** > **Settings** > **Jovvie Payments**, then the **Payment Connect** group | **Connect this browser** | | GiveWP | **Donations** > **Settings** > **Payment Gateways** > **Jovvie Payments** > **Payment Connect** | **Connect this browser** | | Event Tickets | **Tickets** > **Settings** > **Payments** > **Jovvie**, then the **Connect Browser** section | **Connect this browser** | ## Connect the browser 1. Open the settings page for your plugin, as listed in [Where to find the setting](https://docs.jovvie.com/checkout/connect-a-browser/#where-to-find-the-setting), using the device you want to connect. 2. Select **Connect this browser**. 3. Optional: in **Location ID (optional)**, enter the location this browser should use. Use the live or test location ID that matches the plugin’s current mode. 4. Save your changes. In WooCommerce, GiveWP, and Event Tickets, the page shows **Redirecting to connect browser…** In Gravity Forms, you go straight to the Jovvie page. 5. Wait for the redirect. If nothing happens, click **Connect browser**. 6. Follow the prompts on the Jovvie page. When you finish, you return to the plugin’s settings page. If you see **Failed to connect browser**, try again. If it keeps happening, contact [Jovvie support](https://jovvie.com/support/). In Gravity Forms, no message appears if the connection fails. If you stay on the settings page instead of going to the Jovvie page, check that **Connection Status** shows **Connected**, then try again. ## What the connected browser can do On the Jovvie payment page, a connected browser lists your card readers without asking staff to sign in. If you connected the browser to a location, it lists the readers registered to that location. See [Take a payment on the Jovvie payment page](https://docs.jovvie.com/checkout/jovvie-payment-page/). If a browser is not connected and nobody is signed in to WordPress, the payment page asks for your Access PIN (the PIN that lets someone use your readers) instead. > **Note** > > Anyone who uses a connected browser can use your readers until the connection ends. Connect only devices that stay in your control, and connect again after a week. ## Related pages - [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/) - [Take an in-person payment for an order (WooCommerce)](https://docs.jovvie.com/checkout/woocommerce/take-a-payment/) - [Take an in-person payment with a form (Gravity Forms)](https://docs.jovvie.com/checkout/gravity-forms/take-a-payment/) - [Take an in-person donation](https://docs.jovvie.com/checkout/givewp/take-a-donation/) - [Sell tickets at the door](https://docs.jovvie.com/checkout/the-events-calendar/sell-tickets-at-the-door/) Source: https://docs.jovvie.com/checkout/connect-a-browser/ --- # Set up a Jovvie Checkout location and card readers in WordPress Section: Jovvie Checkout > Choose or create the Stripe location your Checkout plugin uses, and register web card readers to it. Choose or create a Stripe location and register web card readers for Jovvie Checkout in WordPress. These steps apply to the WooCommerce, Gravity Forms, GiveWP, and Event Tickets integrations. A location is the place your card readers are registered to. It has an ID, which is how Stripe tells your locations apart. Saving a location here does not limit which readers the payment page lists. The payment page shows the readers of one location only when the browser was connected to that location. See [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). The ready-made Checkout integrations work with Stripe only. This page applies to the Jovvie plugins for WooCommerce, Gravity Forms, GiveWP, and Event Tickets, which are ready-made ways to use Jovvie Checkout. The Gravity Forms add-on labels and arranges some settings differently. Those differences are noted in each section. ## Before you start - The Jovvie plugin is installed and connected to your Jovvie account, which is linked to your Stripe account. See Install and connect for [WooCommerce](https://docs.jovvie.com/checkout/woocommerce/install-and-connect/), [Gravity Forms](https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/), [GiveWP](https://docs.jovvie.com/checkout/givewp/install-and-connect/), or [Event Tickets](https://docs.jovvie.com/checkout/the-events-calendar/install-and-connect/). - You are a WordPress administrator. - For a web terminal (a card reader that connects to the internet on its own, which staff use from a web browser), have the reader turned on and connected to the internet, and have its registration code ready. The registration code is a short code the reader shows on its screen. See your reader’s instructions for how to display it. ## Where to find the settings | Plugin | Where to go | Location section | Reader section | | ------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | ----------------------- | | WooCommerce | **WooCommerce** > **Settings** > **Payments** > **Jovvie Payments** > **Location & Terminals** | **Location ID** | **Register Reader** | | Gravity Forms | **Forms** > **Settings** > **Jovvie Payments** | **Location ID**, in the **Location & Terminals** group | **Reader Registration** | | GiveWP | **Donations** > **Settings** > **Payment Gateways** > **Jovvie Payments** > **Location & Terminals** | **Location ID** | **Register Reader** | | Event Tickets | **Tickets** > **Settings** > **Payments** > **Jovvie** | **Location ID** | **Register Reader** | In WooCommerce, GiveWP, and Event Tickets, the **Register Reader** section only appears after you create a location with **Create location**. It does not appear when you use **Custom Location ID**. In Gravity Forms, the **Reader Registration** group is always shown and registers readers to the location you saved. ## Choose one way to set the location The **Location ID** section gives you two options. - **Custom Location ID**: use a location that already exists in your Stripe account. - **Create location**: have Jovvie create a location for you. ### Use an existing location 1. Open the settings page, as listed in [Where to find the settings](https://docs.jovvie.com/checkout/locations-and-readers/#where-to-find-the-settings). 2. In the **Location ID** section, select **Custom Location ID**. 3. In **Stripe Location ID**, enter your location ID. Copy it from your Stripe Dashboard. 4. Save your changes. Readers you registered in your Stripe Dashboard or the Jovvie app stay registered to their own locations. In WooCommerce, GiveWP, and Event Tickets, you cannot register web readers from WordPress to a custom location. To do that, use **Create location** instead. In Gravity Forms, you can register web readers to the custom location you saved, using the **Reader Registration** group. ### Create a location 1. In the **Location ID** section, select **Create location**. 2. Enter **Address Line 1**. 3. Optional: enter **Address Line 2**. 4. Enter **Postal Code** and **City**. 5. Select your **Country**. In some countries, the list also asks for a state or region. 6. Save your changes. Jovvie creates one location for live mode and one for test mode. The section now shows **Created Location** with a **Live Stripe Location ID** and a **Test Stripe Location ID**, and lists the readers registered to each with their status. In Gravity Forms, **Country (2-letter code)** is a text box where you type the two-letter country code, and **State / Province (optional)** is a separate box. After you save, **Current Location** shows a **Live Location ID** and a **Test Location ID**, with the readers registered to each and their status. If you see **Failed to create location. Please check the data you entered and try again.**, check the address and try again. This message appears in WooCommerce and Event Tickets. In GiveWP, the form stays as it was if the location could not be created. In Gravity Forms, no message appears. If **Current Location** still shows **No location configured yet.** after you save, check the address and try again. > **Note** > > Readers you register with **Mode** set to **Live** go to the live location, and readers registered with **Test** go to the test location. Each plugin follows its own test mode setting for payments. See [Use test mode](https://docs.jovvie.com/payments/test-mode/). ## Register a web reader Web terminals need a registration code. App terminals, such as M2, WisePad 3, and Tap to Pay, connect through the Jovvie app. The app registers them for you, so they do not use this form. Create a location before you start. In WooCommerce, GiveWP, and Event Tickets, the **Register Reader** section appears only for a created location. In Gravity Forms, save a location first, then use the **Reader Registration** group. 1. In the **Register Reader** section, choose the **Mode**: **Live** or **Test**. 2. In **Registration Code**, enter the code shown on the reader. 3. Optional: in **Label**, enter a name staff will recognize, such as “Front counter”. In Gravity Forms, this field is **Reader Label (optional)**. 4. Save your changes. The reader is registered to the location for the mode you chose. For a location made with **Create location**, the reader now appears in the list under **Created Location**, or under **Current Location** in Gravity Forms. In Gravity Forms, if you saved a **Custom Location ID**, **Current Location** shows only the location ID and no reader list. Check for the reader in your Stripe Dashboard instead. If the reader does not appear on the payment page, check that it is powered on and connected to the internet. If the browser you use was connected to a specific location, also check that the reader is registered to that location. See [Reader not showing on the payment page](https://docs.jovvie.com/troubleshooting/reader-connection/). ## Reset a created location Use **Reset Location** only if you want to remove the location Jovvie created and start over. In Gravity Forms, this option is **Reset location**. > **Caution** > > Resetting removes the readers registered to the created live and test locations, and then removes the locations. You must register your readers again afterward. Do not reset while a payment is in progress. > > In Gravity Forms, **Reset location** is also offered when you saved a location with **Custom Location ID**. It then deletes the readers registered to that location, and the location itself, from your Stripe account. 1. In the **Location ID** section, select **Reset Location**. 2. Save your changes. After the reset, choose **Custom Location ID** or **Create location** again. ## Related pages - [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/) - [Take a payment on the Jovvie payment page](https://docs.jovvie.com/checkout/jovvie-payment-page/) - [Settings reference for WooCommerce](https://docs.jovvie.com/checkout/woocommerce/settings/) - [Settings reference for Gravity Forms](https://docs.jovvie.com/checkout/gravity-forms/settings/) - [Settings reference for GiveWP](https://docs.jovvie.com/checkout/givewp/settings/) - [Settings reference for Event Tickets](https://docs.jovvie.com/checkout/the-events-calendar/settings/) Source: https://docs.jovvie.com/checkout/locations-and-readers/ --- # Install and connect Jovvie Checkout for WooCommerce Section: Jovvie Checkout > WooCommerce > Install the Jovvie plugin for WooCommerce and connect it to your Jovvie and Stripe accounts. This page helps you install the Jovvie plugin for WooCommerce and connect it to your Jovvie account, so your store can take card payments in person on a card reader. The plugin is a ready-made way to use Jovvie Checkout with WooCommerce. It works with Stripe only. NMI is not supported. ## Before you start - WooCommerce is installed and active on your WordPress site. The Jovvie plugin needs it. - You are signed in to WordPress as an administrator. - You can sign in to, or create, a Jovvie account, and you can link a Stripe account to it. - Your browser allows pop-up windows from your WordPress site. The connection steps open a pop-up window. ## Install the plugin The plugin is not in the WordPress.org plugin directory. You download it from Jovvie and upload it to your site. 1. Go to [the Jovvie Checkout for WooCommerce download page](https://jovvie.com/checkout/checkout-woo/) and download the plugin ZIP file. 2. In your WordPress admin, go to **Plugins** > **Add New Plugin**. 3. Click **Upload Plugin**. 4. Click **Choose File** and select the ZIP file you downloaded. 5. Click **Install Now**. 6. Click **Activate Plugin**. In your WordPress Plugins list, the plugin appears as **Jovvie Payments Gateway for WooCommerce**. ## Open the Jovvie settings 1. In your WordPress admin, go to **WooCommerce** > **Settings** > **Payments**. 2. Find **Jovvie Payments** in the list of payment methods and open it. The settings are split into three groups: **Account Management**, **Location & Terminals**, and **Payment Connect**. Start in **Account Management**. See [Settings reference](https://docs.jovvie.com/checkout/woocommerce/settings/) for every field. ## Connect with Jovvie Payments 1. In the **Account Management** group, find **Connection status**. 2. Click **Connect with Jovvie Payments**. A pop-up window opens. 3. In the pop-up, follow the prompts to sign in or create your Jovvie account and link your Stripe account. 4. Wait for the message starting with **Stripe account successfully connected!** The pop-up closes and the settings page reloads after a few seconds. When the connection works, **Connection status** shows **Connected**. Connecting also turns on the **Enable/Disable** setting for Jovvie Payments. The **Public key** and **Secret key** fields are filled in for you. If the pop-up shows a message starting with **Failed to validate Stripe keys.** or **Unable to connect.**, close it, click **Connect with Jovvie Payments** again, and try once more. If it fails again, contact [Jovvie support](https://jovvie.com/support/). If the pop-up does not open, allow pop-ups for your site in your browser and click the button again. ## Choose what customers see In **Account Management**, you can change the name and text shown at checkout. See [Settings reference](https://docs.jovvie.com/checkout/woocommerce/settings/). - **Title**: The payment method name. The default is **Jovvie Payments**. - **Description**: The text under the name. The default is **You will be redirected to payment immediately after placing your order.** ## Turn payments on or off To stop offering Jovvie at checkout without disconnecting, clear the **Enable/Disable** checkbox and save your changes. Select it and save to turn Jovvie back on. ## Test mode Unlike the GiveWP and Event Tickets plugins, the WooCommerce plugin has its own **Test mode** setting. It is a checkbox in **Account Management** labeled **Enable test mode**. While it is on, no real card is charged, and checkout shows the notice **Note! Test Mode is enabled.** Clear it before you take real payments. For more about test mode, see [Use test mode](https://docs.jovvie.com/payments/test-mode/). ## Before you take payments 1. Set up a location and register a reader. See [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). 2. Contact [Jovvie support](https://jovvie.com/support/) to confirm that payment confirmations from Stripe (webhooks, which are automatic messages sent to your site) are set up for your site, in live mode and, if you use it, in test mode. WooCommerce orders only move to **Processing** after your site receives this confirmation. ## Next steps - [Settings reference](https://docs.jovvie.com/checkout/woocommerce/settings/) - [Take an in-person payment for an order](https://docs.jovvie.com/checkout/woocommerce/take-a-payment/) ## Need help? If you cannot connect, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/woocommerce/install-and-connect/ --- # Jovvie Checkout for WooCommerce settings Section: Jovvie Checkout > WooCommerce > Every field in the Jovvie Payments settings for WooCommerce, in the Account Management, Location & Terminals, and Payment Connect groups. This page explains every setting for Jovvie Checkout for WooCommerce, which uses Stripe. You can find these settings in WordPress under **WooCommerce** > **Settings** > **Payments** > **Jovvie Payments**. They are split into three groups: **Account Management**, **Location & Terminals**, and **Payment Connect**. You need to be a WordPress administrator. Use this page as a reference. For first-time setup, start with [Install and connect](https://docs.jovvie.com/checkout/woocommerce/install-and-connect/). ## Account Management This group connects the plugin to your Jovvie account and controls how Jovvie appears at checkout. - **Enable/Disable**: Turns Jovvie Payments on or off at checkout. Connecting turns it on. - **Title**: The payment method name customers and staff see at checkout. The default is **Jovvie Payments**. - **Description**: The text shown under the title at checkout. The default is **You will be redirected to payment immediately after placing your order.** - **Connection status**: Shows **Connect with Jovvie Payments** until you connect. After that it shows **Connected**. See [Install and connect](https://docs.jovvie.com/checkout/woocommerce/install-and-connect/). - **Public key** and **Secret key**: These are filled in for you when you connect. Do not share them, and do not paste them into emails or chats. Leave them as they are unless Jovvie support asks you to change them. - **Test mode**: Select **Enable test mode** to practice without charging a real card. Checkout shows the notice **Note! Test Mode is enabled.** while it is on. This setting belongs to the WooCommerce plugin, so it is not tied to any other WooCommerce setting. Readers and locations are kept apart for live and test. See [Use test mode](https://docs.jovvie.com/payments/test-mode/). - **Webhook**: See [Webhook](https://docs.jovvie.com/checkout/woocommerce/settings/#webhook). - **Reset**: Select **Delete plugin data when deactivating** to remove the plugin’s saved settings, including your connection, when you deactivate the plugin. Leave it cleared unless you want to start over. Save your changes at the bottom of the page after you edit anything. ### Webhook Payment confirmations from Stripe (webhooks) are automatic messages that tell your site a card payment went through. This field shows: - A read-only **Webhook URL** box. - **Last webhook received**, followed by the date and time of the most recent confirmation, once one has arrived. WooCommerce orders only move to **Processing** after your site receives the payment confirmation. Without it, a paid order stays unpaid in WooCommerce. Test mode needs its own setup, separate from live mode. Confirmations do not reach sites that are in maintenance mode or running only on your own computer. Before you take payments, contact [Jovvie support](https://jovvie.com/support/) to confirm that webhooks are set up for your site, in live mode and, if you use it, in test mode. If WordPress shows the notice **No webhook received for Stripe + Jovvie In-person. Please check your settings.**, your site has not received a confirmation after a payment. The notice does not tell you whether the payment went through. Before you retry that payment or take it another way, check your Stripe Dashboard and confirm that no payment went through and none is still processing. Then contact [Jovvie support](https://jovvie.com/support/). If you are not sure whether the customer was charged, do not charge them again until support confirms. ## Location & Terminals This group sets the location your readers belong to and lets you register readers. A location is the place where your readers are registered, and you need one to use them. For the general idea and the steps, see [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). The group also lists the readers it works with. Web terminals are card readers that connect to the internet on their own, and staff use them from a web browser. App terminals are readers that connect through the Jovvie app. In WooCommerce, **Web Terminals** are listed as **Stripe Terminal S700** and **Wise POS E**. **Jovvie App Terminals** are **M2**, **WisePad 3**, **Tap to Pay on Android**, and **Tap to Pay on iPhone**. The buttons **Shop Terminals** and **Download Jovvie App** open the reader shop and the app stores. See [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). ### Location ID The description reads **Default Stripe terminal readers Location ID.** Choose one of these options: - **Custom Location ID**: Use a location you already have. Enter it in **Stripe Location ID**, then save your changes. - **Create location**: Have Jovvie create the location for you. Fill in **Address Line 1**, **Address Line 2** (optional), **Postal Code**, **City**, and **Country**. In the **Country** list, countries with states or regions list each state separately. Save your changes. Jovvie creates a live location and a test location together. After a location is created, the group shows **Created Location** with **Live Stripe Location ID** and **Test Stripe Location ID**. Under each ID it lists the readers registered to that location, with each reader’s label and status. If you see **Failed to create location. Please check the data you entered and try again.**, check the address and save again. > **Caution** > > **Reset Location** deletes the readers registered to the created live and test locations, and then deletes both locations. After a reset, you must create a location and register your readers again. Do not reset while a payment is in progress. ### Register Reader **Register Reader** appears only after you use **Create location**. Only web terminals (Stripe Terminal S700 and Wise POS E) need a registration code, which is a short code the reader shows on its screen. App terminals (M2, WisePad 3, and Tap to Pay) are registered automatically by the Jovvie app. 1. Under **Mode**, select **Live** or **Test**. 2. In **Registration Code**, enter the code shown on the reader. 3. In **Label**, enter a name for the reader. This is optional. 4. Save your changes. Check that the reader is registered by looking for its label under the matching location ID, in the **Created Location** list. ## Payment Connect This group lets guests use your readers on the payment page without signing in to WordPress. It is where you connect a browser. - **Connect Browser**: Select **Connect this browser** to link the current browser to a location. This keeps access to your readers active after you sign out of WordPress, so a shared or kiosk device can take payments. In **Location ID (optional)**, you can enter a location to link to. When you save, WordPress shows **Redirecting to connect browser…** and sends you to a Jovvie page to finish. If you are not redirected, click **Connect browser**. If you see **Failed to connect browser**, try again. Only connect browsers you trust. For the full steps, see [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). ## Need help? If a setting does not behave as described here, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/woocommerce/settings/ --- # Take a WooCommerce order payment with Jovvie Checkout Section: Jovvie Checkout > WooCommerce > Place a WooCommerce order with Jovvie Payments and take the card payment on a Stripe card reader. Take an in-person card payment using Jovvie Checkout with your WooCommerce checkout. The customer taps, inserts, or swipes their card on your Stripe card reader, and WooCommerce records the payment on the order. ## Before you start - The Jovvie plugin for WooCommerce is installed and connected. In **WooCommerce** > **Settings** > **Payments** > **Jovvie Payments** > **Account Management**, the connection status shows **Connected**. See [Install and connect](https://docs.jovvie.com/checkout/woocommerce/install-and-connect/). - **Jovvie Payments** is turned on in the same section (**Enable/Disable**). - A Stripe card reader is registered to your connected Stripe account, turned on, and connected to the internet. See [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). If this browser was connected to a specific location, the reader must be registered to that location. - The device you use to take payments can reach your card readers in one of these ways: - You are signed in to WordPress on this device. - This browser was connected with **Connect this browser** in **Payment Connect**. See [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). - You know your Access PIN, the PIN that lets someone use your readers. Without one of the first two, the payment page asks for it. - Jovvie support has confirmed that payment confirmations from Stripe (webhooks, which are automatic messages sent to your site) are set up for your site. WooCommerce only marks an order paid when your site receives this confirmation. Test mode needs its own setup, so confirm both live and test mode if you use test mode. To check, contact [Jovvie support](https://jovvie.com/support/). > **Note** > > When **Enable test mode** is selected in **Account Management**, no real card is charged, and the payment page lists simulated readers instead of your real readers. Turn off test mode before you take real payments. ## Take the payment 1. Open your store on the device. 2. Add the products the customer wants to the cart. 3. Go to the checkout page. 4. Enter the customer’s billing details. 5. Under the payment options, select **Jovvie Payments**. If you changed the payment method title in the settings, select that title instead. 6. Click **Place order**. You are taken to the Jovvie payment page. It shows the items and the total. 7. Select **In-Person Payment**. 8. If you see **Provide PIN to access**, enter your Access PIN in **PIN**. If you do not see it, skip to step 10. 9. Click **Submit**. 10. Under **Choose a reader**, select the reader the customer will use. Each reader shows its name and status. 11. Click **Process Payment**. 12. Ask the customer to tap, insert, or swipe their card on the reader, or pay with Apple Pay or Google Pay on the reader. 13. Follow any prompts on the reader screen. When the payment goes through, you are taken to the WooCommerce order received page. For more about the payment page, see [Take a payment on the Jovvie payment page](https://docs.jovvie.com/checkout/jovvie-payment-page/). ## What happens to the order When you click **Place order**, WooCommerce creates the order with the status **Pending payment**. Reaching the order received page does not by itself complete the order. Your site completes the order when it receives the payment confirmation from Stripe (a webhook). WooCommerce then moves the order to **Processing** and adds the note **Payment succeeded in Stripe.** This can happen before or after you reach the order received page. If the payment fails, WooCommerce moves the order to **Failed** and adds the note **Payment failed in Stripe.** when your site receives that update from Stripe. If an order stays **Pending payment** after the customer paid: 1. In **WooCommerce** > **Settings** > **Payments** > **Jovvie Payments** > **Account Management**, check the **Last webhook received** date and time in the **Webhook** row. See [Settings reference](https://docs.jovvie.com/checkout/woocommerce/settings/). 2. Check your Stripe Dashboard to see whether the payment went through or is still processing. 3. Do not charge the customer again. Contact [Jovvie support](https://jovvie.com/support/). If WordPress shows the notice **No webhook received for Stripe + Jovvie In-person. Please check your settings.**, your site is not receiving payment confirmations. Contact [Jovvie support](https://jovvie.com/support/) before you take more payments. ## If you need to stop To leave the payment page before the customer pays, click **← Back**. You go to the order received page, and the order stays **Pending payment**. Only click **← Back** after you are sure the customer has not paid. If a payment error appears, or you are not sure whether the card was charged, check your Stripe Dashboard first. Make sure no payment went through and none is still processing before you try again, place a new order, or cancel the unpaid order. If you are still not sure, contact support. ## Need help? If the checkout page shows **An error occurred while trying to proceed to payment using Jovvie Payments.**, or the payment page shows an error, see [Checkout payment page errors](https://docs.jovvie.com/troubleshooting/checkout-errors/) or contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/woocommerce/take-a-payment/ --- # Install and connect Jovvie Checkout for GiveWP Section: Jovvie Checkout > GiveWP > Install the Jovvie plugin for GiveWP and connect it to your Jovvie and Stripe accounts. This page helps you install the Jovvie plugin for GiveWP and connect it to your Jovvie account, so your donation forms can take card donations on a card reader. The plugin is a ready-made way to use Jovvie Checkout with GiveWP, and it works with Stripe. ## Before you start - GiveWP is installed and active on your WordPress site. The Jovvie plugin does not load without it, and WordPress shows the notice **Jovvie Payments Gateway for GiveWP requires GiveWP plugin to be active.** - You are signed in to WordPress as an administrator. - You can sign in to, or create, a Jovvie account, and you can link a Stripe account to it. - Your browser allows pop-up windows from your WordPress site. The connection steps open a pop-up window. ## Install the plugin 1. In your WordPress admin, go to **Plugins** > **Add New Plugin**. 2. Search for **Tap To Donate for Give by Jovvie**. 3. Click **Install Now**. 4. Click **Activate**. In your WordPress Plugins list, the plugin appears as **Jovvie Payments Gateway for GiveWP**. Until you connect, WordPress shows a banner titled **Jovvie Payments Gateway Activated: In-Person Donations**. ## Connect with Jovvie Payments 1. In the banner, click **Configure Settings**. If the banner is gone, go to **Donations** > **Settings** > **Payment Gateways** > **Jovvie Payments** instead. 2. Make sure the **Account Management** group is open. 3. Next to **Connection Status**, click **Connect with Jovvie Payments**. A pop-up window opens. 4. In the pop-up, follow the prompts to sign in or create your Jovvie account and link your Stripe account. 5. Wait for the message **Jovvie successfully connected! Payments enabled for processing.** The pop-up closes and the settings page reloads after a few seconds. ## Check the connection status After you connect, **Connection Status** shows one of these: - **Connected**: The plugin can reach your Jovvie account. You are ready to [turn on Jovvie for your forms](https://docs.jovvie.com/checkout/givewp/enable-on-forms/). - **Not Connected: Invalid keys**: The saved connection details are not accepted. Contact [Jovvie support](https://jovvie.com/support/). - **Not Connected: Something went wrong**: The plugin could not check the connection. Reload the page and check again. If the message stays, contact [Jovvie support](https://jovvie.com/support/). If the pop-up shows **Failed to validate keys** or **Unable to connect**, close it, click **Connect with Jovvie Payments** again, and try once more. If it fails again, contact [Jovvie support](https://jovvie.com/support/). The status label also shows the mode, for example **Connection Status (live)** or **Connection Status (test)**. > **Note** > > Jovvie follows GiveWP’s test mode setting. When GiveWP is in test mode, Jovvie works in test mode too, and no real card is charged. Turn off GiveWP’s test mode before you take real donations. See [Use test mode](https://docs.jovvie.com/payments/test-mode/). ## Next steps 1. [Set up a Jovvie Checkout location and card readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). For GiveWP, these settings are in the **Location & Terminals** group. 2. [Turn on Jovvie for your forms](https://docs.jovvie.com/checkout/givewp/enable-on-forms/). 3. [Take an in-person donation](https://docs.jovvie.com/checkout/givewp/take-a-donation/). Source: https://docs.jovvie.com/checkout/givewp/install-and-connect/ --- # Turn on Jovvie Checkout for GiveWP donation forms Section: Jovvie Checkout > GiveWP > Turn on the Jovvie Payments gateway in GiveWP and on the donation forms where you take in-person donations. This page helps you turn on Jovvie in GiveWP so your donation forms can take in-person donations. Jovvie shows up in GiveWP as a payment gateway (a way to pay) named **Jovvie Payments**. You turn it on in GiveWP, then make sure each donation form where you want to take in-person donations offers it. ## Before you start - The Jovvie plugin is installed and **Connection Status** shows **Connected**. See [Install and connect](https://docs.jovvie.com/checkout/givewp/install-and-connect/). - You are signed in to WordPress as an administrator. ## Turn on the gateway in GiveWP 1. In WordPress, go to **Donations** > **Settings** > **Payment Gateways**. 2. Find **Jovvie Payments** in the list of gateways. 3. Turn on **Jovvie Payments**. 4. Save your changes. ## Make sure the form offers Jovvie GiveWP decides which turned-on gateways each donation form offers. The form editor and its labels belong to GiveWP and can differ between GiveWP versions, so this page does not list them. If a form does not show the Jovvie option, open that form in GiveWP’s form editor and check its payment gateway settings. Make sure **Jovvie Payments** is included, then save the form. To find where these settings are in your version, see GiveWP’s own documentation. On the form, the payment option for Jovvie is labeled **Swipe, Insert or Tap Donations**. Donors and staff see this name, not **Jovvie Payments**. Under that option, the form shows a short message that starts with **How it works**. It explains that the donor is sent to accept the in-person payment, then taps, swipes, or inserts a card on the reader (or uses Apple Pay or Google Pay). The donor is then sent back to see the donation receipt. ## Check it works 1. Turn on GiveWP’s test mode. Jovvie follows this setting, so no real card is charged. See [Use test mode](https://docs.jovvie.com/payments/test-mode/). 2. Open the form on the device you will use. 3. Confirm that **Swipe, Insert or Tap Donations** appears under the payment options. 4. Start a test donation and submit the form. See [Take an in-person donation](https://docs.jovvie.com/checkout/givewp/take-a-donation/). 5. On the Jovvie payment page, before you select a reader, confirm that the orange **Test Mode** bar appears across the top. If you do not see it, the page is in live mode. Click **← Back** without taking a payment, and check GiveWP’s test mode setting. 6. Finish the test donation on a simulated reader. 7. When you are done testing, turn off GiveWP’s test mode before you take real donations. If you do not see **Swipe, Insert or Tap Donations**, check that **Jovvie Payments** is turned on in GiveWP’s gateway settings and included on the form, and that **Connection Status** still shows **Connected**. Source: https://docs.jovvie.com/checkout/givewp/enable-on-forms/ --- # Jovvie Checkout for GiveWP settings Section: Jovvie Checkout > GiveWP > Every field in the Jovvie Payments settings for GiveWP, in the Account Management, Location & Terminals, and Payment Connect groups. This page explains every setting for Jovvie Checkout for GiveWP, which uses Stripe. You can find these settings in WordPress under **Donations** > **Settings** > **Payment Gateways** > **Jovvie Payments**. They are split into three groups: **Account Management**, **Location & Terminals**, and **Payment Connect**. Use this page as a reference. For first-time setup, start with [Install and connect](https://docs.jovvie.com/checkout/givewp/install-and-connect/). ## Account Management This group connects the plugin to your Jovvie account. - **Connection Status**: Shows **Connect with Jovvie Payments** until you connect. After that it shows **Connected**, **Not Connected: Invalid keys**, or **Not Connected: Something went wrong**. The label also shows whether GiveWP is in live or test mode. See [Install and connect](https://docs.jovvie.com/checkout/givewp/install-and-connect/). - **Public Key**, **Secret Key**, and **Webhook Key**: These are filled in for you when you connect. Do not share them, and do not paste them into emails or chats. Leave them as they are unless Jovvie support asks you to change them. - **Webhook Details**: A webhook is an automatic message Jovvie sends to your site to report a payment update. This setting shows the address Jovvie sends those messages to, in a read-only **Webhook URL** box. Once an update has arrived, it also shows **Last webhook received** with the date and time. Leave this as it is unless Jovvie support asks you to change something. If WordPress shows the notice **No webhook received for Stripe + Jovvie In-person. Please check your settings.**, your site has not received the expected payment update from Jovvie. Contact [Jovvie support](https://jovvie.com/support/). ## Location & Terminals This group sets the location your readers belong to and lets you register readers. A location is the place where your readers are registered, and you need one to use them. For the general idea, see [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). The group also lists the readers it works with. Web terminals are card readers that connect to the internet on their own, and staff use them from a web browser. App terminals are readers that connect through the Jovvie app. **Web Terminals** are listed as **Stripe Reader s700** and **Wise POS E**. **Jovvie App Terminals** are **M2**, **WisePad 3**, **Tap to Pay on Android**, and **Tap to Pay on iPhone**. The buttons **Shop Terminals** and **Download Jovvie App** open the reader shop and the app stores. See [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). ### Location ID The description reads **Default Stripe terminal readers Location ID.** Choose one of these options: - **Custom Location ID**: Use a location you already have. Enter it in **Stripe Location ID**. - **Create location**: Have Jovvie create the location for you. Fill in **Address Line 1**, **Address Line 2** (optional), **Postal Code**, **City**, and **Country**. In the **Country** list, countries with states or regions list each state separately. Countries that Jovvie supports appear first. Save your changes. Jovvie creates a live location and a test location together. After a location is created, the group shows **Created Location** with **Live Stripe Location ID** and **Test Stripe Location ID**. Under each ID it lists the readers registered to that location, with each reader’s label and status. > **Caution** > > **Reset Location** deletes the created locations and every reader registered to them, in both live and test mode. After a reset, you must create a location again and register your readers again. Only use it when you want to start over. Do not reset while a payment is in progress. ### Register Reader **Register Reader** appears only after you use **Create location**. Only web terminals (Stripe Reader S700 and WisePOS E) need a registration code, which is a short code the reader shows on its screen. App terminals (M2, WisePad 3, and Tap to Pay) are registered automatically by the Jovvie app. 1. Under **Mode**, select **Live** or **Test**. 2. In **Registration Code**, enter the code shown on the reader. 3. In **Label**, enter a name for the reader. This is optional. 4. Save your changes. Check that the reader is registered by looking for its label under the matching location ID, in the **Created Location** list. ## Payment Connect This group lets guests use your readers on the payment page without signing in to WordPress. It is where you connect a browser. - **Connect browser**: Select **Connect this browser** to link the current browser to a location. This keeps access to your readers active after you sign out of WordPress, so a shared or kiosk device can take donations. In **Location ID (optional)**, you can enter a location to link to. When you save, WordPress shows **Redirecting to connect browser…** and sends you to a Jovvie page to finish. If you are not redirected, click **Connect browser**. Only connect browsers you trust, such as a device that stays at your event table. For more on shared devices, see [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). ## Need help? If a setting does not behave as described here, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/givewp/settings/ --- # Take an in-person donation with Jovvie Checkout for GiveWP Section: Jovvie Checkout > GiveWP > Accept a card donation on a reader using your GiveWP donation form and Jovvie. Take an in-person card donation using Jovvie Checkout with your GiveWP donation form. The donor taps, inserts, or swipes their card on your Stripe card reader, and GiveWP records the donation. ## Before you start - The Jovvie plugin for GiveWP is installed and connected. In **Donations** > **Settings** > **Payment Gateways** > **Jovvie Payments** > **Account Management**, the connection status shows **Connected**. See [Install and connect Jovvie Checkout for GiveWP](https://docs.jovvie.com/checkout/givewp/install-and-connect/). - **Jovvie Payments** is turned on for the donation form you want to use. See [Turn on Jovvie Checkout for GiveWP donation forms](https://docs.jovvie.com/checkout/givewp/enable-on-forms/). - A Stripe card reader is registered to your connected Stripe account, powered on, and connected to the internet. See [Set up a Jovvie Checkout location and card readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). If this browser was connected to a specific location, the reader must be registered to that location. - The device you use to take donations can reach your card readers in one of these ways: - You are signed in to WordPress on this device. - This browser was connected in **Donations** > **Settings** > **Payment Gateways** > **Jovvie Payments** > **Payment Connect** using **Connect this browser**. - You know your Access PIN, the PIN that lets someone use your readers. Without one of the first two, the payment page asks for it. > **Note** > > Jovvie follows GiveWP’s test mode setting. In test mode, no real card is charged, and the payment page lists simulated readers instead of your real readers. Turn off GiveWP’s test mode before you take real donations. ## Take the donation 1. Open your donation form on the device. 2. Enter the donation amount. 3. Enter the donor’s details. 4. Under the payment options, select **Swipe, Insert or Tap Donations**. 5. Submit the form. You are taken to the Jovvie payment page. It shows the donation amount. 6. Select **In-Person Payment**. 7. If you see **Provide PIN to access**, enter your Access PIN in **PIN**. If you do not see it, skip to step 9. 8. Click **Submit**. 9. Under **Choose a reader**, select the reader the donor will use. Each reader shows its name and status. 10. Click **Process Payment**. 11. Ask the donor to tap, insert, or swipe their card on the reader, or pay with Apple Pay or Google Pay on the reader. 12. Follow any prompts on the reader screen. When the payment goes through, the donor’s receipt appears. After 7 seconds, the page goes back to the donation form, ready for the next donor. ## What happens to the donation GiveWP marks the donation **Complete** and adds the note **Donation Captured.** This happens only when the payment page sends the browser back to your site. If the tab closes or the connection drops first, the donation can stay **Pending** even though the donor was charged. If a donation stays **Pending**: 1. Check your Stripe Dashboard for the payment. 2. If the donor was charged, do not take the donation again. 3. Contact [Jovvie support](https://jovvie.com/support/). ## If you need to stop Before you leave the payment page, retry a donation, or take payment another way, check your Stripe Dashboard. Confirm that no payment went through and none is still processing. If you cannot confirm this, contact [Jovvie support](https://jovvie.com/support/) before continuing. If no payment went through and none is still processing, click **← Back** to return to the donation form. GiveWP marks the unpaid donation **Abandoned** with the note **Donation canceled by user.** ## Need help? If the payment page shows an error or GiveWP shows **Invalid Checkout Error**, see [Checkout payment page errors for GiveWP](https://docs.jovvie.com/troubleshooting/checkout-errors/#givewp) or contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/givewp/take-a-donation/ --- # Install and connect Jovvie Checkout for Gravity Forms Section: Jovvie Checkout > Gravity Forms > Install the Jovvie add-on for Gravity Forms and connect it to your Jovvie and Stripe accounts. This page helps you install the Jovvie add-on for Gravity Forms and connect it to your Jovvie account, so your forms can take card payments on a card reader. The add-on is a ready-made way to use Jovvie Checkout with Gravity Forms. It works with Stripe and takes one-time payments. ## Before you start - Gravity Forms 2.5 or later is installed and active on your WordPress site. If it is not, WordPress shows the notice **Jovvie Payments Gateway for Gravity Forms requires Gravity Forms 2.5 or later with the payment add-on framework.** - You are signed in to WordPress as an administrator. - You can sign in to, or create, a Jovvie account, and you can link a Stripe account to it. - Your browser allows pop-up windows from your WordPress site. The connection steps open a pop-up window. ## Install the add-on 1. Open the [Jovvie add-on page on the Gravity Forms site](https://www.gravityforms.com/add-ons/jovvie-in-person-payments-gateway-for-gravity-forms/). 2. Download the add-on ZIP file from that page. 3. In your WordPress admin, go to **Plugins** > **Add New Plugin**. 4. Click **Upload Plugin**. 5. Click **Choose File** and select the ZIP file you downloaded. 6. Click **Install Now**. 7. Click **Activate Plugin**. In your WordPress Plugins list, the plugin appears as **Jovvie Payments Gateway for Gravity Forms**. ## Connect with Jovvie Payments 1. In WordPress, go to **Forms** > **Settings** > **Jovvie Payments**. 2. In the **Jovvie Payments Account** group, find **Connection Status**. 3. Click **Connect with Jovvie Payments**. A pop-up window opens. 4. In the pop-up, follow the prompts to sign in or create your Jovvie account and link your Stripe account. 5. Wait for the message **Stripe account connected. Payments are enabled.** The pop-up closes and the settings page reloads after a few seconds. The plugin fills in the **Public Key** and **Secret Key** for you. Do not share them, and do not paste them into emails or chats. ## Check the connection status After you connect, **Connection Status** shows **Connected** in green. If it still shows the **Connect with Jovvie Payments** button, the plugin could not confirm the connection. If the pop-up shows **Could not validate the returned keys.** or **Unable to connect. Please try again later.**, close it, click **Connect with Jovvie Payments** again, and try once more. If it fails again, contact [Jovvie support](https://jovvie.com/support/). ## Test mode This add-on has its own **Test Mode** setting. It is a checkbox labeled **Use the Jovvie test environment**, in the **Jovvie Payments Account** group. The same keys work for live and test, so you do not connect again to switch. 1. Select **Use the Jovvie test environment**. 2. Save your settings. In test mode, no real card is charged. Clear the checkbox and save again before you take real payments. See [Use test mode](https://docs.jovvie.com/payments/test-mode/). ## Payment updates from Jovvie (webhook) The same settings page has a read-only **Webhook** field. A webhook is an automatic message Jovvie sends to your site. Jovvie uses it to tell your site about payment failures, cancellations, and refunds. Without it, your entries do not show these changes. Contact [Jovvie support](https://jovvie.com/support/) to confirm your webhook is set up. ## Next steps 1. Set up a location and readers. See [Settings reference](https://docs.jovvie.com/checkout/gravity-forms/settings/), and for the general idea, [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). 2. [Add Jovvie to a form](https://docs.jovvie.com/checkout/gravity-forms/add-to-a-form/). 3. [Take an in-person payment with a form](https://docs.jovvie.com/checkout/gravity-forms/take-a-payment/). Source: https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/ --- # Add Jovvie Checkout to a Gravity Forms form Section: Jovvie Checkout > Gravity Forms > Add a Jovvie payment feed, and the optional Jovvie Payments field, to a Gravity Forms form so it can take in-person payments. This page helps you set up a Gravity Forms form so it can take in-person payments with Jovvie. A form takes Jovvie payments when it has a pricing field that produces an amount and a Jovvie payment feed (the setting that sends submissions to Jovvie). You can also add the **Jovvie Payments** field to tell customers how they will pay. ## Before you start - The Jovvie add-on is installed and **Connection Status** shows **Connected**. See [Install and connect](https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/). - You are signed in to WordPress as an administrator. - You have a form open in the Gravity Forms form editor. If you need to create one, see Gravity Forms’ own documentation. ## Add a pricing field Jovvie charges the amount your form produces. It has no separate amount setting. 1. In the form editor, add a Product, Total, or Donation field to the form. 2. Set up the field so the form produces an amount greater than zero when it is submitted. 3. Save the form. If the amount is zero or less, the payment does not start. The entry gets a note that starts with **Jovvie payment not started**. ## Add the Jovvie Payments field (optional) The **Jovvie Payments** field does not collect card details or any other value. It shows a notice on the form telling the customer they will be sent to the Jovvie payment page to pay after they submit. 1. In the form editor, open the **Pricing Fields** group. 2. Drag **Jovvie Payments** onto the form. 3. Change the label or description if you want. You can also use the field’s conditional logic. 4. Save the form. When the add-on is in test mode, the field also shows the notice **Test mode is enabled. No live payment will be processed.** ## Add the Jovvie payment feed The feed tells Gravity Forms which submissions to send to Jovvie for payment. 1. In the form, open the form’s settings and select **Jovvie Payments**. 2. Add a new feed. Gravity Forms’ own documentation explains how feeds work. 3. In **Name**, enter a name for the feed. This is required. 4. In **Description**, enter the text the customer and staff see on the Jovvie payment page. This is optional. Gravity Forms merge tags work here. If you leave it empty, the page shows a message that starts with **Payment via Gravity Forms on** followed by your site name and the entry number. 5. To use the feed only in some cases, set a **Condition** under **Conditional Logic**. 6. Save the feed. > **Note** > > The feed takes one-time payments only. It does not take subscriptions or recurring payments. ## Check it works 1. In WordPress, go to **Forms** > **Settings** > **Jovvie Payments**. 2. Select **Use the Jovvie test environment**. See [Use test mode](https://docs.jovvie.com/payments/test-mode/). 3. Save your settings. 4. Open the form on the device you will use. 5. Fill it out and submit it. 6. Confirm that you are sent to the Jovvie payment page, and that the orange **Test Mode** bar appears across the top. See [Take a payment on the Jovvie payment page](https://docs.jovvie.com/checkout/jovvie-payment-page/). 7. Finish the test payment on a simulated reader. 8. When you are done, go back to **Forms** > **Settings** > **Jovvie Payments**. 9. Clear **Use the Jovvie test environment**. 10. Save your settings before you take real payments. For the full steps, see [Take an in-person payment with a form](https://docs.jovvie.com/checkout/gravity-forms/take-a-payment/). ## If the payment does not start If you submit the form and are not sent to the Jovvie payment page, open the entry in Gravity Forms and read its notes. - A note that starts with **Jovvie Payments is not configured** means the **Public Key** and **Secret Key** are missing. See [Install and connect](https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/). - A note that starts with **Jovvie payment could not be created** means the request to Jovvie failed. Contact [Jovvie support](https://jovvie.com/support/). In both cases the entry’s payment status is **Failed**. The entry can show **Failed** even when the problem happened after a payment was set up, so do not treat it as proof that the customer was not charged. Before you submit the form again or take the payment another way, check your Stripe Dashboard and confirm that no payment went through and none is still processing. If you are not sure, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/gravity-forms/add-to-a-form/ --- # Reset a Gravity Forms form after each Jovvie Checkout payment Section: Jovvie Checkout > Gravity Forms > Make a Gravity Forms form return to a blank form after the Jovvie Checkout payment confirmation, ready for the next customer. Set up auto-reload for Jovvie Checkout in Gravity Forms so your form is ready for the next customer after each payment. After a customer pays, they come back to your form’s page and see the form’s confirmation. With auto-reload, the page then returns to a blank form after a short delay. Use it on a kiosk, a counter, or any device that takes payments one after another. ## Before you start - The Jovvie add-on is installed and connected. See [Install and connect](https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/). - You are signed in to WordPress as an administrator. ## Change auto-reload Auto-reload is on by default, and the delay is 5 seconds. These settings apply to every form that uses Jovvie on your site. 1. In WordPress, go to **Forms** > **Settings** > **Jovvie Payments**. 2. Find the **Confirmation** group. 3. To keep auto-reload on, leave **Auto-reload** selected. Its label is **After showing the confirmation, reload the page to a fresh form**. 4. In **Reload delay (seconds)**, enter how long the confirmation stays on screen. The default is 5. 5. Save your settings. To turn auto-reload off, clear the **Auto-reload** checkbox and save. The confirmation then stays on screen until someone leaves the page. The **Reload delay (seconds)** field is only used while **Auto-reload** is on. ## When it applies - Auto-reload works when the form’s confirmation shows a message on the same page. If the form’s confirmation sends the customer to another page or web address, they are sent there and the page does not reload. - If the customer leaves the Jovvie payment page without paying, they go straight back to a fresh form. No confirmation shows. > **Tip** > > Choose a delay that gives the customer enough time to read the confirmation. If staff need to read details from it, such as an entry number, use a longer delay or turn auto-reload off. ## Need help? If the page does not reload as described here, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/gravity-forms/auto-reload/ --- # Jovvie Checkout for Gravity Forms settings Section: Jovvie Checkout > Gravity Forms > Every field in the Jovvie Payments settings and the Jovvie payment feed for Gravity Forms. This page explains every setting for Jovvie Checkout for Gravity Forms, which uses Stripe. You can find the plugin settings in WordPress under **Forms** > **Settings** > **Jovvie Payments**. They are split into five groups: **Jovvie Payments Account**, **Location & Terminals**, **Reader Registration**, **Payment Connect**, and **Confirmation**. Each form also has its own **Jovvie Payment Feed**, described at the end of this page. You need to be a WordPress administrator to change these settings. After you change anything on this page, save your settings. Changes do not take effect until you save. Use this page as a reference. For first-time setup, start with [Install and connect](https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/). > **Note: How this differs from the GiveWP and Event Tickets plugins** > > Compared with the GiveWP and Event Tickets plugins, in the Gravity Forms add-on: > > - **Test Mode** is the add-on’s own checkbox, not a setting from another plugin. > - Reader registration has its own group, **Reader Registration**, which is always visible. > - **Reset location** is an option under **Location ID**, not a separate button. > - **Country (2-letter code)** is a text box, not a list. > - The saved location is shown under **Current Location**. ## Jovvie Payments Account This group connects the add-on to your Jovvie account. - **Connection Status**: Shows **Connect with Jovvie Payments** until you connect. After that it shows **Connected**. See [Install and connect](https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/). - **Public Key** and **Secret Key**: These are filled in for you when you connect. Do not share them, and do not paste them into emails or chats. Leave them as they are unless Jovvie support asks you to change them. - **Webhook**: A webhook is an automatic message Jovvie sends to your site to report a payment update. This read-only box shows the address Jovvie sends those messages to. Below it you see **Last webhook received on** with a date and time, or **No webhook received yet.**, and a reminder that **Webhooks will not reach a site on localhost or in maintenance mode.** Jovvie needs the webhook to tell your site about payment failures, cancellations, and refunds. Contact [Jovvie support](https://jovvie.com/support/) to confirm your webhook is set up. - **Test Mode**: A checkbox labeled **Use the Jovvie test environment**. When it is selected, no real card is charged. The same keys work for live and test. See [Use test mode](https://docs.jovvie.com/payments/test-mode/). - **Accepted Payment Status**: The payment status an entry gets when a payment is accepted. Leave it set to **Completed (Paid)**, the default. - **Diagnostics**: A checkbox labeled **Enable debug logging and the missing-webhook notice**. It is off by default. When it is selected, the add-on writes more detailed messages to Gravity Forms’ logging, and WordPress shows a notice that starts with **Jovvie Payments: no payment webhook has been received recently.** if no update from Jovvie arrives after your payments. Jovvie support may ask you to turn it on while they look into a problem. If you see that notice, contact [Jovvie support](https://jovvie.com/support/). ## Location & Terminals This group sets the location your readers belong to. A location is the place where your readers are registered, and you need one to use them. For the general idea, see [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). - **Terminals**: A read-only list of the readers that work with Jovvie. Web terminals are card readers that connect to the internet on their own, and staff use them from a web browser. App terminals are readers that connect through the Jovvie app. **Web Terminals** are **Stripe Terminal S700** and **Wise POS E**. **Jovvie App Terminals** are **M2**, **WisePad 3**, **Tap to Pay on Android**, and **Tap to Pay on iPhone**. The links **Shop Terminals**, **Jovvie App (App Store)**, and **Jovvie App (Google Play)** open the reader shop and the app stores. See [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). ### Location ID The description reads **Default Stripe terminal readers Location ID.** Choose one of these options: - **Custom Location ID**: Use a location you already have. Enter it in **Stripe Location ID**, then save your settings. - **Create location**: Have Jovvie create the location for you. Fill in **Address Line 1**, **Address Line 2**, **Postal Code**, **City**, **Country (2-letter code)**, and **State / Province (optional)**. Save your settings. Jovvie creates a live location and a test location together. - **Reset location**: Delete the saved location and the readers registered to it. Read the caution about **Reset location** in this section before you use it. **Current Location** shows what is saved: - **No location configured yet.** appears until you save one. - With **Custom Location ID**, it shows **Custom Location ID:** and the ID. - After **Create location**, it shows **Live Location ID** and **Test Location ID**. Under each ID it lists the readers registered to that location, with each reader’s label and status. If the list cannot load, you see **Could not load readers.** > **Caution** > > **Reset location** deletes the saved location itself from your Stripe account, along with every reader registered to it. It does not only clear the setting. > > - This includes a location you entered with **Custom Location ID**. If you use that location anywhere else, such as with another Jovvie plugin or another site, it is deleted there too, and so are its readers. > - For a location made with **Create location**, it deletes both the live location and the test location, and the readers registered to each. > > After a reset, you must set a location again and register your readers again. Do not reset while a payment is in progress. To switch to a different location without deleting the current one, choose **Custom Location ID** or **Create location** instead and save. ## Reader Registration Only web terminals (Stripe Terminal S700 and Wise POS E) need a registration code, which is a short code the reader shows on its screen. App terminals (M2, WisePad 3, and Tap to Pay) are set up in the Jovvie app. Save a location first. A reader is registered to the saved location. 1. Under **Mode**, select **Live** or **Test**. 2. In **Registration Code**, enter the code shown on the reader. 3. In **Reader Label (optional)**, enter a name for the reader. 4. Save your settings. The **Registration Code** box is empty again after you save. To check that the reader is registered: - If you used **Create location**, look for the reader’s label under **Current Location**, below the matching location ID. - If you used **Custom Location ID**, **Current Location** shows only the ID. Check for the reader in your Stripe Dashboard instead. ## Payment Connect This group lets guests use your readers on the payment page without signing in to WordPress. It is where you connect a browser. - **Connect Browser**: Select **Connect this browser** to link the current browser to a location. This keeps access to your readers active after you sign out of WordPress, so a shared or kiosk device can take payments. In **Location ID (optional)**, you can enter a location to link to. When you save, you are sent to a Jovvie page to finish. Only connect browsers you trust, such as a device that stays at your counter. For more on shared devices, see [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). ## Confirmation - **Auto-reload**: A checkbox labeled **After showing the confirmation, reload the page to a fresh form**. On by default. - **Reload delay (seconds)**: How long the confirmation shows before the page reloads. The default is 5. See [Reset the form after each payment](https://docs.jovvie.com/checkout/gravity-forms/auto-reload/). ## Jovvie Payment Feed These settings are on each form, under the form’s settings for **Jovvie Payments**. See [Add Jovvie to a form](https://docs.jovvie.com/checkout/gravity-forms/add-to-a-form/). - **Name**: A name for the feed. Required. - **Description**: Text shown on the Jovvie payment page. Gravity Forms merge tags work here. If you leave it empty, the page shows a message that starts with **Payment via Gravity Forms on**. - **Condition**: Under **Conditional Logic**. Process this feed only when the conditions you set are met. ## Need help? If a setting does not behave as described here, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/gravity-forms/settings/ --- # Take a Gravity Forms payment with Jovvie Checkout Section: Jovvie Checkout > Gravity Forms > Submit a Gravity Forms form and take the card payment on a Stripe card reader with Jovvie. Take an in-person card payment using Jovvie Checkout with your Gravity Forms form. The customer taps, inserts, or swipes their card on your Stripe card reader, and Gravity Forms records the payment on the form entry. ## Before you start - The Jovvie add-on for Gravity Forms is installed and connected. In **Forms** > **Settings** > **Jovvie Payments**, **Connection Status** shows **Connected**. See [Install and connect](https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/). - **Accepted Payment Status** is set to **Completed (Paid)**, the default. See [Settings reference](https://docs.jovvie.com/checkout/gravity-forms/settings/). - The form has a Jovvie payment feed and produces an amount greater than zero. See [Add Jovvie to a form](https://docs.jovvie.com/checkout/gravity-forms/add-to-a-form/). - A Stripe card reader is registered to your connected Stripe account, turned on, and connected to the internet. See [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). If this browser was connected to a specific location, the reader must be registered to that location. - The device you use to take payments can reach your card readers in one of these ways: - You are signed in to WordPress on this device. - This browser was connected with **Connect this browser** in the **Payment Connect** group of the Jovvie settings. See [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). - You know your Access PIN, the PIN that lets someone use your readers. Without one of the first two, the payment page asks for it. - Jovvie support has confirmed that payment updates from Jovvie (webhooks) are set up for your site. Your site uses them to learn about failed and cancelled payments. To check, contact [Jovvie support](https://jovvie.com/support/). > **Note** > > When **Use the Jovvie test environment** is selected, no real card is charged, and the payment page lists simulated readers instead of your real readers. The payment page shows the orange **Test Mode** bar across the top. If your form includes the **Jovvie Payments** field, the form also shows **Test mode is enabled. No live payment will be processed.** Turn off test mode before you take real payments. ## Take the payment 1. Open the form on the device. 2. Fill out the form with the customer’s details and choices. 3. Submit the form. You are taken to the Jovvie payment page. It shows the items and the total. 4. Select **In-Person Payment**. 5. If you see **Provide PIN to access**, enter your Access PIN in **PIN**. If you do not see it, skip to step 7. 6. Click **Submit**. 7. Under **Choose a reader**, select the reader the customer will use. Each reader shows its name and status. 8. Click **Process Payment**. 9. Ask the customer to tap, insert, or swipe their card on the reader, or pay with Apple Pay or Google Pay on the reader. 10. Follow any prompts on the reader screen. When the payment goes through, you return to your site and see the form’s confirmation. If the confirmation is a message on the same page, the page goes back to a blank form after 5 seconds by default. See [Reset the form after each payment](https://docs.jovvie.com/checkout/gravity-forms/auto-reload/). For more about the payment page, see [Take a payment on the Jovvie payment page](https://docs.jovvie.com/checkout/jovvie-payment-page/). If you submit the form and the Jovvie payment page does not open, something went wrong while the payment was being set up. This does not prove that no payment started. Before you submit the form again or take the payment another way: 1. Check your Stripe Dashboard. 2. Confirm that no payment went through and none is still processing. 3. If you are not sure, contact [Jovvie support](https://jovvie.com/support/). To find the cause, see [Add Jovvie to a form](https://docs.jovvie.com/checkout/gravity-forms/add-to-a-form/#if-the-payment-does-not-start). ## What happens to the entry When you submit the form, Gravity Forms saves the entry with the payment status **Processing**. When you return to your site, the add-on checks the payment with Jovvie. If the payment went through, it marks the entry **Paid** and adds the note **Payment completed via Jovvie.** The confirmation can appear even if the entry was not updated yet. To be sure, open the entry in **Forms** > **Entries** and check its payment status. If you never return to your site, for example because the browser was closed, the entry stays **Processing** for now. About once an hour, the add-on checks entries that are still **Processing**: - If the payment went through, it marks the entry **Paid**. - If the payment failed or was cancelled, it marks the entry **Failed** and adds the note **Payment failed in Jovvie (reconciled).** If your site receives a failure update from Jovvie first, the entry is marked **Failed** with the note **Payment failed in Jovvie.** A card can be charged before the entry changes from **Processing**. If an entry is still **Processing**: 1. Check your Stripe Dashboard to see whether the payment went through or is still processing. 2. Do not charge the customer again. Wait for the hourly check to update the entry. 3. If the entry does not update, or you are not sure, contact [Jovvie support](https://jovvie.com/support/). ## If you need to stop To leave the payment page before the customer pays, click **← Back**. You return to a blank form, and no confirmation shows. The entry stays **Processing** until the hourly check marks it **Failed**. Only click **← Back** after you are sure the customer has not paid. If a payment error appears, or you are not sure whether the card was charged, check your Stripe Dashboard first. Make sure no payment went through and none is still processing before you try again or submit the form again. If you are still not sure, contact support. ## Need help? If the payment page shows an error, see [Checkout payment page errors](https://docs.jovvie.com/troubleshooting/checkout-errors/) or contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/gravity-forms/take-a-payment/ --- # Install and connect Jovvie Checkout for Event Tickets Section: Jovvie Checkout > Event Tickets > Install the Jovvie plugin for Event Tickets and connect it to your Stripe account so you can take in-person card payments for ticket sales. This page helps you install the Jovvie plugin for Event Tickets and connect it to your Jovvie account, which links your Stripe account. After you connect, you can sell tickets at the door with a Stripe card reader or Tap to Pay on a phone. The plugin is a ready-made way to use Jovvie Checkout with Event Tickets. Jovvie Checkout for Event Tickets works with Stripe only. NMI is not supported. ## Before you start - You are a WordPress administrator. - Event Tickets is installed and active, and **Tickets Commerce** is your ticket checkout. Jovvie adds an in-person payment option to Tickets Commerce. It does not work with tickets sold through other checkouts. - The Events Calendar is optional. If it is installed, door sales are linked to their event. - You have, or can create, a Jovvie account and a Stripe account. You can create both during the connection steps. - Your browser allows pop-up windows from your WordPress site. The connection steps open a pop-up window. ## Install the plugin 1. In your WordPress admin, go to **Plugins** > **Add New Plugin**. 2. Search for **Box Office for Event Tickets by Jovvie**. 3. Click **Install Now**. 4. Click **Activate**. In your WordPress Plugins list, the plugin appears as **Jovvie In Person Payments for Event Tickets**. ## Turn on Jovvie 1. In your WordPress admin, go to **Tickets** > **Settings**. 2. Open the **Payments** tab. 3. Find **Jovvie** in the list of payment gateways and turn it on. 4. Open the **Jovvie** settings. Until you connect, the page shows **Accept in-person payments with Jovvie!**. ## Connect your Stripe account 1. Click **Connect Automatically with Jovvie**. A small window opens. 2. In the window, sign in to your Jovvie account, or create one. 3. Follow the prompts to link your Stripe account. 4. Wait for the confirmation message starting with **Stripe account successfully connected!** The window closes by itself after a few seconds and the settings page reloads. If the window does not open, allow pop-ups for your site in your browser and click the button again. When the connection works, the page shows **Status:** **Connected**. If you see a message starting with **Unable to connect.** or **Failed to validate Stripe keys.**, wait a moment and try again. If it keeps happening, contact [Jovvie support](https://jovvie.com/support/). ## What to do next After you connect, the **Jovvie** settings show more sections, including **Webhook**, **Location ID**, **Connect Browser**, and **Logs**. See [Settings reference](https://docs.jovvie.com/checkout/the-events-calendar/settings/) for what each one does. Before you sell tickets: 1. Set up a location and register a reader. See [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). 2. Contact [Jovvie support](https://jovvie.com/support/) to confirm that payment confirmations from Stripe (webhooks, which are automatic messages sent to your site) are set up for your site, in live mode and, if you use it, in test mode. Event Tickets only completes an order when your site receives this confirmation. 3. See [Sell tickets at the door](https://docs.jovvie.com/checkout/the-events-calendar/sell-tickets-at-the-door/). ## Test mode Jovvie follows the test mode (sandbox) setting in Tickets Commerce. In test mode, no real card is charged. Turn off Tickets Commerce test mode before you take real payments. For more about test mode, see [Use test mode](https://docs.jovvie.com/payments/test-mode/). ## Need help? If you cannot connect, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/the-events-calendar/install-and-connect/ --- # Turn on Jovvie Checkout debug logs for Event Tickets Section: Jovvie Checkout > Event Tickets > Turn on the Jovvie log for Event Tickets, then download or delete it when support asks. This page helps you turn on the error log in the Jovvie plugin for Event Tickets. A log is a record of what the plugin did. Turn it on when you are troubleshooting, so Jovvie support can see what went wrong. You need to be a WordPress administrator. The **Logs** section appears after your Stripe account is connected. See [Install and connect](https://docs.jovvie.com/checkout/the-events-calendar/install-and-connect/). ## Turn on logging 1. In your WordPress admin, go to **Tickets** > **Settings**. 2. Open the **Payments** tab, then open the **Jovvie** settings. 3. Scroll to **Logs**. 4. Select **Enable logging**. 5. Save your changes at the bottom of the page. Repeat the action that caused the problem. The log only records problems that happen while logging is on. > **Caution: If the problem involved a payment** > > Before you repeat a payment, check your Stripe Dashboard. Make sure no payment went through and none is still processing. If you cannot confirm this, contact [Jovvie support](https://jovvie.com/support/) before you repeat it. Never charge a real customer again just to record the problem. ## Download the log 1. Go to **Logs** on the **Jovvie** settings. 2. Click **Download log**. 3. Send the file to [Jovvie support](https://jovvie.com/support/) only when they ask for it. If you see **Log is empty.**, nothing has been recorded yet. > **Caution** > > The log can contain details about your site and your orders. Share it only with Jovvie support. Do not post it in public forums or chats. ## Delete the log 1. Go to **Logs** on the **Jovvie** settings. 2. Click **Delete log**. ## Turn off logging 1. Clear **Enable logging**. 2. Save your changes. Turn logging off when you are done troubleshooting. Turning it off does not delete the existing log. Use **Delete log** for that. ## Need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/the-events-calendar/logs/ --- # Jovvie Checkout for Event Tickets settings Section: Jovvie Checkout > Event Tickets > What each section of the Jovvie settings does in Event Tickets. This page explains each setting for Jovvie Checkout for Event Tickets, which uses Stripe. All of these settings are on one tab. To open it, go to **Tickets** > **Settings** > **Payments**, then open the **Jovvie** settings. You need to be a WordPress administrator. Before you connect your Stripe account, you only see the connection section. After you connect, the other sections appear. See [Install and connect](https://docs.jovvie.com/checkout/the-events-calendar/install-and-connect/). Sections appear in this order. Save your changes at the bottom of the page after you edit anything. ## Connection Shows **Status:** **Connected** when your Stripe account is linked. Before that, it shows **Connect Automatically with Jovvie**. See [Install and connect](https://docs.jovvie.com/checkout/the-events-calendar/install-and-connect/). ## Webhook Shows the **Last webhook received** date and time. Payment confirmations from Stripe (webhooks, which are automatic messages sent to your site) must be set up for Event Tickets orders to complete. Without them, a paid order is not marked completed. Test mode needs its own setup, separate from live mode. To confirm that webhooks are set up for your site, contact [Jovvie support](https://jovvie.com/support/) before you sell tickets. ## Location ID A location is the place your readers are registered to, and it tells Stripe where your readers are. Choose one option: - **Custom Location ID**: Enter an existing location in **Stripe Location ID**. Use this if you already created a location in your Stripe account. - **Create location**: Jovvie creates a location for you. Fill in the address fields: - **Address Line 1** - **Address Line 2** (optional) - **Postal Code** - **City** - **Country**: Open the list (it starts with **Choose a country / region**) and pick your country. For the United States, the list includes each state. After you save a created location, the section shows: - **Created Location**: the location Jovvie made. - **Live Stripe Location ID** and **Test Stripe Location ID**: the live and test versions. Readers you register in **Live** mode go to the live location, and readers you register in **Test** mode go to the test location. These fields are read only. - A list of the readers registered to each location, with their status. - **Reset Location**: select this and save to start over. Read the **Reset Location** caution in this section first. Saving a location here does not limit which readers the payment page lists. The payment page shows the readers of one location only when the browser was connected to that location. See [Connect Browser](https://docs.jovvie.com/checkout/the-events-calendar/settings/#connect-browser). > **Caution: Reset Location** > > **Reset Location** deletes the readers registered to the created live and test locations, and then deletes both locations. Afterward, you must create a location and register your readers again. Do not reset while a payment is in progress. If you see **Failed to create location. Please check the data you entered and try again.**, check the address and save again. ## Register Reader This section only appears after you save a created location. Use it for web readers. A web reader (also called a web terminal) is a card reader that connects to the internet on its own, and staff use it from a web browser. - **Mode**: **Live** or **Test**. Choose **Live** to register the reader for real payments, or **Test** to register it for test payments. - **Registration Code**: the short code shown on the reader’s screen. - **Label**: an optional name that helps you recognize the reader. Only web readers (Stripe Reader S700 and WisePOS E) need a registration code. Readers you use through the Jovvie app on a phone or tablet are registered by the app. For hardware background, see [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). ## Connect Browser Select **Connect this browser** to link this browser to a location, so the payment page can show readers without a WordPress sign-in. This stays active after you sign out of WordPress. You can enter a location in the **Location ID (optional)** field. When you save, you are sent to a Jovvie page to finish the connection. If you see **Redirecting to connect browser…**, wait a moment. If nothing happens, click **Connect browser**. If you see **Failed to connect browser**, try again. Use this only on devices you trust, such as a box office computer. For shared or kiosk devices, see [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). ## Logs Select **Enable logging** to keep an error log. You can then use **Download log** and **Delete log**. See [Turn on debug logs](https://docs.jovvie.com/checkout/the-events-calendar/logs/). ## Need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/the-events-calendar/settings/ --- # Sell Event Tickets at the door with Jovvie Checkout Section: Jovvie Checkout > Event Tickets > Sell Event Tickets in person and take the card payment on a Stripe card reader with Jovvie. Sell tickets in person using Jovvie Checkout with Tickets Commerce, the checkout built into Event Tickets. The buyer taps, inserts, or swipes their card on your Stripe card reader, and Event Tickets records a normal ticket order. ## Before you start - The Jovvie plugin for Event Tickets is installed and connected. In **Tickets** > **Settings** > **Payments** > **Jovvie**, the status shows **Connected**. See [Install and connect](https://docs.jovvie.com/checkout/the-events-calendar/install-and-connect/). - A Stripe card reader is registered to your connected Stripe account, turned on, and connected to the internet. See [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). If this browser was connected to a specific location, the reader must be registered to that location. - The device you use to sell tickets can reach your card readers in one of these ways: - You are signed in to WordPress on this device. - This browser was connected with **Connect this browser** in the **Connect Browser** section of the Jovvie settings. See [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). - You know your Access PIN, the PIN that lets someone use your readers. Without one of the first two, the payment page asks for it. - Jovvie support has confirmed that payment confirmations from Stripe (webhooks, which are automatic messages sent to your site) are set up for your site. Event Tickets only completes an order when your site receives this confirmation. Test mode needs its own setup, so confirm both live and test mode if you use test mode. To check, contact [Jovvie support](https://jovvie.com/support/). > **Note** > > Jovvie follows the Tickets Commerce test mode (sandbox) setting. In test mode, no real card is charged, and the payment page lists simulated readers instead of your real readers. Turn off Tickets Commerce test mode before you sell real tickets. ## Sell the tickets 1. Open the event or ticket page on the device. 2. Add the tickets the buyer wants. 3. Go to the checkout page. 4. If the checkout page asks for the buyer’s name and email, enter them. 5. Click **Purchase Tickets**. You are taken to the Jovvie payment page. It shows the tickets and the total. 6. Select **In-Person Payment**. 7. If you see **Provide PIN to access**, enter your Access PIN in **PIN**. If you do not see it, skip to step 9. 8. Click **Submit**. 9. Under **Choose a reader**, select the reader the buyer will use. Each reader shows its name and status. 10. Click **Process Payment**. 11. Ask the buyer to tap, insert, or swipe their card on the reader, or pay with Apple Pay or Google Pay on the reader. 12. Follow any prompts on the reader screen. When the payment goes through, you are taken to the ticket order success page. For more about the payment page, see [Take a payment on the Jovvie payment page](https://docs.jovvie.com/checkout/jovvie-payment-page/). ## What happens to the order Returning to the success page does not by itself complete the order. Your site completes the order when it receives the payment confirmation from Stripe (a webhook). This can happen before or after you reach the success page. If the payment fails, the order is marked denied when your site receives that update from Stripe. If an order stays unpaid after the buyer paid: 1. In **Tickets** > **Settings** > **Payments** > **Jovvie**, check the **Last webhook received** date and time in the **Webhook** section. See [Settings reference](https://docs.jovvie.com/checkout/the-events-calendar/settings/). 2. Check your Stripe Dashboard to confirm the payment went through. 3. Do not charge the buyer again. Contact [Jovvie support](https://jovvie.com/support/). ## If you need to stop To leave the payment page before the buyer pays, click **← Back**. You return to the ticket checkout page. Only click **← Back** after you are sure the buyer has not paid. If a payment error appears, or you are not sure whether the card was charged, check your Stripe Dashboard first. Make sure no payment went through and none is still processing before you try again or start a new order. If you are still not sure, contact support. ## Need help? If **Purchase Tickets** shows an error, or the payment page shows an error, see [Checkout payment page errors](https://docs.jovvie.com/troubleshooting/checkout-errors/) or contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/checkout/the-events-calendar/sell-tickets-at-the-door/ --- # Jovvie Point of Sale overview Section: Jovvie Point of Sale > The two ways to run Jovvie Point of Sale, Standalone or with your WooCommerce store, what is the same in both, and where to start. Jovvie Point of Sale is a full register for selling in store, on the go, or wherever your customers are. Staff sign in, add products to a cart, take cash, card, and other payments, and look up orders. This page explains the two ways to run Point of Sale and where to start with each. ## Two ways to run Point of Sale To set up Point of Sale, you create an application in your Jovvie account. When you create it, you choose one of two setups: **Standalone** or **WooCommerce**. | | **Standalone** | **WooCommerce** | | ---------------------- | --------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | | Who it is for | Businesses that want Jovvie to host their store and register | Businesses that already have a WooCommerce store and want in-person sales to share its products, customers, and orders | | Where your store lives | Jovvie hosts it for you. It can include an online shop where customers order, which is off by default | On your own WooCommerce site | | Where you manage it | Your own Jovvie address, such as `yourstore.jovvie.app`, which has your store dashboard and your register | Your WordPress admin, plus the register | | What you install | Nothing | The Point of Sale plugin. You then choose a **Cloud Connection** or a **Self-Hosted Connection** for where the register app runs | ## What is the same in both The register works the same way in both setups. Stations, register screens, payments, cash management, orders, and reports have the same names and buttons. Most pages in this section apply to both. Dashboard menus and some setup procedures differ between Standalone and WooCommerce. When a step depends on your setup, the page shows two tabs, **Standalone** and **WooCommerce**. Choose your setup once, and the pages remember it. A few pages are only for WooCommerce stores, for example installing the plugin and WooCommerce extensions such as Points and Rewards. Those pages say so in their first sentence. ## Card payments Point of Sale takes card payments with Stripe or NMI. Some features differ between the two. See [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). ## Get started ### Standalone 1. In your Jovvie account, create an application and choose **Standalone**. 2. Go to your application’s Jovvie address, such as `yourstore.jovvie.app`, and sign in to your store dashboard. 3. [Create and manage stations](https://docs.jovvie.com/point-of-sale/set-up/stations/). 4. [Connect Stripe to Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/set-up/connect-stripe/), or contact [Jovvie support](https://jovvie.com/support/) to set up NMI. 5. [Open the register](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). ### WooCommerce 1. [Choose Cloud or Self-Hosted](https://docs.jovvie.com/point-of-sale/woocommerce/cloud-or-self-hosted/). 2. Set up the connection you chose: - Cloud Connection: [Install and connect Jovvie Point of Sale for WooCommerce](https://docs.jovvie.com/point-of-sale/woocommerce/install-and-connect/). - Self-Hosted Connection: [Set up a Self-Hosted connection](https://docs.jovvie.com/point-of-sale/woocommerce/self-hosted/). 3. [Create and manage stations](https://docs.jovvie.com/point-of-sale/set-up/stations/). 4. [Connect Stripe to Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/set-up/connect-stripe/), or contact [Jovvie support](https://jovvie.com/support/) to set up NMI. 5. [Open the register](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). ## Need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/ --- # Choose Cloud or Self-Hosted for Jovvie Point of Sale for WooCommerce Section: Jovvie Point of Sale > WooCommerce stores > Compare the two ways to run the Point of Sale register for a WooCommerce store, and find which one is selected today. This page is for stores that connect Point of Sale to their own WooCommerce store. It helps you choose how Point of Sale for WooCommerce connects to Jovvie. There are two ways, and both need WooCommerce and the Point of Sale plugin on your WordPress site. The difference is where the register app runs. For current plans and pricing, see [Jovvie pricing](https://jovvie.com/pricing/). ## Compare the two connections | | **Cloud Connection** | **Self-Hosted Connection** | | --------------------------- | ----------------------------------------------- | ----------------------------------------------------------------- | | Where the register app runs | On Jovvie’s servers | On your own WordPress site | | What you install | The Point of Sale plugin | The Point of Sale plugin and a second plugin for the register app | | Register address | An address on the Jovvie cloud | An address on your own site | | Updates | Applied for you | You decide when to update the register app plugin | | Setup | One connection step from the Quick Start notice | The second plugin, then a connection or license step | **Cloud Connection** is the default. If you have not changed anything, your site is set to Cloud. > **Note** > > Both connections need a Jovvie account. You create one, or sign in to an existing one, during setup. ## Choose Cloud Connection if - You want the quickest setup. - You do not want to run the register app on your own server. Follow [Install and connect Jovvie Point of Sale for WooCommerce](https://docs.jovvie.com/point-of-sale/woocommerce/install-and-connect/). ## Choose Self-Hosted Connection if - You want the register app to run on your own WordPress site. - You are comfortable installing and updating a second plugin. Follow [Set up a Self-Hosted connection](https://docs.jovvie.com/point-of-sale/woocommerce/self-hosted/). ## See which connection your site uses 1. In your WordPress admin, go to **POS** > **Settings**. 2. Open the **Connection** tab. 3. Look at which option is selected: **Cloud Connection** or **Self-Hosted Connection**. The card under the selected option shows the status. Cloud shows **Connected** or **Not Connected**. Self-Hosted shows **Active**, **Not Active**, **No License**, or **Trial Active**. Either one can also show **Connection Postponed** or **Connection Abandoned**. For those, see [Connection and plan messages](https://docs.jovvie.com/point-of-sale/troubleshooting/connection/). ## Switch between them You can change the selected option on the **Connection** tab and click **Save Changes**. Choosing **Self-Hosted Connection** only works once the register app plugin is active. Until then, **Save Changes** is not available. Your stations, products, and orders stay in WordPress and WooCommerce. Only where the register app runs changes. If you are not sure, contact [Jovvie support](https://jovvie.com/support/) before you switch. Source: https://docs.jovvie.com/point-of-sale/woocommerce/cloud-or-self-hosted/ --- # Install and connect Jovvie Point of Sale for WooCommerce Section: Jovvie Point of Sale > WooCommerce stores > Install the Point of Sale plugin, connect it to Jovvie, and open your first station. Install Jovvie Point of Sale for WooCommerce and set up its Cloud Connection so you can open your first register. Cloud Connection is the default way to run the register for your own WooCommerce store. To run the register app on your own site instead, see [Choose Cloud or Self-Hosted](https://docs.jovvie.com/point-of-sale/woocommerce/cloud-or-self-hosted/). ## Before you start - You have a WordPress site with WooCommerce installed and active. - You are a WordPress administrator. - Your browser allows pop-up windows for your WordPress admin site. The connection steps open in a pop-up window. ## Install the plugin 1. In your WordPress admin, go to **Plugins** > **Add New Plugin**. 2. Search for **Jovvie**. 3. Find **Jovvie Point of Sale POS for WooCommerce** and click **Install Now**. 4. Click **Activate**. A **POS** menu now appears in your WordPress admin. ## Connect your Jovvie account Until your site is connected, WordPress shows a notice on the **Plugins** page and the **POS** > **Stations** page. Its title is **You’re almost there. Just one step to finish setup.** 1. Open **POS** > **Stations**. 2. In the notice, choose one: - Click the main button that starts with **Set Up Your POS** to create a new Jovvie account. - Click **Connect Your Existing Account** if you already have one. 3. In the pop-up window that opens, follow the prompts. 4. Wait for **Jovvie account successfully connected! Payments enabled for processing**. 5. Close the pop-up window. After you close the window, WordPress takes you to your list of stations. The setup notice no longer appears. > **Tip** > > Do not close the pop-up window before you see the success message. If you close it early, start again from the notice. ## Check the connection 1. Go to **POS** > **Settings**. 2. Open the **Connection** tab. 3. Check that **Cloud Connection** is selected and its status shows **Connected**. ## Open your first station 1. Go to **POS** > **Stations**. 2. On the **Primary Station** row, click **View POS**. The register opens in a new browser tab. To add more [stations](https://docs.jovvie.com/start-here/glossary/#station), see [Create and manage stations](https://docs.jovvie.com/point-of-sale/set-up/stations/). ## If the pop-up is blocked If your browser blocks the window, the page shows **Popup blocked** with the message **Your browser blocked the connection window. Allow popups for this site in your browser settings and try again.** 1. Allow pop-ups for your WordPress admin site in your browser settings. 2. Click **Retry connection**. ## If the connection does not finish - **Failed to validate Jovvie keys. Try again later or contact support**: wait a moment and try again. - **Unable to connect. Try again later or contact support**: check your internet connection and try again. If either message continues, contact [Jovvie support](https://jovvie.com/support/). If you leave the page partway through, you may see **Complete Connection** with **You have returned from Jovvie POS Cloud. Click the button to finalize your setup.** Click **Continue Connection** to finish. ## Next steps - [Connect Stripe to Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/set-up/connect-stripe/) - [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/) Source: https://docs.jovvie.com/point-of-sale/woocommerce/install-and-connect/ --- # Set up a Self-Hosted connection for Jovvie Point of Sale for WooCommerce Section: Jovvie Point of Sale > WooCommerce stores > Run the Point of Sale register app on your own WordPress site with the Self-Hosted Connection. This page is for stores that connect Point of Sale to their own WooCommerce store. It walks you through running the register app on your own WordPress site, which is called a Self-Hosted Connection. If you are not sure this is the right choice, read [Choose Cloud or Self-Hosted](https://docs.jovvie.com/point-of-sale/woocommerce/cloud-or-self-hosted/) first. ## Before you start - WooCommerce and the Jovvie Point of Sale plugin are installed and active. For plugin installation, follow [Install the plugin](https://docs.jovvie.com/point-of-sale/woocommerce/install-and-connect/#install-the-plugin). - You are a WordPress administrator. - You have the register app plugin file, or another way to install it. The plugin is named **Jovvie Point of Sale POS UI Self-Hosted for WooCommerce**. If you do not have it, contact [Jovvie support](https://jovvie.com/support/). ## Install the register app plugin 1. In your WordPress admin, go to **Plugins** > **Add New Plugin**. 2. Install **Jovvie Point of Sale POS UI Self-Hosted for WooCommerce**. If you have a plugin file, click **Upload Plugin** and choose the file. 3. Click **Activate**. If the Point of Sale plugin is not active, WordPress shows a notice asking you to install and activate it. Do that first. ## Choose Self-Hosted Connection 1. Go to **POS** > **Settings**. 2. Open the **Connection** tab. 3. Select **Self-Hosted Connection**. 4. Click **Save Changes**. If **Save Changes** is not available, the register app plugin is not active yet. Go back to [Install the register app plugin](https://docs.jovvie.com/point-of-sale/woocommerce/self-hosted/#install-the-register-app-plugin) and activate it. ## Connect your Jovvie account 1. Go to **POS** > **Stations** or the **Plugins** page. 2. In the **You’re almost there. Just one step to finish setup.** notice, click **Setup self-hosted connection**. 3. In the pop-up window, follow the prompts. 4. Wait for **Jovvie account successfully connected! Payments enabled for processing**. 5. Close the pop-up window. If you do not see the notice, your site may already be connected. Check the status in [Check the license status](https://docs.jovvie.com/point-of-sale/woocommerce/self-hosted/#check-the-license-status). The **Connection** tab also has a **Manual Connection Setup** box with **Public Key** and **Secret Key** fields. Use it only if Jovvie support gave you keys. Never share your keys with anyone else. ## Check the license status Your license is the plan that lets your site use Jovvie. To check it, open **POS** > **Settings** > **Connection**. With **Self-Hosted Connection** selected, the status shows one of these: | Status | What it means | | ------------------------ | ---------------------------------------------------------------------------------------------------------------------- | | **Active** | The connection and your license are working. | | **Trial Active** | You are on a trial plan. | | **No License** | Your license needs attention. Click **Manage** or contact Jovvie support. | | **Not Active** | Self-Hosted is not selected, the register app plugin is not active, or the site is not connected. | | **Connection Postponed** | Jovvie could not be reached, and checks are paused for a while. | | **Connection Abandoned** | Jovvie could not be reached for a long time. Check your connection settings, then click **Save Changes** to try again. | The **License** card has a **Manage** link to your plan. WordPress may also show one of these notices: - **Point of Sale Self-Hosted Server License Not Activated**: connect your account as described in [Connect your Jovvie account](https://docs.jovvie.com/point-of-sale/woocommerce/self-hosted/#connect-your-jovvie-account). - **The Trial Period for the Point of Sale Self-Hosted Server has Expired**: upgrade your plan with the **Upgrade Your Plan** link. See [Jovvie pricing](https://jovvie.com/pricing/). For more help, see [Connection and plan messages](https://docs.jovvie.com/point-of-sale/troubleshooting/connection/). ## Open the register 1. Go to **POS** > **Stations**. 2. Click **View POS** on a station. The **Home URL** column shows each station’s web address on your own site. If **View POS** is not available, check your connection and license status. Source: https://docs.jovvie.com/point-of-sale/woocommerce/self-hosted/ --- # Create and manage Jovvie Point of Sale stations Section: Jovvie Point of Sale > Set up > Add Point of Sale stations, find each station's address, open the register, and delete stations you no longer need. Create, open, and manage Jovvie Point of Sale stations in either Standalone or WooCommerce. A [station](https://docs.jovvie.com/start-here/glossary/#station) is one register in Point of Sale. Most Point of Sale settings are saved for each station, so each station can have its own products, taxes, currency, users, and payment methods. ## Before you start - You need to be an administrator or shop manager. **If you use Standalone:** Point of Sale is already in your dashboard, under **POS**. **If you use WooCommerce:** Install and connect Point of Sale first. See [Install and connect Jovvie Point of Sale for WooCommerce](https://docs.jovvie.com/point-of-sale/woocommerce/install-and-connect/). ## The two stations you start with Point of Sale creates two stations for you. - **Primary Station**: the station you use for in-person sales. It is the default station. - **Online Storefront Station**: stands in for your online store. It uses your store address, tax settings, and stock quantities, so those fields show a link to your store settings instead. You cannot delete either of these stations. ## See your stations 1. In your dashboard, go to **POS** > **Stations**. The list shows each station’s **Title**, **Home URL**, and **Actions**. ## Add a station 1. Go to **POS** > **Stations**. 2. Click **Add New Station** at the top of the page. 3. Enter a name for the station in the title field. 4. Choose your settings on the **General**, **Products**, **Display**, **Cart**, **Tax**, **Users**, and **Gateway** tabs. The **Stripe** tab is also available after Stripe is connected. 5. Click **Save**. You see **Station Created**. ## Find a station’s address The **Home URL** column shows the web address staff use to open that station. To copy it, click the copy icon next to the address. If the column shows a dash, the address is not available yet. See [Connection and plan messages](https://docs.jovvie.com/point-of-sale/troubleshooting/connection/). ## Open the register 1. Go to **POS** > **Stations**. 2. Click **View POS** on the station row. The register opens in a new browser tab. **View POS** only appears for users who are allowed to use that station. On a WooCommerce store, it is also not available until your WordPress site is connected to Jovvie. See [Install and connect Jovvie Point of Sale for WooCommerce](https://docs.jovvie.com/point-of-sale/woocommerce/install-and-connect/). ## Change a station’s settings 1. Go to **POS** > **Stations**. 2. Click **Edit Station** on the station row. 3. Change the settings you need. 4. Click **Save**. You see **POS Station updated.** ## Delete a station > **Caution** > > Deleting a station cannot be undone. Orders placed at that station will no longer open in the register. 1. Go to **POS** > **Stations**. 2. Click **Edit Station** on the station you want to remove. 3. On the **General** tab, scroll to the bottom and click **Delete Permanently**. 4. Confirm the warning. Deleting a station also removes the Stripe card reader location that Jovvie created for it. Set up your readers again on another station if you still need them. See [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/). **Delete Permanently** does not appear for **Primary Station** or **Online Storefront Station**. Source: https://docs.jovvie.com/point-of-sale/set-up/stations/ --- # Set up passcodes and user switching in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Let several staff members share one register by locking it and signing in with a passcode or a login. Set up user switching so several staff members can share one Jovvie Point of Sale register in Standalone or WooCommerce. With user switching, each person signs in to the same station, and their sales are recorded under their own name. You turn it on for each station. ## Before you start - Staff have user accounts that can use Point of Sale. - You need to be an administrator or shop manager. - To set another staff member’s passcode, you also need permission to edit their user profile. If you cannot open or update it, ask your administrator. ## Choose how staff sign in You can choose between two ways for staff to sign in, called switch types: - **Passcode**: staff pick their name and enter a 4 to 6 digit passcode. Each person needs a passcode set up first. - **Login**: staff enter their username or email and their password. ## Give a user a passcode Skip this section if you use **Login**. **If you use Standalone:** Contact [Jovvie support](https://jovvie.com/support/) to set up or change a staff member’s passcode in Standalone. **If you use WooCommerce:** 1. In your WordPress admin, go to **Users** and open the staff member’s profile. 2. Find **POS Operator Passcode**. This section only shows for users who can use Point of Sale. 3. Select **Enable Passcode**. 4. In **Passcode**, enter 4 to 6 digits. 5. In **Confirm Passcode**, enter the same digits. 6. Click **Update User**. To keep the current passcode, leave **Passcode** blank. Staff can also change their own passcode in the register if you turn on profile editing. See [Let staff edit their profile](https://docs.jovvie.com/point-of-sale/set-up/profile-edit/). > **Note** > > Only users with **Enable Passcode** selected and a passcode saved appear on the passcode screen. ## Turn on user switching for a station 1. Go to **POS** > **Stations**. 2. Click **Edit Station** on the station. 3. Open the **Users** tab. 4. Under **User Switch**, set **Enable User Switch** to **Enabled**. 5. Set **Switch Type** to **Passcode** or **Login**. 6. Click **Save**. ## Lock the register automatically Use these two options if you want the register to lock without staff doing anything. Both are in the same **User Switch** section. - **Auto-Lock Timeout**: locks the register after no activity. Choose **Never**, **30 seconds**, **1 minute**, or **5 minutes**. - **Lock After Each Sale**: select **Enabled** to lock the register when a sale finishes. Click **Save** after you change them. ## What staff see When user switching is on, a staff member who is already signed in and allowed at this station can go straight into the register. In **Passcode** mode, this only works if they also have a passcode set up. Everyone else sees the sign-in screen, and so does everyone after the register has been locked. - With **Passcode**, staff tap their name and enter their passcode, then click **Sign In**. - With **Login**, staff enter their username or email and password, then click **Unlock**. To lock the register by hand, open the register menu and click **Lock Station**. The next person then signs in. If nobody can sign in with **Passcode**, the screen shows **No operators available for this station.** **Symptom:** No staff names appear on the passcode screen. **Cause:** No staff member has been set up for passcode sign-in at this station. **Fix:** For WooCommerce, check that each user’s **POS Operator Passcode** section has **Enable Passcode** selected and a passcode saved. For Standalone, or if the problem continues, contact [Jovvie support](https://jovvie.com/support/). ## Related pages - [Let staff edit their profile](https://docs.jovvie.com/point-of-sale/set-up/profile-edit/) - [Log out inactive users](https://docs.jovvie.com/point-of-sale/set-up/auto-logout/) - [Sign-in and passcode problems](https://docs.jovvie.com/point-of-sale/troubleshooting/sign-in/) Source: https://docs.jovvie.com/point-of-sale/set-up/user-switching/ --- # Let staff edit their profile in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Turn on profile editing for a station so staff can change their name, password, and passcode in the register. Let staff update their own details from the Jovvie Point of Sale register menu so they do not need to ask an administrator to do it. It works once you turn on profile editing for a station. ## Before you start You need to be an administrator or shop manager. ## Turn on profile editing 1. In your dashboard, go to **POS** > **Stations**. 2. Click **Edit Station** on the station. 3. Open the **Users** tab. 4. Under **Profile Edit**, set **Enable Profile Edit** to **Enabled**. 5. Click **Save**. Profile editing is off by default. Each station has its own setting. ## What staff see When profile editing is on, staff see a pencil icon next to their name in the register menu. They can use it to change their first and last name, password, and passcode. For the staff steps, see [Edit your profile in the register](https://docs.jovvie.com/point-of-sale/sell/edit-your-profile/). If your station uses user switching, the pencil icon edits the profile of the person who is currently signed in. See [Set up passcodes and user switching](https://docs.jovvie.com/point-of-sale/set-up/user-switching/). Source: https://docs.jovvie.com/point-of-sale/set-up/profile-edit/ --- # Log out inactive users in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Sign staff out of the register automatically after a period with no activity. Set up auto logout to sign a user out of the Jovvie Point of Sale register after a period with no activity. This helps when staff walk away from a register that is still signed in. When the time you choose passes with no activity, the register shows a warning. If nobody responds, it signs the user out five minutes later. This is different from locking a register for user switching. See [Set up passcodes and user switching](https://docs.jovvie.com/point-of-sale/set-up/user-switching/) for that. ## Before you start You need to be an administrator or shop manager. ## Set the logout time 1. In your dashboard, go to **POS** > **Stations**. 2. Click **Edit Station** on the [station](https://docs.jovvie.com/start-here/glossary/#station) you want to change. 3. Open the **Users** tab. 4. Under **User Auto Logout Action**, choose a time: - **Disable auto logout** - **Auto logout in 5 mins** - **Auto logout in 15 mins** - **Auto logout in 30 mins** - **Auto logout in 60 mins** 5. Click **Save**. The default is **Disable auto logout**. ## What staff see When the time passes with no activity, the register shows a window called **User Inactivity Check**. It says **Log out countdown started. Click or Tap “OK” to stay logged in.** and shows a five-minute countdown. - Click **OK** to stay signed in. - Click **Logout** to sign out now. - If nobody responds before the five-minute countdown ends, the register signs the user out. This means the user is signed out about five minutes after the time you chose. For example, with **Auto logout in 15 mins**, an unattended register signs out after about 20 minutes. The window can appear a little after the time you chose. Source: https://docs.jovvie.com/point-of-sale/set-up/auto-logout/ --- # Connect Stripe to Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Link your Stripe account to Jovvie Point of Sale so staff can take card payments in the register. Connect Stripe to Jovvie Point of Sale so staff can take card payments in the register, whether you use Standalone or WooCommerce. You connect it once for your whole store. After that, you can set up card readers for each [station](https://docs.jovvie.com/start-here/glossary/#station). > **Note: Using NMI?** > > NMI is not set up on this page. To get NMI connected, contact [Jovvie support](https://jovvie.com/support/). The NMI settings are then in **POS** > **Settings** > **NMI**. See [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). ## Before you start - Have the login for your Stripe account ready, or be ready to create one. - Allow pop-up windows for your dashboard in your browser. The connection opens in a new window. - You need to be an administrator or shop manager. **If you use Standalone:** Point of Sale is already in your dashboard, under **POS**. **If you use WooCommerce:** Install and connect Point of Sale first. See [Install and connect Jovvie Point of Sale for WooCommerce](https://docs.jovvie.com/point-of-sale/woocommerce/install-and-connect/). ## Link your Stripe account 1. In your dashboard, go to **POS** > **Settings** > **Stripe Connect**. 2. On the **Stripe Account** card, click **Link Account**. A new window opens. 3. Follow the prompts in the window to sign in and connect your Stripe account. 4. Wait for **Stripe account successfully connected! Payments enabled for processing**. The window closes by itself a few seconds later, and the **Stripe Connect** tab reloads. 5. Check that the **Stripe Account** card shows **Connected**. Linking fills in the account details on this tab for you, so you do not need to type or change them. If the window shows a message starting with **Failed to validate Stripe keys** or **Unable to connect**, click **Link Account** and try again. If it still fails, contact [Jovvie support](https://jovvie.com/support/). ## Choose live or test mode **Mode** decides whether the register takes real payments. - **Live** charges real cards. This is the default. - **Test** uses your Stripe test environment. No real card is charged. To change the mode: 1. Under **Mode**, select **Live** or **Test**. 2. Click **Save Changes**. For more about test mode, see [Use test mode](https://docs.jovvie.com/payments/test-mode/). ## Let Jovvie create locations for your stations Stripe card readers belong to a [location](https://docs.jovvie.com/start-here/glossary/#location), which is the place in Stripe that a reader is assigned to. Jovvie can create and update a Stripe location for each station for you. The location uses the station’s name and address. This option is on by default. To check it: 1. Find **Add and update locations for terminal readers in each POS Station.** 2. Make sure **Enable** is checked. 3. Click **Save Changes**. When you change and save a Stripe connection setting on this tab (for example **Mode**, or turning this option on), Jovvie updates the locations for every station. Saving without changing anything does not update them. A station needs an address before Jovvie can create its location. Locations that Jovvie created are marked **\[Live]** or **\[Test]** on each station’s **Stripe** tab, to match the mode. ## Next steps - [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/) - [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/) - [Set up invoice payment terms](https://docs.jovvie.com/point-of-sale/set-up/invoice-terms/), if you want to send invoices from the register. If the register shows a connection message later, see [Card reader payment problems](https://docs.jovvie.com/point-of-sale/troubleshooting/card-readers/). Source: https://docs.jovvie.com/point-of-sale/set-up/connect-stripe/ --- # Set up Stripe card readers for a Jovvie Point of Sale station Section: Jovvie Point of Sale > Set up > Register Stripe card readers and choose which ones staff can use at each Point of Sale station. This page helps you add Stripe card readers and choose which ones staff can use at each Point of Sale [station](https://docs.jovvie.com/start-here/glossary/#station). Each station has its own list of readers, and staff can only use the web readers you turn on for their station. This page covers Stripe readers that connect over the internet, called [web terminals](https://docs.jovvie.com/start-here/glossary/#web-terminal). Readers you use through the Jovvie app on a phone or tablet are set up in the app instead. > **Note: Using NMI?** > > NMI terminals are not set up on this screen. When staff take an NMI payment, they pick the terminal at checkout. ## Before you start - Connect your Stripe account in **POS** > **Settings** > **Stripe Connect**. The **Stripe** tab on a station only appears after Stripe is connected. - Have your card reader turned on and connected to the internet. - Get the reader’s [registration code](https://docs.jovvie.com/start-here/glossary/#registration-code). This is a short code the reader shows on its screen. See your reader’s instructions for how to display it. - You need to be an administrator or shop manager. ## Choose the Stripe account and location 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Stripe** tab. 4. Under **Stripe Account**, select the Stripe account this station uses. 5. Under **Location ID**, select the [location](https://docs.jovvie.com/start-here/glossary/#location) for this station. A location is the place in Stripe that your readers belong to. Locations that Jovvie created for this station are marked **\[Live]** or **\[Test]**. 6. Click **Save**. > **Caution** > > Changing the **Stripe Account** or **Location ID** turns off every reader for this station. After a change, turn the readers back on as described in [Turn readers on or off for this station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/#turn-readers-on-or-off-for-this-station). ## Register a new reader Select a specific location under **Location ID** before you register a reader. The reader is added to that location. 1. On the same **Stripe** tab, go to **Register new reader**. 2. In **Registration Code**, enter the code shown on the reader. 3. In **Label (optional)**, enter a name staff will recognize, such as “Front counter”. 4. Click **Save**. The reader is registered to the selected location and turned on for this station. It now appears under **Registered Readers**. If you see **Save Stripe Account / Location ID before registering new reader.**, finish the steps in [Choose the Stripe account and location](https://docs.jovvie.com/point-of-sale/set-up/card-readers/#choose-the-stripe-account-and-location) first. ## Turn readers on or off for this station **Registered Readers** lists every reader at the selected location, with its **Device Type**, **Serial Number**, and **Status**. To see readers from every location in your Stripe account, select **Show readers of all locations** under **Location ID**. Use this option to view and turn on readers. To register a new reader, select a specific location instead. 1. Use the **Enabled** switch next to each reader. Turn it on for readers staff should use at this station. Turn it off for readers they should not use. 2. Click **Save**. To find a reader in a long list, type part of its label, serial number, or ID in the search box. ## Optional: choose a default reader for Express checkout With Express checkout, the Point of Sale starts a default reader automatically, so staff do not need to pick one. The default reader is used when **Swipe/Insert/Tap** has **Terminal Types** set to **Web terminal** and one of these is set up: - **Express checkout** is **On** for **Swipe/Insert/Tap**. The reader starts as soon as staff choose that payment method. To find this setting, click **Setting** next to **Swipe/Insert/Tap** in **POS** > **Settings** > **Gateway**. - **Express Checkout button** is set to **Swipe/Insert/Tap** in **POS** > **Settings** > **Gateway**. The **Checkout** button goes straight to the reader. If this station uses its own payment method settings (**Gateway Source** set to **Use Station-Level**), use the station’s **Gateway** tab instead. To choose the default reader: 1. On the station’s **Stripe** tab, go to **Default reader (Web terminal Express checkout)**. 2. Select a reader. Only readers that are turned on for this station appear in the list. 3. Click **Save**. To have staff pick a reader every time instead, select **None (show selection)**. Express checkout does not start a reader automatically for [split payments](https://docs.jovvie.com/start-here/glossary/#split-payment). If the default reader is not available, staff see the reader list and pick a reader as usual. ## What staff see At checkout, staff choose **Swipe/Insert/Tap** (or the name you gave this payment method) and then pick one of the readers you turned on. If no readers are turned on, they see **You do not have any readers enabled for this station.** Source: https://docs.jovvie.com/point-of-sale/set-up/card-readers/ --- # Choose payment methods in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Turn payment methods on or off, set their order and default, and choose a different set for one station. Choose which payment methods staff see in the Jovvie Point of Sale register, in what order, and which one is highlighted first. You can set this once for all [stations](https://docs.jovvie.com/start-here/glossary/#station), or give one station its own set. ## Before you start - To take Stripe card payments, connect Stripe first. See [Connect Stripe to Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/set-up/connect-stripe/). - To take NMI card payments, contact [Jovvie support](https://jovvie.com/support/) to get NMI connected. The NMI settings are then in **POS** > **Settings** > **NMI**. See [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). - You need to be an administrator or shop manager. ## Turn payment methods on or off 1. In your dashboard, go to **POS** > **Settings** > **Gateway**. 2. Find the payment method in the list. 3. Use the **Enabled** switch to turn it on or off. 4. Click **Save Changes**. Each row shows the method’s name under **Gateway**. If you renamed a method, the new name appears here and in the register. **Invoice** only appears in the register after Stripe is connected. ## Change the order Staff see payment methods in the same order as this list. 1. Drag a payment method up or down the list. 2. Click **Save Changes**. ## Choose the default payment method The default method is highlighted when staff open the payment screen. 1. Select the radio button under **Default** next to the method. You can only choose a method that is turned on. 2. Click **Save Changes**. ## Choose the order status after payment **Order Status** sets the status an order gets after staff take payment with that method. 1. Under **Order Status**, select a status for the method. 2. Click **Save Changes**. You cannot change the **Order Status** for the Stripe and NMI card payment methods. A card payment that pays the full order on its own sets the order to **Completed**. For exceptions, such as split payments and card amounts that do not match the order, see [Payment statuses](https://docs.jovvie.com/payments/payment-statuses/). ## Rename a method or change its settings 1. Click **Setting** next to the payment method. 2. In **Name**, enter the name staff see in the register. 3. In **Description**, enter a short description, if you want one. 4. Change any other settings on this screen. 5. Click **Save Changes**. If you are editing a station’s payment methods on its **Gateway** tab, click **Save** instead. Other settings on this screen are covered on their own pages: - [Set up Express checkout](https://docs.jovvie.com/point-of-sale/set-up/express-checkout/) - [Add a payment method fee](https://docs.jovvie.com/point-of-sale/set-up/payment-method-fees/) - [Set up invoice payment terms](https://docs.jovvie.com/point-of-sale/set-up/invoice-terms/) - [Set up multiple currencies](https://docs.jovvie.com/point-of-sale/set-up/currencies/) ## Use different payment methods for one station By default, every station uses the settings in **POS** > **Settings** > **Gateway**. To give one station its own payment methods: 1. Go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Gateway** tab. 4. Under **Gateway Source**, select **Use Station-Level**. 5. Click **Save**. The station’s list starts as a copy of your current site-wide settings. 6. Use the **Enabled** switches to turn methods on or off. 7. Drag the methods into the order you want. 8. Under **Default**, select the default method. 9. Under **Order Status**, select a status for each method that allows changes. Stripe and NMI card payment statuses cannot be changed. 10. If you want to change a method’s own settings, follow the steps in [Rename a method or change its settings](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/#rename-a-method-or-change-its-settings). 11. Click **Save**. From now on, changes in **POS** > **Settings** > **Gateway** do not affect this station. To go back to the site-wide settings, set **Gateway Source** to **Use Global (default)** and click **Save**. ## Related pages - [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/) - [Record other payment types](https://docs.jovvie.com/point-of-sale/sell/other-payment-types/) Source: https://docs.jovvie.com/point-of-sale/set-up/payment-methods/ --- # Set up Stripe Express checkout in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Start the Stripe card reader automatically so staff skip steps at checkout. Set up Express checkout in Jovvie Point of Sale to start Stripe payments automatically. For web terminals, staff skip reader selection only when an enabled default reader is available. You can set it up in two ways, and use one or both: - **Express checkout** on **Swipe/Insert/Tap**: the reader starts as soon as staff choose that payment method. - **Express Checkout button**: the **Checkout** button skips the payment method screen and goes straight to the reader. Express checkout works with the Stripe card payment method, **Swipe/Insert/Tap** (or the name you gave it). It is not available for NMI terminals. ## Before you start - Connect Stripe. See [Connect Stripe to Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/set-up/connect-stripe/). - Turn on **Swipe/Insert/Tap** in **POS** > **Settings** > **Gateway**. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/). - If staff use a [web terminal](https://docs.jovvie.com/start-here/glossary/#web-terminal), register it and turn it on for the station. See [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/). - You need to be an administrator or shop manager. If a station uses its own payment methods (**Gateway Source** set to **Use Station-Level**), make these changes on the station’s **Gateway** tab instead of in **POS** > **Settings** > **Gateway**, and click **Save** instead of **Save Changes**. ## Step 1: Choose one terminal type Express checkout only works when **Swipe/Insert/Tap** allows one terminal type. If it allows both, staff still have to choose between them. 1. In your dashboard, go to **POS** > **Settings** > **Gateway**. 2. Click **Setting** next to **Swipe/Insert/Tap**. 3. Under **Terminal Types**, select one of these: - **Web terminal**, if staff use the register in a browser with an internet-connected reader. - **iOS/Android app terminal**, if staff use the register in the Jovvie app. 4. Click **Save Changes**. To learn which type your reader is, see [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). ## Step 2: Turn on Express checkout for the payment method Skip this step if you only want the **Express Checkout button**. 1. On the same **Setting** screen for **Swipe/Insert/Tap**, under **Express checkout**, select **On**. 2. Click **Save Changes**. If **Express checkout** cannot be changed, **Terminal Types** is still set to **iOS/Android app and Web terminal**. Go back to Step 1. ## Step 3: Point the Checkout button at the reader (optional) 1. Go back to **POS** > **Settings** > **Gateway**. 2. Under **Express Checkout button**, select **Swipe/Insert/Tap** (or the name you gave it). 3. Click **Save Changes**. To turn this off, select **None (show payment method screen)**. ## Step 4: Choose a default reader (web terminals only) With **Web terminal**, Express checkout needs a default reader for each station. Without one, staff see the reader list as usual. 1. Go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Stripe** tab. 4. Under **Default reader (Web terminal Express checkout)**, select a reader. 5. Click **Save**. For more about this setting, see [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/#optional-choose-a-default-reader-for-express-checkout). ## What staff see - With **Express checkout** on, staff choose **Swipe/Insert/Tap** and the reader starts right away. - With the **Express Checkout button** set, staff tap **Checkout** and the reader starts without the payment method screen. - With **iOS/Android app terminal**, the payment starts in the Jovvie app. Staff must use the register in the Jovvie app. Express checkout falls back to the normal steps in these cases: - The payment is a [split payment](https://docs.jovvie.com/start-here/glossary/#split-payment). - The default reader is not set, not turned on for the station, or not found when checkout opens. Staff pick a reader from the list instead. - **Terminal Types** allows both types. ## Related pages - [Take a Stripe card reader payment in Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/sell/card-payment-stripe/) - [Card reader payment problems](https://docs.jovvie.com/point-of-sale/troubleshooting/card-readers/) Source: https://docs.jovvie.com/point-of-sale/set-up/express-checkout/ --- # Add a payment method fee in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Add a fee to the cart automatically when staff choose a certain payment method. Set up Jovvie Point of Sale to add a fee to the cart automatically when staff choose a certain payment method, such as a card method. You set the fee for each payment method, then turn fees on for each [station](https://docs.jovvie.com/start-here/glossary/#station). The fee amounts are yours to choose. This page does not cover Jovvie’s own pricing. For that, see [jovvie.com/pricing](https://jovvie.com/pricing/). > **Note** > > Check the laws and card network rules where you do business before you add a fee to card payments. ## Before you start - Turn on the payment method in **POS** > **Settings** > **Gateway**. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/). - You need to be an administrator or shop manager. If a station uses its own payment methods (**Gateway Source** set to **Use Station-Level**), set the fee on the station’s **Gateway** tab instead of in **POS** > **Settings** > **Gateway**, and click **Save** instead of **Save Changes**. ## Step 1: Set the fee for a payment method 1. In your dashboard, go to **POS** > **Settings** > **Gateway**. 2. Click **Setting** next to the payment method. 3. In **Fee Label**, enter the name staff and customers see for the fee. It appears in the register and as a line on the order. If you leave the default, the label is **Transaction Fee**. 4. Under **Tax Class**, select whether the fee is taxed. Select **None** for no tax, or select one of your store tax classes. 5. In **Percent value**, enter a percentage of the order, or leave it at 0. 6. In **Fixed value**, enter a fixed amount, or leave it at 0. 7. Click **Save Changes**. If you enter both a **Percent value** and a **Fixed value**, the cart gets two fee lines, one for each. ## Step 2 (optional): Limit when the fee applies Two fields control when the fee is added. Leave a field at 0 to have no limit. - **Minimum cart value for adding fee**: the fee is only added when the cart has at least this number of items. - **Maximum cart value for adding fee**: the fee is only added when the cart has this number of items or fewer. These two fields count the items in the cart, including quantities. They do not look at the cart total. 1. Enter a value in **Minimum cart value for adding fee**, **Maximum cart value for adding fee**, or both. 2. Click **Save Changes**. ## Step 3: Turn on fees for each station Fees are off for every station until you turn them on. 1. Go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Cart** tab. 4. Next to **Gateway Transaction Fee**, check **Enable Gateway Transaction Fee**. 5. Click **Save**. Repeat for each station that should add fees. ## What staff see When staff choose the payment method at checkout, the fee is added to the cart. Its name starts with your **Fee Label**, followed by whether it is a percent fee or a fixed fee. If staff switch to another payment method, the fee is removed, and that method’s fee is added instead, if it has one. If a payment was already attempted, first confirm that no payment went through and none is still processing before taking payment another way. If you cannot confirm this, contact [Jovvie support](https://jovvie.com/support/). In a [split payment](https://docs.jovvie.com/start-here/glossary/#split-payment), each payment method staff add can add its own fee. ## Related pages - [Add a fee](https://docs.jovvie.com/point-of-sale/sell/add-a-fee/), to add a one-time fee to a single order. - [Split a payment](https://docs.jovvie.com/point-of-sale/sell/split-payment/) Source: https://docs.jovvie.com/point-of-sale/set-up/payment-method-fees/ --- # Set up Stripe invoice payment terms in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Choose Stripe invoice payment terms in Jovvie Point of Sale and set up automatic order status updates after payment. Choose the payment terms staff can offer when they send a Stripe invoice from the Jovvie Point of Sale register. The customer gets an email with a payment link, and the payment term staff choose sets how many days that link stays valid. You decide which terms staff can choose from. Invoices use your connected Stripe account. The **Invoice** payment method only appears in the register after Stripe is connected. ## Before you start - Connect Stripe. See [Connect Stripe to Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/set-up/connect-stripe/). - Turn on **Invoice** in **POS** > **Settings** > **Gateway**. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/). - You need to be an administrator or shop manager. If a station uses its own payment methods (**Gateway Source** set to **Use Station-Level**), set the terms on the station’s **Gateway** tab instead of in **POS** > **Settings** > **Gateway**, and click **Save** instead of **Save Changes**. ## Set up payment terms New sites start with four terms: **Due on Receipt**, **Net 30**, **Net 60**, and **Net 90**. You can rename, add, or remove terms. 1. In your dashboard, go to **POS** > **Settings** > **Gateway**. 2. Click **Setting** next to **Invoice**. 3. Go to **Payment terms**. 4. To rename a term, change its **Label**. 5. To change how long a term’s payment link works, enter a number of days from 1 to 365 in **Link valid (days)**. 6. To add a term, click **Add term**, then fill in its **Label** and **Link valid (days)**. You can have up to six terms. 7. To remove a term, click the remove button at the end of its row. You must keep at least one term. 8. Under **Default**, select the term staff see selected first. 9. Click **Save Changes**. ## Let staff pick a due date You can also let staff choose a specific due date for an invoice, instead of one of your terms. 1. On the same **Invoice** screen, check **Allow a custom due date at checkout**. 2. In the **Label** next to it, enter the name staff see for this option. The default is **Custom**. 3. Click **Save Changes**. Staff can pick any date from tomorrow up to one year ahead. If they pick a date outside that range, they see **Pick a date within the next year.** ## Choose the order status after payment When the customer pays the invoice, the order moves to the **Order Status** set for **Invoice** in **POS** > **Settings** > **Gateway**. The default is **Processing**. To change it, see [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/#choose-the-order-status-after-payment). ## Update order status automatically when an invoice is paid To have orders update as soon as the customer pays, the invoice [webhook](https://docs.jovvie.com/start-here/glossary/#webhook) must be set up for your Point of Sale connection. Here, a webhook is an automatic message Jovvie sends to your store when something happens, such as an invoice payment. Your dashboard shows the address to use, and Jovvie support helps you set it up. 1. Go to **POS** > **Settings** > **Stripe Connect**. 2. Find **Invoice Webhook URL**. 3. Copy the address. 4. Contact [Jovvie support](https://jovvie.com/support/) and ask for help setting up the invoice webhook for your Point of Sale connection. If you need the optional **Webhook Signing Key** on the same tab, ask Jovvie support how to set it up. Never send the signing key itself by email or chat. ## What staff see When staff choose **Invoice** at checkout, they pick one of your terms (or a custom date, if you allowed it). The payment link expires after that many days. Staff can use **Resend** on an unpaid invoice order: - If the payment link is still active, **Resend** emails the customer the same link again. - If the link has expired, **Resend** creates a new link and emails it. > **Caution** > > Before resending an expired invoice, confirm in your Stripe Dashboard that no payment for the order succeeded and none is still processing. If you are not sure, or the order is **On hold** after the customer paid, do not send another link or take payment another way. Contact [Jovvie support](https://jovvie.com/support/) first. For the full steps, see [Send an invoice to pay later](https://docs.jovvie.com/point-of-sale/sell/invoice/). ## Related pages - [Invoice paid but order is on hold](https://docs.jovvie.com/point-of-sale/troubleshooting/invoice-on-hold/) Source: https://docs.jovvie.com/point-of-sale/set-up/invoice-terms/ --- # Set up taxes for a Jovvie Point of Sale station Section: Jovvie Point of Sale > Set up > Turn taxes on or off for a station, choose how prices are shown, and decide which address taxes are based on. Choose how each Jovvie Point of Sale station handles tax in either Standalone or WooCommerce. Each station has its own tax settings on its **Tax** tab. The tax rates themselves come from your store’s tax settings, and this tab controls how the station uses them. ## Before you start - You need to be an administrator or shop manager. - Set up your tax rates in your store’s tax settings first: **If you use Standalone:** 1. Go to **Manage** > **Settings**. 2. Open the **Tax** tab. **If you use WooCommerce:** 1. In your WordPress admin, go to **WooCommerce** > **Settings**. 2. Open the **Tax** tab. ## Open the Tax tab 1. In your dashboard, go to **POS** > **Stations**. 2. Click **Edit Station** on the station. 3. Open the **Tax** tab. > **Note** > > The **Online Storefront Station** takes its tax setting and its tax calculation address from your store’s tax settings, and its **Tax** tab links to them. Its Tax/VAT and price display choices work as described in [Choose how prices are shown](https://docs.jovvie.com/point-of-sale/set-up/taxes/#choose-how-prices-are-shown) and [Tax/VAT ID options](https://docs.jovvie.com/point-of-sale/set-up/taxes/#taxvat-id-options). ## Turn taxes on or off 1. Under **Tax Options**, open the **Tax Options** list. 2. Choose **Enabled (using Shop Base configurations)** to charge tax using your store’s rates, or **Disabled** to charge no tax at this station. 3. Click **Save**. Taxes are enabled by default. ## Choose how prices are shown 1. In **Display prices in the POS**, choose **Including tax** or **Excluding tax**. This controls prices on the product tiles. 2. In **Display prices during POS cart**, choose **Including tax** or **Excluding tax**. This controls prices in the cart. 3. Click **Save**. Both are set to **Including tax** by default. ## Choose which address taxes are based on **Calculate Tax Based on** is a list you can reorder by dragging an item to a new place. The order sets the priority, and the register uses the first address in the list that is available. The choices are: - **POS Station Base Address**: the address on this station’s **General** tab, under **POS Base Address**. - **Default Shop Base**: your store address. - **Customer Shipping Address** - **Customer Billing Address** A customer address is only available when a customer with that address is added to the sale. Without one, the register moves down the list to the next available address. In the default order, that is the station address when it is filled in, then your store address. 1. Drag the address you want to the top of the list. 2. Click **Save**. By default the list starts with **Customer Shipping Address**, then **Customer Billing Address**, **POS Station Base Address**, and **Default Shop Base**. ## Tax/VAT ID options Use these if you sell to customers who give you a Tax/VAT number. 1. Select **Enable Tax/VAT ID Type Settings**. 2. In **Tax/VAT ID Behavior**, choose what happens to tax when a Tax/VAT ID is used: - **Tax/VAT not allowed to be removed** - **Allow Tax/VAT removed manually** - **Remove automatically Tax/VAT** - **Remove automatically if Customer has Tax/VAT ID** - **Remove automatically if Order has Tax/VAT ID** - **Remove automatically if Customer and Order has Tax/VAT ID** 3. Click **Save**. **Tax/VAT not allowed to be removed** is the default. For how staff add a number during a sale, see [Add a Tax/VAT number](https://docs.jovvie.com/point-of-sale/sell/add-tax-vat-number/). > **Caution** > > Check with your accountant before you remove tax automatically. Tax rules depend on where you and your customers are. Source: https://docs.jovvie.com/point-of-sale/set-up/taxes/ --- # Set up multiple currencies in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Let a station take payment in more than one currency, set exchange rates and rounding, and limit which payment methods accept which currencies. Set up a Jovvie Point of Sale [station](https://docs.jovvie.com/start-here/glossary/#station) to take payment in more than one currency. By default, a station uses your store currency. With multiple currency support, staff can switch the register to another currency you set up, and prices convert at the exchange rate you enter. ## Before you start - Decide the currencies you will accept and an exchange rate for each. You enter each rate yourself and change it when the rate changes. - You need to be an administrator or shop manager. - Check that your card payment method supports each currency you add. Card payments use your Stripe or NMI account’s own currency rules. For NMI terminals, see [Take an NMI terminal payment in Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/sell/card-payment-nmi/). ## Choose the station’s currency behavior 1. In your dashboard, go to **POS** > **Stations**. 2. Click **Edit Station** on the station. 3. On the **General** tab, find the **Currency** section. 4. Choose one of these: - **Station uses Shop Base Store Currency Settings**: use your store currency. - **Station uses multiple currency payment support**: accept more than one currency at this station. - **Station uses \[station name] currency settings**: use another station’s currency settings. Later changes to that station’s currency settings also apply here. 5. Click **Save**. The **Online Storefront Station** always uses your store currency and does not show this section. ## Add currencies After you choose **Station uses multiple currency payment support**: 1. In **Base Currency**, choose your store’s main currency. 2. Under **Payment Currency Support**, click **Add Currency**. 3. In **Currency**, choose the currency. 4. In **Exchange rate**, enter how many units of this currency equal 1 unit of your store currency. 5. Choose rounding. See [Rounding](https://docs.jovvie.com/point-of-sale/set-up/currencies/#rounding). 6. Click **Save**. The exchange rate must be a number greater than 0. If it is not, the page does not save, and your browser points to the rate field with the message **Enter an exchange rate greater than 0.** Fix the rate and click **Save** again. If a currency row is still rejected when the station saves, the station shows a message that the currency was not saved, and the whole currency section keeps its previous settings. Check each row and save again. To remove a currency, click the trash icon on its row, then click **Save**. ## Rounding Rounding is already on for each currency you add. Each currency row lets you choose how converted prices are rounded: - **Rounding Precision**: **Two decimals**, **One decimals**, or **Nearest integer**. - **Rounding Method**: **Standard**, **Round up**, or **Round down**. Leave the **Rounding Enable** checkbox as it is. If you need to turn rounding off for a currency, contact [Jovvie support](https://jovvie.com/support/). ## Choose the change currency Choose the currency staff use to give change when they take a cash payment. You can select only one currency. 1. In the **Set as Change** column, check the box on the currency’s row. 2. Click **Save**. ## Switch currency in the register If a station has more than one currency, a currency button appears in the cart. Staff tap it to switch to the next currency. Prices and the order total then show in that currency. ## Limit a payment method to certain currencies Each payment method can accept all currencies or only some. 1. Go to **POS** > **Settings** > **Gateway**. If the station uses its own payment method settings, open the station’s **Gateway** tab instead. 2. Click **Setting** next to the payment method. 3. Find **Currency Support**. 4. Choose **All Currencies** or **Select Currencies**. 5. If you chose **Select Currencies**, click **Add** and pick each currency. 6. Click **Save Changes**. On the station’s **Gateway** tab, click **Save**. At checkout, staff only see payment methods that accept the current currency. For more about payment methods, see [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/). Source: https://docs.jovvie.com/point-of-sale/set-up/currencies/ --- # Set up inventory for a Jovvie Point of Sale station Section: Jovvie Point of Sale > Set up > Choose where a station gets its stock counts, what happens when stock runs out, and how long items in a cart are held. Choose how each Jovvie Point of Sale [station](https://docs.jovvie.com/start-here/glossary/#station) tracks stock. A station can use the stock counts from your store or keep its own counts. Stock settings are on the station’s **Products** tab. ## Before you start - Turn on stock management for your products in your store. On each product, select **Manage stock?** in the **Inventory** tab. - You need to be an administrator or shop manager. ## Choose where the station gets its stock 1. In your dashboard, go to **POS** > **Stations**. 2. Click **Edit Station** on the station. 3. Open the **Products** tab. 4. Under **Inventory Management**, open **Inventory location**. 5. Choose one: - **Shop Base Quantity**: use the same stock counts as your store. - **Station location**: keep separate stock counts for this station only. - The name of another station: use that station’s stock counts. 6. Click **Save**. The **Online Storefront Station** always uses **Shop Base Quantity**. ## Enter stock for each station When a station keeps its own counts, you enter them on each product. 1. Go to **Products** and open the product. 2. In **Product data**, open the **Inventory** tab. 3. Select **Manage stock?**. 4. Find the field named after your station, such as **Front counter (Quantity)**. Enter the number in stock at that station. 5. Click **Update**. For a variable product, each variation has its own station quantity fields under the variation’s inventory options. > **Note** > > You see one **(Quantity)** field for each station. Only the one for the station you chose as the **Inventory location** is used. ## Choose what happens when stock runs out Under **Inventory Management**, choose one: - **Reduce stock and not allow product to be added to cart**: staff cannot add more of a product than you have. - **Reduce stock but allow product to be added to cart for backorder**: staff can still sell it, and the count goes down. The first option is only available when stock management is turned on for your store. Click **Save** after you choose. ## Hide out of stock products Hiding only works when **Reduce stock and not allow product to be added to cart** is chosen. With the backorder option, out of stock products stay in the product list even if this box is selected. 1. Check that **Reduce stock and not allow product to be added to cart** is chosen under **Inventory Management**. 2. Select **Hide out of stock products from POS product list**. 3. Click **Save**. ## Hold stock for items in a cart **Hold stock (minutes)** reserves stock for products placed in a cart. When the time runs out, the stock is released. If the station uses **Reduce stock and not allow product to be added to cart**, the register also shows **Product inventory expired**. 1. In **Hold stock (minutes)**, enter the number of minutes. 2. Click **Save**. Leave the field blank to turn this off. ## Related pages - [Make a product POS only](https://docs.jovvie.com/point-of-sale/set-up/pos-only-products/) - [Cart, stock, and coupon problems](https://docs.jovvie.com/point-of-sale/troubleshooting/cart/) Source: https://docs.jovvie.com/point-of-sale/set-up/inventory/ --- # Make a product available only in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Show a product in the register but hide it from your online shop and search results. Make a product available in the Jovvie Point of Sale register without listing it in your online shop. A POS only product can be sold at the register, but it does not show in your online shop or in its search results. Use it for items you sell only in person. ## Before you start You need to be an administrator, a shop manager, or someone else who can edit products. ## Make a product POS only 1. In your dashboard, go to **Products** and open the product. 2. In the **Publish** box, find **Catalog visibility** and click **Edit**. 3. Select **POS only**. 4. Click **OK**. 5. Click **Update**. The register picks up the change the next time it syncs, which means updating its product list from your store. To see the change right away, use **Sync Now** in the register menu. ## Show a product everywhere again 1. Open the product. 2. In the **Publish** box, click **Edit** next to **Catalog visibility**. 3. Select **Shop, POS and search result**. 4. Click **OK**. 5. Click **Update**. ## What each option does - **Shop, POS and search result**: the product shows in your online shop, in search results, and in the register. This is the normal setting. - **POS only**: the product shows in the register only, and not in your online shop or its search results. The same list has other options, such as hiding a product from the shop but not from search. ## Import and export If you move products in bulk, this matters. When you export products from your store, a POS only product is exported with the catalog visibility value **pos**. When you import a product with that value, it becomes POS only. Source: https://docs.jovvie.com/point-of-sale/set-up/pos-only-products/ --- # Add product barcodes for Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Add up to three barcodes to a simple product or one barcode to each variation for scanning or searching in Jovvie Point of Sale. Add barcodes so staff can find products in Jovvie Point of Sale by scanning or typing a code. Simple products can have up to three barcodes; each variation can have one. To set up scanning in the register, see [Set up barcode scanning](https://docs.jovvie.com/point-of-sale/set-up/barcode-scanning/). Use scanning hardware with verified support for your operating system. ## Before you start You need permission to edit products. ## Add barcodes to a simple product 1. In your dashboard, go to **Products** and open the product. 2. In **Product data**, open the **Inventory** tab. 3. In **Barcode**, enter the main barcode number or code. 4. If the product has more than one code, enter the others in **Barcode secondary** and **Barcode alternative**. 5. Click **Update**. ## Add barcodes to a variation Each variation can have its own barcode. Variations do not use the barcodes of the main product, so enter a **Barcode** on every variation you want staff to scan. 1. Open the variable product. 2. In **Product data**, open the **Variations** tab. 3. Expand the variation. 4. In **Barcode**, enter the code for that variation. 5. Click **Save changes**. 6. Click **Update**. > **Caution** > > On variations, only the **Barcode** field is saved. Leave **Barcode secondary** and **Barcode alternative** empty on variations. Codes you enter on the main product find the main product, not a specific variation. ## How the register uses barcodes When staff scan or enter a code, the register looks for a product with a matching code. It checks the **Barcode**, **Barcode secondary**, **Barcode alternative**, and the product identifier (GTIN, UPC, EAN, or ISBN), and the code must match exactly. Typing part of a code in the product search also finds matching products. ## Tips - Enter codes exactly as printed, with no extra spaces. - Use a different code for each product so a scan finds only one. Source: https://docs.jovvie.com/point-of-sale/set-up/product-barcodes/ --- # Set up weight-based pricing in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Sell products priced by weight or volume, and choose whether staff confirm the weight before the item is added to the cart. Set up products priced by weight or volume in Jovvie Point of Sale, such as produce or bulk goods. With weight-based pricing, a product’s price applies to a set amount, such as 1 kg. At the register, staff enter the weight and the register works out the price. Weight-based pricing works only in Point of Sale. It does not change how the product is sold in your online shop. ## Before you start - You need to be an administrator or shop manager. - The product needs a regular price. - Weight-based pricing works on simple products and on individual variations of a variable product. ## Make a product weight-based 1. In your dashboard, go to **Products** and open the product. 2. In **Product data**, open the **General** tab. 3. Select the **Weight** option. Its description says “Enable weight based pricing. (Works only with POS)”. 4. Under the price fields, find **Per weight**. Enter the amount that the product price is for. For example, enter 1 to say the price is for 1 kg. 5. Next to **Per weight**, choose the unit: kg, g, lbs, oz, l, ml, gal, or pt. 6. Optional: under **Weight limit (optional)**, enter a minimum in **from** and a maximum in **to**. 7. Click **Update**. The product is only treated as weight-based when **Per weight** is greater than 0. ### How the price is calculated The register divides the weight staff enter by **Per weight**, then multiplies the product price by that number. If the price is 10 and **Per weight** is 1 kg, then 2 kg costs 20. > **Caution** > > Fractional weights, such as 1.5 kg, may give a different total when an order is updated after it is added. To avoid this, have staff enter whole numbers in a smaller unit. For example, set the product up per 1 g and enter 1500 instead of 1.5 kg. Check the order total before you take payment. If you set a weight limit, the register keeps the weight within it: - A weight below **from** is raised to **from**. - A weight above **to** is lowered to **to**. ### Variable products 1. Open the variable product and go to the **Variations** tab. 2. Expand the variation. 3. Select **Weight** on that variation. 4. Fill in the fields that appear: **Per weight**, the unit, and the minimum and maximum weight. 5. Click **Save changes**. ## Choose how staff add weight-based products Each station decides whether staff must confirm the weight before the item goes into the cart. 1. Go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Cart** tab. 4. Find **Weight based products**. 5. Select or clear **Weight products need to confirm weight to add to card**. 6. Click **Save**. This setting is on by default. - **On:** When staff tap a weight-based product, a panel opens with **Weight** (in your unit) and **Quantity**. Staff enter the weight and click **Add**. Whole-number limits are shown in the panel. Limits with decimals may not be shown. - **Off:** The product is added to the cart right away using the **Per weight** amount. Staff can change the weight in the cart afterward. To learn how staff sell these products, see [Sell a product by weight](https://docs.jovvie.com/point-of-sale/sell/weight-products/). ## What shows on the order The order shows the weight sold and the price for each unit amount. For example, it shows the weight in kg, followed by the price per 1 kg. Source: https://docs.jovvie.com/point-of-sale/set-up/weight-pricing/ --- # Organize products into tabs in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Choose the product tabs staff see on the register, add a Home tab, and speed up loading with the product cache. Choose the product tabs staff use in the Jovvie Point of Sale register so they can reach popular items quickly. Product tabs sit at the top of the product area. Each tab shows a set of products, or a list of categories, brands, or tags. Each station has its own tabs. ## Before you start - You need to be an administrator or shop manager. - Decide which groups of products staff look for most, such as a category or your featured products. ## Open the tab settings 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Display** tab. 4. Open the **Product Tabs & Cache** section. By default a station has four tabs: **All**, **Categories**, **Featured**, and **On Sale**. ## Add a tab 1. Under **Product Selection**, click **Add Tab**. 2. In the filter row, open the list that says **Select type** and choose what the tab shows. 3. If the type needs a value, search for it and select it. You can pick more than one. 4. In **Label**, enter the name staff see on the tab. 5. Optional: select a color swatch for the tab. 6. Click **Save**. ### Tab types - **All products** - **List of categories**, **List of brands**, **List of tags**: show the list as tiles that staff open. - **Products on sale** - **Featured products** - **Products from specific categories**, **Products of specific brands**, **Products with specific tags** - **Products with specific attributes** - **Products of specific types** - **Specific products** - **Products with specific tax status** - **Products with specific stock status** - **Blank** To combine filters in one tab, click the plus button in the filter row to add another filter. To remove a filter, use the trash button. You cannot remove the last filter in a tab. Select **Group** on a filter to show those items together as a single tile. The tip next to it reads “Group products as a single tile” (or categories, brands, or tags, depending on the type). > **Note** > > **All products** and **List of categories** load your full catalog on the register. The screen warns that loading may be slow on very large stores. ## Change the order of tabs 1. Drag a tab by its handle (the three vertical bars on the left) to its new place. 2. Click **Save**. ## Remove a tab 1. Click **Remove** on the tab. 2. Click **Save**. ## Add a Home tab 1. In **Product Tabs & Cache**, select **Enable Home**. 2. Click **Save**. The **Home** tab appears before your other tabs. It is off by default. ## Use the product cache The product cache is a saved copy of your product list that can make the register load faster. Jovvie recommends it if you have a large product catalog or want to improve how quickly products sync. 1. Select **Enable Product Cache based on Tab configuration**. 2. Click **Save**. After you turn it on, the page shows **Current cache was created on:** with the date and time. If you change products and want the register to pick up the change, click **Refresh cache**. Staff who already have the register open may need to reload it to see new tabs. Source: https://docs.jovvie.com/point-of-sale/set-up/product-tabs/ --- # Change product display in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Choose tiles or a list, set photos, colors, sorting, and grid size, and decide how variations are picked on the register. Change how products and categories look in the Jovvie Point of Sale register so they are easy for your staff to find and tap. Each Point of Sale station has its own settings, and this page covers the display options for one station. ## Before you start - You need to be an administrator or shop manager. - To change products on a station, go to **POS** > **Stations**, find the station, and click **Edit Station**. Product display options are on the **Products** tab. Grid size is on the **Display** tab. ## Show photos and choose tiles or a list 1. Open the station’s **Products** tab. 2. Under **Tiles**, select or clear **Show Photo in Tile**. It is on by default. Showing photos may make the register load more slowly. 3. Optional: select **Crisp images on high-resolution displays**. It is off by default. It makes images sharper on high-resolution screens but uses more bandwidth and may slow startup on slow connections or low-powered devices. 4. Under **Tile Display**, open **Default Display Style** and choose **Display products as Tiles** or **Display products as List**. 5. Click **Save**. ## Show product details in a window A modal is a window that opens on top of the register screen. This option opens a product’s details in one. 1. On the **Products** tab, go to **Product Details**. 2. Select **Show product details in modal**. 3. Click **Save**. This is off by default. ## Choose how variations are picked A variable product comes in several versions, such as sizes or colors. Choose how staff pick the version. 1. On the **Products** tab, go to **Variation Selection**. 2. Under **How should variable product variations be selected?**, choose **Show variations as tiles** or **Select variation in modal**. 3. Click **Save**. ## Sort products 1. On the **Products** tab, go to **Tile Sorting**. 2. Open **Sort products in tabs by** and choose one of: - **Sort by price: High to low** - **Sort by price: Low to high** - **Sort by A to Z** - **Sort by Z to A** 3. Click **Save**. ## Change the number of tiles per row 1. Open the station’s **Display** tab. 2. Open the **Product Grid Layout** section. 3. Use the three **Tiles per row** lists. They are in this order: desktop or laptop, tablet, and mobile. 4. For each one, choose **Auto (fit to screen)** or a number from 1 to 8. 5. Click **Save**. The register picks the list that matches the device’s main input. Phone-width screens use the mobile setting. Touch screens use the tablet setting. Devices with a mouse or trackpad use the desktop or laptop setting. A touch device with a mouse attached may be treated as desktop, depending on the browser. **Auto (fit to screen)** is the default. ## Change tile colors for the whole station 1. On the **Products** tab, go to **Global Tile Styling**. 2. Under **Product Tiles**, set colors for **Product Name**, **Product Sub Text**, **Product Price**, **Out Of Stock Text**, and **Tile background**. 3. Optional: select **Hide Sub Text** or **Hide Product Price** to hide those lines on product tiles. 4. Under **Category Tiles**, set colors for **Category Name**, **Category Count**, and **Tile Background**. 5. Click **Save**. ## Style one product or category differently Colors set on a single product or category replace the station colors for that tile. 1. To style a product, open it in **Products** and find the **POS product tile** box in the side column. To style a category, open it under **Products** > **Categories** and find **POS category tile**. 2. Select **Override Global Color Styling**. 3. Set the colors. Product options include **Product name**, **Product sub text**, **Hide sub text**, **Product price**, **Hide product price**, **Out of stock text**, and **Tile background**. Category options include **Category name**, **Category count**, and **Tile background**. 4. Click **Update**. Staff who already have the register open may need to reload it to see changes. Source: https://docs.jovvie.com/point-of-sale/set-up/product-tiles/ --- # Show or hide register buttons in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Choose which buttons and menu links staff see on the register for each station. Choose which buttons staff see in the Jovvie Point of Sale register. Each station has its own choices, and all buttons are shown by default. Hiding a button only changes what appears on the register screen. Some buttons also depend on the user’s access or on other features being turned on, so they only show when they are available. ## Before you start - You need to be an administrator or shop manager. ## Choose which buttons show 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Display** tab. 4. Open one of these sections: [Top Bar Buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/#top-bar-buttons), [Cart Header Buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/#cart-header-buttons), [Cart Menu Buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/#cart-menu-buttons), [Completed Order Buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/#completed-order-buttons), [Main Menu Buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/#main-menu-buttons), or [Log Out Buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/#log-out-buttons). 5. Select the buttons to show. Clear the ones to hide. 6. Click **Save**. ### Top Bar Buttons These are the functions in the product top bar. They apply whether the bar is expanded or collapsed. - **Add** - **Search** - **Scan** The **Add** button also needs the add-a-product feature turned on for the station. ### Cart Header Buttons These are the controls at the top of the cart. - **Add Customer / Customer** - **Orders** ### Cart Menu Buttons These are the actions in the cart “…” menu. - **Cash Management / Open Drawer** - **Clear Cart** - **Sync** - **Add Shipping** - **Add Tax/VAT Number** - **Add a Discount** - **Add a Fee** - **Add a Note** - **Save Order (workflow)** ### Completed Order Buttons These are the buttons on the screen shown after an order is placed. - **View Order** - **Print** - **Email** - **Sync** - **Complete (processing orders)** ### Main Menu Buttons These are the links in the main (hamburger) menu, the menu opened by the icon with three lines. - **POS** - **Products** - **Orders** - **Hours (Order Hours plugin)** - **Reports** - **Customers** - **Coupons** - **Dashboard** - **Settings** - **Stations** - **Theme** - **Support** - **Sync Now** Some links, such as Coupons, Reports, and Hours, only appear when the matching feature is available for your store. ### Log Out Buttons You can offer log out in two places: **Main menu** and **Top bar**. > **Caution** > > If you hide both, staff cannot log out from the register screen. They can still log out from your dashboard. Source: https://docs.jovvie.com/point-of-sale/set-up/register-buttons/ --- # Change the Jovvie Point of Sale register theme Section: Jovvie Point of Sale > Set up > Set light or dark mode, the brand color, and the order completion celebration for a station, and let staff change them on their own device. Set the theme for the Jovvie Point of Sale register. The theme controls light or dark mode, the brand color, and a celebration when an order is completed. You set the default for each station, and staff can then change it for themselves on the register. ## Before you start - You need to be an administrator or shop manager. ## Set the default theme for a station 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **General** tab. 4. Go to the **Theme** section. 5. Under **Appearance**, choose **System Settings**, **Light Mode**, or **Dark Mode**. **System Settings** follows the device and is the default. 6. Under **Brand Color**, choose a color: **Jovvie Blue**, **Ocean Teal**, **Royal Purple**, **Emerald Green**, **Crimson Red**, **Amber Orange**, **Slate Gray**, **Rose Gold**, **Sunny Yellow**, or **Custom**. **Jovvie Blue** is the default. 7. If you chose **Custom**, pick your color. 8. Under **Celebrations**, select or clear **Order Completion Confetti**. It is on by default. 9. Click **Save**. ## Change the theme on the register Staff can change the theme from the register. The choice is saved in that device’s browser, so it applies to that device only. On that device, it takes priority over the station default. 1. On the register, open the main menu. 2. Select **Theme**. The **Theme Settings** window opens. 3. Under **Appearance**, select **System Settings**, **Light Mode**, or **Dark Mode**. 4. Under **Brand Color**, select a color. To use your own color, select **Custom**, pick a color, and click **Apply**. Click **Cancel** to go back without changing it. 5. Under **Celebrations**, select **Order Completion Confetti** to turn it on or off. If you do not see **Theme** in the main menu, it may be hidden for the station. See [Show or hide register buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/). Source: https://docs.jovvie.com/point-of-sale/set-up/theme/ --- # Set up barcode scanning in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Choose how a station handles barcode scans, and what staff can use to scan. Choose how barcode scanning finds products and adds them to the cart in Jovvie Point of Sale. Each [station](https://docs.jovvie.com/start-here/glossary/#station) has its own scan settings. For the barcodes themselves, see [Add barcodes to products](https://docs.jovvie.com/point-of-sale/set-up/product-barcodes/). To see how staff scan products into the cart, see [Scan a barcode to add a product](https://docs.jovvie.com/point-of-sale/sell/scan-a-barcode/). ## What can scan - **A hardware scanner that types like a keyboard.** The scanner types the barcode into the register, just as if someone had typed it. Use hardware with verified support for your operating system. - **The camera in the Jovvie app.** In the Jovvie app on an Android or iOS device, a camera scan button appears next to the search field. It does not appear in a regular desktop browser. ## Before you start - You need to be an administrator or shop manager. - Add barcodes to your products first. ## Choose how the search field works 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Products** tab. 4. Go to **Product Search Default**. 5. Choose one: - **Search mode:** the field searches by product name. This is the default. - **Barcode mode:** the field is for scanning barcodes. - **Unified search:** one field for names, SKUs, and barcodes. A scanned or typed barcode that matches a single product follows your settings in [Choose what a scan does](https://docs.jovvie.com/point-of-sale/set-up/barcode-scanning/#choose-what-a-scan-does). Anything else filters the product grid. 6. Click **Save**. ## Choose what a scan does 1. Open the station’s **Cart** tab. 2. Under **Barcode Scanning Cart Action**, choose your options: - **Barcode scan automatically adds item to cart.** When on, a scan adds the matching product to the cart. When off, a scan only finds the product. - **Enable repeat Barcode scans functionality.** When on, a repeat scan button appears next to the scan field. Staff turn it on to keep the register ready for the next scan, so they can scan several items in a row. 3. Click **Save**. These options are off by default. ## Set up scanning with a hardware scanner If your scanner types the barcode into the register, turn on the barcode listener. The register then recognizes a scan even when staff have not clicked into the search field. It does not listen while a text field is selected. 1. On the station’s **Cart** tab, select **Enable Barcode listener**. 2. Choose how the register knows a scan has finished: - If your scanner presses Enter after each scan, select **Use Prefix/Suffix Detection (Enable if scanner sends Enter key after each scan)**. - Otherwise, leave that option cleared and set **Barcode listener Scan Timeout**. This is the longest gap, in milliseconds, between characters that still counts as one scan. The default is 150 and the lowest allowed value is 25. 3. Click **Save**. > **Note** > > A timeout that is too large may make fast manual typing look like a scan. Use the smallest value that works with your scanner. The register ignores any code shorter than three characters. ## Hide the scan button To hide the **Scan** button from the top bar, see [Show or hide register buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/). Hiding the button does not change your scan settings. ## Test your setup 1. Open the register for the station. 2. Scan a product that has a barcode. 3. Check that the product is found or added to the cart, as you chose. Source: https://docs.jovvie.com/point-of-sale/set-up/barcode-scanning/ --- # Set up customer tips in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Turn on the tip screen for a station and choose which tip options customers see. Set up Jovvie Point of Sale to let customers add a tip when they pay. When tips are on, the register shows an **Add a Tip** screen after the cart and before payment. Each station has its own tip settings. To see how staff take a tip, see [Accept a tip](https://docs.jovvie.com/point-of-sale/sell/tips/). ## Before you start - You need to be an administrator or shop manager. ## Turn on tips 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Cart** tab. 4. Under **Customer Tips**, select **Enable Tip on Checkout**. 5. Click **Save**. Tips are off by default. ## Choose which tip options show 1. On the **Cart** tab, open **Tip Options**. 2. Choose one: - **Percent, Custom and No tips** (the default) - **Percent tip only** - **Percent and No tips** - **Percent and Custom tips** - **Custom tip only** - **Custom and No tips** 3. Click **Save**. What each part does on the tip screen: - **Percent:** buttons that show a percentage and the tip amount. The amount is that percentage of the total due. - **Custom:** lets the customer or staff enter any tip amount they choose. - **No tip:** adds a **No Tip** button. > **Note** > > If you do not include **No tips**, the tip screen has no **No Tip** button. Staff must choose a percent or enter a custom amount to continue. ## Change the percent buttons The percent buttons show only if you chose an option that includes percent tips. 1. On the **Cart** tab, find **Percent tip options**. 2. Edit a number to change that button. 3. Click **Add Row** to add another percent button, or **Remove** to delete one. 4. Click **Save**. The defaults are 15, 20, and 25 percent. Source: https://docs.jovvie.com/point-of-sale/set-up/tips/ --- # Set up refund rules in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Choose whether a station can refund orders, how restocking works, and when staff must enter a passcode to refund. Choose refund rules for each Jovvie Point of Sale station. You can turn refunds on or off, control restocking (putting returned items back into your stock count), ask for a passcode, and give staff refund reasons and shortcuts. Each station has its own refund rules. ## Before you start - You need to be an administrator or shop manager. - Staff also need permission to refund orders. Without it, they cannot refund even when refunds are on for the station. ## Open the refund settings 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Cart** tab. 4. Scroll to the **Refunds** section. Then change the settings you need, as described in [Turn refunds on or off](https://docs.jovvie.com/point-of-sale/set-up/refund-rules/#turn-refunds-on-or-off), [Require staff to choose items](https://docs.jovvie.com/point-of-sale/set-up/refund-rules/#require-staff-to-choose-items), [Choose how restocking works](https://docs.jovvie.com/point-of-sale/set-up/refund-rules/#choose-how-restocking-works), [Require a passcode for refunds](https://docs.jovvie.com/point-of-sale/set-up/refund-rules/#require-a-passcode-for-refunds), [Add refund reasons](https://docs.jovvie.com/point-of-sale/set-up/refund-rules/#add-refund-reasons), and [Set refund percent shortcuts](https://docs.jovvie.com/point-of-sale/set-up/refund-rules/#set-refund-percent-shortcuts). Each of these ends with **Save**. ## Turn refunds on or off Refunds are on by default. 1. Under **Enable Refunds**, check or uncheck **Allow refunds to be processed from this station**. 2. Click **Save**. When refunds are off, staff do not see the refund option on orders at this station. ## Require staff to choose items 1. Under **Require Line Item Selection**, check **Require at least one line item to be selected for a refund**. 2. Click **Save**. Staff then cannot refund just an amount. They must pick at least one item from the order. This is off by default. ## Choose how restocking works **Refund Restock** decides whether staff can put refunded items back into your stock: - The option that starts with **Off** turns restocking off. Staff see no restock control, and items are never restocked. Use this if your store does not track stock. - The default option shows one restock checkbox for the whole refund. It starts with **Standalone default** if you use Standalone, or **WooCommerce default** if your store uses WooCommerce. - The option that starts with **Per line** lets staff choose which items to restock, one line at a time, on partial refunds. 1. Under **Refund Restock**, select the option you want. 2. Optional: to have the restock control checked when the refund screen opens, check **Restock On by Default**. This has no effect when restocking is off. 3. Click **Save**. ## Require a passcode for refunds You can ask staff to enter a passcode before they refund. 1. In **Refund Passcode**, enter a numeric passcode. 2. Under **Refund Passcode Requirement**, select one of these: - **Never require Passcode** (the default). - **Always require Passcode**. - **Require Passcode based on conditions**. See [Choose when a passcode is required](https://docs.jovvie.com/point-of-sale/set-up/refund-rules/#choose-when-a-passcode-is-required). 3. Click **Save**. Always enter a **Refund Passcode** if you want staff to need one. If **Refund Passcode** is empty, no passcode is asked for, whatever you choose under **Refund Passcode Requirement**. Share the passcode only with the people who should approve refunds. ### Choose when a passcode is required With **Require Passcode based on conditions**, staff must enter the passcode when any one of these conditions is met. To skip a condition, leave it at its off setting. - **Days Since Order**: the order is this many days old or older. Set to 0 to turn this condition off. - **Refund Amount Threshold**: the refund is this amount or more. Set to 0 to turn this condition off. - **Refund Type**: the kind of refund. Select **Partial refunds only** or **Full refunds only**. Select **All refunds (partial and full)** to turn this condition off. - **Users Requiring Passcode**: choose **Select**, then pick the staff members who must always enter the passcode. Choose **All** to turn this condition off. - **Payment Gateways Requiring Passcode**: choose **Select**, then pick the payment methods whose orders need the passcode. Choose **All** to turn this condition off. ## Add refund reasons 1. Under **Predefined Refund Reasons**, add each reason in its own **Reason** row. 2. Click **Save**. Staff can pick one of these reasons when they refund. Leave the list empty to let staff type a reason instead. ## Set refund percent shortcuts 1. Under **Refund Percent Shortcuts**, enter the percentages to show as quick buttons on each line in the refund keypad. The defaults are 25, 50, and 100. 2. Click **Save**. Staff can still type any amount or percentage. The buttons are shortcuts. ## Related pages - [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/) - [Set up passcodes and user switching](https://docs.jovvie.com/point-of-sale/set-up/user-switching/) Source: https://docs.jovvie.com/point-of-sale/set-up/refund-rules/ --- # Set up cash management in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Turn on till sessions or the cash drawer button for a station, require a PIN for cash actions, and choose the drawer location. Set up cash management in Jovvie Point of Sale so staff can track the cash in a [till](https://docs.jovvie.com/start-here/glossary/#till) and open the cash drawer from the register. Each [station](https://docs.jovvie.com/start-here/glossary/#station) has its own cash management settings. ## Before you start - You need to be an administrator or shop manager. - To open a cash drawer from the register, you need a receipt printer set up for Point of Sale, with the cash drawer connected to it. Use hardware with verified support for your operating system. ## Turn on cash management 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Cart** tab. 4. Go to the **Cash Management** section. 5. Open **Cash Management Mode** and choose one: - **Disabled** (the default): cash management is off. - **Full Cash Management**: turns on till sessions and the open drawer control. - **Open Drawer Only**: gives staff the cash drawer control and nothing else. 6. Click **Save**. To learn how staff use these features, see [Open the till](https://docs.jovvie.com/point-of-sale/cash/open-the-till/), [Close the till](https://docs.jovvie.com/point-of-sale/cash/close-the-till/), [Record paid in, paid out, drops, and adjustments](https://docs.jovvie.com/point-of-sale/cash/record-cash-events/), and [Open the cash drawer](https://docs.jovvie.com/point-of-sale/cash/open-the-drawer/). If staff cannot find the cash management actions, check that **Cash Management / Open Drawer** is shown for the station. See [Show or hide register buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/). ## Require a PIN for cash actions You can ask staff for a PIN before certain cash actions. 1. On the **Cart** tab, go to **Cash Management PIN**. 2. Enter a numeric PIN. Share it only with the staff who need it. 3. Open **Cash Management PIN Requirement** and choose one: - **Never require PIN** (the default) - **Always require PIN** - **Require PIN based on conditions** 4. Click **Save**. The register only asks for a PIN if you have entered one, so always enter a PIN if you want staff to need one. ### Require a PIN for some actions or some users If you chose **Require PIN based on conditions**, a PIN is required when either of these matches: the action is in **Operations Requiring PIN**, or the user is in **Users Requiring Cash PIN**. 1. Under **Operations Requiring PIN**, choose **Select**. 2. Pick the actions that need a PIN: **Open Till**, **Close Till**, **Void Session**, **Paid In**, **Paid Out**, **Drop**, **Adjustment**, or **Open Drawer**. 3. Under **Users Requiring Cash PIN**, choose **Select**. 4. Pick the users who must enter the PIN. 5. Click **Save**. If you pick nothing in a list, that list does not require a PIN for anything. ## Choose the cash drawer location 1. On the **Cart** tab, open **Cash Drawer Location**. 2. Select the location of the receipt printer that the cash drawer is connected to. 3. Click **Save**. The drawer opens when staff use **Open Drawer**. If you leave **None / Disabled** selected, or no printer locations are listed, the drawer does not open from the register. Source: https://docs.jovvie.com/point-of-sale/set-up/cash-management/ --- # Set up cart and order screen timeouts in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Clear the cart and start a new order when a register sits idle, with separate timers for the cart, payment screen, and order completed screen. Set up cart and order screen timeouts in Jovvie Point of Sale to clear an idle register and start a new order automatically. That keeps one customer’s cart from being left on screen for the next customer. Each station has its own settings. This page covers the cart and order screens. To log out inactive users, see [Log out inactive users](https://docs.jovvie.com/point-of-sale/set-up/auto-logout/). ## Before you start - You need to be an administrator or shop manager. - When a timeout clears the cart, items that were not saved are lost. Staff can save an order first. See [Save an order and finish it later](https://docs.jovvie.com/point-of-sale/orders/save-and-resume/). ## Turn on session timeouts 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Cart** tab. 4. Go to the **Session** section. 5. Select **Session Expiration**. 6. Click **Save**. This is off by default. When it is on, the register watches for inactivity on three screens. Each screen has its own timer and its own action. An empty register does not expire. ## Set the timers For each screen, enter how many minutes of inactivity to wait, and choose what happens when the time is up. | Screen | Timer | Action | Default timer | Default action | | -------------------------------------------- | -------------------------------------- | --------------------------------- | ------------- | -------------- | | Cart with an order in progress | **Cart inactivity timeout** | **Cart expire action** | 15 | **Ask first** | | Payment, tip, and Points and Rewards screens | **Checkout inactivity timeout** | **Checkout expire action** | 15 | **Ask first** | | Order completed screen | **Order completed inactivity timeout** | **Order completed expire action** | 5 | **Automatic** | 1. In **Cart inactivity timeout**, **Checkout inactivity timeout**, and **Order completed inactivity timeout**, enter a number of minutes from 0 to 1440. Enter 0 to turn that timer off. 2. For each action, choose: - **Ask first**: shows an **Are you still there?** window with a countdown before a new order starts. - **Automatic**: clears the cart and starts a new order right away. 3. If you use **Ask first**, set **Confirmation countdown** to the number of seconds the window stays open. Choose from 10 to 300. The default is 30. 4. Click **Save**. ## What staff see With **Ask first**, staff see **Are you still there?** and two buttons: - **I’m still here** keeps the order and restarts the timer. - **Start New Order** clears the cart now. If nobody answers before the countdown ends, a new order starts. When a timeout clears the cart, the register shows a message starting with “Session expired” to say a new order was started. ## Payments in progress The timers do not clear the cart while a payment is being processed, or when part of a split payment has already been taken. A split payment is an order paid in more than one part. The register waits and checks again later. If a new order starts while a customer was paying and you are not sure whether the payment went through, do not retry or charge another way yet. First confirm that no payment went through and none is still processing. Check the order list and your processor’s payment records. If you cannot confirm this, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/set-up/session-timeouts/ --- # Set up order workflow buttons in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Add buttons that save an order with a status you choose, and decide what happens to the cart afterward. Add Jovvie Point of Sale workflow buttons that save the current cart as an order without taking payment. The saved order gets the status you choose. These buttons are useful for things like tabs, holds, or orders that are paid later. Each station has its own buttons. ## Before you start - You need to be an administrator or shop manager. - The order statuses come from your store, so custom order statuses can be used here. ## Add or change workflow buttons 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Cart** tab. 4. Find **Workflow Action Buttons**. 5. In **Button Label**, enter the text staff will see on the button. 6. In **Order Status**, choose the status the saved order gets. 7. Click **Add Row** to add another button, or **Remove** to delete one. 8. Click **Save**. By default there is one button, **Save Order**, which saves the order as pending payment. Rows with an empty label are dropped when you save. If you remove every button, the default **Save Order** button comes back. ### Where staff find the buttons Staff open the cart “…” menu, where the buttons appear in a row. If you do not see them, check that **Save Order (workflow)** is set to show for the station. See [Show or hide register buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/). When staff click a button, the register saves the order and shows a message with the button name followed by “saved”. > **Note** > > A workflow button saves the order but does not take payment. Staff finish payment later. See [Save an order and finish it later](https://docs.jovvie.com/point-of-sale/orders/save-and-resume/). ## Choose what happens after an order is saved 1. On the **Cart** tab, find **After an order is saved**. 2. Choose one: - **Keep order in cart** (the default): the saved order stays in the cart so staff can keep working on it. - **Clear cart and start new order**: the cart is emptied and a new order begins. - **Ask each time**: an **Order workflow** window asks staff to choose **Keep in cart** or **Clear Cart**. 3. Click **Save**. ## Related pages - [Choose the status tabs in the order list](https://docs.jovvie.com/point-of-sale/set-up/order-list-tabs/) - [Save an order and finish it later](https://docs.jovvie.com/point-of-sale/orders/save-and-resume/) Source: https://docs.jovvie.com/point-of-sale/set-up/workflow-buttons/ --- # Choose order status tabs in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Pick which order statuses show as tabs in the register's order list. Choose which status tabs appear in the Jovvie Point of Sale register’s order list so staff can filter orders. Each [station](https://docs.jovvie.com/start-here/glossary/#station) has its own tabs. ## Before you start - You need to be an administrator or shop manager. - The order statuses come from your store, so any custom statuses you add there can be used here. ## Choose the tabs 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Cart** tab. 4. Find **Order Status Filter Tabs**. 5. In **Status**, choose a status for each tab you want to show. The tabs appear in the order of the rows. 6. Click **Add Row** to add a tab, or **Remove** to delete one. 7. Click **Save**. The defaults are Pending payment, Processing, Completed, and Cancelled. Statuses you do not list are available under a **More** dropdown. On small screens, only the first two tabs show and the rest go under **More**. Duplicate statuses are ignored. If you remove every row, the register shows the four default status tabs again. Staff who already have the register open may need to reload it to see changes. ## Related pages - [Set up order workflow buttons](https://docs.jovvie.com/point-of-sale/set-up/workflow-buttons/) - [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/) Source: https://docs.jovvie.com/point-of-sale/set-up/order-list-tabs/ --- # Show an order count badge in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Show a count of orders in the statuses you choose on the Orders button, and set how often it refreshes. An order notification badge shows a number on the **Orders** button on the register. The number is how many orders are in the statuses you choose. This helps staff notice orders that need attention, such as new online orders. This page shows you how to turn it on. Each [station](https://docs.jovvie.com/start-here/glossary/#station) has its own settings. ## Before you start - You need to be an administrator or shop manager. - The badge only shows for users who can view orders. The **Orders** button must also be shown for the station. See [Show or hide register buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/). ## Turn on the badge 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **General** tab. 4. Go to the **Order Notifications** section. 5. Select **Enable Order Notification Badge**. 6. Click **Save**. This is off by default. ## Choose which orders are counted 1. In **Order Statuses to Count**, choose **All** to count orders in every status, or choose **Select** and pick the statuses to count. 2. Click **Save**. The default is **All**. Statuses come from your store. ## Set how often the badge refreshes 1. In **Polling Interval (seconds)**, enter how many seconds to wait between updates. The lowest value is 10. The default is 60. 2. Click **Save**. The badge updates while the register is open and visible. It pauses when the browser tab is in the background and updates again when staff return to it. Staff who already have the register open may need to reload it to see changes. Source: https://docs.jovvie.com/point-of-sale/set-up/order-notifications/ --- # Require a customer or customer fields in Jovvie Point of Sale Section: Jovvie Point of Sale > Set up > Make staff add a customer before checkout, and require every customer detail when they add a new customer. Choose whether Jovvie Point of Sale requires a customer before checkout or requires all customer details when staff add a customer. You can set two customer rules for each [station](https://docs.jovvie.com/start-here/glossary/#station). One makes staff add a customer to every order before they check out. The other makes staff fill in all the customer details when they add a new customer. For how staff add customers, see [Add a customer to a sale](https://docs.jovvie.com/point-of-sale/sell/add-a-customer/). ## Before you start - You need to be an administrator or shop manager. ## Set the rules 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Cart** tab. 4. Find **Customer**. 5. Select the rules you want: - **All Customer Fields are Required to Add a Customer** - **Customer is Required to be Added to the Order for Checkout** 6. Click **Save**. Both rules are off by default. ## What each rule does ### All Customer Fields are Required to Add a Customer When this is on, the customer form requires more details before staff can add a customer. These include first name, last name, address line 1, city, postcode, state or country, and phone, for the billing details and, unless staff copy them from billing, the shipping details. When it is off, the form requires only the essentials: first name, last name, and email. The other fields still show, but staff can leave them blank. ### Customer is Required to be Added to the Order for Checkout When this is on and staff try to check out without a customer, the register stops and shows **Add Customer to Proceed to Checkout**. Staff add a customer and try again. > **Tip** > > Turn this on if you need a customer on every order, for example to send receipts or to use Points and Rewards. Source: https://docs.jovvie.com/point-of-sale/set-up/customer-rules/ --- # Open the Jovvie Point of Sale register and sign in Section: Jovvie Point of Sale > Take payments > Open your Point of Sale station in a browser, wait for it to load, and sign in as a staff member. The register is where your staff ring up sales. Each station (one register in Point of Sale) has its own register page. This page shows you how to open the register, what you see while it loads, and how to sign in. ## Before you start - Create a station. See [Create and manage stations](https://docs.jovvie.com/point-of-sale/set-up/stations/). - Your Point of Sale connection must be active. If the **View POS** button is greyed out, see [Connection and plan messages](https://docs.jovvie.com/point-of-sale/troubleshooting/connection/). - Use a device and browser that Jovvie supports. See [Devices and browsers that run Jovvie](https://docs.jovvie.com/hardware/devices-and-browsers/). - If your station uses passcodes or user switching, each staff member needs to be set up first. See [Set up passcodes and user switching](https://docs.jovvie.com/point-of-sale/set-up/user-switching/). ## Open the register 1. In your dashboard, go to **POS** > **Stations**. 2. Find your station. 3. Click **View POS**. The register opens in a new browser tab. The **Home URL** column on the stations list shows the address of each station’s register. You can bookmark that address on the device you use at the counter. You may need to sign in to your dashboard if you are not already signed in. ## What you see while it loads The first time you open a station, the register loads your products and settings. While it loads, you see the station name, a progress bar, and a short status message. - To start working before everything has loaded, click **Switch to background loading**. The register opens and keeps loading in the background. - If you see **Could not load POS settings. Check your connection and try again.**, check your internet connection and click **Retry**. - If you see **Products still loading** in the corner, the register is still loading your products. If you are an administrator or shop manager, the notice offers an **Optimize** button that opens the station’s settings. See [Loading and sync problems](https://docs.jovvie.com/point-of-sale/troubleshooting/sync/) if loading stays slow. - A notice starting with **Sync paused** means the register could not reach your store. The register keeps working with the data it already has and tries again on its own. Click **Retry** to try right away. To refresh products, prices, and settings later, open the menu and click **Sync Now**. The button shows when the register last synced. ## Sign in as a staff member If your station has user switching turned on, the register shows a lock screen with the station name when the station is locked or when it needs you to sign in. If you are already signed in to your dashboard as a user who is allowed at the station, the register may open without a lock screen. If your station uses passcodes, this happens only if you have a passcode set. Check that the name in the top bar is yours before you ring up a sale. If it is not, lock the station so the right person can sign in. See [Lock the station](https://docs.jovvie.com/point-of-sale/sell/lock-the-station/). When you see the lock screen, what you do next depends on the switch type set for the station. ### Passcode 1. On the lock screen, click your name tile. 2. Enter your passcode on the keypad. Click **Clear** if you make a mistake. 3. Click **Sign In**. If the passcode is wrong, the register shows **Incorrect Passcode.** and how many attempts remain. After too many wrong attempts, you must wait before trying again. If you do not see your name, you may not be allowed at this station, or you may not have set a passcode. Ask an administrator or shop manager. ### Login 1. On the lock screen, enter your **Username or Email**. 2. Enter your **Password**. 3. Click **Unlock**. After too many failed attempts, the register shows **Maximum attempts reached. Please wait before trying again.** Wait, then try again. If your station does not use user switching, you do not see a lock screen. You work under the account you are signed in with. ## Lock the station or log out - To lock the station when you step away, see [Lock the station](https://docs.jovvie.com/point-of-sale/sell/lock-the-station/). - To log out when you finish, see [Log out of the register](https://docs.jovvie.com/point-of-sale/sell/log-out/). ## Next step [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/) Source: https://docs.jovvie.com/point-of-sale/sell/open-the-register/ --- # Lock a Jovvie Point of Sale station Section: Jovvie Point of Sale > Take payments > Lock the register when you step away so no one else can use your sign-in. When you step away from the counter, lock the station (one register in Point of Sale) so no one else can use your sign-in. The next staff member then signs in with their own passcode or login. ## Before you start - Sign in to the register. See [Open the Jovvie Point of Sale register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). - Locking needs user switching turned on for the station. User switching lets different staff members sign in on the same register. See [Set up passcodes and user switching](https://docs.jovvie.com/point-of-sale/set-up/user-switching/). ## Lock the station 1. Open the menu. 2. Click **Lock Station**. The register returns to the lock screen. The next staff member signs in as described in [Open the Jovvie Point of Sale register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/#sign-in-as-a-staff-member). Refreshing the page does not unlock a locked station. You can also click the lock icon in the top bar. It does the same thing. The lock icon and **Lock Station** only appear when user switching is turned on for the station. The register can also lock itself after a set time or after each sale. See [Set up passcodes and user switching](https://docs.jovvie.com/point-of-sale/set-up/user-switching/). ## Related pages - [Log out of the register](https://docs.jovvie.com/point-of-sale/sell/log-out/) ## Next step [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/) Source: https://docs.jovvie.com/point-of-sale/sell/lock-the-station/ --- # Log out of the Jovvie Point of Sale register Section: Jovvie Point of Sale > Take payments > Log out of the register when you finish, and respond when the register asks whether you are still there. When you finish for the day, log out of the register. Logging out signs you out on this device, so the next person has to sign in with their own account. ## Before you start - Sign in to the register. See [Open the Jovvie Point of Sale register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). - If you are only stepping away for a moment, lock the station instead. See [Lock the station](https://docs.jovvie.com/point-of-sale/sell/lock-the-station/). ## Log out 1. Open the menu. 2. Click **Log out**. Some stations also show a log out icon at the right of the top bar. It does the same thing. The **Log out** button and the top bar icon may be hidden on some stations. If you do not see either, ask an administrator or shop manager. ## If the register asks whether you are still there If the register shows **User Inactivity Check**, you have not used it for a while. - To stay signed in, click **OK**. - To sign out, click **Logout**. See [Log out inactive users](https://docs.jovvie.com/point-of-sale/set-up/auto-logout/). ## Next step [Open the Jovvie Point of Sale register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/) Source: https://docs.jovvie.com/point-of-sale/sell/log-out/ --- # Edit your profile in the Jovvie Point of Sale register Section: Jovvie Point of Sale > Take payments > Change your name, password, or passcode from the register menu. You can update your own name, password, and passcode right from the register, without going to the admin. A passcode is the short number code you may use to sign in. ## Before you start - Your manager must turn on profile editing for the station. See [Let staff edit their profile](https://docs.jovvie.com/point-of-sale/set-up/profile-edit/). If it is off, the pencil icon does not appear. - Sign in to the register. See [Open the Jovvie Point of Sale register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). ## Open your profile 1. Open the register menu. 2. Click the pencil icon next to your name. Its label is **Edit Profile**. If your station uses user switching, the pencil icon edits the profile of the person who is currently signed in. ## Change your name 1. Change **First Name** or **Last Name**. Both are required. 2. Click **Save**. ## Change your password Leave **New Password** blank to keep your current password. 1. In **New Password**, enter a new password of at least 6 characters. 2. In **Confirm Password**, enter the same password again. 3. Click **Save**. ## Change your passcode Leave **New Passcode** blank to keep your current passcode. 1. In **New Passcode**, enter 4 to 6 digits. 2. In **Confirm Passcode**, enter the same digits again. 3. Click **Save**. When your changes are saved, the register shows **Profile updated.** ## Messages you may see - **First name is required.** or **Last name is required.** - **Password must be at least 6 characters.** - **Passwords do not match.** - **Passcode must be 4-6 digits.** - **Passcodes do not match.** Fix the field and click **Save** again. ## Related pages - [Sign-in and passcode problems](https://docs.jovvie.com/point-of-sale/troubleshooting/sign-in/) Source: https://docs.jovvie.com/point-of-sale/sell/edit-your-profile/ --- # Find and add products in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Add products to the cart by tapping tiles, browsing tabs and categories, searching by name, or choosing a variation. This page shows how to add products to the cart by tapping product tiles, browsing your product tabs, or searching by name. To add products with a barcode scanner, see [Scan a barcode to add a product](https://docs.jovvie.com/point-of-sale/sell/scan-a-barcode/). ## Before you start - Sign in to the register. See [Open the Jovvie Point of Sale register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). - The top bar above the products can be expanded or collapsed. When it is collapsed, you see a single search row with an expand button at the right end. Tap that button (**Expand top bar**) to see **Add**, **Search**, and **Scan**. - If you still do not see **Search** after you expand the top bar, an administrator or shop manager has turned it off for this station. See [Show or hide register buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/). ## Open your products Product tabs sit above the products, such as **All** or **Categories**. Your station’s tabs and their names may differ. See [Organize products into tabs](https://docs.jovvie.com/point-of-sale/set-up/product-tabs/). 1. Tap a product tab. If your station has a Home tab, the home screen shows navigation tiles instead of products. There is one tile for each product tab, plus **Customers** and **Orders** if you have access to them. Each tile shows a count, such as a number of products or categories. Tap a tile to open those products. ## Add a product from a tile 1. Tap a product tile. The product is added to the cart. Tap the same tile again to add another one. Some tiles behave differently: - If the tile shows a variations count, the product has options such as size or color. See [Choose a variation](https://docs.jovvie.com/point-of-sale/sell/add-products/#choose-a-variation). - If the product has add-ons or required options, tapping it opens a screen to choose them. See [Choose product options and add-ons](https://docs.jovvie.com/point-of-sale/sell/product-add-ons/). - If the product is sold by weight, the tile may ask for the weight first. See [Sell a product by weight](https://docs.jovvie.com/point-of-sale/sell/weight-products/). - If the tile shows **Out of Stock**, the register may not let you add it. This depends on your station’s inventory settings. See [Set up inventory for a station](https://docs.jovvie.com/point-of-sale/set-up/inventory/). If you tap a tile and see **Item is being added to cart**, wait a moment. The register is still adding the previous tap. The info button on a tile shows the product’s **SKU** and **Barcode**, or opens a details screen with more information. ## Add several of a product at once Products that are in stock and have no variations show a plus button on the tile. 1. Tap the plus button on the product tile. 2. Under **Quantity**, tap the plus or minus buttons until the quantity is right. 3. Tap **Add**. For a product sold by weight, this screen also asks for the weight. See [Sell a product by weight](https://docs.jovvie.com/point-of-sale/sell/weight-products/). ## Browse by category 1. Tap the tab or home tile that lists your categories, tags, or brands. 2. Tap a group to see the products in it. 3. Tap a product tile to add it. To go back, use the back button on the screen or return to the home screen with the **POS** link in the menu. ## Search by name Search works on the list that is open. On a list of products, it searches those products. On a list of categories, tags, or brands, it searches the group names, so open a group first to search its products. On the home screen, search does not find products. 1. Open a product tab that shows products, such as **All**. 2. In the top bar, tap **Search**. 3. Type part of the product name or SKU in the **Search** field. 4. Tap the product tile you want. The product list narrows as you type. To limit the search to one of your product tabs: 1. Tap the sliders button. 2. Under **Filter by**, choose a product tab. Choosing a tab clears the search. 3. Type the product name or SKU again. The same panel has an **And** field. A word you type there does not narrow the search. It adds a second word, and the list shows products that match either word. On stations that use unified search, the field is called **Search or scan** and also finds products by barcode. For barcodes, see [Scan a barcode to add a product](https://docs.jovvie.com/point-of-sale/sell/scan-a-barcode/). To close the bar, tap the close button on the right. ## Choose a variation A product with options, such as size or color, shows the number of variations on its tile. 1. Tap the product tile. 2. In **Select Variation**, find the option you want. Each option shows its price and stock, such as **In Stock**, **On Backorder**, or **Out of Stock**. 3. To add more than one, change the quantity with the minus and plus buttons on that option. 4. Tap the option. The option is added to the cart and the screen closes. If there are many options, use the search box to find one by name, attributes, or SKU. Tap **Cancel** to close without adding. Depending on your station’s settings, tapping a variable product may instead open a list of its variations on the register. Tap the one you want. Use the back arrow to return. If you see **All options are out of stock at this station**, none of the variations can be sold right now. ## If no products show If you see **No products found in the catalog**, first clear the search and check another product tab or category. If products still do not appear, check that they are published and available for this station, then use **Sync Now** in the menu. See [Loading and sync problems](https://docs.jovvie.com/point-of-sale/troubleshooting/sync/). ## Next step [Edit items in the cart](https://docs.jovvie.com/point-of-sale/sell/edit-the-cart/) Source: https://docs.jovvie.com/point-of-sale/sell/add-products/ --- # Scan a barcode to add a product in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Scan or type a product barcode in the register to find the product or add it to the cart. This page shows you how to scan a product’s barcode to find the product or add it straight to the cart. You can also type the barcode number. To find products by tapping tiles or searching by name, see [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). ## Before you start - Sign in to the register. See [Open the Jovvie Point of Sale register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). - Your products need barcodes. See [Add barcodes to products](https://docs.jovvie.com/point-of-sale/set-up/product-barcodes/). - For a hardware scanner, use hardware with verified support for your operating system. An administrator or shop manager sets the station’s scan defaults. See [Set up barcode scanning](https://docs.jovvie.com/point-of-sale/set-up/barcode-scanning/). - The top bar above the products can be expanded or collapsed. When it is collapsed, you see a single search row with an expand button at the right end. The steps in [Open the scan field](https://docs.jovvie.com/point-of-sale/sell/scan-a-barcode/#open-the-scan-field) start by expanding it. - If you still do not see **Scan** after you expand the top bar, either your station uses unified search (use **Search** instead) or an administrator or shop manager has turned **Scan** off for this station. See [Show or hide register buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/). ## Open the scan field Scans work while a list of products is open. Unless your station uses unified search, a scan does nothing on the home screen, and there is no **Scan** button on a list of categories, tags, or brands. 1. Tap a product tab that shows products, such as **All**. 2. If the top bar is collapsed, tap the expand button at the right end of the search row (**Expand top bar**). 3. Tap **Scan**. If your station uses unified search, tap **Search** instead. The **Scan** bar has a **Barcode** field. On unified search stations, the bar has one **Search or scan** field for names, SKUs, and barcodes. ## Choose what the next scan does **Scan Adds to Cart** decides whether a matching scan goes straight into the cart. When it is cleared, a scan only finds the product so you can tap it. 1. Select **Scan Adds to Cart** if you want the scan to add the product. Clear it if you only want to find the product. To add more than one with the next scan, set the quantity: 1. Tap **Quantity**. 2. Enter the quantity on the keypad. 3. Tap the checkmark button. After each scan that adds a product, **Quantity** goes back to one and **Scan Adds to Cart** goes back to the station’s default. If the default is off, select **Scan Adds to Cart** again before each scan. To make every scan add to the cart without this step, an administrator or shop manager can turn on the default. See [Set up barcode scanning](https://docs.jovvie.com/point-of-sale/set-up/barcode-scanning/). On a unified search station, **Quantity** and **Scan Adds to Cart** appear in the **Search or scan** bar. If they are missing, **Scan** is turned off for the station. The field still accepts barcodes, and scans follow the station’s defaults. ## Scan the barcode 1. Scan the barcode with your scanner. Many scanners enter barcodes like a keyboard, one character at a time, and the register checks after each character. If one product’s barcode is the beginning of another product’s barcode, a scan can match the shorter one first. When **Scan Adds to Cart** is selected, check that the item added to the cart is the one you scanned. To avoid this, make sure no product’s barcode is the beginning of another. See [Add barcodes to products](https://docs.jovvie.com/point-of-sale/set-up/product-barcodes/). ### Type a barcode instead The register checks the barcode after each character you type. If **Scan Adds to Cart** is selected, a shorter barcode that belongs to another product can match and be added before you finish typing. To type a barcode safely: 1. Clear **Scan Adds to Cart**. 2. Type the complete barcode in the **Barcode** field (or the **Search or scan** field). 3. Tap the matching product tile. On a unified search station where **Scan Adds to Cart** is not shown and the station default adds scans to the cart, ask an administrator or shop manager to change the default before you type barcodes. See [Set up barcode scanning](https://docs.jovvie.com/point-of-sale/set-up/barcode-scanning/). In the Jovvie app on an Android or iOS device, you can tap the camera scan button next to the field and scan with the camera instead. ### When the product is added automatically The register adds the product to the cart only when all of these are true: - **Scan Adds to Cart** is selected. - Exactly one product or variation has a barcode that matches the scan exactly. - That product or variation has a price. The product is added with the quantity you set, and the field clears. ### When you need to pick the product In every other case, the register shows the products whose barcode contains what you scanned or typed. On a unified search station, it also shows products whose name or SKU matches. This happens when **Scan Adds to Cart** is cleared, when more than one product shares the barcode, or when the barcode belongs to a product with variations rather than to one variation. 1. Tap the matching product tile. If the product has variations, choose one. See [Choose a variation](https://docs.jovvie.com/point-of-sale/sell/add-products/#choose-a-variation). If no products show, check that the product has that barcode. If the product shows but is never added automatically, check that it has a price. See [Add barcodes to products](https://docs.jovvie.com/point-of-sale/set-up/product-barcodes/). ## Scan several items in a row After a scan adds a product, the **Scan** bar closes. On a unified search station, the **Search or scan** bar stays open. If your station allows repeat scans, the bar has a repeat button. Turn it on to keep the **Scan** bar open and ready for the next scan. Turning repeat scanning on or off resets **Quantity** and **Scan Adds to Cart**, so turn it on first. 1. Tap the repeat button. 2. Set **Quantity** and **Scan Adds to Cart** for the next scan, as described in [Choose what the next scan does](https://docs.jovvie.com/point-of-sale/sell/scan-a-barcode/#choose-what-the-next-scan-does). Tap the repeat button again to turn repeat scanning off. **Quantity** and **Scan Adds to Cart** still go back to the station’s defaults after each scan that adds a product. ## Adjust Inventory If you can manage inventory, the scan bar also shows **Adjust Inventory**. When it is selected, a scan changes the product’s stock instead of adding it to the cart. Leave **Adjust Inventory** cleared when you are ringing up a sale. To change stock by scanning, see [Adjust stock by scanning](https://docs.jovvie.com/point-of-sale/sell/adjust-stock-by-scanning/). ## Next step [Edit items in the cart](https://docs.jovvie.com/point-of-sale/sell/edit-the-cart/) Source: https://docs.jovvie.com/point-of-sale/sell/scan-a-barcode/ --- # Adjust stock by scanning in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Use the Adjust Inventory option in the scan bar to add to or remove from a product's stock by scanning its barcode. If you can manage inventory, you can scan a product’s barcode to change its stock count instead of adding the product to the cart. This helps when you receive a delivery or count the shelves. > **Caution** > > Adjusting by scanning changes your real stock. Each scan saves the new count right away. Before you ring up a sale, make sure **Adjust Inventory** is cleared. ## Before you start - Sign in to the register. See [Open the Jovvie Point of Sale register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). - Your products need barcodes. See [Add barcodes to products](https://docs.jovvie.com/point-of-sale/set-up/product-barcodes/). - You need a role that is allowed to manage inventory. By default this includes administrators, shop managers, and cashiers. An administrator can change which roles have this access. If you do not see **Adjust Inventory**, ask them to check your role. - Stock management must be turned on for the product or variation you want to adjust. A product without stock management does not get a stock count. See [Set up inventory for a station](https://docs.jovvie.com/point-of-sale/set-up/inventory/). - Scanning must be available on your station. To open the scan bar, follow [Open the scan field](https://docs.jovvie.com/point-of-sale/sell/scan-a-barcode/#open-the-scan-field). ## Adjust stock with a scan 1. Open the scan bar. On a unified search station, this is the **Search or scan** bar. 2. Select **Adjust Inventory**. **Scan Adds to Cart** is cleared and cannot be changed while **Adjust Inventory** is selected. 3. Tap the minus button to remove stock, or the plus button to add stock. Plus is selected when you open the scan bar. Your choice stays until a scan changes stock, and then it goes back to plus. Check the minus or plus selection before each scan. The two buttons are unavailable until **Adjust Inventory** is selected. 4. To change the stock by more than one, tap **Quantity**. 5. Enter a positive whole number on the keypad. 6. Tap the checkmark button. 7. Scan the barcode with your scanner. The product’s stock goes up or down by the **Quantity** you set. Wait for the message **Product stock quantity changed**. If it does not appear, the change may not have been saved. Confirm the product’s saved stock count before you scan again, so you do not adjust it twice. ## What to expect - Stock never goes below zero. If you remove more than the product has, the stock is set to zero. - The scan only changes stock when exactly one product or variation has a barcode that matches the scan exactly, and that product or variation has a price. - If the barcode belongs to a product that has variations rather than to one variation, nothing changes. Scan the barcode of the variation you want. - If a scan does not match an eligible product, nothing changes and the barcode stays in the field. Check that the barcode is correct and that the product has a price, then clear the field and try again. See [Add barcodes to products](https://docs.jovvie.com/point-of-sale/set-up/product-barcodes/). - Do not type a barcode by hand with **Adjust Inventory** selected. The register checks after each character, so a shorter barcode that belongs to another product could change that product’s stock before you finish typing. Many scanners also enter barcodes like a keyboard, one character at a time, so the same thing can happen when you scan. Make sure no product’s barcode is the beginning of another product’s barcode, and after each scan check that the stock changed on the product you meant. ## Adjust Inventory clears after each scan After a scan changes stock, **Adjust Inventory** is cleared. The minus and plus buttons go back to plus, **Quantity** goes back to one, and **Scan Adds to Cart** goes back to the station’s default. To adjust another product, select **Adjust Inventory** again and choose minus or plus. On a station with a separate **Scan** bar, the bar closes after the scan unless repeat scanning is on. On a unified search station, the **Search or scan** bar stays open either way. In both cases, **Adjust Inventory** is cleared, so a later scan will add the product to the cart if **Scan Adds to Cart** is selected. For repeat scans, see [Scan several items in a row](https://docs.jovvie.com/point-of-sale/sell/scan-a-barcode/#scan-several-items-in-a-row). ## Next step [Scan a barcode to add a product](https://docs.jovvie.com/point-of-sale/sell/scan-a-barcode/) Source: https://docs.jovvie.com/point-of-sale/sell/adjust-stock-by-scanning/ --- # Sell a product by weight in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Enter a weight for a weight-based product and check it in the cart before you take payment. Some products are priced by weight, such as produce or deli items. Each product has a price for a set weight, such as a price per 1 kg or per 100 g. This page shows you how to enter a weight, and the register works out the line total from it. ## Before you start - The product must be set up for weight-based pricing. See [Set up weight-based pricing](https://docs.jovvie.com/point-of-sale/set-up/weight-pricing/). - Weight-based pricing works only in Point of Sale. It does not apply to your online store. - Sign in to the register. See [Open the Jovvie Point of Sale register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). ## Add a weight-based product What happens when you tap the product depends on a station setting. If your station asks for confirmation (**Weight products need to confirm weight to add to card** is selected for the station): 1. Tap the product tile. 2. Tap the field under **Weight**. A keypad opens. The unit, such as kg or lbs, is shown in the label. 3. Enter the weight on the keypad. If the product has a weight limit, the **min** and **max** values are shown under the field. Stay within them. 4. Tap the checkmark button on the keypad. 5. Leave **Quantity** at 1 unless you are selling more than one package at this weight. To change it, tap the field under **Quantity**. 6. If you opened the **Quantity** keypad, enter the number of packages and tap the checkmark button. 7. Click **Add**. If your station does not ask for confirmation: 1. Tap the product tile. 2. The product is added to the cart with its default weight. 3. Change the weight in the cart. See [Change the weight in the cart](https://docs.jovvie.com/point-of-sale/sell/weight-products/#change-the-weight-in-the-cart). You can also tap the plus button on the tile to open the same **Weight** and **Quantity** fields, even when confirmation is off. ## Check the weight in the cart Weight-based items show an arrow in the cart line. Tap the arrow to see the line’s detail, which shows the weight, the price, and the weight it is priced per. For example, a detail line can read like “2 kg (price per 1 kg)”. Always read the weight back before you take payment. The line total is the weight you entered, divided by the weight the product is priced per, times the product’s price, times the quantity. For example, 2 kg of a product priced per 1 kg, with a quantity of 1, costs twice the product’s price. ## Change the weight in the cart 1. In the cart, find the item. 2. Tap the three-dot menu on the line. 3. Tap **Weight**. 4. Enter the new weight on the keypad that opens. 5. Tap the checkmark button on the keypad. The line total updates. To change the price for the product’s set weight, tap **Weight Price** in the same menu. Changing this price needs permission to change prices. If the keypad does not open, ask an administrator or shop manager. See [Edit items in the cart](https://docs.jovvie.com/point-of-sale/sell/edit-the-cart/). ## Quantity The **Quantity** option in the same menu changes how many of the weighed item you are selling, not the weight. ## Next step [Edit items in the cart](https://docs.jovvie.com/point-of-sale/sell/edit-the-cart/) Source: https://docs.jovvie.com/point-of-sale/sell/weight-products/ --- # Choose product options and add-ons in Jovvie Point of Sale for WooCommerce Section: Jovvie Point of Sale > Take payments > Pick required options, extras, and text fields for a product that has add-ons, then add it to the cart. This page is for stores that connect Point of Sale to their own WooCommerce store and use a compatible product add-ons plugin. Some products come with choices, such as a size, a topping, or a line of engraving text. Extra options can add to the price. The register shows these choices on a product screen before the item goes in the cart, and this page shows you how to pick them. ## Before you start - Product options and add-ons need a product add-ons plugin that works with Jovvie to be installed and active on your store. Without it, products show no option screen. Contact [Jovvie support](https://jovvie.com/support/) if you are not sure which plugin to use. - An administrator or shop manager sets up the groups and options on each product. This page covers choosing them at the register. - Sign in to the register. See [Open the Jovvie Point of Sale register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). ## Add a product with options 1. Tap the product tile. A product with options opens its own screen instead of going straight to the cart. 2. Choose from each group of options. Each group has a heading, and the option can be one of these types: - Choose one: tap one option. Choosing another replaces the first. - Choose several: tap each option you want. Tap again to remove it. - Text: type into the box next to the option, such as a name to engrave. 3. If an option lets you pick a quantity, a number box appears after you choose it. Enter how many. 4. Check the price rows at the bottom of the screen. 5. Tap the plus button to add the product to the cart. The screen closes and the item is added to the cart. ### Prices on the screen The bottom of the screen shows: - **Price**: the product’s own price. - **Additional**: the total of the extra prices for the options you chose. - **Total**: **Price** plus **Additional**, for one item. Tap the small arrow at the left of these rows to hide or show **Price** and **Additional**. An option with an extra price shows that amount next to its name. Options that track stock may show how many are left in brackets. ## Required options If a group is required and you leave it empty, the register shows a message starting with **Required:** and the group name, and it does not add the item. Choose an option in that group and try again. ## Options that are out of stock An option marked **Out of Stock** cannot be selected. Pick another option, or tell the customer it is not available. ## Change the options after adding to the cart 1. In the cart, find the item. 2. Tap the three-dot menu on the line. 3. Tap **Edit**. 4. Change the options. 5. Tap **Save** (the disk icon). If the order is already paid or in a state that cannot be edited, the menu shows **View** instead of **Edit**, and the options are read only. To see what is selected without opening the product, tap the small arrow on the cart line. The chosen options and their extra prices are listed under the item name. To reset the screen to its starting choices, tap the reset button on the left of the bottom bar. ## Next step [Add a custom product](https://docs.jovvie.com/point-of-sale/sell/custom-product/) Source: https://docs.jovvie.com/point-of-sale/sell/product-add-ons/ --- # Add a custom product in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Add an item that is not in your catalog to the cart, with your own title, price, and quantity. Use a custom product to sell something that is not in your product list, such as a one-off item or a service. You type the title and price right at the register. ## Before you start - The **Add** button must be turned on for the station. If you do not see **Add** in the top bar, an administrator or shop manager needs to turn on **Enable Add a Product Functionality** in the station’s **Products** tab and make sure the **Add** button is not hidden. See [Show or hide register buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/). - Sign in to the register. See [Open the Jovvie Point of Sale register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). ## Add a custom product 1. In the top bar, tap **Add**. On a large screen the bar opens in place. On a smaller screen a **Custom Product** screen opens. 2. In **Title** (or **Product Title** on the smaller screen), type a name for the item. 3. Tap **Quantity**. A keypad opens. 4. Enter how many you are selling on the keypad. 5. Tap the checkmark button on the keypad. 6. Tap **Price**. A keypad opens. The currency symbol shows in the label. 7. Enter the price for one item on the keypad. 8. Tap the checkmark button on the keypad. 9. If your station charges tax, set **Tax Status**: - **Taxable**: tax is added to this item. - **None**: no tax is added. 10. If **Tax Status** is **Taxable**, choose a **Tax Class**. Leave it on **Standard rate** for your standard rate. 11. Decide whether to keep the item. See [Save the product for next time](https://docs.jovvie.com/point-of-sale/sell/custom-product/#save-the-product-for-next-time). 12. Tap the plus button (on the large screen) or **Add** (on the smaller screen). 13. If you saved the product, check its quantity in the cart. A saved product can be added with a quantity of 1, even if you entered more. To correct it, see [Edit items in the cart](https://docs.jovvie.com/point-of-sale/sell/edit-the-cart/). The item appears in the cart. On the smaller screen, tap **Close** to leave without adding. ## Save the product for next time The **Save** checkbox (**Save Product** on the smaller screen) controls what happens to the item. - Turned off: the item exists only in this cart. It is not added to your catalog. - Turned on: Jovvie also creates a new product in your store with this title and price. It then appears in your product list for later sales and in your store’s **Products** list. Check the quantity in the cart after adding it. An administrator or shop manager can choose whether this box starts turned on, using **Enable Save by Default** on the station. If something goes wrong when saving, the register shows an error message and the item is not added. Try again, or turn off **Save** to add it to the cart only. ## Change or remove the item Edit the quantity or price, or remove the item, from the cart. See [Edit items in the cart](https://docs.jovvie.com/point-of-sale/sell/edit-the-cart/). ## Next step [Edit items in the cart](https://docs.jovvie.com/point-of-sale/sell/edit-the-cart/) Source: https://docs.jovvie.com/point-of-sale/sell/custom-product/ --- # Edit items in the Jovvie Point of Sale cart Section: Jovvie Point of Sale > Take payments > Change quantity or price, remove an item, or clear the whole cart before you take payment. The cart lists everything in the current sale. This page shows how to change an item’s quantity or price, remove an item, or start over before you take payment. ## Before you start - Add at least one product to the cart. See [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). - You can edit a new sale, or a saved order that has not been paid and still has the status **Pending payment**, **Failed**, or a custom status. Any other order shows its items as read only. - Changing a price needs permission. An administrator or shop manager decides which staff can do this. If you do not see **Product Price** in the item menu, you do not have it. ## Change the quantity 1. In the cart, find the item. 2. Tap the three-dot menu on the item’s line. 3. Tap **Quantity**. 4. Enter the new quantity on the keypad. Use a whole number greater than zero. 5. Tap the checkmark button on the keypad. The line total updates. Items with a quantity above one also show the quantity beside the name. ## Change the price of one item Use this to give a discount on a single line or to correct a price. 1. In the cart, find the item. 2. Tap the three-dot menu on the item’s line. 3. Tap **Product Price**. 4. Enter the new price for one item on the keypad. Or choose a percent button to take that percent off the starting price. 5. Tap the checkmark button on the keypad. The line total updates. The new price applies to this sale only. It does not change the product in your store. For a discount on the whole order, see [Apply a coupon](https://docs.jovvie.com/point-of-sale/sell/coupons/). ## Change a weight For a product sold by weight, the menu also has **Weight** and **Weight Price**. See [Sell a product by weight](https://docs.jovvie.com/point-of-sale/sell/weight-products/). ## Change the options on an item If the item has add-ons, the menu shows **Edit**. See [Choose product options and add-ons](https://docs.jovvie.com/point-of-sale/sell/product-add-ons/). ## See product information To check an item’s details, tap **Product info** in the same menu. ## Remove an item 1. In the cart, find the item. 2. Tap the three-dot menu on the item’s line. 3. Tap **Remove**. The register shows **Item removed**. ## Clear the cart Use this to start the sale over. It removes every item and coupon. 1. Tap the three-dot menu in the cart totals area, above the **Total**. 2. Tap **Clear Cart**. The register shows **Cart cleared** and the cart shows **Cart is empty**. **Clear Cart** does not appear when the cart is empty or when you are looking at a saved order. An administrator or shop manager can hide this button for a station. To save a sale and come back to it later instead, see [Save an order and finish it later](https://docs.jovvie.com/point-of-sale/orders/save-and-resume/). When you are viewing a saved order, tap **New Order** to begin a fresh sale. ## Next step [Apply a coupon](https://docs.jovvie.com/point-of-sale/sell/coupons/) Source: https://docs.jovvie.com/point-of-sale/sell/edit-the-cart/ --- # Apply a coupon in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Apply a store coupon or a custom discount to the cart, and understand why a coupon is not accepted. Use a coupon to discount the whole sale or specific products, depending on the coupon’s rules. You can apply a coupon that already exists in your store, or create a custom percent or fixed discount on the spot. This page also explains why a coupon might not be accepted. ## Before you start - Coupons must be turned on in your store settings. If they are off, the **Coupons** screen shows **Coupons are disabled**. - The cart needs at least one item. See [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). - To create custom discounts, **Enable Manual Coupons** must be turned on in the station’s **Products** tab. An administrator or shop manager can do this. - The **Add a discount** button can be hidden for a station. If you do not see it, ask an administrator or shop manager. ## Apply a store coupon 1. Tap the three-dot menu in the cart totals area. 2. Tap **Add a discount**. The **Coupons** screen opens. 3. Find the coupon. The field you see depends on your permissions and settings: - **Search (enter 3 or more characters)**: type at least three characters of the code, then tap the coupon in the list. - **Enter coupon**: type the full code, then tap the matching coupon in the results. - **Coupon code**: type the full code. 4. Tap **Apply**. If you see a list of results, **Apply** stays off until you tap a coupon. The register shows **Discount applied** and the discount appears in the cart totals. Tap **Sync** on the **Coupons** screen to reload the list if a new coupon is missing. Coupons already in the cart do not show in the list. A coupon can only be applied once to the same sale. ## Create a custom discount Custom discounts let you give a one-off discount without a saved coupon. 1. Open the **Coupons** screen, as in steps 1 and 2 of [Apply a store coupon](https://docs.jovvie.com/point-of-sale/sell/coupons/#apply-a-store-coupon). 2. Tap **Add custom**. The **Custom Coupons** screen opens. (This button shows only when manual coupons are turned on and your user has full access to the register. If you do not see it, ask an administrator or shop manager.) 3. Choose the type: - **Percent Discount**: takes a percent off the order. - **Fixed Cart Discount**: takes a fixed amount off the whole order. - **Fixed Product Discount**: takes a fixed amount off each product. 4. Enter the amount on the keypad. A percent must be above 0 and no more than 100. 5. Tap **Apply**. Custom discounts are saved in your store as coupons, so the same discount is reused the next time you pick the same type and amount. You cannot apply any coupon or custom discount while the cart has a custom product that was not saved. The register shows a red message starting with **Sorry discount**. Remove that item from the cart, apply the coupon, then add the item again with **Save** turned on if you want it discounted. See [Add a custom product](https://docs.jovvie.com/point-of-sale/sell/custom-product/). ## Coupon messages If a coupon cannot be used, the register shows a red message. The message tells you which coupon rule was not met. These rules come from the coupon’s settings. - **Invalid Coupon Code.** or **Select coupon**: no code was entered, or nothing was chosen. Enter or select a coupon and try again. - **This coupon already applied**: the coupon is already in the cart. - A message starting with **Coupon not applied:** followed by a reason: - **Coupon Expiration Date**: the coupon has expired. - **Minimum Spend** or **Maximum Spend**: the cart total is below the minimum or above the maximum for this coupon. The required amount is shown. - **Exclude Sale Items**: the coupon does not apply to items on sale. - **Products** or **Exclude Products**: the cart does not have the products the coupon needs, or has products it excludes. - **Product Categories** or **Excluded Categories**: the same, for product categories. - **Usage Limit per coupon** or **Usage limit per user**: the coupon has been used as many times as allowed. - **Individual use only**: the coupon cannot be combined with another coupon. - **Not found**: the search found no coupon. To fix a rule, change the cart so it meets the rule, or use a different coupon. An administrator or shop manager can edit the coupon’s rules in your dashboard. ## Remove a coupon Tap the remove button next to the discount line in the cart totals. The register shows **Discount removed from order**. ## Next step [Add a fee](https://docs.jovvie.com/point-of-sale/sell/add-a-fee/) Source: https://docs.jovvie.com/point-of-sale/sell/coupons/ --- # Add a fee in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Add a fixed or percent fee, such as a service charge, to the order. Use a fee to add an extra charge to an order, such as a service charge, a gratuity you name yourself, or a handling charge. You choose a name, a type, and an amount. For tips taken at payment time, see [Accept a tip](https://docs.jovvie.com/point-of-sale/sell/tips/). ## Before you start - The cart needs at least one item. See [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). - The **Add a fee** button can be hidden for a station. If you do not see it, ask an administrator or shop manager. See [Show or hide register buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/). ## Add a fee 1. Tap the three-dot menu in the cart totals area. 2. Tap **Add a fee**. The **Fee** screen opens. 3. In **Fee Name**, type a name, such as “Service charge”. 4. Choose the type: - **Fixed Fee**: a set amount. - **Percent Fee**: a percent of the order subtotal. 5. Enter the amount on the keypad. A percent must be above 0 and no more than 100. 6. If your store charges tax, choose an option under **Taxes**: - **None**: no tax is charged on the fee. - **Taxable**: tax is charged on the fee. 7. If you chose **Taxable**, choose the tax class in the second list that appears. 8. Tap **Apply**. The register shows **Fee applied** and the fee appears in the cart totals. Its name shows the name you typed followed by **Fixed Fee**, or by the percent and **Fee** for a percent fee. **Apply** stays off until you have entered a name and an amount. ## Remove a fee Tap the remove button next to the fee in the cart totals. The register shows **Fee removed from order**. Some fees are added by the register itself, such as a payment method fee. Those cannot be removed from the cart. See [Add a payment method fee](https://docs.jovvie.com/point-of-sale/set-up/payment-method-fees/). ## Next step [Add shipping to an order](https://docs.jovvie.com/point-of-sale/sell/add-shipping/) Source: https://docs.jovvie.com/point-of-sale/sell/add-a-fee/ --- # Add shipping to an order in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Add a shipping method and cost to an order that goes to a customer's address. Use shipping when the order is going to the customer instead of leaving with them. The register works out which shipping methods are available from the customer’s address, so you can pick one and add its cost to the sale. ## Before you start - Shipping must be turned on for your store, and your shipping zones and methods must be set up. If shipping is turned off, **Add shipping** does not appear. See [Change shipping settings](https://docs.jovvie.com/point-of-sale/sell/add-shipping/#change-shipping-settings). - The order needs a customer. The **Add shipping** button only shows after you add one. See [Add a customer to a sale](https://docs.jovvie.com/point-of-sale/sell/add-a-customer/). - The customer needs a complete billing or shipping address, with first and last name, street address, city, postcode, and country. To ship to the billing address, the customer’s billing email must also be filled in. **Shipping Details** has no email field and does not need one. - The **Add shipping** button can be hidden for a station. If you do not see it, ask an administrator or shop manager. ## Add shipping 1. Tap the three-dot menu in the cart totals area. 2. Tap **Add shipping**. The **Select Shipping Location** screen opens. 3. Choose which of the customer’s addresses to ship to. Only complete addresses are listed. 4. Tap **Next**. The **Select Shipping Method** screen opens. 5. Tap the shipping method you want. Each shows its name and cost, or **Free**. 6. Tap **Apply**. Shipping appears in the cart totals and is added to the total. ## If no options appear - If you see **Oops, no shipping methods are setup for the customer**, the customer’s address is incomplete. Check that every address field has a value, edit the customer, and try again. See [Add a customer to a sale](https://docs.jovvie.com/point-of-sale/sell/add-a-customer/). - If you see **Oops, no shipping methods are setup for the location.**, your store has no shipping method for that address. An administrator or shop manager needs to add a shipping zone for it. See [Change shipping settings](https://docs.jovvie.com/point-of-sale/sell/add-shipping/#change-shipping-settings). - If the customer’s address was just changed, tap **Sync** to reload it. - If you see a message starting with **Oops, something went wrong: Error**, wait a moment and try again. If it keeps happening, see [Loading and sync problems](https://docs.jovvie.com/point-of-sale/troubleshooting/sync/). ## Remove shipping Tap the remove button next to **Shipping** in the cart totals. ## Change shipping settings An administrator or shop manager manages shipping for your store. **If you use Standalone:** Contact [Jovvie support](https://jovvie.com/support/) if you need to change this. **If you use WooCommerce:** In your WordPress admin, go to **WooCommerce** > **Settings** and open the **Shipping** tab to set up shipping zones and methods. ## Next step [Add a note to an order](https://docs.jovvie.com/point-of-sale/sell/add-a-note/) Source: https://docs.jovvie.com/point-of-sale/sell/add-shipping/ --- # Add a note to an order in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Add a customer note or an admin note to the current sale. A note is extra text saved with the order, so your team remembers something important about the sale. The register has two kinds. A **Customer** note is the order’s customer note, such as a delivery request or a gift message. An **Admin** note is for your own team and is not the customer’s note. ## Before you start - The cart needs at least one item. See [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). - The **Add a note** button can be hidden for a station. If you do not see it, ask an administrator or shop manager. See [Show or hide register buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/). ## Add a note 1. Tap the three-dot menu in the cart totals area. 2. Tap **Add a note**. The **Notes** screen opens. 3. Choose **Customer** or **Admin** at the top. 4. Type the note in the box. 5. To add the other kind of note too, choose the other option and type that note. Each kind keeps its own text. 6. Tap **Apply**. The register shows **Customer note added** or **Admin note added**. Once a note is on the order, the cart shows a line such as **Customer and Admin note added**. Do not put card numbers, passwords, or other sensitive details in a note. ## Change a note 1. Tap the three-dot menu in the cart totals area. 2. Tap **Add a note**. 3. Choose **Customer** or **Admin** to pick the note you want to change. 4. Edit the text in the box. 5. Tap **Apply**. ## Remove a note 1. Tap the three-dot menu in the cart totals area. 2. Tap **Add a note**. 3. Choose **Customer** or **Admin** to pick the note you want to remove. 4. Tap **Remove note**. The register shows **Customer note removed.** or **Admin note removed.** **Remove note** deletes only the note of the kind currently selected. Tap **Close** to leave the screen without saving changes. ## Next step [Add a Tax/VAT number](https://docs.jovvie.com/point-of-sale/sell/add-tax-vat-number/) Source: https://docs.jovvie.com/point-of-sale/sell/add-a-note/ --- # Add a Tax/VAT number in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Record a customer's Tax/VAT ID on the sale and, if your station allows it, remove tax for that sale. Some customers, such as businesses, have a Tax/VAT ID. This page shows you how to record the ID type and number on the sale. Depending on your station’s settings, the register can also remove tax from the sale. ## Before you start - An administrator or shop manager must turn on **Enable Tax/VAT ID Type Settings** in the station’s **Tax** tab. If it is off, **Add Tax/VAT number** does not appear. See [Set up taxes for a station](https://docs.jovvie.com/point-of-sale/set-up/taxes/). - Sign in to the register. See [Open the Jovvie Point of Sale register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). ## Add a Tax/VAT number 1. Tap the three-dot menu in the cart totals area. 2. Tap **Add Tax/VAT number**. The **Manage Tax/VAT** screen opens. 3. Under **Tax/VAT ID Type**, choose the type from the list on the left. 4. In the box next to it, type the customer’s Tax/VAT number. 5. Tap **Apply**. The type and number are saved with the order. To change them, open **Add Tax/VAT number** again, update the fields, and tap **Apply**. Tap **Close** to leave without saving. ## Remove tax for this sale What the register does with tax depends on the **Tax/VAT ID Behavior** setting on the station’s **Tax** tab: - **Tax/VAT not allowed to be removed**: tax cannot be removed using the Tax/VAT options. - **Allow Tax/VAT removed manually**: staff can remove tax from the sale themselves. - **Remove automatically Tax/VAT**: the register removes tax automatically. - **Remove automatically if Customer has Tax/VAT ID**: the register removes tax when the customer has a Tax/VAT ID. - **Remove automatically if Order has Tax/VAT ID**: the register removes tax when a Tax/VAT ID is added to the order. - **Remove automatically if Customer and Order has Tax/VAT ID**: the register removes tax when both have one. If the station allows manual removal, the **Manage Tax/VAT** screen shows a red button. 1. Open **Add Tax/VAT number**. 2. Tap **Remove Tax/VAT**. The cart totals update without tax. 3. To charge tax again, open the same screen and tap **Add Tax/VAT**. Only remove tax when you are allowed to under your local tax rules. An administrator or shop manager decides which setting your station uses. ## Next step [Add a customer to a sale](https://docs.jovvie.com/point-of-sale/sell/add-a-customer/) Source: https://docs.jovvie.com/point-of-sale/sell/add-tax-vat-number/ --- # Add a customer to a sale in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Search for an existing customer, create a new one, or edit a customer, and attach them to the sale. Attaching a customer to a sale lets you record who bought, email them a receipt, and use features that depend on the customer, such as shipping or special pricing. You can search for an existing customer or create a new one right at the register. ## Before you start - Sign in to the register. See [Open the Jovvie Point of Sale register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). - What you can do depends on the permissions your user account has. An administrator or shop manager decides whether staff can search customers, list them, or only add new ones. If a button on this page, such as **View Customers** or **Add New Customer**, is missing, ask them. - Your station (one register in Point of Sale) may require a customer before checkout, or may require more customer fields. See [Require a customer or customer fields](https://docs.jovvie.com/point-of-sale/set-up/customer-rules/). ## Add an existing customer 1. In the cart header, tap **Add Customer**. You can also tap the **Customers** tile on the home screen. 2. On the **Select customer** screen, type in **Search Customers**. Enter at least three characters of the name, phone, or email. If your user is not allowed to search partial matches, enter the complete name, phone number, or email instead. 3. Tap the customer in the results. The register shows **Customer added** and the customer’s name appears in the cart header. If you see **No customer found**, check the spelling or add the customer as new. If you see **Update customer info (require billing email address)**, the customer has no billing email. Tap the pencil icon beside the customer, add an email, and tap **Update & Apply**. If **Search Customers** does not appear, your user is not allowed to search customers. You can still use **Add New Customer**. ## Browse the customer list 1. On the **Select customer** screen, tap **View Customers**. (This only shows if your user is allowed to list customers.) 2. Scroll to find the customer. Tap one to select them. 3. Tap **Add**. If the list does not load at all, you see an error message instead of customers, such as **Error loading customers**. Tap **Back**, then tap **View Customers** again, or use search instead. If some customers loaded but the rest did not, you see **Failed to load more customers** at the bottom of the list. Tap **Retry**. To manage customers in the admin, tap **View Admin** if it is shown. ## Add a new customer 1. On the **Select customer** screen, tap **Add New Customer**. 2. Enter **First Name**, **Last Name**, and **Email**. These are required. 3. Under **Billing Details**, fill in the address fields, such as **Address 1**, **City**, **Postcode**, and **State/Country**. If the customer has a Tax/VAT ID, choose the type and enter the number. See [Add a Tax/VAT number](https://docs.jovvie.com/point-of-sale/sell/add-tax-vat-number/). 4. Under **Shipping Details**, leave **copy from Billing** selected to use the billing address, or clear it to ship to a different address. 5. If you cleared **copy from Billing**, enter the shipping address in the fields that appear. 6. Tap **Add & Apply** to save the customer and attach them to this sale. Tap **Add** to save the customer without attaching them. The register shows **Customer added**. If the customer cannot be saved, a red message explains why. Fix the field it points to and try again. Your station may require more fields, such as the full address. See [Require a customer or customer fields](https://docs.jovvie.com/point-of-sale/set-up/customer-rules/). Fill in a complete address if you plan to ship the order. See [Add shipping to an order](https://docs.jovvie.com/point-of-sale/sell/add-shipping/). ## Edit a customer 1. On the **Select customer** screen, find the customer. 2. Tap the pencil icon beside them. 3. Change the details. 4. Tap **Update** to save, or **Update & Apply** to save and attach them to the sale. The register shows **Customer updated**. ## Remove the customer from the sale 1. In the cart header, tap the X next to the customer’s name. The register shows **Customer removed from order**. The sale continues as a guest sale. You can add or remove a customer while the order is editable. That includes a new sale and a saved order that has not been paid and still has the status **Pending payment**, **Failed**, or a custom status. For any other order, the customer is shown but cannot be changed. ## Next step Take payment: - [Take a Stripe card reader payment in Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/sell/card-payment-stripe/) - [Take an NMI terminal payment in Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/sell/card-payment-nmi/) - [Take a cash payment in Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/sell/cash/) Source: https://docs.jovvie.com/point-of-sale/sell/add-a-customer/ --- # Take a Stripe card reader payment in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Charge a customer's card on a Stripe card reader from the Point of Sale register. Use the **Swipe/Insert/Tap** payment method in the Jovvie Point of Sale register to charge a card on a Stripe card reader. The customer taps, inserts, or swipes their card on the reader, and when the payment goes through, the order is marked completed. > **Note: Using NMI?** > > NMI terminals use their own payment method and work differently. See [Take an NMI terminal payment in Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/sell/card-payment-nmi/) and [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). ## Before you start - Your Stripe account is connected to Point of Sale. See [Connect Stripe to Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/set-up/connect-stripe/). - The **Swipe/Insert/Tap** payment method is turned on. Your store may have renamed it. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/). - At least one reader is turned on for your station. See [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/). - The reader is turned on, charged, and connected to the internet. - The cart has at least one item. See [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). ## Take the payment 1. In the cart, tap **Checkout**. 2. If a tip screen or a **Points & Rewards** screen opens, complete it first. See [Accept a tip](https://docs.jovvie.com/point-of-sale/sell/tips/) and [Redeem Points and Rewards](https://docs.jovvie.com/point-of-sale/sell/points-and-rewards/). 3. Under **Select Payment Method**, tap **Swipe/Insert/Tap**. If your store also takes NMI payments, two methods may have this name. Tap the one marked **with Stripe Terminal**. 4. Select the reader the customer will use. If the list shows **Preparing readers…**, wait for the readers to load. 5. Tap the pay button. By default it shows **Pay** and the amount. The **Payment Processing** window opens and shows the reader’s status, such as **Waiting for input. Please proceed on the connected terminal.** 6. Ask the customer to tap, insert, or swipe their card on the reader. 7. Follow any prompts on the reader screen. When the payment goes through, the register shows the completed order. Tap **New Order** to start the next sale. The reader does not ask the customer for a tip. To take tips, use the register’s tip screen. See [Accept a tip](https://docs.jovvie.com/point-of-sale/sell/tips/). ## If the reader starts on its own Your station may use Express checkout. With Express checkout, the register starts your default reader as soon as you choose **Swipe/Insert/Tap**, or as soon as the checkout screen opens. You do not pick a reader or tap the pay button. The **Payment Processing** window opens, and you continue from step 6. If the default reader is not ready, you see the reader list and take the payment as usual. To set this up, see [Set up Express checkout](https://docs.jovvie.com/point-of-sale/set-up/express-checkout/). ## Stop a payment To cancel before the customer pays, tap **Abort** in the **Payment Processing** window. - If the customer has not presented a card yet, the register stops waiting and asks Stripe to cancel the payment. A **Processing error** window shows **Payment aborted manually**. Close it. This message does not by itself prove the payment was cancelled. Before you tap the pay button again or use another payment method, follow [If you are not sure the payment went through](https://docs.jovvie.com/point-of-sale/sell/card-payment-stripe/#if-you-are-not-sure-the-payment-went-through) to confirm that no payment completed and none is still processing. To go back to the cart instead, tap **Cancel checkout**. - If the reader is already processing the card, you see **The payment is already processing and can no longer be aborted. Wait for the result.** Wait for the result. If you need to reverse the payment after it completes, refund the order. See [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). - If you see **The aborted card payment may still be processing. Check the payment status before retrying.**, the payment could not be cancelled in time and may still go through. Follow [If you are not sure the payment went through](https://docs.jovvie.com/point-of-sale/sell/card-payment-stripe/#if-you-are-not-sure-the-payment-went-through) before you do anything else. ## If you are not sure the payment went through > **Caution: Do not charge twice** > > Do not take the payment again, and do not switch to another payment method, until you have confirmed that no payment went through and none is still processing. These messages mean the result is unknown: - **Payment processing timeout. Please check your order history.** This can appear while the customer is still paying. The payment can still go through after you see it. - **The payment may have completed, but the order could not be updated. Check the order history and the payment status before charging again.** - **The card payment outcome could not be confirmed. Check the Stripe dashboard before taking another payment for this order.** The order is put on hold. - A window titled **Verify Previous Payment Attempt**. To check the payment: 1. Look at the reader screen. Wait until it shows a result or returns to idle. 2. Find the order in the register’s order history. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/). 3. Check your Stripe Dashboard for a payment on this order. Look for payments that completed and payments that are still processing. 4. If the customer was charged, or a payment is still processing, do not charge again. 5. Only if no payment completed and none is still processing, take the payment again. If you are not sure, contact [Jovvie support](https://jovvie.com/support/) before you take another payment. For the fix for each message, see the Stripe section of [Card reader payment problems](https://docs.jovvie.com/point-of-sale/troubleshooting/card-readers/#stripe-readers). ## If the amount charged does not match the order If the reader charged a different amount than the order total, the register shows a message starting with **Terminal captured**. The order is not completed and is put on hold. See [Resolve a card payment that did not match the order](https://docs.jovvie.com/point-of-sale/orders/resolve-amount-mismatch/). ## Refunds You can refund a Stripe card payment from the register. See [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). Source: https://docs.jovvie.com/point-of-sale/sell/card-payment-stripe/ --- # Take an NMI terminal payment in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Charge a customer's card on an NMI terminal from the Point of Sale register. If your store takes card payments through NMI, use the NMI payment method in the Jovvie Point of Sale register to charge a card on an NMI terminal (the card machine the customer pays on). When the payment goes through, the order is marked completed. > **Note: Using Stripe?** > > Stripe readers use a different payment method. See [Take a Stripe card reader payment in Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/sell/card-payment-stripe/). For a summary of the differences, see [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). ## How NMI terminals differ from Stripe readers - **Abort** only stops the register from waiting. It does not cancel the transaction on the terminal. You must cancel it on the terminal as well. - You pick the terminal at checkout. The list shows every terminal registered to your NMI account. Terminals are not turned on per station like Stripe readers. - Express checkout does not start NMI terminals automatically. - NMI terminals only work with currencies that have two decimal places. - Once the transaction has started, the register can wait up to about three minutes for the terminal result. Starting the transaction can take extra time before that. ## Before you start - NMI is connected. To get NMI connected, contact [Jovvie support](https://jovvie.com/support/). The NMI settings are then in **POS** > **Settings** > **NMI**. See [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). - The NMI payment method is turned on. By default it is named **Swipe/Insert/Tap**, the same as the Stripe method. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/). - Your terminal is registered to your NMI account, turned on, and connected to the internet. - The cart has at least one item. See [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). ## Take the payment 1. In the cart, tap **Checkout**. 2. If a tip screen or a **Points & Rewards** screen opens, complete it first. See [Accept a tip](https://docs.jovvie.com/point-of-sale/sell/tips/) and [Redeem Points and Rewards](https://docs.jovvie.com/point-of-sale/sell/points-and-rewards/). 3. Under **Select Payment Method**, tap **Swipe/Insert/Tap** marked **with NMI Terminal**. 4. Select the terminal the customer will use. If you only have one terminal, it is already selected. 5. Tap the pay button. By default it shows **Pay** and the amount. The **Payment Processing** window opens. It shows status updates from the terminal while you wait. 6. Ask the customer to tap, insert, or swipe their card on the terminal. 7. Follow any prompts on the terminal screen. When the payment goes through, the register shows the completed order. Tap **New Order** to start the next sale. ## Stop a payment 1. Tap **Abort** in the **Payment Processing** window. The register stops waiting and shows **Payment aborted.** 2. Cancel the transaction on the terminal. 3. Check the terminal screen to confirm the transaction was cancelled and the customer was not charged. If the terminal transaction is still open and you tap the pay button again for the same order, the register picks up that same payment and keeps waiting. It does not start a second charge. ## If you are not sure the payment went through > **Caution: Do not charge twice** > > Do not take the payment again, and do not switch to another payment method, until you have confirmed that no payment went through and the terminal transaction is not still open. These messages mean the result is unknown: - A message starting with **Timed out waiting for the terminal payment result.** - A message starting with **Connection to the payment service was lost.** - A message starting with **A previous attempt to start a terminal payment did not finish and its outcome is unknown.** A shorter version reads **A previous attempt to start this terminal payment has an unknown result.** - **The payment may have completed, but the order could not be updated. Check the order history and the payment status before charging again.** To check the payment: 1. Look at the terminal screen to see whether the payment went through. 2. If the terminal is still waiting for a card, cancel the transaction on the terminal. 3. Find the order in the register’s order history. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/). 4. If the customer was charged, do not charge again. 5. Only if no payment went through and the terminal transaction is cancelled or failed, tap the pay button again. If you are not sure, contact [Jovvie support](https://jovvie.com/support/) before you take another payment. For the fix for each message, see the NMI section of [Card reader payment problems](https://docs.jovvie.com/point-of-sale/troubleshooting/card-readers/#nmi-terminals). ## Refunds Refunds for NMI payments work differently from Stripe. See [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). Source: https://docs.jovvie.com/point-of-sale/sell/card-payment-nmi/ --- # Enter a card manually with Stripe in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Type a customer's card details into the register to charge the card through Stripe without a reader. Use the **Enter Card** payment method when you cannot use a card reader, for example when the customer reads you their card details over the phone. You type the card details into the register, and Stripe then charges the card. When the payment goes through, the order is marked completed. > **Note: Stripe only** > > **Enter Card** works with Stripe only. There is no manual card entry for NMI. See [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). ## Before you start - Your Stripe account is connected to Point of Sale. See [Connect Stripe to Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/set-up/connect-stripe/). - The **Enter Card** payment method is turned on. Your store may have renamed it. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/). - The cart has at least one item. See [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). Only type card details into the card field on the payment screen. Never write card numbers down, and never ask customers to send them by email or chat. ## Take the payment 1. In the cart, tap **Checkout**. 2. If a tip screen or a **Points & Rewards** screen opens, complete it first. See [Accept a tip](https://docs.jovvie.com/point-of-sale/sell/tips/) and [Redeem Points and Rewards](https://docs.jovvie.com/point-of-sale/sell/points-and-rewards/). 3. Under **Select Payment Method**, tap **Enter Card**. 4. In the card field, type the card number. 5. Type the expiration date. 6. Type the security code (CVC). 7. If a postal code field appears, type the card’s billing postal code. 8. Tap the pay button. By default it shows **Pay** and the amount. When the payment goes through, the register shows the completed order. Tap **New Order** to start the next sale. ## Cards that need extra verification Some cards require the cardholder to confirm the payment with their bank (3D Secure). For sales without subscription products, **Enter Card** rejects cards that require this verification and shows **Oops! Card required 3d secure.** Before asking the customer to pay another way, follow [If the payment fails](https://docs.jovvie.com/point-of-sale/sell/enter-card-manually/#if-the-payment-fails) to confirm that no payment completed and none is still processing. Then ask the customer to pay another way, such as on a card reader. ## If the payment fails If the card is declined or the details are wrong, the register shows the reason. Before retrying or switching payment methods, follow the checks in this section to confirm that no payment completed and none is still processing. Then correct the details or ask for another payment method. For declines, see [Card declined and payment error messages](https://docs.jovvie.com/troubleshooting/payment-errors/). If you see **Payment failed. Please try again with a different payment method.**, the order is marked failed. A failed order does not by itself prove the customer was not charged. The charge request may already have reached Stripe. > **Caution: Do not charge twice** > > Do not charge the card again, and do not switch to another payment method, until you have confirmed that no payment completed and none is still processing. To check the payment: 1. Find the order in the register’s order history. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/). 2. Check your Stripe Dashboard for a payment on this order. Look for payments that completed and payments that are still processing. 3. If the customer was charged, or a payment is still processing, do not charge again. 4. Only if no payment completed and none is still processing, take the payment again. If you are not sure whether the card was charged, contact [Jovvie support](https://jovvie.com/support/) before you take another payment. ## If Enter Card does not load If you see **Stripe API Key not found**, or a message starting with **Connection to Stripe failed.**, the register cannot reach your Stripe account. Ask an administrator to check the Stripe connection. See [Connect Stripe to Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/set-up/connect-stripe/). ## Refunds You can refund a Stripe card payment from the register. See [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). Source: https://docs.jovvie.com/point-of-sale/sell/enter-card-manually/ --- # Take a cash payment in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Record a cash payment in the register and see how much change to give back. Use the **Cash** payment method when the customer pays with notes and coins. You enter how much cash the customer gave you, and the register shows how much change to give back. Cash payments work the same whether your store uses Stripe or NMI for cards. ## Before you start - The **Cash** payment method is turned on. Your store may have renamed it. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/). - The cart has at least one item. See [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). - If your station uses cash management, open the till to start a cash session first. Cash sales are only added to the till if it is open when the sale is completed. See [Open the till](https://docs.jovvie.com/point-of-sale/cash/open-the-till/). ## Take the payment 1. In the cart, tap **Checkout**. 2. If a tip screen or a **Points & Rewards** screen opens, complete it first. See [Accept a tip](https://docs.jovvie.com/point-of-sale/sell/tips/) and [Redeem Points and Rewards](https://docs.jovvie.com/point-of-sale/sell/points-and-rewards/). 3. Under **Select Payment Method**, tap **Cash**. **Amount Tendered** is filled in with the total to pay. 4. If the customer gave you more than the total, enter the amount they gave you in **Amount Tendered**. The change to give back appears next to **Change:** at the top of the screen. 5. Take the cash from the customer. 6. Tap the pay button. By default it shows **Pay** and the amount. 7. Give the customer their change. When the payment is recorded, the register shows the order with **Paid:**, **Amount Tendered:**, and **Change:**. Tap **New Order** to start the next sale. ## If the customer gave you less than the total If **Amount Tendered** is less than the total, the register does not record the payment. You see **Oops! Payment has not been processed by customer yet.** Collect the rest of the cash and enter the full amount. If the customer wants to pay part in cash and part another way, use a split payment instead, which divides one sale across more than one payment. See [Split a payment](https://docs.jovvie.com/point-of-sale/sell/split-payment/). ## Order status after a cash payment By default, cash orders are marked **Completed**. Your store can choose a different status for cash orders. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/#choose-the-order-status-after-payment). If the order shows **Processing** after payment, tap **Complete** when you have handed over the items. See [Change an order’s status](https://docs.jovvie.com/point-of-sale/orders/change-status/). ## Refunds A refund in the register for a cash order only records the refund. Give the cash back to the customer yourself. See [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). Source: https://docs.jovvie.com/point-of-sale/sell/cash/ --- # Split a payment in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Let a customer pay for one order with two or more payment methods, such as part cash and part card. Use **Split payment** when a customer wants to pay for one order in more than one way, for example part in cash and part by card. You choose each payment method and the amount for it. The payment amounts, minus any cash change, must add up to the order total. ## Before you start - The **Split Payment** payment method is turned on. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/). - Each method you want to use in the split is turned on. - If the split includes a card payment, the reader or terminal is turned on and connected to the internet. See [Take a Stripe card reader payment in Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/sell/card-payment-stripe/) or [Take an NMI terminal payment in Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/sell/card-payment-nmi/). - If the split includes cash and your station uses cash management, open the till to start a cash session first. See [Open the till](https://docs.jovvie.com/point-of-sale/cash/open-the-till/). - The cart has at least one item. See [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). ## What you can split - Each payment method can be used once in a split. - **Invoice** cannot be part of a split payment. Do not add it to a split. To send an invoice, see [Send an invoice to pay later](https://docs.jovvie.com/point-of-sale/sell/invoice/). - Paying by QR code is not part of a split payment. - Cards can be part of a split with a Stripe reader (**Swipe/Insert/Tap** marked **with Stripe Terminal**), with **Enter Card** (Stripe only), or with an NMI terminal (**Swipe/Insert/Tap** marked **with NMI Terminal**). - Express checkout does not start a reader on its own for a split payment. ## Split the payment 1. In the cart, tap **Checkout**. 2. If a tip screen or a **Points & Rewards** screen opens, complete it first. See [Accept a tip](https://docs.jovvie.com/point-of-sale/sell/tips/) and [Redeem Points and Rewards](https://docs.jovvie.com/point-of-sale/sell/points-and-rewards/). 3. At the bottom of the payment screen, tap **Split payment**. The screen changes to **Split**, and the top shows **To split** and the order total. 4. Tap **Select Payment Method**. 5. Tap the first payment method the customer will use. 6. In **Amount Tendered**, enter the amount the customer will pay with this method. 7. Tap **Add another payment option**. 8. Tap the next payment method. 9. In **Amount Tendered**, enter the amount for this method. To fill in whatever is left of the total, tap **Add Rest**. 10. Repeat steps 7 to 9 for any other methods. 11. For a card method, also select the reader or terminal, or type the card details for **Enter Card**. 12. Check that the payment amounts, minus any cash change shown next to **Change:**, add up to the order total. If the pay button shows the amount, it also shows **Balance** and the difference. 13. If the split includes cash, collect the cash from the customer. The register records the cash amount you entered and does not check that you received it. 14. If the split includes a method that only records a payment, such as **Check Payments**, make sure you have received that payment. See [Record other payment types](https://docs.jovvie.com/point-of-sale/sell/other-payment-types/). 15. Tap the pay button. By default it shows **Pay** and the amount. 16. If the split includes a card reader or terminal, ask the customer to tap, insert, or swipe their card, and follow the prompts on its screen. When every part of the payment goes through, the register shows the completed order. Tap **New Order** to start the next sale. All parts of the split are processed when you tap the pay button. To keep things simple for the customer, use only one card reader or terminal in each split. ## Cash in a split If one of the methods is **Cash**, the cash amount can be more than what is left to pay. The register shows the change next to **Change:** at the top of the screen. The change cannot be more than the cash amount. If it is, you see **Oops! Cash change cannot exceed the cash payment.** This happens when the amounts on the other methods add up to more than the order total. Reduce the amounts on the other methods so they do not go over the order total. Then enter the cash you actually received. ## Change the methods before you pay - To remove a method from the split, tap the remove button (X) on its row. You can only remove a method when the split has more than one method. - To leave the split and pay with a single method, tap **Split** at the top of the screen. ## If part of the split fails > **Caution: Do not charge twice** > > A card part of a split can go through even when the register shows an error. Do not tap the pay button again until you know which parts were paid. If one part of the split fails, the register shows an error, such as a message starting with **Oops! Payment method** or **Oops! Following payment methods have failed processing**. Some parts may show **Paid**, and you cannot change or remove them. A part that is not marked **Paid** may still have been charged. When one part fails, a card part that went through at the same time can be left without the **Paid** marker. If you tap the pay button again, the register tries every part that is not marked **Paid**, including that card. 1. Read the error to see which method failed. 2. For every card part of the split, check whether that card was charged: - For a Stripe reader or **Enter Card**, check your Stripe Dashboard. - For an NMI terminal, check the terminal screen. If the terminal is still waiting for a card, cancel the transaction on the terminal. 3. Find the order in the register’s order history. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/). 4. If a card part was charged or is still processing but is not marked **Paid**, stop. Do not tap the pay button again. Contact [Jovvie support](https://jovvie.com/support/). 5. Fix the problem with the failed part, for example by choosing another reader or correcting the amount. 6. Tap the pay button again only when you have confirmed that no part you are retrying was charged and none is still processing. If you see **The payment may have completed, but the order could not be updated. Check the order history and the payment status before charging again.**, some or all of the money may already have been taken. Follow the steps in [If part of the split fails](https://docs.jovvie.com/point-of-sale/sell/split-payment/#if-part-of-the-split-fails) before you do anything else. If you are not sure what was paid, contact [Jovvie support](https://jovvie.com/support/) before you take another payment. ## Cancel a split after part of it was paid If you leave the split after one or more parts were paid, the register warns you with a message starting with **Warning! Some split payments have already been processed.** The money for those parts has already been taken. The warning only counts parts marked **Paid**. A card part that was charged but not marked **Paid** does not trigger it, so check every card part as described in [If part of the split fails](https://docs.jovvie.com/point-of-sale/sell/split-payment/#if-part-of-the-split-fails) before you leave the split. The best option is usually to finish the split. First follow the checks in [If part of the split fails](https://docs.jovvie.com/point-of-sale/sell/split-payment/#if-part-of-the-split-fails). Only when you have confirmed that no part you are retrying was charged and none is still processing, fix the failed part and tap the pay button again, or use another payment method for that part. If you must cancel: 1. Confirm the cancellation in the warning. 2. Return the money for every part that was paid: - **Cash:** give the cash back to the customer. - **Stripe card:** refund the payment in your Stripe Dashboard. - **NMI terminal:** refund the transaction outside Point of Sale. If you are not sure how, contact [Jovvie support](https://jovvie.com/support/). - **Other methods:** return the money the way your business normally does. The register does not refund the paid parts for you when you cancel. ## Refunds A refund in the register for a split payment only records the refund, even if part of the payment was by card. Return the money for each part yourself. See [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). Source: https://docs.jovvie.com/point-of-sale/sell/split-payment/ --- # Accept a tip in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Add a tip to an order on the register's tip screen before the customer pays. This page shows you how to add a tip to an order before the customer pays. When tips are turned on for your station, the register shows an **Add a Tip** screen after you tap **Checkout**. The customer or a staff member chooses a tip, and the register adds it to the total before payment. Tips are added in the register, not on the card reader or terminal. This is the same whether your store uses Stripe or NMI. ## Before you start - Tips are turned on for your station. See [Set up tips](https://docs.jovvie.com/point-of-sale/set-up/tips/). - The cart has at least one item. See [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). ## Add a tip 1. In the cart, tap **Checkout**. The **Add a Tip** screen opens. The top shows **To Pay:** and the order total before the tip. If a **Points & Rewards** screen opens first, complete it. See [Redeem Points and Rewards](https://docs.jovvie.com/point-of-sale/sell/points-and-rewards/). 2. Choose one of these. Your station decides which ones appear. - Tap a percent button. Each button shows the percentage and the tip amount. - Tap **Custom Tip Amount** to enter your own amount. See [Enter a custom tip](https://docs.jovvie.com/point-of-sale/sell/tips/#enter-a-custom-tip). - Tap **No Tip** to continue without a tip. The payment screen opens. If a tip was added, the top shows **Includes Tip** and the tip amount. If **Display Points and Rewards after Tips** is selected for your station, the **Points & Rewards** screen may open next instead. Complete it, and then the payment screen opens. See [Redeem Points and Rewards](https://docs.jovvie.com/point-of-sale/sell/points-and-rewards/). 3. Take the payment as usual. For example, see [Take a cash payment](https://docs.jovvie.com/point-of-sale/sell/cash/) or [Take a Stripe card reader payment in Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/sell/card-payment-stripe/). The tip is part of the amount charged. It is added to the order as a separate fee called **Tip**, with no tax. ## Enter a custom tip 1. Tap **Custom Tip Amount**. A keypad opens with a **Tip** field. 2. Type the tip amount on the keypad. Or tap a percentage on the right side of the keypad to use that percent of the total. 3. Tap the checkmark button to confirm. The tip must be more than zero. To continue without a tip, tap **No Tip** instead, if your station shows it. ## Change or remove the tip 1. On the payment screen, tap **Cancel checkout**. 2. If the register asks **Cancel checkout and return to cart?**, tap **Cancel checkout**. 3. In the cart, tap **Checkout** again. 4. Choose the new tip, or tap **No Tip**. Change the tip before you take the payment. ## If there is no No Tip button Your station may be set up without a **No Tip** button. To continue without a tip, ask an administrator or shop manager to change the tip options. See [Set up tips](https://docs.jovvie.com/point-of-sale/set-up/tips/). Source: https://docs.jovvie.com/point-of-sale/sell/tips/ --- # Let the customer pay by QR code in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Show a QR code so the customer can pay for the order on their own phone through your online store. This page shows you how to let a customer pay with their own phone. The register shows a QR code for the order. The customer scans it with their phone and pays on your online store’s payment page, using one of the payment methods your store offers online. When they finish, **Accept Payment** confirms that they completed the order payment page. It does not confirm that you received the money. QR code payments do not use your card reader or terminal. They work the same whether your store uses Stripe or NMI for in-person cards. ## Before you start - The **QR Code** payment method is turned on. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/). - Your online store has at least one payment method that customers can use on the order payment page. - The customer has a phone with a camera and an internet connection. - The cart has at least one item. See [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). ## Take the payment 1. In the cart, tap **Checkout**. 2. If a tip screen or a **Points & Rewards** screen opens, complete it first. See [Accept a tip](https://docs.jovvie.com/point-of-sale/sell/tips/) and [Redeem Points and Rewards](https://docs.jovvie.com/point-of-sale/sell/points-and-rewards/). 3. At the top of the payment screen, next to **To pay**, tap the QR code button. A QR code for this order appears. 4. Ask the customer to scan the QR code with their phone camera. The order payment page of your online store opens on their phone. 5. Ask the customer to choose a payment method and pay. If the order belongs to a customer account, your store may ask the customer to log in before they can pay. 6. Wait until the customer’s phone shows that the order was received. 7. Tap **Accept Payment**. When the register accepts the order, it shows the order. Check that you received the payment before handing over the items. Tap **New Order** to start the next sale. ## If you see “Oops! Payment has not been processed by customer yet.” The register has not received confirmation that the customer finished paying. 1. Check the customer’s phone. If they are still paying, wait until they finish. 2. Tap **Accept Payment** again. If the customer says they paid but you still see this message, do not ask them to pay again. Find the order in the register’s order history and check its status. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/). Before retrying or switching payment methods, confirm that no payment went through and none is still processing. If you cannot confirm this, contact [Jovvie support](https://jovvie.com/support/) before you take another payment. ## Check how the customer paid **Accept Payment** confirms that the customer finished the order payment page. It does not check which payment method they chose there. If your online store offers methods that are paid later, such as a bank transfer, the customer can finish the page without paying yet. Before you hand over the items, confirm that you received the money through the online payment method the customer used. ## Order status after a QR code payment The order gets the **Order Status** your store chose for **QR Code**. The default is **Processing**. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/#choose-the-order-status-after-payment). ## Refunds A refund in the register for a QR code payment only records the refund. Refund the customer through the online payment method they used. See [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). Source: https://docs.jovvie.com/point-of-sale/sell/qr-code/ --- # Send a Stripe invoice to pay later in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Email the customer a payment link from the register so they can pay the order later. Use the **Invoice** payment method when the customer wants to pay later instead of at the counter. The register saves the order and emails the customer a link where they can pay. The order stays **Pending payment** until the customer pays. > **Note: Stripe only** > > Invoices use your connected Stripe account. The **Invoice** payment method only appears after Stripe is connected. It is not available with NMI. See [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). ## Before you start - Stripe is connected and **Invoice** is turned on. See [Set up invoice payment terms](https://docs.jovvie.com/point-of-sale/set-up/invoice-terms/). - The customer has an email address. You add the customer to the order before you send the invoice. - The cart has at least one item. See [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). ## Send the invoice 1. In the cart, tap **Checkout**. 2. If a tip screen or a **Points & Rewards** screen opens, complete it first. See [Accept a tip](https://docs.jovvie.com/point-of-sale/sell/tips/) and [Redeem Points and Rewards](https://docs.jovvie.com/point-of-sale/sell/points-and-rewards/). 3. Under **Select Payment Method**, tap **Invoice**. 4. Next to **Send to**, check the customer and email address. If no customer is shown, tap **Select customer** and choose or add the customer. To use a different customer, tap **Change**. 5. Under **Terms**, check the selected term and the due date next to it. If more than one term is offered, tap the term you want. 6. If you chose a custom due date option, pick the date. It must be within the next year. Otherwise you see **Pick a date within the next year.** 7. Tap the pay button. By default it shows **Pay** and the amount. The register saves the order and queues an email with the payment link for the customer. The screen then shows **Invoice sent to** and the email address, the term and due date, and that the order is pending until the customer pays. Tap **New Order** to start the next sale. **Invoice sent to** does not confirm that the email was delivered. If you see a message starting with **Email failed:**, or the customer does not receive the email, see [Resend an invoice](https://docs.jovvie.com/point-of-sale/sell/resend-an-invoice/). If you tap the pay button with no customer email, you see **Add a customer with an email address to send an invoice.** and the customer list opens. See [Add a customer to a sale](https://docs.jovvie.com/point-of-sale/sell/add-a-customer/). ## After you send the invoice The order stays **Pending payment** until the payment is confirmed. When the invoice becomes due, Jovvie schedules the payment link to be cancelled. The due date alone does not confirm that the link was cancelled or whether the customer paid. Before you send a new link or take the payment another way, confirm that no payment succeeded and none is still processing. - To check whether the customer paid, see [Follow up on an unpaid invoice](https://docs.jovvie.com/point-of-sale/sell/invoice-follow-up/). - To send the payment link again, see [Resend an invoice](https://docs.jovvie.com/point-of-sale/sell/resend-an-invoice/). - If the customer comes back to pay in person, see [Take an invoice payment another way](https://docs.jovvie.com/point-of-sale/sell/invoice-paid-another-way/). ## Refunds You can refund a paid invoice from the register. The money goes back through Stripe. See [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). Source: https://docs.jovvie.com/point-of-sale/sell/invoice/ --- # Follow up on an unpaid Stripe invoice in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Open an invoice from the order and check whether the customer paid. This page shows you how to open an invoice you sent and check whether the customer has paid it. To send an invoice, see [Send an invoice to pay later](https://docs.jovvie.com/point-of-sale/sell/invoice/). > **Note: Stripe only** > > Invoices use your connected Stripe account. They are not available with NMI. See [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). ## Open the invoice 1. Find the order in the register’s order history. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/). 2. Tap the three-dot button at the end of the order’s row. 3. Tap **Invoice Link**. You can also open this window right after you send the invoice. To do that, tap **Invoice Link** on the order screen. **Invoice Link** only appears in the order’s menu while the order has a payment link. If it is not there, see [If Invoice Link is not in the menu](https://docs.jovvie.com/point-of-sale/sell/invoice-follow-up/#if-invoice-link-is-not-in-the-menu). The **Invoice** window shows the status of the invoice, along with its payment term and due date: - If the window shows **Invoice paid**, the invoice is paid. The window then shows the order status instead of the payment link, and there is no **Check status** or **Resend** button. You do not need to do anything else. - While the invoice is unpaid, the window shows **Check status** and **Resend**. - While the invoice is unpaid and the order has a payment link, the window also shows a QR code for the payment link, along with the link itself. To copy the link, tap **Copy**. - If Jovvie expired the link, the window shows **Invoice link expired**. This does not tell you whether the customer paid. Tap **Check status** and check your Stripe Dashboard before you do anything else. ## Check whether the customer paid 1. Open the invoice, as described in [Open the invoice](https://docs.jovvie.com/point-of-sale/sell/invoice-follow-up/#open-the-invoice). 2. Tap **Check status**. You see one of these messages: - A message starting with **Payment received. The order is now**: the customer paid. The order has moved to the status your store chose for invoices. - **This invoice is already paid.**: the invoice was paid earlier. - **Not paid yet. The link is still active.**: the payment is not confirmed yet. The customer may not have paid, or a payment may still be processing. Check your Stripe Dashboard for this order’s payment before you take any other payment. - **The payment link was cancelled.**: the payment service reports the payment link as cancelled. - **Paid for a different amount. The order was placed on hold for review.**: the customer paid, but not the order total. Do not resend the invoice or take another payment. See [Invoice paid but order is on hold](https://docs.jovvie.com/point-of-sale/troubleshooting/invoice-on-hold/). - **Could not verify the payment right now.**: try again in a moment. Until a check succeeds, treat the payment as unknown. Your store can also update orders automatically when the customer pays. See [Set up invoice payment terms](https://docs.jovvie.com/point-of-sale/set-up/invoice-terms/#update-order-status-automatically-when-an-invoice-is-paid). ## If Invoice Link is not in the menu Sometimes the register removes the payment link from the order, for example after the link expires, after the order is paid another way, or after the order is cancelled. A missing **Invoice Link** does not tell you whether the customer paid, and you cannot use **Check status**. 1. Check the order’s status in the order history. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/). 2. Check your Stripe Dashboard for this order’s payment. Look for a payment that succeeded or is still processing. 3. If you are not sure whether the customer paid, contact [Jovvie support](https://jovvie.com/support/) before you send a new link or take another payment. ## If you cancel an unpaid invoice order See [Cancel an unpaid invoice order](https://docs.jovvie.com/point-of-sale/orders/change-status/#cancel-an-unpaid-invoice-order). ## Related pages - [Resend an invoice](https://docs.jovvie.com/point-of-sale/sell/resend-an-invoice/) - [Take an invoice payment another way](https://docs.jovvie.com/point-of-sale/sell/invoice-paid-another-way/) Source: https://docs.jovvie.com/point-of-sale/sell/invoice-follow-up/ --- # Resend a Stripe invoice in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Email the invoice payment link to the customer again from the register. Use **Resend** to email the invoice payment link to the customer again, for example when they did not get the email or lost it. To send an invoice for the first time, see [Send an invoice to pay later](https://docs.jovvie.com/point-of-sale/sell/invoice/). > **Note: Stripe only** > > Invoices use your connected Stripe account. They are not available with NMI. See [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). > **Caution** > > If the order is **On hold** because the customer paid a different amount, do not tap **Resend**. See [Invoice paid but order is on hold](https://docs.jovvie.com/point-of-sale/troubleshooting/invoice-on-hold/). ## Before you start - **Invoice Link** appears in the order’s menu. If it does not, you cannot resend the invoice from the register. Check whether the customer paid, as described in [If Invoice Link is not in the menu](https://docs.jovvie.com/point-of-sale/sell/invoice-follow-up/#if-invoice-link-is-not-in-the-menu), then contact [Jovvie support](https://jovvie.com/support/). - The customer has not already paid. See [Follow up on an unpaid invoice](https://docs.jovvie.com/point-of-sale/sell/invoice-follow-up/). ## Resend the invoice 1. Find the order in the register’s order history. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/). 2. Tap the three-dot button at the end of the order’s row. 3. Tap **Invoice Link**. 4. Tap **Check status**. Continue only if you see **Not paid yet. The link is still active.** 5. Tap **Resend**. **Resend** emails the customer the same payment link again. When the email is sent, you see **Invoice sent to** and the email address. If it fails, you see **The invoice email could not be sent.** or another error message, and the window may show a message starting with **Email failed:**. Check the customer’s email address and try again. ## If the window shows Invoice link expired If the window shows **Invoice link expired**, **Resend** issues a new link with a new due date. The old link expiring does not tell you whether the customer paid. 1. Tap **Check status**. Continue only if you see **Not paid yet. The link is still active.** or **The payment link was cancelled.** 2. Check your Stripe Dashboard for this order’s payment. Confirm that no payment succeeded and none is still processing. If you are not sure, stop and contact [Jovvie support](https://jovvie.com/support/). 3. Tap **Resend**. ## Related pages - [Follow up on an unpaid invoice](https://docs.jovvie.com/point-of-sale/sell/invoice-follow-up/) - [Take an invoice payment another way](https://docs.jovvie.com/point-of-sale/sell/invoice-paid-another-way/) Source: https://docs.jovvie.com/point-of-sale/sell/resend-an-invoice/ --- # Take a Stripe invoice payment another way in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Check an invoice's payment status before taking payment in person, then check that its payment link was cancelled. Sometimes a customer you sent an invoice to comes back and wants to pay in person. This page shows you how to load the order into the cart and take the payment with another method, without charging the customer twice. First make sure the invoice was not already paid. > **Note: Stripe only** > > Invoices use your connected Stripe account. They are not available with NMI. See [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). > **Caution** > > If the order is **On hold** because the customer paid a different amount, do not take another payment. See [Invoice paid but order is on hold](https://docs.jovvie.com/point-of-sale/troubleshooting/invoice-on-hold/). ## Before you start - The order status is **Pending payment**. - If **Invoice Link** appears in the order’s menu, open it and tap **Check status**. Continue only if you see **Not paid yet. The link is still active.** or **The payment link was cancelled.** See [Follow up on an unpaid invoice](https://docs.jovvie.com/point-of-sale/sell/invoice-follow-up/). - If **Invoice Link** does not appear in the order’s menu, see [If Invoice Link is not in the menu](https://docs.jovvie.com/point-of-sale/sell/invoice-follow-up/#if-invoice-link-is-not-in-the-menu). ## Take the payment 1. Check your Stripe Dashboard for this order’s payment. Confirm that no payment succeeded and none is still processing. If you are not sure, stop and contact [Jovvie support](https://jovvie.com/support/). 2. Ask the customer not to use the payment link. 3. In the order’s menu, tap **Edit Order** to load the order into the cart. See [Save an order and finish it later](https://docs.jovvie.com/point-of-sale/orders/save-and-resume/). 4. Tap **Checkout**. 5. Take the payment with another method. ## Check that the payment link was cancelled After the order is paid another way and moves to **Processing** or **Completed**, the register tries to cancel the invoice payment link. If the order moves to any other status, the register does not try. 1. Open the order’s details. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/#see-the-details-of-an-order). 2. Check **Internal Notes**. - A note ending with **the invoice payment link was cancelled.** means the link was cancelled. - If that note is not there, or you see a note starting with **Could not cancel the invoice payment link**, the old link may still work. Contact [Jovvie support](https://jovvie.com/support/) before you ask the customer for any other payment. ## Related pages - [Follow up on an unpaid invoice](https://docs.jovvie.com/point-of-sale/sell/invoice-follow-up/) - [Resend an invoice](https://docs.jovvie.com/point-of-sale/sell/resend-an-invoice/) Source: https://docs.jovvie.com/point-of-sale/sell/invoice-paid-another-way/ --- # Record other payment types in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Record a payment the customer made outside the register, such as a check, bank transfer, or a separate card machine. Some payment methods in the register do not take any money. They only record how the customer paid on the order. Use them when the payment happens outside Point of Sale, for example a paper check or a card machine that is not connected to Jovvie. These methods work the same whether your store uses Stripe or NMI for cards. ## Which methods only record a payment | Payment method | Use it for | Field you can fill in | | -------------------- | --------------------------------------------------- | ------------------------------------------- | | **Check Payments** | A paper check | **Check ID or Note** | | **Bank Transfer** | A bank transfer | **Bank Transfer Transaction ID or Note** | | **Cash on Delivery** | An order the customer pays for when it is delivered | **Cash on Delivery Transaction ID or Note** | | **Chip and Pin** | A card machine that is not connected to Jovvie | **Chip and Pin Transaction ID or Note** | | **Other Payments** | Any other way of paying | **Payment ID, Confirmation ID or Note** | Your store may have renamed these methods. **Check Payments** and **Other Payments** are turned on by default. **Bank Transfer**, **Cash on Delivery**, and **Chip and Pin** are off until an administrator turns them on. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/). > **Caution** > > The register does not check that the customer paid. When you tap the pay button, the order is recorded as paid with this method. Make sure you have received the payment first. For a separate card machine, wait until it shows that the payment was approved. ## Record the payment 1. In the cart, tap **Checkout**. 2. If a tip screen or a **Points & Rewards** screen opens, complete it first. A tip or a points discount changes the total. See [Accept a tip](https://docs.jovvie.com/point-of-sale/sell/tips/) and [Redeem Points and Rewards](https://docs.jovvie.com/point-of-sale/sell/points-and-rewards/). 3. Under **Select Payment Method**, tap the payment method. The **Order ID** field shows the order number. 4. Collect the final total shown on the pay button from the customer outside the register, or confirm that you have received it. For a separate card machine, wait until it shows that the payment was approved. 5. Optional: in the note field, enter a reference, such as the check number or the transaction ID from the card machine. The note is saved on the order. 6. Tap the pay button. By default it shows **Pay** and the amount. The register shows the order with its new status. Tap **New Order** to start the next sale. To record part of an order with one of these methods and the rest another way, use a split payment. See [Split a payment](https://docs.jovvie.com/point-of-sale/sell/split-payment/). ## Order status after recording a payment By default, orders recorded with these methods are marked **Processing**. Your store can choose a different status for each method. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/#choose-the-order-status-after-payment). If the order shows **Processing**, tap **Complete** when you have handed over the items. See [Change an order’s status](https://docs.jovvie.com/point-of-sale/orders/change-status/). ## Refunds A refund in the register for these methods only records the refund. Return the money to the customer yourself, the same way they paid. See [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). Source: https://docs.jovvie.com/point-of-sale/sell/other-payment-types/ --- # Redeem WooCommerce Points and Rewards in Jovvie Point of Sale Section: Jovvie Point of Sale > Take payments > Show a customer the points they earn on an order and let them redeem their points for a discount at checkout. This page is for stores that use the WooCommerce Points and Rewards extension. If your store uses it, the register can show a **Points & Rewards** screen at checkout. This page shows you how to use it to see how many points the customer earns on the order and let them use their points for a discount. Points and Rewards work the same whether your store uses Stripe or NMI for cards. ## Before you start - The WooCommerce Points and Rewards extension is installed and active on your store. Points values and limits come from its settings. - On the station’s **Cart** tab, **Enable Points and Rewards on Checkout** is selected. An administrator or shop manager sets this in **POS** > **Stations** > **Edit Station**. - The order has a customer. See [Add a customer to a sale](https://docs.jovvie.com/point-of-sale/sell/add-a-customer/). For orders without a customer, the screen only appears if the station’s **Point and Rewards behavior for guest customer** is set to **Offer to select customer**. - The cart has at least one item. See [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). If tips are on for the station, the **Points & Rewards** screen opens before the tip screen. If **Display Points and Rewards after Tips** is selected on the station’s **Cart** tab, it opens after the tip screen. ## Redeem points 1. In the cart, tap **Checkout**. The **Points & Rewards** screen opens with the customer’s name. **Points Earned** shows the points the customer earns on this order. **Current Points** and **Value of Points** show the customer’s balance. 2. Tap **Redeem Points**. The button shows how many points will be used. The register applies the discount to the order and shows **Points was successfully redeemed.** Checkout continues with the lower total. If the tip screen comes next, complete it. 3. Take the payment as usual. For example, see [Take a cash payment](https://docs.jovvie.com/point-of-sale/sell/cash/) or [Take a Stripe card reader payment in Jovvie Point of Sale](https://docs.jovvie.com/point-of-sale/sell/card-payment-stripe/). The points are taken from the customer’s balance when you tap **Redeem Points**. The discount is added to the order as a coupon. ## Continue without redeeming On the **Points & Rewards** screen, tap **Do not Redeem**. Checkout continues with the full total. The customer still earns the points shown under **Points Earned**, based on your Points and Rewards settings. You might see one of these instead of **Redeem Points**: - A message starting with **Get** and ending with **more points to redeem them**: the customer does not have enough points yet. Tap **Continue**. - **Maximum allowed points per order has already been redeemed**: no more points can be used on this order. Tap **Continue**. ## If the order has no customer If the order has no customer, the screen shows **Add Customer to the Order** and **Skip**. 1. Tap **Add Customer to the Order**. 2. Choose or add the customer. The register goes back to the cart. 3. Tap **Checkout** again. To continue without a customer, tap **Skip**. No points are earned or redeemed. ## Undo a redemption If you leave checkout after redeeming and then tap **Checkout** again, the register removes the earlier discount and gives the points back to the customer. The **Points & Rewards** screen opens again, and you can choose again. ## If the points cannot be redeemed If something goes wrong, the register shows a message, such as **Error: Insufficient points.**, and checkout continues without the discount. Check the total before you take payment. To try again, tap **Cancel checkout**, then tap **Checkout** again. Source: https://docs.jovvie.com/point-of-sale/sell/points-and-rewards/ --- # Find and view orders in Jovvie Point of Sale Section: Jovvie Point of Sale > Manage orders > Open the Orders panel in the register, filter by status, search, and see the details of an order. The Orders panel in the Jovvie Point of Sale register lists the orders in your store, so staff can look up a sale, check its status, or pick up an order they saved earlier. The list is not limited to sales taken at the register you are using. It can include online orders too. ## Before you start - You need a Point of Sale user with permission to view orders. If you do not see **Orders** in the register, ask an administrator or shop manager to check your permissions. - The **Orders** button can also be hidden for a station. See [Show or hide register buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/). ## Open the Orders panel 1. Open the register. See [Open the register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). 2. Click **Orders** at the top of the cart. The cart is replaced by the list of orders. If new orders are waiting, a number appears next to **Orders**. See [Show a badge for new orders](https://docs.jovvie.com/point-of-sale/set-up/order-notifications/). 3. To go back to the cart, click **Orders** again, or click **Close** at the bottom of the panel. ## Read the list Each row shows the order number, the date, the customer, the status, and the total. The columns are **Orders**, **Date**, **Customer**, **Status**, and **Total**. - For orders from today, the date column shows the time. For earlier orders it shows **Yesterday** or the date. - Orders with the **Pending payment** status also show how long ago they were saved, for example “Saved 5 min ago”. - Click a status badge to show its full name. - Scroll down to load more orders. ## Filter by status Tabs above the list filter orders by status. The number on a tab is how many orders have that status. 1. Click a tab, such as **Pending payment**, **Processing**, **Completed**, or **Cancelled**, to see only those orders. 2. To see other statuses, click **More** and choose one. 3. Click the active tab again, or click **All**, to see every order. If no orders match, the panel shows **No orders found with this status**. If there are no orders at all, it shows **No orders found in the system**. An administrator or shop manager can choose which statuses appear as tabs, and in what order, with **Order Status Filter Tabs** on the **Cart** tab of the station. Statuses that are not chosen stay under **More**. ## Search for an order If your user has permission to search orders, a search box replaces the customer button at the top of the panel. 1. Click **Orders** to open the panel. 2. In **Search orders**, type what you are looking for. 3. Click **Search**. 4. To clear the search, click the clear icon in the box. ## See the details of an order 1. Find the order in the list. 2. Click the three-dot button at the end of the row. 3. Click **Order Details**. The details window shows: - The status, customer, payment method, and date. - **Billing Address** and **Shipping Address**, when the order has them. - **Line Items**, with the quantity of each item and how many were refunded. - **Order Totals**, including **Subtotal**, **Discount**, **Shipping**, **Tip**, **Tax**, **Total**, and, if the order was refunded, **Refunded** and **Net Total**. - **Order Notes**, split into **Customer Note** and **Internal Notes**. - **POS Information**, with the **Station** and **Cashier** that took the order. - **Custom Fields**. Click **Show other meta** to see more. At the bottom of the window you may also see: - **View Order Source**: opens the order in your dashboard. See [See Point of Sale orders in your dashboard](https://docs.jovvie.com/point-of-sale/orders/in-your-dashboard/). - **Refund**: starts a refund. See [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). - **Edit Order in Station**: loads the order back into the cart. See [Save an order and finish it later](https://docs.jovvie.com/point-of-sale/orders/save-and-resume/). To change the status from this window, click the status badge and pick a new status. See [Change an order’s status](https://docs.jovvie.com/point-of-sale/orders/change-status/). ## Other actions in the row menu The three-dot menu on each row also has these actions: - **Edit Order**: loads the order into the cart. It only appears for orders that can still be edited. - **Change Status**: see [Change an order’s status](https://docs.jovvie.com/point-of-sale/orders/change-status/). - **Invoice Link**: only for orders that were sent as an invoice. See [Follow up on an unpaid invoice](https://docs.jovvie.com/point-of-sale/sell/invoice-follow-up/). - **Order Source**: opens the order in your dashboard. If you have access to your dashboard orders, **View Admin** at the bottom of the panel opens the orders list there. Source: https://docs.jovvie.com/point-of-sale/orders/find-orders/ --- # Save a Jovvie Point of Sale order and finish it later Section: Jovvie Point of Sale > Manage orders > Save a sale without taking payment, then load it back into the cart to finish it. In the Jovvie Point of Sale register, you can save the items in the cart as an order without taking payment. You or other staff can then come back to the order later, edit it, and check out. A saved order has not been paid. Saving it does not charge the customer. ## Before you start - Add the products to the cart. See [Find and add products](https://docs.jovvie.com/point-of-sale/sell/add-products/). - Add a customer if you want the saved order to show who it is for. See [Add a customer to a sale](https://docs.jovvie.com/point-of-sale/sell/add-a-customer/). ## Save the order 1. In the cart, click the three-dot button at the bottom left. 2. Click **Save Order**. A message confirms that the order was saved. It starts with the name of the button you clicked. The order is saved with the **Pending payment** status. It appears in the Orders panel, where it shows how long ago it was saved. An administrator or shop manager can rename this button, add more buttons, and choose the status each one sets. For example, a second button can save an order as **On hold**. See [Set up order workflow buttons](https://docs.jovvie.com/point-of-sale/set-up/workflow-buttons/). If your station has more than one button, they are listed together in the same menu. ## What happens to the cart after you save Each station is set to do one of these after a save: - **Keep order in cart**: the saved order stays in the cart so you can keep working on it. - **Clear cart and start new order**: the cart empties and a new order begins. - **Ask each time**: a window titled **Order workflow** asks what to do. Click **Keep in cart** to stay on the order, or **Clear Cart** to start a new one. Clearing the cart on screen does not delete the saved order. It is still in the Orders panel. An administrator or shop manager can change this with **After an order is saved** on the **Cart** tab of the station. ## Finish a saved order 1. Click **Orders** at the top of the cart. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/). 2. Find the order. Use the **Pending payment** tab, or search. 3. Click the three-dot button at the end of the row. 4. Click **Edit Order**. The order loads into the cart. 5. Change the items, customer, or other details if needed. 6. Click **Checkout** and take payment as usual. See [Take a card payment with a Stripe reader](https://docs.jovvie.com/point-of-sale/sell/card-payment-stripe/), [Take a card payment with an NMI terminal](https://docs.jovvie.com/point-of-sale/sell/card-payment-nmi/), or [Take a cash payment](https://docs.jovvie.com/point-of-sale/sell/cash/). You can also open the order’s details and click **Edit Order in Station**. ## When you do not see Edit Order **Edit Order** only appears for orders that can still be changed: - Orders with the **Pending payment** or **Failed** status. - Orders taken at the register that have a custom status you added to your store. Orders with other statuses, such as **Processing** or **Completed**, cannot be edited here. To correct a paid order, see [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). > **Caution** > > If a card payment on an order was interrupted or you are not sure it went through, do not take the payment again yet. Open the order, check its status and notes, and check your Stripe Dashboard or the NMI terminal. Make sure no payment went through and none is still processing before you retry or use another method. If you are not sure, contact [Jovvie support](https://jovvie.com/support/). ## Cancel a saved order If the customer does not want the order, set it to **Cancelled** instead of leaving it as **Pending payment**. See [Change an order’s status](https://docs.jovvie.com/point-of-sale/orders/change-status/). Source: https://docs.jovvie.com/point-of-sale/orders/save-and-resume/ --- # Change an order's status in Jovvie Point of Sale Section: Jovvie Point of Sale > Manage orders > Move an order to a new status from the Orders panel, and mark a processing order Complete. In the Jovvie Point of Sale register, use **Change Status** to move an order to another status, for example from **Pending payment** to **Cancelled**. > **Caution** > > Changing a status does not take a payment, and it does not refund one. Setting an order to **Completed** does not charge the customer. Setting it to **Refunded** does not send money back. To refund a customer, see [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). ## Before you start - You need a Point of Sale user who is allowed to edit orders. - Statuses come from your store. A standard store has **Pending payment**, **Processing**, **On hold**, **Completed**, **Cancelled**, **Refunded**, and **Failed**. Statuses you add to your store also appear. ## Change the status from the Orders panel 1. Click **Orders** at the top of the cart. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/). 2. Find the order. 3. Click the three-dot button at the end of the row. 4. Click **Change Status**. 5. Click the new status. The current status is marked with a check. A message confirms that the order was updated to the new status. The list and the numbers on the status tabs update. ## Change the status from the order details 1. Open the order’s details. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/#see-the-details-of-an-order). 2. Click the status badge, next to **Status**. 3. Click the new status. ## Mark a processing order Complete After a checkout, the register shows the order’s status. If the status is **Processing**, a **Complete** button appears with the other order buttons. 1. Click **Complete**. The order is set to **Completed** and a message says **Order completed**. Use this when you have handed over the items. It does not take a payment. If a station does not show **Complete**, an administrator or shop manager may have hidden it. See [Show or hide register buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/). ## Cancel an unpaid invoice order If the order was sent as an invoice, do these checks before and after you cancel it. 1. Check whether the customer paid. See [Follow up on an unpaid invoice](https://docs.jovvie.com/point-of-sale/sell/invoice-follow-up/). 2. Check your Stripe Dashboard. Confirm that no payment succeeded and none is still processing. 3. Set the order to **Cancelled**. See [Change the status from the Orders panel](https://docs.jovvie.com/point-of-sale/orders/change-status/#change-the-status-from-the-orders-panel). 4. Open the order’s details. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/#see-the-details-of-an-order). 5. Under **Internal Notes**, look for the note **Invoice payment link abandoned at the payment service.** This note means the payment link was cancelled. If that note is not there, or you see a note starting with **Could not abandon the invoice payment link**, the old link may still work. Contact [Jovvie support](https://jovvie.com/support/). ## If the status does not change If the order is for a card payment and you are not sure whether the customer was charged, do not change the status or retry the sale yet. Make sure no payment went through and none is still processing, then contact [Jovvie support](https://jovvie.com/support/) if you are unsure. ### **“Failed to change order status”** **Symptom:** You choose a new status, and this message appears instead of a confirmation. **Cause:** The change did not save, often because of a connection problem. **Fix:** 1. Check your connection. 2. Try the status change again. 3. If it keeps failing, see [Loading and sync problems](https://docs.jovvie.com/point-of-sale/troubleshooting/sync/). ### **“This order is currently being edited by another user.”** **Symptom:** You choose a new status and see this message. **Cause:** Someone has the order open in your dashboard or another register. **Fix:** Wait until they finish, then try again. ### **“You do not have permission to change this order’s status.”** **Symptom:** You choose a new status and see this message. **Cause:** Your user is not allowed to change this order’s status. **Fix:** Ask an administrator or shop manager to change the status for you or to update your permissions. Source: https://docs.jovvie.com/point-of-sale/orders/change-status/ --- # Email a receipt in Jovvie Point of Sale Section: Jovvie Point of Sale > Manage orders > Send a customer an emailed receipt for an order from the register. You can email a customer a receipt for an order right from the Jovvie Point of Sale register. You can send it to any email address, and you can also save that address as the customer’s billing email. ## Before you start - Your store must be able to send email. Receipts are sent as an email named **Order Receipt**. An administrator or shop manager manages its wording in your store’s email settings. - The **Email** button must be shown on your station. An administrator or shop manager can hide it. See [Show or hide register buttons](https://docs.jovvie.com/point-of-sale/set-up/register-buttons/). - Email is available for an order that is finished, which means it is no longer being edited in the cart. For example, an order you just paid for. ## Send the receipt 1. Complete the sale. See [Take a card payment with a Stripe reader](https://docs.jovvie.com/point-of-sale/sell/card-payment-stripe/), [Take a card payment with an NMI terminal](https://docs.jovvie.com/point-of-sale/sell/card-payment-nmi/), or [Take a cash payment](https://docs.jovvie.com/point-of-sale/sell/cash/). 2. On the order screen that appears, click **Email**. The **Email Receipt** window opens. 3. In **Send receipt to**, enter the customer’s email address. 4. To keep this address on the order as the billing email, turn on **Save as billing email address**. 5. Click **Send** to send the receipt and keep the window open. To send it and close the window in one go, click **Send & Close** instead. You see **Email sending…** while the message is sent, then **Message sent** when it is done. To close the window without sending, click **Close**. ## If the receipt does not send ### **“Check your email and try again”** **Symptom:** After you click **Send** or **Send & Close**, you see this message instead of **Message sent**. **Cause:** The email address has a typo, or your store could not send the email. **Fix:** 1. Check the address for typos. 2. Click **Send** again. 3. If it still fails, ask an administrator or shop manager to check that your store can send email. ## Email a receipt for an older order The Orders panel does not have an **Email** button. To email a receipt for an order from earlier, open that order in the register first. An administrator or shop manager can do this from your dashboard. See [See Point of Sale orders in your dashboard](https://docs.jovvie.com/point-of-sale/orders/in-your-dashboard/). Source: https://docs.jovvie.com/point-of-sale/orders/email-a-receipt/ --- # Refund an order in the Jovvie Point of Sale register Section: Jovvie Point of Sale > Manage orders > Refund all or part of an order from the register, and learn which payment methods send the money back and which only record the refund. You can refund a whole order, or only some items, right from the Jovvie Point of Sale register. Whether the money goes back to the customer automatically depends on how the order was paid, so this page starts with a table showing which refunds send money back. ## Which refunds send money back | How the order was paid | What a refund in the register does | | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Stripe card payment (**Swipe/Insert/Tap** with a Stripe reader, or **Enter Card**) | Refunds the money to the customer’s card through Stripe. | | **Invoice** | Refunds the money to the payment method the customer used to pay the invoice, through Stripe. | | NMI terminal payment | Records the refund only. No money is returned. | | **Split Payment** | Records the refund only, even if part of the payment was by card. No money is returned. | | Cash, gift cards, and QR code | Records the refund only. No money is returned. | | Other store payment methods, including online orders | Depends on the payment gateway. Check whether the refund screen offers **Refund via** followed by the payment method name. See [Check how the refund is made](https://docs.jovvie.com/point-of-sale/orders/refund/#check-how-the-refund-is-made). | When a refund is record only, check the order notes and any refund made outside the register before returning money yourself. Confirm that the amount you intend to return has not already been refunded and no refund for that amount is still processing. If you are unsure, contact [Jovvie support](https://jovvie.com/support/). Return any amount still owed to the customer yourself: - **Cash and other in-person methods:** give the money back the way your business normally does. - **Stripe card part of a split payment:** refund it in your Stripe Dashboard. - **NMI terminal payments:** refund the transaction outside Point of Sale. If you are not sure how, contact [Jovvie support](https://jovvie.com/support/). The payment method names in the register may be different if your store renamed them. ## Before you start - Refunds must be turned on for the station. See [Set up refund rules](https://docs.jovvie.com/point-of-sale/set-up/refund-rules/). - Your user role must be allowed to refund orders. Administrators and shop managers can by default. An administrator can allow other roles in **POS** > **Settings** > **Users**, under **Configure User Role Access Permissions**. - The order must have a status that can be refunded. Orders that are **Pending payment**, **Cancelled**, **Failed**, or already **Refunded** cannot be refunded. - If your station asks for a refund passcode, have the passcode ready. The register can ask for it when you open the refund screen, when you submit the refund, or both, depending on the amount and type of refund. ## Open the refund screen 1. In the register, click **Orders** at the top of the cart. 2. Find the order. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/). 3. Click the three-dot button at the end of the order’s row. 4. Click **Order Details**. 5. Click **Refund**. 6. If you see **Enter Refund Passcode**, enter the passcode. If you do not see it, skip the next step. 7. Click **Verify**. The refund screen opens. At the top, **Order Total**, **Already Refunded**, and **Available to Refund** show how much of the order you can still refund. If you do not see **Refund**, the order cannot be refunded, refunds are off for this station, or your user is not allowed to refund. If the screen shows **This order has already been fully refunded.**, there is nothing left to refund. ## Refund the whole order 1. Click **Full Refund**. This is selected when the screen opens. **Refund the entire order** shows the amount. It includes every item, fee, and shipping charge that has not been refunded yet. 2. If you see **Restock refunded items**, select it to put the items back in stock, or clear it to leave stock as it is. 3. Add a reason, as described in [Add a reason](https://docs.jovvie.com/point-of-sale/orders/refund/#add-a-reason). 4. Check how the refund will be made, as described in [Check how the refund is made](https://docs.jovvie.com/point-of-sale/orders/refund/#check-how-the-refund-is-made). 5. Check the amount in **Refund Total**. 6. Click **Process Refund** or **Record Refund**. 7. If you see **Enter Refund Passcode**, enter the passcode. If you do not see it, skip the next step. 8. Click **Verify**. ## Refund some items or part of an amount 1. Click **Partial**. **Items to Refund** lists each item, fee, and shipping charge that can still be refunded. Each item shows how many can be refunded and the amount left to refund. 2. For each item you want to refund, click **+** to choose how many. The amount fills in for that quantity. 3. To refund less than the full amount for an item, click its amount. 4. In **Refund Amount**, enter the amount, or click one of the percentage buttons. 5. Confirm the amount on the keypad. 6. To refund a fee or shipping charge, click its amount and enter the amount to refund. 7. If you see **Restock** next to an item, or **Restock refunded items** below the list, choose whether to put the items back in stock. 8. Add a reason, as described in [Add a reason](https://docs.jovvie.com/point-of-sale/orders/refund/#add-a-reason). 9. Check how the refund will be made, as described in [Check how the refund is made](https://docs.jovvie.com/point-of-sale/orders/refund/#check-how-the-refund-is-made). 10. Check the amount in **Refund Total**. 11. Click **Process Refund** or **Record Refund**. 12. If you see **Enter Refund Passcode**, enter the passcode. If you do not see it, skip the next step. 13. Click **Verify**. To start over, click **Clear All**. You cannot refund more than the amount left on an item. If the total is too high, you see **Refund amount exceeds maximum available**. ## Add a reason A reason is optional. It is saved on the refund and in the order notes. 1. Under **Refund Reason**, click one of the reason buttons, if your station has them. 2. Or type a reason in the box. ## Check how the refund is made The refund screen tells you whether money will go back to the customer. If the payment gateway supports automatic refunds, you see a checkbox called **Refund via** followed by the payment method name. It is selected when the screen opens. This is the case for Stripe card and Invoice payments, and it can also be the case for other payment methods in your store, including online orders. - Leave it selected to refund through the payment gateway. The button reads **Process Refund**. - Clear it only if you already returned the money another way. The screen shows **Manual refund will only record the refund. You will need to refund the payment separately.** and the button reads **Record Refund**. If the payment gateway does not support automatic refunds, the screen says this will be a manual refund. The button reads **Record Refund**. Before returning money yourself, confirm that the amount has not already been refunded and no refund for that amount is still processing. Then return the money to the customer yourself. See [Which refunds send money back](https://docs.jovvie.com/point-of-sale/orders/refund/#which-refunds-send-money-back). ## After the refund When the refund is done, you see a message starting with **Refund of** and the amount, and the refund screen and order details close. The refund is added to the order notes with the amount, the reason, who processed it, and the station. For Stripe card and Invoice refunds, the card refund appears in your Stripe Dashboard. It may show as pending there for a while. A pending refund is still processing, so do not refund the order again. Stripe controls how long it takes to reach the customer’s account. ## If the refund does not go through If something goes wrong, the register shows an error message and the refund screen stays open. > **Caution: Do not refund twice** > > Before you try again or return the money another way, check the order notes and your payment provider’s dashboard (for Stripe payments, your Stripe Dashboard). Make sure no refund went through and none is still processing (pending). If you are not sure whether the customer was refunded, contact [Jovvie support](https://jovvie.com/support/) before you try again. ### An error message appears after you click **Process Refund** or **Record Refund** **Symptom:** The refund screen stays open and shows an error message. **Cause:** The refund was not confirmed. It may have failed, or it may have gone through without the register showing it. **Fix:** 1. Close the refund screen. 2. Check the order notes for a refund. 3. For automatic refunds, check the payment in your payment provider’s dashboard for a refund that succeeded or is still processing. 4. If you find a refund that succeeded or is pending, do not try again. 5. If you find no refund, try the refund again. ### **“This invoice has no recorded charge to refund yet.”** **Symptom:** You try to refund an Invoice order and see this message. **Cause:** Point of Sale has no record of the invoice payment. **Fix:** Check the payment in your Stripe Dashboard. If the order is **On hold**, see [Invoice paid but order is on hold](https://docs.jovvie.com/point-of-sale/troubleshooting/invoice-on-hold/). ### **“Another refund is in progress for this order. Try again in a moment.”** **Symptom:** You try to refund an Invoice order and see this message. **Cause:** Another refund for this order started and has not finished. **Fix:** 1. Wait a moment. 2. Check the order notes and your Stripe Dashboard for a refund that succeeded or is still pending. 3. If you find one, do not try again. 4. If you find none, try the refund again. ### A message starting with **“A previous refund attempt”** **Symptom:** You try to refund an Invoice order and see a message starting with **A previous refund attempt**. **Cause:** An earlier refund attempt for this order is unresolved. **Fix:** Do not try again. Check the refund in your Stripe Dashboard and contact [Jovvie support](https://jovvie.com/support/). ## Still need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/orders/refund/ --- # Resolve a Stripe payment amount mismatch in Jovvie Point of Sale Section: Jovvie Point of Sale > Manage orders > What to do when a Stripe reader charged a different amount than the order total and the order was put on hold. Sometimes a Stripe card reader charges an amount that does not match the order total. This can happen, for example, when the cart changed after the payment started. When it does, the customer’s card was charged, but Point of Sale does not complete the order. Instead, it puts the order **On hold** and blocks any new card payment for it, so the customer is not charged twice. To release the order, an administrator or shop manager chooses in your dashboard how the charge was handled. This page is for payments on a Stripe reader. If an NMI terminal payment does not match the order, contact [Jovvie support](https://jovvie.com/support/). ## How you know it happened **Symptom:** - When staff take the payment, the register shows a message starting with **Terminal captured**. It shows the amount the reader charged and the amount the order expects, and says the order was not completed. - The order has the status **On hold**, and the same message is in the order notes. - If staff try to take payment again, they see **A previous charge for this order did not match its total. Resolve it from the order screen before taking another payment.** **Cause:** The Stripe reader charged a different amount than the order total, for example because the cart changed after the payment started. **Fix:** An administrator or shop manager applies one of the order actions on this page, as described in [Choose a resolution](https://docs.jovvie.com/point-of-sale/orders/resolve-amount-mismatch/#choose-a-resolution). > **Caution: Do not charge the customer again** > > Do not take another payment for this order, with any payment method, until it is resolved. The first charge is still on the customer’s card. ## Before you start - You need to be an administrator or shop manager. - Find the payment in your Stripe Dashboard and note the amount that was charged. Compare it with the amounts in the order note. - Talk to the customer, if you can, and decide what to do: keep the charge, or refund it and charge the right amount. ## Choose a resolution Each resolution is an order action in your dashboard. These actions only appear on orders that are on hold because of a mismatch. | What you want to do | Order action to use | | ----------------------------------------------------------------------- | --------------------------------------------------------------- | | Refund the charge and take payment again for the right amount | **Resolve POS mismatch: charge refunded** | | Change the order so it matches what the customer paid, then complete it | **Resolve POS mismatch: order adjusted and completed manually** | | Accept the lower amount the customer paid as payment in full | **Resolve POS mismatch: shortfall accepted** | | Add a note only, without releasing the order | The option starting with **Resolve POS mismatch: other** | If the customer was charged more than the order total, refund the charge and take payment again, as described in [Refund the charge and charge again](https://docs.jovvie.com/point-of-sale/orders/resolve-amount-mismatch/#refund-the-charge-and-charge-again). If the order note shows **?** instead of an amount, Point of Sale could not confirm how much was charged. Contact [Jovvie support](https://jovvie.com/support/) instead of using these steps. ## Apply an order action 1. Open the order in your dashboard. See [See Point of Sale orders in your dashboard](https://docs.jovvie.com/point-of-sale/orders/in-your-dashboard/). 2. In the **Order actions** box, open the list of actions. 3. Select the action you chose. 4. Save the order to apply the action. 5. Check the order notes to confirm the result. When the order is released, the notes show a message starting with **POS amount mismatch resolved**. ## Refund the charge and charge again Use this when the charge should not stand. You must refund the card through Point of Sale first. The **charge refunded** action checks that a card refund is recorded on the order before it releases the order. 1. In the register, refund the order as described in [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). Keep **Refund via** selected so the money goes back to the card. - If the customer was charged more than the order total, use **Full Refund**. Then refund the extra amount in your Stripe Dashboard. - If the customer was charged less than the order total, use **Partial** and refund exactly the amount that was charged. 2. Open the order in your dashboard. 3. In the **Order actions** box, select **Resolve POS mismatch: charge refunded**. 4. Save the order. The order goes back to **Pending payment**. Before taking payment again, check your Stripe Dashboard and the order notes. Confirm that the original charge was fully refunded, no other payment for this order went through, and none is still processing. If you are unsure, contact [Jovvie support](https://jovvie.com/support/). If no card refund covering the charge is recorded on the order, the action is refused. The order stays on hold, and the notes show a message starting with **POS mismatch resolution “charge refunded” refused**. A refund made only in your Stripe Dashboard does not count. A refund that Stripe reported as pending when you made it does not count either, even if it succeeds later. > **Caution: Do not refund again** > > Never repeat the refund to get this action accepted. That could return the money twice. If the action is refused: 1. Check the order notes to confirm the refund in step 1 was made in the register with **Refund via** selected. 2. Check the refund in your Stripe Dashboard. 3. If Stripe reported the refund as pending when you made it, contact [Jovvie support](https://jovvie.com/support/), even if it has since succeeded. Do not refund again. 4. Otherwise, if the refund succeeded, apply **Resolve POS mismatch: charge refunded** again. If the action is still refused, contact [Jovvie support](https://jovvie.com/support/). Do not refund again. ## Keep the charge and complete the order Use one of these when the amount the customer paid should stand. - **Resolve POS mismatch: order adjusted and completed manually**: first edit the order in your dashboard so it matches the amount the customer paid. Then apply this action. - **Resolve POS mismatch: shortfall accepted**: the customer paid less than the order total, and you accept that amount as payment in full. Either action marks the order **Completed** using the original charge. No money moves. ## Add a note without releasing the order The option starting with **Resolve POS mismatch: other** records that someone looked at the order. It does not release it. The order stays **On hold**, and new card payments for it stay blocked. Use one of the other actions when you are ready to release the order. If you are not sure which action fits, contact [Jovvie support](https://jovvie.com/support/) before you take another payment or refund. ## Still need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/orders/resolve-amount-mismatch/ --- # See Point of Sale orders in your dashboard Section: Jovvie Point of Sale > Manage orders > Find orders taken at the register in your orders list and see which station and staff member took them. Every sale you take in the register is a normal order. This page shows you how to find those orders in your dashboard, next to your other orders, and how to see which station and staff member took each one. To follow these steps, you need to be an administrator or shop manager. ## Find POS orders in the orders list **If you use Standalone:** 1. Go to **Manage** > **Orders**. 2. Open an order to see whether it was taken at the register. See [See POS details on an order](https://docs.jovvie.com/point-of-sale/orders/in-your-dashboard/#see-pos-details-on-an-order). **If you use WooCommerce:** 1. In your WordPress admin, go to **WooCommerce** > **Orders**. 2. Look at the **Channel** column. An icon shows where each order came from. Point to the icon to see **POS order** or **Web order**. 3. To show only some orders, click a link above the list: - **Point of Sale** shows orders taken at the register. - **Online** shows orders placed on your website. Each link shows how many orders it holds, for example **Point of Sale** followed by a number in parentheses. 4. To see every order again, click **All**. ## Open an order in the register For orders taken at the register, the list and the order screen have a shortcut back into the register. You only see it if you have access to the station that took the order. - In the orders list, click the receipt icon in the order’s row. - On the order screen, click **Show in POS** in the order actions box. The register opens with that order. From there you can email a receipt. See [Email a receipt](https://docs.jovvie.com/point-of-sale/orders/email-a-receipt/). ## See POS details on an order Open an order that was taken at the register. In the order details, you see extra fields: - **POS Station:** the station that took the order. - **POS user:** the staff member who took it. - **Tax/VAT Number:** the number added at the register, if any. See [Add a Tax/VAT number](https://docs.jovvie.com/point-of-sale/sell/add-tax-vat-number/). - **Tip:** in the order totals, the tip added at the register. See [Accept a tip](https://docs.jovvie.com/point-of-sale/sell/tips/). - **Amount Collected:** in the order totals, the cash amount the customer handed over. See [Take a cash payment](https://docs.jovvie.com/point-of-sale/sell/cash/). **Tip** and **Amount Collected** only appear when the order has them. ## Things to know - Orders made in the register follow the same statuses as other orders. To change one from the register, see [Change an order’s status](https://docs.jovvie.com/point-of-sale/orders/change-status/). - Changing a status in your dashboard does not take or return a card payment. To refund, see [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). - To look up an order inside the register, see [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/). Source: https://docs.jovvie.com/point-of-sale/orders/in-your-dashboard/ --- # Open the till in Jovvie Point of Sale Section: Jovvie Point of Sale > Cash management > Start a cash session at the register by entering the cash you put in the drawer. Open the till at the start of a shift to start a cash session. The till is the cash you keep at the register. The register records the cash you start with, then keeps track of cash sales, cash refunds, and other cash movements against it. See the [glossary](https://docs.jovvie.com/start-here/glossary/#till) for more. Each station (one register in Point of Sale) has its own till. Only one till session can be open at a time for a station, and for each currency if the station accepts more than one. ## Before you start - Cash management is set to **Full Cash Management** for this station. See [Set up cash management](https://docs.jovvie.com/point-of-sale/set-up/cash-management/). - You have permission to manage cash. By default, administrators and shop managers do. If you do not see **Cash Management** in the register menu, ask an administrator. - Count the cash in the drawer. You will enter this amount as the opening float, which is the cash you start the shift with. - If your station asks for a PIN on this action, have the **Cash Management PIN** ready. > **Note** > > **Open Drawer Only** mode has no till. In that mode the menu item is called **Open Drawer**. See [Open the cash drawer](https://docs.jovvie.com/point-of-sale/cash/open-the-drawer/). ## Open the till 1. Sign in to the register. See [Open the register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). 2. Select the three-dot button in the cart to open the cart menu. 3. Select **Cash Management**. If no till is open, the **Open Till** screen appears. Once a till is open, a green dot appears next to **Cash Management** in the menu. The dot turns red when no till is open at the station. If the station accepts more than one currency, the dot stays green while any currency’s till is open. 4. If the station accepts more than one currency, select the currency tab at the top first. Each currency has its own till. 5. In **Opening Float**, enter the amount of cash in the drawer. If you leave it empty, the opening float is 0.00. 6. Optional: in **Note**, enter a note, such as the name of the shift. 7. Select **Open Till**. 8. If the **Enter Cash Management PIN** screen appears, enter the PIN. If it does not appear, skip the next step. 9. Select **Verify**. The register shows **Till opened successfully**, and the **Cash Till** screen appears with a status of **Open**. It shows the **Opening Float** and the **Expected Total**. Right after you open the till, both are the same amount. ## What happens next While the till is open, the register updates the **Expected Total** each time: - A customer pays with cash, or with the cash part of a split payment. The amount added is the cash you keep, which is the cash received minus any change given. - A cash refund is made. The refunded amount is taken off. This also happens when you refund an order that was paid with a split payment that included cash. - You record a paid in, paid out, drop, or adjustment. See [Record paid in, paid out, drops, and adjustments](https://docs.jovvie.com/point-of-sale/cash/record-cash-events/). > **Caution: Refunds of split payments** > > When you refund an order paid with a split payment that included cash, the till takes off the full refund amount, even if part of the money went back to the customer by card or another method. After this kind of refund, check the **Expected Total**. If it is too low, record an **Adjustment** for the amount that did not leave the drawer. See [Record paid in, paid out, drops, and adjustments](https://docs.jovvie.com/point-of-sale/cash/record-cash-events/). Cash sales are only added to the till if it is open when the sale is completed. You can still take cash payments with no till open, but they are not added to any till session. When your shift ends, [close the till](https://docs.jovvie.com/point-of-sale/cash/close-the-till/). ## If you see an error ### **“An open cash session already exists for this station and currency.”** **Symptom:** You select **Open Till** and see this message. **Cause:** A till is already open for this station and currency, possibly from another device. **Fix:** Select **Cash Management** to see the open till. Keep using it, or [close the till](https://docs.jovvie.com/point-of-sale/cash/close-the-till/) or [void the session](https://docs.jovvie.com/point-of-sale/cash/void-a-session/) before you open a new one. ### **“Cash management is not enabled for this station.”** **Symptom:** You try to open a till and see this message. **Cause:** The station is not set to **Full Cash Management**. **Fix:** Ask an administrator to turn on **Full Cash Management** for the station. See [Set up cash management](https://docs.jovvie.com/point-of-sale/set-up/cash-management/). ### **“You do not have permission to manage cash.”** **Symptom:** You try to open a till and see this message. **Cause:** Your user is not allowed to manage cash. **Fix:** Ask an administrator to give your user cash management permission. ### **“Failed to open till.”** **Symptom:** You select **Open Till** and see this message. **Cause:** The register could not open the till. **Fix:** 1. Select **Cash Management** to check whether a till is now open. 2. If no till is open, try to open it again. 3. If it keeps happening, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/cash/open-the-till/ --- # Close the till in Jovvie Point of Sale Section: Jovvie Point of Sale > Cash management > Count the cash in the drawer at the end of a shift and close the till session. Close the till at the end of a shift. You count the cash in the drawer and enter the total. The register then compares your count to the amount it expects and shows you the difference, which is called the variance. ## Before you start - A till is open for this station. See [Open the till](https://docs.jovvie.com/point-of-sale/cash/open-the-till/). - Finish any cash sales and cash refunds first, so the expected amount is complete. - Record any paid in, paid out, or drop that has not been recorded yet. See [Record paid in, paid out, drops, and adjustments](https://docs.jovvie.com/point-of-sale/cash/record-cash-events/). - Count all the cash in the drawer, including the opening float. - If your station asks for a PIN on this action, have the **Cash Management PIN** ready. ## Close the till 1. Select the three-dot button in the cart to open the cart menu. 2. Select **Cash Management**. 3. If the station accepts more than one currency, select the tab for the currency you are closing. 4. Select **Close Till**. 5. Check the **Expected Amount**. This is the opening float plus cash sales and paid in, minus cash refunds, paid out, and drops, plus any adjustments. 6. In **Counted Amount**, enter the total cash you counted. Enter your count before you continue. If you leave this field empty, the register counts it as 0.00 and shows a large shortage. 7. Check the **Variance**. It appears as soon as you enter a count. - A plus sign means you counted more than expected. - A minus sign means you counted less than expected. - 0.00 means your count matches. 8. Optional: in **Closing Note**, explain any variance. 9. Select **Close Till**. 10. If the **Enter Cash Management PIN** screen appears, enter the PIN. If it does not appear, skip the next step. 11. Select **Verify**. The register shows **Till closed successfully**, and then a **Till Closed** screen with the final **Variance**. Select **Done**. If the station accepts more than one currency, the button is **Continue** instead, and you can open or close the other currencies. > **Caution** > > You cannot reopen or edit a till session after you close it. Check your count before you select **Close Till**. You can review closed sessions in [Cash till reports](https://docs.jovvie.com/point-of-sale/cash/reports/). If you opened the till by mistake or want to throw the session away without a count, [void the session](https://docs.jovvie.com/point-of-sale/cash/void-a-session/) instead. ## After you close - The dot next to **Cash Management** in the cart menu turns red. If the station accepts more than one currency, the dot stays green until the tills for all currencies at the station are closed. - Cash sales are no longer added to a till until you open a new one. - The session, its counted amount, and its variance appear in the **Cash Till** report in your analytics. See [Cash till reports](https://docs.jovvie.com/point-of-sale/cash/reports/). ## If you see an error ### **“Cash session is not open.”** **Symptom:** You select **Close Till** and see this message. **Cause:** The till was already closed or voided, possibly from another device. **Fix:** Select **Cash Management** to check the till’s status. If it shows the **Open Till** screen, the session is already closed or voided. Review it in [Cash till reports](https://docs.jovvie.com/point-of-sale/cash/reports/). ### **“Failed to close till.”** **Symptom:** You select **Close Till** and see this message. **Cause:** The register could not close the till. **Fix:** 1. Select **Cash Management** to check whether the till is still open. 2. If the till is still open, try to close it again. 3. If it keeps happening, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/cash/close-the-till/ --- # Record paid in, paid out, drops, and adjustments in Jovvie Point of Sale Section: Jovvie Point of Sale > Cash management > Record cash added to or taken from the drawer during a shift, and review the till's event history. Use these actions when cash moves in or out of the drawer for a reason other than a sale. Each one changes the **Expected Total**, so it still matches your count when you close the till. | Action | Use it when | Effect on the expected total | | -------------- | ----------------------------------------------------------------------- | ---------------------------- | | **Paid In** | You add cash to the drawer, such as extra change from the safe. | Adds the amount. | | **Paid Out** | You take cash from the drawer to pay for something, such as a delivery. | Subtracts the amount. | | **Drop** | You move cash out of the drawer for safekeeping, such as to a safe. | Subtracts the amount. | | **Adjustment** | You need to add a correction to the expected total. | Adds the amount. | ## Before you start - A till is open for this station. See [Open the till](https://docs.jovvie.com/point-of-sale/cash/open-the-till/). - You have permission to manage cash. - If your station asks for a PIN on this action, have the **Cash Management PIN** ready. ## Record a cash event 1. Select the three-dot button in the cart to open the cart menu. 2. Select **Cash Management**. 3. If the station accepts more than one currency, select the currency tab first. 4. Under **Actions**, select **Paid In**, **Paid Out**, **Drop**, or **Adjustment**. 5. In **Amount**, enter the amount as a positive number. The register adds or subtracts it for you based on the action you chose. 6. Optional: in **Note**, enter the reason. 7. Select **Submit**. 8. If the **Enter Cash Management PIN** screen appears, enter the PIN. If it does not appear, skip the next step. 9. Select **Verify**. The register shows a message such as **Paid In recorded successfully** and returns to the **Cash Till** screen. The **Expected Total** updates. > **Tip** > > Add a note to every paid out, drop, and adjustment. The note appears in the event history and in the **Cash Till** report, which helps when you review a variance later. ## Fix a mistake You cannot edit or delete an event after you submit it. If you recorded the wrong amount, record a second event in the opposite direction (for example, a **Paid In** to undo a **Paid Out**) and add a note explaining why. ## See the event history 1. On the **Cash Till** screen, select **Event History**. 2. Scroll the list. The newest event is first. 3. If the list ends with **Load More**, select it to see older events. 4. Select the close button at the top right of the list to go back. Each event shows its type, its amount (with a plus or minus sign), the date and time, and its note. Besides the events described in [Record a cash event](https://docs.jovvie.com/point-of-sale/cash/record-cash-events/#record-a-cash-event), the history includes entries the register adds by itself: - **Opening Float**, when you open the till. - **Cash Payment**, for each cash sale or cash part of a split payment, while the till is open. - **Cash Refund**, for each refund of a cash sale, while the till is open. A refund of an order paid with a split payment that included cash also adds a **Cash Refund**. It uses the full refund amount, even if part of the money went back by card or another method. If so, record an **Adjustment** for the part that did not leave the drawer. If the list is empty, you see **No events found.** ## If you see an error ### **“Failed to add event.”** **Symptom:** You select **Submit** and see this message. **Cause:** The register could not record the event, or it recorded the event but could not refresh the **Cash Till** screen. **Fix:** 1. Close and reopen **Cash Management**. 2. Check the **Expected Total**. 3. Open **Event History** and look for the event you just tried to record. 4. If the event is in the list, do not record it again. 5. If the event is not in the list, record it again. ### **“Failed to load events.”** **Symptom:** You open **Event History** and see this message instead of the list. **Cause:** The register could not load the event history. **Fix:** Close the list and open it again. If it keeps happening, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/cash/record-cash-events/ --- # Void a till session in Jovvie Point of Sale Section: Jovvie Point of Sale > Cash management > Cancel an open till session without counting the cash, for example when you opened it by mistake. Voiding cancels the open till session without a cash count. Use it when you opened a till by mistake or started a session that should not count. For a normal end of shift, [close the till](https://docs.jovvie.com/point-of-sale/cash/close-the-till/) instead. Voiding a session does not undo or refund any sale. Orders paid in cash stay in your store. The session is kept and shows **void** as its status in the **Cash Till** report, with no counted amount or variance. See [Cash till reports](https://docs.jovvie.com/point-of-sale/cash/reports/). ## Before you start - A till is open for this station. - You have permission to manage cash. - If your station asks for a PIN on this action, have the **Cash Management PIN** ready. ## Void the session 1. Select the three-dot button in the cart to open the cart menu. 2. Select **Cash Management**. 3. If the station accepts more than one currency, select the tab for the session you want to void. 4. Select **Void Session**. 5. In the confirmation that asks **Are you sure you want to void this session?**, select **Void Session** again. To keep the session instead, select **Cancel**. 6. If the **Enter Cash Management PIN** screen appears, enter the PIN. If it does not appear, skip the next step. 7. Select **Verify**. The register shows **Session voided successfully** and goes back to the **Open Till** screen. You can open a new till right away. See [Open the till](https://docs.jovvie.com/point-of-sale/cash/open-the-till/). > **Caution** > > You cannot undo a void. The cash you started with, and any paid in or paid out entries, are no longer part of an open session. Count the drawer before you open a new till so the new opening float is correct. ## If you see an error ### **“Cash session is not open.”** **Symptom:** You try to void the session and see this message. **Cause:** The session was already closed or voided, possibly from another device. **Fix:** Select **Cash Management** to check the till’s status. If the **Open Till** screen appears, no session is open, and there is nothing to void. ### **“Failed to void session.”** **Symptom:** You try to void the session and see this message. **Cause:** The register could not void the session. **Fix:** 1. Select **Cash Management** to check whether the session is still open. 2. If it is still open, try to void it again. 3. If it keeps happening, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/cash/void-a-session/ --- # Open the cash drawer in Jovvie Point of Sale Section: Jovvie Point of Sale > Cash management > Open the cash drawer from the register without making a sale. Use **Open Drawer** to open the cash drawer from the register without making a sale, for example to give change for a non-cash sale or to count cash. It does not record a sale, and it does not change the till. ## Before you start - Cash management is turned on for the station, as either **Full Cash Management** or **Open Drawer Only**. - A **Cash Drawer Location** is chosen for the station. This is required even if your register is set up to print locally. See [Set up cash management](https://docs.jovvie.com/point-of-sale/set-up/cash-management/). - Your cash drawer is connected and working with your receipt printer. Use hardware with verified support for your operating system. - You have permission to manage cash. - If your station asks for a PIN for this action, have the **Cash Management PIN** ready. ## Open the drawer The steps depend on the cash management mode of your station. If the cart menu shows **Open Drawer**, your station uses **Open Drawer Only**. If it shows **Cash Management**, your station uses **Full Cash Management**. ### In Open Drawer Only mode 1. Select the three-dot button in the cart to open the cart menu. 2. Select **Open Drawer**. 3. On the screen that appears, select **Open Drawer**. 4. If the **Enter Cash Management PIN** screen appears, enter the PIN. If it does not appear, skip the next step. 5. Select **Verify**. ### In Full Cash Management mode You need an open till to see the **Cash Till** screen. See [Open the till](https://docs.jovvie.com/point-of-sale/cash/open-the-till/). 1. Select the three-dot button in the cart to open the cart menu. 2. Select **Cash Management**. 3. On the **Cash Till** screen, select **Open Drawer**. 4. If the **Enter Cash Management PIN** screen appears, enter the PIN. If it does not appear, skip the next step. 5. Select **Verify**. The register shows **Cash drawer opened**, and the drawer opens. ## If the drawer does not open ### **Open Drawer** is greyed out, or **“No cash drawer location is configured for this station.”** **Symptom:** You cannot select **Open Drawer**, or you see this message when you select it. **Cause:** No **Cash Drawer Location** is chosen for the station. **Fix:** Ask an administrator to choose a **Cash Drawer Location** for the station. See [Set up cash management](https://docs.jovvie.com/point-of-sale/set-up/cash-management/). ### **“Failed to open cash drawer.”** or **“An error occurred while opening the cash drawer.”** **Symptom:** You select **Open Drawer**, the drawer stays closed, and you see one of these messages. **Cause:** The request to open the drawer through its printer did not succeed. Often the printer is off or not connected. **Fix:** 1. Check that the printer the drawer is connected to is on, connected, and working. 2. Try to open the drawer again. ### A message starting with **“Incorrect Passcode.”** **Symptom:** The **Enter Cash Management PIN** screen shows a message starting with **Incorrect Passcode.** and the number of attempts left. **Cause:** The PIN you entered does not match the station’s **Cash Management PIN**. **Fix:** Enter the PIN again. After too many wrong tries, the screen closes with **Maximum attempts reached. Please try again later.** Wait before you try again, or ask a manager for the PIN. ## Still need help? If the drawer still does not open, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/cash/open-the-drawer/ --- # Jovvie Point of Sale cash till reports Section: Jovvie Point of Sale > Cash management > Review till sessions, counted amounts, variances, and cash events in your analytics. The **Cash Till** report in your analytics lists every till session for the dates and stations you choose. It helps you review who opened and closed each till, how much cash was counted, and where the cash did not match. The report shows what the register recorded when you opened and closed tills. It does not replace your Stripe or NMI payment reports. See [POS reports in Analytics](https://docs.jovvie.com/point-of-sale/reports/analytics/) for sales reports. ## Before you start - Tills have been opened and closed at one or more stations. See [Open the till](https://docs.jovvie.com/point-of-sale/cash/open-the-till/) and [Close the till](https://docs.jovvie.com/point-of-sale/cash/close-the-till/). - You are signed in to your dashboard as a user with permission to manage cash, such as an administrator or shop manager. ## Open the report **If you use Standalone:** 1. In your dashboard, go to **Analytics**. 2. Select **Cash Till** from the Analytics menu. 3. Select a date range. 4. Under **Station**, select **All stations**, or choose one station. **If you use WooCommerce:** 1. In your WordPress admin, go to **Analytics**. 2. Select **Cash Till** from the Analytics menu. 3. Select a date range. 4. Under **Station**, select **All stations**, or choose one station. The report includes sessions that were open at any time during the selected date range. ## Summary numbers | Label | What it shows | | ----------------------- | -------------------------------------------------------- | | **Sessions** | Number of sessions in the report. | | **Total opening float** | Opening float added up across sessions. | | **Total expected** | Expected amount added up across sessions. | | **Total counted** | Counted amount added up across sessions. | | **Total variance** | Variance added up across sessions. | | **Average variance** | Total variance divided by the number of closed sessions. | > **Note** > > The summary adds up every session in the list, including open and voided sessions, and does not separate currencies. If your stations use more than one currency, both the totals and the session rows can be misleading, because amounts are shown in your store currency. For an open till, check the amounts on the currency tab in the register’s **Cash Management** window. For closed sessions in another currency, contact [Jovvie support](https://jovvie.com/support/). ## Cash Till Sessions table Each row is one till session. The columns are: - **Session ID** - **Station** - **Opened By** - **Closed By** - **Status**: open, closed, or void. - **Opening Amount** - **Expected Amount** - **Counted Amount**: shown for closed sessions only. - **Variance**: shown for closed sessions only. A negative number means less cash than expected. - **Opened At** - **Closed At** You can sort by **Session ID**, **Opening Amount**, **Expected Amount**, **Counted Amount**, **Variance**, **Opened At**, and **Closed At**. ## Event History table The **Event History** table lists the cash events for the sessions in the [Cash Till Sessions table](https://docs.jovvie.com/point-of-sale/cash/reports/#cash-till-sessions-table). The columns are **Event ID**, **Session**, **Type**, **User**, **Amount**, **Note**, and **Date**. **Type** is one of **Opening Float**, **Cash Payment**, **Cash Refund**, **Paid In**, **Paid Out**, **Drop**, **Adjustment**, or **Close Count**. Use this table to find the entry behind a variance, such as a paid out with no note. This table may not show every event for a session. Older events can be left out, so an event that is missing here may still have been recorded. For an open till, check the full list in the register’s **Event History**. For closed sessions, contact [Jovvie support](https://jovvie.com/support/). ## Find out why a till did not match 1. Find the session in the **Cash Till Sessions** table and note its **Session ID**. 2. In **Event History**, look at the events for that **Session**. 3. Check for a missing or doubled **Paid In**, **Paid Out**, or **Drop**, and read the notes. 4. Check the cash orders for that shift. See [See Point of Sale orders in your dashboard](https://docs.jovvie.com/point-of-sale/orders/in-your-dashboard/). Cash sales and refunds only appear in a till session if the till was open when they were completed. If the report does not load, reload the page. If it still does not load, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/cash/reports/ --- # Jovvie Point of Sale reports in Analytics Section: Jovvie Point of Sale > Reports > See your Point of Sale sales by payment type, user, and station in Analytics. Jovvie Point of Sale adds its own reports to Analytics. The **Payments**, **Users**, and **Stations** reports, covered on this page, help you see your sales by payment type, staff member, or station for a date range, and how that compares to the period before. For the **Cash Till** report, see [Cash till reports](https://docs.jovvie.com/point-of-sale/cash/reports/). Only the **Stations** report is limited to orders taken at a station. The **Payments** and **Users** reports can also include online orders. ## Before you start - You have taken at least one sale. - You are signed in as a user who can view reports, such as an administrator or shop manager. ## Open a POS report **If you use Standalone:** Go to **Analytics**. **If you use WooCommerce:** Point of Sale for WooCommerce must be installed. See [Install Point of Sale for WooCommerce and connect](https://docs.jovvie.com/point-of-sale/woocommerce/install-and-connect/). In your WordPress admin, go to **Analytics**. 1. Select **Payments**, **Users**, or **Stations** from the Analytics menu. 2. Choose a date range at the top of the report. 3. Use the filter next to the date range to narrow the report. The filter is different for each report. See [Payments report](https://docs.jovvie.com/point-of-sale/reports/analytics/#payments-report), [Users report](https://docs.jovvie.com/point-of-sale/reports/analytics/#users-report), and [Stations report](https://docs.jovvie.com/point-of-sale/reports/analytics/#stations-report). Each report shows the same parts: - **Summary numbers** for the date range, each compared to the previous period: **Gross sales in this period**, **Average gross daily sales**, **Net sales in this period**, **Average net daily sales**, **Orders placed**, **Items purchased**, refunds, **Charged for shipping**, and **Worth of coupons used**. - **A chart.** Select a summary number to chart it. - **A table** with one row per order. It lists orders from the date range you chose and from the previous period of the same length. Each row is labeled **Current period** or **Previous period**, so check the label before you count a row as a sale in your date range. Columns are **Date**, **Order #**, **Status**, **Gross sales**, **Net sales**, **Items**, **Refunds**, **Shipping**, and **Coupons**. Select a sortable column heading to sort by it. **Status** cannot be sorted. The **Stations** report adds a **User** column. The **Users** report adds a **Station** column. Neither of these extra columns can be sorted. ## Payments report The **Payments** report shows orders by how they were paid. It is not limited to POS orders, so it can include online orders that used the same payment method. The table is titled **Payment Orders**. 1. Open **Payments**. 2. Open the **Payment type** filter. 3. Select a payment type. POS payment types start with **POS**. The list also includes your other payment methods. To see all payment types again, clear the filter. ## Users report The **Users** report shows orders by user. It is not limited to POS orders. With **All users** selected, it includes your store’s online orders too. The table is titled **User Orders**. 1. Open **Users**. 2. Open the **User** filter. 3. Select **All users** or one staff member. ## Stations report The **Stations** report shows only orders taken at a station, grouped by station. Use it when you want POS sales only. The table is titled **Station Orders**. 1. Open **Stations**. 2. Open the **Station** filter. 3. Select **All stations** or one station. Each station is listed with its name and ID. To save this report as a file, see [Export a station sales report](https://docs.jovvie.com/point-of-sale/reports/export/). ## Separate POS orders in the standard reports The **Orders**, **Products**, and **Variations** reports have a **Show** filter. Point of Sale adds these choices to it: - **Online orders** - **POS orders** - One choice for each station, in the form **Station:** followed by the station name Use them to compare store sales with register sales, or to look at one station. ## Related - [Cash till reports](https://docs.jovvie.com/point-of-sale/cash/reports/) - [See Point of Sale orders in your dashboard](https://docs.jovvie.com/point-of-sale/orders/in-your-dashboard/) Source: https://docs.jovvie.com/point-of-sale/reports/analytics/ --- # Export a Jovvie Point of Sale station sales report Section: Jovvie Point of Sale > Reports > Download the orders from your Stations report as a CSV file. You can export the orders in the **Stations** report to a CSV file, which opens in any spreadsheet app. The export includes orders for the selected station or all stations, for both your selected date range and the previous period of the same length. Check **Period** before counting an order in your selected date range. Only the **Stations** report has a **Download** button. ## Before you start - You are signed in as a user who can view reports, such as an administrator or shop manager. - You know which station and date range you want. See [POS reports in Analytics](https://docs.jovvie.com/point-of-sale/reports/analytics/). ## Export the report **If you use Standalone:** Go to **Analytics** > **Stations**. **If you use WooCommerce:** In your WordPress admin, go to **Analytics** > **Stations**. 1. Choose a date range. 2. In the **Station** filter, select **All stations** or one station. 3. In the **Station Orders** table, click **Download**. The button shows **Preparing your export…**, then progress such as **Exporting…** with the number of orders done. 4. Wait for **Export ready.** Your browser downloads the file. If the download does not start, click **Download again** next to **Export ready.** The file name shows the station and the dates, for example `pos-station-orders_all-stations_` followed by the start and end dates. ## What is in the file The file has one row per order, for the dates you chose and for the previous period of the same length. All order statuses are included. These columns are in the file: - **Period** (**Current period** or **Previous period**) - **Date** - **User** and **User ID** - **Order #** - **Status** - **Gross sales** - **Net sales** - **Items** (the number of product lines) and **Units** (the total quantity) - **Refunds** - **Shipping** - **Coupons** - **Payment method** - **Currency** ## If something goes wrong ### **“No orders in this period.”** **Symptom:** You click **Download** and see this message. No file downloads. **Cause:** No orders match the station and dates you selected. **Fix:** Change the date range or station, then start the export again. ### **“The export failed.”** or **“The export could not be started.”** **Symptom:** The export stops with one of these messages. **Cause:** The export did not finish or did not start. **Fix:** 1. Click **Retry download**. 2. If it keeps failing, contact [Jovvie support](https://jovvie.com/support/). ### **“Attached to the export already in progress.”** **Symptom:** You click **Download** and see this message. **Cause:** An export you already started is still running. **Fix:** Wait. The page picks up the export already in progress and downloads the file when it is ready. ### **“Too many exports are running right now. Please try again in a moment.”** **Symptom:** You click **Download** and see this message. **Cause:** Your site is busy with other exports. **Fix:** Wait a moment, then start the export again. ### **“The download link has expired. Please export again.”** **Symptom:** You open a download link and see this message. **Cause:** Download links work for a limited time. **Fix:** Run the export again, as described in [Export the report](https://docs.jovvie.com/point-of-sale/reports/export/#export-the-report). ## Still need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/reports/export/ --- # Card reader payment problems in Jovvie Point of Sale Section: Jovvie Point of Sale > Fix problems > Fix common problems when taking card payments on a Stripe reader or NMI terminal in Jovvie Point of Sale. If a card reader or terminal is not working at checkout, this page helps you find the message you see and fix it. Stripe readers and NMI terminals behave differently, so each has its own section. A station is one register in Point of Sale. See the [glossary](https://docs.jovvie.com/start-here/glossary/#station). > **Caution: Before you charge again** > > If a payment fails partway through, check the Orders panel (see [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/)) and your Stripe Dashboard or NMI terminal before retrying or using another payment method. Confirm that no payment for this order went through and none is still processing. The customer may already have been charged even if the Orders panel does not show it. If you are unsure, contact [Jovvie support](https://jovvie.com/support/) before taking another payment. ## Stripe readers ### **“You do not have any readers enabled for this station.”** **Symptom:** You choose the Stripe card payment method at checkout, but the reader list is empty. **Cause:** No readers are turned on for this station. **Fix:** Ask an administrator to turn on at least one reader for the station, as described in [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/). ### **“Connection to Stripe failed. Go to POS > Settings > Stripe Connect.”** **Symptom:** This message appears when you open checkout or choose the Stripe card payment method. **Cause:** The register could not connect to your Stripe account, which it needs to take card payments. **Fix:** Ask an administrator to: 1. In your dashboard, go to **POS** > **Settings** > **Stripe Connect**. 2. Click **Link Account**. Do this even if the status shows **Connected**, because the status may not reflect the latest connection check. 3. Follow the prompts to connect your Stripe account again. 4. Wait for **Stripe account successfully connected! Payments enabled for processing**. 5. Reload the register and try the payment again. If linking fails, contact support. ### **“Unable to load Stripe Terminal readers.”** **Symptom:** The reader list does not load at checkout. **Cause:** The register could not get your list of readers from Stripe. A network or service problem may be stopping the list from loading. **Fix:** 1. Check that this device is connected to the internet. 2. Reload the register. 3. Try the payment again. 4. If the message continues, check the Stripe connection. See [“Connection to Stripe failed. Go to POS > Settings > Stripe Connect.”](https://docs.jovvie.com/point-of-sale/troubleshooting/card-readers/#connection-to-stripe-failed-go-to-pos--settings--stripe-connect). ### **“Please select a terminal.”** **Symptom:** You click the pay button and see this message. **Cause:** No reader is selected. **Fix:** 1. Select a reader from the list. 2. Click the pay button again. ### **“Not connected. Please ensure your device is properly connected.”** **Symptom:** The **Payment Processing** window shows this status and the reader does not prompt the customer. **Cause:** The register cannot reach the reader. **Fix:** 1. Check that the reader is turned on, charged, and connected to the internet. 2. Ask an administrator to check that the reader shows as online in the station’s reader list. 3. Try the payment again. ### Message starting with **“Unexpected reader disconnect”** **Symptom:** A message starting with **Unexpected reader disconnect** appears during a payment. **Cause:** The reader lost its connection, for example because it ran out of power or lost its internet access. **Fix:** 1. Check the Orders panel and your Stripe Dashboard for a payment that went through or is still processing. 2. Reconnect the reader to power and the internet. 3. Try again only after confirming that no payment for this order went through and none is still processing. ### **“A payment is already being processed.”** **Symptom:** You click the pay button and see this message. **Cause:** A payment for this order is already in progress, often because the button was clicked twice. **Fix:** Wait for the current payment to finish. Do not start a second payment. ### **“The payment is already processing and can no longer be aborted. Wait for the result.”** **Symptom:** You click **Abort**, but the payment continues. **Cause:** The payment had already started processing, so it can no longer be stopped. **Fix:** 1. Wait for the result. 2. If you need to reverse the payment after it completes, refund the order. ### **“The aborted card payment may still be processing. Check the payment status before retrying.”** **Symptom:** You aborted a payment and see this message. **Cause:** The payment could not be cancelled in time, so it may still complete. **Fix:** 1. Check the Orders panel for this payment. 2. Check your Stripe Dashboard for this payment. 3. Only try again if the payment failed or was cancelled, and no payment for this order is still processing. If you are not sure, contact support before you take another payment. ### **“Verify Previous Payment Attempt”** **Symptom:** A window with this title says a previous payment attempt for this order has an unknown outcome. **Cause:** An earlier payment for this order did not report back whether it succeeded. **Fix:** 1. Check your Stripe Dashboard for a payment on this order. Look for payments that completed and payments that are still processing. 2. Check the Orders panel for a payment on this order. 3. If the customer was charged, or a payment is still processing, click **Cancel**. Do not charge again. 4. If no payment completed and none is still processing, click the button that starts with **I verified**. The register tries the payment again right away. If you are still not sure, click **Cancel** and contact support before you take another payment. ### **“The card payment outcome could not be confirmed. Check the Stripe dashboard before taking another payment for this order.”** **Symptom:** This message appears after a payment, and the order is put on hold. **Cause:** The register could not confirm whether the payment went through. **Fix:** 1. Check your Stripe Dashboard for this payment. 2. Only take another payment for the order if the payment failed or was cancelled, and no payment for this order is still processing. If you are not sure, contact support before you take another payment. ### **“Native app required for payment transactions.”** **Symptom:** You see this message instead of a reader list. **Cause:** The Stripe card payment method is set to use readers through the Jovvie app on an iPhone, iPad, or Android device, but you are using a web browser. **Fix:** Take the payment in the Jovvie app. Or ask an administrator to allow web readers. A web terminal is a reader that connects over the internet and that staff use from a web browser. See the [glossary](https://docs.jovvie.com/start-here/glossary/#web-terminal). To allow them: 1. Go to **POS** > **Settings** > **Gateway**. If the station uses its own payment method settings, open the station’s **Gateway** tab instead. 2. Find **Swipe/Insert/Tap** in the list. 3. Click **Setting** next to it. 4. Set **Terminal Types** to **Web terminal** or **iOS/Android app and Web terminal**. 5. Click **Save Changes**. On the station’s **Gateway** tab, click **Save**. 6. Make sure at least one web reader is turned on for the station. See [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/). ### **“The card reader did not respond. Check the order history to confirm whether the payment went through before trying again.”** **Symptom:** You are using the Jovvie app and the payment times out. **Cause:** The reader connected through the app did not respond in time. **Fix:** 1. Check the Orders panel and your Stripe Dashboard for a payment that went through or is still processing. 2. Check the reader’s connection to the app. 3. Try the payment again only after confirming that no payment for this order went through and none is still processing. If the customer was charged, or you are still not sure, contact support before you take another payment. ## NMI terminals ### **“You do not have any terminals registered.”** **Symptom:** You choose the NMI payment method at checkout, but no terminals are listed. **Cause:** Your NMI account has no registered terminals. **Fix:** 1. Register your terminal in your NMI account. 2. Reload the register. ### **“Unable to load terminals. Please try again.”** **Symptom:** The terminal list does not load at checkout. **Cause:** The register could not get your list of terminals. A network or service problem may be stopping the list from loading. **Fix:** 1. Check that this device is connected to the internet. 2. Try again. ### **“The payment gateway rejected this site’s credentials. Check the NMI API keys in the POS settings.”** **Symptom:** NMI payments fail with this message. **Cause:** The keys saved on the **NMI** settings tab are wrong or no longer valid. These keys come from a server application (a connection setup that provides keys for your payment connection) in the Jovvie payments gateway dashboard. **Fix:** Ask an administrator to: 1. In your dashboard, go to **POS** > **Settings** > **NMI**. 2. Click **API Keys**. The Jovvie payments gateway dashboard opens in a new tab. 3. Open your server application. 4. Find its public key and secret key. 5. Back on the **NMI** tab, enter the public key in **Public Key**. 6. Enter the secret key in **Secret Key**. 7. Click **Save Changes**. 8. Check that the status shows **Connected**. ### Message starting with **“The payment gateway could not process the terminal request.”** **Symptom:** The payment does not start on the terminal, and a message starting with this text appears. **Cause:** The payment gateway could not process the request. The terminal may be busy with another transaction. **Fix:** 1. Look at the terminal. 2. If it is busy with another transaction, complete or cancel that transaction. 3. Try the payment again. 4. If the terminal is idle and the message continues, contact support. ### **“The NMI terminal gateway supports only two-decimal currencies.”** **Symptom:** You cannot start an NMI payment for an order. **Cause:** The order uses a currency that does not have two decimal places. NMI terminals only support currencies with two decimal places. **Fix:** Use a different payment method for this order. ### You clicked Abort, but the terminal still shows the payment **Symptom:** You clicked **Abort** and the register shows **Payment aborted.**, but the terminal is still asking for a card. **Cause:** On NMI terminals, **Abort** only stops the register from waiting. It does not cancel the transaction on the terminal itself. **Fix:** Cancel the transaction on the terminal as well. ### Message starting with **“Timed out waiting for the terminal payment result.”** **Symptom:** The payment stops waiting and shows a message starting with this text. **Cause:** The terminal did not report a result in time. **Fix:** 1. Check the terminal to see whether the payment went through. 2. If the terminal is still waiting for a card, cancel the transaction on the terminal. 3. Check the Orders panel. 4. Only try another payment method if no payment went through and the terminal transaction is cancelled or failed. If you are not sure, contact support before you take another payment. ### Message starting with **“Connection to the payment service was lost.”** **Symptom:** A message starting with this text appears during an NMI payment. **Cause:** The register lost its connection while waiting for the terminal. **Fix:** 1. Check the terminal to see whether the payment went through. 2. If you cannot tell whether the customer was charged, contact [Jovvie support](https://jovvie.com/support/) before you do anything else. Do not click the pay button again or use another payment method. 3. Otherwise, click the pay button again. When you click the pay button again, what happens next depends on the payment: - If the payment is still in progress, the register picks it up again and keeps waiting. - If the payment already went through, the register uses that payment for the order and does not charge again. - If the payment failed or was cancelled, a new payment starts on the terminal. ### Message starting with **“A previous attempt to start a terminal payment did not finish and its outcome is unknown.”** **Symptom:** A message starting with this text appears when you try to pay. A shorter version reads **A previous attempt to start this terminal payment has an unknown result.** **Cause:** An earlier attempt to start a payment on the terminal did not finish, and the result is unknown. **Fix:** 1. Check the terminal to make sure the customer was not charged. 2. Check the Orders panel. 3. Click the pay button again only after confirming that no payment for this order went through and none is still processing. If the customer was charged, or you are still not sure, contact support before you take another payment. ## Still need help? When you contact support, tell them the station name, the message you saw, and the time it happened. Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/troubleshooting/card-readers/ --- # Stripe invoice paid but Jovvie Point of Sale order is on hold Section: Jovvie Point of Sale > Fix problems > What to do when a customer paid an invoice for a different amount than the order total and the order was put on hold. This page explains what to do when a customer paid a Stripe invoice in Jovvie Point of Sale but the order is on hold because the amount or currency did not match. Read it before you resend the invoice or take another payment. > **Caution: Before you charge again** > > When an invoice order is on hold for a different amount, the customer has already paid something. Do not resend the invoice or take another payment. Check the payment in your Stripe Dashboard, including whether any payment is still processing, and contact [Jovvie support](https://jovvie.com/support/) to settle the difference. ## Messages and symptoms ### **“Paid for a different amount. The order was placed on hold for review.”** **Symptom:** You click **Check status** on an invoice and see this message. The order now has the status **On hold**. **Cause:** The customer paid the invoice, but the amount or currency they paid does not match the order total. This can happen when the order was changed after the invoice was sent and the payment link could not be updated to the new total. Point of Sale does not mark the order as paid. It puts the order on hold so someone can review it. **Fix:** 1. Do not click **Resend** on this invoice. 2. Do not take another payment for this order. 3. Find the order in the Orders panel. See [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/). 4. Click the three-dot button at the end of the order’s row. 5. Click **Order Details**. 6. Under **Order Notes**, click **Internal Notes** to show the notes. 7. Find the note starting with **Invoice paid for**. It shows the amount paid and the amount the order expects. 8. Find the payment in your Stripe Dashboard and confirm the amount the customer paid. 9. Contact [Jovvie support](https://jovvie.com/support/) with the order number and both amounts, and decide together how to settle the difference. ### The order is on hold with a note starting with “Invoice paid for” **Symptom:** An invoice order changed to **On hold** on its own. The order notes include a message starting with **Invoice paid for** that ends with **Review before fulfilling.** **Cause:** Point of Sale checked the invoice payment and found that the customer paid a different amount or currency than the order expects. The check runs when the payment arrives, so you can see this without clicking **Check status**. **Fix:** Follow the steps in [“Paid for a different amount. The order was placed on hold for review.”](https://docs.jovvie.com/point-of-sale/troubleshooting/invoice-on-hold/#paid-for-a-different-amount-the-order-was-placed-on-hold-for-review). The amounts in this note are shown in the smallest unit of the currency. For example, 1050 USD means 10.50 US dollars. ### The invoice window still says the order is pending **Symptom:** The order is **On hold** because of a different amount, but the invoice window still shows the order as pending until the customer pays. **Cause:** The order is not marked as paid, because the amount did not match. The invoice window treats unpaid orders as still waiting for payment. **Fix:** Go by the order status and the order notes, not the invoice window. Do not resend the invoice. Follow the steps in [“Paid for a different amount. The order was placed on hold for review.”](https://docs.jovvie.com/point-of-sale/troubleshooting/invoice-on-hold/#paid-for-a-different-amount-the-order-was-placed-on-hold-for-review). ### **“This invoice has no recorded charge to refund yet.”** **Symptom:** You try to refund an invoice order that is on hold for a different amount, and you see this message. **Cause:** Because the amount did not match, Point of Sale did not record the payment on the order. A refund in the register cannot reach the customer’s card for this order. **Fix:** 1. Do not try the refund in the register again. 2. Check the payment in your Stripe Dashboard. 3. Contact [Jovvie support](https://jovvie.com/support/) before you refund or charge the customer. ## Still need help? When you contact support, tell them the order number, the amount on the order, the amount the customer paid, and when the invoice was paid. Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/troubleshooting/invoice-on-hold/ --- # Loading and sync problems in Jovvie Point of Sale Section: Jovvie Point of Sale > Fix problems > Fix products that load slowly, sync messages, and a register that will not finish loading in Jovvie Point of Sale. This page is for the Jovvie Point of Sale register. If products load slowly, a sync message appears, or the register will not finish loading, it helps you fix it. The register keeps a copy of your products, taxes, categories, payment methods, and settings on the device and updates it from your store. This is called syncing. > **Caution: Before you clear data** > > Some fixes clear the data saved on this device and sync again. Finish or save any open sale first. See [Save an order and finish it later](https://docs.jovvie.com/point-of-sale/orders/save-and-resume/). > > If a message appeared while you were taking a payment, a card payment can go through even if the order did not save. Before you clear data or repeat the sale: > > 1. Check your Stripe Dashboard, or the NMI terminal, for a payment that completed or is still processing. > 2. Check the Orders panel (see [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/)). > 3. Only charge again if no payment completed and none is still processing. > > If you are not sure, contact support before you take another payment. ## Messages ### **“Opps, Sync POS Data Required.”** **Symptom:** A window with this title appears. It has a **Clear Data & Sync Now** button and a line starting with **Message:**. **Cause:** The register could not get data from your store, or could not save an order to it. The data saved on the device may be out of date or incomplete. **Fix:** 1. Check that this device is connected to the internet. 2. Click **Clear Data & Sync Now**. The register reloads and syncs everything again. 3. Wait for the register to finish loading. 4. If the window appears again, write down the text after **Message:** and contact support. ### Message starting with **“Sync paused”** **Symptom:** A short notice starting with **Sync paused** appears in the corner, with a **Retry** button. The register still works. **Cause:** The register could not reach your store, for example because the device went offline or the store was briefly unavailable. The register keeps working with the data already saved on the device. **Fix:** 1. Check that this device is connected to the internet. 2. Wait a moment. The register tries again on its own when the connection returns. 3. To try right away, click **Retry** before the notice disappears. Or open the main menu and click **Sync Now**. 4. If the notice keeps coming back, open the [Support page](https://docs.jovvie.com/point-of-sale/troubleshooting/support-page/) and check **System Status**. ### **“Could not load POS settings. Check your connection and try again.”** **Symptom:** The loading screen shows this message and a **Retry** button. **Cause:** The register could not load this station’s settings. **Fix:** 1. Check that this device is connected to the internet. 2. Click **Retry**. 3. If the message continues, contact support. ### **“Service temporarily unavailable”** **Symptom:** A window with this title says the service is briefly unavailable for scheduled maintenance. **Cause:** The service is being maintained. **Fix:** 1. If this appeared while taking a payment, follow the check in the **Before you clear data** caution on this page first. 2. Wait a minute. 3. Close the window. 4. Try again. ### **“Products still loading”** **Symptom:** A notice with this text and an **Optimize** button appears while products sync. **Cause:** Syncing your products is taking a long time. This usually happens with a large product catalog. Only users who can edit the station (one register in Point of Sale) see the **Optimize** button. **Fix:** Wait for the sync to finish. If it happens often, ask an administrator to turn on the product cache. See [Products sync slowly every time](https://docs.jovvie.com/point-of-sale/troubleshooting/sync/#products-sync-slowly-every-time). ### Products sync slowly every time **Symptom:** The register takes a long time to show products. The **Support** page shows **Product Sync Performance**, saying the last product sync ran slow. **Cause:** A large product catalog or a slow connection can make product syncing take longer. A product cache (a saved copy of your products) may help. **Fix:** Ask an administrator or shop manager to: 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Display** tab. 4. In **Product Tabs & Cache**, turn on **Enable Product Cache based on Tab configuration**. 5. Click **Save**. 6. If the product list looks out of date later, return to this setting and click **Refresh cache**. On the register, **Optimize** and **Open Settings** take you to this same station screen. ### Message ending with **“variation(s) failed to sync”** **Symptom:** A notice ending with this text appears, starting with a number. For example, 3 variations may have failed to sync. The notice has a **Retry** button. **Cause:** Some variations of variable products did not load during the product sync. **Fix:** 1. Click **Retry**. 2. If the notice appears again, open the [Support page](https://docs.jovvie.com/point-of-sale/troubleshooting/support-page/) and use **Force Sync** on **Products**. 3. If it still appears, contact support. ## Problems without a message ### The register stays on the loading screen **Symptom:** The loading screen with a progress bar does not finish. **Cause:** A large product catalog or a slow connection can make the first sync take a while. **Fix:** 1. Wait a few minutes. 2. To start selling sooner, click **Switch to background loading**. Products keep loading while you work. 3. If it still does not finish, check the internet connection and reload the page. 4. If the problem continues, contact support. ### Products or prices on the register are out of date **Symptom:** A product you changed in your dashboard shows old details on the register. **Cause:** The register has not synced since the change. **Fix:** 1. Open the main menu and click **Sync Now**. 2. If the product is still out of date, open the [Support page](https://docs.jovvie.com/point-of-sale/troubleshooting/support-page/) and use **Force Sync** on **Products**. 3. If the problem continues, use **Clear** under **Cached Data** on the Support page. ## Still need help? When you contact support, tell them the station name, the message you saw, and the time it happened. Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/troubleshooting/sync/ --- # Sign-in and passcode problems in Jovvie Point of Sale Section: Jovvie Point of Sale > Fix problems > Fix access errors, incorrect passcodes, lockouts, and missing staff names when signing in to the Point of Sale register. If you cannot sign in to the register, or it will not accept your passcode, this page helps you find the message you see and fix it. Most fixes need an administrator or shop manager, because they involve user settings. A station is one register in Point of Sale (see the [glossary](https://docs.jovvie.com/start-here/glossary/#station)). For how sign-in works, see [Open the register and sign in](https://docs.jovvie.com/point-of-sale/sell/open-the-register/). ## Access errors ### **“User Assignments Error”** **Symptom:** The register shows **User Assignments Error** with the message **Change your User Assignments to access the POS system.** On some screens the message comes with a **Go to User Assignment Settings** button. **Cause:** Your user is not assigned to use the register. **Fix:** 1. Ask an administrator to contact [Jovvie support](https://jovvie.com/support/) about Point of Sale access for your user. 2. Tell support the station name and the message you saw. 3. After support confirms your access, reload the register. ### **“You do not have access to this station.”** **Symptom:** The lock screen shows this message instead of staff names. **Cause:** The account signed in on this device is not allowed to use this station. Either the station is limited to certain users, or the account does not have a role that can use Point of Sale, such as administrator, shop manager, or **Cashier**. **Fix:** 1. Open a station that your account can access, if there is one. 2. Ask an administrator to check the role on your user. 3. If the role is right and you still see this message, ask the administrator to contact support about access to this station. ## Passcode sign-in ### **“No operators available for this station.”** **Symptom:** The lock screen shows this message instead of staff names. **Cause:** No staff member has been set up to sign in with a passcode at this station. **Fix:** Ask an administrator to set up passcodes for your staff. See [Set up passcodes and user switching](https://docs.jovvie.com/point-of-sale/set-up/user-switching/). ### Your name is missing from the lock screen **Symptom:** Other staff appear on the lock screen, but you do not. **Cause:** Your user does not have a passcode turned on, or you are not allowed at this station. **Fix:** Ask an administrator to set up your passcode. **If you use Standalone:** In Standalone, the administrator contacts [Jovvie support](https://jovvie.com/support/) to set up or change a staff member’s passcode. **If you use WooCommerce:** 1. In your WordPress admin, go to **Users** and open the staff member’s profile. 2. Find **POS Operator Passcode** and check that **Enable Passcode** is turned on. 3. Enter a passcode in **Passcode** and **Confirm Passcode**. 4. Click **Update User**. 5. Check the station’s user access as described in [Set up passcodes and user switching](https://docs.jovvie.com/point-of-sale/set-up/user-switching/). 6. Reload the register. Only users with Point of Sale access have this section on their profile. ### **“Incorrect Passcode.”** **Symptom:** You enter your passcode and see **Incorrect Passcode.**, sometimes with the number of attempts left. **Cause:** The passcode is wrong. **Fix:** 1. Click **Clear** and enter the passcode again. 2. If you forgot it, ask an administrator to set a new passcode. See [Give a user a passcode](https://docs.jovvie.com/point-of-sale/set-up/user-switching/#give-a-user-a-passcode). ### **“Please enter the Passcode”** **Symptom:** You click **Sign In** and see this message. **Cause:** The passcode field is empty. **Fix:** Enter your passcode on the keypad, then click **Sign In**. ### **“Maximum attempts reached. Please try again later.”** **Symptom:** After several wrong passcodes, this message appears and the passcode window closes. **Cause:** Too many incorrect passcodes were entered in a row. The register blocks further attempts for a short time. **Fix:** 1. Wait a short time. 2. Select your name and try again with the correct passcode. 3. If you forgot your passcode, ask an administrator to set a new one. ### **“Too many failed attempts. Please wait before trying again.”** **Symptom:** You enter your passcode and see this message. **Cause:** Too many incorrect attempts were made for this sign-in. The register blocks further attempts for a short time. **Fix:** Wait a short time, then try again with the correct passcode. ### **“Passcode switch is not enabled for this station.”** **Symptom:** You try to sign in with a passcode and see this message. **Cause:** Passcode sign-in is turned off for the station. **Fix:** Ask an administrator to turn on user switching for the station. See [Set up passcodes and user switching](https://docs.jovvie.com/point-of-sale/set-up/user-switching/). ## Login sign-in ### **“Invalid credentials.”** **Symptom:** You enter your username or email and password and see this message. **Cause:** The username, email, or password is wrong. **Fix:** 1. Check the **Username or Email** you typed. 2. Enter your **Password** again. The register clears it after a failed attempt. 3. Click **Unlock**. 4. If you forgot your password, use the password reset on your sign-in page. ### **“Maximum attempts reached. Please wait before trying again.”** **Symptom:** After several wrong attempts, the sign-in form is disabled and shows this message. **Cause:** Too many incorrect sign-in attempts were made in a row. The register blocks further attempts for a short time. **Fix:** 1. Wait a short time. The form turns on again by itself. 2. Enter your **Username or Email** and **Password** again. 3. If you forgot your password, use the password reset on your sign-in page. ### **“An error occurred. Please try again.”** **Symptom:** You click **Unlock** and see this message. **Cause:** The register could not complete the sign-in, for example because of a network problem. This does not count as a wrong attempt. **Fix:** 1. Check that this device is connected to the internet. 2. Enter your **Password** again. The register clears it after a failed attempt. 3. Click **Unlock**. 4. If it continues, contact support. ## Sessions ### **“Are you still there?”** **Symptom:** A window titled **Session Inactivity Check** asks **Are you still there?** and counts down. **Cause:** The register has been idle, so it is about to start a new order. **Fix:** Click **I’m still here** to keep the current order. If you do nothing, or click **Start New Order**, a new order starts. ### **“Session expired”** notice **Symptom:** A notice starting with **Session expired** says a new order was started. **Cause:** The register was idle long enough that it started a fresh order. **Fix:** If a payment had started, check the Orders panel (see [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/)) and your Stripe Dashboard or NMI terminal first. Start the sale again only after confirming that no payment went through and none is still processing. If you are unsure, contact [Jovvie support](https://jovvie.com/support/) before taking another payment. To change how long the register waits, see [Set up session timeouts](https://docs.jovvie.com/point-of-sale/set-up/session-timeouts/). ## Still need help? When you contact support, tell them the station name, the message you saw, and the time it happened. Do not send passwords or passcodes. Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/troubleshooting/sign-in/ --- # Cart, stock, and coupon problems in Jovvie Point of Sale Section: Jovvie Point of Sale > Fix problems > Fix stock hold messages, items that cannot be added, coupons that do not apply, and shipping that shows no methods in Point of Sale. This page is for the Jovvie Point of Sale register. If an item will not go into the cart, a coupon will not apply, or shipping shows no methods, it helps you find the message you see and fix it. ## Stock ### **“Oops, the product stock hold has expired”** **Symptom:** A window with this title appears over the cart. It offers **Restore Previous Order** and **Start New Order**. You may also see a notice that says **Product inventory expired**. **Cause:** While items are in the cart, the register holds their stock for a set amount of time. That time ran out, so the stock was released for other sales. **Fix:** 1. Click **Restore Previous Order** to try to put the same items back in the cart. 2. If the items are restored, continue the sale. 3. If you do not want the old items, click **Start New Order**. To change how long stock is held, ask an administrator or shop manager to: 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Products** tab. 4. Under **Inventory Management**, change **Hold stock (minutes)**. Leave it blank to turn the hold off. 5. Click **Save**. For more about stock settings, see [Set up inventory for a station](https://docs.jovvie.com/point-of-sale/set-up/inventory/). ### **“Oops, sorry the inventory is no longer available”** **Symptom:** The stock hold window shows this title, and **Restore Previous Order** is greyed out. Or a red notice with this text appears after you click **Restore Previous Order**. **Cause:** Someone else sold the items while the hold was expired, so there is not enough stock to restore your cart. **Fix:** 1. Click **Start New Order**. 2. Add the items again. If an item is out of stock, offer the customer something else. ### **“Oops, stock was not restored for the products: Error”** **Symptom:** After you click **Restore Previous Order**, a red notice starting with this text appears. It ends with an error number. **Cause:** The register could not restore the stock hold for the cart. **Fix:** 1. Check that this device is connected to the internet. 2. Click **Start New Order** and add the items again. **Restore Previous Order** is greyed out after this message. Before taking payment, check the Orders panel (see [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/)) and your Stripe Dashboard or NMI terminal. Confirm that no payment went through and none is still processing. If you are unsure, contact [Jovvie support](https://jovvie.com/support/) before taking payment. 3. If it continues, contact support and tell them the error number. ### **“This item is out of stock”** **Symptom:** You tap a product and see this message. The item is not added to the cart. **Cause:** The product has no stock left. **Fix:** 1. Check the stock for the product in your dashboard. If you counted more items on the shelf, update the stock quantity there. 2. On the register, open the main menu and click **Sync Now**. 3. Add the product again. ### Message starting with **“Only”** and ending with **“available”** **Symptom:** You add a product and see a message such as **Only 2 units available** or **Only 1 unit available**. The quantity you asked for is not added. **Cause:** The quantity in the cart is more than the stock on hand. **Fix:** Lower the quantity to the number shown. If the stock count is wrong, update the product in your dashboard and sync the register. See the steps in [“This item is out of stock”](https://docs.jovvie.com/point-of-sale/troubleshooting/cart/#this-item-is-out-of-stock). ### Out of stock products are missing or still showing **Symptom:** A product you expect is not in the product list, or an out of stock product still shows. **Cause:** Each station can hide out of stock products from the product list. A station that does not hide them shows an **Out of Stock** label instead. **Fix:** Ask an administrator or shop manager to check the station’s **Products** tab. Look at **Hide out of stock products from POS product list** under **Inventory Management**. See [Set up inventory for a station](https://docs.jovvie.com/point-of-sale/set-up/inventory/). ## Coupons ### **“Coupons are disabled”** **Symptom:** The coupon window shows this message and no field for a code. **Cause:** Coupons are turned off in your store settings. **Fix:** Ask an administrator to turn on coupons in your store settings. Then open the main menu on the register and click **Sync Now**. ### **“Invalid Coupon Code.”** or **“Not found”** **Symptom:** You enter a coupon and see **Invalid Coupon Code.**, or the list shows **Not found**. **Cause:** The code does not match a coupon in your store. The code may be misspelled. If the coupon window shows a list of coupons, the coupon may not have synced to the register yet (syncing means the register updates its saved copy of your store’s data). **Fix:** 1. Check the spelling of the code. 2. If **Sync** appears in the coupon window, click it. 3. Try the code again. 4. If it still fails, ask an administrator to check that the coupon exists and is active. ### **“This coupon already applied”** **Symptom:** You try to add a coupon and see this message. **Cause:** The coupon is already on this order. **Fix:** No action is needed. To remove it, remove the discount from the cart. The register shows **Discount removed from order**. ### Message starting with **“Coupon not applied:”** **Symptom:** A red notice starting with **Coupon not applied:** appears, followed by a reason. **Cause:** The order does not meet one of the rules set on the coupon. The reason after the colon tells you which rule. **Fix:** Look up the reason in this table. | Reason shown | What it means | What to do | | -------------------------- | ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | | **Coupon Expiration Date** | The coupon has expired. | Use a different coupon, or ask an administrator to change the expiry date on the coupon. | | **Minimum Spend** | The cart total is below the coupon’s minimum, which is shown in brackets. | Add items until the cart reaches the minimum. | | **Maximum Spend** | The cart total is above the coupon’s maximum, which is shown in brackets. | Remove items or use a different coupon. | | **Exclude Sale Items** | The coupon does not apply to sale items. | Use a different coupon, or add items that are not on sale. | | **Products** | The cart does not have the products the coupon is for. | Add a product the coupon covers. | | **Exclude Products** | The cart has a product the coupon excludes. | Remove that product or use a different coupon. | | **Product Categories** | The cart does not have a product in the categories the coupon is for. | Add a product from a covered category. | | **Excluded Categories** | The cart has a product in a category the coupon excludes. | Remove that product or use a different coupon. | | **Usage Limit per coupon** | The coupon has been used the most times it is allowed. | Use a different coupon. | | **Usage limit per user** | This customer has used the coupon the most times they are allowed. | Use a different coupon. | | **Individual use only** | The coupon cannot be combined with another coupon on the order. | Remove the other coupon first, or use only one. | Coupon rules are set on the coupon in your dashboard, not on the register. To change a coupon, ask an administrator or shop manager. ### **“Sorry discount can’t be applied to custom products not saved”** **Symptom:** You apply a discount and see this message. **Cause:** The cart has a custom product that has not been saved. Discounts cannot be applied to it. **Fix:** Save the custom product, or remove it from the cart, then apply the discount again. See [Add a custom product](https://docs.jovvie.com/point-of-sale/sell/custom-product/). ## Shipping ### **“Oops, no shipping methods are setup for the customer”** **Symptom:** In the shipping window, you see this message followed by a reminder to check the customer’s address. **Cause:** The customer’s address is incomplete, or your store has no shipping method set up for that address. **Fix:** 1. Check that all the customer’s address fields are filled in. See [Add a customer to a sale](https://docs.jovvie.com/point-of-sale/sell/add-a-customer/). 2. Try again. 3. If the address is complete, ask an administrator to check that your store has a shipping method for that location. ### **“Oops, no shipping methods are setup for the location.”** **Symptom:** After you choose a shipping location, the method list is empty. **Cause:** Your store has no shipping method for that location. **Fix:** Ask an administrator to add a shipping method for that location in your store’s shipping settings. If you use Standalone, contact Jovvie support to change this. Then sync the register and try again. See [Add shipping to an order](https://docs.jovvie.com/point-of-sale/sell/add-shipping/). ### Message starting with **“Oops, something went wrong: Error”** **Symptom:** A red notice starting with this text appears when you load shipping methods. It ends with an error number. **Cause:** The register could not load the shipping methods. **Fix:** 1. Check that this device is connected to the internet. 2. Close the shipping window and open it again. 3. If it continues, contact support and tell them the error number. ## Still need help? When you contact support, tell them the station name, the message you saw, and the time it happened. Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/troubleshooting/cart/ --- # Connection and plan messages in Jovvie Point of Sale Section: Jovvie Point of Sale > Fix problems > Fix connection lost messages, connection status warnings, a greyed out View POS button, and plan messages in Point of Sale. If Point of Sale shows a connection or plan message, this page helps you find it and fix it. Point of Sale checks its connection to Jovvie when it saves orders and when you open the station list. A station is one register in Point of Sale. See the [glossary](https://docs.jovvie.com/start-here/glossary/#station). Most fixes need an administrator. > **Caution: If a payment was in progress** > > If one of these messages appears while you are taking a card payment, the customer may already have been charged even if the order did not save. Before you try again: > > 1. For a Stripe reader, check your Stripe Dashboard for a payment on this order. Look for payments that completed and payments that are still processing. > 2. For an NMI terminal, check the terminal screen for the result of the payment. > 3. Check the Orders panel (see [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/)) for this order. > 4. Only try again if no payment completed and none is still processing. > > If you are not sure, contact support before you take another payment. ## Messages on the register ### **“Connection to the License Server has been Lost”** **Symptom:** A window with this title appears when you save or update an order. It shows **Message: Something went wrong.** **Cause:** The register could not reach the Jovvie service that confirms your connection. The internet may be down, or the link between your store and Jovvie may be broken. **Fix:** 1. Check that this device is connected to the internet. 2. Wait a minute and try again. If the message continues: **If you use Standalone:** Contact [Jovvie support](https://jovvie.com/support/). Tell them the station name and the time the message appeared. **If you use WooCommerce:** 1. Ask an administrator to open **POS** > **Settings** > **Connection** and check the status. See [Messages in your dashboard](https://docs.jovvie.com/point-of-sale/troubleshooting/connection/#messages-in-your-dashboard) for what each status means. 2. If the status shows a connection problem, reconnect as described in [Install Point of Sale for WooCommerce and connect](https://docs.jovvie.com/point-of-sale/woocommerce/install-and-connect/). 3. If you use a Self-Hosted connection, see [Set up a Self-Hosted connection](https://docs.jovvie.com/point-of-sale/woocommerce/self-hosted/). Do not click **Clear Data & Sync Now** to fix this message. It clears the data saved on the device and does not repair the connection. ### **“Trial Limit Exceeded”** **Symptom:** A window with this title appears when you save an order. It has an **Upgrade Your Plan** button. **Cause:** Your account has used up all the free orders available on its trial, so the register cannot save more orders until the plan changes. **Fix:** 1. Ask the account owner to review the account’s plan. See [Jovvie pricing](https://jovvie.com/pricing/). 2. If the account should be active, contact support. 3. When the account is active again, reload the register. 4. Check the Orders panel to see whether the last order saved. 5. Try the sale again only if the order did not save and you have confirmed in your Stripe Dashboard or NMI terminal that no payment for this order went through and none is still processing. ### **“Service temporarily unavailable”** **Symptom:** A window with this title says the service is briefly unavailable for scheduled maintenance. **Cause:** The service is being maintained. **Fix:** Wait a minute, close the window, and try again. If it continues, contact support. ## Messages in your dashboard The reconnect steps in this section are for stores that connect Point of Sale to their own WooCommerce store. If you use Standalone, Jovvie manages this connection for you. If you see one of these statuses, contact [Jovvie support](https://jovvie.com/support/). ### **View POS** is greyed out **Symptom:** On **POS** > **Stations**, the **View POS** button is greyed out and does nothing when you click it. **Cause:** Point of Sale is not connected, or your connection or plan does not allow the register to open. **Fix:** Ask an administrator to: 1. Go to **POS** > **Settings** > **Connection**. 2. Check the status shown for your connection type. 3. Follow the entry on this page that matches the status, such as [Status **Not Connected** or **Not Active**](https://docs.jovvie.com/point-of-sale/troubleshooting/connection/#status-not-connected-or-not-active) or [Status **No License**](https://docs.jovvie.com/point-of-sale/troubleshooting/connection/#status-no-license). ### Status **Not Connected** or **Not Active** **Symptom:** The **Connection** tab shows **Not Connected** under **Cloud Connection**, or **Not Active** under **Self-Hosted Connection**. **Cause:** Your store is not linked to Jovvie, or the link stopped working. **Fix:** 1. Reconnect as described in [Install Point of Sale for WooCommerce and connect](https://docs.jovvie.com/point-of-sale/woocommerce/install-and-connect/). 2. For a Self-Hosted connection, make sure the Self-Hosted plugin is installed and active. See [Set up a Self-Hosted connection](https://docs.jovvie.com/point-of-sale/woocommerce/self-hosted/). 3. Reload the **Connection** tab and check the status. 4. If it still does not connect, contact support. ### Status **No License** **Symptom:** The **Self-Hosted Connection** shows **No License**. **Cause:** Your account does not currently have a plan that allows orders on a Self-Hosted connection. **Fix:** Ask the account owner to check the plan. See [Jovvie pricing](https://jovvie.com/pricing/). Click **Manage** on the license card to review it. If the account should be active, contact support. ### Status **Trial Active** **Symptom:** The **Self-Hosted Connection** shows **Trial Active**. **Cause:** Your account is on a trial. This is not an error. **Fix:** No action is needed. If the register later shows **Trial Limit Exceeded**, see [“Trial Limit Exceeded”](https://docs.jovvie.com/point-of-sale/troubleshooting/connection/#trial-limit-exceeded). For plans, see [Jovvie pricing](https://jovvie.com/pricing/). ### Status **Connection Postponed** and the message **Cloud connection is degraded** **Symptom:** The **Connection** tab shows **Connection Postponed**, and a **Warning!** says **Cloud connection is degraded** and that cloud sync is paused. **Cause:** Point of Sale could not reach Jovvie several times, so it paused for a while. It tries again on its own the next time the register is used after the pause. **Fix:** 1. Check that your website and this device are connected to the internet. 2. Wait. The connection recovers on its own if the problem was temporary. 3. If the warning stays, contact support. ### Status **Connection Abandoned** and the message **Cloud connection has been failing** **Symptom:** The **Connection** tab shows **Connection Abandoned**, and a **Warning!** says the cloud connection has been failing for a long time and sync remains paused. **Cause:** Point of Sale could not reach Jovvie for several days and stopped trying. **Fix:** Ask an administrator to: 1. Go to **POS** > **Settings** > **Connection**. 2. Reconnect as described in [Install Point of Sale for WooCommerce and connect](https://docs.jovvie.com/point-of-sale/woocommerce/install-and-connect/). 3. Save the **Connection** settings. This starts a new attempt. 4. Check that the status changes to **Connected** for a Cloud connection, or **Active** for a Self-Hosted connection. 5. If the status does not change, contact support. ## Still need help? When you contact support, tell them the station name, the message you saw, the connection type you use, and the time it happened. Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/troubleshooting/connection/ --- # Use the Jovvie Point of Sale Support page Section: Jovvie Point of Sale > Fix problems > Refresh register data, clear cached data, download a diagnostic file, and send a message to Jovvie support from the Point of Sale register. The register has a **Support** page. It has tools to fix sync problems (syncing means the register updates its saved copy of your store’s data) and a form for contacting Jovvie. To open it, click the menu button on the register, then click **Support**. The page shows the **Support Form** at the top and **System Status** below it. Find the problem you have in [Find the Support page](https://docs.jovvie.com/point-of-sale/troubleshooting/support-page/#find-the-support-page), [Refresh data](https://docs.jovvie.com/point-of-sale/troubleshooting/support-page/#refresh-data), or [Get help from Jovvie](https://docs.jovvie.com/point-of-sale/troubleshooting/support-page/#get-help-from-jovvie), then follow the fix. A station is one register in Point of Sale. See the [glossary](https://docs.jovvie.com/start-here/glossary/#station). > **Caution: Before you clear data** > > **Force Sync** and **Cached Data** clear data saved on this device and load it again. If a payment started and its result is unclear, check the Orders panel (see [Find and view orders](https://docs.jovvie.com/point-of-sale/orders/find-orders/)) and your Stripe Dashboard or NMI terminal before clearing data. Do not retry the sale or use another payment method until you confirm that no payment went through and none is still processing. If you are unsure, contact [Jovvie support](https://jovvie.com/support/). Finish or save any other open sale first. See [Save an order and finish it later](https://docs.jovvie.com/point-of-sale/orders/save-and-resume/). ## Find the Support page ### The Support button is missing from the menu **Symptom:** The register menu does not show **Support**. **Cause:** An administrator hid the **Support** link for this station. **Fix:** Ask an administrator or shop manager to: 1. In your dashboard, go to **POS** > **Stations**. 2. Find the station and click **Edit Station**. 3. Open the **Display** tab. 4. In **Main Menu Buttons**, turn on **Support**. 5. Click **Save**. 6. Reload the register. ## Refresh data ### A product, tax, or setting change is not showing on the register **Symptom:** You changed something in your dashboard, but the register still shows the old version. **Cause:** The register keeps a saved copy of your data and has not updated that part yet. **Fix:** 1. Open the **Support** page. 2. Under **System Status**, find the card for the data that is out of date, such as **Products**, **Taxes**, **Categories**, **Gateways**, or **Settings**. Each card shows when it last synced, for example **Synced** followed by a time, or **Never synced**. 3. Click **Sync** on that card. 4. If the data is still out of date, click **Force Sync** on the same card. **Force Sync** clears the saved copy of that data on this device and loads it again. 5. Go back to the register and check the change. Some cards only appear when the feature is turned on for the station. For example, **Locations** only appears when printing is turned on. ### A card shows “Never synced” **Symptom:** A card under **System Status** shows **Never synced**. **Cause:** The register has not loaded that data on this device yet, or a sync did not finish. **Fix:** 1. Click **Sync** on the card. 2. If it still shows **Never synced**, click **Force Sync**. 3. If the problem continues, check the internet connection. Then see [Loading and sync problems](https://docs.jovvie.com/point-of-sale/troubleshooting/sync/). ### Everything on the register looks wrong **Symptom:** Several things are out of date or missing, and syncing one card at a time does not help. **Cause:** The data saved on this device is out of date or damaged. **Fix:** 1. Open the **Support** page. 2. Find **Cached Data**. It says it clears all local data and syncs this station again. 3. Click **Clear**. 4. Wait while the register shows that it is clearing cached data and syncing again. A progress bar shows how far along it is. Stay on the page until it finishes. 5. Go back to the register and check your products. ### Message starting with **“A sync is still running”** **Symptom:** You click **Clear** and a notice starting with **A sync is still running** appears. It says the cached data was not cleared. **Cause:** The register was already syncing, so it did not clear the data. **Fix:** Wait a moment for the sync to finish, then click **Clear** again. ### Message starting with **“Server cache refresh failed”** **Symptom:** After you click **Clear**, a notice starting with **Server cache refresh failed** appears. It says the cached data was still cleared and will sync again. **Cause:** The register could not refresh the product cache on your store, but it cleared the data on this device. **Fix:** 1. Wait for the sync to finish. 2. Check your products on the register. 3. If products are still missing or out of date, click **Clear** again. If the notice keeps appearing, contact support. ### The register is slow, and Product Sync Performance appears **Symptom:** The **Support** page shows a **Product Sync Performance** card. **Cause:** The last product sync took a long time. A product cache (a saved copy of your products) can speed this up. **Fix:** Ask an administrator or shop manager to turn on the product cache. Administrators see an **Open Settings** button on the card that opens the station settings. For the steps, see [Loading and sync problems](https://docs.jovvie.com/point-of-sale/troubleshooting/sync/). ## Get help from Jovvie ### You need to send a problem report to support **Symptom:** Something is not working and you want Jovvie support to look at it. **Cause:** Support needs details about the problem. The **Support Form** sends them from the register. **Fix:** 1. Open the **Support** page. 2. In **Support Form**, enter your **Name**. 3. Enter your **Email**. 4. In **Describe your problem here**, write what happened, the message you saw, and the time it happened. 5. Leave **Send POS system report** checked so support gets a diagnostic report from this device. Clear it if you do not want to send the report. 6. Click **Send**. 7. Wait for the **Sent** notice. Do not put card numbers, passwords, or passcodes in your message. ### **“Something go wrong”** after you click Send **Symptom:** A red notice that says **Something go wrong** appears after you click **Send**. **Cause:** The message could not be sent, for example because the device is offline or your website could not send email. **Fix:** 1. Check that this device is connected to the internet. 2. Check that **Name**, **Email**, and **Describe your problem here** are filled in, and that the email address is valid. 3. Click **Send** again. 4. If it fails again, contact [Jovvie support](https://jovvie.com/support/) from the website instead. Include the station name, the message you saw, and the time it happened. ### Support asks for a diagnostic file **Symptom:** Support asks you for a debug or diagnostic file. **Cause:** The file lists recent activity on this device, which helps support find the problem. **Fix:** 1. Open the **Support** page. 2. Scroll to **Debug Data**. It says it downloads a diagnostic log for support. 3. Click **Download**. A file is saved to your device. 4. Send the file to Jovvie support only when they ask for it, using the [Jovvie support contact page](https://jovvie.com/support/). ## Still need help? When you contact support, tell them the station name, the message you saw, and the time it happened. Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/point-of-sale/troubleshooting/support-page/ --- # Stripe and NMI: what's different Section: Payments and accounts > See which Jovvie products work with Stripe or NMI, and how card payments, readers, refunds, and test mode differ between the two. Jovvie works with two payment processors: Stripe and NMI. A payment processor is the company that handles your card payments and sends the money to your bank. Most tasks look the same either way, but some features only work with one processor. Use this page to check which features apply to you. Each product page also points out differences where they matter. ## Which products support each processor | Product | Stripe | NMI | | ---------------------------------------------------------- | ------ | --- | | Jovvie Point of Sale | Yes | Yes | | Jovvie Checkout for WooCommerce | Yes | No | | Jovvie Checkout for Gravity Forms | Yes | No | | Jovvie Checkout for GiveWP | Yes | No | | Jovvie Checkout for Event Tickets | Yes | No | | Your own Checkout integration (built with the Jovvie SDKs) | Yes | Yes | For Jovvie Pay, see [jovvie.com/pay](https://jovvie.com/pay/). If you use one of the ready-made Checkout integrations, you only need Stripe, so the rest of this page is mostly about Point of Sale. For more, see the [Jovvie Checkout overview](https://docs.jovvie.com/checkout/) or, if you are a developer building your own integration, [Build your own Jovvie Checkout integration](https://docs.jovvie.com/developers/). ## Point of Sale: Stripe and NMI side by side | | Stripe | NMI | | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Where you connect** | **POS** > **Settings** > **Stripe Connect**. You click **Link Account** and sign in to Stripe. See [Connect Stripe to Point of Sale](https://docs.jovvie.com/point-of-sale/set-up/connect-stripe/). | **POS** > **Settings** > **NMI**. To get your NMI connection set up, contact [Jovvie support](https://jovvie.com/support/). | | **Card payment method in the register** | **Swipe/Insert/Tap**, marked **with Stripe Terminal**. | **Swipe/Insert/Tap**, marked **with NMI Terminal**. | | **Which readers staff can use** | For web terminals, staff can use only the readers you enable for the [station](https://docs.jovvie.com/start-here/glossary/#station) (one register in Point of Sale). See [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/) and [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). | Any terminal registered to your NMI account. Staff pick the terminal at checkout. | | **Express checkout** (the reader starts on its own) | Yes, when only one terminal type is selected for the payment method. For web terminals, a default reader must be set for the station. See [Set up Express checkout](https://docs.jovvie.com/point-of-sale/set-up/express-checkout/). | No | | **Enter a card by hand** (**Enter Card**) | Yes. See [Enter a card manually](https://docs.jovvie.com/point-of-sale/sell/enter-card-manually/). | No | | **Send an invoice to pay later** (**Invoice**) | Yes. See [Send an invoice to pay later](https://docs.jovvie.com/point-of-sale/sell/invoice/). | No | | **Stopping a payment with Abort** | Stops the register from waiting and asks Stripe to cancel the payment. The payment may still go through, so check the payment status before you try again. See [Stop a payment](https://docs.jovvie.com/point-of-sale/sell/card-payment-stripe/#stop-a-payment). | Only stops the register from waiting. You must also cancel the transaction on the terminal. | | **Order status after a successful payment** | **Completed**, when the card payment pays the full order on its own. If the amount charged does not match the order, the order is put **On hold**. A [split payment](https://docs.jovvie.com/start-here/glossary/#split-payment) (a sale paid in more than one part) uses the **Split Payment** method’s status. | **Completed**, when the terminal payment pays the full order on its own. A split payment uses the **Split Payment** method’s status. | | **Refund from the register** | Sends the money back to the customer’s card, when the card payment paid the order on its own. For a **Split Payment**, the refund is recorded only, and you refund the card part in your Stripe Dashboard. | Records the refund only. You refund the transaction outside Point of Sale. See [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). | | **Test mode** | Yes, with the **Mode** setting on the **Stripe Connect** tab. | No test mode setting in Point of Sale. See [Use test mode](https://docs.jovvie.com/payments/test-mode/). | | **Where to check payouts** | Your Stripe Dashboard. | The bank account you gave when you set up your NMI merchant account. See [Where to see your payouts](https://docs.jovvie.com/payments/payouts/). | NMI terminals only work with currencies that have two decimal places. For an order in another currency, use a different payment method. To take a payment, see [Take a card payment with a Stripe reader](https://docs.jovvie.com/point-of-sale/sell/card-payment-stripe/) or [Take a card payment with an NMI terminal](https://docs.jovvie.com/point-of-sale/sell/card-payment-nmi/). ## If your store uses both You can connect Stripe and NMI on the same site. Both card payment methods are named **Swipe/Insert/Tap** by default, so staff may see two methods with the same name in the register. The line under each name shows which is which: **with Stripe Terminal** or **with NMI Terminal**. To make the difference clearer for staff, rename one or both methods. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/). ## Checking a payment you are not sure about Where you look depends on the processor: - **Stripe:** check your Stripe Dashboard and the order history in the register. - **NMI:** check the terminal screen and the order history in the register. Do not charge the customer again until you know that no payment went through and none is still processing. For the steps, see [Card reader payment problems](https://docs.jovvie.com/point-of-sale/troubleshooting/card-readers/). ## Related - [How Jovvie works](https://docs.jovvie.com/start-here/how-jovvie-works/) - [Payment statuses](https://docs.jovvie.com/payments/payment-statuses/) - [Where to see your payouts](https://docs.jovvie.com/payments/payouts/) ## Need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/payments/stripe-vs-nmi/ --- # Use test mode Section: Payments and accounts > Practice taking payments without charging a real card, and find where test mode is turned on in each Jovvie product. Test mode lets you practice the whole payment flow without charging a real card. Use this page to find where to turn it on, so you can train staff and check your setup before you take real payments. Test mode only works with Stripe. Each product has its own test mode setting, and Jovvie follows that setting. ## Where test mode is set | Product | Where you turn test mode on or off | | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Jovvie Point of Sale (Stripe) | **Mode** on the **POS** > **Settings** > **Stripe Connect** tab | | Jovvie Point of Sale (NMI) | No test mode setting | | Jovvie Checkout for WooCommerce | **Test mode** (**Enable test mode**) in the Jovvie Payments **Account Management** settings | | Jovvie Checkout for Gravity Forms | **Test Mode** (**Use the Jovvie test environment**) in the Jovvie Payments settings | | Jovvie Checkout for GiveWP | GiveWP’s own test mode setting | | Jovvie Checkout for Event Tickets | The Tickets Commerce test mode (sandbox) setting | | Your own Checkout integration | Your developer sets the mode in the integration (Stripe only). See [Test a Jovvie Checkout integration with Stripe test mode](https://docs.jovvie.com/developers/test-mode/) | Live mode (real payments) and test mode are kept apart. Card readers, locations, and payments in one mode do not appear in the other. > **Caution** > > Before you take real payments, turn test mode off and check that your live readers are set up. Payments you take while test mode is on are not real, and no money is collected. ## Point of Sale with Stripe **Mode** applies to every Stripe payment method in the register, including **Swipe/Insert/Tap**, **Enter Card**, and **Invoice**. It applies to all stations. 1. In your dashboard, go to **POS** > **Settings** > **Stripe Connect**. 2. Under **Mode**, select **Test**. 3. Click **Save Changes**. To go back to real payments, select **Live** and click **Save Changes**. **Live** is the default. After you change the mode, check each station’s **Stripe** tab. Locations that Jovvie created are marked **\[Live]** or **\[Test]**. Make sure each station uses a location and readers for the mode you are in. See [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/). To test with a physical reader, register it on the station’s **Stripe** tab while **Mode** is **Test**. You need to be an administrator or shop manager to change these settings. ## Point of Sale with NMI Point of Sale has no test mode for NMI. Every NMI terminal payment you take in the register is real. If you want to try NMI before you go live, contact [Jovvie support](https://jovvie.com/support/). ## Checkout for WooCommerce The WooCommerce plugin has its own test mode setting. It does not follow any other WooCommerce setting. 1. In your WordPress admin, go to **WooCommerce** > **Settings** > **Payments** > **Jovvie Payments** > **Account Management**. 2. Next to **Test mode**, select **Enable test mode**. 3. Save your changes. While test mode is on, checkout shows the notice **Note! Test Mode is enabled.** To go back to real payments, clear **Enable test mode** and save. Payment confirmations from Stripe (called [webhooks](https://docs.jovvie.com/start-here/glossary/#webhook)) need their own setup in test mode. Before you test, contact [Jovvie support](https://jovvie.com/support/) to confirm they are set up. Otherwise, test orders stay **Pending payment**. See [Install and connect Jovvie Checkout for WooCommerce](https://docs.jovvie.com/checkout/woocommerce/install-and-connect/). ## Checkout for Gravity Forms The Gravity Forms add-on has its own test mode setting. The same keys work for live and test, so you do not connect again to switch. 1. In WordPress, go to **Forms** > **Settings** > **Jovvie Payments**. 2. In the **Jovvie Payments Account** group, next to **Test Mode**, select **Use the Jovvie test environment**. 3. Save your settings. While test mode is on, the **Jovvie Payments** field on your forms shows **Test mode is enabled. No live payment will be processed.** To go back to real payments, clear the checkbox and save. See [Install and connect Jovvie Checkout for Gravity Forms](https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/). ## Checkout for GiveWP Jovvie follows GiveWP’s test mode setting. When GiveWP is in test mode, Jovvie is in test mode too. You do not need to connect again. The test mode setting is part of GiveWP itself, not the Jovvie plugin. To turn it on or off, see GiveWP’s own documentation. To check which mode you are in, go to **Donations** > **Settings** > **Payment Gateways** > **Jovvie Payments** > **Account Management**. The status label shows **Connection Status (test)** or **Connection Status (live)**. ## Checkout for Event Tickets Jovvie follows the Tickets Commerce test mode (sandbox) setting. When Tickets Commerce is in test mode, Jovvie is in test mode too. The test mode setting is part of Tickets Commerce in Event Tickets, not the Jovvie plugin. To turn it on or off, see the Event Tickets documentation. ## Readers for Checkout in test mode When you create a location in the plugin settings, Jovvie creates a live location and a test location together. Jovvie uses the one that matches the plugin’s mode. These steps are for [web terminals](https://docs.jovvie.com/start-here/glossary/#web-terminal). App terminals are registered by the Jovvie app. See [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). Before you start, create a location with **Create location**. In WooCommerce, GiveWP, and Event Tickets, the **Register Reader** section appears only after you do. See [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). To test with a physical web reader: 1. Open the Jovvie settings for your plugin: - WooCommerce: **WooCommerce** > **Settings** > **Payments** > **Jovvie Payments** > **Location & Terminals** - Gravity Forms: **Forms** > **Settings** > **Jovvie Payments** - GiveWP: **Donations** > **Settings** > **Payment Gateways** > **Jovvie Payments** > **Location & Terminals** - Event Tickets: **Tickets** > **Settings** > **Payments** > **Jovvie** 2. Go to the **Register Reader** section. In Gravity Forms, go to the **Reader Registration** group. 3. Under **Mode**, select **Test**. 4. In **Registration Code**, enter the code shown on the reader. 5. Save your changes. A browser connection also belongs to one mode. If you connected a shared device in live mode, connect it again in test mode. See [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). ## What you see on the payment page in test mode When the payment is in test mode, the Jovvie payment page shows: - An orange bar across the top with **Test Mode** and **You’re using test data. No real transactions will be processed**. - A list of simulated readers under **Choose a reader**, with the message **This is a simulated mode readers list. To select real readers, click the button below:** A simulated reader is not a real device. To run a test payment without a card, select one and click **Process Payment**. To test with your own reader instead: 1. Click **Switch to live readers**. 2. Select your reader. The list shows available test mode readers. If this browser is connected to a location, it shows readers from that location. 3. Click **Process Payment**. Despite its name, **Switch to live readers** does not take you out of test mode. The payment is still a test payment, and no real card is charged. For the rest of the payment page, see [Take a payment on the Jovvie payment page](https://docs.jovvie.com/checkout/jovvie-payment-page/). ## Find test payments Test payments do not appear with your live payments. To see them, switch your Stripe Dashboard to test mode. ## Before you go live 1. Turn off test mode in each product you use. 2. Check that your readers are registered in live mode. 3. If you use shared devices for Checkout, connect each browser again in live mode. 4. Ask staff to look for the **Test Mode** bar on the payment page. If they see it, the payment is not real. ## Need help? If you do not see your readers in test mode, see [Reader not showing on the payment page](https://docs.jovvie.com/troubleshooting/reader-connection/). Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/payments/test-mode/ --- # Where to see your payouts Section: Payments and accounts > Find out where the money from your Jovvie card payments goes and where to check your payouts. This page helps you find out where the money from your card payments goes and where to check on it. Jovvie does not pay you out directly. Card payments go to your account with your payment processor, and your processor sends the money to your bank. Jovvie Pay, Jovvie Checkout, and Jovvie Point of Sale do not show payouts or bank deposits. Where you check your payouts depends on your processor. To find out which processor each product uses, see [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). ## If you use Stripe When you connect Stripe to Jovvie, you sign in to your own Stripe account (or create one). The card payments you take with Jovvie are paid into that Stripe account. To see your payouts: 1. Sign in to your Stripe Dashboard with the Stripe account you connected to Jovvie. 2. Open your balance and payouts. Stripe sends payouts to the bank account set in your Stripe account, on your payout schedule. To check or change your payout schedule or bank account, use your Stripe Dashboard. ## If you use NMI When you set up your NMI merchant account, you enter your bank details under **Bank Account Details**. The money from your NMI card payments is deposited into that bank account. To check a deposit, look at the statement for that bank account. If a deposit is missing, or you need to change the bank account, contact [Jovvie support](https://jovvie.com/support/). ## Pricing For Jovvie pricing, see [jovvie.com/pricing](https://jovvie.com/pricing/). ## Related - [How Jovvie works](https://docs.jovvie.com/start-here/how-jovvie-works/) - [Payment statuses](https://docs.jovvie.com/payments/payment-statuses/) Source: https://docs.jovvie.com/payments/payouts/ --- # Jovvie payment statuses Section: Payments and accounts > Learn what status an order, entry, or donation gets after a Jovvie card payment, and what each status means in Point of Sale and in Checkout for WooCommerce, Gravity Forms, GiveWP, and Event Tickets. This page helps you understand what a status means after a card payment, and what to do when a status looks wrong. After a payment, Jovvie updates the order, form entry, or donation in the product you use. The status it gets, and when, depends on the product. > **Caution: Never charge twice** > > A status that has not changed yet does not always mean the customer was not charged. Before you take the payment again, check your Stripe Dashboard (or, for NMI, the terminal and the order history). Make sure no payment went through and none is still processing. If you are not sure, contact [Jovvie support](https://jovvie.com/support/). ## Point of Sale Point of Sale uses standard order statuses. The register sets the order’s status as soon as it gets the payment result. | What happened | Order status | | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | | A Stripe card payment went through (a reader or **Enter Card**) | **Completed** | | An NMI terminal payment went through | **Completed** | | The card was declined, or you stopped the payment before the customer paid | The order is not completed. You can try again or choose another payment method. | | An **Enter Card** payment failed | **Failed** | | The register could not confirm whether a Stripe reader payment went through | **On hold** | | A Stripe reader charged a different amount than the order total | **On hold** | | An invoice was sent and is not paid yet | **Pending payment** | | An invoice was paid | The status set for **Invoice** in **Order Status** | | Cash, **Split Payment**, and other payment types | The status set for that method in **Order Status** | When a Stripe or NMI card payment is taken on its own for the full order amount and succeeds, the order is always set to **Completed**. You cannot change this. If a Stripe reader charged a different amount, the order is put **On hold** instead. For other methods, you choose the status in **POS** > **Settings** > **Gateway**. See [Choose payment methods](https://docs.jovvie.com/point-of-sale/set-up/payment-methods/). With **Split Payment** (one sale paid in more than one part), a card payment for one part does not complete the order. The order gets the status set for **Split Payment** only after every part of the payment is paid. ### If an order is on hold - If the message starts with **Terminal captured**, see [Resolve a card payment that did not match the order](https://docs.jovvie.com/point-of-sale/orders/resolve-amount-mismatch/). - If the message is **The card payment outcome could not be confirmed. Check the Stripe dashboard before taking another payment for this order.**, check your Stripe Dashboard before you do anything else. See [Card reader payment problems](https://docs.jovvie.com/point-of-sale/troubleshooting/card-readers/#stripe-readers). - If an invoice was paid but the order is on hold, see [Invoice paid but order is on hold](https://docs.jovvie.com/point-of-sale/troubleshooting/invoice-on-hold/). ### If an NMI payment shows an error If the register shows an error after an NMI terminal payment, the order may be marked **Failed**. A **Failed** status does not prove the customer was not charged. Check the terminal screen and the order history before you take another payment. See [Card reader payment problems](https://docs.jovvie.com/point-of-sale/troubleshooting/card-readers/#nmi-terminals). ### Refunds in Point of Sale A refund in the register is added to the order. Whether money goes back to the customer depends on the payment method. See [Refund an order in the register](https://docs.jovvie.com/point-of-sale/orders/refund/). For NMI terminal payments, refunds and voids made outside Point of Sale can also update the order. These updates only reach your site if your NMI connection is set up correctly. If you are not sure your site receives them, contact [Jovvie support](https://jovvie.com/support/). For an NMI payment taken on its own (not part of a **Split Payment**): - A refund for the full amount changes the order to **Refunded**. - A partial refund adds a note to the order. The status does not change. - A void of a completed payment changes the order to **Cancelled**. If the NMI payment was one part of a **Split Payment**, a refund or void adds a note to the order. The order status does not change. To change a status by hand, see [Change an order’s status](https://docs.jovvie.com/point-of-sale/orders/change-status/). Changing a status does not take or refund a payment. ## Checkout for WooCommerce The WooCommerce plugin uses WooCommerce order statuses. | What happened | Order status | Order note | | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------- | -------------------------------- | | The order was placed and the payment page opened | **Pending payment** | | | The customer paid while the order was **Pending payment**, and your site received the payment confirmation from Stripe | **Processing** | **Payment succeeded in Stripe.** | | The payment failed, and your site received that update from Stripe | **Failed** | **Payment failed in Stripe.** | | Staff clicked **← Back** on the payment page before the customer paid | **Pending payment** (no change) | | The order moves to **Processing** only when your site receives the payment confirmation from Stripe. This confirmation is sent automatically and is called a [webhook](https://docs.jovvie.com/start-here/glossary/#webhook). Reaching the order received page does not complete the order. If an order stays **Pending payment** after the customer paid: 1. Check your Stripe Dashboard for the payment. Look for payments that completed and payments that are still processing. 2. If the customer was charged, or a payment is still processing, do not charge again. 3. Contact [Jovvie support](https://jovvie.com/support/), and ask them to confirm that payment confirmations are set up for your site. See [Take an in-person payment for an order](https://docs.jovvie.com/checkout/woocommerce/take-a-payment/#what-happens-to-the-order). ## Checkout for Gravity Forms Gravity Forms shows a payment status on each entry. | What happened | Payment status | Entry note | | ----------------------------------------------------------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------------- | | The form was submitted and the payment page opened | **Processing** | | | The customer paid, and the browser came back to your site | **Paid** | **Payment completed via Jovvie.** | | The customer paid, but the browser did not come back. The hourly check found the payment | **Paid** | **Payment completed via Jovvie.** | | Your site received an update from Jovvie that the payment failed or was cancelled | **Failed** | **Payment failed in Jovvie.** | | The hourly check found that the payment failed or was cancelled | **Failed** | **Payment failed in Jovvie (reconciled).** | | The payment could not start, because the add-on is not connected or Jovvie did not accept the request | **Failed** | Starts with **Jovvie Payments is not configured** or **Jovvie payment could not be created** | These statuses assume **Accepted Payment Status** is left at its default, **Completed (Paid)**. See [Settings reference](https://docs.jovvie.com/checkout/gravity-forms/settings/). ### A paid entry that stays Processing A card can be charged before the entry changes from **Processing**. If an entry is still **Processing**: 1. Check your Stripe Dashboard for the payment. Look for payments that completed and payments that are still processing. 2. If the customer was charged, or a payment is still processing, do not charge again. Wait for the hourly check to update the entry. 3. If the entry does not update, or you are not sure, contact [Jovvie support](https://jovvie.com/support/). See [Take an in-person payment with a form](https://docs.jovvie.com/checkout/gravity-forms/take-a-payment/#what-happens-to-the-entry). ## Checkout for GiveWP GiveWP uses its own donation statuses. | What happened | Donation status | Donation note | | ----------------------------------------------------------------------- | --------------- | ------------------------------ | | The donation form was submitted and the payment page opened | **Pending** | | | The donor paid, and the payment page sent the browser back to your site | **Complete** | **Donation Captured.** | | Staff clicked **← Back** on the payment page before the donor paid | **Abandoned** | **Donation canceled by user.** | | Your site received an update from Jovvie that the payment failed | **Failed** | **Payment failed in Stripe.** | ### A paid donation that stays Pending A one-time donation is marked **Complete** only when the payment page sends the browser back to your site. Nothing else completes it. If the browser does not return, for example because the tab was closed or the device lost its connection right after the payment, the donation stays **Pending** even though the donor was charged. If a donation stays **Pending**, follow these steps: 1. Check your Stripe Dashboard for the payment. 2. If the donor was charged, do not take the donation again. 3. Contact [Jovvie support](https://jovvie.com/support/). To avoid this, wait on the payment page until it sends you to the donation receipt. Do not close the tab during a payment. For the steps, see [Take an in-person donation](https://docs.jovvie.com/checkout/givewp/take-a-donation/). ## Checkout for Event Tickets Event Tickets uses Tickets Commerce order statuses. | What happened | Order status | | --------------------------------------------------------------------------- | ------------- | | The buyer paid, and your site received the payment confirmation from Stripe | **Completed** | | The payment failed, and your site received that update from Stripe | **Denied** | Returning to your site after the payment does not complete the order. The ticket order success page can appear before the order is **Completed**. The order is completed only when your site receives the payment confirmation from Stripe (a [webhook](https://docs.jovvie.com/start-here/glossary/#webhook)). If an order stays unpaid after the buyer paid, check the **Last webhook received** date and time in the Jovvie settings, and check your Stripe Dashboard. Do not charge the buyer again. See [Sell tickets at the door](https://docs.jovvie.com/checkout/the-events-calendar/sell-tickets-at-the-door/#what-happens-to-the-order). ## Messages on the Jovvie payment page If you open a payment page for a payment that is no longer waiting for a card, the page shows one of these messages, along with a **Back** button: | Message | What it means | | ------------------------ | --------------------------------------------------------------------------------------------- | | **Payment completed** | The payment already went through. Do not charge again. Click **Back** to return to your site. | | **Payment cancelled** | The payment request was cancelled. To take the payment, start again from your site. | | **Something went wrong** | The payment has a problem. Check your Stripe Dashboard before you try again. | If you click **Process Payment** and see **Payment has already been processed.**, the payment is no longer waiting for a card. It may already have gone through. Check your Stripe Dashboard before you charge the customer again. For other messages, see [Checkout payment page errors](https://docs.jovvie.com/troubleshooting/checkout-errors/). ## Related - [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/) - [Use test mode](https://docs.jovvie.com/payments/test-mode/) - [Where to see your payouts](https://docs.jovvie.com/payments/payouts/) ## Need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/payments/payment-statuses/ --- # Web terminals and app terminals Section: Card readers and hardware > Learn the difference between card readers that register with a code and readers that connect through the Jovvie app. Jovvie groups Stripe card readers into two types: web terminals and app terminals. The type decides how you set up the reader and where your staff use it. This page explains the two types, so you know which setup steps apply to your reader. For the devices and browsers that run Jovvie itself, see [Devices and browsers that run Jovvie](https://docs.jovvie.com/hardware/devices-and-browsers/). > **Note: Using NMI?** > > This page covers Stripe readers. NMI terminals work differently. See [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). ## The two types | | Web terminal | App terminal | | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | | **How it connects** | Directly over the internet. | Through the Jovvie app on your phone or tablet. | | **How you set it up** | Enter the reader’s **Registration Code** in your Jovvie Point of Sale dashboard or, for a ready-made Jovvie Checkout integration, in the plugin settings. | The Jovvie app registers it for you. No code needed. | | **Where staff use it** | In a browser, on the Jovvie payment page or in the Point of Sale register. | In the Jovvie app on iOS or Android. | ### Web terminals A web terminal is a reader that connects to the internet by itself. You register it once by entering a [registration code](https://docs.jovvie.com/start-here/glossary/#registration-code), which is a short code the reader shows on its screen. After that, staff pick the reader from a list when they take a payment in a browser. In the settings of the ready-made Checkout integrations, readers listed as web terminals include, for example, Stripe Reader S700 and Wise POS E. To register a web terminal: - For Point of Sale, see [Set up card readers for a station](https://docs.jovvie.com/point-of-sale/set-up/card-readers/). - For Checkout, see [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). ### App terminals An app terminal is a reader, or a phone feature, that connects through the Jovvie app. You do not enter a registration code, because the app registers the reader for you. In the settings of the ready-made Checkout integrations, readers listed as app terminals include, for example, M2, WisePad 3, and Tap to Pay on iPhone and Android. Tap to Pay turns a supported phone into a card reader, so you do not need to buy extra hardware. The Jovvie app is available from the Apple App Store and Google Play. See [Devices and browsers that run Jovvie](https://docs.jovvie.com/hardware/devices-and-browsers/). ## Choose which type staff can use In Point of Sale, you can allow web terminals, app terminals, or both for a Stripe payment method: - **Terminal Types** on **Swipe/Insert/Tap** can be **Web terminal**, **iOS/Android app terminal**, or **iOS/Android app and Web terminal**. If staff use the register in a browser, make sure web terminals are allowed. - When **Terminal Types** allows both, staff who use the register inside the Jovvie app see **Android/iOS App Terminal** in the reader list, along with the web readers. ## Which readers are supported The reader models shown in the plugin settings are examples, not a complete list. Before you buy a reader, contact [Jovvie support](https://jovvie.com/support/) to confirm that it works with your setup. ## Related pages - [Reader not showing on the payment page](https://docs.jovvie.com/troubleshooting/reader-connection/) - [Card reader payment problems](https://docs.jovvie.com/point-of-sale/troubleshooting/card-readers/) ## Still need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/hardware/web-and-app-terminals/ --- # Devices and browsers that run Jovvie Section: Card readers and hardware > See which computers, phones, tablets, and browsers you can use with Jovvie. This page helps you check that the device you already have will work with Jovvie. Jovvie does not sell hardware, so you bring your own device, new or used. You can use either a computer or a phone or tablet. The lists on this page come from the Jovvie hardware page. For the latest version, see [jovvie.com/hardware](https://jovvie.com/hardware/). ## Phones and tablets You can run the Jovvie app on: - Android devices. Get the app from Google Play or the Sunmi App Marketplace. - iOS devices. Get the app from the Apple App Store. ## Computers You can use Jovvie on: - Windows - Mac - Linux - Chromebooks - Raspberry Pi ## Browsers Jovvie works in these browsers: - Chrome - Firefox - Safari - Edge - Opera - Brave ## Desktop apps You can also download the Jovvie desktop app for macOS or Windows. ## Card readers Which card reader you can use depends on how it connects. To learn more, see [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). ## Barcode scanners, printers, and cash drawers Choose hardware that is verified to work with your operating system. Check the maker’s instructions for your device before you buy. ## Related pages - [Which Jovvie product do I need?](https://docs.jovvie.com/start-here/choose-a-product/) - [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/) ## Still need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/hardware/devices-and-browsers/ --- # Card declined and payment error messages Section: Troubleshooting > Find out why a card payment did not go through and what to do next, for Stripe readers and NMI terminals. If a card payment did not go through, this page helps you find out why and what to do next. Stripe and NMI report failed payments differently, so each has its own section. This page covers payments that were declined or failed. For problems connecting to a reader, see [Reader not showing on the payment page](https://docs.jovvie.com/troubleshooting/reader-connection/) or [Card reader payment problems](https://docs.jovvie.com/point-of-sale/troubleshooting/card-readers/). > **Caution: Before you charge again** > > If you are not sure whether a payment went through, do not take another payment yet. Check that no payment completed and none is still processing. If you are still not sure, contact support first. ## Stripe With Stripe, the text of a decline message comes from Stripe and the card issuer, so the exact wording can vary. ### The card was declined **Symptom:** After the customer taps, inserts, or swipes their card, a message says the card was declined. You may see it on the Jovvie payment page or in the **Payment Processing** window in Point of Sale. **Cause:** The payment was refused, usually by the bank that issued the card. **Fix:** 1. Tell the customer the card was declined. 2. Ask for a different card or another payment method. 3. If the customer wants to know why, ask them to contact their bank. Do not keep trying the same card. ### The card details are not accepted on the Card option **Symptom:** You select **Card** on the Jovvie payment page, enter the card details, and click **Pay**. A message says the card number, expiry date, or security code is wrong, or that the card was declined. **Cause:** The details entered do not match the card, the card has expired, or the bank declined the payment. **Fix:** 1. Check each detail against the card with the customer. 2. Correct any mistakes. 3. Click **Pay** again. 4. If the message continues, ask for a different card or another payment method. ### **“Payment failed. Please try again with a different payment method.”** **Symptom:** This message appears in Point of Sale after a card payment. **Cause:** The order was marked as failed. This does not prove the card was not charged, so check the payment result before you charge again. **Fix:** 1. Check your Stripe Dashboard for a payment on this order. Look for payments that completed and payments that are still processing. 2. Check the order history for this order. 3. If no payment completed and none is still processing, take the payment again with a different payment method. If you see a completed or processing payment, do not charge again. Contact support. ## NMI NMI terminals work with Jovvie Point of Sale. ### **“Terminal payment failed.”** **Symptom:** The terminal shows the payment as declined or failed, and Point of Sale shows this message. **Cause:** The card was declined or the terminal could not complete the transaction. **Fix:** 1. Check the terminal screen to confirm the payment did not go through. 2. Check the order history for this order. 3. Tell the customer the payment did not go through. 4. Ask for a different card or another payment method. ### **“Terminal payment cancelled.”** **Symptom:** Point of Sale shows this message after a payment was started on the terminal. **Cause:** The transaction was cancelled on the terminal, for example by the customer or a staff member. **Fix:** 1. Check the terminal to confirm no payment went through. 2. Click the pay button again to start a new payment, or choose another payment method. ### **“This order has already been paid.”** **Symptom:** You click the pay button for an NMI payment and see this message. **Cause:** The order is already marked as paid. **Fix:** Do not charge again. Open the order in the order history to check its payments. If you think the order was marked paid by mistake, contact support. ### **“A terminal payment for this order is still being started. Check the terminal, wait a moment, and try again.”** **Symptom:** You click the pay button and see this message. **Cause:** A payment for this order was sent to the terminal moments ago and is still starting. **Fix:** 1. Look at the terminal. If it is asking for a card, let the customer complete the payment there. 2. If the terminal is idle, check the terminal screen and the order history for this order. 3. Confirm the customer was not charged and no payment is still processing. Waiting does not prove the payment failed. 4. Only then, click the pay button again. 5. If you cannot confirm the customer was not charged, do not try again. Contact support. For other NMI terminal messages, see [Card reader payment problems](https://docs.jovvie.com/point-of-sale/troubleshooting/card-readers/#nmi-terminals). ## Still need help? When you contact support, tell them which product you were using, the message you saw, the payment amount, and the time it happened. Never send card numbers by email or chat. Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/troubleshooting/payment-errors/ --- # Card reader not showing on the Jovvie Checkout payment page Section: Troubleshooting > Fix problems with the PIN prompt, the reader list, and reader status messages on the Jovvie payment page. If your reader does not show up on the Jovvie payment page, or the page asks for a PIN, this page helps you fix it. The Jovvie payment page is where staff choose a Stripe reader for a Jovvie Checkout payment. For the full steps, see [Take a payment on the Jovvie payment page](https://docs.jovvie.com/checkout/jovvie-payment-page/). > **Caution: Before you charge again** > > If a problem happens after you click **Process Payment**, look at the reader and check your Stripe Dashboard before you try again. The customer may already have been charged, or the payment may still be processing. ## Access and PIN ### You see a card form instead of a list of readers **Symptom:** The payment page shows fields for card details, not the **Choose a reader** list. **Cause:** The **Card** option is selected. **Fix:** Select **In-Person Payment**. ### **“Provide PIN to access”** **Symptom:** You select **In-Person Payment** and the page asks for a PIN instead of showing your readers. **Cause:** This device does not have access to your readers yet. The page asks for a PIN when nobody is signed in to WordPress on this device and the browser is not connected. A browser connection lasts one week, and it only works in the mode it was made in (live or test). **Fix:** 1. In **PIN**, enter the Access PIN for your Jovvie account. 2. Click **Submit**. If you do not know the Access PIN, ask the person who manages your Jovvie account. To stop the PIN prompt on a device your staff use often, connect the browser. See [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). ### **“Wrong PIN”** **Symptom:** You enter a PIN, click **Submit**, and briefly see this message. The PIN prompt stays on the page. **Cause:** The PIN does not match the Access PIN for your Jovvie account. **Fix:** 1. Enter the Access PIN again in **PIN**. 2. Click **Submit**. If it still fails, ask the person who manages your Jovvie account for the current Access PIN. ### **“Wrong PIN”** appears every time the page opens **Symptom:** As soon as the payment page opens, you see **Wrong PIN**, even though you did not enter anything. **Cause:** **Remember PIN** was selected on this browser earlier, and the Access PIN has changed since then. The page keeps trying the old PIN. **Fix:** 1. Enter the current Access PIN in **PIN**. 2. Select **Remember PIN**. 3. Click **Submit**. Only select **Remember PIN** on a device that only your staff use. ## Reader list ### **“No readers found”** **Symptom:** Under **Choose a reader**, the page shows **No readers found**, and you cannot click **Process Payment**. **Cause:** No readers are available for this payment. This happens when: - No reader is registered to your connected Stripe account. - Your readers are registered in a different mode. Readers registered in live mode do not appear for test payments, and the reverse. - This browser was connected with a location ID (the code for the place where your readers are registered), and no reader is registered to that location. **Fix:** 1. Check that a reader is registered to the same location and mode you are using. See [Set up a location and readers in WordPress](https://docs.jovvie.com/checkout/locations-and-readers/). 2. If this browser was connected with a location ID, check that it is the right location. If not, connect the browser again with the correct location ID, as described in [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). 3. Reload the page in your browser to refresh the reader list. ### Your reader is listed, but its status is offline **Symptom:** The reader appears under **Choose a reader**, but the status under its name shows it is offline. **Cause:** The reader is turned off, asleep, or not connected to the internet. **Fix:** 1. Turn the reader on and wake it. 2. Check that the reader is connected to the internet. 3. Wait for the reader to show it is ready. 4. Reload the page in your browser to refresh the reader list. ### You see simulated readers instead of your own readers **Symptom:** A **Test Mode** banner appears at the top of the page, and the reader list starts with the message **This is a simulated mode readers list. To select real readers, click the button below:** **Cause:** The payment is in test mode. In test mode, the page lists simulated readers, and no real card is charged. **Fix:** - To take a real payment, turn off test mode in your plugin and start the payment again. See [Use test mode](https://docs.jovvie.com/payments/test-mode/). - To test with a physical reader that is registered in test mode, click **Switch to live readers**. This does not leave test mode or charge a real card. ## Reader status during a payment ### **“Terminal is not ready. Please try again.”** **Symptom:** You click **Process Payment** and see this message. **Cause:** The page has not finished preparing to talk to your readers. No payment was started. **Fix:** 1. Wait a few seconds. 2. Click **Reload**. 3. Wait for the reader list to load. 4. Click **Process Payment**. ### **“Not connected. Please ensure your device is properly connected.”** **Symptom:** This status appears after you click **Process Payment**, and the reader does not ask for a card. **Cause:** The payment page cannot reach the reader. **Fix:** 1. Check that the reader is turned on, charged, and connected to the internet. 2. Look at the reader screen to see whether a payment is in progress. 3. Check your Stripe Dashboard to make sure no payment for this purchase completed or is still processing. 4. Only then, click **Process Payment** again. ### **“Not ready. Please check the system status.”** **Symptom:** This status appears after you click **Process Payment**. **Cause:** The reader is connected but not ready to take a payment. It may be busy, updating, or showing a message of its own. **Fix:** 1. Look at the reader screen and finish or cancel anything shown there. 2. Wait for the reader to be ready. 3. Check your Stripe Dashboard to make sure no payment for this purchase completed or is still processing. 4. Only then, click **Process Payment** again. ### **“Waiting for input. Please proceed on the connected terminal.”** but the reader shows nothing **Symptom:** The page shows this status, but the reader in front of the customer is not asking for a card. **Cause:** A different reader was selected under **Choose a reader**. The payment is waiting on that reader. **Fix:** 1. Find the reader whose name was selected, and cancel the payment on it. 2. Check your Stripe Dashboard to make sure no payment for this purchase completed or is still processing. 3. Reload the page in your browser. 4. Under **Choose a reader**, select the reader in front of the customer. 5. Click **Process Payment**. ### An error appears with **Back** and **Reload** buttons **Symptom:** After you click **Process Payment**, a message appears in a box with **Back** and **Reload** buttons. The text of the message comes from Stripe, for example when the reader could not be reached. **Cause:** The reader could not connect or could not finish the payment. **Fix:** 1. Look at the reader screen to see whether the payment went through. 2. Check your Stripe Dashboard for this payment. Look for payments that completed and payments that are still processing. 3. If a payment completed or is still processing, do not charge again. Contact support. 4. If no payment went through, click **Reload** and try again. **Back** returns you to your site. Do not use it to stop a reader payment, and do not assume it prevents a charge. Before leaving the page or starting another payment, check the reader and your Stripe Dashboard. Confirm that no payment completed and none is still processing. If you cannot confirm this, contact support first. ## Still need help? When you contact support, tell them which plugin you were using, the reader name, the message you saw, and the time it happened. Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/troubleshooting/reader-connection/ --- # Jovvie plugin account connection problems Section: Troubleshooting > Fix problems connecting a Jovvie plugin to your Jovvie account, including blocked connection windows and invalid keys. If a Jovvie plugin will not connect to your Jovvie account, this page helps you find the message you see and fix it. Connecting a plugin opens a connection window, and most problems happen in that window or on the plugin’s settings screen afterward. Only a WordPress administrator can connect a plugin. Sign in to WordPress as an administrator before you start. ## Connection window ### Nothing happens when you click the connect button **Symptom:** You click **Connect with Jovvie Payments** (WooCommerce, Gravity Forms, or GiveWP) or **Connect Automatically with Jovvie** (Event Tickets), and no window opens. **Cause:** Your browser blocked the connection window as a popup. **Fix:** 1. Allow popups for your WordPress site in your browser settings. 2. Reload the settings page. 3. Click the connect button again. ### **“Popup blocked”** **Symptom:** You try to connect Jovvie Point of Sale for WooCommerce to your Jovvie account and see **Popup blocked** with the message **Your browser blocked the connection window. Allow popups for this site in your browser settings and try again.** **Cause:** Your browser blocked the connection window. **Fix:** 1. Allow popups for your WordPress site in your browser settings. 2. Click **Retry connection**. For the full connection steps, see [Install Point of Sale for WooCommerce and connect](https://docs.jovvie.com/point-of-sale/woocommerce/install-and-connect/). ### Message starting with **“Failed to validate”** **Symptom:** At the end of the connection steps, the connection window shows a message starting with **Failed to validate**, for example **Failed to validate keys.** In Gravity Forms, the message is **Could not validate the returned keys.** **Cause:** Your WordPress site received the connection details but could not confirm them with Jovvie. This can happen when: - You are not signed in to WordPress as an administrator. - Your WordPress session expired while the connection window was open. - Your site could not reach Jovvie at that moment. **Fix:** 1. Close the connection window. 2. Check that you are signed in to WordPress as an administrator. 3. Reload the plugin’s settings page. 4. Start the connection again. If the message continues, contact support. ### Message starting with **“Unable to connect.”** **Symptom:** At the end of the connection steps, the connection window shows a message starting with **Unable to connect.** **Cause:** The connection window could not save the connection details to your WordPress site. A network problem, or a security or firewall plugin on your site, may have blocked the request. **Fix:** 1. Close the connection window. 2. Check that this device is connected to the internet. 3. Reload the plugin’s settings page. 4. Start the connection again. If the message continues, ask the person who manages your website whether a security or firewall plugin is blocking requests from WordPress settings pages. Then contact support. ### The connection window closed, but the plugin is not connected **Symptom:** You finished the steps in the connection window, but the settings page does not show **Connected**. **Cause:** The window was closed before the connection finished, or the settings page did not reload. After a successful connection, the window closes by itself after a few seconds and the settings page reloads. **Fix:** 1. Reload the plugin’s settings page. 2. If the status still does not show **Connected**, start the connection again and wait for the window to close by itself. ## WooCommerce connection status The connection status appears in **WooCommerce** > **Settings** > **Payments** > **Jovvie Payments** > **Account Management**, next to **Connection status**. ### The status does not show **Connected** **Symptom:** Instead of **Connected**, **Connection status** shows the **Connect with Jovvie Payments** button. **Cause:** The plugin has no keys saved (keys are codes that link the plugin to your Jovvie account), or the saved keys could not be confirmed with Jovvie. Your site may also have been unable to reach Jovvie at that moment. **Fix:** 1. Reload the settings page. 2. If the button still shows, click **Connect with Jovvie Payments**. 3. Follow the steps in the connection window. 4. Check that the status shows **Connected**. For more about connecting, see [Install and connect Jovvie Checkout for WooCommerce](https://docs.jovvie.com/checkout/woocommerce/install-and-connect/). ## Gravity Forms connection status The connection status appears in **Forms** > **Settings** > **Jovvie Payments**, in the **Jovvie Payments Account** group, next to **Connection Status**. ### The status does not show **Connected** **Symptom:** Instead of **Connected**, **Connection Status** shows the **Connect with Jovvie Payments** button. **Cause:** The add-on has no keys saved, or the saved keys could not be confirmed with Jovvie. Your site may also have been unable to reach Jovvie at that moment. **Fix:** 1. Reload the settings page. 2. If the button still shows, click **Connect with Jovvie Payments**. 3. Follow the steps in the connection window. 4. Check that the status shows **Connected**. For more about connecting, see [Install and connect Jovvie Checkout for Gravity Forms](https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/). ## GiveWP connection status The connection status appears in **Donations** > **Settings** > **Payment Gateways** > **Jovvie Payments** > **Account Management**, next to **Connection Status (live)** or **Connection Status (test)**, depending on GiveWP’s test mode. ### **“Not Connected: Invalid keys”** **Symptom:** The connection status shows **Not Connected: Invalid keys**. **Cause:** The keys saved in **Public Key** and **Secret Key** were rejected by Jovvie. This happens when the keys were typed incorrectly, or when they were changed or removed in your Jovvie account after the plugin was connected. **Fix:** Contact [Jovvie support](https://jovvie.com/support/). Leave **Public Key** and **Secret Key** unchanged unless support asks you to change them. For more about connecting, see [Install and connect Jovvie Checkout for GiveWP](https://docs.jovvie.com/checkout/givewp/install-and-connect/). ### **“Not Connected: Something went wrong”** **Symptom:** The connection status shows **Not Connected: Something went wrong**. **Cause:** The plugin could not check the connection with Jovvie. Your site may not have been able to reach Jovvie at that moment. **Fix:** 1. Wait a few minutes. 2. Reload the settings page. 3. If the status still shows this message, contact support. ## Event Tickets connection status The connection status appears in **Tickets** > **Settings** > **Payments**, in the **Jovvie** section. ### The status does not show **Connected** **Symptom:** Instead of **Status:** **Connected**, the **Jovvie** section shows the **Connect Automatically with Jovvie** button and **Or connect manually:**. **Cause:** The plugin has no keys saved, or the saved keys could not be confirmed with Jovvie. **Fix:** 1. Click **Connect Automatically with Jovvie**. 2. Follow the steps in the connection window. 3. Check that the status shows **Connected**. For more about connecting, see [Install and connect Jovvie Checkout for Event Tickets](https://docs.jovvie.com/checkout/the-events-calendar/install-and-connect/). ## Browser connection ### **“Failed to connect browser”** **Symptom:** You select **Connect this browser** in the plugin’s **Payment Connect** settings, save, and see this message. **Cause:** The plugin could not set up the browser connection. The plugin may not be connected to your Jovvie account, or your site could not reach Jovvie at that moment. **Fix:** 1. Check that the plugin’s connection status shows **Connected**. If it does not, fix the connection first using the entries on this page. 2. Try connecting the browser again, as described in [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). In Gravity Forms, this message does not appear. If you save with **Connect this browser** selected and stay on the settings page instead of going to the Jovvie page, follow the same steps. ## Point of Sale If the Point of Sale shows **Connection to Stripe failed. Go to POS > Settings > Stripe Connect.**, or rejects your NMI keys, see [Card reader payment problems](https://docs.jovvie.com/point-of-sale/troubleshooting/card-readers/). ## Still need help? When you contact support, tell them which plugin you were connecting, the message you saw, and the time it happened. Never send your keys or passwords by email or chat. Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/troubleshooting/account-connection/ --- # Jovvie Checkout payment page errors Section: Troubleshooting > Fix errors that appear when you send a WooCommerce order, Gravity Forms entry, GiveWP donation, or Event Tickets order to the Jovvie payment page, or when the payment page sends you back to your site. If an error appears when you take an in-person payment through Jovvie Checkout, this page helps you find the message you see and fix it. It covers errors on the way to the Jovvie payment page, on the payment page itself, and on the way back to your site. WooCommerce, Gravity Forms, GiveWP, and Event Tickets behave differently, so each has its own section. For declined cards, see [Card declined and payment error messages](https://docs.jovvie.com/troubleshooting/payment-errors/). For PIN prompts and reader problems, see [Reader not showing on the payment page](https://docs.jovvie.com/troubleshooting/reader-connection/). > **Caution: Before you charge again** > > An error after the customer used the reader does not mean the card was not charged. Before you take the payment again, check your Stripe Dashboard. Make sure no payment went through and none is still processing. If you are not sure, contact support first. ## Jovvie payment page ### **“An error occurred. Please try again.”** **Symptom:** This message appears in a box with **Back** and **Reload** buttons. It can appear when the payment page opens, or after you click **Process Payment**. **Cause:** The payment page could not load the payment, or could not finish talking to the reader. A network problem is the most common reason. **Fix:** 1. Look at the reader screen to see whether a payment is in progress or went through. 2. Check your Stripe Dashboard for this payment. Look for payments that completed and payments that are still processing. 3. If a payment completed or is still processing, do not charge again. Contact support. 4. If no payment went through, check that this device is connected to the internet. 5. Click **Reload**. 6. Take the payment again. Do not click **Back** until you confirm no payment went through. With GiveWP, **Back** can mark the donation **Abandoned** even if the card was charged. ### **“Payment has already been processed.”** **Symptom:** You click **Process Payment** or **Pay** and see this message. **Cause:** This payment is no longer waiting for a card. It may already have gone through, or it may have been cancelled. **Fix:** 1. Do not charge the customer again. 2. Check your Stripe Dashboard for this payment. 3. Reload the page in your browser to see the current status of the payment. 4. If the page shows **Payment completed**, see [Payment completed](https://docs.jovvie.com/troubleshooting/checkout-errors/#payment-completed). 5. If the page shows **Payment cancelled**, see [Payment cancelled](https://docs.jovvie.com/troubleshooting/checkout-errors/#payment-cancelled). ### **“Payment completed”** **Symptom:** The payment page shows **Payment completed** and a **Back** button, instead of the reader list. **Cause:** The customer already paid, but the browser did not go back to your site. For example, the page was reloaded or opened again after the payment. **Fix:** 1. Do not charge the customer again. 2. Click **Back**. Your site records the payment: - **WooCommerce**: you see the order received page. The order moves to **Processing** when your site receives the payment confirmation from Stripe. - **Gravity Forms**: you see the form’s confirmation, and the add-on checks the payment and marks the entry **Paid**. - **GiveWP**: you see the donation receipt, and GiveWP marks the donation **Complete**. - **Event Tickets**: you see the ticket order success page. ### **“Payment cancelled”** **Symptom:** The payment page shows **Payment cancelled** and a **Back** button. **Cause:** This payment was cancelled, for example because someone clicked **← Back** on the payment page earlier. You cannot take a payment on a cancelled payment page. **Fix:** 1. Check your Stripe Dashboard to make sure no payment for this purchase completed or is still processing. 2. Click **Back** to return to your site. 3. If no payment went through, start a new order, form entry, donation, or ticket order. If a payment went through, do not charge again. Contact support. ## WooCommerce With WooCommerce, an order is only marked paid when your site receives the payment confirmation from Stripe. This confirmation is called a webhook, which is an automatic message one system sends to another. See the [glossary](https://docs.jovvie.com/start-here/glossary/#webhook). The order received page does not complete the order. ### **“An error occurred while trying to proceed to payment using Jovvie Payments.”** **Symptom:** You click **Place order** and the checkout page shows this message. The Jovvie payment page does not open. **Cause:** Your site could not create the payment with Jovvie. This can happen when the plugin is not connected to your Jovvie account, or your site could not reach Jovvie at that moment. No card was charged, because the payment page never opened. **Fix:** 1. Ask an administrator to check that **Connection status** shows **Connected** in **WooCommerce** > **Settings** > **Payments** > **Jovvie Payments** > **Account Management**. If it does not, see [Account connection problems](https://docs.jovvie.com/troubleshooting/account-connection/#woocommerce-connection-status). 2. Check that this device is connected to the internet. 3. Click **Place order** again. 4. If the message continues, contact support. ### The order received page appears, but the order is **Pending payment** **Symptom:** The customer paid on the reader and you saw the WooCommerce order received page, but the order still shows **Pending payment**. **Cause:** Your site has not received the payment confirmation from Stripe yet. The order received page does not complete the order. If confirmations are not set up for your site, or for the mode you are in, the order stays **Pending payment**. **Fix:** 1. Do not charge the customer again. 2. Check your Stripe Dashboard for this payment. Look for payments that completed and payments that are still processing. 3. Follow the steps in [Take an in-person payment for an order](https://docs.jovvie.com/checkout/woocommerce/take-a-payment/#what-happens-to-the-order). 4. Contact support to confirm that payment confirmations are set up for your site. ### **“No webhook received for Stripe + Jovvie In-person. Please check your settings.”** **Symptom:** This notice appears in your WordPress admin. **Cause:** Your site did not receive a payment confirmation from Stripe after a payment. Orders paid since then may still show **Pending payment**. **Fix:** 1. Do not charge any customer again because of this notice. 2. In WooCommerce, look for recent Jovvie orders that still show **Pending payment**. 3. For each one, check your Stripe Dashboard to see whether the payment went through or is still processing. 4. Contact support to confirm that payment confirmations are set up for your site, before you take more payments. ## Gravity Forms With Gravity Forms, problems that stop a payment from starting are written as notes on the form entry. To read them, open the entry in **Forms** > **Entries**. ### The Jovvie payment page does not open, and the entry note starts with **“Jovvie payment not started”** **Symptom:** You submit the form, but you are not sent to the Jovvie payment page. The entry has the note **Jovvie payment not started: the form did not produce a positive payment amount.** **Cause:** The form’s total was zero or less when it was submitted. Jovvie charges the amount your form produces, so there was nothing to charge. No card was charged, because the payment page never opened. **Fix:** 1. Ask an administrator to check that the form has a pricing field that produces an amount greater than zero. See [Add Jovvie to a form](https://docs.jovvie.com/checkout/gravity-forms/add-to-a-form/#add-a-pricing-field). 2. Open the form again. 3. Fill it out with the customer’s choices, and check that the total is more than zero. 4. Submit the form. ### The entry note starts with **“Jovvie Payments is not configured”** **Symptom:** You submit the form, but you are not sent to the Jovvie payment page. The entry’s payment status is **Failed**, and its note starts with **Jovvie Payments is not configured**. **Cause:** The **Public Key** and **Secret Key** are missing, so the add-on is not connected to your Jovvie account. No card was charged. **Fix:** 1. Ask an administrator to connect the add-on. See [Install and connect](https://docs.jovvie.com/checkout/gravity-forms/install-and-connect/#connect-with-jovvie-payments). 2. Check that **Connection Status** shows **Connected**. 3. Submit the form again. ### The entry note starts with **“Jovvie payment could not be created”** **Symptom:** You submit the form, but you are not sent to the Jovvie payment page. The entry’s payment status is **Failed**, and its note starts with **Jovvie payment could not be created**, followed by an error code. **Cause:** Jovvie did not accept the request to create the payment, or your site could not reach Jovvie at that moment. The payment page not opening does not prove that no payment started. Before you submit the form again or take payment another way, check your Stripe Dashboard and confirm that no payment went through and none is still processing. If you cannot confirm this, contact [Jovvie support](https://jovvie.com/support/). **Fix:** 1. Ask an administrator to check that **Connection Status** shows **Connected** in **Forms** > **Settings** > **Jovvie Payments**. If it does not, see [Account connection problems](https://docs.jovvie.com/troubleshooting/account-connection/#gravity-forms-connection-status). 2. Check that this device is connected to the internet. 3. Submit the form again. 4. If it fails again, contact support and tell them the error code from the note. ### The confirmation appears, but the entry is still **Processing** **Symptom:** The customer paid and you saw the form’s confirmation, but the entry’s payment status is still **Processing**. **Cause:** The add-on could not confirm the payment with Jovvie when the browser came back to your site. The card may have been charged. **Fix:** 1. Do not charge the customer again. 2. Check your Stripe Dashboard for this payment. Look for payments that completed and payments that are still processing. 3. Wait for the hourly check to update the entry. See [Take an in-person payment with a form](https://docs.jovvie.com/checkout/gravity-forms/take-a-payment/#what-happens-to-the-entry). 4. If the entry does not update, or you are not sure, contact support. ### Message starting with **“Jovvie Payments: no payment webhook has been received recently.”** **Symptom:** This notice appears in your WordPress admin. It only appears when **Diagnostics** is turned on in the add-on settings. **Cause:** Your site has not received a payment update from Jovvie for a while after a payment. Your site uses these updates to learn about failed and cancelled payments. **Fix:** 1. Do not charge any customer again because of this notice. 2. In **Forms** > **Entries**, look for recent entries that still show **Processing**. 3. For each one, check your Stripe Dashboard to see whether the payment went through or is still processing. 4. Contact support to confirm that payment updates from Jovvie are set up for your site. ## GiveWP With GiveWP, a one-time donation is only marked **Complete** when the browser comes back to your site after the payment. If the browser does not come back, GiveWP does not find out about the payment on its own. ### **“Invalid Checkout Error”** right after you submit the donation form **Symptom:** You select **Swipe, Insert or Tap Donations**, submit the form, and see **Invalid Checkout Error**. The Jovvie payment page does not open. **Cause:** Your site could not create the payment with Jovvie. This can happen when the plugin is not connected to your Jovvie account, or your site could not reach Jovvie at that moment. No card was charged, because the payment page never opened. **Fix:** 1. Ask an administrator to check that the connection status shows **Connected** in **Donations** > **Settings** > **Payment Gateways** > **Jovvie Payments** > **Account Management**. If it does not, see [Account connection problems](https://docs.jovvie.com/troubleshooting/account-connection/#givewp-connection-status). 2. Check that this device is connected to the internet. 3. Open the donation form again. 4. Submit the donation again. ### **“Invalid Checkout Error”** after the donor paid **Symptom:** The donor tapped, inserted, or swiped their card on the reader. Instead of the donation receipt, you see **Invalid Checkout Error**. **Cause:** The payment page sent you back to your site, but GiveWP could not confirm the payment. This can happen when your site could not reach Jovvie at that moment, or when the plugin was reconnected or GiveWP test mode was changed while the payment page was open. The card may have been charged, but the donation stays **Pending**. **Fix:** 1. Do not charge the donor again yet. 2. Check your Stripe Dashboard for this payment. Look for payments that completed and payments that are still processing. 3. If a payment completed or is still processing, do not charge again. Contact support so the payment can be matched to the donation. 4. If no payment went through and none is processing, open the donation form again. 5. Submit a new donation. ### The donation shows **Pending** after the donor paid **Symptom:** The donor’s card was charged, but the donation in GiveWP still shows **Pending**. **Cause:** The browser did not come back to your site after the payment. For example, the tab was closed, the device lost its connection, or GiveWP showed **Invalid Checkout Error**. The donation is not updated later on its own. **Fix:** 1. Check your Stripe Dashboard to confirm the payment went through. 2. Do not charge the donor again. 3. Contact support so the payment can be matched to the donation. To avoid this, stay on the payment page until the donation receipt appears. Do not close the tab or leave the page while the reader is processing. ### The donation shows **Abandoned** after the donor paid **Symptom:** The donor’s card was charged, but the donation in GiveWP shows **Abandoned** with the note **Donation canceled by user.** **Cause:** Someone clicked **← Back** or **Back** on the payment page around the time the donor paid. GiveWP marks the donation **Abandoned** when you leave the payment page this way, even if the payment went through. **Fix:** 1. Check your Stripe Dashboard to confirm the payment went through. 2. Do not charge the donor again. 3. Contact support so the payment can be matched to the donation. To avoid this, only click **← Back** or **Back** after you confirm the donor has not paid. See [Take an in-person donation](https://docs.jovvie.com/checkout/givewp/take-a-donation/). ## Event Tickets Event Tickets errors appear on the ticket checkout page, under the **Purchase Tickets** button. The Jovvie payment page does not open, so no card was charged. ### **“Invalid request”** **Symptom:** You click **Purchase Tickets** and see **Invalid request**. **Cause:** The checkout page is out of date, for example because it was open for a long time, or Jovvie was turned off or disconnected after the page opened. **Fix:** 1. Reload the checkout page. 2. Click **Purchase Tickets** again. 3. If the message continues, ask an administrator to check that the Jovvie status shows **Connected** in **Tickets** > **Settings** > **Payments**. If it does not, see [Account connection problems](https://docs.jovvie.com/troubleshooting/account-connection/#event-tickets-connection-status). ### **“Cart is empty”** **Symptom:** You click **Purchase Tickets** and see **Cart is empty**. **Cause:** There are no tickets in the cart, so there is nothing to pay for. **Fix:** 1. Go back to the event or ticket page. 2. Add the tickets the buyer wants. 3. Go to the checkout page. 4. Click **Purchase Tickets**. ### **“Failed to create order”** **Symptom:** You click **Purchase Tickets** and see **Failed to create order**. **Cause:** Event Tickets could not create the ticket order. **Fix:** 1. Reload the checkout page. 2. Click **Purchase Tickets** again. 3. If the message continues, contact support. ### Another message appears under **Purchase Tickets** **Symptom:** You click **Purchase Tickets** and see a different message, and the payment page does not open. **Cause:** Either the buyer’s details are missing or not valid, or your site could not create the payment with Jovvie. The wording depends on the problem. **Fix:** 1. If the message is about the buyer’s name or email, correct the details. 2. Click **Purchase Tickets** again. 3. If the message continues, check that this device is connected to the internet. 4. Ask an administrator to check that the Jovvie status shows **Connected** in **Tickets** > **Settings** > **Payments**. 5. If the message still continues, ask an administrator to turn on debug logs and try again, as described in [Turn on debug logs](https://docs.jovvie.com/checkout/the-events-calendar/logs/). Then contact support. ### The success page appears, but the order is not completed **Symptom:** The buyer paid and you saw the ticket order success page, but the order is not marked completed. **Cause:** With Event Tickets, the order is only marked completed when your site receives the payment confirmation from Stripe. The success page does not complete the order. **Fix:** Do not charge the buyer again. Follow the steps in [Sell tickets at the door](https://docs.jovvie.com/checkout/the-events-calendar/sell-tickets-at-the-door/#what-happens-to-the-order). ## Still need help? When you contact support, tell them which plugin you were using, the message you saw, the payment amount, and the time it happened. Never send card numbers by email or chat. Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/troubleshooting/checkout-errors/ --- # Contact support Section: Troubleshooting > How to reach Jovvie support and what to include so we can help you quickly. If a page in these docs does not solve your problem, Jovvie support is happy to help. This page lists what to gather first so they can help you quickly. ## Before you contact support Gather these details. They help support find the problem faster. - Which Jovvie product you use: Jovvie Pay, Jovvie Checkout, or Jovvie Point of Sale. - For Jovvie Checkout, which integration you use: WooCommerce, Gravity Forms, GiveWP, Event Tickets, or your own integration. - For Point of Sale, the station name. A station is one register in Point of Sale. - Whether you use Stripe or NMI. - The exact message you saw, word for word. A screenshot of the message also helps. - The date and time it happened. - What you were doing when it happened, and what you already tried. > **Caution** > > Never send card numbers, passwords, or API keys to support, in any form or message. ## Contact support Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/troubleshooting/contact-support/ --- # Build your own Jovvie Checkout integration Section: Developers > How developers and agencies can add Jovvie in-person card payments to any app, website, or platform with the Jovvie PHP SDKs. Jovvie Checkout adds in-person card payments to any app, website, or platform. If your platform does not have a ready-made Jovvie integration, you can build your own with the Jovvie PHP SDKs. This section is for developers and agencies doing that work for a merchant. Anyone can build an integration. The ready-made integrations for WooCommerce, GiveWP, Gravity Forms, and Event Tickets work the same way as the one you will build. ## What you can build Your integration runs on your server and lets the merchant’s staff take a card payment on a card reader from inside your app. For example, you can add in-person payments to: - A booking or appointment system - A membership, class, or club platform - An event check-in or ticketing app - A custom online store that also sells in person With the SDKs, your integration can: - Create one-time payments and send staff to the [Jovvie payment page](https://docs.jovvie.com/start-here/glossary/#jovvie-payment-page) to take them. - Create recurring payments (Stripe only). - Give staff access to the merchant’s card readers (Stripe only). - Send a payment straight to a registered NMI terminal (NMI only). - Check a payment’s status and receive [webhooks](https://docs.jovvie.com/start-here/glossary/#webhook) when it changes. Refunds are not available in the SDKs yet. SDK support for refunds is planned. Merchants refund in their Stripe Dashboard or in the NMI portal. See [Refunds](https://docs.jovvie.com/developers/refunds/). ## How a payment works A typical payment goes like this: 1. A staff member starts a checkout in your app. 2. Your server creates a payment with the SDK. You give the amount, currency, description, and the addresses to send the browser back to afterward. Jovvie returns the payment with its ID and a checkout link. 3. Your server saves the payment ID with your order. 4. Your app sends the staff member’s browser to the checkout link. This opens the Jovvie payment page. 5. On the payment page, staff choose a card reader. The customer taps, inserts, or swipes their card on the reader. 6. After checkout, the payment page sends the browser to your return URL. If staff click **← Back** while the payment is still `pending`, Jovvie marks it `cancelled`. **← Back** then goes to your cancel URL when the payment is `cancelled`, and to your return URL for any other status. Closing the browser tab does not redirect the browser. 7. Your server confirms the result. It fetches the payment with the SDK and checks its status, and it listens for webhooks about later changes. 8. Your app marks the order as paid. For what staff see in step 5, see [Take a payment on the Jovvie payment page](https://docs.jovvie.com/checkout/jovvie-payment-page/). > **Caution: Never trust the return URL alone** > > Anyone can open your return URL in a browser. Before you mark an order as paid, fetch the payment with the SDK on your server and check its status, or wait for a verified webhook. See [Check a payment’s status](https://docs.jovvie.com/developers/check-payment-status/) and [Handle webhooks](https://docs.jovvie.com/developers/webhooks/). ## Who can use the card readers The payment page only lists the merchant’s card readers on a device that is allowed to use them. With the Stripe SDK, your server can create an authorization link that unlocks the readers in a staff member’s browser. Only give these links to the merchant’s staff, never to customers or anonymous visitors. See [Unlock card readers for staff](https://docs.jovvie.com/developers/unlock-card-readers/). ## Stripe or NMI Jovvie has one SDK for each payment processor. Use the one that matches the merchant’s account. The ready-made Checkout plugins are Stripe only, but your own integration can use either processor. | | Stripe | NMI | | ------------------------------ | ------------------------------------- | --------------------------------------------------- | | Composer package | `bizswoop/jovvie-payments` | `bizswoop/jovvie-payments-gateway` | | Client class | `JovviePayments\JovviePaymentsClient` | `JovviePaymentsGateway\JovviePaymentsGatewayClient` | | Platform provider ID | Required | Not used | | Test mode | Yes | No. Every payment is real | | One-time payments | Yes | Yes | | Recurring payments | Yes | No | | Authorization links for staff | Yes | No | | Register and list terminals | No | Yes | | Webhook event names start with | `jovvie.` | `jovvie-gateway.` | | Refunds | In the Stripe Dashboard | In the NMI portal | For the merchant-facing differences, see [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). ## What you need - A platform provider ID from Jovvie support (Stripe SDK only). Your integration must pass it explicitly. Without the right ID, an integration can work in test mode and fail in live mode. - A merchant account with Stripe or NMI connected. - A server application in the merchant’s Payments Dashboard, with its public key, secret key, and webhook key. - A server that runs PHP 7.4 or later with Composer. - An HTTPS address on your server to receive webhooks. [Get started](https://docs.jovvie.com/developers/get-started/) walks you through each of these. ## Pages in this section 1. [Get started](https://docs.jovvie.com/developers/get-started/) 2. [Install the SDK](https://docs.jovvie.com/developers/install-the-sdk/) 3. [Create a payment (Stripe)](https://docs.jovvie.com/developers/create-a-payment/) 4. [Unlock card readers for staff](https://docs.jovvie.com/developers/unlock-card-readers/) 5. [Take payments with NMI](https://docs.jovvie.com/developers/nmi-payments/) 6. [Handle webhooks](https://docs.jovvie.com/developers/webhooks/) 7. [Check a payment’s status](https://docs.jovvie.com/developers/check-payment-status/) 8. [Recurring payments](https://docs.jovvie.com/developers/subscriptions/) 9. [Refunds](https://docs.jovvie.com/developers/refunds/) 10. [Test your integration](https://docs.jovvie.com/developers/test-mode/) 11. [Handle errors](https://docs.jovvie.com/developers/errors/) ## Need help? To get a platform provider ID or ask about your integration, contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/developers/ --- # Get started with a custom Jovvie Checkout integration Section: Developers > Get a platform provider ID from Jovvie, check the merchant's account, and create a server application to get your API keys. Before you build a custom Jovvie Checkout integration, you need a merchant account with Stripe or NMI connected and a set of API keys. For Stripe only, you also need a platform provider ID from Jovvie. ## Before you start - Read [Build your own Jovvie Checkout integration](https://docs.jovvie.com/developers/) to see how a payment works. - Know whether the merchant uses Stripe or NMI. The steps on this page are the same for both unless a step says otherwise. ## Step 1: Get a platform provider ID The Stripe SDK needs a platform provider ID. It tells Jovvie which integration is making each request. You must get your own platform provider ID from Jovvie and pass it explicitly every time you create the SDK client. To get one, contact [Jovvie support](https://jovvie.com/support/). Tell them about your app and the merchants who will use it. > **Caution: Your integration can work in test mode and still fail in live mode** > > Use only the platform provider ID that Jovvie support gives you. Do not make one up, leave a placeholder, or copy a value from another project or example. Some values are accepted in test mode only, so an integration can pass every test and then stop working when you switch it to live mode. Get your platform provider ID before you start testing, and test with the same ID you will use in live mode. The NMI SDK does not use a platform provider ID. If you are only building for NMI, skip this step. ## Step 2: Check the merchant’s account The merchant needs a Jovvie account with their payment processor connected: - **Stripe:** the merchant’s Stripe account is connected in the Payments Dashboard. The **Applications** page only appears after it is connected. - **NMI:** the merchant has an NMI account set up in the Jovvie payments gateway dashboard. If you are an agency, the merchant (or an administrator they choose) creates the server application in step 3 and enters its keys directly into your integration’s server-side settings or environment. Keys are never sent by email or chat. ## Step 3: Create a server application An application gives your integration its own set of keys. Create a new application for each integration. Do not reuse an application that a Jovvie plugin already uses. 1. Sign in to the Payments Dashboard. For NMI, sign in to the Jovvie payments gateway dashboard instead. 2. Click **Applications**. 3. Click **Create New**. 4. In **Name**, enter a name you will recognize, such as the name of your app. 5. In **Webhook URL**, enter the address on your server that will receive webhooks. It must start with `https://`. If your endpoint is not ready yet, you can add it later. 6. Click **Create**. The application’s page opens. Under **Keys Management**, you see: - **Public Key**: identifies your application. - **Secret Key**: proves requests come from your server. Keep it private. - **Webhook Key**: lets you check that a webhook really came from Jovvie. Keep it private. **Webhook Key** only appears after the application has a **Webhook URL**. This is the same with Stripe and NMI. To add a **Webhook URL** later: 1. Open the application’s page in the dashboard. 2. In **Webhook URL**, enter the address of your webhook endpoint. 3. Click **Save Changes**. The **Webhook Key** then appears under **Keys Management**. > **Note** > > With Stripe, use each application’s keys with one platform provider ID only. Create a separate application for each integration. ## Step 4: Store your keys Your code needs the public key, secret key, and webhook key. With Stripe, it also needs a platform provider ID. The examples use these placeholders: | Value | Placeholder | | ---------------------------------- | ------------------------ | | Public Key | `YOUR_PUBLIC_KEY` | | Secret Key | `YOUR_SECRET_KEY` | | Webhook Key | `YOUR_WEBHOOK_KEY` | | Platform provider ID (Stripe only) | `YOUR_PLATFORM_PROVIDER` | Keep them on your server: - Store them in environment variables or your platform’s secrets manager. - Never put the secret key or webhook key in browser code, a mobile app, a URL, or version control. - Never write them to logs or error messages. ## If a key is exposed If you think someone else has seen the secret key or webhook key: 1. Open the application’s page in the dashboard. 2. Click **Regenerate Keys**. 3. Copy the new keys to your server right away. The old keys stop working as soon as you regenerate them, so update your server at the same time. To stop an integration from making requests, open the application’s page, click **Enabled**, and confirm. The label changes to **Disabled**, and requests with that application’s keys are rejected until you click it again. ## Step 5: Plan for testing With Stripe, the same keys and platform provider ID work in live mode and in test mode. You choose the mode when you create the SDK client, so you can test without charging a real card. The NMI SDK has no test mode. See [Test your integration](https://docs.jovvie.com/developers/test-mode/). ## Next step [Install the SDK](https://docs.jovvie.com/developers/install-the-sdk/) and create your first client. Source: https://docs.jovvie.com/developers/get-started/ --- # Install the Jovvie PHP SDK for Stripe or NMI Section: Developers > Install the Jovvie PHP SDK for Stripe or NMI with Composer and create a client. Stripe supports live and test modes. NMI supports live payments only. This page shows you how to install the Jovvie PHP SDK, create a client with your keys, and check that it can reach the merchant’s account. There is one SDK for each payment processor. Install the one that matches the merchant’s account. If you support both, you can install both. ## Before you start - Get your keys and, for Stripe, your platform provider ID. See [Get started](https://docs.jovvie.com/developers/get-started/). - Your server needs: - PHP 7.4 or later - The PHP `curl` and `json` extensions - Composer ## Install the package For Stripe, run: ```bash composer require bizswoop/jovvie-payments ``` For NMI, run: ```bash composer require bizswoop/jovvie-payments-gateway ``` Both SDKs are open source: - Stripe: [GitHub](https://github.com/bizswoop-development/jovvie-payments-php) and [Packagist](https://packagist.org/packages/bizswoop/jovvie-payments) - NMI: [GitHub](https://github.com/bizswoop-development/jovvie-payments-gateway-php) and [Packagist](https://packagist.org/packages/bizswoop/jovvie-payments-gateway) Then load Composer’s autoloader in your code, if your framework does not already do this: ```php require __DIR__ . '/vendor/autoload.php'; ``` ## Create a client for Stripe ```php use JovviePayments\JovviePaymentsClient; $jovvie = new JovviePaymentsClient( 'YOUR_PUBLIC_KEY', 'YOUR_SECRET_KEY', 'YOUR_PLATFORM_PROVIDER', 'test', // 'live' or 'test' ['userAgent' => 'YourApp/1.0.0'] ); ``` The arguments are: | Argument | What to pass | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | Public key | The application’s **Public Key** | | Secret key | The application’s **Secret Key** | | Platform provider ID | The platform provider ID you got from Jovvie support. It is required | | Mode | `'live'` for real payments or `'test'` for test payments. The default is `'live'` | | Options | An array. Set `userAgent` to your app’s name and version, such as `YourApp/1.0.0`. It is added to the requests your integration sends | In your real code, read the keys and the platform provider ID from environment variables or a secrets manager instead of typing them into the file. > **Caution** > > Always pass the platform provider ID that Jovvie support gave you. Some values are accepted in test mode only. With one of those, your client works in test mode, but creating it in live mode throws an `InvalidArgumentException`, so the integration fails when the merchant goes live. If you do not have a platform provider ID yet, contact [Jovvie support](https://jovvie.com/support/) before you start testing. The main services are: | Method | Use it to | | ------------------------------- | ------------------------------------------------------------------- | | `$jovvie->payments()` | Create one-time and recurring payments, and get a payment by its ID | | `$jovvie->authorizationLinks()` | Create links that unlock card readers for staff | | `$jovvie->accounts()` | Get details of the merchant’s account | ## Create a client for NMI ```php use JovviePaymentsGateway\JovviePaymentsGatewayClient; $gateway = new JovviePaymentsGatewayClient( 'YOUR_PUBLIC_KEY', 'YOUR_SECRET_KEY', ['userAgent' => 'YourApp/1.0.0'] ); ``` The NMI client does not take a platform provider ID or a mode. The main services are: | Method | Use it to | | ---------------------- | ------------------------------------------------------- | | `$gateway->payments()` | Create a payment and get a payment by its ID | | `$gateway->devices()` | List, register, and remove the merchant’s NMI terminals | | `$gateway->accounts()` | Get details of the merchant’s account | ## Check your connection To check that your keys work, get the merchant’s account name. This makes a real request but does not create a payment. For Stripe: ```php $self = $jovvie->accounts()->self(); echo $self->account->name; ``` For NMI: ```php $self = $gateway->accounts()->self(); echo $self->name; ``` If the keys, the platform provider ID, or the merchant’s account are not right, the SDK throws an exception. See [Handle errors](https://docs.jovvie.com/developers/errors/). ## Live and test mode With Stripe, you choose the mode when you create the client. The same keys and platform provider ID work in both modes, so you only change the fourth argument: - `'test'`: no real card is charged. Use this while you build and test. - `'live'`: real payments. Any other value throws an `InvalidArgumentException`. Creating a live client with a platform provider ID that works in test mode only also throws an `InvalidArgumentException`. Payments, card readers, and authorization links in one mode do not appear in the other. Make the mode a setting in your integration, so the merchant can switch without a code change. The NMI SDK has no test mode. Every payment you create with it is real. See [Test your integration](https://docs.jovvie.com/developers/test-mode/). ## Next steps - Stripe: [Create a payment](https://docs.jovvie.com/developers/create-a-payment/) - NMI: [Take payments with NMI](https://docs.jovvie.com/developers/nmi-payments/) Source: https://docs.jovvie.com/developers/install-the-sdk/ --- # Create a Stripe payment with the Jovvie PHP SDK Section: Developers > Create a one-time payment with the Stripe SDK and send your staff to the Jovvie payment page to take it on a card reader. This page shows you how to create a one-time payment with the Stripe SDK. Your server creates the payment, and Jovvie gives you a checkout link to the Jovvie payment page. Your staff open that link, choose a card reader, and the customer pays. For NMI, see [Take payments with NMI](https://docs.jovvie.com/developers/nmi-payments/). For recurring payments, see [Recurring payments](https://docs.jovvie.com/developers/subscriptions/). ## Before you start - You installed the Stripe SDK and can create a client. See [Install the SDK](https://docs.jovvie.com/developers/install-the-sdk/). - The merchant’s Stripe account is connected, and you have the server application keys. See [Get started](https://docs.jovvie.com/developers/get-started/). - You use test mode while you build. See [Test your integration](https://docs.jovvie.com/developers/test-mode/). ## Create the payment Call `payments()->createOneTimePayment()` on your server. It takes these arguments, in this order: | Argument | Type | What it is | | -------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `$amount` | integer | The amount to charge, in the smallest currency unit. See [Amounts](https://docs.jovvie.com/developers/create-a-payment/#amounts). | | `$currency` | string | A three-letter ISO currency code, such as `usd`. The SDK sends it in lowercase. | | `$description` | string | A description of the payment. It cannot be empty. The payment page shows it. | | `$returnUrl` | string | Where the browser goes after the payment page is done. Must be a full URL. | | `$cancelUrl` | string | Where the browser goes when staff click **← Back** and the payment is `cancelled`. A `pending` payment is first marked `cancelled`. Other statuses use `$returnUrl`. Must be a full URL. | | `$options` | array | Optional. See [Options](https://docs.jovvie.com/developers/create-a-payment/#options). | ```php payments()->createOneTimePayment( 2500, // 25.00 in USD 'usd', 'Order YOUR_ORDER_ID', 'YOUR_RETURN_URL', 'YOUR_CANCEL_URL', [ 'lineItems' => [ ['name' => 'Coffee beans', 'quantity' => '2', 'amount' => '20.00'], ['name' => 'Mug', 'quantity' => '1', 'amount' => '5.00'], ], 'lineTotal' => '25.00', 'metadata' => [ 'order_id' => 'YOUR_ORDER_ID', ], ] ); // Save these with your order. $paymentId = $payment->id; $checkoutLink = $payment->generatedData->checkoutLink; ``` The method returns a `OneTimePayment` object. The fields you will use most: | Field | What it is | | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | | `id` | The Jovvie payment ID. Save it with your order. You need it to check the payment and to match webhooks. | | `status` | The payment status. A new payment is `pending`. See [Check a payment’s status](https://docs.jovvie.com/developers/check-payment-status/). | | `mode` | `live` or `test`. | | `amount`, `currency` | The amount (smallest currency unit) and currency. | | `generatedData->checkoutLink` | The link to the Jovvie payment page for this payment. | | `generatedData->paymentIntentId` | The ID of the Stripe payment behind this Jovvie payment. It helps you find the payment in your Stripe Dashboard. | ## Amounts Pass `$amount` as an integer in the smallest unit of the currency. For example, pass `2500` for 25.00 USD. Stripe treats some currencies, such as JPY and KRW, as zero-decimal currencies. They have no smaller unit, so you pass the whole amount. For example, pass `1000` for 1,000 JPY, not `100000`. Check Stripe’s list of zero-decimal currencies and keep your own list in your code. > **Caution** > > Always pass `lineItems` and `lineTotal` when you use a zero-decimal currency, so the payment page shows the right amounts. The amount you charge is always `$amount`. Line items and the line total only control what the payment page shows. If the merchant’s Stripe account cannot take the currency for this payment, the SDK throws a `BadRequestError`. See [Handle errors](https://docs.jovvie.com/developers/errors/). ## Options All options are optional. Pass them in the `$options` array. | Option | What it does | | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `lineItems` | An array of items to show on the payment page. Each item has `name`, `amount`, and `quantity`, all as strings. `amount` is the amount to show for that line, in normal currency units, such as `'20.00'`. If you leave it out, the page shows one line with your description. | | `lineTotal` | The total to show on the payment page, as a plain number in normal currency units, such as `'25.00'`. Do not add a currency code to it. | | `metadata` | Your own key and value pairs, such as your order ID. Values can be strings, numbers, or null. | | `preferences` | Settings for the payment page. `locationId` limits the reader list to one Stripe Terminal location. `terminalType` can be `web`, `app`, or `all` (the default) to choose which terminals the page offers. See [Web terminals and app terminals](https://docs.jovvie.com/hardware/web-and-app-terminals/). | About metadata: - Jovvie stores metadata on the Stripe payment, so you can see it in your Stripe Dashboard. - Do not use the keys `lineItems`, `lineTotal`, or `preferences`. Jovvie uses them for its own data. - Never put card data, passwords, or keys in metadata. > **Note** > > Jovvie stores your line items with the Stripe payment, and Stripe limits how long that stored value can be. Keep line item names short. If an order has many items, show a summary line instead of every item. ## Send staff to the payment page The checkout link opens the Jovvie payment page for this payment. 1. Store the payment ID with your order. 2. Send your staff member’s browser to the payment page. - If the staff member is signed in to your app, create an authorization link that redirects to the checkout link, and send the browser to the authorization link. The payment page then shows the card readers without asking for the Access PIN. See [Unlock card readers for staff](https://docs.jovvie.com/developers/unlock-card-readers/). - Otherwise, send the browser to the checkout link. To use a reader, staff select **In-Person Payment** and enter the Access PIN when the page shows **Provide PIN to access**. 3. Staff take the payment on the payment page. See [Take a payment on the Jovvie payment page](https://docs.jovvie.com/checkout/jovvie-payment-page/). When payment processing finishes, Jovvie sends the browser to your `$returnUrl`. Clicking **← Back** changes a `pending` payment to `cancelled`. Jovvie then uses `$cancelUrl` for a `cancelled` payment and `$returnUrl` for any other status, for example a `failed` payment after a declined card. > **Caution** > > Treat the checkout link like a key to this payment. Show it only to the merchant’s staff. Do not put it in emails, logs, or pages that customers can see. > > If a payment’s outcome is unclear, do not create another payment for the same order yet. Check every saved payment for the order with `payments()->get()` and check your Stripe Dashboard. Confirm that no payment went through and none is still processing before retrying or using another payment method. If you are unsure, contact [Jovvie support](https://jovvie.com/support/). ## Confirm the payment A visit to your return URL does not prove that the customer paid. Anyone can open that URL. When the browser arrives at your return URL: 1. Look up the Jovvie payment ID you saved for this order. Do not take the payment ID from the URL. 2. Fetch the payment with `$client->payments()->get($paymentId)`. 3. Mark the order paid only if `status` is `completed`. See [Check a payment’s status](https://docs.jovvie.com/developers/check-payment-status/) for the full list of statuses and how to find payments that never came back. Also handle webhooks for changes that happen later, such as refunds. See [Handle webhooks](https://docs.jovvie.com/developers/webhooks/). ## Related pages - [Unlock card readers for staff](https://docs.jovvie.com/developers/unlock-card-readers/) - [Check a payment’s status](https://docs.jovvie.com/developers/check-payment-status/) - [Handle webhooks](https://docs.jovvie.com/developers/webhooks/) - [Handle errors](https://docs.jovvie.com/developers/errors/) Source: https://docs.jovvie.com/developers/create-a-payment/ --- # Unlock card readers for staff with the Jovvie Stripe SDK Section: Developers > Use authorization links from the Stripe SDK so your staff can use card readers on the Jovvie payment page without the Access PIN. This page shows you how to let your staff use card readers on the Jovvie payment page without typing the Access PIN. You do this with an authorization link from the Stripe SDK. Without an authorization link, anyone who opens a checkout link and selects **In-Person Payment** sees **Provide PIN to access** and must enter the Access PIN, the PIN that lets someone use the merchant’s readers. An authorization link unlocks the readers in one browser for a set time. Authorization links are part of the Stripe SDK only. For NMI, see [Take payments with NMI](https://docs.jovvie.com/developers/nmi-payments/). ## How an authorization link works 1. Your server creates the link with `authorizationLinks()->create()`. 2. Your app sends a staff member’s browser to the link. 3. Jovvie records that this browser is allowed to use the readers, then sends the browser to your redirect URL. Keep these rules in mind: - **Each link works once.** After a browser opens it, the link cannot be opened again. Create a new link each time. - **The access lasts until the expiry time.** If you do not set one, the link and the access expire after 1 hour. - **The access covers every payment page in that browser,** not only the one you redirect to. It applies to this merchant’s payments in the same mode (live or test) as the client that created the link. > **Caution** > > An authorization link gives card reader access to whoever opens it. Only create links for the merchant’s signed-in staff, and only send them to that staff member’s browser. Never show an authorization link to customers or anonymous visitors, and never put one in an email, a log, or a public page. ## Create an authorization link Call `$client->authorizationLinks()->create($options, $expiresAt)`. | Argument | What it is | | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `$options['redirectUrl']` | Where to send the browser after the link is opened. Must be a full URL. Always pass it. | | `$options['paymentMethodTypes']` | Which payment options the payment page offers in this browser. See [Payment method types](https://docs.jovvie.com/developers/unlock-card-readers/#payment-method-types). | | `$options['locationId']` | Optional. The ID of a Stripe Terminal location in the merchant’s Stripe account. The payment page then shows only the readers in that location. You can find location IDs in your Stripe Dashboard. | | `$expiresAt` | Optional. When the link and the access expire, as an ISO 8601 date and time with a time zone offset. If you leave it out, they expire after 1 hour. | The method returns an `AuthorizationLink` object. Send the browser to its `authorizationLink` field. > **Caution** > > Always pass `redirectUrl`, so the browser returns to the page you chose. ### Payment method types `paymentMethodTypes` accepts either `true` or an array of these values: | Value | What the payment page shows | | ------------------ | ------------------------------------------------------------------------------ | | `card` | **Card**, a form where the card details are typed on the page. | | `terminal` | **In-Person Payment** with the reader list, without asking for the Access PIN. | | `request-terminal` | **In-Person Payment** that asks for the Access PIN first. | If you pass `true`, the payment page keeps the options set on each payment and unlocks **In-Person Payment** so it does not ask for the Access PIN. If you pass an array, the payment page shows exactly those options in this browser. ## Unlock the readers for one payment Use this when a signed-in staff member takes a payment from your app. 1. Create the payment. See [Create a payment (Stripe)](https://docs.jovvie.com/developers/create-a-payment/). 2. Create an authorization link with the checkout link as the redirect URL. 3. Send the staff member’s browser to the authorization link. ```php authorizationLinks()->create( [ 'redirectUrl' => $payment->generatedData->checkoutLink, 'paymentMethodTypes' => ['terminal', 'card'], ], $expiresAt ); header('Location: ' . $link->authorizationLink); exit; ``` The browser opens the Jovvie payment page with the readers ready. For a link like this, use a short expiry, because the browser keeps reader access until it expires. ## Connect a browser to a location Use this for a shared device, such as a counter tablet or a kiosk, that should always show one location’s readers. A staff member connects the browser once, and it keeps reader access until the expiry time. 1. In your app’s settings, let a signed-in staff member choose a Stripe Terminal location. 2. Create an authorization link with that location, `paymentMethodTypes` set to `true`, a redirect URL back to your settings page, and a longer expiry. 3. On the shared device, have the staff member open your settings page and start the connection, so the device’s browser opens the authorization link. ```php authorizationLinks()->create( [ 'locationId' => $locationId, 'paymentMethodTypes' => true, 'redirectUrl' => 'YOUR_SETTINGS_PAGE_URL', ], $expiresAt ); header('Location: ' . $link->authorizationLink); exit; ``` Open the link in the browser that will take payments. The access belongs to the browser that opens the link, not to the device where you created it. When the expiry time passes, the browser goes back to asking for the Access PIN. Connect it again with a new link. For how this works from the merchant’s side, see [Use Checkout on a shared or kiosk device](https://docs.jovvie.com/checkout/connect-a-browser/). ## If the link does not work The link shows an error instead of redirecting when: - It was already opened once. - It expired. Create a new authorization link and try again. If the payment page still asks for the Access PIN, check that the link and the payment were created in the same mode (live or test). ## Related pages - [Create a payment (Stripe)](https://docs.jovvie.com/developers/create-a-payment/) - [Take a payment on the Jovvie payment page](https://docs.jovvie.com/checkout/jovvie-payment-page/) - [Reader not showing on the payment page](https://docs.jovvie.com/troubleshooting/reader-connection/) Source: https://docs.jovvie.com/developers/unlock-card-readers/ --- # Take NMI payments with the Jovvie PHP SDK Section: Developers > Create NMI payments, send them to a terminal, and manage the merchant's terminals with the Jovvie NMI SDK. This page shows you how to take in-person payments for a merchant who uses NMI. You use the NMI SDK to manage the merchant’s terminals (called devices in the SDK), create a payment, and either send it straight to a terminal or send your staff to the Jovvie payment page. The NMI SDK works a little differently from the Stripe SDK: - The client takes only the public key and the secret key. - There are no authorization links. You choose per payment whether the payment page asks for the Access PIN. - You can send a payment straight to a terminal when you create it. - There are no recurring payments. For the Stripe SDK, see [Create a payment (Stripe)](https://docs.jovvie.com/developers/create-a-payment/). For a side-by-side view, see [Stripe and NMI: what’s different](https://docs.jovvie.com/payments/stripe-vs-nmi/). ## Before you start - You installed the NMI SDK. See [Install the SDK](https://docs.jovvie.com/developers/install-the-sdk/). - The merchant’s NMI account is connected, and you have the server application keys. See [Get started](https://docs.jovvie.com/developers/get-started/). ```php list()` | Returns all of the merchant’s registered devices. | | `devices()->get($deviceId)` | Returns one device. | | `devices()->create($registrationCode, $name)` | Registers a terminal with its registration code and returns the new device. | | `devices()->delete($deviceId)` | Removes the device from the merchant’s account. | Each device has these fields: | Field | What it is | | -------------- | -------------------------------------------------- | | `publicId` | The Jovvie device ID. | | `name` | The device name. Staff see it on the payment page. | | `serialNumber` | The terminal’s serial number, if known. | | `createdAt` | When the device was registered. | ### Register a terminal 1. Get the terminal’s registration code. 2. Choose a name for it, from 1 to 20 characters. Use only letters, numbers, spaces, dashes (-), and underscores (\_). 3. Call `devices()->create()` with the code and the name. 4. Save the returned `publicId` if you want to send payments to this terminal. ```php devices()->create('YOUR_REGISTRATION_CODE', 'Front Counter'); echo $device->publicId; ``` > **Note** > > Always pass a terminal name. If the registration code is not accepted, the SDK throws a `ResponseError`. See [Handle errors](https://docs.jovvie.com/developers/errors/). ## Create a payment Call `payments()->create($amount, $currency, $description, $options)`. | Argument | What it is | | -------------- | ------------------------------------------------------------------------------------------------------------ | | `$amount` | The amount to charge, as an integer in the smallest currency unit. For example, `2500` for 25.00 USD. | | `$currency` | A three-letter ISO currency code, such as `usd`. Use a currency with two decimal places. | | `$description` | A description of the payment. It cannot be empty. The payment page shows it as the only line of the payment. | | `$options` | Optional. See the table of options in this section. | | Option | What it does | | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `returnUrl` | Where the browser goes after the payment page is done. Must be a full URL. | | `cancelUrl` | Where the browser goes when staff click **← Back** and the payment is `cancelled`. A `pending` payment is first marked `cancelled`. Other statuses use `returnUrl`. Must be a full URL. | | `deviceId` | A Jovvie device ID. Jovvie sends the payment to that terminal right away. | | `paymentMethodType` | `request-terminal` (the default) makes the payment page ask for the Access PIN. `terminal` shows the terminals without the PIN. | If you leave out `returnUrl` or `cancelUrl`, Jovvie uses its own payment status page in place of the missing URL. A URL you do pass still works as usual. Pass both so staff return to your app for either outcome. ```php payments()->create( 2500, 'usd', 'Order YOUR_ORDER_ID', [ 'returnUrl' => 'YOUR_RETURN_URL', 'cancelUrl' => 'YOUR_CANCEL_URL', 'deviceId' => 'YOUR_DEVICE_ID', ] ); // Save these with your order. $paymentId = $payment->id; $checkoutLink = $payment->generatedData->checkoutLink; ``` The method returns a `OneTimePayment` object with these fields: | Field | What it is | | ----------------------------- | ----------------------------------------------------- | | `id` | The Jovvie payment ID. Save it with your order. | | `status` | The payment status. A new payment is `pending`. | | `amount`, `currency` | The amount (smallest currency unit) and currency. | | `generatedData->checkoutLink` | The link to the Jovvie payment page for this payment. | To get the NMI transaction ID, use `getTransactionId()` on a verified NMI webhook event, such as `jovvie-gateway.payment.completed`. See [Handle webhooks](https://docs.jovvie.com/developers/webhooks/#nmi-sdk-events). If the device ID does not belong to the merchant, the SDK throws a `BadRequestError`. ## Take the payment How staff take the payment depends on whether you passed a `deviceId`. **With a device ID:** Jovvie sends the payment to that terminal as soon as you create it. The customer can pay on the terminal right away. If you also open the checkout link, the payment page asks for the Access PIN (unless `paymentMethodType` is `terminal`), then shows **Pay with Device** while it waits for the customer to finish on the terminal. **Without a device ID:** 1. Send a staff member’s browser to the checkout link. 2. If the page shows **Enter PIN**, the staff member enters the Access PIN and clicks **Continue**. 3. Under **Choose a reader**, the staff member selects a terminal. 4. The staff member clicks **Process Payment**. 5. The customer pays on the terminal. For how staff take an NMI payment in Point of Sale, see [Take a card payment with an NMI terminal](https://docs.jovvie.com/point-of-sale/sell/card-payment-nmi/). > **Caution** > > Treat the checkout link like a key to this payment. Show it only to the merchant’s staff. If you set `paymentMethodType` to `terminal`, anyone who has the checkout link can send the payment to the merchant’s terminals without the Access PIN. Use `terminal` only when the link goes to signed-in staff. ## Confirm the payment A visit to your return URL does not prove that the customer paid. 1. Look up the Jovvie payment ID you saved for this order. 2. Fetch the payment with `$client->payments()->get($paymentId)`. 3. Mark the order paid only if `status` is `completed`. Also handle NMI webhooks, which tell you when a payment completes, fails, is cancelled, or is refunded. See [Handle webhooks](https://docs.jovvie.com/developers/webhooks/) and [Check a payment’s status](https://docs.jovvie.com/developers/check-payment-status/). If a payment’s outcome is unclear, do not create a second payment for the same order until you have confirmed that the first one did not go through and is not still processing. ## Refunds The NMI SDK cannot refund a payment yet. SDK support for refunds is planned. Refunds are made in the NMI portal. See [Refunds](https://docs.jovvie.com/developers/refunds/). ## Related pages - [Handle webhooks](https://docs.jovvie.com/developers/webhooks/) - [Check a payment’s status](https://docs.jovvie.com/developers/check-payment-status/) - [Handle errors](https://docs.jovvie.com/developers/errors/) Source: https://docs.jovvie.com/developers/nmi-payments/ --- # Handle Jovvie webhooks with the PHP SDKs Section: Developers > Receive Jovvie webhook events on your server, verify them with the SDK, and process each event once. This page shows you how to receive Jovvie webhooks on your server. A webhook is a request Jovvie sends to your server when something happens to a payment, such as a failure, a cancellation, or a refund. You verify each request with the SDK and the webhook key, then update your records. Webhooks work alongside fetching payments. Always fetch the payment when the browser returns to your app, and use webhooks to learn about changes that happen later. See [Check a payment’s status](https://docs.jovvie.com/developers/check-payment-status/). ## Before you start - You installed the SDK. See [Install the SDK](https://docs.jovvie.com/developers/install-the-sdk/). - You have the merchant’s server application, with its **Webhook Key**. See [Get started](https://docs.jovvie.com/developers/get-started/). - Your server has a public HTTPS address. Jovvie does not send webhooks to plain HTTP addresses. ## Set your webhook URL 1. Add a route in your app that accepts `POST` requests. This is your webhook endpoint. 2. Sign in to the Payments Dashboard. 3. Go to **Applications** and open the merchant’s server application. 4. In **Webhook URL**, enter the full HTTPS address of your webhook endpoint. 5. Click **Save Changes**. 6. Copy the **Webhook Key** from the same page and store it in your server configuration. The **Webhook Key** only appears after the application has a **Webhook URL**. For NMI, use the **Applications** page of the Jovvie payments gateway dashboard. The fields are the same. > **Caution** > > Keep the webhook key on your server, like the secret key. Never log it, put it in a URL, or send it to a browser or mobile app. ## Verify each webhook Call `WebhookEvent::constructEvent()` with three values: - The raw request body, exactly as received. Read it with `file_get_contents('php://input')`. Do not decode and re-encode it first. - The value of the `X-Jovvie-Signature` request header. - Your webhook key. The SDK checks the signature with the webhook key. If the request is genuine, it returns an event object. If not, it throws a `WebhookError`. Reject every request that does not verify, and do not act on anything in it. The example uses the Stripe SDK. For NMI, see [Adapt the example for NMI](https://docs.jovvie.com/developers/webhooks/#adapt-the-example-for-nmi). ```php getMessage(), 'Unsupported event type') === 0) { // The signature is valid, but this SDK version does not know the event type. http_response_code(200); exit; } // Not verified. Reject it. http_response_code(400); exit; } // Ignore events from the other mode, so a test event never changes a live order. $appMode = 'YOUR_APP_MODE'; // 'live' or 'test'. Load this from your server configuration. if ($event->getPaymentMode() !== $appMode) { http_response_code(200); exit; } yourApp_beginTransaction(); try { // Your events table has a unique constraint on the event ID, // so this insert fails if the event was already handled. if (!yourApp_insertEventId($event->getId())) { yourApp_rollBack(); http_response_code(200); exit; } $order = yourApp_findOrderByJovviePaymentId($event->getPaymentId()); if (!$order) { // Keep the event so you can match it to an order later. yourApp_storeEventForReconciliation($event); } else { switch ($event->getType()) { case 'jovvie.payment.completed': case 'jovvie.payment.failed': case 'jovvie.payment.cancelled': case 'jovvie.payment.refunded': yourApp_syncPayment($order, $event); break; case 'jovvie.subscription.renewal.completed': case 'jovvie.subscription.renewal.failed': case 'jovvie.subscription.status.update': case 'jovvie.subscription.cancelled': yourApp_syncSubscription($order, $event); break; default: yourApp_storeEventForReconciliation($event); } } yourApp_commit(); } catch (\Throwable $e) { // Nothing was saved. Answer with an error so Jovvie sends the event again. yourApp_rollBack(); http_response_code(500); exit; } http_response_code(200); echo json_encode(['received' => true]); ``` The functions that start with `yourApp_` stand for your own code. For example, `yourApp_syncPayment()` fetches the payment with `payments()->get()` and updates the order to match. `yourApp_syncSubscription()` updates your subscription record. See [Recurring payments](https://docs.jovvie.com/developers/subscriptions/). ### Adapt the example for NMI For NMI, change three things: 1. In the `use` lines, use the `JovviePaymentsGateway` namespace instead of `JovviePayments`. 2. Remove the mode check. NMI events do not have `getPaymentMode()`. 3. Replace the `switch` with one that uses the NMI event names. NMI has no subscription events. ```php switch ($event->getType()) { case 'jovvie-gateway.payment.completed': case 'jovvie-gateway.payment.failed': case 'jovvie-gateway.payment.cancelled': case 'jovvie-gateway.payment.refunded': yourApp_syncPayment($order, $event); break; default: yourApp_storeEventForReconciliation($event); } ``` If you only change the namespace, no NMI event matches the Stripe event names, and your handler never updates the order. The SDK checks the signature before it looks at the event type. So when it throws a `WebhookError` that starts with `Unsupported event type`, the request did come from Jovvie, and you can answer with HTTP 200 and ignore it. > **Caution** > > Use `WebhookEvent::constructEvent()`, not `WebhookEvent::constructFrom()`. `constructFrom()` reads an event without checking the signature. ## Process each event once The same event can reach your server more than once, and two copies can arrive at the same time. Save the event ID and your changes together, in one database transaction: 1. Start a database transaction. 2. Insert the event ID from `$event->getId()` into a table that has a unique constraint on the event ID. 3. If the insert fails because the ID already exists, roll back, answer with HTTP 200, and stop. You already handled this event. 4. Find the order by the Jovvie payment ID. If there is no matching order, store the event so you can reconcile it later. 5. Otherwise, update your records. 6. Commit the transaction, then answer with HTTP 200. If anything fails before the commit, roll back and answer with an error status, so Jovvie sends the event again. Because of the unique constraint, only one copy of an event can be saved, even if two copies arrive at once. If your handler does something outside your database, such as sending an email, make that step safe to repeat as well, for example by recording it with the event ID. Also check the current state before you change it. For example, if an order is already marked paid, do not mark it paid again. ## Respond quickly Answer every verified webhook with an HTTP 200 status as soon as you can. Jovvie waits up to 5 seconds for a response. If your server does not answer in time, or answers with an error status, Jovvie tries again within a few seconds, up to three attempts in total. After that, Jovvie does not send the event again. If your work takes longer, save the event and process it after you respond. Because an event can be lost if all three attempts fail, also check pending payments on a schedule. See [Check a payment’s status](https://docs.jovvie.com/developers/check-payment-status/). ## Use the event data Every event has these methods: | Method | What it returns | | ---------------- | ---------------------------------------------------------------- | | `getId()` | The event ID. Use it to skip duplicates. | | `getType()` | The event type, such as `jovvie.payment.completed`. | | `getPayload()` | The event data as an array. | | `getPaymentId()` | The Jovvie payment ID. Use it to find the order in your records. | Match each event to your records by the Jovvie payment ID. Before you make a change that matters, such as marking an order paid, fetch the payment with `payments()->get()` and check its `status`. Each event type also has its own methods. If a value is missing from the event, the method throws a `WebhookError`. Catch it, and fall back to fetching the payment. ### Stripe SDK events All Stripe events also have `getPaymentMode()`, which returns `live` or `test`. Check it so a test event never changes a live order. | Event type | When it is sent | Other methods | | --------------------------------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | `jovvie.payment.completed` | A payment was paid. | `getPaymentIntentId()`, `getInvoiceAmount()`, `getInvoiceCurrency()`, `getInvoicePaid()` | | `jovvie.payment.failed` | A payment attempt failed. | `getPaymentIntentId()`, `getInvoiceAmount()`, `getInvoiceCurrency()` | | `jovvie.payment.cancelled` | A payment was cancelled. | `getPaymentIntentId()`, `getInvoiceAmount()`, `getInvoiceCurrency()` | | `jovvie.payment.refunded` | A payment was refunded, fully or in part. | `getPaymentIntentId()`, `getInvoiceAmount()` (the amount left after the refund), `getInvoiceRefund()` (the total refunded so far), `getInvoiceCurrency()` | | `jovvie.subscription.renewal.completed` | A recurring payment renewed and was paid. | See [Recurring payments](https://docs.jovvie.com/developers/subscriptions/). | | `jovvie.subscription.renewal.failed` | A renewal payment failed. | See [Recurring payments](https://docs.jovvie.com/developers/subscriptions/). | | `jovvie.subscription.status.update` | A recurring payment changed status. | See [Recurring payments](https://docs.jovvie.com/developers/subscriptions/). | | `jovvie.subscription.cancelled` | A recurring payment was cancelled. | See [Recurring payments](https://docs.jovvie.com/developers/subscriptions/). | Amounts are in the smallest currency unit. > **Note** > > Do not rely on `jovvie.payment.completed` alone to mark a one-time payment paid. Always fetch the payment when the browser returns to your return URL. See [Create a payment (Stripe)](https://docs.jovvie.com/developers/create-a-payment/#confirm-the-payment). ### NMI SDK events | Event type | When it is sent | Other methods | | ---------------------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | | `jovvie-gateway.payment.completed` | A payment was paid. | `getTransactionId()`, `getTransactionAmount()`, `getTransactionCurrency()`, `getTransactionPaid()` | | `jovvie-gateway.payment.failed` | A payment attempt failed. | `getTransactionId()`, `getTransactionAmount()`, `getTransactionCurrency()` | | `jovvie-gateway.payment.cancelled` | A payment was cancelled or voided. | `getTransactionId()`, `getTransactionAmount()`, `getTransactionCurrency()` | | `jovvie-gateway.payment.refunded` | A payment was refunded. | `getTransactionId()`, `getTransactionAmount()`, `getTransactionRefund()` (the amount of this refund), `getTransactionCurrency()` | `getTransactionId()` returns the NMI transaction ID. A cancelled payment may have no transaction, so `getTransactionId()` can throw a `WebhookError` for `jovvie-gateway.payment.cancelled`. ## Keep webhook data safe - Do not log the webhook key, the signature header, or the full request body. - Log only what you need to find a problem later, such as the event ID and type. - Never trust data in a webhook request that did not verify. ## Related pages - [Check a payment’s status](https://docs.jovvie.com/developers/check-payment-status/) - [Recurring payments](https://docs.jovvie.com/developers/subscriptions/) - [Refunds](https://docs.jovvie.com/developers/refunds/) - [Handle errors](https://docs.jovvie.com/developers/errors/) Source: https://docs.jovvie.com/developers/webhooks/ --- # Check a payment's status with the Jovvie PHP SDKs Section: Developers > Fetch a payment with the SDK, understand each status, and find payments that never came back to your app. This page shows you how to fetch a payment with the SDK and read its status. Fetching the payment is how you confirm that a customer paid. Do it when the browser returns to your app, before any important change, and on a schedule for payments that never came back. ## Fetch a payment Call `payments()->get()` with the Jovvie payment ID you saved when you created the payment. Use a client in the same mode (live or test) as the one that created the payment. ```php payments()->get($paymentId); if ($payment->type === 'subscription') { // Stripe recurring payment: the first payment went through when the status is 'active'. if ($payment->status === 'active') { // Start the subscription in your app. } } elseif ($payment->status === 'completed') { // One-time payment: mark the order paid. } ``` A one-time payment that went through is `completed`. A recurring payment whose first payment went through is `active`, not `completed`. Always check `type` before you read `status`. With the Stripe SDK, `get()` returns a `OneTimePayment` or a `SubscriptionPayment`, depending on the payment’s `type` (`one-time` or `subscription`). With the NMI SDK, it always returns a `OneTimePayment`. Fields you can use: | Field | What it is | | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `id` | The Jovvie payment ID. | | `type` | `one-time` or `subscription`. | | `status` | The payment status. See [Statuses for Stripe one-time payments](https://docs.jovvie.com/developers/check-payment-status/#statuses-for-stripe-one-time-payments), [Statuses for Stripe recurring payments](https://docs.jovvie.com/developers/check-payment-status/#statuses-for-stripe-recurring-payments), and [Statuses for NMI payments](https://docs.jovvie.com/developers/check-payment-status/#statuses-for-nmi-payments). | | `amount`, `currency` | The amount (smallest currency unit) and currency. With the Stripe SDK, when a refund is reflected in the Jovvie payment, `amount` is the amount left. Reconcile refunds against the Stripe Dashboard. | | `description` | The payment description. | | `createdAt`, `updatedAt` | When the payment was created and last changed. | | `mode` | `live` or `test`. Stripe SDK only. | | `generatedData->checkoutLink` | The link to the Jovvie payment page. | | `generatedData->paymentIntentId` | The ID of the Stripe payment. Stripe SDK only. | To get the NMI transaction ID, use `getTransactionId()` on a verified NMI webhook event. See [Handle webhooks](https://docs.jovvie.com/developers/webhooks/#nmi-sdk-events). Take the payment ID from your own records, never from a URL or form field the browser sends you. If no payment has that ID, the SDK throws a `NotFoundError`. If the payment belongs to another merchant account, it throws a `ForbiddenError`. See [Handle errors](https://docs.jovvie.com/developers/errors/). ## Statuses for Stripe one-time payments | Status | What it means | | ----------- | --------------------------------------------------------------------------------------------- | | `pending` | The payment was created and is not paid yet. | | `completed` | The customer paid. | | `failed` | A payment attempt failed. Staff may still try again on the same payment page. | | `cancelled` | Staff went back from the payment page before the customer paid, or the payment was cancelled. | | `abandoned` | The payment was closed without being paid. | | `refunded` | The payment was refunded, fully or in part. Check `amount` for what is left. | ## Statuses for Stripe recurring payments | Status | What it means | | ----------- | ------------------------------------------------------------------------ | | `pending` | The recurring payment was created and the first payment is not done yet. | | `active` | The first payment went through and the recurring payment is running. | | `failed` | A payment for the recurring payment failed and is unpaid. | | `cancelled` | The recurring payment was cancelled before it started. | | `ended` | The recurring payment was running and has now ended. | | `abandoned` | The recurring payment was closed without being started. | | `refunded` | A payment for the recurring payment was refunded. | See [Recurring payments](https://docs.jovvie.com/developers/subscriptions/). ## Statuses for NMI payments | Status | What it means | | ----------- | ------------------------------------------------------------------- | | `pending` | The payment was created and is not paid yet. | | `requested` | The payment was sent to a terminal and is waiting for the customer. | | `completed` | The customer paid. | | `failed` | The payment failed. | | `cancelled` | The payment was cancelled on the terminal, or it was voided. | | `refunded` | The payment was refunded. | ## Statuses can change A status is not always final. For example, a charge that goes through on a reader after staff clicked **← Back** can move a payment from `cancelled` to `completed`. A refund can move a `completed` payment to `refunded`. Before you close an order, retry a payment, or create a new payment for the same order: 1. Fetch the payment again, and every other payment you created for the same order. 2. Look for any payment that went through. A `completed` or `active` payment went through. A `refunded` payment also went through, and it may only be partly refunded, so the customer may still have paid part of it. 3. Look for any payment that may still be processing, such as a `pending` or `requested` payment. 4. Check the payments in your Stripe Dashboard or the NMI portal. 5. If you are not sure, contact [Jovvie support](https://jovvie.com/support/). A status check alone never means it is safe to charge again. Only create another payment for the order when you have confirmed that no payment for it went through and none is still processing. Otherwise the customer could be charged twice. ## Find payments that never came back Sometimes a customer pays, but the browser never reaches your return URL. For example, staff close the tab, or the device loses its connection. A webhook can also be lost if your server is down. Check for these payments on a schedule: 1. Keep a list of orders whose payment is `pending` (or `requested` for NMI). 2. On a schedule, such as every hour, fetch each of these payments with `payments()->get()`. 3. Check the payment’s `type`. When a one-time payment is `completed`, mark the order paid. When a recurring payment is `active`, start the subscription in your app. See [Recurring payments](https://docs.jovvie.com/developers/subscriptions/). 4. When a payment is `failed`, `cancelled`, or `abandoned`, update the order. Keep it on the list for a while, in case the status changes again. 5. If a payment stays `pending` for a long time, check it in your Stripe Dashboard or the NMI portal before you close the order. Make this check safe to run more than once, just like your webhook handler. See [Handle webhooks](https://docs.jovvie.com/developers/webhooks/). ## Related pages - [Create a payment (Stripe)](https://docs.jovvie.com/developers/create-a-payment/) - [Take payments with NMI](https://docs.jovvie.com/developers/nmi-payments/) - [Handle webhooks](https://docs.jovvie.com/developers/webhooks/) - [Payment statuses](https://docs.jovvie.com/payments/payment-statuses/) Source: https://docs.jovvie.com/developers/check-payment-status/ --- # Stripe recurring payments with the Jovvie PHP SDK Section: Developers > Start a recurring payment with the Stripe SDK, take the first payment in person, and track renewals and cancellations with webhooks. This page shows you how to set up a recurring payment (a subscription) with the Stripe SDK. The customer pays the first payment in person on the Jovvie payment page. Stripe then charges the same card on each renewal, and Jovvie tells your server about each renewal with a webhook. Recurring payments are available with the Stripe SDK only. The NMI SDK does not support them. ## Before you start - You can create one-time payments. See [Create a payment (Stripe)](https://docs.jovvie.com/developers/create-a-payment/). - Your webhook endpoint is set up and verifies events. See [Handle webhooks](https://docs.jovvie.com/developers/webhooks/). - You have a customer ID from the merchant’s Stripe account for the person who will pay. You can find customer IDs in your Stripe Dashboard. ## Create the recurring payment Call `payments()->createSubscriptionsPayment()` with these arguments, in this order: | Argument | What it is | | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `$customer` | The customer ID from the merchant’s Stripe account. | | `$items` | An array of one or more items. See [Items](https://docs.jovvie.com/developers/subscriptions/#items). | | `$currency` | A three-letter ISO currency code, such as `usd`. | | `$description` | A description of the recurring payment. It cannot be empty. | | `$returnUrl` | Where the browser goes after the payment page is done. Must be a full URL. | | `$cancelUrl` | Where the browser goes when staff click **← Back** and the payment is `cancelled`. A `pending` payment is first marked `cancelled`. Other statuses use `$returnUrl`. Must be a full URL. | | `$options` | Optional: `lineItems`, `lineTotal`, `metadata`, and `preferences`. See [Line items and total](https://docs.jovvie.com/developers/subscriptions/#line-items-and-total). | ```php payments()->createSubscriptionsPayment( 'YOUR_CUSTOMER_ID', [ [ 'price' => [ 'product' => ['name' => 'Monthly membership'], 'unitAmount' => 2000, // 20.00 in USD 'recurring' => [ 'interval' => 'month', 'intervalCount' => 1, ], ], ], ], 'usd', 'Membership for member YOUR_MEMBER_ID', 'YOUR_RETURN_URL', 'YOUR_CANCEL_URL', [ 'lineItems' => [ ['name' => 'Monthly membership', 'interval' => 'Every 1 month', 'amount' => '20.00'], ], 'lineTotal' => '20.00', 'metadata' => ['member_id' => 'YOUR_MEMBER_ID'], ] ); // Save these with your record. $paymentId = $payment->id; $subscriptionId = $payment->generatedData->subscriptionId; $checkoutLink = $payment->generatedData->checkoutLink; ``` The method returns a `SubscriptionPayment` object. Its `status` starts as `pending`. Besides the fields of a one-time payment, `generatedData` has: | Field | What it is | | ------------------- | --------------------------------------------------------------------------------------------------- | | `subscriptionId` | The ID of the subscription in the merchant’s Stripe account. | | `subscriptionItems` | The items of the subscription. Each has an `id` and a `price` with its `id`, `product`, and `name`. | ### Items Each item in `$items` has a `price` and, optionally, a `quantity` (a whole number of 1 or more). The `price` can be the ID of an existing price in the merchant’s Stripe account, or an array with these keys: | Key | What it is | | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `product` | The ID of an existing product in the merchant’s Stripe account, or an array with a `name` (required), and optionally a `description` and `metadata`, to create a new product. | | `unitAmount` | The amount to charge each time, as an integer in the smallest currency unit. Must be at least 1. | | `recurring` | How often to charge. `interval` is `day`, `week`, `month`, or `year`. `intervalCount` is how many intervals between charges, 1 or more. The default is 1. | If you pass a product as an array, Jovvie creates a new product in the merchant’s Stripe account each time. To reuse a product, save `generatedData->subscriptionItems[0]->price->product` from the first recurring payment and pass that ID next time. ### Line items and total Always pass `lineItems` and `lineTotal`, so the payment page shows clear amounts. - Each line item has a `name`, an `amount`, and an `interval`, all as strings. `quantity` is optional. `amount` is in normal currency units, such as `'20.00'`. `interval` is required and describes how often the item repeats, such as `'Every 1 month'`. - `lineTotal` is a plain number in normal currency units, such as `'20.00'`. Do not add a currency code to it. `metadata` is stored on the subscription in the merchant’s Stripe account. Never put card data, passwords, or keys in it. ## Take the first payment 1. Send a staff member’s browser to the checkout link. For signed-in staff, use an authorization link so the readers are ready. See [Unlock card readers for staff](https://docs.jovvie.com/developers/unlock-card-readers/). 2. Staff take the first payment on the Jovvie payment page. See [Take a payment on the Jovvie payment page](https://docs.jovvie.com/checkout/jovvie-payment-page/). 3. When the browser comes back to your return URL, fetch the payment with `payments()->get($paymentId)`, using the payment ID you saved. 4. Start the subscription in your app only if `status` is `active`. Stripe saves the card used for the first payment and charges it on each renewal. ## Handle renewals Stripe charges each renewal on schedule. You do not create renewal payments yourself. If an initial payment or renewal has an unclear result, check the payment in your Stripe Dashboard before creating a replacement or taking payment another way. Confirm that no payment for that initial payment or renewal went through and none is still processing. If you are unsure, contact [Jovvie support](https://jovvie.com/support/). Jovvie sends these webhooks for a recurring payment. For all of them, `getPaymentId()` returns the ID of the original recurring payment you created, so you can find your record. | Event type | When it is sent | Other methods | | --------------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | `jovvie.subscription.renewal.completed` | A renewal was paid. | `getPaymentIntentId()`, `getSubscriptionId()`, `getInvoiceAmount()`, `getInvoiceCurrency()`, `getInvoicePaid()`, `getInvoiceCreated()` (a Unix timestamp) | | `jovvie.subscription.renewal.failed` | A renewal payment failed. Stripe may try again later. | See [Handle renewals](https://docs.jovvie.com/developers/subscriptions/#handle-renewals). | | `jovvie.subscription.status.update` | The subscription changed status. | `getSubscriptionId()`, `getSubscriptionStatus()` | | `jovvie.subscription.cancelled` | The subscription was cancelled. | `getSubscriptionId()` | When a renewal is paid: 1. Start a database transaction and insert the event ID into your events table, which has a unique constraint on the event ID. If the insert fails because the ID already exists, roll back, answer with HTTP 200, and stop. See [Process each event once](https://docs.jovvie.com/developers/webhooks/#process-each-event-once). 2. Find your record by `getPaymentId()`. If there is no matching record, store the event so you can reconcile it later, commit, answer with HTTP 200, and stop. 3. Check that `getInvoicePaid()` is `true`. 4. Record the renewal in your app, with the amount from `getInvoiceAmount()` and the Stripe payment ID from `getPaymentIntentId()`. 5. Commit the transaction, then answer with HTTP 200. If anything fails before the commit, roll back and answer with HTTP 500 so Jovvie sends the event again. `getSubscriptionStatus()` returns the status as Stripe names it: `active`, `unpaid`, `canceled`, `incomplete`, or `incomplete_expired`. > **Note** > > For `jovvie.subscription.renewal.failed`, rely on `getPaymentId()` only. Other values may be missing, and their methods then throw a `WebhookError`. Fetch the payment with `payments()->get()` to see its current status, and let the merchant know the renewal failed. ## Cancel a recurring payment The SDK cannot cancel a recurring payment yet. The merchant cancels the subscription in their Stripe Dashboard. Jovvie then sends `jovvie.subscription.cancelled`, and the payment status usually changes: - To `cancelled`, if the recurring payment had not started. - To `ended`, if it was running. A payment that was already `refunded` may keep that status, or may later change to `ended`. Confirm the cancellation in the Stripe Dashboard, and handle `jovvie.subscription.cancelled` whatever the payment’s current status is. When you receive `jovvie.subscription.cancelled`, stop the subscription in your app. Do not wait for the payment’s status to become `ended`, because it may not. See [Check a payment’s status](https://docs.jovvie.com/developers/check-payment-status/) for all statuses. ## Refunds The SDK cannot refund payments yet. SDK support for refunds is planned. Refunds for recurring payments are made in the Stripe Dashboard. See [Refunds](https://docs.jovvie.com/developers/refunds/). ## Related pages - [Create a payment (Stripe)](https://docs.jovvie.com/developers/create-a-payment/) - [Handle webhooks](https://docs.jovvie.com/developers/webhooks/) - [Check a payment’s status](https://docs.jovvie.com/developers/check-payment-status/) Source: https://docs.jovvie.com/developers/subscriptions/ --- # Refunds for custom Jovvie Checkout integrations Section: Developers > Where merchants refund payments made through your integration, and how your integration finds out about a refund. This page explains how refunds work for payments your integration creates, and how your integration can keep its records up to date when a merchant refunds a payment. The Jovvie SDKs cannot create refunds yet. SDK support for refunds is planned. Until then, the merchant refunds the payment with their payment processor. Your integration can update its records when a refund event arrives, and the Stripe Dashboard or the NMI portal is the record to check against. ## Where merchants refund | Processor | Where to refund | | --------- | ------------------------------- | | Stripe | The merchant’s Stripe Dashboard | | NMI | The NMI portal | Do not build a refund button in your app that looks like it refunds the card. If your app has a refund screen, tell staff to make the refund in the Stripe Dashboard or the NMI portal. Before making or retrying a refund, or returning money another way, check the payment and its refunds in the Stripe Dashboard or the NMI portal. Confirm that the amount being returned has not already been refunded and no refund for that amount is still processing. If you are unsure, contact [Jovvie support](https://jovvie.com/support/). ## Help the merchant find the payment When you create a payment, save the IDs the merchant will need to find it with their processor: - **Stripe:** `$payment->generatedData->paymentIntentId`. This is the payment’s ID in Stripe. - **NMI:** the NMI transaction ID. Get it with `getTransactionId()` from the verified `jovvie-gateway.payment.completed` webhook event. See [Handle webhooks](https://docs.jovvie.com/developers/webhooks/#nmi-sdk-events). Show these IDs on the order in your app. With Stripe, the description you pass when you create the payment also appears on the payment in the Stripe Dashboard. ## How your integration hears about a refund Jovvie can send a refund event to your application’s **Webhook URL**. When one arrives, verify it with your webhook key before you use it, then update your records. See [Handle webhooks](https://docs.jovvie.com/developers/webhooks/). Do not count on a refund event for every refund. The Stripe Dashboard or the NMI portal is the record of what was refunded, so reconcile your records against it. See [Keep your records in step](https://docs.jovvie.com/developers/refunds/#keep-your-records-in-step). | | Stripe | NMI | | ----------------- | ----------------------------------------------------- | ------------------------------------------------------------ | | Event type | `jovvie.payment.refunded` | `jovvie-gateway.payment.refunded` | | Event class | `JovviePayments\WebhookEvents\Events\PaymentRefunded` | `JovviePaymentsGateway\WebhookEvents\Events\PaymentRefunded` | | Jovvie payment ID | `getPaymentId()` | `getPaymentId()` | | Processor ID | `getPaymentIntentId()` | `getTransactionId()` | | Amount refunded | `getInvoiceRefund()`: the total refunded so far | `getTransactionRefund()`: the amount of this refund | | Other amount | `getInvoiceAmount()`: the amount left after refunds | `getTransactionAmount()`: the original payment amount | | Currency | `getInvoiceCurrency()` | `getTransactionCurrency()` | | Mode | `getPaymentMode()`: `live` or `test` | Not included | All amounts are in the smallest currency unit, such as cents. A `refunded` status can mean a full or a partial refund. To tell them apart, compare the amounts in the event. Do not rely on the payment’s status alone to know whether, or how much, a payment was refunded. Check the Stripe Dashboard or the NMI portal. ### Example: handle a Stripe refund event This example runs after you have verified the webhook and created `$event` with `WebhookEvent::constructEvent()`. The same event can arrive more than once, so it saves the event ID and the refund in one database transaction. Your events table has a unique constraint on the event ID, so a second copy of the event cannot be saved. See [Process each event once](https://docs.jovvie.com/developers/webhooks/#process-each-event-once). ```php use JovviePayments\WebhookEvents\Events\PaymentRefunded; if ($event instanceof PaymentRefunded) { // Ignore events from the other mode, so a test refund never changes a live order. $appMode = 'YOUR_APP_MODE'; // 'live' or 'test'. Load this from your server configuration. if ($event->getPaymentMode() !== $appMode) { http_response_code(200); exit; } yourApp_beginTransaction(); try { // Fails if this event ID was already saved. if (!yourApp_insertEventId($event->getId())) { yourApp_rollBack(); http_response_code(200); exit; } $order = yourApp_findOrderByJovviePaymentId($event->getPaymentId()); if (!$order) { // Keep the event so you can match it to an order later. yourApp_storeEventForReconciliation($event); } else { // Lock the order row so two refund events cannot update it at once. yourApp_lockOrder($order); $refunded = $event->getInvoiceRefund(); // total refunded so far $remaining = $event->getInvoiceAmount(); // amount left // Events can arrive out of order. Only move forward: never replace // a larger refunded total with a smaller one. if ($refunded > yourApp_getRefundedTotal($order)) { if ($remaining === 0) { yourApp_markFullyRefunded($order, $refunded); } else { yourApp_markPartlyRefunded($order, $refunded); } } } yourApp_commit(); } catch (\Throwable $e) { // Nothing was saved. Answer with an error so Jovvie sends the event again. yourApp_rollBack(); http_response_code(500); exit; } http_response_code(200); exit; } ``` The `yourApp_` functions stand for your own code. With NMI, each refund event carries the amount of that refund only. If the merchant makes more than one partial refund, add the amounts from each event to get the total. ## Keep your records in step - The refund is made by the processor, not by your app. Treat the Stripe Dashboard or the NMI portal as the record of what was refunded. - If your app does not show a refund the merchant made, check the payment in the Stripe Dashboard or the NMI portal and update your records to match. - Update your records after the refund is made, not before. If your app shows a refund that was never made, staff and customers can be misled. ## Related pages - [Handle webhooks](https://docs.jovvie.com/developers/webhooks/) - [Check a payment’s status](https://docs.jovvie.com/developers/check-payment-status/) - [Where to see your payouts](https://docs.jovvie.com/payments/payouts/) ## Need help? Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/developers/refunds/ --- # Test a Jovvie Checkout integration with Stripe test mode Section: Developers > Use test mode to try your Stripe integration without charging a real card, test with simulated or real readers, and check everything before you go live. This page shows you how to test your integration without charging a real card, and what to check before the merchant takes real payments. Test mode is available with the Stripe SDK. The NMI SDK has no test mode. See [Testing with NMI](https://docs.jovvie.com/developers/test-mode/#testing-with-nmi). ## Turn on test mode With the Stripe SDK, you choose the mode when you create the client. Pass `'test'` as the fourth argument: ```php use JovviePayments\JovviePaymentsClient; $jovvie = new JovviePaymentsClient( 'YOUR_PUBLIC_KEY', 'YOUR_SECRET_KEY', 'YOUR_PLATFORM_PROVIDER', 'test', ['userAgent' => 'YourApp/1.0.0'] ); ``` You use the same keys and platform provider ID as in live mode. You do not need a separate application. Test with the platform provider ID that Jovvie support gave you, not a made-up or placeholder value. Some values are accepted in test mode only, so tests can pass and the integration can still fail in live mode. If you do not have a platform provider ID yet, see [Get started](https://docs.jovvie.com/developers/get-started/#step-1-get-a-platform-provider-id). Make the mode a setting in your integration, such as an environment variable or an admin option, so the merchant can switch to live mode without a code change. For more about creating the client, see [Install the SDK](https://docs.jovvie.com/developers/install-the-sdk/). ## What changes in test mode - No real card is charged, and no money is collected. - Every payment you create has its `mode` set to `test`. - Jovvie adds **(Test)** to the end of the payment’s description. - When you pass `metadata`, Jovvie adds a `mode` key with the value `TEST MODE` to it. Avoid using `mode` as one of your own metadata keys. - Test payments, card readers, locations, and authorization links are kept apart from live ones. A test payment cannot be fetched with a live client, and a live payment cannot be fetched with a test client. - Test payments appear in the merchant’s Stripe Dashboard when it is switched to test mode. ## Take a test payment 1. Create a payment with your test client. See [Create a payment (Stripe)](https://docs.jovvie.com/developers/create-a-payment/). 2. Send your browser to the payment’s checkout link. 3. Check that the payment page shows the orange **Test Mode** bar at the top. 4. Select **In-Person Payment**. 5. If the page shows **Provide PIN to access**, enter the merchant’s Access PIN in **PIN** and click **Submit**. 6. Under **Choose a reader**, select a simulated reader. 7. Click **Process Payment**. To skip the PIN step, open the payment through an authorization link instead of the plain checkout link. Create the link with your test client, always pass a `redirectUrl`, and only give the link to the merchant’s staff. See [Unlock card readers for staff](https://docs.jovvie.com/developers/unlock-card-readers/). When the payment finishes, the page sends the browser back to your return URL. Check that your integration confirms the payment on the server before it marks the order as paid. A simulated reader is not a real device. You do not need any hardware to test this way. ## Test with a real card reader Simulated readers are the simplest way to test. Readers registered in live mode do not appear in test mode, so a physical reader only appears in test mode if it was registered in test mode. If you need to test with a physical reader, contact [Jovvie support](https://jovvie.com/support/). On the payment page, **Switch to live readers** lists the readers available in test mode. Despite its name, this button does not take you out of test mode. The payment is still a test payment. For more about what staff see in test mode, see [Use test mode](https://docs.jovvie.com/payments/test-mode/#what-you-see-on-the-payment-page-in-test-mode). If you give staff an authorization link to unlock the readers, create it with your test client. A link created in one mode only works in that mode. See [Unlock card readers for staff](https://docs.jovvie.com/developers/unlock-card-readers/). ## Test your webhooks Jovvie sends webhooks for test payments to the same **Webhook URL** as live payments. To keep test events away from your live orders: - In your webhook handler, check the event’s mode with `getPaymentMode()`. It returns `live` or `test`. - Ignore events whose mode does not match the mode your integration is running in, and still respond with HTTP 200. Things to test: - Staff leaving the payment page without paying. Your app should not mark the order as paid. - A payment that is declined or fails on the reader. - The same event arriving twice. Your handler should only update the order once. - A request with a wrong signature. Your handler should reject it. For how to verify and handle events, see [Handle webhooks](https://docs.jovvie.com/developers/webhooks/). ## Testing with NMI The NMI SDK has no test mode, and every payment you create with it is real. Before you test an NMI integration, contact [Jovvie support](https://jovvie.com/support/) to plan how to test it. If an NMI test does take a real payment, the merchant can refund it in the NMI portal. See [Refunds](https://docs.jovvie.com/developers/refunds/). ## Before you go live 1. Switch your client’s mode to `'live'`. 2. Check that your client passes the platform provider ID from Jovvie support. Then [check your connection](https://docs.jovvie.com/developers/install-the-sdk/#check-your-connection) with the live client. If creating the live client throws an `InvalidArgumentException`, see [Handle errors](https://docs.jovvie.com/developers/errors/#invalidargumentexception). 3. Check that the merchant’s card readers are registered in live mode. 4. Create new authorization links with your live client for staff who need them. Links from test mode do not work in live mode. 5. Check that your **Webhook URL** is set on the application, starts with `https://`, and is reachable from the internet. 6. Check that your webhook handler verifies every request with the webhook key and rejects any that fail. 7. Check that your integration never marks an order as paid from the return URL alone. It should fetch the payment or use a verified webhook. 8. Check that the secret key and webhook key are stored on your server only, and that they do not appear in your logs. 9. Take the first live payment with staff watching. If the payment page still shows the **Test Mode** bar, the payment is not real. ## Need help? If readers do not appear on the payment page, see [Reader not showing on the payment page](https://docs.jovvie.com/troubleshooting/reader-connection/). Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/developers/test-mode/ --- # Handle Jovvie PHP SDK errors Section: Developers > The exceptions the Jovvie PHP SDKs throw, what each one means, and what your integration should do about it. This page lists the exceptions the Jovvie SDKs throw and what your integration should do when it catches each one. Both SDKs use the same error classes. Only the namespace is different. ## Error classes | Class | When it is thrown | | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | `BadRequestError` | Jovvie rejected the request as invalid (HTTP 400) | | `UnauthorizedError` | Jovvie did not accept your keys (HTTP 401) | | `ForbiddenError` | Your keys are valid but cannot do this (HTTP 403) | | `NotFoundError` | The payment, device, or other item was not found (HTTP 404) | | `ResponseError` | Any other error response from Jovvie. `BadRequestError`, `UnauthorizedError`, `ForbiddenError`, and `NotFoundError` extend it | | `WebhookError` | A webhook could not be verified or read | | `InvalidArgumentException` | The Stripe client was created with a mode other than `'live'` or `'test'`, or in live mode with a platform provider ID that works in test mode only | | `Exception` | The request could not be completed, for example because of a network problem or a timeout | The namespaces are: | | Stripe | NMI | | -------------- | ------------------------------------- | -------------------------------------------- | | Request errors | `JovviePayments\Http\Error\` | `JovviePaymentsGateway\Http\Error\` | | Webhook errors | `JovviePayments\WebhookEvents\Error\` | `JovviePaymentsGateway\WebhookEvents\Error\` | `InvalidArgumentException` and `Exception` are PHP’s built-in classes. ## Catch errors Catch the most specific classes first. Every request method can throw `ResponseError` or one of its subclasses, and also a plain `Exception` when the request does not complete. ```php use JovviePayments\Http\Error\BadRequestError; use JovviePayments\Http\Error\NotFoundError; use JovviePayments\Http\Error\ResponseError; use JovviePayments\Http\Error\UnauthorizedError; try { $payment = $jovvie->payments()->get($jovviePaymentId); } catch (NotFoundError $e) { // The payment does not exist in this mode for this account. } catch (UnauthorizedError $e) { // Check the keys and platform provider ID. Alert an administrator. } catch (BadRequestError $e) { // Check the values you sent. Do not retry unchanged. } catch (ResponseError $e) { // Another error from Jovvie. See the "Read the error details" section. } catch (\Exception $e) { // Network problem or timeout. See the "When to try again" section. } ``` ## Read the error details `ResponseError` and its subclasses have two methods that help you find the cause: - `$e->getCode()` returns the HTTP status code, such as `400`. - `$e->getResponse()->getBody()` returns the response body as an object. It usually has a `code` property with an error code, and an `error` or `message` property with a short description. The body can be `null`, so check it before you read it. ```php } catch (ResponseError $e) { $body = $e->getResponse()->getBody(); $errorCode = is_object($body) && isset($body->code) ? $body->code : null; yourApp_log('Jovvie request failed', [ 'status' => $e->getCode(), 'code' => $errorCode, ]); } ``` Exception messages can include technical details about the request. Log them on your server, but show staff a plain message instead, such as “We could not confirm whether the payment started. Check the reader and the payment processor before trying again, or contact your administrator.” Never show exception messages to customers. ## What to do for each error ### `BadRequestError` Something in the request is not valid, or the merchant’s account is not ready. Do not retry the same request without changing it. | Error code | What it means | What to do | | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | | `ERR_BAD_REQUEST` | A value is missing or not valid. For example, the amount is not a positive whole number, a URL is not a full URL, or the description is empty | Check the values you send. If the `message` is `Invalid platform provider`, check your platform provider ID | | `ERR_INVALID_STRIPE_CONFIGURATION` | The merchant’s Stripe account is not connected | Ask the merchant to connect Stripe in the Payments Dashboard | | `ERR_STRIPE_UNSUPPORTED_CURRENCY` | The currency is not supported for in-person payments on this Stripe account | Use the currency of the merchant’s Stripe account | | `ERR_MISSING_NMI_ACCOUNT` | The merchant has no NMI account set up (NMI only) | Ask the merchant to finish setting up NMI | | `ERR_DEVICE_NOT_FOUND` | The device ID you sent is not one of the merchant’s terminals (NMI only) | List the merchant’s devices again and use a current device ID | ### `UnauthorizedError` Jovvie did not accept the request’s credentials. Check that: - The public key and secret key come from the same application, and you copied them in full. - The keys were not regenerated since you saved them. - The application is not disabled. - With Stripe, the platform provider ID is the one Jovvie support gave you, and the application is not already used by another integration. - Your server’s clock is set correctly. Do not retry until you fix the cause. Alert an administrator instead of showing the error to staff. ### `ForbiddenError` Your keys work, but they cannot do what you asked. Common causes: - The keys belong to an application that is not a server application. Create one on the **Applications** page. See [Get started](https://docs.jovvie.com/developers/get-started/). - You asked for a payment that belongs to a different merchant account. ### `NotFoundError` The item does not exist for this account and mode. Check that: - You saved the correct payment ID when you created the payment. - You are using a client in the same mode as the payment. A test payment cannot be fetched with a live client, and a live payment cannot be fetched with a test client. ### Other `ResponseError` errors These include: - `429`: too many requests. - `500` and higher: an error on Jovvie’s side. - Card errors, such as a declined card. Staff usually see these on the payment page instead. See [Card declined and payment error messages](https://docs.jovvie.com/troubleshooting/payment-errors/). Whether you can try again depends on the request. See [When to try again](https://docs.jovvie.com/developers/errors/#when-to-try-again). ### `WebhookError` The SDK throws `WebhookError` from `WebhookEvent::constructEvent()` when a webhook cannot be trusted or read. For example, the signature does not match your webhook key, the request is too old, or the body is not valid. When you catch it: 1. Respond with an HTTP error status, such as `400`. 2. Do not change any order. 3. Log that it happened, without the request headers or your webhook key. The SDK also throws `WebhookError` for an event type it does not know, and from an event’s getter methods when a field is missing from the event. See [Handle webhooks](https://docs.jovvie.com/developers/webhooks/). ### `InvalidArgumentException` The Stripe client throws `InvalidArgumentException` when you create it in two cases: - **The mode is not valid.** The client only accepts `'live'` or `'test'`. Check the mode setting in your integration. - **The platform provider ID only works in test mode.** This is why an integration can work in test mode and then fail as soon as you switch to live mode. Pass the platform provider ID that Jovvie support gave you. If you do not have one, contact [Jovvie support](https://jovvie.com/support/) to get it. Do not switch back to test mode to get around the error, because test mode does not take real payments. See [Install the SDK](https://docs.jovvie.com/developers/install-the-sdk/). ## When to try again Only retry read-only requests automatically, such as `payments()->get()`, or `devices()->list()` and `devices()->get()` with NMI. Retry them after a `429`, a status of `500` or higher, or a plain `Exception`. Wait before each attempt, wait longer after each one, and stop after a few attempts. Never retry creating a payment automatically. If creating a payment fails with any error, including a status of `500` or higher or a plain `Exception`, a payment may still have started. Before anyone tries again: 1. Check the card reader or terminal to see whether a payment is in progress or went through. 2. Check the payment in the Stripe Dashboard or the NMI portal. 3. If you are still not sure, contact [Jovvie support](https://jovvie.com/support/). Create a new payment only after you have confirmed that no payment for the order went through and none is still processing. With Stripe, only send staff to the checkout link of the payment you saved for the order. Never retry a payment in a loop. ## Errors on the payment page Errors that staff see on the Jovvie payment page are not thrown by the SDK. For those, see: - [Checkout payment page errors](https://docs.jovvie.com/troubleshooting/checkout-errors/) - [Card declined and payment error messages](https://docs.jovvie.com/troubleshooting/payment-errors/) - [Reader not showing on the payment page](https://docs.jovvie.com/troubleshooting/reader-connection/) ## Need help? When you contact support, include the class name, the HTTP status, and the error code. Never send your keys. Contact [Jovvie support](https://jovvie.com/support/). Source: https://docs.jovvie.com/developers/errors/