# How Do My Clients Add a Payment Method Source: https://docs.upmind.com/client-self-service/client-area/how-do-my-clients-add-a-payment-method As your customers are choosing the payment method, you can add any payment gateway to it. This article shows you how clients can add a payment method to their accounts. This includes methods for one-time purchases and recurring payments. You also learn how clients can remove a payment source. ## Adding a payment method There are two ways to add a payment method: * From the account dashboard * At the checkout ## Dashboard method 1. Log in to the store account. 2. Click the **Billing** menu tab. Click Billing tab 3. On the left menu, click **Payment methods**. Click Payment methods 4. Click the **Add payment method** button. Add payment method 5. Fill the fields and then click **Save**. Fill the fields ## Allowing recurring payments Clients can control how this payment method manages auto-renewals (e.g., recurring subscription payments). 1. Check the box to automatically allow recurring payments on this payment method. 2. Uncheck the box to prevent auto-renewals on this payment method. Enable or disable auto-recurring payments ## Checkout method Your clients can add a new payment method at the checkout. 1. Fill the fields. 2. Click the **Place order & pay** button. Two boxes are checked by default. Clients can uncheck the boxes to change the settings. * Save card (save payment method details in the client's account). * Allow auto payment (e.g., recurring payments). Review checkboxes # How Do My Clients Change Account Settings Source: https://docs.upmind.com/client-self-service/client-area/how-do-my-clients-change-account-settings Clients learn how to change passwords and add two-factor authentication to be secure. This article shows your clients how to customise account settings. The Account settings page lets clients: * Edit profile information * Change the account password * Add two-factor authentication * View email history * Account delegates * Affiliate program (if enabled, [Upmind Affiliate](https://docs.upmind.com/using-upmind/affiliates/create-an-affiliate-system)) For information on managing two-factor authentication (2FA) as a client, follow this [guide](/managing-your-account/managing-2fa-two-factor-authentication-in-upmind/how-to-manage-two-factor-authentication-2fa-as-a-client). ## **Opening the account settings page** 1. Log in to the client area. 2. Click the profile icon. 3. Select **My account**. * The Profile page displays. Click My account ## **Editing profile information** Clients can update their personal and company details from the profile settings. 1. Update the profile name and language, fill in the fields, and click **Save** to apply the changes. 2. Add a new email or edit the existing email address. 3. Change your phone number by adding a new number or editing the current one. Update Account Profile 4. Add or edit your address, and add company details to include your registered Tax/VAT ID. Edit address Add company details to include VAT ID ## **Managing account security** ### **Changing your username** If you want to change your username, you will be prompted to provide your password again. Change username Username change When changing your username, you will be prompted to provide the two-factor authentication code. An email will be sent afterwards to notify you of the change. Username change email ### **Changing your password:** 1. Go to **Security** in the left menu. 2. Enter your old password and new password. 3. Click **Change Password** to save your changes. Click Change password If you forget your password and try to reset it, you will get an email confirmation to reset your password. Forgot your password Password reset email When you reset your password, you will also need to provide a two-factor authentication code. 2FA code required Once you change your password, an email notification will be sent to you. Password change email ### **Restricting access with IP whitelisting** To restrict access, whitelist IP addresses in the client area by adding them. Whitelist IP Address ## **Viewing email history** Clients can view a log of their emails and read each message. 1. Click **Email history** on the left menu. 2. A list of email messages will be displayed, including their statuses such as sent, bounced, and failed. 3. Clients can view an email by clicking on the message they wish to open. Click an email ## **Inviting a delegate** Clients can invite a delegate and grant access to all contract products or specific ones. 1. Go to **Account Delegates** in the left menu. 2. Click **Invite Delegate**. 3. Enter the delegate’s email address and select the contract products you want to share access to, or choose all. 4. Click **Send invite** to confirm. Account Delegate Send delegate invitation ## **Viewing affiliate program** Clients can view the affiliate overview, commissions, and payouts by going to **My Account** and selecting **Affiliate Program** on the left side. 1. Click on **Affiliate Program** in the left menu. It will show the **Affiliate Overview**. 2. Clients can create an affiliate program link and track referrals from the affiliate overview. 3. Clients can also manage payout destinations, view payout history, and see commission details. Affiliate program # How Do My Clients Check Their Account Balance Source: https://docs.upmind.com/client-self-service/client-area/how-do-my-clients-check-their-account-balance Clients can easily check their account credit balance and top up their accounts. This article shows clients how they can locate their account balance with your store. We also show you how clients can top up their accounts. ## Locating the account balance 1. Log in to the store account. 2. Click the **Billing** menu tab. Click Billing tab 3. Click **Account credit** on the left side menu. * Upmind displays the account balance. Review credit balance ## Topping up an account To add funds to the account balance: 1. Click the **Top up** button. 2. Enter an amount and complete the payment form. 3. Click **Submit** payment. Complete the payment form # How Do My Clients Create Contract Delegates Source: https://docs.upmind.com/client-self-service/client-area/how-do-my-clients-create-contract-delegates As your customer can add third parties to a subscription, creating contract delegates helps you stay organised and free. In a [previous guide](/using-upmind/service-desk/how-to-create-ticket-delegates), we showed you how **Admins**, store staff, and clients can add delegates to a ticket. This article describes another way to use the delegate tool. In addition to enhancing internal communication with your store **Admins** and **Staff**, the delegate tool gives clients the ability to bring third parties into their store account. ## Use case example Here's a scenario to demonstrate the delegate tool in action. * Company A is a web hosting reseller. * Company B purchases a web hosting contract for two years. * Company B adds Dev Team 1 as a delegate to redesign Company B's website. The delegate tool gives Dev Team 1 access to the web hosting contract but not full access to Company B's entire online platform (as might be the case if Dev Team 1 were added as a user with extensive permissions). ## Access rights Any client can invite one or more delegates to access the client-side of a contract with your Upmind store. These delegates can: * view contract product registration, renewal dates, and status * undertake provisioning actions (e.g., log in to a hosting account, update domain nameservers) * create support tickets in relation to the contract product * view tickets others have created in relation to the contract product, from the point at which they were added as a delegate These delegates cannot: * manage billing for a contract product * cancel, upgrade, or modify the contract product * add or remove delegates Clients can invite delegates to access a subscription contract. This feature does not work with one-off purchases. ## Inviting a delegate The first step is to open a contract and invite a delegate. The client should: 1. Log in to the store account. 2. Click the **Products & Services** menu tab. Click Products & Services tab 3. Click **Subscriptions** on the left side menu. 4. Under the **Subscriptions** heading, select a contract. 5. Click the **Settings** menu tab. Click Settings tab 6. Click the **Invite delegate** button. Invite new delegate 7. Enter the delegate's email address. 8. Click **Send invite**. To receive an invite, the delegate must have a store account. Enter delegate email ## Delegate view The delegate receives an email message with a link to accept the invitation. Delegate email After clicking the accept link, Upmind displays the delegate account under the **Products & Services** menu tab. Delegate account ## Cancelling delegate access The client can cancel delegate access to the contract at any time. 1. Click the **Products & Services** menu tab. 2. Click the contract. 3. Click the **Delegates** menu tab. 4. Hover the person icon next to Accepted. 5. Click **Revoke access**. Upmind removes the delegate from the contract. c-1.png # How Do My Clients Manage Tickets Source: https://docs.upmind.com/client-self-service/client-area/how-do-my-clients-manage-tickets Customers can open new tickets and request support. In this article, we show you how clients can read active tickets and post replies. We also show you how clients can open a new ticket. ## Opening my tickets page 1. Log in to the store account. 2. Click the **Support** menu tab. Click Support tab ## Viewing open tickets The **My tickets** page displays a list of open tickets and their status. To view a ticket in detail: 1. Click a ticket name. List of open tickets 2. Scroll down the page to view the messages (if any) in the thread. View messages ## Sending a reply To reply to an active ticket: 1. Go to the top of the page. 2. Enter a message in the field. 3. Click **Post** reply. Enter message in field ## Opening a ticket There are two ways to open a new ticket. ### Opening a ticket from support 1. You can either click the **Add** button on the left menu or click **Open new ticket**. Clients can also click the Open new ticket button. Open new ticket 2. Fill the fields. 3. Click the **Department** button and select a specific store department (optional) 4. Click the **Select product** button to reference a specific item. (optional) 5. Click **Create ticket**. Click Create ticket * Upmind adds the open ticket to the **Active ticket** list. Active tickets list ### Opening a ticket from products & services If a client has a question related to a specific product, they can open a support ticket directly from the product page: 1. Go to **Product & Services** and select the relevant product. Products & services 2. Click **Open Support Ticket** and fill in the necessary details. Click Open Support Ticket Fill in the details 3. Once the ticket is created, clients will have access to the following options. Ticket options * Show Notes – View internal notes related to the ticket. * Show Secrets – Access sensitive information tied to the request. #### Manage Ticket includes the following actions: * Edit Subject – Modify the ticket title. * Delegate Access – Allow another user to handle the ticket (see our guide [here](https://upmind.featurebase.app/help/articles/1497771-how-to-add-delegates-in-your-admin-and-client-area)). * Change Related Product – Link the ticket to a different product. * Remove Product Relation – Unlink the ticket from the product. * Close Ticket – Mark the ticket as resolved. Manage ticket # How Do My Clients Place an Order Source: https://docs.upmind.com/client-self-service/client-area/how-do-my-clients-place-an-order As the customer completes the order processing, placing an order is easier with Upmind. This article shows clients how to purchase one or more items. Clients learn how to add items to a basket, enter a payment method on the **Checkout** page, and locate an order summary. ## Opening the shop page The first step is to open the Shop page. This is where clients can see your catalogue and read product information. 1. Log in to the store account. 2. Click the **Place new order** menu tab. If you enable [Guest checkout](/setup-and-configuration/orders-services/how-to-enable-guest-checkout), clients do not need to log in to their store account to access the product catalogue. Click Place new order tab 3. On the next page, select a product category on the left menu (if available). Select product category ## Product information Clients can read the product description and decide whether or not to buy the product. At this point, clients have two options: 1. Click the button to add the product to the basket. 2. Click the back button to exit the product information page and return to the catalogue. Clients can click the image (if available) to open the product information page. Add to basket or go back ## Understanding the basket page On the Basket page, clients have several options. 1. Click the **Trash** icon to remove the item. 2. Add information to the custom field (if created by the store owner). 3. Click the **Continue** shopping button. 4. Add a [discount code](/using-upmind/marketing-tools/how-to-create-a-promo-code-for-a-group-of), if available. 5. Click the **Continue** to checkout button to complete the transaction. This is the client's last chance to confirm the items in the basket before paying. Confirm product details ## Understanding the checkout page The client-side **Checkout** page design depends on how the store owner configures [store settings](/setup-and-configuration/branding/how-to-configure-business-settings). Generally, clients should complete four steps. 1. Confirm or edit the shopping address. 2. Add or confirm the [payment method](/client-self-service/client-area/how-do-my-clients-add-a-payment-method). 3. Add a discount code, if available. 4. Click **Place order & pay**. Place order & pay ## Reviewing the order After the client pays, Upmind displays the Order summary page. 1. Clients can review the order. 2. View the invoice. 3. See the order number. 4. Cancel the order. Clients review order Clients can also review orders on the **Products & Services** page. 1. Click the **Products & Services** menu tab. 2. Click **Subscriptions** or **One-time purchases** on the left menu. Subscriptions or One-time purchases # How Do My Clients Register and Log in Source: https://docs.upmind.com/client-self-service/client-area/how-do-my-clients-register-and-log-in Your customers follow these steps. This article reviews the steps that potential clients follow to create an account in your store. We also show Admins and store staff [how to resend an account verification link](https://docs.upmind.com/using-upmind/client-management/how-to-manage-client-settings) to clients. ## Creating an account The first step is to share your store's client-side login URL. That URL looks like this: [https://yourstorename.upmind.app](https://yourstorename.upmind.app) Or if you have used a custom domain, then you can share your store domain name. Next, your clients: 1. Go to the login page. 2. Click the **Create one here** link. Click Create one here 3. Fill the fields. 4. Click Continue. Fill the fields ## Resending a verification code If a client fails to verify their account, admins or store staff can resend the verification code to the client's email address. 1. Go to the Upmind dashboard. 2. Click Clients on the left side menu. 3. Click the Clients list menu tab. 4. Click the Unverified clients subheading. Click Unverified clients 5. Click the client name. 6. Go to **Logs** > **Email history log**. Find the verification email. Logs > Email history log 7. Click the gear icon. 8. Click **Resend**. ## Client verification and login The client opens the email from your store and clicks the verification link. Verification link 1. Enter login credentials. 2. Click the **Login** button. Click Login * The store opens, and the client is signed in. Client view of store # How Do My Clients Review Billings Source: https://docs.upmind.com/client-self-service/client-area/how-do-my-clients-review-billings Clients can review billings, invoices, credit notes, and funds in a credit account. This guide explains how clients can view their invoices, credit notes, and credit account funds. It also explains how to update address and company details and how to apply them to individual services. ## Viewing invoices 1. Log in to the store account. 2. Click the **Billing** menu tab. Click Billing tab 3. On the left menu, click the **My Invoices** menu tab. A list of all invoices will be displayed. 4. Click a subheading to view **Paid**, **Unpaid**, or **Credited** invoices. Choose invoice type ## Making a payment To make a payment from an invoice page: 1. Go to **My invoices**. 2. Click **Unpaid** on the left menu. 3. Click an invoice. 4. Click **Pay now** at the top of the invoice. 5. Select a payment method and fill in the fields. Pay now ### Changing a payment method Clients can change the payment method on the invoice page. For more information, follow this [guide](https://docs.upmind.com/using-upmind/payment-methods/how-to-use-different-payment-methods). 1. Click **Change** on the invoice page. 2. Fill in the fields. ## Viewing credit notes Clients can see a list of credit notes (refunds) from your store. 1. Go to the **My invoices** page. 2. Click **Credit notes** on the left menu. Credit notes 3. Click an item to review details. Review details ## Reviewing account credit Your clients can view and top up their account credit (if they choose to use this payment method). 1. Go to the **My invoices** page. 2. Click **Account credit** on the left menu. This page shows current funds available. Account credit ### Adding funds To add money to an account: 1. Click the **Top up** button. 2. Enter an amount. 3. Fill in the fields on the payment page. Top up Add amount ## Updating address/company details for individual services Clients can update their address and VAT number by [adding company details in their profile settings](https://docs.upmind.com/client-self-service/client-area/how-do-my-clients-change-account-settings). The new company details can then be applied to future renewal invoices by assigning them to individual contract products. 1. Go to **Products and Services**. 2. Select the contract product you would like to update. 3. Go to the **Settings** tab. Settings tab 4. Scroll down to the **Billing Address/Company Details** section. 5. Select the company details you wish to use and click **Save**. Billing address/company details in the individual contract product # How to Find Support PIN in Client Area Source: https://docs.upmind.com/client-self-service/client-area/how-to-find-support-pin-in-client-area When your client needs it, you can follow a few steps for this and be secure. If the administrator has enabled the **Support PIN**, your clients can access it from their client area. Follow these steps to find it: 1. Log in to the Upmind client area. 2. Go to **My Account**. 3. Check the bottom left side of the page. You will see the **Support PIN**. Support pin # Overview of the Client Area Dashboard Source: https://docs.upmind.com/client-self-service/client-area/overview-of-the-client-area-dashboard Upmind makes it easier for clients to manage everything in one place. The **Client Area Dashboard** gives your clients a clear overview of their account, making it easy to manage everything in one place. Here’s what they’ll find: * Total Orders – A count of all orders placed. * Total Invoices – A count and quick way to check all invoices. * Unpaid Invoices – A quick way to spot and pay outstanding invoices. * Active Tickets – A list of open support requests for easy tracking. * Active Products & Services – Shows all active subscriptions, with links to manage them. Clients can also navigate to their **Products & Services**, **Invoices**, and **Account Settings**. Everything updates in real time, so they always have the latest info on their subscriptions and payments. Client area dashboard # Adding JS / Live Chat Widget Source: https://docs.upmind.com/client-self-service/customisation/adding-js-live-chat-widget Helps you manage all the queries on your hands and makes things easier. You may want to add custom JavaScript widgets or other elements to your client area. Google Tag Manager makes it easy to manage the JavaScript code displayed to your users and set conditions for when that code is loaded or triggered. Here's how you do it: 1. You should have a **Google Tag Manager** account, which you can create for free at [https://tagmanager.google.com/](https://tagmanager.google.com/) 2. In Upmind, you must add your **Google Tag Manager** account under **Settings** > **Analytics & Tracking**. Settings > Analytics & Tracking 3. Then go into **Tag Manager**. Add a new tag for every page view. Under **Tag Configuration**, select **Custom HTML** and add your custom JavaScript. Set the triggering to **All Pages**. Add new tag This is an example of the code 4. Next, click **Preview** to ensure it publishes. Preview 5. Finally, in the new tab that opens, enter your website URL and try to connect it. Connect 6. This is how the **Live Chat** looks in your client area. Live chat # Creating a Sales Website Source: https://docs.upmind.com/client-self-service/customisation/creating-a-sales-website You can add widgets, plan cards, and many more with this feature. Upmind's client area is **not** designed to replace your frontend sales website. Upmind is a client area, order system, and billing system. We are providing widgets and plan cards that can be embedded into your frontend website. This will eventually lead to whole embeddable 'my account' areas. However, we recommend that you run Upmind on a domain like my.domain.com or clientarea.domain.com rather than on domain.com. ## Can I use Upmind as my main website if I want? Yes, of course, you can. That will make your homepage the shop, which you can configure in **Settings** > **User interface**. ## What should I use to create a website? We are agnostic. We would suggest some software where you can embed HTML / JavaScript so that you can drop in any Upmind widgets. You cannot go far wrong with WordPress, which can be installed on any decent hosting platform. # Customising Behaviour Source: https://docs.upmind.com/client-self-service/customisation/customising-behaviour Customising behaviour enables you to change the admin area or client area based on the experience and the modifications required. A number of customisations can be made to how your clients experience the client panel. These are handled in **Settings >** **User Interface** as follows. Settings > User Interface ## Changing default behaviour on login You can select the following options when a client logs in to the dashboard. Page after login | **Destination** | **Description** | | ------------------------------------ | ----------------------------------------------------------------------------------------------------------- | | Go to the dashboard | Loads the client dashboard | | Go to the products and services page | Loads the products and services page. If the client only has one product, it goes to that product directly. | | Go to the support section | Loads the support section | | Go to the billing section | Loads the billing section | | Go to the my account page | Loads the my account page | # Upmind API Guide: Generating API Tokens Source: https://docs.upmind.com/developers/api-tokens/upmind-api-guide-generating-api-tokens How to generate API tokens for all your needs while using a perfect flow of your business. Upmind is API-first, meaning every feature in the system is accessible through its API. This guide will walk you through generating an API token in the Upmind admin area. With this token, you can securely connect Upmind to your custom applications or services. ## How to create an API token in Upmind 1. Log in to your Upmind admin area. 2. Go to **Settings** > **API Tokens**. Settings > API Tokens 3. Click **Create API Token** to create a new token. In the pop-up window: * Enter a descriptive name for your token. * Add an IP Whitelist for security. * Set up user permissions as needed. Create API Token Add name and choose permissions Add IP whitelist 4. Click **Save** to generate the API token. ## Managing API tokens In the API Tokens section, you can: * Filter tokens by status (active, inactive, revoked). * Filter by IP whitelist, Whitelisted IPs, and Date created. API token filters * For each generated API token, you can: * Toggle off to deactivate the token. * Manage token settings. * View the activity log. * Refresh the token for security purposes. * Revoke the token when it is no longer needed. API token options ## Using the API and SDK For further details on utilising Upmind SDK, please check our [GitHub repository](https://github.com/upmind/sdk-php?tab=readme-ov-file#usage). When the flag `without_notifications` is passed in the request as **True**, it will stop notifications only, not webhooks. Our comprehensive [API documentation](https://demoapi.upmind.io/doc/) includes all available endpoints and functionalities. # Stripe SDK (Payment Flow) Source: https://docs.upmind.com/developers/stripe-sdk-payment-flow If you're building your own frontend and trying to implement a basic order payment flow using the Stripe SDK, this guide will walk you through the main steps. It's not a complete guide, but instead intended to point you in the right direction. The following assumes you're attempting to capture and use a payment detail during a basket session, rather than simply adding it for later use. There is a separate flow for adding details, which relies on creating a `clientSecret` and using a `setupIntent`. ## Step 1 Make sure the Stripe SDK is loaded within your application or site. ## Step 2 Create and mount the Stripe payment element `this.stripe.elements({ mode: "payment", ... })` within your app. See [https://stripe.com/docs/payments/finalize-payments-on-the-server?platform=web\&type=payment#additional-options](https://stripe.com/docs/payments/finalize-payments-on-the-server?platform=web\&type=payment#additional-options) for more flow details and options. Note that you'll want to pass `setupFutureUsage: "off_session"` if you plan to save and reuse the payment details. ## Step 3 Create a Stripe payment method `this.stripe.createPaymentMethod({ elements: this.elements })`. This should return a `paymentMethod` object containing an `id` property. You'll need to pass this ID to Upmind in a later step. Beware, you'll need to test different card types – some may take you off-site for authentication, and you'll need to handle the return flow back to your application. ## **Step 4** When you convert a basket to an order (POST to `https://api.upmind.io/api/orders/{id}/convert`) you'll need to include `gateway_id` (ID of your Stripe gateway in Upmind) plus an object called `payment_method_addition` which should contain two additional properties: `payment_method_id` (the ID of the payment method created in step 3) and `payment_method_type` (likely `card`). Example payload: `JSON` Example ```json JSON theme={null} { "store_on_payment": true, "store_on_payment_auto_payment": true, "gateway_id": "78985742-6489-7012-50be-1e325d0ed369", "payment_method_addition": { "payment_method_type": "card", "payment_method_id": "pm_1Niu53BiaNfu64y0LG7VuD12" }, "amount": 2 } ``` `store_on_payment` and `store_on_payment_auto_payment` flags are also passed here. This tells Upmind about your intent to save and reuse payment methods for automated renewal payments. ## **Step 5** Once your order has been converted successfully, you'll want to attempt to capture payment (POST to `https://api.upmind.io/api/payments`). Below is an example payload, showing how to pass the `payment_method_id`. Note that you need to add your site's destination URL (typically an order complete page) to the `return_url` and `cancel_url` properties. Upmind will redirect to this in case another off-site authentication flow is engaged. `JSON` Example ```json JSON theme={null} { "store_on_payment": true, "store_on_payment_auto_payment": true, "gateway_id": "78985742-6489-7012-50be-1e325d0ed369", "payment_method_addition": { "payment_method_type": "card", "payment_method_id": "pm_1Niu53BiaNfu64y0LG7VuD12" }, "amount": 2, "client_id": "0e435795-e78d-184e-248b-e1643202d986", "account_id": "d7382485-0793-153d-747a-91e642d59e06", "invoice_id": "e78642de-5397-1478-d673-be1208469530", "return_url": "?success={URL}", "cancel_url": "{URL}" } ``` All being well, you should have successfully created a Stripe payment method and used that detail to pay for an Upmind order. These steps do NOT cover edge cases, error handling, etc., but instead are intended to guide you in the right direction when working on your own implementation. # Upmind API - Affiliate Cookie Flow Source: https://docs.upmind.com/developers/upmind-api-affiliate-cookie-flow Integrate affiliate tracking with Upmind. # Affiliate link and referral cookie flow This guide explains how to integrate affiliate tracking with Upmind when building a custom client area. It covers: 1. Affiliate link visits 2. Referral signups 3. Referral orders The same flow applies whether you use Upmind’s first-party affiliate system, Post Affiliate Pro integration, or both. ## Core concept `referral_cookie` is an opaque, encrypted string used by the affiliate abstraction layer. Your frontend should: 1. Send it when available 2. Store any updated value returned by the API 3. Re-send it on registration and order conversion requests Do not attempt to parse, modify, or en/decode `referral_cookie`; treat it as a transport value. ### Post Affiliate Pro When PAP is configured in your Brand’s settings, the **click** data will be sent to PAP’s tracking URL, and the `referral_cookie` will contain the visitorId, which PAP uses to correlate link clicks with conversions. Typically, PAP affiliate links can be identified by the presence of an affiliate ID in the query string, e.g. `?aid=abc123`. ## End-to-end flow 1. The visitor lands on an affiliate URL. 2. Frontend calls `POST /api/affiliate_link/visit` with visit metadata and existing `referral_cookie` (if present). 3. API responds with `redirect_url` and optionally a refreshed `referral_cookie` (+ max age). 4. Frontend sets/updates the browser cookie and redirects the visitor. 5. When the visitor registers (e.g. `/api/clients/register`), send `referral_cookie`. 6. When converting basket to invoice (`/api/orders//convert`), send `referral_cookie` again. This ensures referral attribution can be linked from click > signup > paid order. ## API 1: Track affiliate link visit Endpoint: * `POST https://api.upmind.io/api/affiliate_link/visit` **Remember to include your Upmind domain in the Origin header so we can determine the correct brand + settings context.** **Example**: `Origin: https://xyz.upmind.app` Request body fields: * `visit_url` (required): Full current browser URL, including query string and hash. * To configure the onward redirect for Post Affiliate Pro links, it’s possible to add a \&redirect= parameter to affiliate links; ensure this is included in `visit_url` for this to be returned as `redirect_url` in the response. As long as the redirect URL is on the same domain as the visit URL or is added in your Upmind brand’s domain settings, it will be permitted as a redirect target; otherwise, your configured default redirect URL will be used; this is a security measure to prevent malicious redirects. * `referrer_url` (required): Browser referrer URL. * `user_agent` (required): Browser user agent string. * `referral_cookie` (optional): Existing referral cookie value, if already present. Example request: ```json JSON theme={null} { "visit_url": "https://example.com/?aid=abc123&utm_source=partner&redirect=https%3A%2F%2Fexample.com%2Fproducts", "referrer_url": "https://partner.example.net/review-page", "user_agent": "Mozilla/5.0 (...) Safari/537.36", "referral_cookie": "" } ``` Example success payload: ```json JSON theme={null} { "data": { "redirect_url": "https://example.com/products", "referral_cookie": "", "referral_cookie_max_age": 2592000 } } ``` Client handling rules: 1. If `data.referral_cookie` exists, set/update a first-party cookie in the browser. 2. Use `data.referral_cookie_max_age` as the cookie lifetime when present. 3. Redirect the visitor to `data.redirect_url`. ## API 2: Send referral cookie during client registration Supported registration endpoints: * `POST /api/clients/register` - Standard client registration endpoint * `POST /api/clients/register/guest` - Guest client creation endpoint for basket operations * `POST /api/clients//complete_registration` - Guest registration completion endpoint Payload field: * `referral_cookie` (optional): Pass the current cookie value from the browser. Example standard registration payload excerpt: ```json JSON theme={null} { "email": "customer@example.com", "firstname": "Alex", "lastname": "Doe", "password": "", "referral_cookie": "", "user_agent": "Mozilla/5.0 (...) Safari/537.36" } ``` ## API 3: Send referral cookie when converting basket to order invoice Endpoint: * `PATCH /api/orders//convert` Payload field: * `referral_cookie` (optional): Pass the current cookie value so the order referral can be associated. Example request: ```json JSON theme={null} { "payment_details_id": 12345, "referral_cookie": "" } ``` Why this matters: * The referral cookie is stored against the initial order invoice and later used to record the affiliate sale after payment is made. ## Recommended integration pattern (Frontend) 1. On every page load where affiliate params may be present, call `/api/affiliate_link/visit`. 2. Always include the current cookie value in that call when available. 3. Persist returned cookie as a first-party cookie. 4. Include cookie value in: * `/api/clients/register` or `/api/clients/register/guest` or `/api/clients//complete_registration` * `/api/orders//convert` 5. Do not attempt to modify cookie contents in frontend code. ## Implementation checklist * Capture and send `visit_url`, `referrer_url`, `user_agent` on link visit * Persist returned `referral_cookie` * Pass `referral_cookie` during registration * Pass `referral_cookie` during basket conversion * Allow graceful behaviour if the cookie is absent # Consuming Webhooks Source: https://docs.upmind.com/developers/webhooks/consuming-webhooks Details webhooks, including payload structure and best practices for receiving, authenticating, and processing event data at the endpoints. Consuming webhooks involves handling and processing event notifications sent from Upmind to your service’s endpoint. You may use official Upmind [webhook endpoint libraries](https://github.com/upmind/webhook-endpoint) (e.g., [upmind/webhook-endpoint for PHP](https://github.com/upmind-automation/webhook-endpoint)) or write your own handler using any modern language or framework. ## **Events** Each webhook corresponds to a specific hook event (sometimes referred to as a trigger) by user actions (like staff login) or automated processes (such as recurring invoice payments). When triggered, your webhook code receives a hook code identifying the event (e.g., invoice\_paid\_hook) and a unique webhook event ID, which can be used to prevent duplicate processing. ### **Payload** Upmind sends webhooks as HTTP POST requests with a JSON string payload in the request body. All payloads share a core structure and include a version property (default: V1) that defines their format. You can see an example of a V1 webhook payload [here](https://github.com/upmind/webhook-endpoint/blob/main/examples/example-v1-payload.json). Webhook payloads include the following data: * Unique event ID * Hook category (e.g., client, invoice, subscription) * Hook (event trigger) * Date/Time * Brand * Actor (initiator, such as client or staff) * Object (the main data, varies by category; for example, an invoice object) ## **Authentication** Each webhook endpoint is assigned a random secret used to authenticate incoming webhooks through a payload signature. Currently, this is the only supported authentication method, with more methods coming soon. Authentication For added security, verify the incoming request's IP address and proceed only if it matches one of [Upmind's IP addresses](/legal-and-information/upmind-ip-addresses). ### **Signature authentication** Each webhook request includes an `X-Webhook-Signature` header, a SHA-256 HMAC hash of the request body created using the endpoint secret. In your code, you can compute the same hash and compare it to the header value, proceeding only if they match. PHP and Node.js Signature Validation Example: `PHP` Example ```php theme={null} **Webhooks** in the admin area. 2. Click **Create Webhook**. Create webhook 3. Enter a name and the endpoint URL where notifications should be delivered (for example, your app, middleware, or Zapier webhook URL). Multiple endpoints can be configured for different workflows or third-party services. Add webhook endpoint details ### **Set up event triggers** 1. In your webhook settings, select **Add trigger**. Add trigger 2. Choose the specific events (e.g., client registered, order paid, invoice refunded) you want this endpoint to listen for. 3. To enable triggers across multiple event categories, save your selections in one category, then repeat for others. Each trigger activates a webhook when its related action occurs in Upmind. Configure event triggers ### **Test webhook delivery** 1. Go to **Clients** > **Add Client** in your admin area. 2. Add a new test client or edit an existing one (e.g., change their name or update any field tied to a webhook trigger). Test the Client Created triggers 3. View the webhook log under **Logs** > **Webhook** events log to confirm reception. Inspect the webhook event log Webhook payload Each event displays payload details, the response from your endpoint, and HTTP status codes. Use the logs to troubleshoot or verify that your integration is working as intended. For advanced details on payloads, authentication, and consuming webhooks, see [Consuming Webhooks](/developers/webhooks/consuming-webhooks). # Quick Start Guide for Digital Agencies Source: https://docs.upmind.com/for-digital-agencies/quick-start-guide-for-digital-agencies Simplified setup to automate billing, project management, and client support. Upmind is a powerful, flexible platform designed to simplify subscription billing, client management, and service provisioning for digital agencies. This guide presents an easy, practical path through the core features you need to launch and run your agency efficiently. You will need to do the following: 1. **Create and configure your Upmind account** 2. **Verify your account** 3. **Log into the admin panel** 4. **Configure your domain** 5. **Change the organisation name display** 6. **Set store currency** 7. **Add your agency services as products** 8. **Create categories** 9. **Create products** 10. **Add product details** 11. **Upload images** 12. **Configure billing** 13. **Set up billing and payment processing** 14. **Configure provisioning** 15. **Manage client accounts and support** 16. **Launch your online store** 17. **Use analytics and reporting to optimise your business** You can also follow this [guide](/getting-started/how-to-create-an-upmind-account) to create your own profile. ## **Create and configure your Upmind account** 1. Go to [Upmind.com](http://Upmind.com). 2. Click on **Start** for free. Start for free Start for free 3. Enter your email and sign up. Sign up Sign up ## **Verify your account** 1. Check your email (and spam) for Upmind’s verification link within 5 minutes. 2. Click the link to open your organisation’s admin dashboard. Your account is now live. ## **Log into the admin panel** 1. Visit your `Admin Panel` login page at [https://my.upmind.com/login](https://my.upmind.com/login). 2. Enter your credentials to log in. Log in panel Log in panel ## **Configure your domain** 1. Upmind creates a unique subdomain for your store ending with `.upmind.app`. 2. After setup, [configure your own domain](/setup-and-configuration/branding/how-to-add-a-custom-domain-name) (e.g., `yourdomain.com` or `clientarea.yourdomain.com`). Unique subdomain Unique subdomain ## **Change the organisation name display** 1. Go to **Settings** > **Brand Settings** under **Branding and Customisation**. Settings > Branding and Customisation > Brand Settings Settings > Branding and Customisation > Brand Settings 2. Enter a new name and click **Save**. New brand name New brand name Upmind updates the [organisation](/setup-and-configuration/branding/what-is-an-organisation) name on screen, but not the domain name. An Upmind account is an organisation that can include multiple brands configured on the brand page. If you manage several businesses under the same legal entity, use multi-brand mode within one organisation. Or you can create separate organisations for distinct legal entities. ## **Set store currency** 1. Go to **Settings** > **Business Settings** under **E-commerce Settings**. Settings > E-commerce Settings > Business Settings Settings > E-commerce Settings > Business Settings 2. Set your **Store Currency**, which will be the primary currency. Store currency Store currency Upmind supports [multiple currencies](/using-upmind/invoicing-and-taxes/about-multi-currency), but your primary (base) currency is fixed once you record your first transaction. This base currency drives all reporting and conversions and cannot be changed afterwards, so choose it carefully. ## **Add your agency services as products** 1. Access it from the dashboard by clicking on **Store Catalogue**. Store catalogue Store catalogue 2. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. Settings > Products and Promotions > Product Catalogue Settings > Products and Promotions > Product Catalogue ## **Create categories** Categories help you organise your products and can be edited at any time. ### **Add a new category** 1. On the `Product Catalogue` page, click **Add New**. 2. Choose **Products category**. Add new product category Add new product category 3. Enter a unique category name. 4. Add a category description (visible to website visitors). 5. Click **Create**. SEO service SEO service The new category appears in the catalogue. Service on catalogue page Service on catalogue page ## **Create products** You can add products in two ways: 1. Click **Add New** > **Product** on the `Product Catalogue` page. 2. Or, click the three-dot menu next to a category and select **Add product**. Add product Add product 3. Choose **Single** product (default) or **Product** bundle. 4. Complete the product fields (name, descriptions, etc.). 5. Click **Create**. Single product option Single product option Click the product Click the product The `Product Details` page displays the category and product name. Category and product name Category and product name ## **Add product details** On the `Product Details` page, you can add or edit product info: * **Product Description**: Detailed information about the product, such as features and benefits. Longer text supported. * **Product Short Description**: A concise description of up to 130 characters to grab attention. Product description & product excerpt Product description & product excerpt Text exceeding **293 characters** in the product description is clipped automatically with a *read more* link. Product description displays Product description displays The product excerpt displays on the **Add to Basket** page. Product excerpt Product excerpt ## **Upload images** You can add up to 10 images per product to enhance its presentation. Click the upload area to select images. The first uploaded image becomes the default. You can also change the default image by hovering over the thumbnail and clicking the star. Learn about [suggested image sizes](/setup-and-configuration/other-setup-items/what-is-the-best-image-size-for-my-pictures#/). Click a square to upload image Click a square to upload image ## **Configure billing** 1. Select `Product billing` from the menu. Choose Product billing Choose Product billing ### **Create a one-off payment price** 1. Click the *One-off payment* tile. One-off payment tile One-off payment tile 2. Enter the price for your default currency. 3. Add prices for additional currencies. (Optional) To remove a currency, click the *X* icon next to it. Add price for default currency Add price for default currency 4. Click **Save**. ### **Configure the multi-currency option** If a product doesn’t have a set price in a specific currency (for example, it’s only priced in your primary currency), you can control how Upmind handles it. By default, it follows your brand’s [multi-currency](/using-upmind/invoicing-and-taxes/about-multi-currency) settings, but you can override this per product by choosing one of three options. * **Omit product**: Product unavailable in that currency. * **Make available**: Automatically convert price using current exchange rates. * **Inherit brand default**: Use your brand’s global multi-currency setting. Choose make available Choose make available ### **Set up recurring payments** 1. Click the *Recurring payment* tile. Recurring payment tile Recurring payment tile 2. Scroll to the pricing section and click **Add new term**. 3. Choose a billing term from the dropdown menu (monthly, yearly, etc.) Select option on drop-down menu Select option on drop-down menu The term defines how often automatic payments occur. Recurring charges continue for the length of the customer’s plan and will renew at the end of the term unless cancelled. * If a customer chooses Package A with a monthly term, the next payment will be charged the following month. * If a customer chooses Package B with an annual term, a single payment covers the full year, and the next payment will be charged on the renewal date the following year. 4. For custom plans, select **Custom** and enter the number of months. Enter number of months Enter number of months 5. Add prices for each currency accordingly. 6. Add more terms if needed. Enter price for each currency Enter price for each currency 7. To delete a term, click **Delete** next to it. 8. Click **Save**. ### **Select the default payment term** When multiple subscription options exist, you can set which term displays by default to customers. At the bottom of the billing page, select the default. Select an option Select an option ## **Set up billing and payment processing** 1. Go to **Settings** > **Payment Providers** under **E-commerce Settings**. Settings > E-commerce Settings > Payment Providers Settings > E-commerce Settings > Payment Providers 2. Click **Add payment provider** and configure [payment gateways](/using-upmind/payment-methods/payments-in-upmind/available-payment-gateways) like Stripe, PayPal, or offline payment methods. Add payment provider Add payment provider Enter payment provider details Enter payment provider details ## **Configure provisioning** Here, we will use **SEO** with **marketgoo** provisioning as an example. 1. Go to **Settings** > **Provision Configurations** under **Provisioning**. Settings > Provisioning > Provision Configurations Settings > Provisioning > Provision Configurations 2. Click on **Add New Configuration**. Add new configuration Add new configuration 3. Select **SEO** from the dropdown and choose **marketgoo**. Select SEO Select SEO 4. Fill in the details (API URL and API KEY). Add details Add details For more details, see this [guide](/for-web-hosts/seo/integrating-marketgoo-to-upmind). 5. Select `Provisioning` from the menu of your product. Choose provisioning Choose provisioning 6. Select **SEO** as your blueprint and choose **marketgoo**. Select marketgoo Select marketgoo 7. Choose your **Provider Configuration**. Choose configuration mode Choose configuration mode 8. You can keep the `Setup Functions` as **Default**, and `Order Setup Fields` as **Inherit from Category**. Setup functions and order setup fields Setup functions and order setup fields 9. Under `Provision Fields`, you need to configure your **Package Identifier**. You can create the **Package** with all the details (for example, disk space, monthly bandwidth limit, etc.) from your panel. Add the **Package Name** to the **Package Identifier**. Package identifier Package identifier ## **Manage client accounts and support** 1. Add clients manually under **Clients** > **Add New**. Clients > Add New Clients > Add New 2. Associate clients with SEO services and contracts to trigger correct billing and provisioning. Client association Client association 3. You can configure [email piping](/setup-and-configuration/email-configuring-and-sending/how-does-email-work-in-upmind) for support tickets by going to **Settings** > **Support Departments** under **Branding and Customisation**. You can get more information on support departments in this [guide](/using-upmind/service-desk/how-to-create-support-department). Settings > Branding and Customisation > Support Departments Settings > Branding and Customisation > Support Departments 4. You can also implement Upmind’s built-in ticketing system to handle customer inquiries or technical support. [Tickets](/using-upmind/service-desk/how-to-create-a-ticket) link to client records for holistic case management. Support tickets Support tickets ## **Launch your online store** 1. List hosting packages and additional services for customer self-service ordering. 2. Customise pricing, offers, and promotions to attract new customers. 3. Configure checkout flow, payment options, and communication templates. 4. You can check the customer journey by [impersonating a client](/using-upmind/client-management/how-impersonating-a-client-works) and seeing the purchase process. Impersonate clients Impersonate clients Customer journey Customer journey ## **Use analytics and reporting to optimise your business** 1. Review [Insights and Reports](/using-upmind/reporting/about-insights-and-reports) to track sales, client growth, revenue by product, churn, and LTV. Insights and reports Insights and reports 2. Monitor billing performance and customer payment behaviour from the **Admin Dashboard**. Admin dashboard Admin dashboard 3. Use [Google Analytics](/using-upmind/reporting/how-to-set-up-google-analytics-with-upmind) and [Tag Manager](/using-upmind/reporting/how-to-set-up-google-tag-manager-with-upmind) integrations to gain website and portal insights. 4. Adjust pricing, marketing, or support strategies based on data. # Quick Start Guide for Managed Service Providers Source: https://docs.upmind.com/for-managed-service-providers/quick-start-guide-for-managed-service-providers Fast, practical setup to automate billing, client management, and service provisioning for MSPs. Upmind is an all-in-one billing and automation platform ideal for Managed Service Providers (MSPs), for easy management of complex service contracts, multiple brands, and client subscriptions. This guide offers a clear, step-by-step onboarding plan focused on the most important features tailored for MSP business operations. You will need to do the following: 1. **Create and configure your Upmind account** 2. **Verify your account** 3. **Log into the admin panel** 4. **Configure your domain** 5. **Change the organisation name display** 6. **Set store currency** 7. **Define products and services** 8. **Create categories** 9. **Create products** 10. **Add product details** 11. **Upload images** 12. **Configure billing** 13. **Set up billing and payment processing** 14. **Configure provisioning** 15. **Manage client accounts and support** 16. **Launch your online store** 17. **Use analytics and reporting to optimise your business** You can also follow this [guide](/getting-started/how-to-create-an-upmind-account) to create your own profile. ## **Create and configure your Upmind account** 1. Go to [Upmind.com](http://Upmind.com). 2. Click on **Start** for free. Start for free Start for free 3. Enter your email and sign up. Sign up Sign up ## **Verify your account** 1. Check your email (and spam) for Upmind’s verification link within 5 minutes. 2. Click the link to open your organisation’s admin dashboard. Your account is now live. ## **Log into the admin panel** 1. Visit your `Admin Panel` login page at [https://my.upmind.com/login](https://my.upmind.com/login). 2. Enter your credentials to log in. Log in panel Log in panel ## **Configure your domain** 1. Upmind creates a unique subdomain for your store ending with `.upmind.app`. 2. After setup, [configure your own domain](/setup-and-configuration/branding/how-to-add-a-custom-domain-name) (e.g., `yourdomain.com` or `clientarea.yourdomain.com`). Unique subdomain Unique subdomain ## **Change the organisation name display** 1. Go to **Settings** > **Brand Settings** under **Branding and Customisation**. Settings > Branding and Customisation > Brand Settings Settings > Branding and Customisation > Brand Settings 2. Enter a new name and click **Save**. New brand name New brand name Upmind updates the [organisation](/setup-and-configuration/branding/what-is-an-organisation) name on screen, but not the domain name. An Upmind account is an organisation that can include multiple brands configured on the brand page. If you manage several businesses under the same legal entity, use multi-brand mode within one organisation. Or you can create separate organisations for distinct legal entities. ## **Set store currency** 1. Go to **Settings** > **Business Settings** under **E-commerce Settings**. Settings > E-commerce Settings > Business Settings Settings > E-commerce Settings > Business Settings 2. Set your **Store Currency**, which will be the primary currency. Store currency Store currency Upmind supports [multiple currencies](/using-upmind/invoicing-and-taxes/about-multi-currency), but your primary (base) currency is fixed once you record your first transaction. This base currency drives all reporting and conversions and cannot be changed afterwards, so choose it carefully. ## **Define products and services** 1. Access it `Store Catalogue` from the dashboard by clicking on **Store Catalogue**. Store catalogue Store catalogue 2. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. Settings > Products and Promotions > Product Catalogue Settings > Products and Promotions > Product Catalogue ## **Create categories** Categories help you organise your products and can be edited at any time. ### **Add a new category** 1. On the `Product Catalogue` page, click **Add New**. 2. Choose the **Products category**. Add new product category Add new product category 3. Enter a unique category name. 4. Add a category description (visible to website visitors). 5. Click **Create**. Create product category Create product category The new category appears in the catalogue. New category in the catalogue New category in the catalogue ## **Create products** You can add products in two ways: 1. Click **Add New** > **Product** on the `Product Catalogue` page. 2. Or, click the three-dot menu next to a category and select **Add product**. Add product Add product 3. Choose **Single** product (default) or **Product** bundle. 4. Complete the product fields (name, descriptions, etc.). 5. Click **Create**. Single product option Single product option Click the product Click the product The `Product Details` page displays the category and product name. Category and product name Category and product name ## **Add product details** On the `Product Details` page, you can add or edit product info: * **Product Description**: Detailed information about the product, such as features and benefits. Longer text supported. * **Product Short Description**: A concise description of up to 130 characters to grab attention. Product description & product excerpt Product description & product excerpt Text exceeding 293 characters in the product description is clipped automatically with a read more link. Product description displays Product description displays The product excerpt displays on the **Add to Basket** page. Product excerpt Product excerpt ## **Upload images** You can add up to 10 images per product to enhance its presentation. Click the upload area to select images. The first uploaded image becomes the default. You can also change the default image by hovering over the thumbnail and clicking the star. Learn about [suggested image sizes](/setup-and-configuration/other-setup-items/what-is-the-best-image-size-for-my-pictures). Click a square to upload image Click a square to upload image ## **Configure billing** 1. Select `Product billing` from the menu. Choose Product billing Choose Product billing ### **Create a one-off payment price** 1. Click the *One-off payment* tile. One-off payment tile One-off payment tile 2. Enter the price for your default currency. 3. Add prices for additional currencies. (Optional) To remove a currency, click the X icon next to it. Add price for default currency Add price for default currency 4. Click **Save**. ### **Configure the multi-currency option** If a product doesn’t have a set price in a specific currency (for example, it’s only priced in your primary currency), you can control how Upmind handles it. By default, it follows your brand’s [multi-currency](/using-upmind/invoicing-and-taxes/about-multi-currency) settings, but you can override this per product by choosing one of three options. * **Omit product**: Product unavailable in that currency. * **Make available**: Automatically convert price using current exchange rates. * **Inherit brand default**: Use your brand’s global multi-currency setting. Choose make available Choose make available ### **Set up recurring payments** 1. Click the **Recurring payment** tile. Recurring payment tile Recurring payment tile 2. Scroll to the pricing section and click **Add new term**. 3. Choose a billing term from the dropdown menu (monthly, yearly, etc.). Select option on drop-down menu Select option on drop-down menu The term defines how often automatic payments occur. Recurring charges continue for the length of the customer’s plan and will renew at the end of the term unless cancelled. * If a customer chooses Package A with a monthly term, the next payment will be charged the following month. * If a customer chooses Package B with an annual term, a single payment covers the full year, and the next payment will be charged on the renewal date the following year. 4. For custom plans, select **Custom** and enter the number of months. Enter number of months Enter number of months 5. Add prices for each currency accordingly. 6. Add more terms if needed. Enter price for each currency Enter price for each currency 7. To delete a term, click **Delete** next to it. 8. Click **Save**. ### **Select the default payment term** When multiple subscription options exist, you can set which term displays by default to customers. At the bottom of the billing page, select the default. Select an option Select an option ## **Set up billing and payment processing** 1. Go to **Settings** > **Payment Providers** under **E-commerce Settings**. Settings > E-commerce Settings > Payment Providers Settings > E-commerce Settings > Payment Providers 2. Click **Add payment provider** and configure [payment gateways](/using-upmind/payment-methods/payments-in-upmind/available-payment-gateways) like Stripe, PayPal, or offline payment methods. Add payment provider Add payment provider Enter payment provider details Enter payment provider details ## **Configure provisioning** Here, we will use **Servers** with **Virtualizor** provisioning as an example. 1. Go to **Settings** > **Provision Configurations** under **Provisioning**. Settings > Provisioning > Provision Configurations Settings > Provisioning > Provision Configurations 2. Click on **Add New Configuration**. Add new configuration Add new configuration 3. Select **Servers** from the dropdown and choose **Virtualizor**. Select server Select server 4. Fill in the details (Hostname, Port, API Key, API Password, Location type). Add details Add details For more details, see this [guide](/for-web-hosts/servers/how-to-add-virtualizor-products). 5. Select `Provisioning` from the menu of your product. Choose provisioning Choose provisioning 6. Select **Server** as your blueprint and choose **Virtualizor**. Select Virtualizor Select Virtualizor 7. Choose your **Provider Configuration**. Choose configuration mode Choose configuration mode 8. You can keep the `Setup Functions` as **Default**, and `Order Setup Fields` as **Inherit from Category**. Setup functions and order setup fields Setup functions and order setup fields 9. Under `Provision Fields`, you need to configure your **Virtualization Type**, **Server Location**, **Server Image**, **Server Size**, **Server CPU Cores**, **Server Memory MB**, and **Server Disk MB**. You can get all the details (for example, disk space, monthly bandwidth limit, etc.) from your panel. Provision fields Provision fields ## **Manage client accounts and support** 1. Add clients manually under **Clients** > **Add New**. Clients > Add New Clients > Add New 2. Associate clients with hosting packages and contracts to trigger correct billing and provisioning. Client association Client association 3. You can configure [email piping](/setup-and-configuration/email-configuring-and-sending/how-does-email-work-in-upmind) for support tickets by going to **Settings** > **Support Departments** under **Branding and Customisation**. You can get more information on support departments in this [guide](/using-upmind/service-desk/how-to-create-support-department). Settings > Branding and Customisation > Support Departments Settings > Branding and Customisation > Support Departments 4. You can also implement Upmind’s built-in ticketing system to handle customer enquiries or technical support. [Tickets](/using-upmind/service-desk/how-to-create-a-ticket) link to client records for holistic case management. Support tickets Support tickets ## **Launch your online store** 1. List hosting packages and additional services for customer self-service ordering. 2. Customise pricing, offers, and promotions to attract new customers. 3. Configure checkout flow, payment options, and communication templates. 4. You can check the customer journey by [impersonating a client](/using-upmind/client-management/how-impersonating-a-client-works) and seeing the purchase process. Impersonate clients Impersonate clients Customer journey Customer journey ## **Use analytics and reporting to optimise your business** 1. Review [Insights and Reports](/using-upmind/reporting/about-insights-and-reports) to track sales, client growth, revenue by product, churn, and LTV. Insights and reports Insights and reports 2. Monitor billing performance and customer payment behaviour from the **Admin Dashboard**. Admin dashboard Admin dashboard 3. Use [Google Analytics](/using-upmind/reporting/how-to-set-up-google-analytics-with-upmind) and [Tag Manager](/using-upmind/reporting/how-to-set-up-google-tag-manager-with-upmind) integrations to gain website and portal insights. 4. Adjust pricing, marketing, or support strategies based on data. # How to Configure SpamExperts for Upmind Source: https://docs.upmind.com/for-web-hosts/auto-login/how-to-configure-spamexperts-for-upmind Configure and sell SpamExperts auto login product with Upmind. [SpamExperts](https://www.spamexperts.com/) is an email security platform that filters incoming and outgoing mail to block spam, phishing attempts, malware, and other email-based threats. It sits in front of your mail server, scanning mail flows and quarantining suspicious messages while letting legitimate email pass through. ## **Prerequisites** Before connecting SpamExperts to Upmind, make sure you have an active SpamExperts (or N-able Mail Assure) account. ## **Configuring SpamExperts provisioning in Upmind** 1. In Upmind, go to **Settings** > **Provision Configurations** Settings > Provision configurations 2. Click on **Add New Configuration**. Add new configuration 3. Provide a **Name** (e.g., SpamExperts Provision). 4. Select **Auto Login** as the product type. 5. Choose **SpamExperts** as the provisioning provider. Choose SpamExperts ### **Provision configuration settings** * Dashboard URL: Customer login portal for SpamExperts. You can use the default `https://login.antispamcloud.com/` (product login) for the cloud version or enter your specific deployment URL for on-premises or partner-hosted setups. * Username: Admin or domain-level username for API access and service provisioning. Matches your SpamExperts control panel login. * Password: Password paired with the username for authentication. SpamExperts provider configuration ## **How to create a SpamExperts package in Upmind** 1. Go to Store Catalogue > Products in Upmind. Store Catalogue > Products 2. Click Add New. Add new 3. Choose the category and fill in the details. 4. Then click **Create**. Fill in product details 5. On `Provisioning`, set the Provision Blueprint to **Auto Login.** 6. Set the **Provision Provider** to SpamExperts. 7. Choose the **Configuration Mode** and **Provider Configuration**. Set provisioning 8. Enter the Package Identifier. Package identifier 9. **Save** the product. # Domain Transfer Setup Source: https://docs.upmind.com/for-web-hosts/domain-names/domain-transfer-setup Configure your domain transfer setup as a product option. Upmind handles domain transfers as a product option behind the scenes. The product option is assigned to a domain product, which can be selected by the client as a transfer of their domain. Typically, a domain transfer involves a compulsory renewal of a domain name, and therefore, a domain transfer is the same price as a domain registration. Therefore, by default, a domain transfer is a free option on top of a domain product. In some cases (such as UK domains), it can override the price of the domain name. Our system therefore models this as: Standard domain transfers that involve a one-year renewal of a domain - a free option on top of a registration. Domain transfers that do not extend the renewal period of a domain and are therefore free, an option where the price overrides the parent product to 0. You do not need to edit the settings here unless you want to change Upmind's default behaviour. However, if you wish, you can do it like this: 1. Go to **Settings** > **Product Catalogue**. Settings > Product Catalogue 2. Click on the Product options tab. Click **Add new**. Add new product option 3. Create a new product options category for domain setup. Tick the box for override price to manually adjust the transfer fee. Add product options category You have the option to either enable or disable the override product price. When activated, the regular price will be replaced with the override price (in this case, “transfer fee”), which can be managed within the product option billing settings. Upon the renewal, the price will revert to the original price. We'll configure both the override and regular prices for your setup. Let's take into account a product priced at $30 with recurring payments. Furthermore, we've set up a transfer fee of $10. Here are the details: Transfer fee 4. Add a new product option under the **Domain Setup Category** labelled **Domain Transfer**. Add Product Option 5. Set up the billing for the transfer option accordingly. For **FREE** domain transfers, you can set the billing to `0`. Set the price of the product option After successfully creating a new product option for domain transfer, then: 1. Go to the domain product, then select the **Product option**. 2. Click Manage and add the transfer domain option that you have created. Hit **save**. Manage and Add the New Product Option 3. The free domain transfer will show on your store. The Free Domain Transfer has been Successfully Setup # How to add a Domain Availability Checker widget to your website Source: https://docs.upmind.com/for-web-hosts/domain-names/how-to-add-a-domain-availability-checker-widget-to-your Add a Domain Availability Checker widget to your website so people can find out about their preferred domain availability instantly. A domain search allows your clients to search for available domains on your website and then be linked through to your order form. Upmind gives you a code snippet you can embed on your website. **It would look like this:** Domain Availability Checker ## The code snippet To generate your code snippet, go to **Host Control** > **Domain names** > **Widgets**. Host Control > Domain names > Widgets **The HTML code is as follows:** ``` ``` * Replace \{orderConfigUrl} with your shop URL example, your store URL is: my.upmind.com/order/product, with "https\://" added in front of your website name. **(See HTML code example below)** * Replace the \{currency} with your currency code (e.g., USD) This is an example of what the final snippet should look like, depending on your orderConfigUrl and currency: ``` ``` ## Associate your website domain with Upmind To make the domain checker work, you need to add your domain to the list of domains under **Settings** > **Domains**. You do not need to change your DNS records. If your domain is not added to the domains list, then the domain search will not function. ## Enable/disable Domain Availability Checker You can enable or disable the domain availability checker. 1. Go to **Host Control** > **Domain Names** > **Registrars**. 2. Select **Enable use in domain search**. Enable use in domain search 3. A visual indicator will show whether domain availability checking is enabled or not. Enabled for checking 4. You can choose to disable it again. Disable option # How to Add a TLD Source: https://docs.upmind.com/for-web-hosts/domain-names/how-to-add-a-tld Add TLD products to your hosting business. Before you start, make sure you complete these steps: * Add one or more domain providers to your account (see [Registrar Guides](/for-web-hosts/domain-names/how-to-sell-domain-names) to review configuration instructions for individual registries or registrars) * Read the [recommended billing settings](/for-web-hosts/domain-names/recommended-tld-billing-settings). * Fill in the fields on the **Domain names** > [Settings page](/for-web-hosts/domain-names/how-to-input-domain-settings). ## What is a TLD TLD stands for **Top Level Domains**. It refers to the extension at the end of a domain (e.g., .com, .net, .ninja). Each TLD may have separate rules and registration conditions and is provided by a number of different registries. You usually sell domains (if you are not ICANN accredited) through a domain wholesaler such as OpenSRS, Hexonet, or Enom. However, you may also go directly to the registry, such as Nominet or CentralNIC. Each registry and/or wholesaler may offer different prices for each domain, and so Upmind offers an advanced level of configuration options when selling domains. ## Which domain registrar to use? Upmind is provider agnostic. We have integrations for the following. We include sign-up links to their website. As we add more registrars, they will be added to the list below. | **Domain Provider** | **Sign up Link** | **Configuration Requirements** | | :------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------- | | Enom | [https://cp.enom.com/resellers/signup/default.aspx](https://cp.enom.com/resellers/signup/default.aspx) | Username and API Token | | Hexonet | [https://www.hexonet.net/resellers/](https://www.hexonet.net/resellers/) | Username and Password | | OpenSRS | [https://opensrs.com/join/](https://opensrs.com/join/) | Username and API Key | | Nominet | [https://registrars.nominet.uk/uk-namespace/registration-and-domain-management/new-registrars/becoming-a-uk-namespace-registrar/](https://registrars.nominet.uk/uk-namespace/registration-and-domain-management/new-registrars/becoming-a-uk-namespace-registrar/) | IPSTAG and Password | | ResellerClub | [https://www.resellerclub.com/domain-reseller/signup-now](https://www.resellerclub.com/domain-reseller/signup-now) | Reseller ID and API Key | | NetEarthOne | [https://netearthone.com/signup/reseller.php](https://netearthone.com/signup/reseller.php) | Reseller ID and API Key | | ConnectReseller | [https://india.connectreseller.com/signup](https://india.connectreseller.com/signup) | API Key | | [Resell.biz](http://Resell.biz) | [https://www.resell.biz/domain-reseller/](https://www.resell.biz/domain-reseller/) | Reseller ID and API Key | | OpenProvider | [https://www.openprovider.com/resellers/reseller-control-panel](https://www.openprovider.com/resellers/reseller-control-panel) | Username and Password | | NameSilo | [https://www.namesilo.com/reseller](https://www.namesilo.com/reseller) | API Key | | Domain Name API | [https://www.domainnameapi.com/become-a-reseller](https://www.domainnameapi.com/become-a-reseller) | Username and Password | | Namecheap | [https://www.namecheap.com/myaccount/signup/](https://www.namecheap.com/myaccount/signup/) | Username and API Token | | CentralNic Reseller | [https://www.centralnicreseller.com/sign-up/](https://www.centralnicreseller.com/sign-up/) | Username and Password | | GoDaddy | [https://www.godaddy.com/en-sg/help/create-a-godaddy-account-16618](https://www.godaddy.com/en-sg/help/create-a-godaddy-account-16618) | API Key and API Secret | | Realtime Register | [https://realtimeregister.com/signup/](https://realtimeregister.com/signup/) | Customer and API Key | | InternetBS | [https://internetbs.net/en/index.html](https://internetbs.net/en/index.html) | API Key and Password | | EuroDNS | [https://www.eurodns.com/](https://www.eurodns.com/) | Username and Password | | InternetX | [https://www.internetx.com/en/](https://www.internetx.com/en/) | Username and Password | You can [integrate with multiple domain registrars](https://docs.upmind.com/for-web-hosts/domain-names/using-multiple-registrars). You can also integrate with the same registrar multiple times (for instance if you have two separate Enom accounts). ## Creating a TLD product 1. Log in to your admin account. 2. Click **Host control** on the side menu. 3. Click the **Add new TLD** button. A side panel opens. Host Control > Add new TLD 4. On the side panel, enter the TLD you want to add to your offerings and click **Next**. Enter TLD ## Configuring the product On the configuration panel, select the domain provider for this TLD. Next, review the default settings for three fields and customise as required. * **Late renew:** A grace period to renew an expired TLD. * **Max registration period:** Ten years is the industry standard, but you can change this setting. * **Redemption period:** This is the period following the late renew period. If the domain name is not purchased during the redemption period, it typically returns to the public and is available for registration. Configure TLD Late renew periods and redemption periods can vary by registrar and registry. Ask your registry/registrar about the periods for each TLD product you offer. ### Recurring invoice generation These are advanced settings. We suggest leaving the defaults. Recurring invoice ### Pricing configuration Enter a price for the TLD. You can add pricing for a single year or enter figures for the maximum registration period (optional but recommended). 1. Scroll down to the **Pricing configuration** heading. 2. Click the Advanced button. 3. Select Auto-populate prices. Pricing configuration On the next panel: 1. Check the Overwrite box. 2. Add a price for the default currency. 3. Click **Add currency** (optional). Add currency 4. Scroll down to review prices for each term and currency. 5. Click the **Auto-populate prices** button at the bottom of the page. 6. Click **Create**. Check terms Click create Upmind adds the domain name product to your TLDs page. New TLD created ## What the client sees To test the integration, we open our sample Upmind store. On the left side of the screen, the **Domain Names** category automatically displays and shows one product. We enter a domain name in the search bar. The site displays all the available options along with the new TLD that we just created. Domain name search If the client clicks the **Register domain** button, a new page displays price options for different registration periods and a form to complete. After the client completes the form, the transaction moves the client from the basket to the checkout. Proceed to checkout After the transaction completes, the client can manage their domain. They should: 1. Click the **Products & Services** menu tab and select a domain. Products & Services 2. Then scroll down to the Manage section. Manage your product Here, a client can update their account (e.g., nameservers or registrant information). They can also lock the domain. ## What the admin sees Like any product, admins can see TLD purchases on the Upmind dashboard. 1. On the side menu, click **Products & services**. 2. Click a product tile. The product page displays. TLD product admin view # How to Input Domain Settings Source: https://docs.upmind.com/for-web-hosts/domain-names/how-to-input-domain-settings Upmind extracts the necessary information from Host Control so you don't have to worry about it. To register a domain name, a hosting company needs to include information about its company. On Upmind, that information comes from the **Host control** > **Domain names** page. Click the **Settings** menu tab and verify the information. If incomplete, fill in all required fields and click Save. At a minimum, you need to enter: * Server names * Company name and address * Admin contact information Enter domain names setting details # How to Sell Domain Names Source: https://docs.upmind.com/for-web-hosts/domain-names/how-to-sell-domain-names Learn all about how to sell domain names in Upmind. To sell domain names, you need to have an account with a domain wholesaler. Upmind is provider agnostic and supports multiple integrations with 26+ domain providers, including Enom, OpenSRS, Hexonet, ResellerClub, and NetEarthOne. More are being added. Below is the guide on How to Sell Domain Names, or you may watch the Upmind YouTube Video [here](https://www.youtube.com/watch?v=blfYVGiXEbM). Once you have signed up for an account with a domain provider, you need to add your credentials to Upmind. 1. Go to **Host Control.** 2. Under the **Registrar** tab, click the provider you want to add. Host Control > Registrar 3. Enter a name for the configuration. This can be anything, but typically you would give it the same name as the registrar. This will not be visible to your clients. **Example**: Hexonet Enter name for the configuration 4. Enter your credentials. Enter credentialls 5. Hit Save. That's it. Now you can add the TLDs you wish to offer. # Recommended TLD billing settings Source: https://docs.upmind.com/for-web-hosts/domain-names/recommended-tld-billing-settings Recommended TLD billing settings enable you to select top-level domains based on the query and purchase decision. This guide provides up-to-date recommendations for configuring TLDs as products in Upmind. Given the wide variety of extensions available and the specific conditions that different registrars may apply, it is essential to have precise parameters that comply with current regulations and facilitate domain administration. ## **General considerations** ### **Registration periods** Most TLDs allow registrations in whole intervals of 1 to 10 years. Although some TLDs may allow extended periods, we recommend adhering to the standard range for consistency and compatibility in management. ### **Renewals and transfers** **Renewals:** Renewals are only allowed in full periods (for example, 3.5-year renewals are not allowed). **Post-Expiration Period:** After the expiration date, most domains offer a grace period of approximately 36 days, during which the domain remains active. **Redemption:** After the grace period, there is a redemption period (usually 30 additional days) in which the domain can be recovered at a higher cost. **Transfers:** When transferring an existing domain, a year is usually automatically added to the registration period, ensuring continuity of ownership. ### **Specific conditions and exceptions** Some TLDs have particular rules. For example, certain providers may apply specific conditions for extensions such as .ch, .io, or others. It is essential to review the policies of the corresponding registrar to ensure that the applied configurations are correct. ## **Configuration in Upmind** In Upmind, each domain is treated as a configurable product, which allows specific conditions to be applied individually. However, when managing a large number of domains, the platform offers default recommendations to simplify administration and ensure compliance with industry standards. ### **Updated default recommendations** The following configurations are a guide for some popular TLDs. Remember that these values may vary depending on the registrar, so it is advisable to confirm with your provider before applying them: | **TLD** | **Years** | **Min length** | **Max length** | **Grace period** | **Late Renew** | **Redemption** | **Due date prior** | **Manual renewal allowed** | **Max registration years** | | ------- | --------- | -------------- | -------------- | ---------------- | -------------- | -------------- | ------------------ | -------------------------- | -------------------------- | | .com | 1-10 | 2 | 63 | 36 | 36 | 30 | 0 | Yes | 10 | | .net | 1-10 | 2 | 63 | 36 | 36 | 30 | 0 | Yes | 10 | | .org | 1-10 | 2 | 63 | 36 | 36 | 30 | 0 | Yes | 10 | | .info | 1-10 | 2 | 63 | 36 | 36 | 30 | 0 | Yes | 10 | | .biz | 1-10 | 2 | 63 | 36 | 36 | 30 | 0 | Yes | 10 | | .us | 1-10 | 2 | 63 | 36 | 36 | 30 | 0 | Yes | 10 | | .co | 1-5 | 2 | 63 | 35 | 36 | 15 | 0 | Yes | 5 | | .mx | 1-10 | 2 | 63 | 0 | 0 | 30 | 0 | Yes | 10 | | .es | 1-10 | 2 | 63 | 10 | 10 | 0 | 0 | Yes | 10 | | .eu | 1-10 | 2 | 63 | 0 | 0 | 0 | 0 | Yes | 10 | If you believe the above data to be incorrect, please suggest an edit to this guide. # Using Multiple Registrars Source: https://docs.upmind.com/for-web-hosts/domain-names/using-multiple-registrars Utilise many registrars to sell domain names. If you use multiple providers to sell domain names, you may need to configure which one to use by default for new orders or even which registrar to use for orders of specific TLDs. ## System Default To set a system default registrar for new domain name orders 1. Go to **Host Control** > **Registrars**. 2. Select a registrar, then tick the checkbox to set it as the Domain Names default. Set as default Registrar This will only affect new orders of TLDs that do not have a specific registrar configured (see below). ## Specific TLDs If you want to use a different registrar (i.e., not the system default) to provision orders of certain TLDs, you can configure this too. 1. Go to Host Control > TLDs. 2. Select a TLD, then select a specific registrar to use for that TLD. Specify Registrar # Why Your TLD isn’t Showing in the Store? Source: https://docs.upmind.com/for-web-hosts/domain-names/why-your-tld-isnt-showing-in-the-store Troubleshoot missing TLD. If you've added a TLD to sell in Upmind but it's not appearing in your store through the DAC widget, try the following: 1. Ensure you [add the TLD](/for-web-hosts/domain-names/how-to-add-a-tld) correctly under **Host Control** > **Domain Names** > **TLDs** tab > **Add New TLD**, without duplicating any existing TLDs. Host Control > TLDs > Add new TLD 2. Ensure you've selected the **Registrar**, or you can choose **Auto mode** if the registrar is not yet supported and you need to manually activate it on the registrar. Select Registrar 3. Ensure the price is set for your TLD. You can check this under **Host Control** or **Product Catalogue/Store Catalogue**. Check pricing from Host Control Check pricing from Product Catalogue 4. Check if the **Register** and **Transfer** options are correctly configured under the **Provisioning** tab. Check setup functions 5. Ensure that you've [completed the domain settings](/for-web-hosts/domain-names/how-to-input-domain-settings) under **Host Control** > **Domain Names** > **Settings**. Host Control > Domain Names > Settings # How to Integrate and Sell Titan Email Products Source: https://docs.upmind.com/for-web-hosts/email-service/how-to-integrate-and-sell-titan-email-products Configure Titan products and automate provisioning with Upmind [Titan](https://titan.email/) is a business email service that helps you build stronger relationships with your customers. It offers professional email features with a clean, user-friendly interface tailored for small businesses. Titan can be easily sold and integrated into Upmind. ## Credentials you need You need to have a registered partner account with Titan to integrate Titan with Upmind. [Contact them if you do not have one](https://titan.email/contact/). Once registered, you’ll receive the API URL, Partner ID, API Secret Key, and Control Panel URL. If you’re unable to get these details, contact Titan’s support to obtain your Partner ID and Secret Key. In most configurations, you’ll need to set the following URLs: | Credential Name | Format | | ----------------- | -------------------------------------------------------- | | API URL | [https://bll.titan.email](https://bll.titan.email) | | Control Panel URL | [https://manage.titan.email](https://manage.titan.email) | Then, when creating a Titan product in Upmind, you’ll need to configure the provision fields, using the appropriate package name based on the pre-defined plans provided by Titan. | **Provision Fields** | **Details** | | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | | Plan Name (The pre-defined plans) | - free - pro - premium - pro\_trial - premium\_trial - ultra - ultra\_trial | | Seat Count | Determines how many mailboxes the customer is allowed to create in their account. | ## Configuring Titan in Upmind ### Add Titan Credentials First, add Titan as a provision configuration. 1. Go to `Settings > Provision Configurations` 2. Click `Add New Configuration` 3. You can use any name you like, but we recommend using "Titan". If you don’t have multiple standalone Titan setups, you’ll only need to add this configuration once. 4. Select `Office Tools` as the Provision category, and choose Titan as the provider. 5. Fill the fields with the information you gathered earlier. Your Partner ID should go in the "Client ID" field and your Key should go in the "Client Secret" field. 6. Click `Create` TitanMail Configurations ### Creating Packages You'll need to create at least one Titan package, usually one for each Titan package you have. Here's how to do it: 1. Go to `Settings > Product Catalogue`. 2. Click on Add New. If you don't have a product category yet, you'll need to create one. 3. Give your product a name and click Create. 4. Set up the product billing. 5. Under provisioning tab, select `Office Tools` and save your changes. 6. **Select Titan as the provider**, then configure the provision fields for the **Plan Name** and **Seat Count**. Setting up the provisioning for TitanMail package That's it! Your Titan product is ready for sale. # Quick Start Guide for Hosting Companies or Resellers Source: https://docs.upmind.com/for-web-hosts/quick-start-guide-for-hosting-companies-or-resellers Get your hosting business up and running fast with Upmind’s automation platform. Upmind automates billing, provisioning, client management, and support for hosting companies and resellers. This guide provides a practical step-by-step onboarding process to quickly set up and manage your hosting business using Upmind’s platform. You will need to do the following: 1. **Create and configure your Upmind account** 2. **Verify your account** 3. **Log into the admin panel** 4. **Configure your domain** 5. **Change organisation name display** 6. **Set store currency** 7. **Create a web server** 8. **Set up billing and payment processing** 9. **Add hosting products and packages** 10. **Connect domain registrar providers** 11. **Manage client accounts and support** 12. **Launch your online store** 13. **Use analytics and reporting to optimise your business** You can also follow this [guide](/getting-started/how-to-create-an-upmind-account) to create your own profile. ## **Create and configure your Upmind account** 1. Go to [Upmind.com](http://Upmind.com). 2. Click on Start for free. Start for free 3. Enter your email and sign up. Sign up ## **Verify your account** 1. Check your email (and spam) for Upmind’s verification link within 5 minutes. 2. Click the link to open your organisation’s admin dashboard. Your account is now live. ## **Log into the admin panel** 1. Visit your `Admin Panel` login page at [https://my.upmind.com/login](https://my.upmind.com/login). 2. Enter your credentials to log in. Log in panel ## **Configure your domain** 1. Upmind creates a unique subdomain for your store ending with .[upmind.app](http://upmind.app). 2. After setup, [configure your own domain](/setup-and-configuration/branding/how-to-add-a-custom-domain-name) (e.g., [yourdomain.com](http://yourdomain.com) or [clientarea.yourdomain.com](http://clientarea.yourdomain.com)). Unique subdomain ## **Change organisation name display** 1. Go to **Settings** > **Brand Settings** under **Branding and Customisation**. Settings > Branding and Customisation > Brand Settings 2. Enter a new name and click **Save**. New brand name Upmind updates the [organisation](/setup-and-configuration/branding/what-is-an-organisation) name on screen, but not the domain name. An Upmind account is an organisation that can include multiple brands configured on the brand page. If you manage several businesses under the same legal entity, use multi-brand mode within one organisation. Or you can create separate organisations for distinct legal entities. ## **Set store currency** 1. Go to **Settings** > **Business Settings** under **E-commerce Settings**. Settings > E-commerce Settings > Business Settings 2. Set your **Store Currency**, which will be the primary currency. Store currency Upmind supports [multiple currencies](/using-upmind/invoicing-and-taxes/about-multi-currency), but your primary (base) currency is fixed once you record your first transaction. This base currency drives all reporting and conversions and cannot be changed afterwards, so choose it carefully. ## **Create a web server** 1. If you don’t already have one, create an account with any web hosting service, such as **Plesk**. 2. You can create and provision a **Web Hosting** service on **Host Control** > **Web Hosting** from the **Admin Dashboard** or **Settings** > **Provision Configurations** under **Provisioning**. Host Control > Web Hosting Settings > Provisioning > Provision Configurations 3. Click on **Add New** and select **Web Server**. Add new > Web server 4. Type your **Web Hosting service** name and choose **Plesk**. Choose provider 5. Add all the necessary **Provision Configurations**, such as **Host Name**, **Admin User Name**, and **Admin Password**. All of the information can be found on your panel. Enter provisioning details 6. Afterwards, choose your operating system, fill in the optional configuration attributes, and then click **Create**. Enter configuration attributes ## **Set up billing and payment processing** 1. Go to **Settings** > **Payment Providers** under **E-commerce Settings**. Settings > E-commerce Settings > Payment Providers 2. Click **Add payment provider** and configure [payment gateways](/using-upmind/payment-methods/payments-in-upmind/available-payment-gateways) like Stripe, PayPal, or offline payment methods. Add payment provider Enter payment provider details ## **Add hosting products and packages** 1. Go to **Host Control** > **Web Hosting** > **Hosting Packages**. Host Control > Web Hosting > Hosting Packages 2. Click **Add New** to create hosting plans (e.g., shared hosting, VPS, dedicated servers). Add new > Hosting package 3. Create a new **Product Category** or choose an existing one. Then choose product type, product name, and a description. Enter product category details Enter product details 4. Go to **Product Details** to add an image. Add product image 5. Go to **Product Billing** to include pricing and billing cycles (monthly, quarterly, annually). Add product pricing 6. Go to **Provisioning** to choose your **Provision Blueprint** and **Provider**. Choose provision blueprint and provider 7. Select the **Configuration Mode** and choose your **Provider Configuration** (the Web Hosting that you created). Choose configuration mode 8. You can keep the **Setup Functions** as **Default**, and **Order Setup Fields** as **Inherit from Category**. Setup functions and order setup fields 9. Under **Provision Fields**, you need to configure your **Package Identifier**. You can create the **Package** with all the details (for example, disk space, monthly bandwidth limit, etc.) from your panel. Add the **Package Name** to the **Package Identifier**. Package identifier The product should now be set up and live. ## **Connect domain registrar providers** 1. Navigate to **Host Control** > **Domain Names** > **Registrars**. Host Control > Domain Names > Registrars 2. Add **Registrar Providers** you work with (e.g., Hexonet, CentralNic, ConnectReseller). Domain provider 3. Enter **Provision Configurations**, such as account credentials and API keys, to enable automated domain registration and management within Upmind. Provision configurations ## **Manage client accounts and support** 1. Add clients manually under **Clients** > **Add New**. Clients > Add New 2. Associate clients with hosting packages and contracts to trigger correct billing and provisioning. Client association 3. You can configure [email piping](/setup-and-configuration/email-configuring-and-sending/how-does-email-work-in-upmind) for support tickets by going to **Settings** > **Support Departments** under **Branding and Customisation**. You can get more information on support departments in this [guide](/using-upmind/service-desk/how-to-create-support-department). Settings > Branding and Customisation > Support Departments 4. You can also implement Upmind’s built-in ticketing system to handle customer inquiries or technical support. [Tickets](/using-upmind/service-desk/how-to-create-a-ticket) link to client records for holistic case management. Support tickets ## **Launch your online store** 1. List hosting packages and additional services for customer self-service ordering. 2. Customise pricing, offers, and promotions to attract new customers. 3. Configure checkout flow, payment options, and communication templates. 4. You can check the customer journey by [impersonating a client](/using-upmind/client-management/how-impersonating-a-client-works) and seeing the purchase process. Impersonate clients Customer journey ## **Use analytics and reporting to optimise your business** 1. Review [Insights and Reports](/using-upmind/reporting/about-insights-and-reports) to track sales, client growth, revenue by product, churn, and LTV. Insights and reports 2. Monitor billing performance and customer payment behaviour from the **Admin Dashboard**. Admin dashboard 3. Use [Google Analytics](/using-upmind/reporting/how-to-set-up-google-analytics-with-upmind) and [Tag Manager](/using-upmind/reporting/how-to-set-up-google-tag-manager-with-upmind) integrations to gain website and portal insights. 4. Adjust pricing, marketing, or support strategies based on data. # How to Link BD Reseller to Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-bd-reseller-to-upmind Integrate BD Reseller domain registrar with Upmind. BD Reseller in Upmind uses BTCL (Bangladesh Telecommunications Company Limited) as the underlying domain registry provider. To create an account, you can register directly via the following link [here](https://bdia.btcl.com.bd/). ## Details needed To link your account to Upmind, you will need: * Username. * Password. ## Linking to BD Reseller 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Click on **BD Reseller.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **BD Reseller** unless you have two separate accounts that you want to label differently (e.g., BD Reseller V1 and BD Reseller V2). Enter name 4. Enter the **Username** & **Password** of your BD Reseller account. Enter details 5. Click **Create**. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. That’s it! Your account is now linked. You can now create a TLD available for sale by following this guide on [how to create TLDs](/for-web-hosts/domain-names/how-to-add-a-tld). # How to Link CentralNic Reseller with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-centralnic-reseller-with-upmind Integrate CentralNic Reseller domain registrar with Upmind. [CentralNic Reseller](https://www.centralnicreseller.com/) is part of CentralNic, a company that focuses on domain name registry and web services. This service allows resellers to register, manage, and sell domain names and other web services. It gives resellers a platform to handle their domain portfolios and offer these services to their clients. You can create your account through the link [here](https://www.centralnicreseller.com/sign-up/). ## Details needed To link your CentralNic Reseller account to Upmind, you will need a username and password from your CentralNic Reseller account. ## Linking CentralNic Reseller to Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. **Click** on **CentralNic Reseller.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **CentralNic Reseller** unless you have two separate accounts that you want to label differently. Enter name 4. Enter your CentralNic Reseller's **username** and **password**. Enter details 5. Click the **Create** button. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. # How to Link ConnectReseller with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-connectreseller-with-upmind Integrate ConnectReseller domain registrar with Upmind. [ConnectReseller](https://www.connectreseller.com/) is a global domain registrar owned by the parent company OwnRegistrar. You can sign up for a reseller account on their [website](https://india.connectreseller.com/signup). ## Details needed To link your account to Upmind, you will need: * API key 1. To fetch this log into ConnectReseller, go to **Profile Settings.** Profile settings 2. You can then click **View API key**. View API key You will need to add our [Upmind IP Addresses](/legal-and-information/upmind-ip-addresses) to the IP allow list. ## Linking to ConnectReseller 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Click on **ConnectReseller**. Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **ConnectReseller** unless you have two separate accounts that you want to label differently (e.g., ConnectReseller V1 and ConnectReseller V2). Enter name 4. Enter your **API key**. Enter details 5. Click **Create**. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. That is it! Your account is now linked. ## Domain updates ConnectReseller implementation does not support polling. This means we do not get automatic updates on domain transfers, expiries, etc. We therefore run a GetInfo command every 7 days for each domain and update our information on the response. # How to Link Domain Name API to Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-domain-name-api-to-upmind Integrate Domain Name API domain registrar with Upmind. Domain Name API is an ICANN-accredited registrar offering APIs with over 800 domain extensions, including gTLDs and ccTLDs. You can register as a reseller on [Domain Name API website](https://www.domainnameapi.com/become-a-reseller). ## Getting your credentials To link your Domain Name API account to Upmind, you will need your credentials from your Domain Name API control panel. Navigate to **My Account** > **Reseller Settings** from the left-hand menu, then refer to the following tabs: * **Reseller Configuration Tab** — Retrieve your default DNS information from your configuration. * **Integration Information Tab** — Retrieve your **Reseller ID** (in UUID format) and **Live Environment API Key**. My Account > Reseller Settings Default DNS information Reseller ID and Live Environment API Key The updated REST API implementation requires your **Reseller ID in UUID format**. Make sure you are using the updated Reseller ID from the Integration Information tab so the REST API works automatically without needing to switch configuration. ## Linking Domain Name API to Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. **Click** on **Domain Name API.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **Domain Name API** unless you have two separate accounts that you want to label differently. Enter name 4. Enter your Domain Name API **username** and **password**. Enter details 5. Click the **Create** button. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. # How to Link Enom with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-enom-with-upmind Integrate Enom domain registrar with Upmind. [Enom](https://enom.com) is a global domain name registrar. You can sign up for an Enom account on their website at [enom.com](https://enom.com). ## Details needed To link your account to Upmind, you will need: * An Enom account. * Enom username and API token. To generate an API token with Enom: 1. Log in to your Enom account. 2. Select **API Token Manager**. 3. Fill in the required fields and click **Generate Token**. ## Linking to Enom 1. In the Upmind admin area, navigate to **Host Control** > **Domain names > Registrars.** 2. Choose **Enom.** Host Control > Domain names > Registrars 3. Give the provider a **Name**. This will not be visible to your clients. We recommend just entering the name **Enom** unless you have two separate Enom accounts that you want to distinguish between. Enter name 4. Enter your Enom **username** and **API token**. 5. Hit **Create**. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. Enter details ## API IP access You may also need to allow our IP addresses to the allow list in Enom. This is under **Resellers** > **Manage** > **API**. You can find our IP addresses [here](/legal-and-information/upmind-ip-addresses). That is it! Your Enom account is now linked. # How to Link EURid with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-eurid-with-upmind Integrate EURid domain registrar with Upmind. [EURid](https://eurid.eu/en/) is the European Registry for Domain Names, responsible for managing and operating the .eu top-level domain (TLD). It ensures compliance with .eu policies and provides support for domain management. ## Details needed To link your EURid account to Upmind, you'll need your EURid username, password, billing contact ID, and tech contact ID. To obtain billing and tech contact IDs, follow these steps: 1. Login to your EURid account. 2. Click on **Domain Name Management** and select **Domain Names**. 3. Go to **Contacts** and search **Billing** and **Technical** contact. Search Billing Contact ID Billing Contact ID Search Technical Contact ID Technical Contact ID ## Linking EURid to Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. **Click** on **EURid.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **EURid** unless you have two separate accounts that you want to label differently. Enter name 4. Enter your EURid's **username**, **password**, **billing contact ID,** and **tech contact ID** from your EURid account. Enter details 5. Click the Create button. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. # How to Link EuroDNS with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-eurodns-with-upmind Integrate EuroDNS domain registrar with Upmind. EuroDNS is a leading domain name registrar and DNS service provider. They offer free DNS, SSL certificates, and mailboxes with all domain names, along with reliable support and comprehensive management tools. You can sign up with EuroDNS on [their website.](https://www.eurodns.com/) ## Details needed To link your EuroDNS account to Upmind, you will need a username and password for your EuroDNS account. ## Linking EuroDNS to Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. **Click** on **EuroDNS.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name EuroDNS unless you have two separate accounts that you want to label differently. Enter name 4. Enter your EuroDNS **username** and **password**. Enter details 5. Click the **Create** button. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. # How to Link GoDaddy with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-godaddy-with-upmind Integrate GoDaddy domain registrar with Upmind. GoDaddy is a popular domain registrar and web hosting service, managing over 84 million domain names. You can integrate GoDaddy with Upmind to manage and sell domain names. Check their website [here](https://www.godaddy.com/en-uk/offers/godaddy?isc=sem3year\&countryview=1\¤cyType=GBP\&cdtl=c_17606417701.g_136901062303.k_kwd-88659201.a_684576982477.d_c.ctv_g\&bnb=b\&gad_source=1). ## Details needed To link your GoDaddy account to Upmind, you will need the following details: * GoDaddy account. * API Key and API Secret. ​​To generate an API Key and API Secret with GoDaddy, follow these steps: 1. Visit developer.godaddy.com. 2. Log into your GoDaddy account. 3. Navigate to the **API Keys** section. API Keys 4. Click on **Create New API Key**. Create New API Key 5. Enter a name for your key and select **Production** under the Environment setting. Click Production 6. Click **Next** to generate the API Key. 7. Make sure to copy and save both the Key and Secret to a secure location, such as a Notepad. Copy API Key and Secret ## Linking GoDaddy to Upmind If you opt to use GoDaddy with Upmind, follow these straightforward steps: 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. **Click** on **GoDaddy.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name GoDaddy unless you have two separate accounts that you want to label differently. Enter name 4. Enter your **API Key** & **API Secret**. Enter details 5. Click the **Create** button. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. By following these steps, you will be able to set up GoDaddy integration with Upmind seamlessly. # How to Link Hexonet with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-hexonet-with-upmind Integrate Hexonet domain registrar with Upmind. [Hexonet](https://www.hexonet.net/) is a domain registrar that wholesales domain names. You can easily link Hexonet with Upmind in order to sell domain names. You will need a Hexonet account. ## Linking to Hexonet 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Click on **Hexonet**. Host Control > Domain names > Registrars 3. Enter a **Name**. We recommend **Hexonet**. Enter name 4. You will be prompted to enter a **username** and **password**. Enter details 5. Click **Save**. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. If you want to use your main Hexonet user, you need to disable 2FA. ## Creating sub users in Hexonet If you want to keep 2FA on your Hexonet account, you will need to create a sub user. 1. Log into your Hexonet account, go to **Settings** > **Shared Access**, then click **+ New Role User**. 2. Fill in the **Role ID** and password, and ensure **Default Access** is set to `ALLOW` and **Status** is set to `ACTIVE`, then click **Next**. New sub user 3. Leave the ACL blank and click **Next** again. Role access control 4. Fill in Upmind's outgoing IP addresses to restrict this user to only being accessed by the Upmind system. These are the [Upmind IP Addresses](/legal-and-information/upmind-ip-addresses). IP Address 5. In Upmind, when configuring Hexonet, the username will be the **Role ID** of your main account, joined by an exclamation mark (!) with the **Role ID** of the sub user you just created, so in the below case, the username would be `uphlewis!upmind`. Hexonet configuration # How to Link InternetBS with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-internetbs-with-upmind Integrate InternetBS domain registrar with Upmind. Internet.bs is a domain registrar known for its user-friendly platform and competitive pricing. They offer a wide range of domain extensions, along with additional services like web hosting, email hosting, and SSL certificates. Sign up on their website [here](https://internetbs.net/en/index.html). ## Details needed To link your InternetBS account to Upmind, you will need an API Key and password from your InternetBS account. To generate the API Key, log in to your InternetBS account, click on **My Account**, and select **Get my API Key**. Get my API Key ## Linking InternetBS to Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. **Click** on **InternetBS.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name InternetBS unless you have two separate accounts that you want to label differently. Enter name 4. Enter your **API Key** and InternetBS’s **password**. Enter details 5. Click the **Create** button. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. # How to Link InterNetX with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-internetx-with-upmind Integrate InterNetX domain registrar with Upmind. InterNetX is one of the largest registrars in the global domain market, offering advanced domain management services to over 30,000 partners. You can sign up with InterNetX on [their website](https://www.internetx.com/en/). ## Details needed To link your InterNetX account to Upmind, you will need a username and password for your InterNetX account. ## Linking InterNetX to Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. **Click** on **InterNetX.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name InterNetX unless you have two separate accounts that you want to label differently. Enter name 4. Enter your InterNetX **username** and **password**. Enter details 5. Click the **Create** button. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. # How to Link LogicBoxes with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-logicboxes-with-upmind Integrate LogicBoxes domain registrar with Upmind. Based in India, [LogicBoxes](https://www.logicboxes.com/) is a global domain registrar with 800+ top level domains (TLDs). You can sign up for a reseller account on their [website](https://www.logicboxes.com/elite-reseller-program/). ## Details needed To link your account to Upmind, you will need: * Reseller ID. * API key. ## Linking to LogicBoxes 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Click on **LogicBoxes**. Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **LogicBoxes** unless you have two separate accounts that you want to label differently (e.g., LogicBoxes V1 and LogicBoxes V2). Enter name 4. Enter your **Reseller ID** and your **API key**. Enter details 5. Click **Create**. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. That is it! Your account is now linked. # How to Link Moniker to Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-moniker-to-upmind Integrate Moniker domain registrar with Upmind. Moniker is a Europe-based domain registrar that supports global domain registrations. You can create an account directly on their [website](https://www.moniker.com). ## Details needed To link your account to Upmind, you will need: * Moniker username (this is your **API Key**). * Moniker password. - The Moniker API cannot be accessed using your regular account username and password. - You must generate an API key in your Moniker account. By default, when a new API key is issued, the password is set to your account password. - 2FA is not required for API access. If you experience any issues generating your API key, please contact Moniker Support directly. ## Linking to Moniker 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Click on **Moniker.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **Moniker** unless you have two separate accounts that you want to label differently (e.g., Moniker V1 and Moniker V2). Enter name 4. Enter your Moniker account **username** and **password**. Enter details 5. Click **Create**. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. That is it! Your account is now linked. ## Whitelisting Upmind IP Addresses You should also whitelist [Upmind's outgoing IP addresses](/legal-and-information/upmind-ip-addresses) for API access to your Moniker account. # How to Link Namecheap with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-namecheap-with-upmind Integrate Namecheap domain registrar with Upmind. Namecheap is an ICANN-accredited domain name registrar based in Phoenix, Arizona. You can register a reseller account on the [Namecheap website](https://www.namecheap.com). ## Details needed To link your Namecheap account to Upmind, you will need a username and **API Key** from your Namecheap account. To generate an API Key, follow these steps: 1. Log in to your Namecheap account. 2. Go to the **Profile** section. 3. Select **Tools**. 4. Choose **Namecheap API Access** under the Business & Dev Tools section. API Key ## Linking Namecheap to Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. **Click** on **Namecheap.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **Namecheap** unless you have two separate accounts that you want to label differently. Enter name 4. Enter your Namecheap **username** and **API Key**. Enter details 5. Click the **Create** button. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. # How to Link NameSilo with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-namesilo-with-upmind Integrate NameSilo domain registrar with Upmind. [NameSilo](https://www.namesilo.com/) is a global domain registrar based in the United States. You can sign up for a reseller account on their [website](https://www.namesilo.com/reseller). ## Details needed To link your account to Upmind, you will need a NameSilo API key. Make sure the API key is not set as **Read-Only**. The **Read-Only** **checkbox must be** `unchecked`, or the connection won’t work. ## Linking to NameSilo 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. **Click on NameSilo.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **NameSilo** unless you have two separate accounts that you want to label differently (e.g., NameSilo V1 and NameSilo V2). Enter name 4. Enter your **NameSilo API key**. Enter details 5. Click **Create**. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. That is it! Your account is now linked. # How to Link NetEarthOne with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-netearthone-with-upmind Integrate NetEarthOne domain registrar with Upmind. NetEarthOne is a domain registrar based on the LogicBoxes platform. You can link NetEarthOne with Upmind in order to sell and manage domain names. ## Details needed You will need to obtain the following information in your NetEarthOne account. 1. Your **Reseller ID**. You can get this on the top right under your profile. Get Reseller ID 2. Your **API key**. You can get this from **Settings** > **API.** 3. You will also need to whitelist the following IP addresses * 91.240.229.1 * 91.240.229.2 * 91.240.229.3 Get API key ## Connecting to Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Select **NetEarthOne** from the list of providers. Host Control > Domain names > Registrars 3. Enter a **Name**. We recommend NetEarthOne. Enter name 4. You will need to enter your **Reseller ID** and **API Key**. Enter details 5. Hit **Create**. Then you should be fully connected. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. That is it! Your account is now linked. # How to Link Netim with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-netim-with-upmind Integrate Netim domain registrar with Upmind. Netim is a domain registrar offering a wide range of domain services. You can sign up for a Netim account on their [website](https://netim.com). ## Details needed To link your Netim account to Upmind, you will need: 1. Customer Reference under your Netim profile. Profile → Customer Reference 2. The DAS password serves as the API password to integrate with Upmind. Here's how to generate it in Netim: * Log in to your Netim direct account. * In the left-hand menu, click on **Reseller center**, and select **API – DAS.** Reseller center → API - DAS If you're new to Netim, you may want to contact their support to become a reseller, and they can assist you in generating the API Key. [Learn more.](https://support.netim.com/en/docs/resellers/apis/rest-api/get-started) If you already have an account, you can generate the API Key directly through your Netim direct account. ## Linking Netim to Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Click on **Netim.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **Netim** unless you have two separate accounts that you want to label differently. Enter name 4. Enter your Netim **Customer Reference** and **API Password**. Enter details 5. Hit **Create**. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. # How to Link Netistrar to Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-netistrar-to-upmind Integrate Netistrar domain registrar with Upmind. Netistrar is a UK-based domain registrar that supports a wide range of global domain extensions. You can create an account directly on their [website](https://netistrar.com/register/). ## Details needed To link your account to Upmind, you will need: * API Key * API Secret To get the API Key and API Secret in Netistrar: 1. Log in to your Netistrar reseller account. 2. Go to **My Account** > **API Settings**. There, you will find your **API Key** and **API Secret**. 3. Make sure the **API Key** and **API Secret** you use are for production, not for testing or sandbox environments. ## Linking to Netistrar 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Click on **Netistrar.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **Netistrar** unless you have two separate accounts that you want to label differently (e.g., Netistrar V1 and Netistrar V2). Enter name 4. Enter your Netistrar **API Key** and **API Secret**. Enter details 5. Click **Create**. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. That’s it! Your account is now linked. You can now create a TLD available for sale by following this guide on [how to create TLDs](/for-web-hosts/domain-names/how-to-add-a-tld). ## Whitelisting Upmind IP Addresses You should also whitelist [Upmind's outgoing IP addresses](/legal-and-information/upmind-ip-addresses) for API access to your Netistrar account. # How to Link Nominet with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-nominet-with-upmind Integrate Nominet domain registrar with Upmind. [Nominet](https://www.nominet.uk/) is the official registry of the **.UK** domain name and several second-level domains such as .co.uk and .net.uk. You can sign up for a reseller account on their [website](https://www.nominet.uk/). ## Details needed To link your account to Upmind, you will need: * IPS tag. * Nominet account password. ## Linking to Nominet 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Click on **Nominet**. Host Control > Domain names > Registrars 3. Enter a **Name**. We recommend **Nominet** unless you have two separate accounts that you want to label differently (e.g., Nominet V1 and Nominet V2). Enter name 4. Enter your **IPS tag** and your Nominet account **password**. Enter details 5. Click **Create**. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. That is it! Your account is now linked. # How to Link OpenProvider with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-openprovider-with-upmind Integrate OpenProvider domain registrar with Upmind. OpenProvider is a globally recognised domain registrar headquartered in the Netherlands. They offer a wide range of domain-related services tailored for resellers, hosting providers, and digital agencies. To begin using OpenProvider with Upmind, you’ll first need to sign up for a reseller account directly through the [OpenProvider website](https://www.openprovider.com/). ## Requirements Before proceeding with the integration, ensure you have the following credentials ready: * Your **OpenProvider username.** * Your **OpenProvider password.** These will be used to authenticate and establish a secure connection between your OpenProvider account and the Upmind platform. ## Steps to connect OpenProvider to Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Click on **OpenProvider**. Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name OpenProvider unless you have two separate accounts that you want to label differently (e.g., OpenProvider V1 and OpenProvider Production). Enter name 4. Enter OpenProvider **Username** and **Password** to enable API access. Enter details 5. Click **Create**. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. # How to Link OpenSRS with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-opensrs-with-upmind Integrate OpenSRS domain registrar with Upmind. [OpenSRS](https://opensrs.com/) is a global domain name registrar that is owned by Tucows. You can sign up for a reseller account on their [website](https://opensrs.com/join). ## Details needed To link your account to Upmind, you will need: * An OpenSRS account (username and password). * OpenSRS API key. ## Linking to OpenSRS 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Click on **OpenSRS**. Host Control > Domain names > Registrars 3. Enter a **Name**. We recommend **OpenSRS** unless you have two separate accounts that you want to distinguish between (e.g., OpenSRS V1 and OpenSRS V2). Enter name 4. Enter your OpenSRS account **username** and your **API key**. Enter details 5. Click **Create**. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. That is it! Your account is now linked. ## Whitelisting Upmind IP addresses You should also whitelist [Upmind's outgoing IP addresses](/legal-and-information/upmind-ip-addresses) for API access to your OpenSRS account. 1. From your OpenSRS account dashboard, scroll to the bottom section and go to the **Add IPs for Script/API Access** page. Add IPs for Script/API Access 2. Add each of Upmind's outgoing IP addresses using the default net block mask, with the rule set to allow, then wait an hour for the changes to be applied. Add IP address **Get Verification Status** and **Resend Verification Email** provision actions are supported for OpenSRS for ICANN and AU eligibility notices. Users can now verify their identity with the registry without the manual help of domain registrars from their interface, making it more secure. # How to Link OpusDNS to Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-opusdns-to-upmind Integrate OpusDNS domain registrar with Upmind. [OpusDNS](https://www.opusdns.com/) is a DNS management platform that allows you to manage DNS zones, records, and configurations for domains. ## Acquiring credentials 1. Log in at [app.opusdns.com](http://app.opusdns.com). 2. Go to **Developer** > **API Credentials** and click **New API Credential**. Developer > API Credentials 3. Click **Create** and copy the **API Key**. Copy API key ## **Linking to OpusDNS** 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Click on **OpusDNS**. Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **OpusDNS** unless you have two separate accounts that you want to label differently. Enter name 4. Enter the **API Key**. Enter details 5. Click **Create**. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. That’s it! Your account is now linked. You can now create a TLD available for sale by following this guide on [how to create TLDs](/for-web-hosts/domain-names/how-to-add-a-tld). # How to Link Realtime Register with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-realtime-register-with-upmind Integrate Realtime Register domain registrar with Upmind. [Realtime Register](https://realtimeregister.com/) is an ICANN-accredited registrar offering an advanced, fast, and always compliant domain management platform. With over 2000 top-level domains (TLDs), Realtime Register supports domain registrations for a wide range of countries. To sign up for a Realtime Register account, visit their website at [realtimeregister.com](https://realtimeregister.com/signup/). ## Details needed To link your Realtime Register account to Upmind, you will need the following details: 1. Realtime Register account. 2. Customer and API Key. To generate an API Key with Realtime Register, follow these steps: 1. Log in to your Realtime Register account. 2. Go to **Users** under **Account** on the left side of the screen. 3. Select the user for whom you wish to create one or multiple API keys. Once selected, click on **API keys**. 4. Click on **Create API Key**. Note: You can only obtain the API key at the time of creation. If an API key is lost, a new one will need to be created. Create API Key 5. To create a new API key, enter a description, then click on **Create API Key**. 6. Enter your login password. API Key Generated 7. The API key will appear on your screen. Be sure to save the API key, as you will not be able to see it again once the pop-up containing the API key is closed. API Key Generated ## Linking Realtime Register to Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. **Click on Realtime Register.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name Realtime Register unless you have two separate accounts that you want to label differently. Enter name 4. Enter your Realtime Register **Customer** and **API Key**. Enter details 5. Click the **Create** button. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. # How to Link Resell.biz with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-resellbiz-with-upmind Integrate Resell.biz domain registrar with Upmind. [Resell.biz](https://www.resell.biz/) is a global domain registrar owned by the parent company UK2 Group. You can sign up for a reseller account on their [website](https://www.resell.biz/domain-reseller/). ## Details needed To link your account to Upmind, you will need: * Reseller ID. * API key. ## Linking to Resell.biz 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Click on **Resell.biz**. Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **Resell.biz** unless you have two separate accounts that you want to label differently (e.g., Resell.biz V1 and Resell.biz V2). Enter name 4. Enter your **Reseller ID** and your **API key**. Enter details 5. Click **Create**. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. That is it! Your account is now linked. # How to Link ResellerClub Domains with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-resellerclub-domains-with-upmind Integrate ResellerClub Domains domain registrar with Upmind. ResellerClub is a large domain registrar based on the LogicBoxes platform. You can link ResellerClub with Upmind in order to sell and manage domain names. You can sign up for a domain reseller account with ResellerClub at [https://www.resellerclub.com/domain-reseller/signup-now](https://www.resellerclub.com/domain-reseller/signup-now). ## Details needed You will need to obtain the following information in your ResellerClub account. 1. Your **Reseller ID**. You can get this on the top right under your profile. Reseller ID 2. Your **API key**. You can get this from **Settings** > **API.** 3. You will also need to whitelist the following IP addresses * 91.240.229.1 * 91.240.229.2 * 91.240.229.3 ## Connecting to Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Then select ResellerClub from the list of providers. Host Control > Domain names > Registrars 3. Enter a **Name**. We recommend ResellerClub. Enter Name 4. You will need to enter your **Reseller ID** and **API Key**. 5. Hit **Create**. Then you should be fully connected. Enter details 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. That is it! Your account is now linked. # How to Link Synergy Wholesale with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-synergy-wholesale-with-upmind Integrate Synergy Wholesale domain registrar with Upmind. [Synergy Wholesale](https://synergywholesale.com/) provides domain registration and management services as an Australian ICANN-accredited registrar, supporting .com, .net, .au domains, and many gTLDs with API integration for resellers. ## Connect Synergy Wholesale with Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. Click on **Synergy Wholesale.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **Synergy Wholesale** unless you have two separate accounts that you want to label differently. Enter name 4. Contact **Synergy Wholesale** support or log into your reseller account to get your **Reseller ID** and **API Key**. These credentials authorise Upmind to manage domains on your behalf. 5. Input your **Reseller ID** and **API Key** into the respective fields. Enter details 6. Click **Create** to save and activate the integration. 7. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. # How to Link TPP Wholesale with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-tpp-wholesale-with-upmind Integrate TPP Wholesale domain registrar with Upmind. TPP Wholesale is an Australian-based domain name registrar and web hosting services provider. You can sign up for a TPP Wholesale account [here](https://www.tppwholesale.com.au/join-us/). ## Details needed To link your TPP Wholesale account to Upmind, you’ll need the following credentials: 1. Account No. 2. API Login. 3. API Password. Optional: * **Account ID**: The account reference for a Console account or the account ID for an externally created account. * **Account Option**: Determines which Console account the domain will be created under. * **API Hostname**: Found in the Reseller Portal under API Preferences. If left blank, we default to `theconsole.tppwholesale.com.au`. For guidance on where to find the required credentials (Account No, API Login, API Password, API Hostname-optional), refer to **Page 8 – Section 1.0: Authentication.** For other credentials (Account ID, Account Option), refer to **Page 12 – Section 2.4 Domain Order Transfer Request.** Both of these can be found on the [TPP Wholesale Domain & Resource Hosting API Specifications PDF.](https://www.tppwholesale.com.au/wp-content/uploads/2023/10/2.7.4_TPPW_HTTP_API_Domain_Specs.pdf) ## Linking TPP Wholesale to Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. **Click** on **TPP Wholesale.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **TPP Wholesale** unless you have two separate accounts that you want to label differently. Enter name 4. Fill in the required credentials. Enter details 5. Click Create. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. # How to Link UG Registry with Upmind Source: https://docs.upmind.com/for-web-hosts/registrar-guides/how-to-link-ug-registry-with-upmind Integrate UG Registry domain registrar with Upmind. The [UG Registry](https://www.registry.co.ug/) is responsible for managing and administering the .ug country code top-level domain (ccTLD) for Uganda. They handle the registration process and ensure that all .ug domains are properly maintained and accessible. You can create your account through the link [here](https://registry.co.ug/auth/sign_up). ## Details needed To link your UG Registry account to Upmind, you will need an API Key. Follow these steps: 1. Log in to your UG Registry account. 2. Navigate to **System Audits** > **API Key (V2).** System Audits > API Key (V2) 3. Click on **New API Key**. 4. Choose a name to identify your API Key. New API Key 5. Make sure to copy and save the **API Key** to a secure location, such as a Notepad. Here's an example if the API key has already been created. ## Linking UG Registry to Upmind 1. In Upmind, navigate to **Host Control** > **Domain names** > **Registrars**. 2. **Click** on **UG Registry.** Host Control > Domain names > Registrars 3. Enter a **Name**. This identifier is not visible to clients. We recommend entering the name **UG Registry** unless you have two separate accounts that you want to label differently. Enter name 4. Enter your **API Key**. Enter details 5. Click the Create button. 6. Verify the information on the [Domain Settings](/for-web-hosts/domain-names/how-to-input-domain-settings) page. # How Can I Offer Multiple WHM/cPanel Reseller Accounts in One Upmind Instance Source: https://docs.upmind.com/for-web-hosts/sell-web-hosting/how-can-i-offer-multiple-whmcpanel-reseller-accounts-in-one Use provision configurations to do this. You can add as many cPanel/WHM reseller accounts as you like to Upmind. The same is true of different hosting panels such as DirectAdmin or Enhance. These cPanel/WHM accounts can be from one provider or from multiple hosting providers. In Upmind, we call these **Provision configurations**. You can set each provision configuration up under **Settings** > **Provision Configurations**. Settings > Provision Configurations Multiple WHM/cPanel reseller accounts You click the **Add new configuration** button to add a new cPanel server. This opens up a modal where you can add the cPanel connection details. Add new configuration Add cPanel connection details If you have `root` access to the server, then you can enter the root credentials (Set up an API key in WHM). If you just have reseller WHM level access, enter those credentials instead. ## Enabling/disabling servers You can enable or disable servers by ticking the **Is enabled** box. This will not stop existing sites from using these servers, but will prevent the servers from being shown in selectable lists. Is enabled You can untick or tick **Accepting New Accounts** to allow automatic deployment to this server. Accepting New Accounts # How to Create Hosting Welcome Emails Source: https://docs.upmind.com/for-web-hosts/sell-web-hosting/how-to-create-hosting-welcome-emails Found in product notifications once you create a product. Hosting welcome emails are a form of [product notification](/using-upmind/product-management/create-product-notifications) that gets sent when an order is activated. Once you have created your product, on the product screen, click **Product notifications.** Add product notifications You can then choose to add a new notification. Select the trigger **Contract product activated** and click on **Create new template**. Select trigger Create new template Below we paste an example generic email you can use for a web hosting (cPanel) welcome email. ``` Dear {{ client.first_name }},

Thank you for ordering your new {{ brand.name }} hosting package. Your account is all set up and ready to go!

This email contains all the information you will need in order to get started.

Hosting account name: {{ contracts_product.product_name }}
Domain: {{ contracts_product.service_identifier }}
Server Hostname: {{ contracts_product.provision_field_values.data_server_hostname }}

Getting Started

Your hosting package is now live. You can log in through your client area under Products & Services > {{ contracts_product.product_name }} ({{ contracts_product.service_identifier }}) > Login to Control Panel.

You can also log into your control panel directly at:

{% if contracts_product.provision_field_values.data_reseller %} WHM Reseller login page: https://{{ contracts_product.provision_field_values.data_server_hostname }}/whm
{% else %} Hosting login page: https://{{ contracts_product.provision_field_values.data_server_hostname }}/cpanel
{% endif %} cPanel username: {{ contracts_product.provision_field_values.username }}
cPanel password: Set your cPanel password via the {{ brand.name }} client area

Your domain name

If you have requested a domain name during sign up, please keep in mind that your domain name may not be visible on the internet instantly. This process is called DNS propagation and can take up to 24 hours though usually just a few minutes. Until your domain has propagated, your website and email will not function. Once is has propagated, your domain name can also be used interchangably with {{ contracts_product.provision_field_values.data_server_hostname }}.

Pointing External Domains

If your domain name is registered elsewhere, you need to update your domain nameservers to point it to your new hosting with us. Our nameservers are:

{{ contracts_product.provision_field_values.data_ns1 }}
{{ contracts_product.provision_field_values.data_ns2 }}
{% if contracts_product.provision_field_values.data_ns3 %}{{ contracts_product.provision_field_values.data_ns3 }}
{% endif %} {% if contracts_product.provision_field_values.data_ns4 %}{{ contracts_product.provision_field_values.data_ns4 }}
{% endif %}
Alternatively, you can update your A record to point to our server IP which you can find in your hosting panel under 'Shared service IP'.

Once your domain has propagated, you may also use https://www.{{ contracts_product.service_identifier }}/cpanel/

The username and password above can be used with the hostname {{ contracts_product.provision_field_values.data_server_hostname }} or your domain ({{ contracts_product.service_identifier }}) for FTP or SSH. Your website files are stored within the public_html directory.

Email Settings

Once you've logged into your hosting control panel you can create e-mail accounts under the 'Email Accounts' icon. You can then add them to your email program by using the following details:

Incoming Server Hostname: mail.{{ contracts_product.service_identifier }} (or {{ contracts_product.provision_field_values.data_server_hostname }})
Incoming Server Port: 993
Incoming Server Type: IMAP

Outgoing Server Hostname: mail.{{ contracts_product.service_identifier }} (or {{ contracts_product.provision_field_values.data_server_hostname }})
Outgoing Server Port: 465

Username: The full email address you have created (e.g. you@{{ service_identifier }}).
Password: The mailbox password you entered when creating the mailbox

When configuring your mail client please ensure you enable SMTP Authentication with the same username and password as above. 'SPA' should be disabled.

Client Portal

Everything else you may need is accessible via our client area at {{ brand.customer_portal_domain }} - this is also where you can manage your invoices, billing and support queries.

Thank you for choosing {{brand.name}} and if you need any help or assistance with anything, please don't hesitate to get in touch.

Kind Regards

{{brand.name}} ``` # How to sell 20i & StackCP hosting Source: https://docs.upmind.com/for-web-hosts/sell-web-hosting/how-to-sell-20i-and-stackcp-hosting Configure and sell 20i and StackCP hosting products with Upmind. [20i](https://20i.co.uk) is a UK web hosting provider that has built its own web hosting panel. This hosting panel is known as StackCP. ## Getting your 20i credentials 1. Log in to your 20i/StackCP Account. Login to account 2. Navigate to [https://my.20i.com/reseller/api](https://my.20i.com/reseller/api) and generate an **API key**. You should copy the **general API key**. Take a copy of this key. You can find the API option on the left-hand side menu under Reseller preferences Screenshot 2022-04-19 at 16.00.58.png 3. You will need to generate at least one hosting package type. In this example, we have created a package **Gold**. Generate hosting package Add hosting package Once you have created this package, edit it, and you need to copy the plan ID from the URL. Copy plan ID We think there may be an easier way to get this Plan ID, so please suggest an edit to this article if you find one. ## Adding the provision configuration (server) to Upmind 1. To add 20i to Upmind, log into your admin panel and then go to **Settings** > **Provision Configurations**. Settings > Provision Configurations 2. Click **Add new configuration**. Add new configuration 3. You will need to enter a **name** and choose 20i Hosting. Then, enter your **General API Key** when prompted. Enter details Once done, you will then see 20i Hosting as a server in your provision configurations list. ## Creating a hosting package on 20i using Upmind Now that 20i is linked, you need to create a hosting package on 20i. Add a hosting package and set the pricing you desire. Create hosting product Once done, go to the **Provisioning** tab. Choose 20i Hosting as the provider and set the **configuration mode** and **provider configuration**. Choose provision provider Scroll down to where it asks for **Package Identifier**. Set this to the Package ID you found in 20i (not the package name). Set package identifier That's it! Your clients can order 20i / StackCP hosting through Upmind. # How to Sell CentosWeb Panel Source: https://docs.upmind.com/for-web-hosts/sell-web-hosting/how-to-sell-centosweb-panel Sell CentosWeb Panel hosting products with Upmind. [CentOS Web Panel](https://centos-webpanel.com/) (CWP) is a free, open-source hosting control panel for managing web servers on CentOS. ## Getting your CentosWeb credentials To connect CentOS Web Panel to Upmind, you'll need the **Hostname**, **API key**, and **Shared IP address**. Here's how to obtain the credentials in CWP: 1. **Hostname** - Copy the highlighted part from the URL. Hostname 2. **API Key** In CWP, go to **CWP Settings** > **API Manager**. Click **Allow new Api access**. For **IP Origin,** enter [Upmind's outgoing IPs](/legal-and-information/upmind-ip-addresses), separated by commas, i.e. 91.240.229.1, 91.240.229.2, 91.240.229.3. Next to the **Key code,** click **Generate.** For **Format request**, select **JSON.** Under **API Functions**, tick all available checkboxes under: * Account * Account Details * Account Pack Change * Account Quota * Autologin * Change of password * Domains and Subdomains * Metadata Account * Packages * Quota limit Copy and paste the **Key code** shown in CWP into your Upmind provision configuration. Copy key code 3. Shared IP Address In CWP, go to **CWP Settings** > **IP Manager.** Copy and paste one of your server's IP addresses to use for newly created hosting accounts. Copy and paste IP address ## Linking CentosWeb to Upmind In Upmind, you should add CentosWeb as a provision configuration. You can either do this * On the sidebar, click **Host Control** > **Web Servers**> **Add New.** You can also select it from below. Host Control > Web Servers> Add New * On the sidebar, go to **Settings** > **Provision Configurations** > **Add New Configuration.** Settings > Provision Configurations > Add New Configuration You should fill it out as follows: 1. Enter a server name. You may just want to use the CentosWeb control server name or give it a more familiar name. 2. Under the Provision Category of **Web Hosting**, choose CentosWeb as the hosting panel type. Enter name 3. Enter your **Hostname**, **API Key,** and **Shared IP Address**. 4. Click **Create**. Enter details That's it! CentosWeb is added as a web server. ## Create Package When you [create hosting packages](/for-web-hosts/quick-start-guide-for-hosting-companies-or-resellers) in Upmind, you can now choose CentosWeb as a provision provider. You will be asked for the Package Identifier. It's recommended to use the CentosWeb package name (case sensitive). ### Configure Upmind products In your Upmind admin area, under **Host control** > **Web hosting,** click on the **Hosting packages** tab and click the **Add new** button to start configuring a new hosting package. Host control > Web hosting > Add new Create package Now go to the product's Provisioning page and set the **Provision provider** to CentosWeb, and set the **Package Identifier** provision field to match your CentosWeb package **name** or **ID**. Set provision provider In CWP, go to Packages > Packages. Select the name of the package you wish to use for your product. When creating a hosting product in Upmind, go to the Provisioning tab. In the Provision Fields section, click on **Package Identifier**, enter the CWP package name, and then click **Save**. Set package identifier Package identifier must match the package name At this point, your CentosWeb product provisioning is all set up and ready to go. For more information on setting up and selling hosting products in Upmind, refer to our first step and [Web Hosting Quick Start](/for-web-hosts/quick-start-guide-for-hosting-companies-or-resellers) guides. # How to sell Direct Admin hosting Source: https://docs.upmind.com/for-web-hosts/sell-web-hosting/how-to-sell-direct-admin-hosting Configure and sell DirectAdmin hosting products with Upmind. DirectAdmin is a web hosting control panel for Linux-based servers. It is an alternative to [cPanel](https://upmind.featurebase.app/help/articles/7103793-how-to-sell-whmcpanel-hosting) or [Enhance](https://upmind.featurebase.app/help/articles/6982515-how-to-sell-enhance-hosting). ## Linking Direct Admin to Upmind You should add each DirectAdmin server as a separate provision configuration to Upmind * On the sidebar, click **Host Control** > **Web Servers**> **Add New.** You can also select it from below. Host Control > Web Servers> Add New * On the sidebar, go to **Settings** > **Provision Configurations** > **Add New Configuration.** Settings > Provision Configurations > Add New Configuration You should fill it out as follows: 1. Enter a server name. You may just want to use the DirectAdmin control server name or give it a more familiar name. 2. Under the Provision Category of **Web Hosting**, choose DirectAdmin as the hosting panel type. Enter name 3. Enter your **Hostname**, **Username,** and **Password.** 4. Click **Create**. Enter details ## Creating packages in DirectAdmin You need to add a Package in DirectAdmin and add this as your package identifier in Upmind. To create a package on the DirectAdmin. You need to log in and follow this guide 1. Select **Manage User Packages** under the **Account Manager** option. Create Package on DirectAdmin 2. Then click **Add Package** in the right corner. Manage User Package -> Add Package 3. Specify the limitation, set the package name, and click **Save**. Set the Limitation and Package Name ### Configure Upmind products In your Upmind admin area, under **Host control** > **Web hosting,** click on the **Hosting packages** tab and click the **Add new** button to start configuring a new hosting package. Host control > Web hosting > Add new Create package Now go to the product's Provisioning page and set the **Provision provider** to DirectAdmin, and set the **Package Identifier** provision field to match your DirectAdmin package **name** or **ID**. Set provision provider Set package identifier Package identifier must match the package name. At this point, your DirectAdmin product provisioning is all set up and ready to go. For more information on setting up and selling hosting products in Upmind, refer to our first step and [Web Hosting Quick Start](/for-web-hosts/quick-start-guide-for-hosting-companies-or-resellers) guides. # How to sell Enhance hosting Source: https://docs.upmind.com/for-web-hosts/sell-web-hosting/how-to-sell-enhance-hosting Add Enhance web server to sell hosting products through Upmind. [Enhance](https://enhance.com/) is a hosting control panel software that lets you run a shared or dedicated hosting platform. The Enhance integration on Upmind allows you to provision, manage, suspend, and terminate Enhance accounts. This lets you sell Enhance web hosting. ## What you will need * A server running Enhance. This can either be a server you run yourself, or a reseller account running the Enhance control panel. * An [Upmind account](https://upmind.com/start). ## Create a provision configuration ### Generate an Access Token in Enhance In Enhance, you need to generate an Access token. This is done in your Enhance control panel under **Settings**> **Access Token**. When creating an access token, for now, you need to grant **Super admin** permissions. We recommend not setting an expiry date. We understand Enhance will be making more suitable granular permissions in the near future. Create access token Once the token is created, make a note of the org-id and the access token itself. ### Linking Enhance to Upmind In Upmind, you should add Enhance as a provision configuration. You can either do this * On the sidebar, click **Host Control** > **Web Servers**> **Add New.** You can also select it from below. Host Control > Web Servers> Add New * On the sidebar, go to **Settings** > **Provision Configurations** > **Add New Configuration.** Settings > Provision Configurations > Add New Configuration You should fill it out as follows: 1. Enter a server name. You may just want to use the Enhance control server name or give it a more familiar name. 2. Under the Provision Category of **Web Hosting**, choose Enhance as the hosting panel type. Enter name 3. Enter your **Hostname**, **Org ID,** and **Access Token.** 4. Click **Create**. Enter details That's it! Enhance is added as a web server. ## Create packages When you create hosting packages in Upmind, you can now choose Enhance as a provision provider. You will be asked for the **Package Identifier**. It's recommended to use the Enhance package **name** (case sensitive), but if you need to change your package names in Enhance or if their names aren't unique, you should instead use the Enhance package **ID**. ### Get Enhance package identifier In your Enhance control panel, go to **Settings**> **Packages** and click to edit the package you want to configure in Upmind. * The package **name** is the one you set when you created the package in Enhance and can be copied from the **Details** section. * The package **ID** can be seen in the URL. In this example the package identifier is **1** ### Configure Upmind products In your Upmind admin area, under **Host control** > **Web hosting,** click on the **Hosting packages** tab and click the **Add new** button to start configuring a new hosting package. Host control > Web hosting > Add new Create package Now go to the product's Provisioning page and set the **Provision provider** to Enhance, and set the **Package Identifier** provision field to match your Enhance package **name** or **ID**. Set provision provider Set package identifier Package identifier must match the package name At this point, your Enhance product provisioning is all set up and ready to go. For more information on setting up and selling hosting products in Upmind, refer to our first step and [Web Hosting Quick Start](/for-web-hosts/quick-start-guide-for-hosting-companies-or-resellers) guides. ### Website locations If you have multiple servers configured in Enhance, customers can have the option to choose the server location for new websites, according to your Enhance **Server Group** configuration. For more information on setting up server groups in Enhance, refer to their guide [Add Location Based Hosting Packages](https://enhance.com/docs/packages/create-location-based-hosting-packages.html). When Upmind creates an Enhance subscription for a new order, a website gets created for the domain name the customer provided in their order details. By default, this website will be automatically allocated to a server group according to your settings in Enhance. If you want to let your customers choose their server location for new orders, there are 2 options: 1. Skip website creation for new orders. 2. Configure server groups in Upmind. **Skip website creation for new orders** With this approach, Upmind will only create the Enhance subscription when provisioning a new order, which allows customers to log in to their Enhance account and create their first website through the Enhance UI, according to its package and server group settings. In Upmind, go to **Settings** > **Provision configurations** and click to edit your Enhance configuration. Create Subscription Only **Configure server groups in Upmind** With this approach, you will configure your Upmind products to have Location options or attributes for the customer to choose from when configuring the product in their basket. The location they select will be linked to a corresponding server group in Enhance. For the purpose of this guide, we will assume you have set up your locations as product attributes. For more information on setting these up, refer to our [Product Attributes](/using-upmind/product-management/how-to-add-product-attributes) guide. If you want your different server groups to add to the price of newly ordered hosting products, refer to our [Product Options](/using-upmind/product-management/how-to-add-product-options) guide. Regardless of whether you choose options or attributes, you'll configure your product provisioning in the same way. In the example below, we assume that you have set up server groups with the names **London**, **New Mexico,** **Dallas**, and **Toronto** in your Enhance control panel. In Upmind, once you have set up a product attribute for each server group you want customers to choose from, go to **Settings** > **Product catalogue**, click to edit your hosting package, and on its **Provisioning** page scroll down to the **Provision fields** section. Choose attribute locations Now, when Upmind provisions new Enhance orders of this product, the first website will be allocated to the server group corresponding to the attribute the customer chose when configuring the product in their basket. ## Add existing subscription 1. If you need to link an existing Enhance subscription with an order in Upmind, go to the order product's Manage tab and run the **Get Info** function. Product > Manage > Get Info 2. Fill in the **Account Domain Name** and **Account Username** (the Enhance customer's email address) when prompted. Account Domain Name and Account Username If the order's status is `Awaiting Activation`, don't forget to also press **Activate** on the summary tab to commence recurring billing. ### Create new order for existing customer The first time you try to create a new subscription/website for a customer that already exists in Enhance, you will likely get an error stating the customer's email already exists. To solve this, click **Create Account** and paste in the ID of the Enhance customer. You can get their ID by taking it from the URL when viewing the customer in your Enhance panel. Product > Manage > Create Account When the Create Account function succeeds, it will store the Enhance customer ID against the Client in Upmind so that you don't need to do this for future orders from this Upmind Client. In the example below, this customer's ID is `9ac67064-fd90-447f-ad9a-b2245e24999e`. Copy the customer ID from the URL Paste the ID # How to Sell PanelAlpha Hosting Source: https://docs.upmind.com/for-web-hosts/sell-web-hosting/how-to-sell-panelalpha-hosting Configure and sell PanelAlpha hosting products with Upmind. [PanelAlpha](https://www.panelalpha.com/) is a web hosting control panel that offers management of hosting accounts, packages, and server configurations. Integrating PanelAlpha with Upmind allows you to automate provisioning, billing, and client management efficiently. ## Getting PanelAlpha credentials 1. Within the PanelAlpha admin dashboard, go to **Configuration** > **Admins**. 2. Click to enable **API Access** and copy the displayed API token. Enable API token ## Configuring PanelAlpha provisioning in Upmind 1. In Upmind, go to **Settings** > **Provision Configurations**. Settings > Provision configurations 2. Click on **Add New Configuration**. Add new configuration 3. Provide a **Name** (e.g., PanelAlpha Hosting Provision). 4. Select **Web Hosting** as the product type. 5. Choose **PanelAlpha** as the provisioning provider. Choose PanelAlpha 6. Complete the following details: * Your server’s **Hostname** and **Port**. * Paste the **API token** obtained from **PanelAlpha**. * Fill in any **Configuration Attributes**, such as hosting **location** and **hosting provider**. * Set whether to accept new accounts. 7. Click **Create**. Enter provision configurations ## Setting up PanelAlpha products 1. Log in to the **PanelAlpha** admin dashboard. 2. Navigate to **Configuration** > **Plans**. 3. Identify the hosting packages you want to sell. Note the **ID** or **Name** of each package. 4. In Upmind, when creating a product, use this **Package Identifier** in the provisioning settings to match the **PanelAlpha package**. Configuration > Plans ## Creating PanelAlpha hosting products in Upmind 1. Go to **Host Control** > **Web Hosting** in Upmind. Host control > Web hosting 2. Click **Add New**. Add new 3. Choose a category and fill in the details. Then click **Create**. Fill in product details 4. On **Provisioning**, set the **Provision Provider** to **PanelAlpha**. 5. Choose the **Configuration Mode** and **Provider Configuration**. Set provision provider 6. Enter the **Package Identifier** exactly as it appears in **PanelAlpha** (matching the plan name or ID). 7. Complete other product details like name, pricing, billing cycle, and permissions. Complete other product details Enter package identifier 8. **Save** the product. # How to sell Plesk hosting Source: https://docs.upmind.com/for-web-hosts/sell-web-hosting/how-to-sell-plesk-hosting Configure and sell Plesk hosting products with Upmind. ## What you will need ### Plesk Authentication Options Upmind connects to Plesk using the Plesk API. You can either use your Plesk **username** and **password** or you can generate a secret key by following [their documentation](https://docs.plesk.com/en-US/obsidian/api-rpc/about-rest-api.79359/#http-method). ## Create a provision configuration ### Linking Plesk to Upmind In Upmind, you should add Plesk as a provision configuration. You can either do this * On the sidebar, click **Host Control** > **Web Servers**> **Add New.** You can also select it from below. Host Control > Web Servers> Add New * On the sidebar, go to **Settings** > **Provision Configurations** > **Add New Configuration.** Settings > Provision Configurations > Add New Configuration You should fill it out as follows: 1. Enter a server name. You may just want to use the Plesk control server name or give it a more familiar name. 2. Under the Provision Category of **Web Hosting**, choose Plesk as the hosting panel type. Enter name 3. Enter your **Hostname**, **Admin Username,** **Admin Password**, and **Secret Key**. 4. Click **Create**. Enter details ### Creating packages Plesk calls packages **Service Plans**. You need to add a Service Plan in Plesk and add this as your service identifier in Upmind. The service plan name here is 'PlanOne' ### Configure Upmind products In your Upmind admin area, under **Host control** > **Web hosting,** click on the **Hosting packages** tab and click the **Add new** button to start configuring a new hosting package. Host control > Web hosting > Add new Create package Now go to the product's Provisioning page and set the **Provision provider** to Plesk, and set the **Package Identifier** provision field to match your Plesk package **name** or **ID**. Set provision provider Set package identifier Package identifier must match the package name. At this point, your Plesk product provisioning is all set up and ready to go. For more information on setting up and selling hosting products in Upmind, refer to our first step and [Web Hosting Quick Start](/for-web-hosts/quick-start-guide-for-hosting-companies-or-resellers) guides. ### Auto-Login Plesk supports auto-login. When you or your client clicks **Login to Control Panel** when requesting an SSO link that is tied to the IP you request it with. You are then automatically redirected and logged into Plesk. Login to Control Panel # How to Sell SPanel Hosting Source: https://docs.upmind.com/for-web-hosts/sell-web-hosting/how-to-sell-spanel-hosting Configure and sell SPanel hosting products with Upmind. [SPanel](https://www.spanel.io/) is a hosting control panel by ScalaHosting that helps hosting providers manage servers, websites, and user accounts on VPS and cloud environments through a centralised interface. ## Getting SPanel credentials 1. To generate an API Key, go to **Server Management** > **Manage API Tokens**. 2. Click **Create API Token**. 3. Select: * **API Token Type: Admin** * **Enable SSO: On** * **Admin Token Privileges: Unrestricted (all)** Select the following requirements 4. Create and copy the API Token. Copy the API Key ## Configuring SPanel provisioning in Upmind 1. In Upmind, go to **Settings** > **Provision Configurations**. Settings > Provision configurations 2. Click on **Add New Configuration**. Add new configuration 3. Provide a **Name** (e.g., SPanel Hosting Provision). 4. Select **Web Hosting** as the product type. 5. Choose **SPanel** as the provisioning provider. Choose SPanel 6. Complete the following details: * Your server’s **Hostname** and **Username**. * Paste the **API Token** obtained from **SPanel**. 7. Click **Create**. Enter provision configurations ## Setting up SPanel products Once you have set up your SPanel product, you will need a package identifier to configure it in Upmind. 1. Log in to the SPanel admin dashboard. 2. Navigate to **Accounts Management** > **Packages.** 3. Copy the **package name** you want to use. 4. In Upmind, when creating a product, paste this value as the Package Identifier in the provisioning settings to match the SPanel package you created. Account Management > Packages ## Creating SPanel hosting products in Upmind 1. Go to **Host Control** > **Web Hosting** in Upmind. Host control > Web hosting 2. Click **Add New**. Add new 3. Choose a category and fill in the details. Then click **Create**. Fill in product details 4. On **Provisioning**, set the **Provision Provider** to **SPanel**. 5. Choose the **Configuration Mode** and **Provider Configuration**. Set provision provider 6. Enter the **Package Identifier** exactly as it appears in **SPanel** (matching the package name). 7. Complete other product details like name, pricing, billing cycle, and permissions. Complete other product details Enter package identifier 8. **Save** the product. **Debugging 404 Errors:** If SPanel is configured with a custom branding "Login URL", change the provision configuration (Host Control > SPanel) "Branding URL" to either **/spanel** or **/hostpanel** as appropriate. # How to Sell Webuzo Hosting Source: https://docs.upmind.com/for-web-hosts/sell-web-hosting/how-to-sell-webuzo-hosting Configure and sell Webuzo hosting products with Upmind. [Webuzo](https://webuzo.com/) is a multi-user control panel that simplifies server management for cloud and dedicated servers. ## Getting Webuzo credentials 1. To generate an API Key, go to **Settings** > **API Keys**. 2. Click **Add New**. Add API key ## Configuring Webuzo provisioning in Upmind 1. In Upmind, go to **Settings** > **Provision Configurations**. Settings > Provision configurations 2. Click on **Add New Configuration**. Add new configuration 3. Provide a **Name** (e.g., Webuzo Hosting Provision). 4. Select **Web Hosting** as the product type. 5. Choose **Webuzo** as the provisioning provider. Choose Webuzo 6. Complete the following details: * Choose the **Authentication type**. * Your server’s **Hostname** and **Username**. * Paste the **API Key** obtained from **Webuzo** and the **Password**. * Fill in any **Configuration Attributes**, such as **location** and **hosting provider**. * Set whether to accept new accounts. 7. Click **Create**. Enter provision configurations ## Setting up Webuzo products When you create hosting packages in Upmind, you can now choose Webuzo as a provision provider. You will be asked for the Package Identifier. It's recommended to use the Webuzo package name (case sensitive). 1. Log in to the `Webuzo` admin dashboard. 2. Navigate to **Plans** > **List Plans**. 3. Copy the **Package Identifier** underneath the package name. 4. In Upmind, when creating a product, use this **Package Identifier** in the provisioning settings to match the `Webuzo package`. Plans > List plans ## Creating Webuzo hosting products in Upmind 1. Go to **Host Control** > **Web Hosting** in Upmind. Host control > Web hosting 2. Click **Add New**. Add new 3. Choose a category and fill in the details. Then click **Create**. Fill in product details 4. On **Provisioning**, set the **Provision Provider** to **Webuzo**. 5. Choose the **Configuration Mode** and **Provider Configuration**. Set provision provider 6. Enter the **Package Identifier** exactly as it appears in **Webuzo** (matching the plan name or ID). 7. Complete other product details like name, pricing, billing cycle, and permissions. Complete other product details Enter package identifier 8. **Save** the product. # How to sell WHM/cPanel hosting Source: https://docs.upmind.com/for-web-hosts/sell-web-hosting/how-to-sell-whmcpanel-hosting Configure and sell cPanel hosting products with Upmind. The Web Hosting management interface is currently being simplified. Quick actions will be available for the most common features, including bulk management of domains and web servers. However, the steps below will continue to work, and the future interface is completely compatible with anything you do here. ## cPanel Overview [cPanel](https://cpanel.net) is the most popular hosting control panel on the market. It is software that sits on top of a web server and provides a user interface for managing websites and email. cPanel servers can be used for shared and reseller hosting customers. * If you have a WHM Reseller account, you are able to sell and manage cPanel shared Web Hosting. * If you have a WHM Root account, you are able to provision cPanel shared Web Hosting *and* cPanel reseller Web Hosting. To begin selling web hosting through Upmind on top of a cPanel server, you must have an active cPanel WHM login. ## What you will need * A WHM account, which can be either a root access account or a reseller account. * An [Upmind account](https://upmind.com/start). ### Generate an API Token in WHM In WHM, you need to generate an API Token. This is done in your WHM under **Development** > **Manage API Tokens**. Manage API Tokens > Generate Token When creating an API token, make sure to select all the necessary permissions. We recommend not setting an expiry date. Make sure to fill in the Token name, not set the expire date and select all permissions Once the API Token is generated, make sure to note and copy the API token so it can be pasted into the Upmind configuration. ### Adding a cPanel Server to Upmind In Upmind, you should add cPanel as a provision configuration. You can do this in either of the following ways: * On the sidebar, go to **Host Control** > **Web Hosting** > **Web Servers** > **Add New.** You can also select it from below. Host Control > Web Hosting > Web Servers > Add New * On the sidebar, go to **Settings** > **Provision Configurations** under **Provisioning** > **Add New Configuration.** Settings > Provision Configurations under Provisioning > Add New Configuration You should fill it out as follows: 1. Enter a **Name** for the server, typically something like cPanel or the server's hostname (e.g. `server.yourdomain.com`). Choose **Web Hosting** or any provision category name you've created. Select **cPanel** as the Provider. Enter name 2. The **Hostname** should be a resolvable hostname for your web server (e.g. `server.yourdomain.com`). 3. Your **WHM Username** is the username you use to log in to WHM. This may be `root` or your reseller username if a reseller account. 4. Enter the **API Key** you have generated in WHM. 5. You can fill out optional metadata for this provider configuration. This allows Upmind to automatically deploy to specific servers. Read more about [dynamic deployment](/using-upmind/provisioning/dynamic-deployement). 6. Finally, tick **Accepting New Accounts** if you wish to enable this server. Then click **Create**. Enter details ## Create packages When you create hosting packages in Upmind, you need to choose cPanel as a provision provider. You will be asked for the **Package Identifier**. It's recommended to use the cPanel package **name** (case sensitive). ### Get cPanel Package Identifier In your WHM control panel, go to **Packages** > **Add a Package** to create a new one, or click on **Edit Packages** if you already have one. * The package name is the identifier you set when creating the package, usually in the format `username_packagename`. * This is the value you’ll need to enter in Upmind when configuring the hosting product. In this example, the package name is elviravi_Advanced ### Configure Upmind products In your Upmind admin area, under **Host control** > **Web hosting** click on the **Hosting packages** tab and click the **Add new** button to start configuring a new hosting package. Host control > Web hosting > Hosting packages > Add new Now go to the product's Provisioning page and set the **Provision provider** to cPanel, and set the **Package Identifier** provision field to match your cPanel package **name**. Set provision provider Set package identifier Match your cPanel package name At this point, your cPanel product provisioning is all set up and ready to go. For more information on setting up and selling hosting products in Upmind, refer to our first step and [Web Hosting Quick Start](/for-web-hosts/quick-start-guide-for-hosting-companies-or-resellers) guides. ## Common cPanel errors Below are some frequent errors you might encounter when using cPanel with Upmind, along with simple explanations and solutions to help you resolve them quickly. 1. **Error Create Account: Forbidden Access Denied** - Please ensure the hostname, username, and API key are entered correctly in the **Settings** > **Provision configurations**. 2. **Error If "xxxx" is not a valid package name, at /usr/local/Whostmg** - You need to create a package in your [Web Host Manager interface](/for-web-hosts/quick-start-guide-for-hosting-companies-or-resellers), and this needs to match the package identifier you enter in **Settings** > **Product Catalogue** > **\[Product]** > **Provisioning** > **Package Identifier** in Upmind. 3. **Error: You cannot create a session for the user 'xxx' because they do not exist** - The cPanel account username is incorrect, or the account does not exist on the server. # Integrating Marketgoo to Upmind Source: https://docs.upmind.com/for-web-hosts/seo/integrating-marketgoo-to-upmind A step-by-step guide is here to help with white-label SEO tools that empower the clients to achieve online success Marketgoo helps web presence providers grow by offering white-label SEO tools that empower the clients to achieve online success. To explore partnership opportunities for reselling, please [contact Marketgoo.](https://www.marketgoo.com/partners/#contact-form) ## How to Link Marketgoo to Upmind Upmind has supported integration with Marketgoo. To link Marketgoo to Upmind, you will need an API URL and API Key. Contact Marketgoo support for assistance in generating these keys. After obtaining the API URL and API Key, you can follow these steps to integrate Marketgoo with Upmind. In the Upmind admin area, navigate to Settings. 1. Go to Provision Configurations -> Add New Configuration. 2. In the modal that appears, name it "Marketgoo". This name will not be visible to your clients. We recommend using "Marketgoo", unless you need to differentiate between two separate Marketgoo accounts. 3. Choose SEO for the Provision Category and Marketgoo for the Provider. 4. Enter the API URL and API Key obtained from Marketgoo support. 5. Click the Save button. Customer Server Configuration View ## How to Create Marketgoo Package in Upmind First, you should ask Marketgoo support to create a package and generate the package identifier. In Upmind, you need to create a product to sell. Go to Settings -> Product & Services. Click Add New. Give the product a name and description. On the next screen, you need to do the following: * On the main product screen, ensure 'is active' and 'is visible to clients' are checked. * Under product billing, set the billing to recurring and add prices for at least one billing cycle. * Under Provisioning, set the Provisioning Blueprint to 'SEO' and select 'Marketgoo' under the Provision Providers. Scroll to the bottom of the page and set the 'Package Identifier' which you obtained from Marketgoo support. * Don’t forget to always click the “Save” button Now, you’re live and ready to sell Marketgoo products and services with Upmind! # Integrating Ranking Coach to Upmind Source: https://docs.upmind.com/for-web-hosts/seo/integrating-ranking-coach-to-upmind Connect Ranking Coach with Upmind [Ranking Coach](https://www.rankingcoach.com/en-us) offers automated SEO services with rank tracking, keyword optimisation, and reporting tools, accessible through the API for reseller automation. ## How to link Ranking Coach to Upmind 1. From the Upmind dashboard, go to **Settings** > **Provision Configurations** > **Add New Configuration**. Settings > Provisioning > Provision Configurations 2. Choose **SEO** from the service type dropdown. 3. Select **Ranking Coach** from the available providers list. Choose Ranking Coach 4. Input your **Ranking Coach** **username** and **password**. Enter credentials 5. Click **Create** to complete the setup. # How to add Linode products Source: https://docs.upmind.com/for-web-hosts/servers/how-to-add-linode-products Configure Akamai Linode products and automate provisioning and basic management of Linode servers Customer Server Configuration View Customer Server Management View This guide explains how to configure Linode server products on Upmind. ## Create a Provision Configuration First, you should create a Provision Configuration in your Upmind settings. You will need to create an API/access token in your Linode dashboard to do this. ### Create an API Token in Linode 1. Log in to Linode ([cloud.linode.com](https://cloud.linode.com)) 2. Navigate to My Profile -> API Tokens ([https://cloud.linode.com/profile/tokens](https://cloud.linode.com/profile/tokens)) 3. Click to create a Personal Access Token with the following options: 1. Label of your choice 2. Expiry: Never 3. Access: Select All Read/Write 4. Click Create Token and copy the Personal Access Token 3. Create a Personal Access Token Copy the Personal Access Token ### Create a Provision Configuration in Upmind 1. Go to Settings -> Provision configurations 2. Click to Add new configuration with the following options: 1. Name of your choice 2. Provision Category: Servers 3. Provider: Linode 4. Access Token: (Paste your Linode Personal Access Token) 3. Click Create and now you're ready to create Linode products in Upmind Create provision configuration ## Create a Product This guide will cover how to configure the Provisioning section on your Upmind Products to automate the provisioning of Linode servers. For more information on configuring Products in general, please refer to [How to Create Products](/using-upmind/product-management/how-to-create-products). 1. Go to Settings -> Product catalogue 2. Add new or edit an existing Product 3. Go to the Provisioning section and select the following options: 1. Provision Blueprint: Servers 2. Provision Provider: 1. Any Provider: No 2. Select Linode 3. Provider Configuration: (Select the provision configuration you created earlier) 4. Click save 5. Scroll down to Provision fields and configure the Server Location, Server Image & Server Size (explained below) ### Provision Fields You may wish to create [Product Options](/using-upmind/product-management/how-to-add-product-options) or [Product Attributes](/using-upmind/product-management/how-to-add-product-attributes) to allow customers to select the Location and Image of their server so you only need one main product for each Size (Linode type) you want to sell. Refer to the sections below for what to type for [Server Location](#server-location), [Server Image](#server-image) and [Server Size](#server-size). Basic Product Provision Fields Dynamic Product Provision Fields (Using Product Attributes) #### Server Location This field configures which Region new Linodes will be provisioned in. You should type the **Region ID** in the **Server Location** field in Upmind. The following table lists Linode Regions available at the time of writing: | Region ID | Region Label | | ------------ | ------------- | | ap-west | Mumbai, IN | | ca-central | Toronto, CA | | ap-southeast | Sydney, AU | | us-central | Dallas, TX | | us-west | Fremont, CA | | us-southeast | Atlanta, GA | | us-east | Newark, NJ | | eu-west | London, UK | | ap-south | Singapore, SG | | eu-central | Frankfurt, DE | | ap-northeast | Tokyo, JP | Server Location Provision Field Values #### Server Image This field configures which Image (operating system / version) is used to create new Linodes. You should type the **Image ID** in the **Server Image** field in Upmind. To use a custom image you've stored in your Linode account ([https://cloud.linode.com/images](https://cloud.linode.com/images)) you can use the Image ID if you know it, or the Label you assigned to it. The following table lists default Linode Images available at the time of writing: | Image ID | Image Label | | ---------------------------- | ------------------------------- | | linode/almalinux8 | AlmaLinux 8 | | linode/almalinux9 | AlmaLinux 9 | | linode/alpine3.13 | Alpine 3.13 | | linode/alpine3.14 | Alpine 3.14 | | linode/alpine3.15 | Alpine 3.15 | | linode/alpine3.16 | Alpine 3.16 | | linode/alpine3.17 | Alpine 3.17 | | linode/arch | Arch Linux | | linode/centos7 | CentOS 7 | | linode/centos-stream8 | CentOS Stream 8 | | linode/centos-stream9 | CentOS Stream 9 | | linode/debian10 | Debian 10 | | linode/debian11 | Debian 11 | | linode/fedora35 | Fedora 35 | | linode/fedora36 | Fedora 36 | | linode/fedora37 | Fedora 37 | | linode/gentoo | Gentoo | | linode/kali | Kali Linux | | linode/debian11-kube-v1.23.6 | Kubernetes 1.23.13 on Debian 11 | | linode/debian11-kube-v1.24.8 | Kubernetes 1.24.8 on Debian 11 | | linode/debian11-kube-v1.25.4 | Kubernetes 1.25.4 on Debian 11 | | linode/opensuse15.3 | openSUSE Leap 15.3 | | linode/opensuse15.4 | openSUSE Leap 15.4 | | linode/rocky8 | Rocky Linux 8 | | linode/rocky9 | Rocky Linux 9 | | linode/slackware14.2 | Slackware 14.2 | | linode/slackware15.0 | Slackware 15.0 | | linode/ubuntu16.04lts | Ubuntu 16.04 LTS | | linode/ubuntu18.04 | Ubuntu 18.04 LTS | | linode/ubuntu20.04 | Ubuntu 20.04 LTS | | linode/ubuntu22.04 | Ubuntu 22.04 LTS | | linode/ubuntu22.10 | Ubuntu 22.10 | | linode/centos8 | CentOS 8 | | linode/debian9 | Debian 9 | | linode/slackware14.1 | Slackware 14.1 | Server Image Provision Field Values #### Server Size This field configures which Linode Type is used when creating new Linodes. You should type the **Linode Type ID** in the **Server Size** field in Upmind. The following table lists Linode Types available at time of writing: | Linode Type ID | Linode Type Label | Specs | | ---------------- | -------------------------------- | -------------------------------------------------- | | g6-nanode-1 | Nanode 1GB | 1 CPU Core, 1 GB RAM, 25 GB Disk | | g6-standard-1 | Linode 2GB | 1 CPU Core, 2 GB RAM, 50 GB Disk | | g6-standard-2 | Linode 4GB | 2 CPU Cores, 4 GB RAM, 80 GB Disk | | g6-standard-4 | Linode 8GB | 4 CPU Cores, 8 GB RAM, 160 GB Disk | | g6-standard-6 | Linode 16GB | 6 CPU Cores, 16 GB RAM, 320 GB Disk | | g6-standard-8 | Linode 32GB | 8 CPU Cores, 32 GB RAM, 640 GB Disk | | g6-standard-16 | Linode 64GB | 16 CPU Cores, 64 GB RAM, 1.2 TB Disk | | g6-standard-20 | Linode 96GB | 20 CPU Cores, 96 GB RAM, 1.9 TB Disk | | g6-standard-24 | Linode 128GB | 24 CPU Cores, 128 GB RAM, 2.5 TB Disk | | g6-standard-32 | Linode 192GB | 32 CPU Cores, 192 GB RAM, 3.8 TB Disk | | g7-highmem-1 | Linode 24GB | 2 CPU Cores, 24 GB RAM, 20 GB Disk | | g7-highmem-2 | Linode 48GB | 2 CPU Cores, 48 GB RAM, 40 GB Disk | | g7-highmem-4 | Linode 90GB | 4 CPU Cores, 90 GB RAM, 90 GB Disk | | g7-highmem-8 | Linode 150GB | 8 CPU Cores, 150 GB RAM, 200 GB Disk | | g7-highmem-16 | Linode 300GB | 16 CPU Cores, 300 GB RAM, 340 GB Disk | | g6-dedicated-2 | Dedicated 4GB | 2 CPU Cores, 4 GB RAM, 80 GB Disk | | g6-dedicated-4 | Dedicated 8GB | 4 CPU Cores, 8 GB RAM, 160 GB Disk | | g6-dedicated-8 | Dedicated 16GB | 8 CPU Cores, 16 GB RAM, 320 GB Disk | | g6-dedicated-16 | Dedicated 32GB | 16 CPU Cores, 32 GB RAM, 640 GB Disk | | g6-dedicated-32 | Dedicated 64GB | 32 CPU Cores, 64 GB RAM, 1.2 TB Disk | | g6-dedicated-48 | Dedicated 96GB | 48 CPU Cores, 96 GB RAM, 1.9 TB Disk | | g6-dedicated-50 | Dedicated 128GB | 50 CPU Cores, 128 GB RAM, 2.4 TB Disk | | g6-dedicated-56 | Dedicated 256GB | 56 CPU Cores, 256 GB RAM, 4.9 TB Disk | | g6-dedicated-64 | Dedicated 512GB | 64 CPU Cores, 512 GB RAM, 7 TB Disk | | g1-gpu-rtx6000-1 | Dedicated 32GB + RTX6000 GPU x1 | 8 CPU Cores, 1 GPU Cores, 32 GB RAM, 640 GB Disk | | g1-gpu-rtx6000-2 | Dedicated 64GB + RTX6000 GPU x2 | 16 CPU Cores, 2 GPU Cores, 64 GB RAM, 1.2 TB Disk | | g1-gpu-rtx6000-3 | Dedicated 96GB + RTX6000 GPU x3 | 20 CPU Cores, 3 GPU Cores, 96 GB RAM, 1.9 TB Disk | | g1-gpu-rtx6000-4 | Dedicated 128GB + RTX6000 GPU x4 | 24 CPU Cores, 4 GPU Cores, 128 GB RAM, 2.5 TB Disk | Server Size Provision Field Value # How to add Manual Server products Source: https://docs.upmind.com/for-web-hosts/servers/how-to-add-manual-server-products This guide explains how to add products and orders for manually provisioned servers ## Create a Product By using the "Servers (Manual)" provision blueprint, new orders will remain in the "Awaiting Activation" status after their initial invoice payment, until a staff member manually activates them. This allows you to provision the server manually, and then update the order with details such as the hostname, IP address and any other information that the customer might need. 1. Under `Settings` > `Product catalogue` click to create a new product 2. On the `Provisioning` page, set the Provision Blueprint to "Servers (Manual)" and click Save Set the Provision blueprint to "Servers (Manual)" For more information on configuring products, such as setting up billing and product options, refer to our guides starting with [How to create products](/using-upmind/product-management/how-to-create-products). ## Managing Orders When a customer places and pays for an order for a manually provisioned server, you will need to activate it manually. ### Activating orders 1. Under `Products & Services` find a new order that needs to be activated 2. On the `Overview` tab, the Status should display "Awaiting activation" if the customer has paid their initial order invoice 3. Click the link to manually activate the order, which will commence recurring billing Beneath where it shows "Status: Awaiting activation" click to manually activate the order ### Sharing server details The "Servers (Manual)" provision blueprint adds a couple of fields to the `Manage` tab of a server order. Here you can set the server hostname (which also acts as the service identifier for the order) and the IP address. You can share other information such as server credentials via the `Notes and secrets` tab. These can then be viewed by the customer in their client area. 1. Go to the `Manage` tab of the newly activated server order 2. Enter a Hostname and/or IP address and click save On the `Manage` tab, enter the Hostname or IP address then click Save 3. On the `Notes and secrets` tab, provide any additional information such as server credentials and untick the checkbox to display these in the client area On the `Notes and secrets` tab, enter any other information such as log on credentials and click Save In the client area, this is what the customer should see. They can reveal the root password we set earlier by simply clicking on it. The customer will see the Hostname, IP Address and any other notes and secrets you provided ### Enable Notes and Secrets If you don't see a tab for `Notes and secrets` you simply need to enable it in your brand settings. 1. Go to `Settings` > `User interface` 2. In the `Client Area` section, Tick the box `Enable client notes & vault` and click Save 3. You may need to refresh the page for the `Notes and secrets` tab to appear under your customers' orders Tick the checkbox for `Enable client notes & vault` # How to add VirtFusion products Source: https://docs.upmind.com/for-web-hosts/servers/how-to-add-virtfusion-products Configure VirtFusion products and automate provisioning and basic management of virtual servers Customer Server Configuration View Customer Server Management View This guide explains how to configure VirtFusion server products on Upmind. ## Create a Provision Configuration First, you should create a Provision Configuration in your Upmind settings. You will need to create an API/access token in your VirtFusion dashboard to do this. ### Create an API Token in VirtFusion 1. Log in to VirtFusion. 2. Navigate to **System → API**. 3. Click **Create Token**. 4. Fill in the **Name** and click **Create**. Create API Token 5. Return to the **API List** and make note of your `API Token` ### Create a Provision Configuration in Upmind 1. Go to **Settings → Provision configurations** 2. Click to **Add new configuration** with the following options: 1. Name of your choice 2. Provision Category: **Servers** 3. Provider: **VirtFusion** 4. Hostname: **Your VirtFusion hostname** 5. API Token: **(Paste your API Token)** 3. Click **Create** and now you're ready to create VirtFusion products in Upmind Create provision configuration ## Create a Product This guide will cover how to configure the Provisioning section on your Upmind Products to automate the provisioning of VirtFusion servers. For more information on configuring Products in general, please refer to [How to Create Products](/using-upmind/product-management/how-to-create-products). 1. Go to **Settings → Product catalogue** 2. **Add new or edit an existing Product** 3. Go to the Provisioning section and select the following options: 1. Provision Blueprint: **Servers** 2. Provision Provider: 1. Any Provider: No 2. Select **VirtFusion** 3. Provider Configuration: (Select the provision configuration you created earlier) 4. Click **Save** 5. Scroll down to **Provision fields and configure the Server Location, Server Image & Server Size** (explained below) ### Provision Fields You may wish to create [Product Options](/using-upmind/product-management/how-to-add-product-options) or [Product Attributes](/using-upmind/product-management/how-to-add-product-attributes) to allow customers to select the Location and Image of their server so you only need one main product for each Size (VirtFusion type) you want to sell. Refer to the sections below for what to type for [Server Location](#server-location), [Server Image](#server-image) and [Server Size](#server-size). Dynamic Product Provision Fields (Using Product Attributes) #### Server Location This is the ID of the desired hypervisor group for new servers to be allocated to in VirtFusion - go to **Compute Resources → Hypervisor Groups**. #### Server Image This can be the Name or ID of the OS image template from VirtFusion - go to **Media → Templates**. #### Server Size This can be the Name or ID of a server package in VirtFusion - go to **Server → Packages**. # How to add Virtualizor products Source: https://docs.upmind.com/for-web-hosts/servers/how-to-add-virtualizor-products Configure Virtualizor products and automate provisioning and basic management of virtual servers Customer Server Configuration View Customer Server Management View This guide explains how to configure Virtualizor server products on Upmind. ## Create a Provision Configuration First, you should create a Provision Configuration in your Upmind settings. You will need to create an API/access token in your Virtualizor dashboard to do this. ### Create an API Token in Virtualizor 1. Log in to Virtualizor 2. Navigate to API Credentials 3. Select an admin user then Check all Actions 4. Scroll to the bottom and click Generate Create API Credential for an Admin User with access to all Actions 5. Return to the API Credential List and make note of your `API Key` and `API Password` ### Create a Provision Configuration in Upmind 1. Go to Settings -> Provision configurations 2. Click to Add new configuration with the following options: 1. Name of your choice 2. Provision Category: Servers 3. Provider: Virtualizor 4. Hostname: Your Virtualizor master hostname 5. API Key: (Paste your API Key) 6. API Password: (Paste your API Password) 7. Location Type: Geographic (Allows server placement by location e.g., "US") 8. Default Virtualization Type: KVM (This is the most common virtualization type) 3. Click Create and now you're ready to create Virtualizor products in Upmind Create provision configuration ## Create a Product This guide will cover how to configure the Provisioning section on your Upmind Products to automate the provisioning of Virtualizor servers. For more information on configuring Products in general, please refer to [How to Create Products](/using-upmind/product-management/how-to-create-products). 1. Go to Settings -> Product catalogue 2. Add new or edit an existing Product 3. Go to the Provisioning section and select the following options: 1. Provision Blueprint: Servers 2. Provision Provider: 1. Any Provider: No 2. Select Virtualizor 3. Provider Configuration: (Select the provision configuration you created earlier) 4. Click save 5. Scroll down to Provision fields and configure the Server Location, Server Image & Server Size (explained below) ### Provision Fields You may wish to create [Product Options](/using-upmind/product-management/how-to-add-product-options) or [Product Attributes](/using-upmind/product-management/how-to-add-product-attributes) to allow customers to select the Location and Image of their server so you only need one main product for each Size (Virtualizor Plan name) you want to sell. Refer to the sections below for what to type for [Server Location](#server-location), [Server Image](#server-image) and [Server Size](#server-size). Dynamic Product Provision Fields (Using Product Attributes) #### Server Location This field configures which server VMs will be provisioned on. The value you should enter in this provision field depends on your provision configuration's Location Type: * Geographic: You should enter a value corresponding to your Virtualizor servers' geographic location * Server: You should enter the name of the specific server you want to provision new VMs on * Server Group: You should enter the name of the server group you want to provision new VMs on #### Server Image This field configures which OS Template (operating system / version) is used to create new Virtualizor VMs. You should use the Virtualizor OS Template name in Upmind. #### Server Size This field configures which Virtualizor Plan is used when creating new VMs. You should use the Virtualizor Plan name in Upmind. # How to Sell ispmanager Licensing Source: https://docs.upmind.com/for-web-hosts/software-licenses/how-to-sell-ispmanager-licensing Configure and sell ispmanager licensing products with Upmind [ispmanager](https://www.ispmanager.com/) is a Linux-based hosting control panel developed by ISPsystem, providing an interface for managing dedicated servers, VPS, game servers, and shared hosting. It offers detailed server management with automated tools, security updates, and scalability options suitable for hosting providers, developers, and businesses. ## Supported ispmanager licenses Upmind supports the following ispmanager licenses for sale, which can be configured by name or license ID in the product setup: | License Name | License ID | | --------------------------- | ---------- | | ispmanager 6 trial | 55239 | | ispmanager 6 business trial | 55240 | | ispmanager 6 lite | 55227 | | ispmanager 6 pro | 55228 | | ispmanager 6 host | 55229 | | ispmanager 6 business | 55230 | ## Getting ispmanager credentials The provision configuration requires the Username and Password, both of which are the same credentials you use to log into your ispmanager account. Username (email) and password ## Configuring ispmanager provisioning in Upmind 1. In Upmind, go to **Settings** > **Provision Configurations**. Settings > Provision configurations 2. Click on **Add New Configuration**. Add new configuration 3. Provide a **Name** (e.g., ispmanager Licensing Provision). 4. Select **Software Licenses** as the product type. 5. Choose **ispmanager** as the provisioning provider. Choose ispmanager 6. Complete the following details: * Username: The user’s ispmanager account login. * Password: The password for the ispmanager account. Fill in the details 7. Click **Create**. ## Creating ispmanager licensing products in Upmind 1. Go to **Store Catalogue** > **Products** in Upmind. Store Catalogue > Products 2. Click **Add New**. Add new 3. Choose the category and fill in the details. 4. Then click **Create**. Fill in product details 5. On `Provisioning`, set the **Provision Blueprint** to **Software Licenses**. Provision blueprint 6. Set the **Provision Provider** to **ispmanager**. 7. Choose the **Configuration Mode** and **Provider Configuration**. Set provision provider 8. Enter the **Package Identifier**. Use either the license name (e.g., ispmanager 6 lite) or the license ID (e.g., 55227). Complete other product details Enter package identifier 9. **Save** the product. # How to Sell Pax8 M365 Licensing Source: https://docs.upmind.com/for-web-hosts/software-licenses/how-to-sell-pax8-m365-licensing Configure and sell Pax8 M365 licensing products with Upmind [Pax8 M365](https://www.pax8.com/en-us/vendors/microsoft/) delivers Microsoft 365 licences through Pax8's cloud marketplace for MSPs and resellers. Upmind automates the full subscription lifecycle from order creation through renewals and suspensions using Pax8's OAuth API, matching products by SKU or ID for reliable provisioning of Business Basic, Premium, and Enterprise plans. ## Pax8 M365 required credentials You will require the following credentials: 1. **Client ID**: OAuth application identifier from Pax8. 2. **Client Secret**: Secret key for API authentication. ## Get Pax8 M365 credentials Pax8 API uses OAuth 2.0 authentication. 1. Log in to . Pax8 login 2. Get **Client ID** and **Client Secret** from Pax8 dashboard. 3. Exchange credentials for access token. 4. Use token for API requests. For more details, you can see the following guides: * [https://devx.pax8.com/docs/public-api-details](https://devx.pax8.com/docs/public-api-details) * [https://devx.pax8.com/docs/authentication](https://devx.pax8.com/docs/authentication). ## Configuring Pax8 M365 provisioning in Upmind 1. In Upmind, go to **Settings** > **Provision Configurations** Settings > Provision configurations 2. Click on **Add New Configuration**. Add new configuration 3. Provide a **Name** (e.g., Pax8 M365 Licensing Provision). 4. Select **Software Licenses** as the product type. 5. Choose **Pax8 M365** as the provisioning provider. Choose Pax8 M365 6. Enter the **Client ID** and **Client Secret**. Fill in the details 7. Click **Create**. ## Creating Pax8 M365 licensing products in Upmind 1. Go to **Store Catalogue** > **Products** in Upmind. Store Catalogue > Products 2. Click **Add New**. Add new 3. Choose the category and fill in the details. 4. Then click **Create**. Fill in product details 5. On `Provisioning`, set the **Provision Blueprint** to **Software Licenses**. Provision blueprint 6. Set the **Provision Provider** to **Pax8 M365**. 7. Choose the **Configuration Mode** and **Provider Configuration**. Set provision provider 8. Enter the **Package Identifier**. Use either the licence name (e.g., Pax8 Product SKU) or the licence Product ID (e.g., 55227). Complete other product details Enter package identifier 9. **Save** the product. ## Supported actions Upmind manages the complete lifecycle of Pax8 Microsoft 365 licenses and subscriptions, including: * Create – Provision a new licence or subscription. * Retrieve Usage – View usage data for an active licence or subscription. * Renew – Reactivate a previously deactivated licence or subscription. * Suspend – Deactivate (cancel) an active licence or subscription. * Unsuspend – Restore a suspended licence or subscription. * Terminate – Permanently cancel a licence or subscription. This ensures that provisioning, billing alignment, and subscription state changes are handled consistently throughout the lifecycle. # How to Integrate and Sell Basekit Source: https://docs.upmind.com/for-web-hosts/website-builders/how-to-integrate-and-sell-basekit [Basekit](https://www.basekit.com) is a website builder designed for small businesses. Many web hosting companies who provide website builder software actually sell a white-labelled version of Basekit. Basekit can be easily sold and integrated into Upmind. ## Credentials you need You need to have an active BaseKit solution. [Contact them if you do not have one](https://www.basekit.com/solutions/partner/). Basekit is provided either on-premise on your own hardware, or as a SAAS solution from Basekit themselves. Either way, you will receive a set of credentials, as follows: | Credential Name | Format | | ---------------------------- | ------------------------------------------------------------------------------ | | API URL | e.g. \`[https://rest.bk-partnersus.com\\\`](https://rest.bk-partnersus.com\\`) | | Username | A 32 character hexadecimal string | | Password | A 32 character hexadecimal string | | Brand Reference | Integer (e.g. 1234) | | Suspension Package Reference | Integer (e.g. 1999) | | Package References | For each package (e.g. 2000, 2001, 2002) | ## Configuring Basekit In Upmind ### Add Basekit Credentials First, add Basekit as a provision configuration. 1. Go to `Settings` > `Provision Configuration` 2. Click `Add new configuration` 3. Fill out the data with the info you have above. You can enter whatever you like in 'Name' but we recommend `Basekit`. Unless you have two standalone Basekit setups you will only need to add this once. 4. Click `Create`. The configuration screen ### Creating Packages You need to create at least one website builder plan. Usually you would create one plan for each Basekit package you have. 1. Go to `Settings` > `Products & Services` 2. Click `Add New`. You may need to create a product category if you do not already have one. 3. Give the product a name and click Create. 4. Under Provisioning, choose `Website Builders`, then untick any provider and choose `Basekit`. 5. Save, then you can configure the Package Reference to this Basekit Package ID. 6. Remember to set up product billing and enable the product for sale. An example Basekit product provisioning configuration. That's it! Your Basekit product is ready for sale. # How to Integrate and Sell Duda Source: https://docs.upmind.com/for-web-hosts/website-builders/how-to-integrate-and-sell-duda [Duda](https://www.duda.co/) is a cloud-based website builder designed for agencies and web professionals managing multiple client sites. It offers responsive design and white-label features. You can easily sell and connect Duda with Upmind. ## Credentials You’ll Need Before you begin, you'll need to grab API credentials from your Duda account. 1. Go to Business Tools > API Access 2. Generate a set of credentials if necessary 3. Make note of your API Username and API Password ## Configuring Duda in Upmind First, add Duda as a Provision Configuration 1. In your Upmind admin panel, go to: Settings > Provision Configurations 2. Click Add New Configuration 3. Set Provision Category to Website Builder 4. Enter the required fields; You can name it anything (we recommend simply “Duda”) 5. Paste the API Username and API Password you obtained from your Duda account into the Username and Password fields, respectively 6. (Optional) Set a default permissions list for new sites if you don't want to configure a list for each product (see [Duda Permissions](#duda-permissions) below) 7. Click Create ## Create Website Builder Packages Set up the plans you want to sell based on your Duda offerings. 1. Navigate to Store Catalogue 2. Click Add New 3. If you don’t have a product category yet, you’ll need to create one first. 4. Enter a product name (e.g., “Duda Basic Plan”) and click Create 5. Scroll to the Provisioning section: 6. Set the type to Website Builder and select Duda from the list 7. Save your changes 8. Configure the Package Reference; you can either use Duda planNames or planIds e.g., FREE or BUSINESS\_PLUS (contact Duda if you are unsure of which plans are available to your reseller account): 9. (Optional) If you want your products to have custom permissions, configure a value for the Permissions field (see [Duda Permissions](#duda-permissions) below): ## Duda Permissions When setting up permissions in Upmind, you should enter them as a comma-separated list like so: `PUBLISH,REPUBLISH,STATS_TAB,EDIT,LIMITED_EDITING,RESET,E_COMMERCE,CUSTOM_DOMAIN`. The table below lists all the available permissions, their dependencies and a description for each. If a permission has a dependency, then you must also include this in your configured permissions list(s). | Permission | Dependency | Description | | ---------------------------------------------- | --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | STATS\\\_TAB | (None) | Can access and see the stats of all sites in this account. | | EDIT | BLOG, LIMITED\\\_EDITING | Can add and manage widgets, site pages, and popups. Can also edit the site’s design including Site Theme, and manage site settings. Granting this permission automatically grants the blog and widget content permissions as well. | | DEV\\\_MODE | EDIT | Can access and edit the site’s HTML and CSS code on the canvas and in Dev Mode. | | INSITE | EDIT | Can set and manage Site Personalization rules, including popups, special promotions, and more. | | E\\\_COMMERCE | (None) | Can manage & edit all store management settings, including product catalog, payments, orders, taxes, shipping, and more. | | SEO | EDIT | Can access and manage site and page-level SEO settings, connect Google tools and analytics, and set URL redirects. | | CUSTOM\\\_DOMAIN | EDIT | Can set or edit the site’s custom domain. | | BLOG | (None) | Can add, edit or manage blog posts. Editing post content includes adding widgets to posts. | | REPUBLISH | EDIT | Can republish a live site to make any editor changes live online. | | PUBLISH | (None) | Can publish the site for the first time (triggering a charge for the account owner), as well as republish and unpublish it. | | ADD\\\_FLEX | EDIT | Can add new flex sections to sites built with the Classic editor. | | BACKUPS | LIMITED\\\_EDITING | Can create, preview, restore, and delete site backup versions. | | RESET | LIMITED\\\_EDITING | Can reset a site and start fresh using a new template. | | AI\\\_ASSISTANT | (None) | Allow clients to use AI tools. Access may vary depending on other permissions, such as SEO, site editing, resetting, and more. | | LIMITED\\\_EDITING | (None) | Can edit the content of existing widgets on a site like site texts and others with textual content, but can’t edit their design or delete them. | | SITE\\\_COMMENTS | (None) | Can access, add and delete comments on this site. | | CONTENT\\\_LIBRARY | LIMITED\\\_EDITING | Can edit and manage the site’s Content Library, including Business Info, Business Text, Media, Collections, and more. | | EDIT\\\_CONNECTED\\\_DATA | (None) | Can connect data to existing site widgets and elements in the editor through the Connect to Data menu option. | | MANAGE\\\_CONNECTED\\\_DATA | EDIT, EDIT\\\_CONNECTED\\\_DATA, CONTENT\\\_LIBRARY | Can add widgets to site and connect them to Collection and Content Library data fields. Can also create and manage site’s Dynamic Pages. | | USE\\\_APP | LIMITED\\\_EDITING | Use all apps which are added to a site, requires editing permissions. | | CLIENT\\\_MANAGE\\\_FREE\\\_APPS | LIMITED\\\_EDITING | Can install, uninstall and use free apps, and use paid apps added by other users. This requires editor permissions. | | MANAGE\\\_DOMAIN | REPUBLISH, CUSTOM\\\_DOMAIN, LIMITED\\\_EDITING | Change, remove or manage the DNS records of a domain previously purchased directly through this site builder. | | CONTENT\\\_LIBRARY\\\_EXTERNAL\\\_DATA\\\_SYNC | CONTENT\\\_LIBRARY | Can connect, disconnect, push, and pull data into the site’s Content Library from external tools like Google Business Profile and others. | | SEO\\\_OVERVIEW | (None) | Can view a summary of the site's SEO state, see and fix specific errors. To allow the client to fix issues, grant them the Site SEO permission as well. | # How to Integrate and Sell Weebly Source: https://docs.upmind.com/for-web-hosts/website-builders/how-to-integrate-and-sell-weebly [Weebly](https://www.weebly.com/) is a website builder that offers drag-and-drop features, making it easy for users to create websites without needing to code. Weebly is often used by small businesses, bloggers, and online stores, and it’s known for its simplicity, integrated e-commerce tools, and customisable templates. You can easily sell Weebly and connect it to Upmind. ## Credentials you need To integrate with Upmind, you'll need an API Key and API Secret. Here's how to obtain them: 1. Log in to your admin member account at [Weebly](https://www.weeblycloud.com/admin/login.php#login) 2. Go to Settings and scroll down to the API Key section 3. Click Add Key. In the popup modal, enter a name, then copy the API Key and API Key Secret. Settings > API Key > Add Key 4. Finally, click Save Key Click Save Key ## Configuring Weebly in Upmind ### Add Weebly Credentials First, add Weebly as a provision configuration. 1. Go to `Settings > Provision Configurations` 2. Click `Add New Configuration` 3. Fill the fields with the information you gathered earlier. You can choose any name you like, but we recommend using "Weebly". If you don't have multiple standalone Weebly setups, you'll only need to add this configuration once. 4. Click `Create` ### Creating Packages To get started, you'll need to create at least one website builder plan, usually one for each Weebly package you have. Here's how to do it: 1. Go to Settings > Product Catalogue 2. Click on Add New. If you don't have a product category yet, you'll need to create one. 3. Give your product a name and hit Create. 4. In the Provisioning section, select Website Builders. Choose Weebly. 5. Save your changes, then configure the Package Reference. You can use either the Weebly plan name or the ID as the package reference. 6. Don't forget to set up product billing and enable the product for sale. That's it! Your Weebly product is ready for sale. # How to Integrate and Sell Yola Source: https://docs.upmind.com/for-web-hosts/website-builders/how-to-integrate-and-sell-yola Yola is a simple website builder that helps you create professional-looking websites without any coding [Yola](https://www.yola.com) is a simple website builder that helps you create professional-looking websites without any coding. With its easy drag-and-drop tools and customisable templates, you can quickly build your site. It’s great for small businesses, personal projects, and online stores, offering built-in features for e-commerce and mobile-friendly design. You can easily sell Yola and connect it to Upmind. ## Credentials you need To integrate with Upmind, you'll need an Auth Key and Brand ID. ## Configuring Yola in Upmind ### Add Yola Credentials First, add Yola as a provision configuration. 1. Go to `Settings > Provision Configurations` 2. Click `Add New Configuration` 3. Fill in the fields with the information you gathered earlier. You can choose any name you like, but we recommend using "Yola". If you don't have multiple standalone Yola setups, you'll only need to add this configuration once. 4. Click `Create` ### Creating Packages To get started, you'll need to create at least one website builder plan, usually one for each Yola package you have. Here's how to do it: 1. Go to Settings > Product Catalogue 2. Click on Add New. If you don't have a product category yet, you'll need to create one. 3. Give your product a name and hit Create. 4. In the Provisioning section, select Website Builders. Choose Yola. 5. Save your changes, then configure the Package Reference. You can use either the Yola plan name or the ID as the package reference. 6. Don't forget to set up product billing and enable the product for sale. That's it! Your Yola product is ready for sale. # WHMCS Comparison Source: https://docs.upmind.com/for-web-hosts/whmcs-comparison In this guide we explain some key differences between Upmind and WHMCS. We assume that you are familiar with WHMCS. If you are not, then the short answer here is that Upmind probably has everything you need. WHMCS is a hosting billing platform. It is software you install on your own web server, and allows you to sell and manage domain names and hosting accounts. Upmind can also be used by [web hosting providers](https://upmind.com/industries/web-host-billing-system). Upmind contains most, if not all, of the features WHMCS offers, plus many more. Both offer client management, hosting and domain sales and management, self-service order and client systems, support and more. Many of our users move to Upmind from WHMCS and we include an [import tool](/setup-and-configuration/importing-data/importing-from-whmcs) which will migrate your WHMCS data to Upmind. In fact, Upmind was [originally started because the founders wanted to move away from WHMCS](https://upmind.com/). In this guide we explain some key differences between Upmind and WHMCS. We assume that you are familiar with WHMCS. If you are not, then the short answer here is that Upmind probably has everything you need and we [recommend you just try it](https://upmind.com/start). Upmind is free and easy to try and so we would recommend [giving it a go yourself](https://upmind.com/start). ## Installation and Ease of Use - Self-Hosted vs. SaaS Upmind takes 20 seconds to set up and run without any configuration required. We run Upmind on top of Amazon Web Services. This is not only to ensure reliability; it enables us to use cutting-edge technology such as Lambda functions, queueing systems, search-specific databases, database replication and more. From a user perspective, it means it is really easy to use and you do not need to spend time or effort troubleshooting the setup. We also take care of all updates and security for you. What you cannot do with Upmind is log in directly to the database and change things. Some WHMCS users tend to do a lot of updates via SQL command. Our approach is different - we would much rather give you the tools to do this via the interface or API. ## API-First Upmind is API-First. This means that every single action handled by you, your staff or clients, runs through our API. Our frontend interface is simply an implementation of those APIs. Using Upmind APIs you could write your own entire client or staff application with complete full functionality. WHMCS has an API but this is added on top of their software. From personal experience, developers using the APIs sometimes have to resort to running SQL commands to get the data out that they need, because the APIs contain an abstracted form of the data available. We presently have over 1500 API endpoints, in comparison to WHMCS with [approximately 150 API endpoints](https://developers.whmcs.com/api/api-index/). ## Responsive Modern Design Upmind’s frontend interface is built in the latest frontend javascript technologies such as VueJS as a single-page application. It is completely responsive and works just as well on mobile and tablet devices as on desktops. We are offering javascript widgets which can be embedded into your client websites. Feedback from clients is that Upmind is "beautiful" and "a pleasure to use". We know that our software is likely to be your homepage, and usability is an absolute priority. Obviously design is subjective but we recommend trying Upmind for yourself to see. ## Product Maturity WHMCS is 10+ years old and established software. Upmind is currently in beta. We are adding features quickly. We have covered the vast majority of WHMCS features already but there may be some usage gaps we are not aware of, which are in the roadmap, or which we did not think it necessary to replicate. You can [request these as features in our discussion area](https://features.upmind.com/) and we will endeavour to add them promptly. Ultimately we are committed to building the best software we can and are at the start of our journey. If there are features you need, let us know. ## Notifications and Hooks Upmind has a flexible hook and action system. You can take any one of \~200 hooks and set conditional actions that occur on them in the interface. These actions include emails, Slack alerts, and webhooks. These hooks can be set to fire on specific product status updates (e.g. suspension, auto-renewal change etc), or for example to send alerts of an upcoming renewal. WHMCS has a more rigid framework for email notifications such as product welcome emails, but other emails and notifications would usually be set up using custom PHP in their includes/hooks structure. ## Accounting Invoices in Upmind are immutable. You cannot change them. If a client does not want to renew a domain, the invoice is credited. If a service is cancelled, the invoice is credited with a corresponding credit note. As a result, historic accounting data in Upmind does not change. This is how it should be. In WHMCS, invoices can be changed both by staff, or by the system cancelling or changing unpaid invoices. ## Integrations We think that the current biggest difference between Upmind and WHMCS is that at present all Upmind integrations are first-party - i.e., they are written by us. In WHMCS you can find modules from third parties and add them, or build your own. The ability to add your own modules and integrations is in our roadmap. For now, we are focusing on integrating the top 20 domain registrars, the top 20 hosting providers, the top 20 web server providers, and the top 20 payment gateways. Additionally, Upmind currently has 50+ integrations with third-party services. As above, if you have a specific integration requirement, let us know and we will add it to our roadmap. ## Multi-brand, Multi-language, Multi-currency Upmind can be used with [multiple brands](/setup-and-configuration/branding/how-to-add-brands) at once under one organisation. WHMCS supports a single brand. WHMCS supports one currency per client. If a client currency is changed then all invoices and transactions, even historic ones, show in the new currency. Upmind is truly [multi-currency](/using-upmind/invoicing-and-taxes/about-multi-currency): clients can pay and hold balances in various currencies, and we can even convert prices to different currencies on demand. Upmind is natively multi-lingual. Our app is translated into a growing number of languages already, and you can translate all text fields and notifications to the languages of your choice. ## Analytics and Marketing Tools Powerful inbuilt support for Google Tag Manager events, including Google Analytics 4. We also implement our own version of urchin variables which let you pass site tracking information to the order form. These features would need to be custom implemented in WHMCS. ## Pricing At Upmind we build great software. We have a freemium model which means a lot of users don't pay us anything, and even larger businesses pay only a reasonable fee for our software. We are committed to keeping prices affordable and not increasing prices. WHMCS has increased prices significantly since 2021. ## Ownership WHMCS is owned by private equity (WebPros, who also own cPanel and Plesk). Upmind is privately owned by staff who all work full time for Upmind. # Admin Area vs. Client Area Source: https://docs.upmind.com/getting-started/admin-area-vs-client-area Upmind lets you have a separate Admin Area for management and staff, and a Client Area for clients, so things can be managed smoothly and don't tie up. Upmind includes an **Admin** area for you and your staff. It also includes a client login area where your customers can manage their own accounts and place orders. Here we explain the differences. ## **Admin area** * Accessible at `yourapp.upmind.app` or, if you set up a [custom domain](/setup-and-configuration/branding/how-to-add-a-custom-domain-name). * Must be a staff user to log in. * Depending on credentials, lets you manage client data with the impersonation feature. ## **Client area** * Accessible at `yourapp.upmind.app` or, if you set up a [custom domain](/setup-and-configuration/branding/how-to-add-a-custom-domain-name), yourdomain.com. * Requires a client login. * Allow clients to place new orders * New clients can register at the register screen. Staff users can [impersonate clients](/using-upmind/client-management/how-impersonating-a-client-works) from the admin area. ## **Widgets** Widgets are embedded onto your frontend site (or elsewhere) with a snippet of code. For example: * Pricing cards. * Domain search tools (Currently, in Upmind, we provide a guide on how to add domain search tools to your website. Please check the guide [here](/for-web-hosts/domain-names/how-to-add-a-domain-availability-checker-widget-to-your)). * Login forms. This code does not require a login and accesses information that is available to guests. ## **API access** Upmind is API-first, which means that all functionality is available via API. Our Admin area, client area, and widgets are simply first-party uses of that API. You, in theory, could build an entirely custom front-end Admin or client area yourself. If you look at your browser XHR requests, you will see the API calls made on each page. We will be adding detailed API documentation to this knowledge base at a later date. To use our API, you first request a token. This token is classified as **user**, **client**, or **guest**. # How to Create an Upmind Account Source: https://docs.upmind.com/getting-started/how-to-create-an-upmind-account Get started with Upmind in 30 seconds. This page will help you get started with Upmind. You'll be up and running very quickly! Upmind requires no technical experience or payment details. It's free to try. There's no need to enter payment details unless you want to continue using Upmind past the trial. ## Create an account 1. From the [Upmind landing page](https://upmind.com/), click on **Start Free**. Start Free 2. Enter your email and create your account. Enter email address 3. You will need to verify your email address. Verify your email 4. Click on **Complete Registration**. Click on complete registration ## Signing up 1. Enter your **organisation name, your name**, the desired account **password**, and choose the brand **currency**. 2. You can also choose to seed the demo data, which will help you give Upmind a test drive. You can delete this data anytime. 3. You can also check out our [Terms & Conditions](https://docs.upmind.com/legal-and-information/terms-and-conditions) before you proceed. Fill in the details 4. Click **Continue**. ## Your domain Upmind creates a subdomain for your online store. It has a randomly generated unique ID plus the extension **.upmind.app**. We encourage you to [configure your own domain name](/setup-and-configuration/branding/how-to-add-a-custom-domain-name) (e.g., yourdomain.com or clientarea.yourdomain.com) after setup. ## Verifying an account Upmind emails a message with a verification link. If the message does not arrive within five minutes, check your spam folder. Click the link. Your organisation’s admin dashboard opens in a new browser tab. Your account is live! Unique URL ## Changing the **organisation** name display You can change the way your **organisation's** name appears on the screen. 1. Click the **Settings** button in the bottom left corner of the screen. 2. Click the **Brand** settings tile under **Branding and Customisation**. Settings > Branding and Customisation > Brand Settings 3. Enter a new name. 4. Click **Save**. Enter a new brand name Upmind automatically changes the organisation name (but not the domain name). Upmind automatically changes the organization name ## Logging into the admin panel Go to the Admin Panel login page and enter your credentials. That login page URL looks like this: * randomID.upmind.app/admin/auth/login Admin login screen ## Single vs. Multi Brand Each Upmind account is called an organisation. An organisation can have multiple brands, which can be set up on the brand's page. If you have multiple businesses on Upmind, we recommend using multi-brand mode under one organisation (assuming the businesses are under the same legal entity). However, if the businesses are separate entities, you should register a standalone Upmind organisation. ## Watch the tutorial on YouTube Please take a look at this [link](https://www.youtube.com/watch?v=b-ZpJJ5P4K4) for a comprehensive guide to this tutorial. # How to Use Upmind's Knowledge Base Source: https://docs.upmind.com/getting-started/how-to-use-upminds-knowledge-base Your guide to finding answers, learning the platform, and getting the most out of Upmind's documentation resources. ## What is Upmind's knowledge base? Upmind's knowledge base is a structured, regularly updated, self-service documentation library covering the full platform, from your first login and billing configuration through to provisioning, payment gateway integrations, and developer tools. It's built for hosting companies, digital agencies, and managed service providers who need reliable answers quickly, and it's the kind of resource you'll return to regularly, not just when something goes wrong. This guide introduces you to how the knowledge base is laid out, what kinds of guides you'll find, and the quickest ways to get to the information you need. ## How the documentation is organised The knowledge base follows the natural flow of using Upmind, starting from account creation and moving through setup, daily operations, and more advanced features. Here's what each section covers: * **Getting Started** - This is where everything begins. These guides cover how to create your account, an overview of what Upmind does, and the difference between the Admin Area and the Client Area. Start here if you're new to the platform. * **Managing Your Account** - This covers admin profile management, password and security settings, the dashboard overview, and plan upgrades. * **Setup & Configuration** - This is one of the most important sections and is worth working through early. It covers branding, multi-brand setups, staff users, notifications, email configuration, data imports from platforms like WHMCS, and order flow settings and building out your initial product catalogue. Getting your products configured early is one of the first things you'll need before you can start taking orders. This also includes creating product groups, configuring pricing, setting billing cycles, and linking products to provisioning modules so they're ready to sell. * **Using Upmind** - This is the largest section, covering day-to-day platform use. Guides here include client management, the service desk, subscriptions, invoicing, taxes, payment methods, product catalogues, provisioning, promotions, reports, and affiliates. * **Using Cart 2.0** - This covers Upmind's updated storefront and checkout experience, including guides specific to the Cart 2.0 interface. * **Client Self-Service** - This covers the client-facing side of the platform, from registration and login through to managing orders, invoices, payment methods, and support tickets. Useful if you want to understand the experience your clients are having. * **For Web Hosts** - This is built for hosting companies and resellers. It covers domain management, registrar integrations (Enom, ResellerClub, Namecheap, GoDaddy), cPanel/WHM provisioning, Plesk, DirectAdmin, website builders, VPS and server products, email services, and software licensing. * **Guides for Web Hosting Accounts** - This provides hands-on walkthroughs for linking WHM accounts, creating hosting packages, and managing the order-to-provisioning flow. * **For Digital Agencies** - This contains a quick-start guide for agencies managing client billing, subscriptions, and services through Upmind. * **For Managed Service Providers** - This has a dedicated quick-start guide focused on the workflows most relevant to MSP operations. * **Developers** - This contains the technical documentation for anyone building on top of Upmind or extending its functionality. It covers API token generation, webhook setup, all supported webhook event types, and the custom Stripe SDK payment flow. * **Legal and Information** - This holds the platform's security documentation, terms and conditions, privacy policy, and Upmind's IP address list for firewall whitelisting. ## Finding what you need The following provides a breakdown of the ways you can navigate through Upmind’s knowledge base: * **Use the search bar** - The knowledge base has a search function built in. Typing a keyword, feature name, or plain-language question like "add payment gateway," "cancel subscription," or "cPanel provisioning" will surface the most relevant guides. On the **Help Center,** you can open search instantly using ⌘K on a Mac or Ctrl+K on Windows, which is handy when you're in a hurry. * **Browse by section** - If you're not quite sure what to search for, the collection cards on the **Help Center** let you navigate by topic. Starting from the section that best matches what you're trying to do is often the fastest route when you're working through something unfamiliar. * **Follow the "What's Next" links** - Many guides end with a "What's Next" section pointing you toward the logical follow-up step. These are particularly helpful when you're working through a multi-step setup process and want to make sure you're not missing anything. * **Check for video tutorials** - Some guides link out to YouTube tutorials that walk you through the process visually. The Getting Started guide, for example, includes a full video walkthrough of the account setup, which can be easier to follow than text alone if you're a first-time user. ## Types of guides you'll find The documentation uses a few distinct guide formats, and knowing which type you're looking at helps set the right expectations. * **How-to guides** - These are the most common format. They walk you through a specific task from start to finish with numbered steps and screenshots. Examples include "How to Add Stripe as a Payment Method," "How to Create Staff Users," and "How to Configure Invoice Settings." These are the guides to reach for when you need to get something done. * **Concept overviews** - These step back from the step-by-step and explain how a feature or system works at a higher level. They're worth reading before you jump into configuration, because understanding what something does makes the setup steps easier to follow. Examples include "What is Provisioning?," "About Multi-Currency," and "How Does Email Work in Upmind." * **Reference guides** - These are structured, information-dense pieces designed to be consulted repeatedly rather than read start to finish. Good examples are the Email Template Twig Variables Overview, the Webhook Events documentation broken down by trigger type, and the Available Payment Gateways list. * **Quick-start guides** - These give you a condensed, opinionated path through the setup process for a specific use case. Rather than reading dozens of individual guides, a quick-start guide pulls together the most important steps in a logical order. There are dedicated guides for web hosting companies, digital agencies, and managed service providers. * **FAQ-style guides** - These are short, single-question answers written for when something isn't working as expected or you're unsure about a specific behaviour. Examples include "Why Your TLD isn't Showing in the Store" and "What If Your Product or Service is Not Showing?" ## Callout types to watch for As you read through the documentation, you'll come across highlighted callout blocks that draw your attention to something specific. These aren't decorative, but they often contain information that would be easy to miss if it were buried in a paragraph. **Note** provides background context or clarification about how something works. Read these when you want a fuller understanding of a feature before you configure it. **Tip** offers recommendations and best-practice suggestions from the Upmind team. These are worth paying attention to because they often reflect real-world usage patterns and things that commonly trip people up. **Warning** flags actions that could have unintended side effects if not handled carefully. Slow down and read these before proceeding. **Danger** highlights restrictions or limitations attached to a particular feature or action. Knowing these upfront prevents surprises after you've already made changes. Getting into the habit of reading these callouts carefully makes the documentation more useful and helps you avoid configuration mistakes that are tedious to undo. ## Staying up to date Upmind is actively developed, and the platform changes regularly. New features are added, existing features are improved, and the documentation is updated to reflect those changes. Bookmarking a couple of key pages is a good way to stay informed without having to hunt for updates. * **Changelog** is a running log of everything that's been released, updated, or fixed. Checking it periodically is a good habit, especially if you've noticed something in the platform behaving differently or if you want to know whether a feature you've been waiting for has shipped. You can find more information [here](https://features.upmind.com/changelog). * **Roadmap** shows you what the team is working on and what's coming next. You can find more information [here](https://features.upmind.com/roadmap). * **Feedback** is where you can submit feature requests and vote on suggestions from other users. Requests that get traction tend to find their way onto the roadmap, so it's worth checking whether someone else has already raised something you've been thinking about. You can find more information [here](https://features.upmind.com/). ## Still need help? The knowledge base covers the vast majority of questions that come up during setup and day-to-day use, but there will be times when you need to speak to someone directly. Upmind offers support through the Admin Area for situations where the documentation doesn't have the answer you need. To reach the support team: 1. Log in to your Upmind Admin Area. 2. Click **Help** at the top of your dashboard and click **Open a support ticket**. Help 3. If you need live chat support, Chatwoot is available. Head to the Upmind website and look for the chat widget in the bottom-right corner of the page. From there, you can start a conversation with the team directly. Chatwoot support 4. You can also email us at [support@upmind.com](mailto:support@upmind.com). For specific technical issues, the ticket system is vital and lets you describe the problem in detail so the team can investigate properly. ## A few useful links to bookmark * **Upmind Changelog** [features.upmind.com/changelog](https://features.upmind.com/changelog) * **Upmind Roadmap** [features.upmind.com/roadmap](https://features.upmind.com/roadmap) * **Upmind Marketplace** [upmind.com/marketplace](https://upmind.com/marketplace) * **Start a Free Account** [upmind.com/start](https://upmind.com/start) * **Read our Blogs** [upmind.com/blog](https://upmind.com/blog) * **Contact Support** [upmind.com/support](https://upmind.com/support) * **Upmind API Documentation** [apidocs.upmind.com](https://apidocs.upmind.com/) * **Upmind Pricing Plans** [https://upmind.com/pricing](https://upmind.com/pricing) # What Does Upmind Do? Source: https://docs.upmind.com/getting-started/what-does-upmind-do Upmind is the all-in-one business solution for any online business. Billing automation, Client management, Online Store, Customer support you name it, Upmind has it. [Upmind](https://upmind.com/) combines robust e-commerce features - client management, e-commerce, and billing - into one cloud application that becomes the core of your business operations. You can pick and choose the tools you need or supplement them with external integrations. These include: * Client management. * Billing, particularly recurring billing (subscriptions). * Payments and refunds. * Product catalogue and management. * Online ordering. * A client self-service account area. * Service desk. * Marketing tools. In addition, Upmind fits into your business with multiple integration options. For instance, you can sell and manage any product or service that has an API. Other integration options include: * Payment gateways. * Widgets that you can embed on your website. * Direct integrations with third-party tools. * Custom integrations developed by you (Upmind is API-first). * Security Protocols. * Flows for standard industry processes. ## **Service industry** Upmind isn't just about products. Its unique configuration meets the needs of the service industry, too, by focusing on an **ongoing customer relationship**. * The client can manage their own account. * Offer recurring billing. * Increase customer lifetime value, ARPU, and retain the customer. * Service desk. * Better data security through controlled account access. ## **Who is Upmind for?** We designed Upmind to be flexible enough to benefit most businesses. However, during the rollout period, we are developing industry-specific tools and functionality for Web Hosting and SAAS providers. This industry focus is really aimed at making our software more user-friendly for organisations and clients in those sectors. Read more about [Upmind for web hosts on our website](https://upmind.com/industries/web-host-billing-system). ## **What is on the roadmap?** Our [roadmap](https://features.upmind.com/roadmap/status) is substantial. In the short term, we are building out functionality for web hosting and related industries. Our roadmap also includes: * Upmind Provisioning v2. * Support improvement. * Widget integration for deep embedding in software such as WordPress. * Shipping (and integration with shipping plugins). * Stock control. * Calendars and bookings. * Open-source payment. # Create a Hosting Package Source: https://docs.upmind.com/guides-for-web-hosting-accounts/create-a-hosting-package You can map Upmind products to WHM packages and then create products. In a [previous guide](/guides-for-web-hosting-accounts/link-a-whm-account-to-upmind), we showed you how to link a WHM reseller account to your Upmind account. The next step is to create a product on Upmind. By bringing the product to the Upmind platform, you can centralise all aspects of product management, from billing to support tickets. The first step is to create a product. ## **Access the product catalogue** 1. Log in to the Upmind dashboard. 2. Access it from the dashboard by clicking on **Store Catalogue**. Store catalogue 3. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. Settings > Products and Promotions > Product Catalogue ## Creating a product 1. On the Product catalogue page, click **Add new**. 2. Click **Product** in the menu. A new panel displays. Add new product 3. On the **Add Product** panel, click the category field. 4. Select **Shared Hosting** ([Create this category](/using-upmind/product-management/how-to-create-products) if you do not have it). 5. Click **Single product**. 6. Enter a unique product name. 7. Leave the boxes checked. 8. Add a product description. (optional) 9. Click **Create**. Upmind creates a basic product. Now it's time to add details, like billing and provisioning. Create hosting package ## Adding product details You can customise the design and appearance of your package on the **Product details** page by clicking any of the menu tabs under the Manage product heading. Some tabs are optional. In this article, we show you two sections that you must complete. * Product billing * Product provisioning ### Product billing 1. Click the **Product billing** menu tab. 2. Next to the Product type heading, click the **Recurring payment** tile. Product billing 3. In the **Subscription Terms** section, click **Add new term**. 4. Select a period in the drop-down menu. In this example, we select monthly. 5. Enter a billing total in the blank field. 6. Click **Save**. c-2a.png ### Provisioning Provisioning is a pointing tool. When a user orders a web hosting package on your site, Upmind sends the order to a reseller package that you manage. 1. Click the Provisioning menu tab. 2. In the new panel, click the field under the BLUEPRINT heading. 3. Select Web Hosting in the drop-down menu. Choose provider 4. Choose the **Provider Configuration** and **Configuration Mode**. ## Package mapping The next step is to map the Upmind product to a WHM package. Scroll down the page to the Provision fields heading. There are many fields that you can customise (optional). There is one field - Package Identifier - that you must configure. 1. Click **Package Identifier**. 2. On the next page, check the box next to the Upmind hosting package. 3. Paste the name of the WHM package you are mapping. 4. Click **Save**. Paste in the WHM package name Upmind adds the package name to the **Package Identifier** field. d-3.png ## WHM package name If you don't already have a WHM package name, follow these steps to create a package and copy the name. 1. Log in to your WHM account. 2. On the left menu, expand the Packages folder. 3. Click **Add Package**. 4. Enter a unique name. 5. Scroll through the list and the options that apply. 6. Click **Add**. d-5.png ### Copying package name 1. On the left menu, click **Edit**. 2. In the list of options, select the package you want to map to Upmind. 3. Click **Edit**. 4. In the new window, copy the package name. 5. Go to the Upmind page and paste the name into the Package Identifier field. WHM automatically adds your account Username to package names. Copy package name ## Customer view The web hosting product is now live. d-7.png # Link a WHM Account to Upmind Source: https://docs.upmind.com/guides-for-web-hosting-accounts/link-a-whm-account-to-upmind Manage reseller account with Upmind. This article shows resellers how to link a WHM account to an Upmind account. After linking accounts, the next step is to create a hosting package on Upmind. That is where you name the package, configure details, and set billing terms. We describe hosting package details in a different article. [Learn more](/guides-for-web-hosting-accounts/create-a-hosting-package). ## Adding a new provision The first step is to configure a new provision. This is how you add web servers and domain providers via APIs. 1. Log in to your Upmind account. 2. Go to **Settings** > **Provision Configurations**. Settings > Provision Configurations 3. Click the **Add new configuration** button to add a WHM server account. A new panel displays. The screenshot below shows two active services (domain hosting and web hosting). Add new configuration ## Creating a provision On the new panel: 1. Enter a unique name for the service. 2. Click the **Provision Category** field and select Web Hosting. Select provision category 3. Select a provider (e.g., cPanel, PLESK, or 20i Hosting). In this example, we select cPanel. 4. Enter the hostname. 5. Enter the WHM username. 6. Enter the WHM API key. Enter details 7. Click **Create**. ## Copying WHM information To complete all the fields in the panel described above, you need to find and copy three pieces of information on your WHM account: * Hostname * WHM Username * API key To quickly locate the correct information: 1. Open your reseller account. 2. Select the package you want to add to Upmind. Select a reseller package 3. On the next page, click the button that logs in to your WHM control panel. The screenshot below shows a WHM control panel login button for one reseller website. The button on your site will likely look a bit different. Log in to WHM control panel ### Hostname 1. Go to the browser tab with the WHM control panel. 2. Copy a section of the URL. This is the hostname. Do not copy HTTPS://. Do not copy any characters after **.com.** WHM hostname 3. Go to the Upmind page and paste the value into the Hostname field. 4. Go back to the WHM page. ### WHM Username 1. On the side menu, expand the Account Information folder and click **List Accounts**. List WHM accounts 2. On the List Accounts page, locate the Username column. 3. Copy the WHM Username of your reseller account. Copy username 4. Go back to the Upmind page and paste the value into the WHM Username field. 5. Go back to the WHM page. ### API key 1. Enter **Manage API Tokens** in the search field. 2. Click the best search result. 3. On the **Manage API Tokens** page, click **Generate Token**. Generate an API key 4. On the next page, enter a token name. 5. Click **Save**. 6. Go back to the Upmind page and paste the value into the API Key field. ### Troubleshooting | Question | Answer | | ------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | | When logging into cPanel, my users get diverted to a different server hostname | This is a WHM setting for the default hostname. If you have a reseller account it is likely set by your provider. Root owners can set it under 'tweak settings' | # Understanding an Order Source: https://docs.upmind.com/guides-for-web-hosting-accounts/understanding-an-order Now you have your account ready, and you can go through the purchase and see what your customer wants. In a [previous guide](/guides-for-web-hosting-accounts/create-a-hosting-package), you created a hosting product on Upmind and mapped it to a WHM package. Now you have a live product. This article moves you through a sample product purchase so that you can understand what the customer sees and track orders on the backend of your Upmind store. ## Customer purchase A customer can: 1. Visit the Upmind store. 2. Select a hosting package. 3. Enter their domain name. Enter domain name 4. Go to the checkout and complete the transaction. ## Upmind backend 1. Log in to your Upmind account. 2. Click **Products & Services** on the left menu. 3. Click the **Subscriptions** menu tab. The **Products & Services** page shows new sales. In this example, the page shows one hosting subscription that requires activation. Hosting package that requires activation 4. Click the awaiting activation link. # How to Link Ascio to Upmind Source: https://docs.upmind.com/how-to-link-ascio-to-upmind Integrate Ascio domain registrar with Upmind. [Ascio](https://www.ascio.com/) is a wholesale domain registrar offering access to a wide range of TLDs, making it a popular choice for web hosts and resellers managing domain portfolios at scale. ## Getting your TLD configuration Ascio requires you to specify the TLDs you want to enable during setup. To find which TLDs are available under your Ascio account, log in to your Ascio dashboard and refer to your reseller agreement or contact Ascio support to confirm the list of TLDs provisioned for your account. ## Linking Ascio to Upmind 1. In Upmind, navigate to **Host Control** > **Domain Names** > **Registrars**. 2. Click on **Ascio**. Host Control > Domain names > Registrars 3. Enter a **Name**. This is not visible to clients, so we recommend using **Ascio** unless you have multiple accounts you want to label differently. Enter name 4. Enter the **Username** and **Password** (contact Ascio support to identify which credentials to use). 5. Click **Create**. Enter credentials 6. Verify the information on the [Domain Settings](https://docs.upmind.com/for-web-hosts/domain-names/how-to-input-domain-settings) page. That's it! Your account is now linked. You can now create a TLD available for sale by following the guide on [how to create TLDs](https://docs.upmind.com/for-web-hosts/domain-names/how-to-add-a-tld). # How to Manage Client Notification Preferences Source: https://docs.upmind.com/how-to-manage-client-notification-preferences Control which notifications are sent to each of a client's email addresses. ## Managing notifications per email address You can assign specific notification preferences to each email address on a client's account, so the right updates go to the right contact. **To set this up:** 1. Go to **Clients** and open the client's record. 2. Navigate to **Settings** > **Emails**. 3. Add a new email address. The address must be **verified** before notification preferences can be configured. Settings > Emails > Add new 4. Once verified, click the **three dots** next to the email address and select **Manage Notifications**. Click manage notifications 5. Choose which notifications that address should receive across the following categories: * **Billing** — Invoices, payment confirmations, and reminders. * **Marketing** — Promotional and product updates. * **Support** — Ticket activity and responses. * **Service Updates** — Subscription and provisioning notifications. Manage notifications ## Client area From the client panel, go to **My Account** > **Profile** > **Add new** to add a new email. My Account > Profile > Add new Click the **three dots** next to the email address and select **Manage Notifications**. Manage notifications ## Managing notifications from an email link Notification recipients can manage their preferences or unsubscribe directly from a link included in any notification email, without needing to log in. Manage subscription notifications Preferences available from the email link cover updates across billing, support, and service activity. Essential system notifications remain on by default and cannot be disabled. Notification preferences # Information Security Source: https://docs.upmind.com/legal-and-information/information-security Upmind’s information security. Information security is of fundamental importance to what we do at Upmind. We are proud to be ISO27001 certified. Our trust policies can be found on our trust website at [https://trust.upmind.com](https://trust.upmind.com) # Privacy Policy Source: https://docs.upmind.com/legal-and-information/privacy-policy Upmind's privacy policy. At Upmind, we do not have access to your customer data, and we do not collect any data on your own Upmind instance. If you request that our support team access your Upmind instance to assist with debugging an issue, you can temporarily enable our access in your admin area and see a log of everything we do. We ask that you read this privacy policy carefully as it contains important information on who we are, how and why we collect, store, use, and share personal information, your rights in relation to your personal information, and how to contact us and supervisory authorities in the event you have a complaint. This website's privacy policy is divided into the following sections: * Who we are * Our website * Our collection and use of your personal information * Transfer of your information out of the EEA * Cookies and similar technologies * Marketing * Your rights * Keeping your personal information secure * How to complain * Changes to this website's privacy policy * How to contact us ## **Who we are** Upmind is operated by Upmind Automation Limited, a company registered in England and Wales. Our company registration number is 11233733, and our registered office is at 5 Sydney Street, Chelsea, London, United Kingdom, SW3 6PU. We provide client management and billing software. We collect, use, and are responsible for certain personal information about you. When we do so, we are regulated under the General Data Protection Regulation, which applies across the European Union (including in the United Kingdom), and we are responsible as ‘controller’ of that personal information for the purposes of those laws. ## **Our website** This section relates to your use of our website, `` It is not related to your Upmind app. Throughout our website, we may link to other websites owned and operated by certain trusted third parties to make additional products and services available to you. These other third-party websites may also gather information about you in accordance with their own separate privacy policies. For privacy information relating to these other third-party websites, please consult their privacy policies as appropriate. ## **Our collection and use of your personal information** We collect personal information about you when you access our website, register with us, contact us, send us feedback, add users and features to your Upmind instance, post material to our website, and complete customer surveys via our website. We collect this personal information from you either directly, such as when you register with us, contact us, or purchase products or services via our website, or indirectly, such as your browsing activity while on our website (see ‘Cookies’ below). The personal information we collect about you depends on the particular activities carried out through our website. This information includes: * Your name, address, and contact details. * Your payment details in the form of gateway tokens. We do not store card numbers or bank details as part of our payment system. * Your location, IP address, browser information & referrer. * Details of any feedback you give us by phone, email, post, or via social media. * Information about the services we provide to you. * Your account details, such as username, login details, and usage statistics. * Your website information and domain information. * Any pre-sales, billing, and support communications. * Information on where you found us. We use this personal information to: * Create and manage your account with us. * Verify your identity. * Provide goods and services to you. * Customise our website and its content to your particular preferences. * Assist in transfers and migrations from other providers to us. * Notify you of any changes to our website or to our services that may affect you. * Provide and review customer support. * Co-operate with internet governance and regulatory authorities when required. * Improve our services. * Prevent fraud. Our services are not available to those aged 17 or under. This website is not intended for use by children, and we do not knowingly collect or use personal information relating to children. ## **Our legal basis for processing your personal information** When we use your personal information, we are required to have a legal basis for doing so. There are various legal bases on which we may rely, depending on what personal information we process and why. The legal bases we may rely on include: * Consent: Where you have given us clear consent for us to process your personal information for a specific purpose. * Contract: Where our use of your personal information is necessary for a contract we have with you, or because you have asked us to take specific steps before entering into a contract. * Legal obligation: Where our use of your personal information is necessary for us to comply with the law (not including contractual obligations). * Legitimate interests: Where our use of your personal information is necessary for our legitimate interests or the legitimate interests of a third party (unless there is a good reason to protect your personal information which overrides our legitimate interests). ## **Further information: The personal information we collect, when and how we use it** For further details on when we collect personal information, what we collect, and how we use it, please read the following sections: | **When information is collected** | **What information do we ask for** | **How and why we use your information** | | ------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | When you register with us, or when you update your profile details with us. | Contact details: Your name, company name, email address, phone number, and address. | We ask for this:

- To create and manage your account with us.
- To communicate with you about your account.

We rely on consent and Legitimate Interest as the lawful basis for collecting and using your personal information. Our legitimate interests are the development and marketing of our products and services. We will keep this information until you request full deletion of your account. We are not able to provide our services if this information is not provided. | | When you browse our website or when you visit our website from a search engine or a paid advertisement. | Your referrer, browsing history, locations, and search query. | We collect this information to deliver, improve, and update the services that we provide. The data is used to improve and optimise the services; diagnose problems with and identify any security risks, errors, or required improvements; detect and prevent fraud and abuse of our services and systems; collect aggregate statistics about the use of the services; and understand and analyse your use of the services. We rely on Legitimate Interest for processing the personal data as it is necessary to maintain a high quality service for you and protect against fraud and misuse. We may share this information with fraud prevention agencies in order to review orders for security. We will keep this information until you request full deletion of your account. | | When you place an order. | Your IP address and order details. | As an online company, we are vulnerable to online fraud. We use this information in order to run your order data through various fraud checks, which return a score. That score allows us to analyse your order and assess the likelihood of fraudulent activity. We rely on legitimate interests for processing this data to protect against fraudulent activity. We will keep this information until you request full deletion of your account. | | When you create a support request via ticket, live chat, or email. | We keep a log of all communication history, with timestamps and your location. | We collect this data in order to:
- Offer you high-quality customer support and track trouble tickets.
- Identify issues with the hosting platform.
- Provide quality assurance on top of trouble tickets.

We rely on legitimate interest in order to process this data. We will keep this information until you request full deletion of your account. | | When you hit an uncaught JavaScript error. | No personally identifiable information. | We collect this data in order to identify issues with our application. | | As you browse the app. | No personally identifiable information. Anonymous usage data. | To help us identify any errors and improve our application. | **If we receive unsolicited personal information, we will endeavour to:** ## **Who we share your personal information with** We will never sell your personal information or data to a third party. However, we may share your personal data with affiliated companies or with trusted third parties and service providers with whom we partner in order to provide you with our services. These services include: * processing card payments; * providing sales, customer service, and technical support; * performing analysis of our services and customers’ demographics; * communicating with you, such as by way of email or survey delivery; * fraud prevention analysis. We only share your personal data as necessary for any third party to provide the services as requested or as needed on our behalf. For instance, if it is sufficient for us to share only a userid rather than an email, this is the approach taken. These third parties (and any subcontractors) are subject to strict data processing terms and conditions and are prohibited from utilising, sharing, or retaining your personal data for any purpose other than as they have been specifically contracted for (or without your consent). Some of those third-party recipients may be based outside the European Economic Area; for further information, including on how we safeguard your personal data when this occurs, see **Transfer of your information out of the EEA**. We will share personal information with law enforcement or other authorities if required by applicable law. We will not share your personal information with any other third party. ## **App data collection** Within the Upmind application, user data may be shared with affiliated companies or trusted third parties and service providers, for the following reasons: * Fraud prevention and scanning. * User help guides. * Feature tracking and requests. * Usability improvements. ## **Transfer of your information out of the EEA** We may transfer your personal information to the following, which are located outside the European Economic Area (EEA), as follows: * To fraud prevention companies in the **United States of America** who provide us with fraud risk analysis. These include FraudLabsPro and MaxMind. * To Indonesia, where we have a support team. * Limited information, such as Usernames and Email Addresses, to Featurebase, so we can update you on app improvements and bug fixes. * To CampaignMonitor, for sending you announcements and updates. Such countries do not have the same data protection laws as the United Kingdom and the EEA. While the European Commission has not given a formal decision that such countries provide an adequate level of data protection similar to those which apply in the United Kingdom and EEA, any transfer of your personal information will be subject to appropriate and suitable relevant safeguards (as permitted under GDPR Article 46) that are designed to help safeguard your privacy rights and give you remedies in the unlikely event of a misuse of your personal information. We will not otherwise transfer your personal data outside of the EEA or to any organisation (or subordinate bodies) governed by public international law or which is set up under any agreement between two or more countries. ## **Cookies and other tracking technologies** A cookie is a small text file that is placed onto your device (e.g., computer, smartphone, or other electronic device) when you use our website. We use cookies on our website and single pixel gifs on some emails. These help us recognise you and your device and store some information about your preferences or past actions. For further information on cookies and single pixel gifs, our use of these devices, when we will request your consent before placing them, and how to disable them, please see our Cookie Policy. ## Marketing We would like to send you information about our products and services and special offers, which may be of interest to you. Where we have your consent, or it is in our legitimate interests to do so, we may do this by post, email, telephone, text message (SMS), or automated call. If you have previously agreed to being contacted in this way, you can unsubscribe at any time by adjusting your settings in your Upmind admin area. It may take up to 7 days for this to take place. For more information on your rights in relation to marketing, see ‘Your rights’ below. ## **Your rights** Under the General Data Protection Regulation, you have a number of important rights free of charge. In summary, those include rights to: * Fair processing of information and transparency over how we use your personal information. * Access to your personal information and to certain other supplementary information that this Privacy Notice is already designed to address. * Require us to correct any mistakes in your information, which we hold. * Require the erasure of personal information concerning you in certain situations. * Receive the personal information concerning you which you have provided to us, in a structured, commonly used and machine-readable format, and have the right to transmit those data to a third party in certain situations. * Object at any time to the processing of personal information concerning you for direct marketing. * Object to decisions being taken by automated means that produce legal effects concerning you or similarly significantly affect you. * Object in certain other situations to our continued processing of your personal information. * Otherwise restrict our processing of your personal information in certain circumstances. For further information on each of those rights, including the circumstances in which they apply, see the Guidance from the UK Information Commissioner’s Office (ICO) on individuals’ rights under the General Data Protection Regulation. If you would like to exercise any of those rights, please: * Contact us through your Upmind app or via email. * Let us have enough information to identify you, e.g., your account number, user name, and registration details. * Let us have proof of your identity and address (a copy of your driving licence or passport and a recent utility or credit card bill). * Let us know the information to which your request relates. ## **Keeping your personal information secure** We have appropriate security measures in place to prevent personal information from being accidentally lost, used, or accessed in an unauthorised way. We limit access to your personal information to those who have a genuine business need to know it. Those processing your information will do so only in an authorised manner and are subject to a duty of confidentiality. We also have procedures in place to deal with any suspected data security breach. We will notify you and any applicable regulator of a suspected data security breach where we are legally required to do so. ## **How to complain** We hope that we can resolve any query or concern you raise about our use of your information. The General Data Protection Regulation also gives you the right to lodge a complaint with a supervisory authority, in particular in the European Union (or European Economic Area) state where you work, normally live, or where any alleged infringement of data protection laws occurred. The supervisory authority in the UK is the Information Commissioner, who may be contacted at `` or telephone: \[0303 123 1113]. ## **Changes to this website's privacy policy** We may change this website's privacy policy from time to time. # Terms and Conditions Source: https://docs.upmind.com/legal-and-information/terms-and-conditions Upmind's terms and conditions. ## **Section A. Terms** These are the terms and conditions on which Upmind Automation Limited (“Upmind”) supplies services to you. All terms are effective from the date of your electronic submission of the order. Please read these terms carefully before you submit your order to us. These terms tell you who we are, how we will provide services to you, how you and we may change or end the contract, what to do if there is a problem, and other important information. If you do not understand any of the terms of this Agreement, please [contact us](https://upmind.com/about/sales-and-support) before using the Services. You may not access or use any Services unless you agree to abide by all of the terms and conditions in this Agreement. Upmind may at any time, at its sole and absolute discretion, change or modify this Agreement and any policies or agreements that are incorporated herein. Any changes or modifications will take immediate effect. Your continued use of our software and our services will constitute your acceptance of the amended Agreement. We will notify you by email 30 days in advance of any changes to our services. The obligation is upon you to ensure that the email you have provided to us is up to date. We accept no liability or responsibility for your failure to receive any email communications from us if such failure results from an inaccurate email address. ## **Section B. About us and how to contact us** We are Upmind Automation Limited, a company registered in England and Wales. Our company registration number is 11233733, and our registered office is at 5 Sydney Street, Chelsea, London, United Kingdom, SW3 6PU. We are in the business of supplying software applications and related services to service businesses, including, among other things, client management, billing management, subscription tools, service desk, and order management. You can contact us through your Upmind admin account using our secure interface (click your profile on the bottom right, then click `Upmind Tickets`). If we have to contact you, we will do so through your Upmind account or by writing to you at the email address you have provided to us. Please note we will never ask for your password. If you are unsure of the identity of a caller, please contact us directly. ## **Section C. Our contract with you** ### **Account registration** In order to access and use the Service, you will be asked to create an Account. You warrant to Upmind Automation Limited that all information submitted in order to set up and utilise your Account is true, accurate, and complete. You must provide and maintain accurate, current, and complete Account Information. Upmind will make the Service available during the applicable Subscription Term, solely for your own internal business purposes and in accordance with the Documentation. ### **Eligibility** In order to open and maintain an Upmind account, you hereby represent, warrant, and covenant that you have the legal capacity (including, without limitation, being of sufficient age) to enter into contracts under the law of the jurisdiction in which you reside. ### **Credentials** You are solely responsible for activities on your Account, whether authorised by you or not. You must keep your login details secure. You must notify us immediately of any unauthorised use of your account or security breach. Your account is for your use only. Only you can log in to your account. You must not share your logins. Additional team members can be added to your accounts as separate staff. You will be responsible and liable for all uses of the Service under your Upmind account, including, without limitation, compliance with all applicable laws, regulations, and third-party terms. You further agree that Upmind will not be liable for any cost, loss, damages, or expenses arising out of a failure by you to maintain the security of your Upmind Account or your Third-Party Login credentials. ### **Accurate information** When prompted, you shall provide the Company with accurate and complete billing information, including full name, address, state, zip code, telephone number, and valid payment method information. ## **Section D. Payment and cancellation** #### **Payment** Upmind is a paid service. You will be billed in advance on a recurring and periodic basis (e.g., monthly or annually), depending on the type of Subscription plan you select when purchasing the Subscription. At the end of each period, Your Subscription will automatically renew under the exact same conditions unless you cancel it or we cancel it. The price of the service will be the price indicated on the order pages when you placed your order. We take all reasonable care to ensure that the price of the service advised to you is correct. If applicable, VAT will be added to the price of your order. We will pass on changes in the rate of VAT. If the rate of VAT changes between your order date and the date we supply the service, we will adjust the rate of VAT that you pay, unless you have already paid for the product in full before the change in the rate of VAT takes effect. We reserve the right to alter the prices advertised on our website and fees at any time. We will provide written notice of any changes via email to the email address provided by you to us when registering your account. In most cases, changing the price on the website for new customers will not affect the price for existing customers. If your contract is for a fixed term, the price alteration will take effect at the end of the current term and at the time of renewal. Your continued use of the Service after the Subscription fee change comes into effect constitutes your agreement to pay the modified Subscription fee amount. We accept payment by most major credit and debit cards, UK direct debit, and PayPal. You warrant that you are lawfully authorised to make payment using the payment card or facility used. In the event that you are not the named cardholder, you will indemnify us in the event that the cardholder or issuer declines any transaction for payment, including our costs in recovering the outstanding amount due. #### **Free trials** We may, at our sole discretion, offer a Subscription with a Free Trial for a limited period of time. You may be required to enter your billing information in order to sign up for the Free Trial. You will not be charged by the Company until the Free Trial has expired. There is no obligation to continue after the Free Trial period, and our standard cancellation policy (see below) applies. #### **Refunds** Except when required by law, paid Subscription fees are non-refundable. Certain refund requests for Subscriptions may be considered by the Company on a case-by-case basis and granted at the sole discretion of the Company. Any refund will be processed within 7 working days of receipt. If your account is found to be supporting illegal activity, illegal MP3 files, pirated software, hacker programs, warez programs, or any other illegal files, your account will be suspended immediately. We reserve the right to terminate your account, and no refunds will apply. #### **Ending your contract** We will supply the services to you until the subscription expires, or you end the contract, or we end the contract by written notice to you. You may terminate your contract with us by cancelling the service in advance of the renewal date (by 11:59 pm GMT on the day before renewal is due) through your admin profile. You will not receive a refund for the fees you already paid for your current Subscription period, and you will be able to access the Service until the end of your current Subscription period. We may end your contract if: * You do not make any payment to us when it is due. * You do not, within a reasonable time of us asking for it, provide us with information that is necessary for us to provide the services. We may withdraw the services for any reason. We may write to you to let you know that we are going to stop providing the services. We will let you know at least 30 days in advance of our stopping the supply of the services and will refund any sums you have paid in advance for services which will not be provided. #### **Temporary service suspension** We may have to suspend the supply of a service to: * deal with technical problems or make minor technical changes; * update the product to reflect changes in relevant laws and regulatory requirements; * make changes to the product as requested by you or notified by us to you (see Clause number); * when required by law; * where we believe that you are in breach of any material term of this Agreement; * to resolve any third-party claims or actions; * to avoid financial loss or legal liability. We will contact you in advance to tell you we will be suspending the supply of the services, unless the problem is urgent or an emergency. If we have to suspend the services for longer than 24 hours in any 30-day period, we will adjust the price so that you do not pay for products while they are suspended, save where the suspension is as a result of your breach of this Agreement. If you do not pay us for our services when you are supposed to, we may suspend the supply of the services until you have paid us the outstanding amounts. We will contact you to tell you we are suspending the supply of the services. As well as suspending the services, we can also charge you interest on your overdue payments. Once payment has been made in accordance with these terms, we will use reasonable endeavours to ensure that the service is restored to you within 24 hours. If your service has been suspended, is cancelled, or goes overdue, we may no longer retain a copy of your data. ## **Section E. What you use Upmind for** ### **You know your business best** Upmind is software designed to help you run your business, as detailed on our [website](https://upmind.com/). You may only use Upmind for legitimate transactions with your customers and for assistance in running your business. All other purposes are expressly forbidden. You know your customers better than we do, and you are responsible for your relationship with them. Upmind is not responsible for the products or services you publicise or sell, or that your customers purchase using our software. You affirm that you are solely responsible for the nature and quality of the products or services you provide, and for delivery, support, refunds, returns, and any other ancillary services you provide to your customers. Upmind provides Services to you, but we have no way of knowing if any particular purchase, sale, donation, order, or other transaction is accurate or complete, or typical for your business. You are responsible for knowing whether a transaction initiated by your customer is erroneous (such as a customer purchasing one item when they meant to order another) or suspicious (such as unusual or large purchases, or a request for delivery to a foreign country where this typically does not occur). If you are unsure if a transaction is erroneous or suspicious, you agree to research the transaction and, if necessary, contact your customer before fulfilling or completing the transaction. You are solely responsible for any losses you incur due to erroneous or fraudulent transactions in connection with your use of Upmind. You are responsible for assessing the security requirements of your business, selecting and implementing security procedures and controls appropriate to mitigate your exposure to security incidents. We may provide features and tools to help ensure your security. However, your responsibility for securing your business is not diminished by any Security Controls that we provide or suggest, and if you believe that the Security Controls we provide are insufficient, then you must separately implement additional controls that meet your requirements. While we may provide or suggest Security Controls, we cannot guarantee that you or Customers will never become victims of fraud. Any Security Controls we provide or suggest may include processes or applications developed by Upmind, its affiliates, or other companies. You are solely responsible for losses you incur from the use of lost or stolen payment credentials or accounts by fraudsters who engage in fraudulent Transactions with you. Upmind is not liable or responsible to you, and you waive any right to bring a claim against us for any losses that result from the use of lost or stolen credentials or unauthorised use or modification of your Upmind Account, unless such losses result from Upmind's wilful or intentional actions. Further, you will fully reimburse us for any losses we incur that result from the use of lost or stolen credentials or accounts. We may also provide you with Data regarding the possibility or likelihood that a Transaction may be fraudulent. We may incorporate any subsequent action or inaction by you into our fraud model, for the purpose of identifying future potential fraud. You understand that we provide this Data to you for your consideration, but that you are ultimately responsible for any actions you choose to take or not take in relation to such Data. Although regular backups of Content are performed, Upmind does not guarantee that there will be no loss or corruption of data. Corrupt or invalid backup points may be caused by, without limitation, Content that is corrupted prior to being backed up or that changes during the time a backup is performed. Upmind will provide support and attempt to troubleshoot any known or discovered issues that may affect the backups of Content. But you acknowledge that the Company has no liability related to the integrity of Content or the failure to successfully restore Content to a usable state. ### **What you cannot use Upmind for** Within the Upmind application, you can upload content and images. It is your sole responsibility to ensure that the content and materials on any website owned or operated by you contain material that you have created or have permission to use. It is your sole responsibility to resolve any dispute involving Copyright or Intellectual Property Rights associated with your website or web service. You agree to indemnify Upmind against all costs, including legal costs, of defending any claim against us from any third party regarding your use of copyright or intellectual property rights in relation to any claims made against you or us worldwide. You must not use your Upmind service to promote or distribute any material or content that is illegal (under any current or future legislation) in either the UK or any other jurisdiction in which your website or web service is operational. You should be aware that the internet is a global communications network, and what may be legal in the UK may be illegal elsewhere, and leave you liable to prosecution in another country. We reserve the right to undertake an investigation of content services if potential abuse is brought to our attention and to suspend service in full or partially at any time and for any reason. Any accounts found to be abusive, contain illegal content, or otherwise break our terms of service will be liable for immediate termination. Your Upmind instance **must not** be used to sell, contain, or promote: * 'Hateful' material or content that seeks to incite hate. * Images, videos, depictions, or descriptions of pornography that are unlawful or which is deemed to be distasteful at our sole discretion. * 'Warez', copyrighted music/videos, or links to such content. Sites must conform to recognised international copyright law. In the event that we receive a complaint regarding trademark/brand infringement, we have the right to suspend service until the issue is resolved to our satisfaction. We undertake to take any action required under the provisions of the Regulation of Investigatory Powers Act and will fully cooperate with the appropriate UK authorities. We provide the ability to send email. This is designed for day-to-day communication needs. We have a zero-tolerance policy against spam, and the sending of bulk, unsolicited email is prohibited at all times. Customers who abuse the email service may have their accounts suspended, terminated, or blocked. You agree to the following: * not to send emails that might cause annoyance, inconvenience, or anxiety to a recipient; * not to send any emails likely to cause distress or any material which is offensive, indecent, obscene, menacing, or in any way unlawful; * to have a clear opt-out policy in all newsletter communications; * not to use our mail services or network to send email to any user who does not wish to receive it; * not to use our mail services or network to send unsolicited email, in bulk (commonly known as 'spam') or individually; * not to use our mail services or network with the intent to deprive others of service ('mail bomb'); * not to use false mail headers or alter the headers of mail messages in such a way as to conceal the identity of the sender; * not to use any email address that you are not authorised to use; * to take full responsibility for your own email reputation; * not to take any action that would put you or us in breach of obligations under the General Data Protection Regulations or the Data Protection Act 2018. ## **Section F. Limitation of liability** ### **Service warranty: Indemnification** If you are a paying subscriber to the Service, Upmind warrants to you that we will provide the Service during the Subscription Term substantially as described in the Documentation under normal use. In the event of any breach of this warranty, your exclusive remedy will be our reperformance of the deficient Service or, if we do not reperform such deficient Service as warranted, you may terminate your Upmind Account as set forth above, and we will refund a prorated portion of your prepayment. You must notify us in writing of any warranty deficiency within ten (10) days from receipt of the deficient Service in order to receive the foregoing warranty remedy. Notwithstanding any damages that you might incur, the entire liability of the Company and any of its suppliers under any provision of these Terms and your exclusive remedy for all of the foregoing shall be limited to twice the fees paid by you for the services in relation to which your claim arises during the 12-month period prior to the claim. To the maximum extent permitted by applicable law, in no event shall the Company or its suppliers be liable for any special, incidental, indirect, or consequential damages whatsoever (including, but not limited to, damages for loss of profits, loss of data or other information, for business interruption, for personal injury, loss of privacy arising out of or in any way related to the use of or inability to use the Service, third-party software and/or third-party hardware used with the Service, or otherwise in connection with any provision of this Terms), even if the Company or any supplier has been advised of the possibility of such damages and even if the remedy fails of its essential purpose. Some states do not allow the exclusion of implied warranties or limitation of liability for incidental or consequential damages, which means that some of the above limitations may not apply. In these states, each party's liability will be limited to the greatest extent permitted by law. ### **As IS and AS Available Disclaimer** The Service is provided to You "AS IS" and "AS AVAILABLE" and with all faults and defects without warranty of any kind. To the maximum extent permitted under applicable law, the Company, on its own behalf and on behalf of its Affiliates and its and their respective licensors and service providers, expressly disclaims all warranties, whether express, implied, statutory or otherwise, with respect to the Service, including all implied warranties of merchantability, fitness for a particular purpose, title and non-infringement, and warranties that may arise out of course of dealing, course of performance, usage or trade practice. Without limitation to the foregoing, the Company provides no warranty or undertaking, and makes no representation of any kind that the Service will meet Your requirements, achieve any intended results, be compatible or work with any other software, applications, systems or services, operate without interruption, meet any performance or reliability standards or be error free or that any errors or defects can or will be corrected. Without limiting the foregoing, neither the Company nor any of the company's providers makes any representation or warranty of any kind, express or implied: (i) as to the operation or availability of the Service, or the information, content, and materials or products included thereon; (ii) that the Service will be uninterrupted or error-free; (iii) as to the accuracy, reliability, or currency of any information or content provided through the Service; or (iv) that the Service, its servers, the content, or e-mails sent from or on behalf of the Company are free of viruses, scripts, trojan horses, worms, malware, timebombs or other harmful components. Some jurisdictions do not allow the exclusion of certain types of warranties or limitations on applicable statutory rights of a consumer, so some or all of the above exclusions and limitations may not apply to you. But in such a case, the exclusions and limitations set forth in this section shall be applied to the greatest extent enforceable under applicable law. We do not exclude or limit in any way our liability to you where it would be unlawful to do so. This includes liability for death or personal injury caused by our negligence or the negligence of our employees, agents, or subcontractors, or for fraud or fraudulent misrepresentation. We shall not be responsible for any claimed damages, including incidental and consequential damages, which may arise from our servers going offline or being unavailable for any reason whatsoever. Furthermore, we shall not be responsible for any claimed damages, including incidental or consequential damages, resulting from the corruption or deletion of any data; loss of service or any costs incurred due to a configuration or service issue resulting from our provided services. All damages shall be limited to the immediate termination of service. We are not liable for business losses. If you use the products for any commercial, business, or resale purpose, we will have no liability to you for any loss of profit, loss of business, business interruption, or loss of business opportunity. ## **Section G. Feedback** You agree to make us aware via a support ticket of any security issues you may become aware of within the Upmind application. You assign all rights, title, and interest in any Feedback You provide the Company. If, for any reason, such assignment is ineffective, you agree to grant the Company a non-exclusive, perpetual, irrevocable, royalty-free, worldwide right and licence to use, reproduce, disclose, sub-license, distribute, modify, and exploit such Feedback without restriction. If you have any concern or dispute about the Service, you agree to first try to resolve the dispute informally by contacting the Company. ## **Section H. Assignability, severability, and governance** You need our consent to transfer your rights to someone else (except that you can always transfer our guarantee). You may only transfer your rights or your obligations under these terms to another person if we agree to this in writing. Nobody else has any rights under this contract. This contract is between you and us. No other person shall have any rights to enforce any of its terms. If a court finds part of this contract illegal, the rest will continue in force. Each of the paragraphs of these terms operates separately. If any court or relevant authority decides that any of them are unlawful, the remaining paragraphs will remain in full force and effect. Even if we delay in enforcing this contract, we can still enforce it later. If we do not insist immediately that you do anything you are required to do under these terms, or if we delay in taking steps against you in respect of your breaking this contract, that will not mean that you do not have to do those things, and it will not prevent us from taking steps against you at a later date. For example, if you miss a payment and we do not chase you, but we continue to provide the products, we can still require you to make the payment at a later date. These terms are governed by English law, and you can bring legal proceedings in respect of the products in the English courts. If you live in Scotland, you can bring legal proceedings in respect of the products in either the Scottish or the English courts. If you live in Northern Ireland, you can bring legal proceedings in respect of the products in either the Northern Irish or the English courts. ## **Section I. Intellectual property** The Service and its original content (excluding Content provided by You or other users), features, and functionality are and will remain the exclusive property of Upmind and its licensors. The Service is protected by copyright, trademark, and other laws of both the Country and foreign countries. Our trademarks and trade dress may not be used in connection with any product or service without the prior written consent of the Company. ## **Section J: Our security and data practices** ### **Your data** We only access data if required to support you with the Services. You must enable remote access if you would like us to provide support. We will not access your data other than as described in this agreement. ### **Security controls** We have implemented and maintain physical, technical, and administrative security measures designed to protect the Service and Customer Content from unauthorised access, destruction, use, modification, or disclosure. This includes maintaining ISO27001 certification. This includes a formal system of security training for Upmind personnel and at least annual testing. We meet at a minimum Maturity Level One of the Essential ‘Eight Maturity Model’ published by the Australian Signals Directorate. Upon request, we will provide customers on our Enterprise plan with information relating to our Data Security Capability and Security Controls that we deem reasonably required to assess the sufficiency of the Data Security Capability and Security Controls. For enterprise clients, we will complete reasonable security questionnaires and respond to any reasonable associated information requests to assist you in understanding Upmind’s Data Security Capability and Security Controls. With 10 days’ notice, customers on our Enterprise plan may, at their sole cost, externally audit and assess our security capabilities in order to confirm compliance. We will reasonably assess any security controls that you may request that we adopt and integrate them if we deem them to be reasonable and practicable. ## **Section K: Insurance** We will maintain at a minimum the following insurance: | **Cover** | **Indemnity Limit** | | ---------------------- | ------------------- | | Professional Indemnity | £5,000,000 | | General Liability | £5,000,000 | | Employers' Liability | £5,000,000 | | Products Liability | £5,000,000 | | Pollution Liability | £5,000,000 | | Public Liability | £5,000,000 | # Upmind IP Addresses Source: https://docs.upmind.com/legal-and-information/upmind-ip-addresses Whitelist IP addresses. Sometimes 3rd-party platforms require IPs to be whitelisted before they can be accessed. You also may want to lock down servers or payment gateways. Upmind's outgoing IPs, in case you need to whitelist them for an integration, are: ### **European (primary) cluster -- default** * 91.240.229.1 * 91.240.229.2 * 91.240.229.3 # Admin Area Dashboard Source: https://docs.upmind.com/managing-your-account/admin-area-dashboard Detailed overview for monitoring your business health and activity. ## Quick stats overview The main dashboard shows key metrics to quickly check your business performance. These stats can be sorted by currency and cover both all-time totals and recent activity within chosen date ranges. Quick stats * **Total Clients (All Time)**: Displays the total number of clients registered in Upmind. This tracks your overall customer growth since the beginning. * **Current MRR (Today)**: Monthly Recurring Revenue (MRR) reflects the total subscription revenue expected for the current month as of today. It gives a quick view of financial health and recurring income trends. * **Active Tickets (All Time)**: Counts all support tickets currently open. Monitoring active tickets allows you to understand ongoing client issues and helps manage workload. * **Overdue Invoices (All Time)**: Shows the number of invoices past their due date and unpaid. This helps identify outstanding payments to be addressed quickly. * **Total Cash (Last 30 Days)**: Indicates total cash collected in the chosen currency during the last 30 days, adjustable by calendar. Useful for tracking recent income and revenue trends. * **Paid Invoices (Last 30 Days)**: Counts invoices fully paid within the selected period. This indicates payment collection effectiveness. * **New Clients (Last 30 Days)**: Shows how many new clients were added within the last 30 days. It indicates growth rate and acquisition success. * **Total Orders (Last 30 Days)**: Counts all orders placed in the chosen date range. Useful for tracking sales volume. You can adjust the date range of certain stats to find particular values. Click to select range Select range ## Orders graph A visual line chart showing the number of orders on the vertical axis, plotted against dates on the horizontal axis, within the set calendar range. The graph visualises orders by value of the currency selected. This graphical overview provides quick insight into sales trends. Orders graph ## Invoice graph A line chart visualising invoice amounts (vertical axis) over time (horizontal axis). Users can adjust the date range using the calendar, and the value is given according to the chosen currency. This helps spot billing peaks, seasonal trends, or irregularities in invoice issuance. Invoice graph ## Activity stream The activity displays recent events on the Upmind platform, showing system and user actions in order. Users can click on items to view the full activity log with detailed raw event data. Activity stream ### Some of the common activity events logged: * Staff login/logout * Invoice generated * Invoice cancelled * Transaction created or updated * Payment reverted or refunded * Subscription created, renewed, or cancelled * Contract product activated, suspended, or terminated * Retention status changed * Customer added or updated * Support ticket opened, replied, closed, or assigned * Price or discount updates on products * Import or export actions executed * Domain purchase or transfer initiated * Promo codes created or applied * Staff or admin account created/updated/deleted * Brand settings modified * API token created, updated, or revoked * Email template created or modified * Automated workflows triggered * Refunds processed * Credit added or redeemed ### Activity log details: * Event description * Date and time * Actor (system, staff user with email) * Email correspondence history linked to event, filterable by subject and date Activity log record # Getting Help from Upmind Source: https://docs.upmind.com/managing-your-account/getting-help-from-upmind If you're stuck, have questions, or need help of any kind, Upmind's dedicated support team is always available to help you. We try to make Upmind as user-friendly as possible, but you can also get help from us. Click on Help 1. In your admin area, click **Help** in the top right at any point to find suggested guides. 2. If you need to raise a support ticket with us, you can also do this. Open support ticket 3. You can also reach tickets by clicking on your name on the bottom left > **Manage My.Upmind** > **Support.** Manage My.Upmind > Support ## Enabling remote assistance If you raise a support ticket where you need help, by default, we cannot log into your brand or access any of your settings or data. 1. Go to your account > Click **Manage My.Upmind**. Enable Remote Access 2. You can enable remote assistance under the support settings. You can toggle this on at any time and set a time limit. We are not able to turn this on on your behalf. ## Knowledge base You can find the **Upmind Knowledge Base** under the `Help` menu. Scroll down slightly to access related guides, articles, and useful setup tips within our extensive knowledge base. Also, you can access the guide by visiting [this link](https://docs.upmind.com/getting-started/how-to-use-upminds-knowledge-base). Knowledge Base # How to Change Your Admin Password Source: https://docs.upmind.com/managing-your-account/how-to-change-your-admin-password Follow these steps to change your Upmind account password. You can also enable two-factor authentication to add a layer of security to your Upmind e-commerce account. This article shows you how to change the password for your Upmind e-commerce account. You also learn how to enable two-factor authentication, an optional Upmind feature. ## **Changing a password** 1. Log in to your Upmind admin dashboard. 2. Click the logo at the bottom of the left pane. Click logo 3. Click **My Account**. 4. Click the **Security** tab under the avatar. My Account > Security 5. Enter the old and new passwords. Make sure the new password format generates a green check for each security line. 6. Click **Change password**. 1406 For information on two-factor authentication (2FA) when changing passwords, follow this [guide](/managing-your-account/managing-2fa-two-factor-authentication-in-upmind/how-to-manage-two-factor-authentication-2fa-as-an-adminstaff). # How to Close Your Upmind Account Source: https://docs.upmind.com/managing-your-account/how-to-close-your-upmind-account You can close it very easily in minutes, no questions asked. This article shows you how to close your Upmind account. If you decide to cancel it on your side, here are the steps: 1. Log in to Upmind. 2. Go to Manage My.Upmind (in the bottom left corner). Click Manage My.Upmind Click Manage My.Upmind Click Manage My.Upmind 3. Go to **Products and Services** > **Subscriptions**. Click **Manage product**. Products & Services > Subscriptions Products & Services > Subscriptions Products & Services > Subscriptions 4. Under the tab **Billing**, find **Manage your subscriptions** and click **Cancellation options**. Billing > Cancellation Options Billing > Cancellation Options Billing > Cancellation Options # How to Manage Account Security as an Admin/Staff Source: https://docs.upmind.com/managing-your-account/how-to-manage-account-security-as-an-adminstaff Security Management is important for any Account. Manage account security for your Upmind account and secure your complete automation platform account. Upmind offers a comprehensive suite of security features for both admins and clients. This guide will give an overview of user-level security protections. It covers: 1. **IP Whitelisting** 2. **Extra Client Functionalities** 3. **Login Attempts** 4. **Two-factor Authentication** 5. **Password Resets** 6. **Secure Link Sharing** 7. **File Upload Types** 8. **General Security Settings** For information on managing two-factor authentication (2FA) as an admin/staff, follow this [guide](/managing-your-account/managing-2fa-two-factor-authentication-in-upmind/how-to-manage-two-factor-authentication-2fa-as-an-adminstaff). ## **Security menu access** * **Admins and staff**: Log in, go to `Settings`, and select **Security** under the `Branding and Customisation` section. Settings > Security Settings > Security * **Clients**: Access security options through **My Account** > **Security**. My account > Security My account > Security ## **Restrict access by IP (IP whitelisting)** You can control which IP addresses can access your organisation’s admin area and the client area to restrict access to trusted sources. Upmind supports static IPs, staff-specific whitelists, and CIDR ranges. Avoid dynamic IPs to prevent accidental lockouts. ### **IP whitelisting from admin** To add an IP whitelist entry from admin, enter the **IP address** (required) and a **Description** (optional). Restrict access by IP from Admin (Setting > Security) Restrict access by IP from Admin (Setting > Security) ### **IP whitelisting for staff** For staff, IPs can be set on a per-user basis in the staff control panel or per **API token**. This overrides global settings. 1. As an admin, you can add a staff user under **Settings** > **Staff Users**. Settings > Staff users Settings > Staff users 2. Click **Create user**. Create user Create user 3. Secure with whitelist IPs. Secure with whitelist IPs for staff Secure with whitelist IPs for staff For more on IP whitelisting, [watch this video](https://www.youtube.com/watch?v=DAJCb0Ap0B8\&ab_channel=Upmind). For clients, you can restrict access by IP under `Security`. For more information, follow [this guide](/client-self-service/client-area/how-do-my-clients-change-account-settings). ### **How to find out my IP address** Visit [https://ip.me.uk](https://ip.me.uk) to check your current IP. ## **Extra client functionalities** You can enable or disable the secure vault for notes and secrets at the client, lead, and contract product levels. Both staff and clients can access the vault, with all actions logged for security. Enable/disable client/brand notes and vault Enable/disable client/brand notes and vault ## **How to manage login attempts** The section **Passwords & Login** allows you to configure login security and attempts. | **Field Name** | **Description** | | --------------------------------------------------- | ------------------------------------------------------------------------------------------ | | Allow client login by any email address | If enabled, clients can log in using any email address in their account settings. | | Allow client login by any active service identifier | If enabled, clients can log in using any active service identifier, such as a domain name. | | Max failed attempts | Control the number of failed login attempts before lockout. | | Max failed 2FA attempts | Set maximum failed attempts for passwords and 2FA. | | Lockout minutes | Define lockout duration in minutes. | ## **How to reset a password as staff/admin** If you want to **change your password**: 1. Go to **My Account** > **Security**. 2. Enter your current and new password (minimum 8 characters, at least one letter and one number). 3. Save changes. Reset password Reset password If you **forgot your password** and can’t log in to Upmind, you can request a password reset on the login page: 1. On the login page, click **Forgot your password?** 2. Enter your email/username and request a reset link. 3. Follow the email instructions to set a new password. Forgotten password Forgotten password If 2FA is enabled, you will need to provide the code when resetting your password. 2FA code required 2FA code required ## **Secure link sharing** You can manage shared resource links. Set default expiration (in days) for shared links to protect sensitive resources. Secure links Secure links ## **How to manage upload file types** This relates to support tickets and allowed file types for attachments. Although all attachments are virus-scanned and flagged if issues arise, it’s best to restrict attachment types to those you expect to receive. 1. Go to **Settings** > **File Uploads**. 2. Select which file types are permitted for uploads in the client area (enable **Denied Download by Scan Status** by ticking the boxes). 3. All uploads are virus scanned, and suspicious files are flagged. Select file upload types Select file upload types ## **General security settings** You can control various access restrictions: * Limit viewing of client profiles and resources to users with a valid support PIN or linked tickets (non-admins only). * Set the duration (in hours) for which access is granted after PIN entry or ticket assignment. Control application security Control application security # How to Manage Your Admin Profile Source: https://docs.upmind.com/managing-your-account/how-to-manage-your-admin-profile Add or change your admin information, such as name, address, email, avatar, etc, as you want. Your profile contains personal information, some of which is visible to other staff and clients. If you use Upmind's integrated [support system](/using-upmind/service-desk/about-upminds-service-desk-features) you'll want to set your name and avatar correctly. ## **Opening the My Account page** The first step is to open the My Account page. 1. Log in to your Upmind admin dashboard. 2. Click the logo at the bottom of the left pane. 3. Click **My Account**. ## **Adding an avatar** Staff users and clients can see your avatar. It displays on every page. Upmind occasionally uses it in place of a display name. For best display results, use square images (i.e., 1:1 aspect ratio) at least 128 x 128 pixels. Smaller images may appear blurry. The maximum file size is 1 MB. To upload an image: 1. Click the avatar icon. 2. Select **Upload avatar** and select the image from your device. Select Upload avatar to load image 3. Upmind adds the profile avatar. The avatar updates through the application ## **Deleting an avatar** To remove an image: 1. Hover over the image and select **Remove avatar**. Select Remover Avatar to delete the avatar 2. Enter the confirmation code in the pop-up window and click **Delete**. 1028 ## **Changing profile settings** You can add or edit information on the **My profile** panel. My profile settings ## **Email and name** Use your email to log in to Upmind. We also use that email address to send along service messages and notifications that you set up in our Notifications centre. Staff users and clients can see your name. ## **Phone** We use your phone number for: * Phone number verification, if you forget your login or are blocked for security reasons. * Two-factor authentication, if enabled. ## **Interface language** This sets the Upmind dashboard language. Upmind is multilingual. This can be defined on a per-client or per-staff basis. # How to View Client and Staff Login Attempts Source: https://docs.upmind.com/managing-your-account/how-to-view-client-and-staff-login-attempts Monitor account access and spot unrecognised login activity. Upmind logs all sign-in activity for both clients and staff, including the IP address and approximate location of each attempt. You can review these logs to identify any logins you don't recognise. ## Viewing staff login attempts 1. Go to **Settings** > **Staff Users**. Settings > Staff Users 2. Click the **three dots** next to the staff member and select **Manage User**. Manage user 3. Navigate to **Logs** > **Login Attempt Logs** to view their sign-in history. Logs > Login Attempt Logs (staff) ## Viewing client login attempts ### From the Admin area 1. Go to **Clients** and select the client you want to review. 2. Navigate to **Logs** > **Login Attempt Logs** to view their sign-in history. Logs > Login Attempt Logs (admin area) ### From the Client area Clients can also view their own login activity directly from their account. 1. Log in to the client area and go to **My Account**. 2. Navigate to **Logs** > **Login Attempt Logs** to view recent sign-in activity. Logs > Login Attempt Logs (client area) # How to Manage Two-Factor Authentication (2FA) as a Client Source: https://docs.upmind.com/managing-your-account/managing-2fa-two-factor-authentication-in-upmind/how-to-manage-two-factor-authentication-2fa-as-a-client Enable, disable, and manage two-factor authentication on your Upmind client account. Two-factor authentication (2FA) protects your account by requiring both your password and a time-sensitive code when you log in or make sensitive changes. By default, it is disabled. So, you can turn it on from your account's Security page. **Before you start,** make sure you have two apps on your mobile device - a QR code scanner and an authenticator app such as Google Authenticator or Authy. ## How to enable 2FA as a client 1. Go to the **Security** section of your account and scroll down to **Two-Factor Authentication**. 2. Click **Enable**. My account > Security 3. Scan the QR code using your authenticator app. 4. Copy the generated code from your app. 5. Enter the code in the provided field. Enter code 6. Click **Enable** to activate two-factor authentication. Authenticator apps generate a new code every 30 seconds. Enter it before it expires. You will receive an email when it is enabled. 2FA enabled email Now, whenever you try to log in, 2FA will be required. Required 2FA on login ## How to disable 2FA as a client 1. Go to the **Security** page and click **Disable**. Disable 2FA 2. Open your authenticator app and find the current code for your Upmind account. 3. Enter the code in the provided field on the Security page. 4. Click **Disable** on the confirmation pop-up to confirm. Enter code You will receive an email when it is disabled. 2FA disabled email ## 2FA when changing your password or email Upmind requires a verification code any time you change your own password or email address. This is a built-in security measure that applies even if you already have an authenticator app set up. ### Updating password from account security When you submit a password or email change, Upmind will send a 6-digit verification code to your current email address. The request won't go through until you enter that code. 1. Submit the password or email change as normal from **My Account** > **Security**. Change password 2. Enter the 6-digit code you received in the verification field. 3. Submit again to complete the change. If the code expires before you use it, restart the process to receive a new one. If your account is managed by an admin or staff member, they can make changes to your credentials without needing to complete this step on your behalf. ### Resetting password from login 1. Click **Forgotten your password**. Forgotten your password 2. You will receive an email to reset your password. Click the **link**. 3. Now, when you try to reset your password, you will be prompted to enter your 2FA code. 2FA code prompt ## Resetting 2FA after losing your authenticator If you lose access to your authenticator app, another account administrator can reset your 2FA from the admin panel. If no other administrator is available, [raise a support ticket](/managing-your-account/getting-help-from-upmind) and the Upmind support team will assist you with restoring access. # How to Manage Two-Factor Authentication (2FA) as an Admin/Staff Source: https://docs.upmind.com/managing-your-account/managing-2fa-two-factor-authentication-in-upmind/how-to-manage-two-factor-authentication-2fa-as-an-adminstaff Enable, disable, enforce, and manage two-factor authentication for your admin or staff account. Two-factor authentication (2FA) adds a second layer of security to your account. On top of your password, you'll need a time-sensitive code to log in or make sensitive changes. By default, 2FA is disabled in Upmind. ## How to enable 2FA as an Admin/Staff 1. Go to **My Account > Security**. My Account > Security My Account > Security 2. Scroll down to **Two-Factor Authentication** and click **Enable**. Enable 2FA Enable 2FA 3. Open your authenticator app (e.g., Google Authenticator) on your mobile device and scan the QR code, or use the provided link. Enter code Enter code 4. Enter the generated code in the field and click **Enable**. Authenticator apps generate a new code every 30 seconds. Enter it before it expires. You will receive an email when it is enabled. 2FA enabled email 2FA enabled email Now, whenever you try to log in, 2FA will be required. Required 2FA on login Required 2FA on login ## How to disable 2FA as an Admin/Staff 1. Go to **My Account > Security** and click **Disable**. Disable 2FA Disable 2FA 2. Open your authenticator app and find the current code for your Upmind account. 3. Enter the code in the provided field on the Security page. Enter code Enter code 4. Click **Disable** on the confirmation pop-up to confirm. You will receive an email when it is disabled. 2FA disabled email 2FA disabled email ## Enforcing 2FA for Clients Admin/Staff can require all clients to set up 2FA when they log in. 1. Go to **Settings > Client Auth Providers** under **Users and Permissions**. Settings > Client auth providers Settings > Client auth providers 2. Click the **three dots (⋮)** next to the relevant auth provider and select **Edit**. Click edit Click edit 3. Toggle on **Enforce 2FA on Login**. Enforce 2FA on login Enforce 2FA on login Once enabled, clients will receive an email prompting them to enter a verification code on their next login. Verification code email Verification code email ## Impersonating a Client to activate 2FA Admins/Staff can impersonate a client account to activate 2FA on their behalf. 1. Select the client and impersonate them. Impersonate client Impersonate client 2. Go to **My Account > Security**. 3. Follow the same steps under **Enabling 2FA** above. Enable 2FA for clients Enable 2FA for clients Similarly, you can disable the 2FA for them as well. When staff impersonates a client to make changes, 2FA verification is not required from the staff side. So, only the client triggers the 2FA check when changing their own credentials. ## 2FA when changing your password or email Upmind requires a verification code any time an admin or staff member changes their own password or email address. This is enabled by default across all brands. ### Updating password from account security When you submit a password or email change, Upmind will send a 6-digit verification code to your current email address. The request won't go through until you enter that code. 1. Submit the password or email change as normal from **My Account** > **Security**. Change password Change password 2. Enter the 6-digit code you received in the verification field. 3. Submit again to complete the change. If the code expires before you use it, restart the process to receive a new one. This verification step does **not** apply when an administrator changes another staff member's credentials. It only applies when you are changing your own. ### Resetting password from login 1. Click **Forgotten your password**. Forgotten your password Forgotten your password 2. You will receive an email to reset your password. Click the **link**. Reset password email Reset password email 3. Now, when you try to reset your password, you will be prompted to enter your 2FA code. 2FA code prompt 2FA code prompt ## Resetting 2FA after losing your authenticator If you lose access to your authenticator app, another account administrator can reset your 2FA from the admin panel. If no other administrator is available, send an email to [support@upmind.com](mailto:support@upmind.com) from the address registered on your Upmind account and the support team will help restore your access. ## Enforcing email verification before checkout You can require clients to verify their email address before they can place an order. This helps confirm contact information and reduces the risk of fraudulent orders. ### **How it works** The verification check applies at the start of the checkout process, and it does not block registration. Clients can register, return to their basket, and browse without verifying, but they must complete email verification before they can proceed to checkout. **To enable this setting** 1. Go to **Settings > Security** under **Branding and Customisation**. Settings > Security Settings > Security 2. Enable **Require a verified email to place an order**. Require a verified email to place an order Require a verified email to place an order During registration, clients will see a **Verify** step, though this is optional at that point, as they can click **Back** and continue browsing. The moment they attempt to check out, verification becomes mandatory, and the only available action is to enter the code and continue. Clients can verify their email beforehand during registration Clients can verify their email beforehand during registration Clients will need to verify their email during checkout Clients will need to verify their email during checkout # Upgrade Your Plan Source: https://docs.upmind.com/managing-your-account/upgrade-your-plan Get more, do more, achieve more with Upmind. Upgrade your plan and move forward faster and better than before. See how to upgrade your current plan with Upmind. Many customers begin their e-commerce journey with Upmind's **Free Plan**. After discovering Upmind's potential, they want to grow their business by accessing more features, adding more brands, and increasing the number of clients they serve. To help you get more from Upmind, this article shows you how to upgrade your plan. Click [here](https://upmind.com/pricing) to review our current plans and pricing. ## Verifying your payment method The first step is to enter (or verify) your payment method. If you started with the **Free Plan**, you likely did not enter this information. Upmind does not require payment information when users set up a free account. 1. Log into your Upmind admin account. 2. Click your account name in the bottom left corner of the page. 3. Click **Manage My.Upmind**. 4. Go to **Products and Services** > **Choose your Subscription** > **Manage Product**. Manage My.Upmind > Products and Services > Manage Product 5. Click the Settings menu tab and then click **Select payment method**. Settings > Select Payment Method On the side panel, select a payment method (PayPal, credit card, or debit card) and enter your details. ## Upgrading your plan Now you're ready to upgrade. Click the green tab at the top of the page. In the screenshot below, our demo user starts out with a free account. It's also possible to upgrade from a lower-tier paid plan. Upgrade your plan On the pop-up window, review the available plan options and pricing. Choose an option and click the **Upgrade now** button. Review the details in the confirmation pop-up, click the button to proceed, and complete the workflow. Now you're upgraded! # How Multi-language Works Source: https://docs.upmind.com/setup-and-configuration/branding/how-multi-language-works Set up your e-commerce store with a multilingual feature and start global. The Upmind platform supports multiple languages, with responses on both the API and front-end translated into a dozen languages. It allows translating various content, such as email templates and product descriptions, within your Upmind instance. We use [Localazy](https://localazy.com/) to translate strings, and if you want to help translate, we would be delighted. ## Brand default language Each brand has a default language. You can add multiple supported languages in the admin area and then choose one as the brand default. This can be accessed from **Settings** > **Brand settings**. Settings > Brand settings Settings > Brand settings Settings > Brand settings ## User language preferences Clients and staff can change their profile language anytime from their account. New users see the interface and communications in the language matching their browser settings by default. # How to Add a Custom Domain Name Source: https://docs.upmind.com/setup-and-configuration/branding/how-to-add-a-custom-domain-name Brand your site with a unique URL. Point a unique domain to your default Upmind web address and learn how to add a custom domain name. Every Upmind brand comes with a unique subdomain (**randomID.upmind.app**) for client login and staff admin access (**randomID.upmind.app/admin**). To reflect your brand more professionally, we recommend that you add your own custom domain (like **subdomain.yourdomain.com** or **clients.yourdomain.com**). ## Steps to add a custom domain 1. Log in to the Upmind dashboard. 2. Go to **Settings** > **Domains** under **Branding and customisation**. Settings > Branding and customisation > Domains Settings > Branding and customisation > Domains Settings > Branding and customisation > Domains 3. Click **Add custom domain**. Add custom domain Add custom domain Add custom domain Do not include `https://`. Use the format [**example.yourdomain.com**](http://example.yourdomain.com). 4. Use toggles to enable admin login, client login, or both. By default, both options are disabled. You will be prompted to add a **CNAME**. This needs to be done with your domain registrar. Click and copy records Click and copy records Click and copy records 5. Click **Save**. The domain will appear as unverified on the list. Upmind adds unverified tag Upmind adds unverified tag Upmind adds unverified tag ## Configuring CNAME record Before you can verify a URL, direct your current domain name to your Upmind URL with a new CNAME. 1. Log in to your domain registrar. 2. Create a new **CNAME Record**. 3. Paste the code into the field. 4. Wait about 10 minutes for DNS propagation. Watch this [YouTube video](https://www.youtube.com/watch?v=N8bzgwIxP-U) to learn how to update domains to use CNAME. ### For cPanel users If you're using cPanel, please ensure that you add the CNAME in the **Zone Editor**. DNS Zone Manager > Choose the Domain > Manage DNS Zone Manager > Choose the Domain > Manage DNS Zone Manager > Choose the Domain > Manage ### For Cloudflare users We recommend **disabling Proxied (set Proxy status to DNS only)** to ensure proper connection to Upmind. If you have MX records on the same subdomain, you can enable proxy, which allows Cloudflare to convert CNAME records to A records, letting you use both CNAME and MX records, something that is normally not possible. Make sure the Type is CNAME and paste Upmind CNAME to the Record Make sure the Type is CNAME and paste Upmind CNAME to the Record Make sure the Type is CNAME and paste Upmind CNAME to the Record ## Verifying the domain Domain verification may take a few hours. 1. Return to the Upmind Domains page. 2. Click the **three-dots icon** on your new domain. 3. Click **Verify**. 4. After verification, SSL certificates are auto-installed for a secure connection. Verify account Verify account Verify account This is what it looks like when your custom domain has been successfully verified. The tag is removed The tag is removed The tag is removed ## How to use your custom domain To set the domain as default, click the three-dot menu and select **Make Default Domain**. Make default domain Make default domain Make default domain The **Client URL** login path is designated as `/login`. Client interface login Client interface login Client interface login The **Admin URL** path is set as `/admin`. Admin interface login Admin interface login Admin interface login # How to Add Brands Source: https://docs.upmind.com/setup-and-configuration/branding/how-to-add-brands Upmind makes it easy to add, manage, and customise brand settings on an e-commerce platform. When you create an Upmind account, you start an organisation that subscribes to an Upmind plan and sells products or services. Typically, one organisation manages a single brand with multiple products or services. Adding brands allows you to create separate identities under one organisation, sharing resources like products, the same or different staff users, and payment methods, while customising brand-specific settings. Users must have administrative permissions to add brands. ## **Steps to add a brand** 1. In the Upmind dashboard, click **Settings** > **Brands** under **Branding and customisation**. Settings > Branding and customisation > Brands 2. Click **Create brand**. Create brand 3. Fill in brand details: * **Name**: Visible to clients and on invoices. * **Company Email**: Default sender for email notification that can match the organisation's email. * **Company Address & Phone**: Displayed on invoices. Fill in brand details 4. Click **Save** to open the brand’s settings page. 5. Configure [brand settings](/setup-and-configuration/branding/how-to-configure-your-brand-settings) as needed. ## **Switching brands** When multiple brands exist, a dropdown menu lets you switch views quickly. Switch brand from brand settings You can also switch brands from the dashboard icon in the top right corner. Switch brand from dashboard icon ## **Copy brand's UUID** You can also copy your brand's UUID (Universally Unique Identifier) from the admin brand's list view. # How to Add Your Custom URL to the Logo Button Source: https://docs.upmind.com/setup-and-configuration/branding/how-to-add-your-custom-url-to-the-logo-button Your navigation is now a little easier with the addition of the custom URL. You can set your brand’s logo on client pages to link to a custom URL (e.g., your homepage or order page), improving navigation for customers during ordering. ## Steps to add a custom URL for the logo button 1. In the Upmind admin dashboard, go to **Settings** > **User Interface** under **Branding and Customisation**. Settings > Branding and customisation > User interface 2. Locate the **Custom URL for Logo Button** under `Client Area` settings. 3. Enter your desired URL. This URL can be your homepage, order page, or any other page where you want to direct users. Custom URL for logo button 4. Click **Save**. Your brand logo now directs users to your specified webpage on click. # How to Configure Business Settings Source: https://docs.upmind.com/setup-and-configuration/branding/how-to-configure-business-settings Gives you a window and automates your business in many ways so you can focus on other important tasks. Business settings control default options for your e-commerce store, including currency and contact information for invoices. ## Access business settings 1. From the Upmind dashboard, go to **Settings** > **Business settings** under **E-commerce Settings**. Settings > E-commerce settings > Business settings ## Customise business settings * **Store Currency**: Select your store’s base currency. Automatic currency conversions, if required to complete a transaction, are based on this selection. **After a first sale, the base currency can’t be changed**. If only test orders exist, you can request a [reset of client and order data](/setup-and-configuration/branding/how-to-reset-brand-data) to allow changing the brand’s base currency. Set store currency * **Store Contact Details**: You can add your store's email and phone number. The email auto-fills with your account default. Store contact details * **Store Address**: Enter your legal business name and official address to appear on invoices. Store address * **Applied Promotions**: Enable this toggle to automatically apply promotions on eligible items. Disabling it requires clients to enter a promo code manually. Applied promotions # How to Configure Your Brand Settings Source: https://docs.upmind.com/setup-and-configuration/branding/how-to-configure-your-brand-settings Start today with your brand and excel. Upmind makes your business easier and faster. Brand settings define how your customers see your business and affect invoices, emails, and the client interface. These settings apply individually to each brand if multiple brands exist. ## Accessing brand settings From the Upmind dashboard, go to **Settings** > **Brand Settings** under **Branding and Customisation**. Settings > Branding and customisation > Brand settings ## Customise brand settings ### Brand details * **Name**: The brand name shown to clients and invoices, which is editable anytime. * **Country**: Set the brand’s base country for tax and compliance calculations, with an optional regional setting. Brand details ### Brand languages * **Supported Languages**: Add optional languages your clients can use on their account pages. English is the default. * **Default Language**: Choose the main interface language for your clients. To change the interface language, choose one or more languages in the Supported Languages. The selected options appear in the Default language dropdown. Product descriptions and emails are automatically translated to the default language if translations aren’t provided. Brand languages ### Brand imagery * **Brand logo**: The primary emblem representing your brand’s identity. * **Brand logomark**: The standalone symbol or mark used when space is limited. * **Brand favicon**: The tiny icon shown in browser tabs for quick brand recognition. * **Email logo**: The logo used in email communications to reinforce branding. Brand imagery ### Brand appearance * **Primary colour**: The main brand hue used across all materials to reinforce identity and consistency. * **Brand font**: The chosen typeface that defines the brand’s look and readability. Brand appearance ### Brand meta **UI metadata**: Defines how the interface is labelled, organised, and structured to look and behave consistently across devices. This includes text labels, menu names, button captions, and data schemas in a machine-readable format (in JSON format) so the UI can render consistently. It stores extra, brand-specific details you can customise for your UI, allowing you to override or extend segments without changing core code. It also provides per-language or per-region variations for strings such as emails, product descriptions, and help text. This ensures messaging aligns with local culture and terminology while keeping branding consistent. Brand meta ### Brand tokens Design-system building blocks that store brand values (colour, typography, spacing) and drive consistent styling across products (using CSS variables). This is currently in closed beta. Brand tokens ### Reset brand data **Allow deletion of all brand data**: Enable/disable option to permanently remove all brand-related data. Reset brand data ### Go fullscreen You can expand the Monaco editor to go full screen to see your code better. Expand Monaco editor # How to Create Client Area Templates Source: https://docs.upmind.com/setup-and-configuration/branding/how-to-create-client-area-templates Start with your client area for your business to provide a separate dashboard. Upmind allows you to create customisable templates that automatically display messages in various parts of the client area, such as footers, login pages, product pages, and more. Templates help personalise your client’s experience by showing relevant information or promotions based on the context. ## Accessing client area templates 1. Sign in to your Upmind Admin account. 2. Go to **Settings** > **Client Area Templates** under **Branding and Customisation**. Settings > Branding and customisation > Client area templates Settings > Branding and customisation > Client area templates Settings > Branding and customisation > Client area templates Settings > Branding and customisation > Client area templates The Client area templates page shows slots. These slots are predefined areas in the client interface (e.g., Footer, Login page, Register page, Support Overview). You can either create a new template and assign it to a slot or prepare a custom template for a specific use. ## Creating a new template and mapping it to a slot Choose this option to create a new template and assign it to a slot with both creation and mapping in one unified workflow. 1. On the `Client area templates page`, select a slot and click **Add template**. Add template Add template Add template Add template 2. In the side panel, choose **Create new template**. Create new template Create new template Create new template Create new template 3. You can also go to the `Templates` section and click **Create New Template**. This way, you can choose your category. Templates > Create new template Templates > Create new template Templates > Create new template Templates > Create new template 4. Enter a unique template name (not visible to clients). 5. In the **Body** field, write your message. You may use HTML and Twig syntax for styling and dynamic content. Fill in the details Fill in the details Fill in the details Fill in the details 6. Add translations for multilingual support. (optional) Translations Translations Translations Translations 7. **Save** the template. Not sure about Twig syntax? [Learn more](/setup-and-configuration/email-configuring-and-sending/how-to-format-email-templates). 8. Assign the created template to the chosen slot by confirming the selection and mapping it. Select template Select template Select template Select template 9. The template name will now appear listed under the slot on the templates page. Mapped template Mapped template Mapped template Mapped template The message will now be shown in the footer. Template on display Template on display Template on display Template on display ## Creating templates for specific products Choose this option to create a template for a certain product that highlights key promotional messages and onboarding details. 1. Go to **Settings** > **Product Catalogue** under **Products and Promotions** or click on **Store Catalogue**. Settings > Products and promotions > Product catalogue Settings > Products and promotions > Product catalogue Settings > Products and promotions > Product catalogue Settings > Products and promotions > Product catalogue 2. Select a product. 3. Scroll to **Client Area Templates** and click it. 4. Make sure **Slots** is selected. Add template Add template Add template Add template 5. Click **Add template**, then **Create new template**. Create new template Create new template Create new template Create new template 6. Provide a name and compose a message with optional HTML/Twig. 7. **Save** and confirm the selection. Fill in the details Fill in the details Fill in the details Fill in the details Messages linked to products appear on the product summary under `Active products & services` on client overview pages. Template on display Template on display Template on display Template on display # How to Reset Brand Data Source: https://docs.upmind.com/setup-and-configuration/branding/how-to-reset-brand-data With Upmind's branding feature, you can reset brand data after you see what you can do with Upmind. For every client or new one, you can always reset information. If you are preparing to launch or need to change your brand’s base currency, resetting your brand’s test data might be necessary. If you only have test clients and orders, you can request that your brand data be reset. Resetting clears all client, order, invoice, log, and transaction data while keeping your products and settings intact. ## Preconditions * Only proceed if you have no live customer data. * Make sure you have a backup if needed, since this action is irreversible. ## Enabling data reset 1. Log in to your Upmind Admin. 2. Go to **Settings** > **Brand Settings** under **Branding and Customisation**. Settings > Branding and customisation > Brand settings 3. Locate and tick the checkbox for **Reset brand data**. Reset brand data ## Requesting the reset With the checkbox enabled, submit a support ticket to Upmind requesting a brand data reset. 1. Go to `Manage my Upmind`. Manage my Upmind 2. Click on **Support** and then click **Open new ticket**. Open new ticket The **Support** team will process the request and perform the reset on your behalf. # How to Set the Landing Page Source: https://docs.upmind.com/setup-and-configuration/branding/how-to-set-the-landing-page The Upmind e-commerce platform gives you three options: login page, restoration page, or store page. You can choose which page visitors see first when accessing your store. It can include: * Client area login page * Registration page * Store page ## Setting the landing page 1. In the Upmind admin dashboard, go to **Settings** > **User Interface** under **Branding and Customisation**. Settings > Branding and customisation > User interface 2. Click the **Landing Page** dropdown. 3. Choose your preferred landing page option. Landing page options 4. Click **Save**. ## Landing page options 1. **Login page**: This option hides your store behind a login page. Current clients must sign in to access the site, while visitors can view the catalogue and cart if they click the link and create a store account. Login page 2. **Registration page**: This option also hides your store behind a login page. This page signs up new clients and requires account creation before accessing the store. Existing clients can log in to their accounts through a link. Registration page 3. **Store page**: This page shows the store to the public. Visitors can browse the catalogue and add items to a cart without logging in. Sign-up or login is only required for checkout or account access. Online store When guest checkout is disabled, an **Authenticate** page prompts before checkout. Authentication page You can enable or disable it in **Settings** > **Order options**. # User Interface Overview Source: https://docs.upmind.com/setup-and-configuration/branding/user-interface-overview Customise the client area experience, from appearance and behaviour to registration and checkout. The user interface for Upmind provides configurable options that allow you to customise the client area experience, client registration, basket flow, and checkout appearance to create a smooth and branded user journey. This can be accessed from **Settings** > **User Interface** under **Branding and Customisation**. Settings > Branding and Customisation > User Interface Settings > Branding and Customisation > User Interface Settings > Branding and Customisation > User Interface ## **Client area** Adjust the look, feel, and behaviour of your client-facing portal to create a simple branded look. | **Field Name** | **Description** | | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Landing page | Select the default page visitors see when arriving at your client portal. Options include: - Login page - Registration page - Store page | | Page after login | Determine which page clients first see after signing in: - Dashboard - Products and Services - Support Section - Billing Section - My Account | | Show catalogue | Control catalogue visibility based on conditions: - Always show - Show only to logged-in clients - Hide catalogue | | Enter key action | Define the behaviour of the Enter key in forms: - Enter key - Enter + Shift key combination | | Disable support system | Option to enable or disable the integrated support ticketing system. | | Hide client area signup/registration forms | Toggle visibility of signup and registration forms to clients. | | Custom URL for logo button | Set a personalised URL that your brand logo links to within the client area. | | Allow branding for parent clients | Enable parent clients to see brand imagery and appearance. | | Whitelabel login | Render login and password reset pages without branding for a neutral, white-labelled look. | ## **Client registration** Configure settings related to client account creation. | **Field Name** | **Description** | | -------------------- | ---------------------------------------------------------------- | | Require phone number | Toggle requirement of a valid phone number during client signup. | ## **Basket** Customise the user experience and currency handling in the store's shopping basket. | **Field Name** | **Description** | | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Default basket currency | Determine how basket currency is set for new visitors: - Use default brand currency - Use visitor’s browser/language locale | | Add to basket funneling | Control what happens after users add a product to the basket: - Keep users on the current page when possible - Redirect users to the next setup/checkout step | | Billing term display | Choose how billing terms display when selecting product options: - Radio select (list) - Card select (visual cards) | | Price before discount position | Decide where the original price displays relative to the discounted price: - Before discounted price - After discounted price | | Payment term descriptions | Select cycle term description style: - Use yearly terms (e.g., annually) - Use monthly terms (e.g., 12 months) | | Truncate product descriptions | Enable or disable truncation of product descriptions in listings. | ## **Checkout** Customise checkout page layout and appearance. | **Field Name** | **Description** | | -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Checkout flow | Choose your checkout style: - Stepped checkout (multi-step) - One-page checkout | | Checkout summary colour | Set background colour for the checkout summary in one-page checkout; choose a dark or light tone for accessibility. | | Checkout summary colour 2 | Add a second background colour to create a gradient effect (optional). | | Checkout summary contrast mode | Select text contrast for checkout summary to ensure readability: - Dark mode (white text for dark backgrounds) - Light mode (dark text for light backgrounds) | | Hide promo code field for clients and guests | Optionally hide the promotional code input box during checkout while still allowing automatic promotions. | # What is an Organisation? Source: https://docs.upmind.com/setup-and-configuration/branding/what-is-an-organisation Understand your Upmind account structure. An organisation in Upmind represents your main account, often matching your brand name. It serves as the top-level entity under which you manage your subscription plan, products, services, staff, and brands. ## Organisations vs. Multiple brands An organisation can contain [multiple brands](/setup-and-configuration/branding/how-to-add-brands). Brands let you manage different customers under the same organisation. To manage brands, go to **Settings** > **Brands** under **Branding and customisation**. Settings > Branding and customisation > Brands We recommend you use one Upmind organisation for multiple brands under the same legal entity. For separate businesses, create a standalone Upmind organisation for each. ## Multi-brand mode and brand toggling If multiple brands are enabled, you can view data per brand by toggling between them or see combined data by selecting **Multi-brand mode**. Choose brands Toggle between brands or select multi-brand mode This mode presents data across brands for unified reporting and management. The multi-brand mode is not available on the free plan. # Email Messages vs Notifications Source: https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/email-messages-vs-notifications Use email templates to save time and automate messaging for important triggers. Upmind uses two primary email communication types: 1. **Notifications** 2. **Client Messages** Both use customisable templates with [Twig code](https://twig.symfony.com/) and HTML, but serve different purposes and workflows. ## Notifications * **Automated and** [**Trigger Notifications**](https://docs.upmind.com/setup-and-configuration/notifications/how-to-create-and-disable-notifications) - Notifications are sent automatically when specific events occur, such as invoice creation, payment reminders, or support ticket updates. * **Template-Driven** - Each notification uses a predefined template, which can be customised using Twig variables and HTML. * **System-Managed** - Notifications are managed within Upmind’s automation system and linked to triggers set in the platform. **Examples**: * New invoice issued * Service renewal reminder * Password reset request ## Client messages * **Sending Manual or** [**Bulk Messages**](https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-create-and-send-client-bulk-email-messages) - Client messages are sent manually, either to individual clients or as bulk messages to a selected group. * **One-Time Communication** - Unlike notifications, [single client](https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-email-a-client) messages are not tied to system triggers and are sent only when initiated by an admin. * **Template Support** - Messages can use existing templates or new ones created for specific campaigns. **Examples**: * Announcements * Marketing campaigns * Service updates # Email Template Twig Variables Overview Source: https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/email-template-twig-variables-overview Introduction to Twig variables in Upmind email templates. Twig variables are dynamic placeholders used in Upmind’s email templates to personalise and automate message content. You can use these variables in two ways: 1. **Settings** > **Actions** 2. **Settings** > **Email Templates** ## Account Twig variables | Variable | Description | | ------------------------------------------------ | -------------------------------------------------- | | id | Unique identifier of the account | | name | Account name | | type | Account type designation | | status | Account current status | | created\_at | Date and time the account was created | | updated\_at | Last update timestamp of the account | | client | Associated client information | | arrears\_credit\_maximum | Maximum arrears credit allowed | | arrears\_credit\_available | Currently available arrears credit | | arrears\_credit\_used | Used arrears credit | | arrears\_credit\_available\_converted\_formatted | Formatted available credit in the account currency | | arrears\_credit\_used\_converted\_formatted | Formatted used credit in the account currency | | arrears\_credit\_maximum\_converted\_formatted | Formatted maximum credit in account currency | | currency | Account currency | | enable\_negative\_wallet\_balance | Flag for allowing a negative wallet balance | ## Brand Twig variables | Variable | Description | | ------------------------ | ----------------------------------------- | | id | Brand unique identifier | | name | Brand name | | code | Brand code | | prefix | Prefix used by the brand | | portal\_domain | Main portal domain for the brand | | company\_name | Legal or business name of the brand | | company\_address | Official address | | company\_phone | Contact phone number | | company\_email | Contact email | | country | Brand’s operational country | | language | Default language configured for the brand | | currency | Default currency | | tax\_type | Tax configuration type | | vat\_number | VAT number for the brand | | payment\_days\_term | Default payment term in days | | create\_invoice\_term | Term for invoice creation timing | | style | Styling parameters or theme | | logo\_src | URL to the brand’s logo image | | created\_at | Brand creation timestamp | | updated\_at | Last updated timestamp | | customer\_portal\_domain | URL for customer-facing portal | | staff\_portal\_domain | URL for staff admin portal | | organisation | Associated organisation | ## Brand hook template Twig variables | Variable | Description | | ------------ | --------------------------------------------------- | | id | Unique hook template identifier | | brand\_id | Associated brand identifier | | hook\_id | Identifier for the hook (event trigger) | | template\_id | Template associated with the hook | | enabled | Boolean indicating if the hook template is active | | locked | Boolean marking the template as locked / uneditable | | created\_at | Creation timestamp | | updated\_at | Last update timestamp | | deleted\_at | Timestamp for soft deletion | ## Bulk action Twig variables | Variable | Description | | ---------------- | ------------------------------------------ | | status | Status of the bulk action | | id | Bulk action unique identifier | | name | Bulk action name | | org\_id | Organisation involved | | brand\_id | Brand involved | | user\_id | User who triggered the action | | status\_id | Internal status ID | | retried | Count of retry attempts | | reschedule\_id | ID of any scheduled re-run | | action\_type | Type of action executed | | action\_data | Additional data related to the action | | segment\_id | ID for client segment targeted | | refresh\_segment | Flag to update client segment after action | | object\_type | Type of object acted upon | | object\_ids | List of IDs for objects involved | | num\_scheduled | Number of actions scheduled | | num\_successful | Number of successful actions | | num\_failed | Number of failed actions | | started\_at | Start timestamp of the action | | completed\_at | Completion timestamp | | created\_at | Creation timestamp | | updated\_at | Last updated timestamp | | deleted\_at | Deletion timestamp (soft delete) | | duplicate\_id | Tracking ID for duplicate action | ## Client Twig variables | Variable | Description | | -------------------------------------------------------- | -------------------------------------------- | | id | Unique client identifier | | first\_name | Client’s first name | | last\_name | Client’s last name | | login\_email | Email used for login | | notification\_email | Email used to receive notifications | | twofa\_enabled | Flag if two-factor authentication is enabled | | twofa\_provider | Provider used for two-factor authentication | | reg\_hash | Registration hash | | reg\_hash\_expiry | Expiry time for registration hash | | verified | Flag if email or account is verified | | avatar\_src | URL to client avatar image | | interface\_language | Preferred UI language | | document\_language | Preferred document language | | created\_at | Account creation timestamp | | updated\_at | Last profile update timestamp | | has\_password | Flag if password is set | | has\_login | Flag if login is enabled | | is\_guest | Flag if it’s a guest user | | full\_name | Full name of client | | default\_payment\_details | Default payment details | | default\_address | Default physical address | | import\_id | Import source identifier | | staged\_import | Flag indicating staged import | | external\_id | External system ID | | support\_pin | Support pin code | | support\_pin\_expiry\_datetime | Expiry datetime of support pin | | firstname | Alternative access to first name | | lastname | Alternative access to last name | | email | Alternate access to primary email | | location\_source | Source of client location | | location\_town | Town or city | | location\_country\_code | Country code | | location\_ip | IP address | | user\_id | Associated user ID | | upmind\_org\_user\_id | Organisation user ID | | reseller\_account\_id | Reseller client association id | | interface\_language\_id | Numeric UI language ID | | document\_language\_id | Numeric document language ID | | deleted\_at | Soft delete timestamp | | apply\_credit | Flag if credits applied | | credit | Credit balance | | consolidate\_invoice | Invoice consolidation enabled | | consolidation\_day | Day of invoice consolidation | | bf\_id | Billing framework ID | | ip\_address | Client IP address | | enabled\_2fa | Two factor authentication enabled | | provider\_2fa\_id | Two factor provider ID | | org\_id | Organisation ID | | picture | Client picture URL | | brand\_id | Associated brand ID | | last\_login | Last login timestamp | | fraud\_policy | Fraud detection policy | | fraud\_status | Fraud status | | failed\_login\_attempts | Failed login attempt count | | notifications\_disabled | Notifications disabled status | | meta | Metadata | | order\_template\_code | Default order template code | | interface\_language\_code | Language code for UI | | document\_language\_code | Language code for documents | | fullname | Full client name | | public\_name | Publicly displayed name | | secret\_2fa\_exists | Two-factor secret existence | | image\_url | Client image URL | | topup\_enabled | Prepaid top-up enabled | | upmind\_org\_user | Organisation user object | | upmind\_package\_limits | Package limits | | emails | List of client emails | | image | Client image | | invoice\_consolidation\_enabled | Invoice consolidation enabled | | invoice\_consolidation\_base\_rule | Base rule for invoice consolidation | | invoice\_consolidation\_base\_rule\_date\_of\_month\_day | Month day for consolidation | | invoice\_consolidation\_base\_rule\_day\_of\_week | Day of week for consolidation | | block\_new\_tickets\_from\_email | Block new support tickets from email | | default\_email | Default client email | | custom\_fields | Custom client field data | | custom\_field\_values | Values of custom fields | | tax\_type | Tax type | | default\_phone | Default phone number | | username | Username | | login\_username | Login username | | before\_due\_date\_charge\_interval | Pre-due date charge interval | | before\_due\_date\_charge\_interval\_dd | Pre-due date charge interval (days) | | manage\_notification\_subs\_token | Notification subscription management token | | parent\_client\_config | Parent client configuration | | tags | Tags associated with the client | | never\_suspend | Flag to never suspend the client | | never\_cancel | Flag to never cancel the client | | never\_close | Flag to never close the client | | failed\_2fa\_attempts | Count of failed 2FA attempts | | has\_legacy\_invoices | Flag for legacy invoices | | exclude\_from\_uuid\_encoding | Exclude from UUID encoding | | status\_id | Client status ID | | number | Client number | | settings | Client settings configurations | | tax\_exempt\_code | Tax exemption code | | tax\_exempt\_number | Tax exemption number | | email\_2fa\_code | Two-factor email code | | email\_2fa\_validity\_period\_seconds | Two-factor email code validity period | ## Client vault asset Twig variables | Variable | Description | | --------------------- | -------------------------------------------------- | | id | Unique identifier of the asset | | import\_id | External import reference for the asset | | staged\_import | Flag indicating if the asset is from staged import | | external\_id | External system ID | | client\_id | Associated client identifier | | lead\_id | Lead identifier if applicable | | user\_id | Related user identifier | | label | Label or name of the asset | | note | Additional notes | | pinned | Flag to pin asset for priority or visibility | | visible\_for\_client | Asset visibility permission | | encrypted | Encryption status of the asset | | contract\_product\_id | Linked contract product ID | | created\_at | Creation timestamp | | updated\_at | Last update timestamp | | author\_client\_id | Client ID of asset author | | author\_user\_id | User ID of asset author | | editor\_client\_id | Client ID of last editor | | editor\_user\_id | User ID of last editor | | locked | Lock status to prevent modifications | ## Client address Twig variables | Variable | Description | | -------------- | -------------------------------------- | | id | Unique address ID | | client\_id | Client linked to the address | | user\_id | User linked to the address | | default | Is this address the default one? | | type | Address type (billing, shipping, etc.) | | name | Name associated with the address | | address\_1 | Primary address line | | address\_2 | Secondary address line | | country\_id | Country reference ID | | state | State or province | | city | City | | postcode | Postal or ZIP code | | created\_at | Creation timestamp | | updated\_at | Last modification timestamp | | deleted\_at | Soft deletion timestamp | | verified | Verification status | | region\_id | Region reference | | can\_delete | Permission flag for deletion | | import\_id | Import reference | | staged\_import | Staged import flag | | external\_id | External system ID | | region | Region name | | country | Country name | | client | Client object | | county | County name | ## Client company Twig variables | Variable | Description | | ------------------------------- | --------------------------------------- | | id | Company identifier | | address\_id | Linked address ID | | phone\_id | Linked phone number ID | | default | Is this company the default for client? | | verified | Verification status | | created\_at | Creation date | | updated\_at | Last update date | | deleted\_at | Soft deletion date | | name | Company name | | vat\_number | VAT registration number | | reg\_number | Company registration number | | vat\_percent | VAT percentage | | client\_id | Linked client ID | | email\_id | Email linked to company | | user\_id | User linked | | can\_delete | Permission to delete | | import\_id | Import reference | | staged\_import | Staged import flag | | external\_id | External system ID | | client | Linked client object | | vat\_validated | VAT validation status | | vat\_validation\_failed\_reason | Reason for VAT validation failure | | vat\_validated\_with | Method of VAT validation | | vat\_validation\_checked\_at | VAT validation check date | ## Client email Twig variables | Variable | Description | | ----------------- | ------------------------------------- | | id | Email record identifier | | email | Email address | | reg\_hash | Registration hash for verification | | type | Email type (primary, secondary, etc.) | | default | Is this the default email? | | verified | Verification status | | created\_at | Record creation date | | updated\_at | Last updated date | | client\_id | Client associated with this email | | reg\_hash\_expiry | Expiry date/time of reg hash | | client | Client object | ## Client payment method Twig variables | Variable | Description | | ---------------------------- | ---------------------------------------- | | active | Is the payment method active? | | id | Payment method identifier | | user\_id | User linked to payment method | | client\_id | Client associated | | name | Payment method name | | currency\_id | Currency identifier | | default | Is this the default payment method? | | address\_id | Address linked to payment | | card\_type | Card brand/type | | card\_last4 | Last four digits of card | | card\_expire\_date | Expiry date of the card | | allow\_bacs | BACS payment allowed? | | allow\_cheque | Cheque payment allowed? | | created\_at | Creation timestamp | | updated\_at | Last update timestamp | | gateway\_id | Gateway used | | type | Payment method type | | pre\_expiry\_notification | Notify before expiry | | can\_delete | Can this method be deleted? | | external\_id | External identifier | | errors | Error descriptions | | manual | Manual payment method? | | next\_action | Next action required | | sca\_verified | Strong customer authentication verified? | | import\_id | Import reference | | staged\_import | Staged import flag | | auto\_payment | Is auto payment enabled? | | client | Client object | | payment\_method\_type | Type of payment method | | autopayment\_blocked | Is auto payment blocked? | | autopayment\_blocked\_reason | Reason for blocking auto payment | ## Client phone Twig variables | Variable | Description | | -------------------- | ------------------------------- | | id | Phone record identifier | | client\_id | Client associated | | user\_id | User linked | | type | Phone type (mobile, home, etc.) | | default | Is default phone number? | | verified | Verification status | | phone | Phone number | | phone\_code | Phone country code | | created\_at | Record creation timestamp | | updated\_at | Last update timestamp | | deleted\_at | Soft deletion timestamp | | full\_phone | Full formatted phone number | | international\_phone | International number format | | country\_code | Country code | | phone\_country\_code | Code of the phone's country | | can\_delete | Permission to delete | | import\_id | Import reference | | staged\_import | Staged import flag | | external\_id | External system ID | | client | Client object | ## Contract Twig variables | Variable | Description | | ----------------------------------- | --------------------------------------------- | | total\_recurrent\_amount\_formatted | Total recurring amount, formatted for display | | total\_amount\_formatted | Total amount of the contract, formatted | | currency | Currency used in the contract | | id | Unique identifier for the contract | | name | Contract name | | start\_date | Contract start date | | end\_date | Contract end date | | next\_due\_date | Next payment due date | | next\_invoice\_date | Date of the next invoice | | cancellation\_date | Date when the contract was cancelled | | activation\_date | Date contract was activated | | status\_id | Internal status identifier | | total\_recurrent\_amount | Total recurring amount | | total\_amount | Total contract amount | | account\_id | Associated account ID | | user\_id | User who owns the contract | | brand\_id | Brand associated with the contract | | company\_id | Company linked to the contract | | address\_id | Address linked to the contract | | billing\_cycle\_months | Billing cycle duration in months | | currency\_id | Currency identifier | | main\_invoice\_id | Main invoice ID | | payment\_days\_term | Payment terms in days | | create\_invoice\_term | Invoice creation terms | | gateway\_id | Payment gateway used | | payment\_details\_id | Payment details reference | | main\_service\_id | Main service ID | | promotion\_id | Promotion applied | | promotion\_code | Promotion code | | created\_at | Contract creation timestamp | | updated\_at | Last update timestamp | | reseller\_account\_id | Associated reseller account ID | | client\_id | Client ID | | recurring | Is this contract recurring? | | start\_recurring | Start date for recurring billing | | end\_recurring | End date for recurring billing | | status | Contract status | | cancellation\_reason | Reason for contract cancellation | | pricelist\_id | Associated price list ID | | fraud\_status | Fraud check status | | currency\_exchange\_rate | Exchange rate used for currency | | external\_id | External system ID | | locked | Is contract locked? | | billing\_cycle\_days | Billing cycle duration in days | | reconciliation\_strict | Strict reconciliation flag | | main\_invoice\_number | Invoice number of main invoice | | import\_id | Import reference | | staged\_import | Flag for staged import | | finished\_staged\_import | Flag to mark staged import finished | | notes | Admin notes | | tax\_type | Applied tax type | | moved\_from\_contract\_id | Reference to previous contract when moved | | moved\_to\_contract\_id | Reference to next contract when moved | | moved | Is contract moved? | | partially\_moved | Partial move flag | | products | List of products associated | | client | Client object | | phone\_id | Associated phone ID | | tracked\_referral | Referral tracking info | ## Contract product bulk scheduled action Twig variables | Variable | Description | | ------------------- | ------------------------------------ | | id | Unique identifier of the bulk action | | user\_id | User who initiated the action | | params | Parameters for the action | | result\_count | Count of results processed | | ready | Is action ready to execute | | stuck | Is action stuck | | created\_at | Creation timestamp | | updated\_at | Last update timestamp | | products\_processed | Number of products processed | | jobs\_dispatched | Number of jobs dispatched | | org\_id | Organisation ID | | brand\_id | Brand ID | | action | Type of action | ## Contract product scheduled action Twig variables | Variable | Description | | --------------------- | ---------------------------------- | | id | Scheduled action ID | | contract\_id | Linked contract ID | | contract\_product\_id | Linked contract product ID | | brand\_id | Brand identifier | | user\_id | User who scheduled the action | | original\_values | Original data values before action | | values | Updated values | | org\_id | Organisation ID | | action | Action type | | status\_id | Status identifier | | executed\_at | Action execution timestamp | | deleted\_at | Soft deletion timestamp | | created\_at | Creation timestamp | | updated\_at | Last update timestamp | ## Contract request Twig variables | Variable | Description | | --------------------- | ------------------------------- | | id | Request ID | | contract\_id | Associated contract ID | | reason | Reason for the contract request | | product\_old\_ids | Old product IDs associated | | status\_id | Request status ID | | created\_at | Creation timestamp | | updated\_at | Last update timestamp | | deleted\_at | Soft deletion timestamp | | product\_ids | Product IDs for the request | | ticket\_id | Support ticket linked | | status | Request status | | contract\_product\_id | Linked contract product ID | ## Contract product Twig variables | Variable | Description | | ------------------------------------------------------------------- | --------------------------------------- | | id | Unique identifier of contract product | | account\_id | Linked account ID | | contract\_id | Contract associated | | product\_id | Product identifier | | description | Product description | | cost | Cost price | | cost\_currency\_id | Currency ID for cost | | base\_price | Base price | | base\_price\_currency\_id | Currency ID for base price | | selling\_price | Selling price | | cost\_exchange\_rate | Exchange rate for cost | | base\_price\_exchange\_rate | Exchange rate for base price | | quantity | Quantity | | vat\_country\_id | VAT country reference | | vat\_percentage | VAT percentage | | billing\_cycle\_months | Billing cycle duration in months | | product\_set\_id | Product set grouping | | product\_group\_id | Product group identification | | created\_at | Record creation timestamp | | updated\_at | Last update timestamp | | deleted\_at | Soft deletion timestamp | | status\_id | Status identifier | | start\_date | Contract product start date | | end\_date | Contract product end date | | renew\_date | Renewal date | | amount | Amount | | invoice\_id | Linked invoice ID | | invoice\_product\_id | Invoice product ID | | next\_invoice\_date | Next invoicing date | | next\_due\_date | Next payment due date | | discount\_amount | Applied discount amount | | last\_invoice\_id | Last invoice linked | | provision\_provider\_id | Provision provider reference | | provision\_server\_id | Provision server ID | | provision\_center\_id | Provision centre ID | | main\_contracts\_product\_id | Main contract product ID | | provision\_lock | Provision lock flag | | product\_name | Name of the product | | cost\_currency\_code | Currency code of cost | | base\_currency\_code | Base currency code | | provision\_fields | Configuration fields for provisioning | | amount\_formatted | Formatted amount | | cost\_formatted | Formatted cost | | base\_price\_formatted | Formatted base price | | selling\_price\_formatted | Formatted selling price | | discount\_amount\_formatted | Formatted discount amount | | cost\_exchange\_rate\_formatted | Formatted exchange rate for cost | | base\_price\_exchange\_rate\_formatted | Formatted exchange for base price | | status | Status | | product | Product object | | calculated\_suspend\_date | Date calculated for suspension | | calculated\_cancel\_date | Date calculated for cancellation | | calculated\_close\_date | Date calculated for closure | | suspend\_interval | Interval for suspension | | cancel\_interval | Interval for cancellation | | close\_interval | Interval for closure | | is\_due | Is product due for payment | | not\_suspend\_until | Restriction date for suspension | | not\_cancel\_until | Restriction date for cancellation | | not\_close\_until | Restriction date for closure | | selling\_price\_converted | Converted selling price | | unit\_quantity | Unit quantity | | configuration\_selling\_price\_formatted | Formatted configured price | | configuration\_total\_amount\_formatted | Formatted configured total | | configuration\_selling\_price\_discount\_formatted | Formatted discounted price | | configuration\_total\_discount\_amount\_formatted | Formatted total discounts | | configuration\_net\_selling\_price\_formatted | Formatted net selling price | | configuration\_net\_amount\_formatted | Formatted net amount | | configuration\_net\_amount\_discount\_formatted | Formatted net discount | | configuration\_net\_selling\_price\_discount\_formatted | Formatted net selling price discount | | main\_invoice\_product\_id | Main invoice product ID | | net\_selling\_price | Net selling price | | net\_product\_discount\_amount | Net product discount amount | | net\_global\_discount\_amount | Net global discount amount | | net\_amount | Net amount | | vat\_amount | VAT amount | | total\_amount | Total amount | | total\_discount\_amount | Total discount amount | | net\_selling\_price\_formatted | Formatted net selling price | | net\_unit\_selling\_price\_formatted | Formatted net unit selling price | | net\_product\_discount\_amount\_formatted | Formatted product discount | | net\_global\_discount\_amount\_formatted | Formatted global discount | | total\_discount\_amount\_formatted | Formatted total discount | | net\_amount\_formatted | Formatted net amount | | vat\_amount\_formatted | Formatted VAT amount | | total\_amount\_formatted | Formatted total amount | | configuration\_selling\_price\_discounted\_formatted | Formatted discounted selling price | | configuration\_total\_discounted\_amount\_formatted | Formatted discounted total amount | | configuration\_net\_amount\_discounted\_formatted | Formatted net discounted amount | | configuration\_net\_selling\_price\_discounted\_formatted | Formatted net discounted price | | attributes | Attributes of the product | | options | Product options | | set\_products | Set of products | | provision\_configuration\_id | Provision configuration ID | | is\_provisioned | Flag if provisioned | | activation\_date | Activation date | | configuration\_total\_recurring\_amount\_formatted | Formatted recurring total | | configuration\_total\_recurring\_discounted\_amount\_formatted | Formatted recurring discounts | | external\_id | External system identifier | | service\_identifier | Service identifier | | billing\_cycle\_days | Billing cycle duration in days | | suspended\_date | Suspension date | | cancelled\_date | Cancellation date | | closed\_date | Closing date | | pro\_rata\_pending | Pending proration | | renew | Renewal flag | | notes | Notes | | contract | Linked contract | | provision\_field\_values | Provision configuration values | | configuration\_total\_recurring\_net\_amount\_formatted | Net recurring total | | configuration\_total\_recurring\_net\_discounted\_amount\_formatted | Net recurring discounts | | next\_invoice\_date\_archive | Archived next invoice date | | original\_product\_id | Original product ID | | can\_create\_next\_invoice | Permission to create next invoice | | total\_amount\_without\_discount\_formatted | Total amount excluding discount | | total\_amount\_without\_discount\_converted | Converted total excluding discount | | total\_unit\_selling\_price\_formatted | Total unit selling price | | total\_unit\_selling\_price\_converted | Converted unit selling price | | configuration\_total\_recurring\_amount\_converted | Converted recurring total | | is\_converted\_price | Flag indicating converted pricing | | is\_delegated\_object | Flag if object is delegated | | price\_type | Pricing type | | import\_id | Import reference | | staged\_import | Staged import flag | | main\_invoice\_id | Main invoice reference | | main\_invoice\_number | Main invoice number | | manual\_status | Manual status | | manual\_status\_reason | Reason for manual status | | paid\_future\_invoices | Flag if future invoices are paid | | can\_modify | Permission to modify | | can\_cancel | Permission to cancel | | sub\_products | Nested sub-products | | recommended\_money\_back\_period | Money-back guarantee period | | auto\_create\_renew\_invoice | Flag to auto-create renew invoices | | payment\_days\_term | Payment terms in days | | create\_invoice\_term | Invoice creation terms | | expire\_notice\_date | Expiry notice date | | net\_amount\_without\_discount\_formatted | Net amount excluding discount | | active\_for\_months | Active duration in months | | due\_in\_days | Days remaining for payment | | tax\_amount | Tax amount | | tax\_amount\_formatted | Formatted tax amount | | client\_label | Label set by client | | provision\_setup\_fields\_confirmed | Confirmation of provision fields | | accounting\_revenue\_recognition | Accounting revenue recognition | | moved\_from\_contract\_product\_id | Previous contract product linkage | | moved\_to\_contract\_product\_id | Next contract product linkage | | moved | Flag if product moved | | trial\_end\_action\_time | Trial end action schedule | | in\_trial | Is product in trial period | | trial\_duration | Duration of trial | | trial\_end\_action | Action to execute at trial end | | trial\_pre\_expire\_notification | Notification before trial expiry | | trial\_pre\_expire\_notification\_date | Date for pre-expire notification | | trial\_end\_date | Trial end date | | provision\_provider | Service provisioning provider | | provision\_configuration | Provisioning configuration | | invoice\_consolidation\_enabled | Invoice consolidation flag | | invoice\_consolidation\_enabled\_calculated | Calculated invoice consolidation | | tax\_entity\_details | Tax entity details | | tax\_entity\_hash | Tax entity hash | | exclude\_from\_uuid\_encoding | Exclude from UUID encoding | | last\_provision\_setup\_request | Timestamp of last provision setup | | last\_reconciled\_at | Last reconciliation timestamp | | retention\_status\_id | Retention policy status ID | | retention\_reason\_id | Reason for retention status | | retention\_status\_updated\_at | Time of retention status update | | retention\_updated\_at | Retention data last updated | | currency\_code | Currency code | | future\_renewal\_price | Price for future renewal | | configuration\_future\_renewal\_price | Formatted future renewal price | | name | Contract product name | | calculated\_next\_invoice\_due\_date | Next invoice due date | | org\_id | Organisation ID | | brand\_id | Brand ID | | client\_id | Client ID | | configuration\_selling\_price | Selling price configured | | configuration\_total\_recurring\_net\_amount | Net recurring total | | promotions | Applied promotions | | scheduled\_actions | Scheduled contract actions | | promotion\_codes | Promotion codes | | is\_parent | Indicates if contract product is parent | ## Cost Twig variables | Variable | Description | | ----------------- | ------------------------------------------------------------ | | amount\_formatted | The formatted amount, usually currency formatted for display | | currency\_code | The currency code related to the amount (e.g., USD, EUR) | ## Credit debit transaction Twig variables | Variable | Description | | -------------------------------------- | ------------------------------------------- | | currency\_code | Currency code of the transaction | | id | Unique identifier of the transaction | | credit | Credit amount in the transaction | | debit | Debit amount in the transaction | | invoice\_id | Linked invoice identifier | | client\_id | Client identifier | | account\_id | Account related to transaction | | user\_id | User who performed the transaction | | transaction\_id | Transaction unique ID | | reason | Reason or description for the transaction | | created\_at | Date and time of creation | | updated\_at | Last update date and time | | payment\_log\_id | Linked payment log identifier | | captured | Amount captured flag | | deleted\_at | Soft deletion timestamp | | currency\_id | Currency identifier | | transaction\_type | Type of transaction (e.g., payment, refund) | | parent\_id | Parent transaction ID | | refunded | Refund status | | amount\_refunded | Amount refunded | | gateway\_id | Payment gateway identifier | | amount\_captured | Amount captured | | type | Transaction type | | currency\_exchange\_rate | Exchange rate at the time of transaction | | shared\_resource\_token | Token for shared resource access | | import\_id | External import ID | | staged\_import | Staged import flag | | external\_id | External system identifier | | document\_currency\_id | Currency ID for document currency | | document\_currency\_exchange\_rate | Exchange rate for document currency | | document\_amount\_converted | Converted document amount | | document\_amount\_converted\_formatted | Formatted converted document amount | | document\_currency | Currency code for the document | ## Custom field value Twig variables | Variable | Description | | -------------- | ---------------------------------------------------- | | id | Unique custom field value identifier | | field\_id | Identifier of the custom field | | value | Value assigned to the custom field | | created\_at | Timestamp when the value was created | | updated\_at | Timestamp when the value was updated | | import\_id | Import reference | | staged\_import | Staged import flag | | external\_id | External system ID | | object\_type | Type of object this field relates to | | image\_url | URL to an image related to the field (if applicable) | ## Delegate Twig variables | Variable | Description | | ----------------------- | ---------------------------------------------------------- | | id | Unique delegate identifier | | org\_id | Organisation ID this delegate is related to | | brand\_id | Brand ID associated with the delegate | | owner\_client\_id | Client ID of the owner of the delegation | | client\_id | Client ID who is delegated to | | lead\_id | Lead ID linked to the delegation | | is\_full\_delegate | Boolean flag, indicates if delegation includes full access | | active | Boolean flag, whether delegation is active | | hash | Unique hash for delegation identification | | invite\_email | Email address used for inviting delegate | | num\_delegated\_cps | Number of delegated contract products | | num\_delegated\_tickets | Number of delegated support tickets | | lead | Lead object linked to the delegation | | client | Client object linked to the delegation | | owner\_client | Owner client object | | created\_at | Creation timestamp | | updated\_at | Last update timestamp | ## Delegated access Twig variables | Variable | Description | | --------------------- | ------------------------------------- | | id | Unique delegated access identifier | | account\_id | Account ID associated | | client\_id | Client associated | | object\_id | Object ID the delegation applies to | | object\_type | Type of the object | | creator\_object\_id | Creator ID of the delegated access | | creator\_object\_type | Creator object type | | created\_at | Created timestamp | | updated\_at | Updated timestamp | | deleted\_at | Soft deletion timestamp | | brand\_id | Brand ID | | active | Active status flag | | hash | Unique hash identifier | | org\_id | Organisation ID | | invite\_email | Email address used for the invitation | | import\_id | Import reference | | staged\_import | Staged import flag | | external\_id | External system ID | | owner\_client\_id | Owner client ID | | client | Client object | | invite\_lead\_id | Lead ID for invitation | | delegate\_id | Delegate ID | ## Email Twig variables | Variable | Description | | ---------------------- | ------------------------------------ | | id | Unique email identifier | | recipient\_type\_id | Type identifier of recipient | | recipient\_id | Recipient ID | | client\_id | Client ID | | user\_id | User ID | | account\_id | Account ID | | brand\_id | Brand ID | | reseller\_account\_id | Reseller account ID | | sent | Whether the email was sent | | message\_id | Message ID | | bounced | Bounced status | | error\_id | Error identifier if sending failed | | error\_message | Error message | | resend\_email\_id | Reference to resent email | | template\_id | Template ID used | | template\_content\_id | Content ID of the template message | | smart\_template\_id | Smart template ID | | language\_id | Language ID | | subject | Email subject | | smart\_email\_id | Smart email ID | | created\_at | Creation timestamp | | updated\_at | Last update timestamp | | sent\_at | Actual sent timestamp | | bounced\_at | Bounce timestamp | | bounce\_data | Bounce details | | from | Sender email address | | reply\_to | Reply-to email address | | to | Recipient email addresses | | cc | CC email addresses | | bcc | BCC email addresses | | hook\_log\_id | Related hook log ID | | resent | Resent flag | | lead\_id | Linked lead ID | | hourly\_rate\_exceeded | Flag for hourly rate limits exceeded | ## Gateway Twig variables | Variable | Description | | ------------------------------------- | ------------------------------------------------------ | | currencies | List of currencies supported by the gateway | | id | Gateway identifier | | name | Gateway name | | provider | Gateway provider name | | created\_at | Gateway creation timestamp | | updated\_at | Gateway last update timestamp | | deleted\_at | Gateway deletion timestamp (soft delete) | | type | Gateway type (e.g., card, bank transfer) | | gateway\_provider\_id | External provider ID for the gateway | | org\_id | Organisation ID associated with the gateway | | payment\_instructions | Human-readable payment instructions for this gateway | | hash | Internal hash for gateway reference | | gateway\_settings | Serialized or structured gateway configuration details | | payment\_instructions\_translated | Localised payment instructions (translated) | | is\_stored | Flag indicating if gateway data is stored for reuse | | card\_types | Supported card types (e.g., Visa, MasterCard) | | translations | Available translations for gateway content | | short\_description | Brief description of gateway capabilities | | name\_translated | Gateway name translated per locale | | short\_description\_translated | Translated short description | | provider\_logo | Logo asset for the provider | | gateway\_provider | Gateway provider object or identifier | | oauth\_application\_access\_token\_id | OAuth token ID used for API access | | require\_stored | Whether stored credentials are required | | auth\_type | Authentication type (e.g., OAuth, API key) | | webhook\_url | Webhook URL for gateway events | | import\_id | Import reference for gateway data | | staged\_import | Staged import flag for gateway data | | external\_id | External system ID | | allow\_manual\_store | Allow manual storage of gateway data | | use\_frontend\_implementation | Indicator for frontend-based gateway integration | | store\_on\_payment | Store gateway details upon payment | | store\_on\_payment\_force | Force-stored gateway details on payment | | store\_outside\_payment | Store gateway details outside the payment flow | | internal\_name | Internal naming convention for the gateway | ## Invoice Twig variables | Variable | Description | | ----------------------------------------- | ------------------------------------------------------ | | net\_selling\_price\_formatted | Formatted net selling price | | net\_product\_discount\_amount\_formatted | Formatted net product discount amount | | net\_global\_discount\_amount\_formatted | Formatted global discount amount | | total\_discount\_amount\_formatted | Formatted total discount amount | | net\_amount\_formatted | Formatted net amount (after discounts) | | vat\_amount\_formatted | Formatted VAT amount | | total\_amount\_formatted | Formatted total invoice amount | | paid\_amount\_formatted | Formatted amount paid so far (if partial) | | current\_data | Snapshot of current invoice data (context) | | currency | Currency code (e.g., USD) | | id | Invoice ID | | number | Human-readable invoice number | | brand\_id | Brand context for the invoice | | account\_id | Linked account ID | | client\_id | Client ID associated with the invoice | | gateway\_id | Payment gateway used for the invoice | | payment\_details\_id | Payment details reference | | status\_id | Invoice status identifier | | created\_at | Invoice creation timestamp | | updated\_at | Last invoice update timestamp | | deleted\_at | Invoice deletion timestamp | | create\_datetime | Invoice creation date/time (alias) | | due\_date | Payment due date | | paid\_datetime | Date/time when payment completed | | total\_amount | Total invoice amount (unformatted) | | currency\_id | Currency identifier | | pricelist\_id | Pricing list reference | | total\_discount\_amount | Total discount applied | | net\_global\_discount\_amount | Net global discount amount (undiscounted) | | net\_product\_discount\_amount | Net product discount amount (undiscounted) | | net\_selling\_price | Net selling price (before formatting) | | net\_amount | Net amount (before formatting) | | VAT fields: | VAT-related fields included above as formatted amounts | | contract\_id | Contract associated with this invoice | | user\_id | User performing invoice actions | | reseller\_account\_id | Reseller context ID if applicable | | address\_id | Address tied to invoice | | category\_id | Invoice category ID | | company\_id | Company ID for the invoice context | | refund\_request | Refund request flag | | refund\_changed | Refund status changed flag | | refund\_status | Current refund status | | consolidation\_status | Invoice consolidation status | | consolidation\_invoice\_id | Linked consolidated invoice ID | | credit\_invoice\_id | Credit invoice ID if issued | | credited | Credited flag | | legacy | Legacy invoice flag | | notes | Administrative notes | | data | Arbitrary data payload | | status | Invoice status (alias for status\_id) | | next\_charge\_date | Next charge date if recurring | | payment\_failed\_attempts | Count of failed payment attempts | | locked | Invoice locked flag | | guest\_token\_id | Guest session token, if applicable | | pre\_due\_notification\_date | Notification date before due date (reminder) | | overdue\_notification\_date | Notification date for overdue status | | overdue\_left\_attempts | Remaining attempts before enforcement | | balance | Current balance due on the invoice | | balance\_formatted | Formatted balance due | | fraud\_status | Fraud check status | | fraud\_score | Fraud risk score | | ip | IP address associated with invoice event | | abandoned | Abandoned invoice flag | | abandon\_date | Date when invoice was abandoned | | temp\_token\_id | Temporary token for invoice actions | | currency\_exchange\_rate | Exchange rate used for currency conversion | | total\_amount\_converted | Converted total amount | | paid\_amount\_converted | Converted paid amount | | net\_discount\_amount\_formatted | Formatted net discount amount | | net\_discount\_amount | Net discount amount (raw) | | cancellation\_datetime | Cancellation timestamp (if cancelled) | | warning\_notes | Administrative warnings | | category | Invoice category or taxonomy | | credit\_invoice | Linked credit invoice, if any | | net\_amount\_converted | Converted net amount | | external\_id | External system ID | | external\_contract\_id | External contract ID, if linked | | partial\_amount\_credited | Partial amount credited | | unspent discounts / unspent credits | See related fields (if applicable) | | partial\_amount\_to\_credit\_formatted | Formatted partial credit amount | | partial\_amount\_to\_credit\_converted | Converted partial credit amount | | partial\_amount\_credited\_formatted | Formatted credited amount | | partial\_amount\_credited\_converted | Converted credited amount | | duplicate\_from | Original invoice reference if duplicate | | duplicated\_with | Duplicated invoice reference ID | | auto\_cancel\_date | Automatic cancellation date, if applicable | | auto\_cancel\_pro\_rata\_date | Pro-rata date for auto-cancel under terms | | duplicate\_from\_invoice\_id | ID of source invoice in duplicates | | duplicatied\_with\_invoice\_id | (Alias) duplicate reference | | allow\_product\_credit | Allow product-level credit flag | | delegate\_related | Related delegate information | | to\_be\_credited | Amount to be credited | | import\_id | Import reference | | staged\_import | Staged import flag | | client | Client object | | today\_exchange\_rate | Exchange rate for today | | pending\_payments | Pending payments count/details | | vat\_amount\_converted | Converted VAT amount | | tax\_amount | Tax amount | | tax\_amount\_formatted | Formatted tax amount | | tax\_amount\_converted | Converted tax amount | | display\_status | Human-friendly status label | | taxes | Taxes applied to invoice | | products | Products included in the invoice | | meta | Metadata for the invoice | | is\_consolidation | Consolidation flag | | phone\_id | Linked phone ID | | payment\_currency\_id | Currency ID used for payment | | payment\_currency\_exchange\_rate | Exchange rate for payment currency | | object\_meta | Object-level metadata | | object\_meta\_data | Additional object metadata | | gateway | Gateway object or identifier used for payment | | tracked\_referral | Referral tracking information | | proforma | Proforma status flag | | proforma\_number | Proforma invoice number | | proforma\_create\_datetime | Proforma creation timestamp | | cancellation\_reason | Reason for cancellation, if cancelled | | shared | Shared status flag | | payments | Related payment records | | contract | Linked contract object | | grouped\_taxes | Taxes grouped for display | ## Invoice payment Twig variables | Variable | Description | | -------------------------------------- | ------------------------------------------------- | | id | Payment ID | | invoice\_id | Linked invoice ID | | payment\_details\_id | Payment details reference | | voucher\_id | Voucher or receipt ID | | payment\_type\_id | Payment type ID | | currency\_id | Currency identifier | | amount | Payment amount | | transaction\_id | Transaction reference with gateway | | created\_at | Payment creation timestamp | | updated\_at | Last update timestamp | | deleted\_at | Deletion timestamp (soft) | | captured | Capture status flag | | amount\_captured | Amount captured | | first\_date\_time\_captured | First capture timestamp | | payment\_log\_id | Related payment log entry | | refunded | Has refund occurred? | | amount\_refunded | Amount refunded | | parent\_id | Parent payment for split/partial payments | | amount\_formatted | Formatted payment amount | | currency | Currency code (e.g., USD) | | payment\_type | Payment method type | | invoice | Linked invoice object | | currency\_exchange\_rate | Exchange rate used for currency conversion | | shared\_resource\_token | Token for shared resources | | amount\_refunded\_formatted | Formatted refunded amount | | amount\_for\_refund\_formatted | Formatted refundable amount | | amount\_converted | Converted amount | | amount\_refunded\_converted | Converted refunded amount | | amount\_for\_refund\_converted | Converted refundable amount | | pending | Pending status flag | | import\_id | Import reference | | staged\_import | Staged import flag | | external\_id | External system ID | | gateway | Gateway object or identifier used for the payment | | payment\_details | Payment details object | | client | Client object | | document\_currency\_id | Currency ID for document currency (for reporting) | | document\_currency\_exchange\_rate | Exchange rate for document currency | | document\_amount\_converted | Converted document amount | | document\_amount\_converted\_formatted | Formatted converted document amount | | document\_currency | Document currency code | | payment\_method\_type | Payment method type (e.g., card) | | payment\_method\_type\_deprecated | Deprecated field for payment method type | | payment\_method\_type\_log | Payment method type history/log | ## Lead Twig variables | Variable | Description | | -------------------- | -------------------------------------- | | id | Lead ID | | name | Lead name | | firstname | Lead first name | | lastname | Lead last name | | email | Lead email address | | is\_main | Is this the main contact for the lead? | | is\_hidden | Is lead hidden from certain views? | | phone | Lead phone number | | phone\_code | Lead phone code | | phone\_country\_code | Lead phone country code | | international\_phone | International formatted phone | | client\_id | Linked client ID, if converted | | comment | Lead notes or comments | | assigned\_client\_at | Timestamp when assigned to a client | | created\_at | Lead creation timestamp | | updated\_at | Lead last update timestamp | | user\_id | User linked to the lead | | brand\_id | Brand context | | org\_id | Organisation context | | full\_name | Full name of the lead | ## Domain Twig variables | Variable | Description | | ------------------------- | ---------------------------------------------------------- | | id | Domain identifier | | user\_id | User responsible for domain context | | name | Domain name or label | | origin | Source origin or base domain reference | | org\_id | Organisation ID owning the domain | | brand\_id | Brand ID associated with the domain (for branding context) | | verified | Whether the domain verification has completed | | default | Is this the primary domain for the entity | | custom | Custom flags or settings for the domain | | revoked | Whether the domain has been revoked | | created\_at | Domain creation timestamp | | updated\_at | Last update timestamp | | origin\_healthy | Health flag for the origin/delivery path | | customer\_enabled | Whether customers can access or use this domain | | provider | Underlying provider (e.g., DNS providers) | | staff\_enabled | Whether staff can manage/use domain specifics | | dns\_healthy | DNS health status | | ssl\_healthy | SSL health status | | health\_checked\_at | Last time health was checked | | dns\_checked\_at | Last DNS health check timestamp | | ssl\_checked\_at | Last SSL health check timestamp | | no\_health\_checks\_until | Time until next health check is required | ## Organisation Twig variables | Variable | Description | | --------------------- | ----------------------------------------------- | | id | Organisation identifier | | name | Organisation name | | code | Organisation code/short name | | verified | Organisation verification status | | completed | Completion status of initial setup/verification | | status | Current status (e.g., active) | | portal\_domain | Default portal domain for organisation | | reg\_hash | Registration hash (for onboarding flows) | | staff\_portal\_domain | Domain for staff/admin portal | | reg\_hash\_expiry | Expiry timestamp for onboarding reg hash | ## Payment reconciliation log Twig variables | Variable | Description | | ---------------------- | --------------------------------------- | | id | Reconciliation log ID | | callback | Callback data or flag | | transaction\_reference | External reference to the transaction | | description | Description of the reconciliation event | | reason | Reason for reconciliation action | | provider | Payment provider or gateway name | | event | Event type triggering reconciliation | | org\_id | Organisation ID involved | | gateway\_id | Gateway used for the transaction | | created\_at | Creation timestamp | | updated\_at | Last update timestamp | | brand\_id | Brand context | | account\_id | Account context | ## Payment log Twig variables | Variable | Description | | -------------------------------------- | ------------------------------------------ | | id | Payment log ID | | brand\_id | Brand context | | account\_id | Account context | | user\_id | User who initiated payment | | client\_id | Client receiving payment | | payment\_details\_type | Type of payment details object | | status | Payment status (e.g., captured, pending) | | transaction\_id | Gateway transaction reference | | invoice\_id | Linked invoice | | currency\_id | Currency identifier | | amount | Payment amount (raw) | | clients\_payment\_detail\_id | Client's payment detail reference | | gateway\_id | Gateway used for payment | | transaction\_type | Type of transaction (e.g., sale, refund) | | created\_at | Creation timestamp | | updated\_at | Last update timestamp | | currency\_exchange\_rate | Exchange rate used for currency conversion | | shared\_resource\_token | Token for shared resources | | result | Result flag or status from processing | | address\_id | Address related to payment | | result\_log\_id | Related result log entry | | wallet\_id | Wallet context identifier | | document\_currency\_id | Currency for document/reports | | document\_currency\_exchange\_rate | Exchange rate for document currency | | document\_amount\_converted | Converted document amount | | document\_amount\_converted\_formatted | Formatted converted document amount | | document\_currency | Document currency code | | payment\_method\_type | Type of payment method used | ## Pricelist Twig variables | Variable | Description | | --------------------- | ---------------------------------------------- | | id | Pricelist ID | | name | Pricelist name | | user\_id | Owner user ID | | reseller\_account\_id | Associated reseller account if applicable | | created\_at | Creation timestamp | | updated\_at | Last update timestamp | | deleted\_at | Soft deletion timestamp | | org\_id | Organisation ID owning the pricelist | | inheritance | Inheritance flag or parent pricelist reference | ## Product Twig variables | Variable | Description | | ------------------------------------------ | ------------------------------------------------- | | name\_translated | Translated product name | | description\_translated | Translated product description | | tld | Top-level domain or related TLD context | | domain\_operation\_code | Domain operation code (e.g., create, renew) | | provision\_fields | Provisioning fields and definitions | | category | Product category | | translations | Available translations for product fields | | id | Product ID | | name | Product name | | code | Unique product code | | billing\_cycle\_months | Billing cycle duration in months | | available\_for\_sales | Availability flag for sales | | created\_at | Creation timestamp | | updated\_at | Last update timestamp | | brand\_id | Brand association | | user\_id | Owner user ID | | reseller\_account\_id | Reseller account ID (if applicable) | | deleted\_at | Soft deletion timestamp | | product\_type | Type of product (e.g., service, licence) | | order\_type | Ordering type | | unit\_quantity | Base unit quantity per order | | set\_order\_type | Order type for sets | | min\_order\_quantity | Minimum quantity allowed | | max\_order\_quantity | Maximum quantity allowed | | set\_price\_type | Pricing type for sets | | contract\_type | Contract type associated | | currency\_id | Currency ID for pricing | | max\_order\_billing\_cycle | Max billing cycle for orders | | max\_set\_use\_period | Maximum use period for set products | | voucher\_value | Value of any voucher applied | | voucher\_currency\_id | Currency for voucher value | | voucher\_type | Voucher type | | voucher\_use\_months | Duration voucher is valid (months) | | set\_end\_date | End date for set products | | auto\_renew | Auto-renew flag | | manual\_assistance | Manual assistance flag | | manual\_price | Manual price override flag | | provision\_category\_id | Provisioning category reference | | provision\_provider\_type | Provisioning provider type | | main\_product | Indicates if this is the main product in a bundle | | in\_group | Grouping indicator for products | | original\_product\_id | Original product reference for clones/variants | | org\_id | Organisation owning the product | | affiliate\_product\_id | Affiliate product mapping | | tld\_id | TLD reference ID | | operation\_type | Operational type for provisioning | | products\_category\_id | Product category reference | | products\_options\_category\_id | Product options category reference | | products\_attributes\_category\_id | Product attributes category reference | | description | Product description | | order | Order metadata or sequence | | category\_id | Category ID for organisational grouping | | start\_date | Product validity start date | | end\_date | Product validity end date | | short\_description | Short product description | | short\_description\_translated | Translated short description | | additional\_currency\_recalculation | Flag for currency recalculation behaviour | | display\_price | Display price value | | display\_price\_billing\_cycle\_months | Price display relative to billing cycles | | unit\_id | Unit identifier | | provision\_provider\_id | Provisioning provider ID | | provision\_blueprint\_id | Provisioning blueprint ID | | provision\_configuration\_mode | Provisioning mode | | provision\_configuration\_id | Provisioning configuration ID | | clients\_can\_order | Client order permission | | provision\_configuration\_attribute\_query | Provisioning attribute query | | provision\_blueprint\_setup\_function\_id | Provisioning setup function ID | | tax\_template\_id | Tax template reference | | external\_id | External system ID | | default\_payment\_period | Default payment period for invoicing | | import\_id | Import reference | | staged\_import | Staged import flag | | allow\_affiliate | Affiliate permission | | suspend\_interval | Suspension interval | | cancel\_interval | Cancel interval | | close\_interval | Close interval | | due\_date\_free\_change | Free change of due date flag | | due\_date\_restriction | Due date restriction policy | | reactivate\_status\_restriction | Reactivation restriction policy | | cancel\_anytime | Cancel anytime flag | | recommended\_money\_back\_period | Money-back recommendation period | | payment\_days\_term | Payment term in days | | create\_invoice\_term | Invoice creation term | | module\_code | Module code for integrations | | module\_sub\_id | Module sub-identifier | | auto\_create\_renew\_invoice | Auto-create renew invoice flag | | post\_paid | Post-paid flag | | hide\_catalog | Hide catalogue flag | | ui\_settings | User interface settings for product | | old\_provision\_blueprint\_id | Historical blueprint reference | | provision\_setup\_field\_defer\_mode | Provisioning field defer mode | | accounting\_revenue\_recognition | Revenue recognition settings | | meta | Metadata for the product | | trial\_supported | Trial support flag | | trial\_duration | Duration of trial (in days) | | trial\_end\_action | Action at trial end | | trial\_pre\_expire\_notification | Pre-expire notification flag/date | | trial\_force | Force trial flag | | is\_trial\_only | Is trial-only product | | can\_disable\_auto\_create\_renew\_invoice | Auto-renew disable flag | | invoice\_consolidation\_enabled | Invoice consolidation flag | | finished\_staged\_import | Finished staged import flag | | auto\_accept\_cancel\_request | Auto-accept cancel requests flag | | report\_code\_1 | Custom report code 1 | | report\_code\_2 | Custom report code 2 | | brand\_ticket\_department\_id | Brand ticket department reference | | hidden | Visibility flag for product | | provision\_meta | Provisioning metadata | | provision\_field\_values | Provisioning field values | | exclude\_from\_uuid\_encoding | Exclude from UUID encoding flag | | brand | Brand reference or object | | manual\_recurring\_days\_before\_due\_date | Days before due date for manual recurrence | | split\_quantity | Quantity split behaviour | ## Product group Twig variables | Variable | Description | | ---------------- | ------------------------------------------------------- | | name\_translated | Localised name of the product group | | translations | Collection of translations related to the product group | ## Promotion Twig variables | Variable | Description | | ------------------------------ | ------------------------------------------------------ | | name\_translated | Localised name of the promotion | | description\_translated | Localised description text | | amount\_formatted | Promotion amount formatted for display | | translations | Set of localised strings associated with the promotion | | id | Unique identifier for the promotion | | name | Name of the promotion | | from\_date | Start date validity | | to\_date | End date validity | | max\_uses | Maximum allowed uses | | number\_of\_uses | Number of times promotion has been used | | code | Promotion code | | brand\_id | Associated brand identifier | | for\_new\_clients | Flag indicating applicability to new clients | | for\_existing\_clients | Flag indicating applicability to existing clients | | for\_upgrade\_clients | Flag indicating applicability for upgrades | | promo\_recurring\_count | Count of recurring promo usage | | active | Whether the promotion is currently active | | user\_id | User who created or manages the promotion | | reseller\_account\_id | Reseller account linked to the promotion | | created\_at | Creation timestamp | | updated\_at | Last updated timestamp | | deleted\_at | Soft deletion timestamp | | max\_uses\_per\_client | Max usage allowed per individual client | | autoapply | Whether the promotion auto-applies | | used\_at | Timestamp when promotion was last used | | global | Global flag for promotion scope | | amount | Numeric promotion amount | | currency\_id | Currency identifier for the amount | | type | Type/category of promotion | | combined | Whether combinable with other promotions | | short\_description | Brief textual description | | short\_description\_translated | Localised brief description | | pricelist\_id | Related pricelist identifier | | billing\_cycle\_months | Applicable billing cycle in months | | external\_id | Identifier from external systems | | show\_on\_catalog | Visibility flag for catalogue display | | constant\_discount | Flag indicating a fixed discount | | hidden | Flag whether promotion is hidden | | adjusted\_basket\_id | Basket identifier adjusted by promotion | | min\_quantity | Minimum quantity to activate promotion | | max\_quantity | Maximum quantity allowed for promotion | ## Provision result Twig variables | Variable | Description | | ----------------------------- | ------------------------------------------------------- | | id | Unique identifier of the provisioning result | | request\_id | Related provisioning request ID | | status | Current status of the provisioning (e.g., success/fail) | | message | Status or error message | | error\_id | Identifier for any error occurred | | created\_at | Timestamp of creation | | updated\_at | Last updated timestamp | | data | Additional data or payload returned | | import\_id | Import process identifier | | staged\_import | Flag if the import was staged | | external\_id | External system identifier | | debug | Debugging data or logs | | exclude\_from\_uuid\_encoding | Flag indicating exclusion from UUID encoding | | request | Object or content of the original provisioning request | ## Report Twig variables | Variable | Description | | ------------- | --------------------------------------------------- | | id | Report identifier | | brand\_id | Associated brand identifier | | user\_id | User who generated the report | | report\_code | Code representing the report | | filename | Filename of the report file | | params | Parameters used for report generation | | ready | Flag indicating if the report is ready for download | | created\_at | Report creation timestamp | | updated\_at | Last update timestamp | | download\_url | URL for downloading the report | | external | Flag if report is externally sourced | ## Tax tag Twig variables | Variable | Description | | ----------------------------------- | ----------------------------------------- | | id | Tax tag identifier | | name | Tax tag name | | type | Tax type/category | | amount | Numeric tax amount | | currency\_id | Currency associated with the tax | | tax\_type\_id | Type ID for classification | | tax\_code | Official tax code | | org\_id | Organisation identifier | | user\_id | User who created or modified the tag | | show\_on\_item | Flag to display on item lines in invoice | | show\_on\_invoice | Flag to display on invoice summaries | | created\_at | Creation timestamp | | updated\_at | Last update timestamp | | deleted\_at | Soft deletion timestamp | | brand\_id | Brand context | | base\_type | Base tax type | | company\_type | Company classification for tax | | company\_amount | Company related tax amount | | require\_company\_vat\_number | VAT number requirement flag | | require\_company\_reg\_number | Registration number requirement flag | | apply\_on\_main\_product\_only | Apply tax only on main product | | apply\_based\_on\_product\_quantity | Apply based on quantity thresholds | | name\_translated | Localised tax name | | system\_tag | System internal tag name | | amount\_formatted | Formatted tax amount | | company\_amount\_formatted | Formatted company tax amount | | fixed\_amount\_apply\_on\_zero | Flag for fixed tax applying on zero sales | ## Tax template Twig variables | Variable | Description | | ---------------- | ----------------------------------------- | | id | Tax template identifier | | name | Name of the tax template | | brand\_id | Associated brand | | org\_id | Organisation owning the template | | user\_id | User who created or modified the template | | created\_at | Creation timestamp | | updated\_at | Last update timestamp | | deleted\_at | Soft deletion flag | | default | Flag marking default template | | name\_translated | Localised template name | | system\_template | Flag indicating a system-defined template | ## Template Twig variables | Variable | Description | | ---------------------- | ------------------------------------------------- | | subject | The subject line of the email template | | body | The main body content (HTML/text) of the template | | id | Unique identifier for the template | | name | Name of the template | | category\_id | Category grouping identifier | | channel\_id | Communication channel identifier | | recipient\_type\_id | Type identifier for intended recipients | | brand\_id | Brand the template is associated with | | reseller\_account\_id | Reseller account associated with template | | reseller\_can\_copy | Flag allowing reseller to duplicate the template | | default | Flag indicating if template is default | | enabled | Template enabled status | | code | Unique code identifier | | user\_id | User who created or owns the template | | created\_at | Creation timestamp | | updated\_at | Last updated timestamp | | deleted\_at | Timestamp of soft deletion | | type | Template type (e.g., email, notification) | | send\_attachment | Flag indicating if attachments are sent | | original\_template\_id | Reference ID for cloned/original template | | template\_layout\_id | Layout structure ID | | bcc | Blind carbon copy addresses | | cc | Carbon copy addresses | | topic\_id | Topic or conversation grouping identifier | ## Template content Twig variables | Variable | Description | | ------------------- | -------------------------------------------- | | id | Content record identifier | | template\_id | Parent template ID | | language\_id | Language identifier for localisation | | enabled | Content enabled flag | | default | Flag indicating default content for language | | subject | Content subject line | | body | Content body text or HTML | | created\_at | Creation timestamp | | updated\_at | Last updated timestamp | | deleted\_at | Soft deletion timestamp | | smart\_template\_id | Linked smart template ID | ## Ticket Twig variables | Variable | Description | | ------------------------------- | ---------------------------------------------- | | status | Current status of the ticket | | id | Ticket unique identifier | | reference | Human-readable reference code | | subject | Ticket subject line | | client\_id | Associated client’s identifier | | reseller\_account\_id | Reseller account linked | | account\_id | Account ID related to ticket | | brand\_id | Brand context identifier | | org\_id | Organisation ID | | user\_id | User responsible for the ticket | | status\_id | Numerical status identifier | | created\_at | Ticket creation datetime | | updated\_at | Last update timestamp | | lead\_id | Lead ID associated | | invoice\_id | Invoice related to ticket | | calculated\_notify\_close\_date | Calculated notification date for closure | | calculated\_close\_date | Calculated closure date | | ticket\_department\_id | Department handling the ticket | | priority\_id | Priority level identifier | | object\_type | Type of object ticket is related to | | object\_id | ID of the related object | | template\_id | Template applied to ticket | | contract\_product\_id | Linked contract product | | is\_delegated\_object | Flag for delegation status | | client | Client object | | lead | Lead object | | source\_type | Origin type of ticket | | source\_ip | IP address from which ticket was created | | email\_file | Linked email file attachments | | import\_id | Import reference | | staged\_import | Staged import flag | | external\_id | External system ID | | department | Ticket department name | | first\_message | First message content | | last\_message | Last message content | | spam | Spam flag | | spam\_reason | Reason for spam flag | | lead\_user | User linked as lead | | can\_see\_ticket\_messages | Permission flag for ticket messages visibility | ## Ticket message Twig variables | Variable | Description | | ----------------------------- | ---------------------------------------------- | | user\_name | Name of the user who sent the ticket message | | client\_name | Name of the client who sent the ticket message | | user\_image\_url | URL of the user’s avatar image | | client\_image\_url | URL of the client’s avatar image | | id | Ticket message identifier | | ticket\_id | Linked ticket identifier | | client\_id | Client sending the message | | user\_id | User sending the message | | is\_private | Flag indicating message privacy | | body | Message content | | created\_at | Creation timestamp | | updated\_at | Last updated timestamp | | ticket | Ticket object | | lead\_id | Lead linked to message | | template\_id | Template used for message | | object\_type | Related object type | | object\_id | Related object ID | | deleted\_at | Soft delete timestamp | | reason | Reason for deletion or action | | action | Action taken | | original\_ticket\_message\_id | Reference ID for original message | | is\_log | Flag indicating if message is log entry | | source\_type | Origin type of message | | source\_ip | IP address source | | user\_actor\_id | User actor identifier | | client\_actor\_id | Client actor identifier | | lead\_actor\_id | Lead actor identifier | | actor\_name | Display name of the actor | | actor\_image\_url | URL of the actor’s avatar | | email\_file | Attached email files | | import\_id | Import reference | | staged\_import | Staged import flag | | external\_id | External system ID | | pinned | Flag indicating if the message is pinned | | is\_author | Flag indicating if sender is author | | can\_manage | Permission flag for managing the message | ## Ticket user Twig variables | Variable | Description | | -------------- | --------------------------------------- | | id | Ticket user identifier | | ticket\_id | Associated ticket identifier | | user\_id | Linked user identifier | | default | Flag indicating default user for ticket | | actor\_id | Actor role ID | | created\_at | Creation timestamp | | updated\_at | Last updated timestamp | | import\_id | Import reference | | staged\_import | Staged import flag | | external\_id | External system identification | | ticket | Ticket object | | user | User object | | actor | Actor object | ## User Twig variables | Variable | Description | | --------------------------------- | ---------------------------------------------- | | id | Unique user identifier | | first\_name | User’s first name | | last\_name | User’s last name | | email | Email address | | twofa\_enabled | Flag for two-factor authentication enabled | | twofa\_provider | Provider of two-factor authentication | | reg\_hash | Registration hash | | reg\_hash\_expiry | Expiry timestamp for registration hash | | phone\_code | User's phone country code | | phone | Phone number | | verified | Email or user verification status | | avatar\_src | URL to user’s avatar image | | interface\_language | Preferred UI language | | document\_language | Language for documents or notices | | created\_at | Account creation timestamp | | updated\_at | Last profile update timestamp | | is\_admin | Flag if the user has administrative privileges | | full\_name | Full concatenated name | | manage\_notification\_subs\_token | Token managing notification subscriptions | | has\_password\_auth\_config | Flag if password authentication is configured | | email\_2fa\_code | Email two-factor authentication code | ## Wallet Twig variables | Variable | Description | | -------------------------------------- | --------------------------------------------------- | | id | Wallet unique identifier | | import\_id | Identifier for imported wallet data | | staged\_import | Flag indicating staged import | | external\_id | External system wallet ID | | client\_id | Client associated with the wallet | | brand\_id | Brand associated with wallet | | currency\_id | Currency identifier for wallet amounts | | type | Type of wallet (e.g., prepaid, postpaid) | | amount | Current wallet balance amount | | currency\_exchange\_rate | Exchange rate for currency conversion | | created\_at | Wallet creation timestamp | | updated\_at | Last update timestamp | | account\_id | Linked account ID | | invoice\_id | Linked invoice ID | | transaction\_id | Linked transaction ID | | payment\_log\_id | Payment log reference ID | | refunded | Flag indicating if wallet has refunds | | amount\_refunded | Total amount refunded | | gateway\_id | Gateway through which wallet payments are processed | | gateway\_type | Type of gateway | | refund\_request\_id | Refund request identifier | | amount\_overpaid | Amount overpaid beyond balance | | locked | Wallet locked status | | affiliate\_payout | Affiliate payout related to wallet | | amount\_formatted | Formatted wallet amount for display | | amount\_converted | Converted wallet amount | | amount\_converted\_formatted | Formatted converted amount | | amount\_overpaid\_formatted | Formatted overpaid amount | | amount\_overpaid\_converted | Converted overpaid amount | | amount\_overpaid\_converted\_formatted | Formatted converted overpaid amount | | amount\_refunded\_formatted | Formatted refunded amount | | amount\_refunded\_converted | Converted refunded amount | | amount\_refunded\_converted\_formatted | Formatted converted refunded amount | | brand | Brand object or name | | currency | Currency object or code | | document\_currency\_id | Document currency identifier | | document\_currency\_exchange\_rate | Exchange rate for document currency | | document\_amount\_converted | Document amount converted | | document\_amount\_converted\_formatted | Formatted converted document amount | | document\_currency | Document currency code | | topup\_credit\_note\_id | Top-up credit note identifier | | payment\_method\_type | Payment method type used | | payment\_method\_type\_deprecated | Deprecated payment method type | | statement\_id | Associated statement ID | | transaction\_reason | Reason for wallet transaction | ## Wallet refund Twig variables | Variable | Description | | ---------------------------- | --------------------------------- | | id | Wallet refund unique identifier | | wallet\_id | Associated wallet identifier | | amount | Refund amount | | currency\_exchange\_rate | Exchange rate used for the refund | | created\_at | Refund creation timestamp | | updated\_at | Last refund update timestamp | | currency\_id | Currency identifier for refund | | refund\_request\_id | Refund request linked | | brand\_id | Brand relevant to refund | | account\_id | Account related to the refund | | client\_id | Client receiving refund | | amount\_formatted | Formatted refund amount | | amount\_converted | Converted refund amount | | amount\_converted\_formatted | Formatted converted refund amount | | currency | Currency code or object | ## Wallet statement Twig variables | Variable | Description | | ------------------------------------------------ | -------------------------------------- | | id | Wallet statement identifier | | client\_id | Client associated with statement | | account\_id | Account linked to statement | | org\_id | Organisation owning the statement | | brand\_id | Brand identifier | | created\_at | Creation timestamp | | updated\_at | Last updated timestamp | | from\_date | Start date for statement period | | to\_date | End date for statement period | | currency\_id | Currency identifier | | currency\_exchange\_rate | Currency exchange rate | | arrears\_credit\_maximum | Maximum arrears credit allowed | | arrears\_credit\_used | Total arrears credit used | | arrears\_credit\_available | Current available arrears credit | | total\_amount | Total amount on statement | | total\_amount\_converted\_formatted | Converted total amount formatted | | arrears\_credit\_available\_formatted | Formatted available arrears credit | | arrears\_credit\_available\_converted\_formatted | Converted and formatted arrears credit | | arrears\_credit\_used\_formatted | Formatted arrears credit used | | arrears\_credit\_used\_converted\_formatted | Converted and formatted arrears used | | arrears\_credit\_maximum\_formatted | Formatted maximum arrears allowed | | arrears\_credit\_maximum\_converted\_formatted | Converted formatted maximum arrears | | client\_download\_url | URL for client to download statement | | admin\_download\_url | URL for admin to download statement | | brand | Brand context | | account | Account object | | client | Client object | | documents | List of documents attached or linked | | client\_download\_csv\_url | CSV download URL for client | | admin\_download\_csv\_url | CSV download URL for admin | ## Webhook endpoint Twig variables | Variable | Description | | ------------------------------------- | ------------------------------------------ | | id | Unique identifier for the webhook endpoint | | name | Name of the webhook endpoint | | description | Description of the webhook’s purpose | | brand\_id | Brand associated | | url | URL target for webhook calls | | secret | Shared secret for securing webhooks | | enabled | Flag indicating if webhook is active | | created\_at | Creation timestamp | | updated\_at | Last updated timestamp | | deleted\_at | Soft deletion timestamp | | version | Endpoint version number | | webhook\_endpoint\_authentication\_id | Authentication method ID | | provider | Provider or service linked | | webhook\_extra\_payload\_id | ID for additional payload customisation | ## Whitelisted IP Twig variables | Variable | Description | | ----------- | --------------------------------------------- | | id | Unique identifier for whitelisted IP | | ip\_address | IP address allowed | | name | Name or label for the IP entry | | created\_at | Timestamp of the whitelist entry creation | | updated\_at | Last update timestamp for the whitelist entry | # Email Triggers and Actions Source: https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/email-triggers-and-actions Overview of emails, actions, and triggers. Upmind's email system automatically sends notifications based on specific triggers across numerous activities. These reference tables detail each trigger, its corresponding action name, category, topic, and recipient. ## Account emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ----------------------------------------------------- | ------------ | --------- | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | | Affiliate Commission Payment Confirmation | Account | Billing | Account Affiliate Commission Paid | Triggered when an affiliate commission is successfully paid out to a client account (e.g., a referral earns commission and the payout is processed). | Client | | Affiliate Withdrawal Request Notification | Account | Billing | Account Affiliate Withdraw Request | Triggered when a client requests to withdraw their affiliate earnings (e.g., submitting a payout request via the dashboard). | Staff | | New Account Created Alert | Account | System | Account Created | Triggered when a new account is created in the system (e.g., a new client or reseller signs up). | Staff | | Account Credit Balance Warning | Account | Billing | Account Credit Below Half | Triggered when an account’s available credit drops below 50% of its limit (e.g., usage reduces balance significantly). | Client | | Account Credit Exhausted Alert | Account | Billing | Account Credit Exhausted | Triggered when an account has used all its available credit (e.g., balance reaches zero). | Client | | Affiliate Payout Details Missing Alert | Account | System | Account Missing Payout Paypal Email | Triggered when an account is eligible for affiliate payouts but has no PayPal email configured. | Client | | Negative Wallet Balance Notification | Account | Billing | Account Negative Wallet Balance Changed | Triggered when an account’s wallet balance becomes negative or changes while negative (e.g., refund or charge causes overdraft). | Client | | Account Wallet Credit Disabled Notice | Account | Billing | Account Wallet Credit Disabled | Triggered when wallet credit usage is turned off for the account. | Client | | Account Wallet Credit Enabled Notice | Account | Billing | Account Wallet Credit Enabled | Triggered when wallet credit usage is enabled for the account. | Client | | Account Wallet Credit Limit Updated Notice | Account | Billing | Account Wallet Credit Limit Changed | Client | | | Wallet Statement Schedule Updated | Account | Billing | Account Wallet Statement Day Of Month Changed | Triggered when the scheduled day for generating wallet statements is changed (e.g., from 1st to 15th of each month). | Client | | New Reseller Account Created | Account | System | Reseller Account Created | Triggered when a new reseller account is created in the system. | Staff | | Affiliate Commission Payment Processed (Admin Notice) | Account | Billing | Account Affiliate Commission Paid | | Staff | | Affiliate Withdrawal Request Confirmation | Account | Billing | Account Affiliate Withdraw Request | | Client | ## Brand emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ---------------------------- | ------------ | --------- | --------------------- | ------------------------------------------------------------------------------------------- | ------------- | | New Brand Created Alert | Brand | System | Brand Created | Triggered when a new brand is added (e.g., creating a new storefront or white-label brand). | Staff | | Brand Deleted Notification | Brand | System | Brand Deleted | Triggered when an existing brand is permanently removed. | Staff | | Brand Merge Completed Notice | Brand | System | Brand Merge Completed | Triggered when two brands are successfully merged into one. | Staff | | Brand Merge Started Alert | Brand | System | Brand Merge Initiated | Triggered when a brand merge process is started but not yet completed. | Staff | | Brand Configuration Updated | Brand | System | Brand Updated | Triggered when brand settings are modified (e.g., logo, domain, or configuration changes). | Staff | | Brand Update Confirmation | Brand | System | Brand Updated | | Reseller | ## Bulk action emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ----------------------------------------- | ------------ | --------- | ---------------------- | ------------------------------------------------------------------------------------------------- | ------------- | | Bulk Operation Completed Summary | Bulk Action | System | Bulk Action Completed | Triggered when a bulk task finishes successfully (e.g., updating multiple products at once). | Staff | | Bulk Operation Failed or Incomplete Alert | Bulk Action | System | Bulk Action Incomplete | Triggered when a bulk task fails or only partially completes (e.g., some records fail to update). | Staff | | Bulk Operation Scheduled Confirmation | Bulk Action | System | Bulk Action Scheduled | Triggered when a bulk task is scheduled to run at a future time. | Staff | | Bulk Operation Started Notification | Bulk Action | System | Bulk Action Started | Triggered when a scheduled or manual bulk task begins execution. | Staff | | Bulk Operation Schedule Updated | Bulk Action | System | Bulk Action Updated | Triggered when details of a scheduled bulk action are modified (e.g., time or scope changed). | Staff | ## Client emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ----------------------------------------------- | ------------ | --------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | -------------------- | | Two-Factor Authentication Enabled Confirmation | Client | System | Client Added Two Factor Authentication | Triggered when a client enables 2FA on their account (e.g., setting up Google Authenticator for login security). | Client With Login | | Consolidated Invoices Dispatch Confirmation | Client | Billing | Client Consolidation Invoices Dispatched | Triggered when multiple invoices are grouped and sent together to the client (e.g., monthly combined billing). | Client | | Client Account Deletion Alert | Client | System | Client Deleted | Triggered when a client account is permanently removed from the system. | Staff | | Login Attempt Limit Reached Warning | Client | System | Client Exceeded Max Incorrect Login Attempts | Triggered when a client fails login too many times (e.g., multiple wrong passwords leading to a temporary lockout). | Client With Login | | Client Login Disabled Notice | Client | System | Client Login Disabled | Triggered when a client’s login access is disabled (e.g., by admin action or security rule). | Client With Login | | Client Login Email Update Confirmation | Client | System | Client Login Email Updated | Triggered when the client changes their login email address. | Client | | Client Login Access Enabled Notice | Client | System | Client Login Enabled | Triggered when login access is re-enabled for a client account. | Client With Login | | Client Username Change Confirmation | Client | System | Client Login Username Updated | Triggered when the client’s username is changed. | Client With Login | | Client Notification Preference Updated | Client | System | Client Notification Emails Disabled | Triggered when a client disables email notifications in their preferences. | Client | | Password Change Confirmation | Client | System | Client Password Changed, Client Password Was Reset | Triggered when a client successfully changes their password. | Client With Login | | Password Setup Required After Import | Client | System | Client Password Setup Required After Import | Triggered when a client account is imported and requires the user to set a password. | Client | | Password Reset Confirmation | Client | System | Client Password Was Reset, Client Password Changed | Triggered after a client completes a password reset process. | Client | | New Client Registration Welcome | Client | System | Client Registered, Unverified Client Created | Triggered when a new client registers an account. | Client | | Two-Factor Authentication Disabled Confirmation | Client | System | Client Disabled 2FA | Triggered when a client disables 2FA on their account. | Client With Login | | Password Reset Link Sent | Client | System | Client Requested Password Reset | Triggered when a client requests a password reset link. | Client | | Two-Factor Verification Code | Client | System | Client Second Factor Verification Required | Triggered during login when a second authentication step is required (e.g., entering a code). | Client With Login | | Client Profile Update Confirmation | Client | System | Client Updated | Triggered when a client updates their account details (e.g., name or company info). | Client | | Client Identity Verification Required | Client | System | Client Verification Required | Triggered when the system requires the client to verify their identity or email. | Client | | Client Account Impersonation Alert | Client | System | Client Was Impersonated | Triggered when a staff member logs in as the client (impersonation feature used). | Client | | Wallet Balance Adjustment Notice | Client | Billing | Client Wallet Balance Adjusted | Triggered when a client’s wallet balance is manually changed (e.g., credit added or deducted). | Client | | New Support PIN Issued | Client | Support | New Client Support Pin | Triggered when a support PIN is generated for the client (used for verification in support interactions). | Client | | Unverified Client Account Created | Client | System | Unverified Client Created, Client Registered | Triggered when a new client account is created but not yet verified (e.g., email not confirmed). | Client Without Login | | Verified Client Account Created | Client | System | Verified Client Created | Triggered when a new client account is created and verified immediately. | Client | | Client Login Disabled Alert | Client | System | Client Login Disabled | | Staff | | Client Account Impersonation Audit Notice | Client | System | Client Was Impersonated | | Staff | | Client Wallet Balance Adjustment Logged | Client | Billing | Client Wallet Balance Adjusted | | Staff | ## Client vault asset emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | --------------------------------- | ------------------ | --------- | ---------------------------- | ------------------------------------------------------------------------------------------------------- | ----------------- | | Secure Vault Asset Added | Client Vault Asset | System | Client Vault Asset Created | Triggered when a client stores a new secure item in the vault (e.g., API key, password, or credential). | Client With Login | | Vault Asset Access Alert | Client Vault Asset | System | Client Vault Asset Decrypted | Triggered when a stored vault item is accessed or decrypted (e.g., viewing a saved password). | Client With Login | | Vault Asset Deletion Confirmation | Client Vault Asset | System | Client Vault Asset Deleted | Triggered when a vault item is permanently removed. | Client With Login | | Vault Asset Update Confirmation | Client Vault Asset | System | Client Vault Asset Updated | Triggered when a vault item is edited (e.g., updating stored credentials). | Client With Login | | Vault Asset Access Audit Alert | Client Vault Asset | System | Client Vault Asset Decrypted | | Staff | ## Client address emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------------ | -------------- | --------- | ---------------------- | --------------------------------------------------------------------------------------------- | ------------- | | New Address Added to Client Profile | Client Address | System | Client Address Added | Triggered when a new address is added to a client account (e.g., billing or contact address). | Client | | Client Address Deletion Confirmation | Client Address | System | Client Address Deleted | Triggered when an address is removed from the client’s profile. | Client | | Client Address Update Confirmation | Client Address | System | Client Address Updated | Triggered when an existing address is modified (e.g., correcting the city or postal code). | Client | | Client Address Record Updated | Client Address | System | Client Address Updated | | Staff | ## Client company emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------------------- | -------------- | --------- | ------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ------------- | | Company Profile Added to Client Account | Client Company | System | Client Company Created | Triggered when a company profile is added to a client account (e.g., adding business details during signup). | Client | | Company Profile Removed from Client Account | Client Company | System | Client Company Deleted | Triggered when a company profile is deleted from a client account. | Client | | Company Profile Update Confirmation | Client Company | System | Client Company Updated | Triggered when company information is modified (e.g., updating the address or registration number). | Client | | Company VAT Number Verified Successfully | Client Company | Billing | Clients Company Vat Validated | Triggered when the client’s VAT number is verified successfully (e.g., validated against an official database). | Client | | Company VAT Validation Failed Alert | Client Company | Billing | Clients Company Vat Validation Failed | Triggered when the VAT number provided by the client fails validation (e.g., invalid or not found). | Client | | Client Company Profile Created Alert | Client Company | System | Client Company Created | | Staff | | VAT Validation Failure Review Required | Client Company | Billing | Clients Company Vat Validation Failed | | Staff | ## Client email emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ----------------------------------- | ------------ | --------- | ---------------------------------- | --------------------------------------------------------------------------------------------------- | ------------- | | Additional Email Address Added | Client Email | System | Client Email Created | Triggered when a new email address is added to the client account. | Client | | Email Address Removed from Account | Client Email | System | Client Email Deleted | Triggered when an email address is removed from the client account. | Client | | Email Address Update Confirmation | Client Email | System | Client Email Updated | Triggered when an existing email address is modified. | Client | | Email Verification Request | Client Email | System | Client Email Verification Required | Triggered when the system asks the client to verify their email (e.g., after adding a new address). | Client | | Email Address Verified Successfully | Client Email | System | Client Email Verified | Triggered when the client confirms their email via a verification link. | Client | | Client Email Added Alert | Client Email | System | Client Email Created | | Staff | ## Client payment method emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ----------------------------------- | --------------------- | --------- | ---------------------------------------- | -------------------------------------------------------------------------------------------- | ------------- | | New Payment Method Added | Client Payment Method | Billing | Client Payment Detail Created | Triggered when a new payment method is added (e.g., adding a credit card or bank account). | Client | | Payment Method Removed | Client Payment Method | Billing | Client Payment Detail Deleted | Triggered when a saved payment method is deleted. | Client | | Payment Method Expiry Reminder | Client Payment Method | Billing | Client Payment Detail Expired | Triggered when a stored payment method expires (e.g., credit card expiration date passed). | Client | | Payment Method Updated | Client Payment Method | Billing | Client Payment Detail Updated | Triggered when payment details are modified (e.g., updating card expiry date). | Client | | Payment Method Added by Staff | Client Payment Method | Billing | Clients Payment Details Manually Created | Triggered when a payment method is added manually by a staff member on behalf of the client. | Client | | Client Payment Method Added Alert | Client Payment Method | Billing | Client Payment Detail Created | | Staff | | Client Payment Method Deleted Alert | Client Payment Method | Billing | Client Payment Detail Deleted | | Staff | ## Client phone emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------------ | ------------ | --------- | --------------------- | --------------------------------------------------------------- | ------------- | | Phone Number Added to Account | Client Phone | System | Client Phone Added | Triggered when a phone number is added to the client account. | Client | | Phone Number Removed from Account | Client Phone | System | Client Phone Deleted | Triggered when a phone number is removed. | Client | | Phone Number Update Confirmation | Client Phone | System | Client Phone Updated | Triggered when an existing phone number is edited. | Client | | Phone Number Verification Successful | Client Phone | System | Client Phone Verified | Triggered when a phone number is verified (e.g., via OTP code). | Client | | Client Phone Number Added Alert | Client Phone | System | Client Phone Added | | Staff | ## Contract emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | --------------------------------------- | ------------ | --------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------ | ------------- | | Service Order Activated | Contract | Service Updates | Order Activated | Triggered when an order becomes active and services are provisioned. | Client | | Service Order Awaiting Activation | Contract | Service Updates | Order Awaiting Activation | Triggered when an order is created but waiting for activation (e.g., pending payment or provisioning). | Client | | Service Order Cancellation Confirmation | Contract | Billing | Order Cancelled | Triggered when an order is cancelled before completion or renewal. | Client | | Service Order Closed | Contract | Service Updates | Order Closed | Triggered when an order is fully completed and no longer active. | Client | | Order Tax Configuration Updated | Contract | Billing | Order Tax Updated | Triggered when tax calculations on an order are changed (e.g., VAT applied). | Client | | New Service Order Confirmation | Contract | Billing | Order Created | Triggered when a new order is placed by a client. | Client | | Contract Invoice Generation Error Alert | Contract | Billing | Error Issuing Next Contract Invoice | Triggered when the system fails to generate the next invoice for a contract. | Staff | | Service Suspension Notice | Contract | Service Updates | Order Suspended | Triggered when an order/service is temporarily suspended (e.g., due to non-payment). | Client | | Service Reinstatement Confirmation | Contract | Service Updates | Order Unsuspended | Triggered when a suspended order/service is restored. | Client | | Service Order Update Confirmation | Contract | Service Updates | Order Updated | Triggered when changes are made to an order (e.g., product or configuration updates). | Client | | New Order Staff Alert | Contract | Billing | Order Created | | Staff | ## Contract product bulk scheduled action emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------------ | -------------------------------------- | --------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | | Bulk Contract Product Task Scheduled | Contract Product Bulk Scheduled Action | System | Contract Product Bulk Scheduled Action Created | Triggered when a bulk scheduled action is created for multiple contract products (e.g., scheduling price updates across many subscriptions). | Staff | ## Contract product scheduled action emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | -------------------------------- | --------------------------------- | --------- | ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------- | | Scheduled Product Task Cancelled | Contract Product Scheduled Action | System | Contract Product Scheduled Action Cancelled | Triggered when a previously scheduled action is cancelled (e.g., a planned price change is removed before execution). | Staff | | Scheduled Product Task Created | Contract Product Scheduled Action | System | Contract Product Scheduled Action Created | Triggered when a new scheduled action is set up (e.g., scheduling a future upgrade or downgrade). | Staff | | Scheduled Product Task Deleted | Contract Product Scheduled Action | System | Contract Product Scheduled Action Deleted | Triggered when a scheduled action is permanently removed from the system. | Staff | | Scheduled Product Task Executed | Contract Product Scheduled Action | System | Contract Product Scheduled Action Executed | Triggered when a scheduled action is carried out (e.g., automatic upgrade applied on a specific date). | Staff | | Scheduled Action Reverted | Contract Product Scheduled Action | System | Contract product scheduled action reverted | Triggered when a previously executed action is rolled back (e.g., undoing a scheduled downgrade). | Staff | | Scheduled Action Updated | Contract Product Scheduled Action | System | Contract product scheduled action updated | Triggered when details of a scheduled action are modified (e.g., changing the execution date). | Staff | ## Contract request emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------------- | ---------------- | --------------- | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------- | | Billing Term End Request Submitted | Contract Request | Billing | Contract Request End Of Billing Term | Triggered when a request is made to take action at the end of the billing term (e.g., cancel at the end of the period). | Staff | | Billing Term End Request Revoked | Contract Request | Billing | Contract Request End Of Billing Term Revoked | Triggered when a previously submitted end-of-term request is cancelled (e.g., client changes mind about cancellation). | Staff | | Contract Request Awaiting Review | Contract Request | Service Updates | Contract Request Pending | Triggered when a contract-related request is awaiting processing or approval. | Staff | | Billing Term End Request Confirmation | Contract Request | Billing | Contract Request End Of Billing Term | | Client | ## Contract product emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ----------------------------------------- | ---------------- | --------------- | ------------------------------------------------------ | ---------------------------------------------------------------------------------------------- | ------------- | | Product Service Activated | Contract Product | Service Updates | Contract Product Activated | Triggered when a contract product becomes active and usable (e.g., hosting account goes live). | Client | | Product Awaiting Activation | Contract Product | Service Updates | Contract Product Awaiting Activation | Triggered when a product is pending activation (e.g., waiting for payment or provisioning). | Client | | Billing Cycle Change Confirmation | Contract Product | Billing | Contract Product Billing Cycle Changed | Triggered when the billing cycle changes (e.g., monthly to yearly). | Client | | Cancellation Interval Updated | Contract Product | Billing | Contract Product Cancellation Interval Changed | Triggered when the notice period required for cancellation is changed. | Client | | Cancellation Request Approved | Contract Product | Billing | Product Cancellation Request Approved | Triggered when a cancellation request is approved by staff. | Client | | Cancellation Request Submitted | Contract Product | Billing | Product Cancellation Request Created | Triggered when a client submits a request to cancel a product. | Staff | | Cancellation Request Withdrawn by Client | Contract Product | Billing | Product Cancellation Request Deleted by Client | Triggered when a client cancels their own cancellation request. | Staff | | Cancellation Request Withdrawn by Staff | Contract Product | Billing | Product Cancellation Request Deleted by User | Triggered when staff removes a cancellation request. | Staff | | Product Service Cancelled | Contract Product | Service Updates | Contract Product Cancelled | Triggered when a product is cancelled and no longer active. | Client | | Product Cancelled by Provisioning System | Contract Product | Service Updates | Contract Product Cancelled By Provision System | Triggered when the system automatically cancels a product (e.g., provisioning failure). | Staff | | Product Cancellation With Reason Logged | Contract Product | Service Updates | Contract Product Cancelled With Reason | Triggered when a product is cancelled with a specified reason (e.g., non-payment). | Staff | | Client Service Label Updated | Contract Product | Service Updates | Contract Product Client Label Changed | Triggered when a client-facing label or name is changed. | Client | | Termination Interval Updated | Contract Product | Billing | Contract Product Termination Interval Changed | Triggered when the termination timing after cancellation is modified. | Client | | Subscription Lapsed Notice | Contract Product | Billing | Subscription Lapsed | Triggered when a subscription expires due to non-payment. | Client | | Product Tax Setting Updated | Contract Product | Billing | Contract Product Tax Updated | Triggered when tax settings are updated for the product. | Client | | Invoice Consolidation Disabled | Contract Product | Billing | Contract Product Invoice Consolidation Disabled | Triggered when invoice consolidation is turned off. | Client | | Invoice Consolidation Enabled | Contract Product | Billing | Contract Product Invoice Consolidation Enabled | Triggered when invoice consolidation is turned on. | Client | | New Product Service Created | Contract Product | Billing | Contract Product Created | Triggered when a new contract product is created. | Client | | Service Currency Change Notice | Contract Product | Billing | Contract Product Currency Changed | Triggered when the billing currency is changed. | Client | | Service Due Date Updated | Contract Product | Billing | Contract Product Due Date Changed | Triggered when the payment due date is modified. | Client | | Auto Renewal Expiry Notice | Contract Product | Billing | Contract Product Expire Auto Renewal | Triggered when a product expires due to auto-renewal being enabled but not processed. | Client | | Manual Renewal Required Notice | Contract Product | Billing | Contract Product Expire Manual Renewal | Triggered when a product expires without renewal (manual process). | Client | | Upcoming Product Expiry Reminder | Contract Product | Billing | Contract product expire notification | Triggered before a product is due to expire (e.g., reminder email). | Client | | Invoice Consolidation Failure Alert | Contract Product | Billing | Contract Product Failed Consolidation Invoice | Triggered when invoice consolidation fails. | Staff | | Invoice Generation Schedule Updated | Contract Product | Billing | Contract Product Invoice Generation Interval Changed | Triggered when invoice generation frequency changes. | Staff | | Auto Renewal Enabled Confirmation | Contract Product | Billing | Auto-renew Enabled | Triggered when automatic renewal is turned on. | Client | | Auto Renewal Disabled Confirmation | Contract Product | Billing | Auto-renew Disabled | Triggered when automatic renewal is turned off. | Client | | Product Manual Status Disabled | Contract Product | Service Updates | Contract Product Manual Status Off | Triggered when the manual status override is disabled. | Staff | | Product Status Change Notice | Contract Product | Service Updates | Contract Product Status Updated | Triggered when product status changes (e.g., active to suspended). | Client | | Invoice Date Fallback Applied | Contract Product | Billing | Contract Product Next Invoice Date Fallback | Triggered when fallback logic sets the next invoice date. | Staff | | Product Ownership Transfer Notice | Contract Product | Service Updates | Contract Product Ownership Changed | Triggered when ownership of a product is transferred to another client. | Client | | Product Configuration Updated | Contract Product | Service Updates | Contract Product Changed | Triggered when general configuration changes occur. | Client | | Invoice Due Date Interval Updated | Contract Product | Billing | Contract Product Invoice Due Date Interval Changed | Triggered when due date intervals are modified. | Staff | | Product Scheduled for Termination | Contract Product | Service Updates | Contract Product Pre Terminate | Triggered before a product is terminated. | Client | | Product Price Change Notice | Contract Product | Billing | Contract Product Price Changed | Triggered when product pricing is updated. | Client | | Provisioning Configuration Updated | Contract Product | Service Updates | Contract Product Provision Configuration Changed | Triggered when provisioning settings are modified. | Staff | | Fraud Review Required for Provisioning | Contract Product | System | Contract Product Provisioning Requires Fraud Review | Triggered when provisioning requires fraud checks. | Staff | | Auto Expire Enabled Confirmation | Contract Product | Billing | Auto-expire Enabled | Triggered when automatic expiration is enabled. | Client | | Auto Expire Disabled Confirmation | Contract Product | Billing | Auto-expire Disabled | Triggered when automatic expiration is disabled. | Client | | Product Renewal Confirmation | Contract Product | Billing | Contract Product Renewed | Triggered when a subscription is successfully renewed. | Client | | Retention Case Flagged | Contract Product | Marketing | Contract Product Retention Status Set to 'Flagged' | Triggered when a product is flagged for retention follow-up. | Staff | | Retention Case In Progress | Contract Product | Marketing | Contract Product Retention Status Set to 'In progress' | Triggered when retention efforts are ongoing. | Staff | | Retention Case Marked Lost | Contract Product | Marketing | Contract Product Retention Status Set to 'Lost' | Triggered when a retention attempt fails. | Staff | | Retention Status Reset | Contract Product | Marketing | Contract Product Retention Status Set to 'None' | Triggered when no retention status applies. | Staff | | Retention Case Saved | Contract Product | Marketing | Contract Product Retention Status Set to 'Saved' | Triggered when retention effort succeeds. | Staff | | Product Setup Failure Alert | Contract Product | System | Contract Product Setup Failed | Triggered when product setup fails. | Staff | | Setup Configuration Confirmation Required | Contract Product | Service Updates | Contract Product Setup Values Require Confirmation | Triggered when additional confirmation is needed for setup values. | Client | | Suspension Interval Updated | Contract Product | Service Updates | Contract Product Suspension Interval Changed | Triggered when suspension timing rules are updated. | Client | | Product Service Suspended | Contract Product | Service Updates | Contract Product Suspended | Triggered when a product is temporarily suspended. | Client | | Product Trial Ended | Contract Product | Service Updates | Contract Product Trial Ended | Triggered when a trial period ends. | Client | | Trial Expiry Reminder | Contract Product | Marketing | Contract Product Trial Expires Soon | Triggered before a trial is about to expire. | Client | | Trial Migrated to New Product | Contract Product | Service Updates | Contract Product Trial Migrated New | Triggered when a trial is migrated to a new setup. | Staff | | Trial Migration Failure Alert | Contract Product | System | Contract Product Trial Migration Failed | Triggered when trial migration fails. | Staff | | Trial Period Started | Contract Product | Marketing | Contract Product Trial Started | Triggered when a trial period begins. | Client | | Trial Converted to Paid Service | Contract Product | Billing | Contract Product Trial To Paid | Triggered when a trial converts into a paid subscription. | Client | | Product Service Unsuspended | Contract Product | Service Updates | Order Product Unsuspended | Triggered when a suspended product is reactivated. | Client | ## Cost emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------- | ------------ | --------- | ------------ | ---------------------------------------------------------------------------------------------- | ------------- | | Cost Record Added | Cost | Billing | Cost Created | Triggered when a new cost entry is added (e.g., recording infrastructure or service expenses). | Staff | | Cost Record Removed | Cost | Billing | Cost Deleted | Triggered when a cost entry is removed from the system. | Staff | | Cost Record Updated | Cost | Billing | Cost Updated | Triggered when an existing cost entry is modified (e.g., updating the amount or description). | Staff | ## Credit debit transaction emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ---------------------------- | ------------------------ | --------- | -------------------- | ------------------------------------------------------------------------------------------------------------- | ------------- | | Payment Transaction Captured | Credit Debit Transaction | Billing | Transaction Captured | Triggered when a payment is successfully captured from a client (e.g., card payment processed and confirmed). | Client | | New Transaction Recorded | Credit Debit Transaction | Billing | Transaction Created | Triggered when a new transaction entry is created (e.g., pending or initiated payment). | Client | | Transaction Refund Processed | Credit Debit Transaction | Billing | Transaction Refunded | Triggered when a transaction is refunded back to the client (e.g., returning payment after cancellation). | Client | | Transaction Capture Logged | Credit Debit Transaction | Billing | Transaction Captured | | Staff | | Refund Transaction Logged | Credit Debit Transaction | Billing | Transaction Refunded | | Staff | ## CSV export emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------- | ------------ | --------- | -------------------- | -------------------------------------------------------------------------------------------------------------- | ------------- | | CSV Export File Ready | Csv Export | System | CSV Export Generated | Triggered when a CSV export file is generated and ready for download (e.g., exporting client or invoice data). | Staff | | CSV Export File Delivered | Csv Export | System | CSV Export Generated | | Client | ## Delegate emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ---------------------------- | ------------ | --------- | ------------------------ | ---------------------------------------------------------------------------------- | ------------- | | Delegate Access Granted | Delegate | System | Delegate Created | Triggered when a delegate (additional user) is added to access an account. | Client | | Delegate Access Removed | Delegate | System | Delegate Deleted | Triggered when a delegate is removed from an account. | Client | | Delegate Invitation Accepted | Delegate | System | Delegate Invite Accepted | Triggered when a delegate accepts an invitation and gains access. | Client | | Delegate Invitation Sent | Delegate | System | Delegate Invited | Triggered when an invitation is sent to a delegate (e.g., inviting a team member). | Client | | Delegate Permissions Updated | Delegate | System | Delegate Updated | Triggered when a delegate’s permissions or details are modified. | Client | | Delegate Lead Invitation | Delegate | System | Delegate Invited | | Lead | ## Email emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------ | ------------ | --------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | ------------- | | Email Delivery Complaint Alert | Email | System | Email Complaint Received | Triggered when an email sent to a client is marked as spam or a complaint is received (e.g., via email provider feedback loop). | Staff | ## Gateway emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------------- | ------------ | --------- | ------------------------ | ------------------------------------------------------------------------------------------- | ------------- | | Payment Gateway Added | Gateway | Billing | Gateway Created | Triggered when a new payment gateway is added (e.g., integrating Stripe or PayPal). | Staff | | Payment Gateway Removed | Gateway | Billing | Gateway Deleted | Triggered when a payment gateway is removed from the system. | Staff | | Payment Gateway Configuration Updated | Gateway | Billing | Gateway Updated | Triggered when general details of a gateway are modified (e.g., name or status). | Staff | | Payment Gateway Settings Modified | Gateway | Billing | Gateway Updated Settings | Triggered when configuration settings are changed (e.g., API keys or webhook URLs updated). | Staff | ## Invoice emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------------ | ------------ | --------- | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------- | | Checkout Basket Abandoned Reminder | Invoice | Marketing | Basket Abandoned | Triggered when a client adds items to their basket but leaves without completing checkout (e.g., closes the page before paying). | Client | | Basket Promotion Applied | Invoice | Billing | Basket Adjusted With Promo | Triggered when a promotion or discount is applied to the basket (e.g., a coupon code reduces the total price). | Client | | New Basket Created | Invoice | Billing | Basket Created | Triggered when a new basket is created for a client (e.g., starting a new checkout session). | Client | | Basket Removed | Invoice | System | Basket Deleted | Triggered when a basket is removed (e.g., user clears cart or session expires). | Client | | Basket Recalculation Completed | Invoice | Billing | Basket Recalculated | Triggered when basket totals are recalculated (e.g., after changing quantity or adding items). | Client | | Basket Details Updated | Invoice | Billing | Basket Updated | Triggered when any modification is made to the basket (e.g., adding/removing products). | Client | | Invoice Adjustment Applied | Invoice | Billing | Invoice Adjusted | Triggered when manual changes are made to an invoice (e.g., price correction or added line item). | Client | | Invoice Commission Recalculated | Invoice | Billing | Invoice Commission(s) Recalculated | Triggered when affiliate or commission values on an invoice are recalculated. | Staff | | Invoice Cancellation Confirmation | Invoice | Billing | Invoice Cancelled, Proforma Invoice Cancelled | Triggered when an invoice is voided and no longer payable. | Client | | Invoice Payment Capture Failed | Invoice | Billing | Invoice Capture Failed | Triggered when payment capture fails after authorization (e.g., card declined at capture stage). | Staff | | New Invoice Issued | Invoice | Billing | Invoice Created | Triggered when a new invoice is generated for a client. | Client | | Credit Applied to Invoice | Invoice | Billing | Invoice Credited | Triggered when a credit note is applied to an invoice (e.g., partial refund or adjustment). | Client | | Invoice Tax Recalculated | Invoice | Billing | Invoice Tax Recalculated | Triggered when tax amounts on an invoice are updated (e.g., VAT recalculated after an address change). | Staff | | Invoice Marked as Paid Manually | Invoice | Billing | Invoice Manual Paid | Triggered when a staff member marks an invoice as paid manually. | Client | | Invoice Overdue Reminder | Invoice | Billing | Invoice Overdue | Triggered when an invoice passes its due date without payment. | Client | | Invoice PDF Ready for Download | Invoice | Billing | Invoice PDF Generated | Triggered when a PDF version of an invoice is created. | Client | | Invoice PDF Regenerated | Invoice | Billing | Invoice PDF Regenerated | Triggered when the invoice PDF is regenerated after updates. | Client | | Invoice Payment Confirmation | Invoice | Billing | Invoice Paid | Triggered when an invoice is successfully paid. | Client | | Invoice Paid Using Replacement Card | Invoice | Billing | Invoice Paid with Next Card | Triggered when payment succeeds using a fallback card after the primary fails. | Client | | Payment Card Expiry Warning | Invoice | Billing | Invoice Payment Card Expired | Triggered when the payment card linked to the invoice has expired. | Client | | Invoice Payment Failure Alert | Invoice | Billing | Invoice Payment Failed | Triggered when a payment attempt fails (e.g., insufficient funds). | Client | | Invoice Payment Method Identified | Invoice | Billing | Invoice Payment Method Type Resolved | Triggered when the system determines or updates the payment method type (e.g., card vs bank). | Staff | | Invoice Auto-Payment Attempt Failed | Invoice | Billing | Invoice Auto-payment could not be Attempted | Triggered when the system cannot attempt auto-payment (e.g., no valid payment method available). | Client | | Invoice Payment Restored | Invoice | Billing | Invoice Payment Restored | Triggered when a previously failed payment method becomes valid again. | Client | | Invoice Payment Method Switched | Invoice | Billing | Invoice Payment Swapped | Triggered when the payment method for an invoice is changed. | Client | | 3D Secure Payment Required | Invoice | Billing | Invoice Requires 3D Payment | Triggered when additional authentication (3D Secure) is required to complete payment. | Client | | Upcoming Invoice Due Reminder | Invoice | Billing | Invoice is Pre-due | Triggered before the due date to remind the client of upcoming payment. | Client | | Invoice Regenerated | Invoice | Billing | Invoice Regenerated | Triggered when an invoice is recreated (e.g., after major changes). | Staff | | Invoice Refund Request Submitted | Invoice | Billing | Invoice Refund Requested | Triggered when a client requests a refund for an invoice. | Staff | | Refund Confirmation from Gateway | Invoice | Billing | Invoice Refund Webhook Confirmed | Triggered when a refund is confirmed via gateway webhook. | Staff | | Invoice Refund Processed | Invoice | Billing | Invoice Refunded | Triggered when a refund is successfully processed. | Client | | Invoice Shared with Client | Invoice | Billing | Invoice Shared | Triggered when an invoice is shared manually (e.g., via email link). | Client | | Pro-Rata Refund Transaction Failed | Invoice | Billing | Invoice Transaction Refund Failed In Pro Rata | Triggered when a prorated refund attempt fails. | Staff | | Invoice Due Date Change Confirmation | Invoice | Billing | Invoice Due Date Updated | Triggered when the due date of an invoice is changed. | Client | | Proforma Invoice Cancellation Notice | Invoice | Billing | Proforma Invoice Cancelled, Invoice Cancelled | Triggered when a proforma invoice is voided. | Client | | Proforma Invoice Issued | Invoice | Billing | Proforma Invoice Created | Triggered when a proforma invoice (pre-payment invoice) is generated. | Client | | Proforma Invoice Credited | Invoice | Billing | Proforma Invoice Credited | Triggered when a credit is applied to a proforma invoice. | Client | | Invoice Created Alert | Invoice | Billing | Invoice Created | | Staff | | Invoice Payment Failure Logged | Invoice | Billing | Invoice Payment Failed | | Staff | ## Invoice payment emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------------- | --------------- | --------- | ------------------------ | --------------------------------------------------------------------------------------------------- | ------------- | | Invoice Payment Successfully Captured | Invoice Payment | Billing | Invoice Payment Captured | Triggered when a payment is successfully captured for an invoice (e.g., funds collected from card). | Client | | Invoice Payment Refund Confirmation | Invoice Payment | Billing | Invoice Payment Refunded | Triggered when a payment made toward an invoice is refunded. | Client | ## Lead emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | --------------------------------------- | ------------ | --------- | --------------------------------- | -------------------------------------------------------------------------------------------------- | ------------- | | Lead Notification Preferences Updated | Lead | System | Lead Notification Emails Disabled | Triggered when email notifications are disabled for a lead (e.g., opting out of marketing emails). | Lead | | Lead Email Notifications Disabled Alert | Lead | System | Lead Notification Emails Disabled | | Staff | ## Organisation emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------------ | ------------ | --------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ------------- | | Organisation Activation Confirmation | Organisation | Service Updates | Organisation Activated | Triggered when an organisation is successfully activated and becomes operational (e.g., after approval or setup completion). | Staff | | Organisation Marked Active | Organisation | Service Updates | Organisation Active | Triggered when the organisation status is set to active in the system. | Staff | | Organisation Branding Added | Organisation | Service Updates | Organisation Branding Added | Triggered when branding elements (e.g., logo, colours, domain) are added to the organisation. | Staff | | Organisation Branding Removed | Organisation | Service Updates | Organisation Branding Removed | Triggered when branding elements are removed from the organisation. | Staff | | Organisation Cancellation Notice | Organisation | Service Updates | Organisation Cancelled | Triggered when an organisation is cancelled (e.g., subscription or service termination). | Staff | | Organisation Closure Confirmation | Organisation | Service Updates | Organisation Closed | Triggered when an organisation is permanently closed and no longer active. | Staff | | New Organisation Created | Organisation | System | Organisation Created | Triggered when a new organisation is created in the system. | Staff | | Organisation Pending Approval | Organisation | System | Organisation Pending | Triggered when an organisation is in a pending state (e.g., awaiting approval or setup). | Staff | | Organisation Suspension Alert | Organisation | Service Updates | Organisation Suspended | Triggered when an organisation is temporarily suspended (e.g., due to non-payment or policy issues). | Staff | | Organisation Suspension Lifted | Organisation | Service Updates | Organisation Unsuspended | Triggered when a suspended organisation is restored to active status. | Staff | | Organisation Details Updated | Organisation | System | Organisation Updated | Triggered when organisation details are modified (e.g., name, settings, or configuration). | Staff | | Organisation Verification Required | Organisation | System | Organisation Verification Required | Triggered when verification is required (e.g., identity or compliance checks before activation). | Staff | | Organisation Activation Notice | Organisation | Service Updates | Organisation Activated | | Reseller | | Organisation Suspension Notice | Organisation | Service Updates | Organisation Suspended | | Reseller | ## Payment reconciliation log emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ---------------------------------------- | -------------------------- | --------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------- | ------------- | | Payment Reconciliation Log Entry Created | Payment Reconciliation Log | Billing | Payment Reconciliation Log Created | Triggered when a reconciliation log entry is created (e.g., matching payments from the gateway with system records). | Staff | ## Pricelist emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------- | ------------ | --------- | ------------------ | -------------------------------------------------------------------------------------------- | ------------- | | New Price List Published | Pricelist | Billing | Price List Created | Triggered when a new price list is created (e.g., defining pricing for products or regions). | Staff | | Price List Removed | Pricelist | Billing | Price List Deleted | Triggered when a price list is removed from the system. | Staff | | Price List Updated | Pricelist | Billing | Price List Updated | Triggered when a price list is modified (e.g., changing product prices or currency). | Staff | | Pricing Catalogue Updated | Pricelist | Billing | Price List Updated | | Reseller | ## Product emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------ | ------------ | --------------- | ---------------- | ------------------------------------------------------------------------------------------- | ------------- | | New Product Added to Catalogue | Product | Service Updates | Product Created | Triggered when a new product is added to the catalogue (e.g., new hosting plan or service). | Staff | | Product Removed from Catalogue | Product | Service Updates | Product Deleted | Triggered when a product is removed from the catalogue. | Staff | | Product Availability Disabled | Product | Service Updates | Product Disabled | Triggered when a product is made unavailable for purchase (e.g., temporarily discontinued). | Staff | | Product Availability Enabled | Product | Service Updates | Product Enabled | Triggered when a previously disabled product is made available again. | Staff | | Product Configuration Updated | Product | Service Updates | Product Updated | Triggered when product details are changed (e.g., pricing, description, or features). | Staff | | Product Catalogue Updated | Product | Service Updates | Product Updated | | Reseller | ## Product group emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ----------------------------------- | ------------- | --------------- | --------------------- | ------------------------------------------------------------------------------------------ | ------------- | | New Product Group Created | Product Group | Service Updates | Product Group Created | Triggered when a new group of products is created (e.g., grouping hosting plans together). | Staff | | Product Group Removed | Product Group | Service Updates | Product Group Deleted | Triggered when a product group is removed. | Staff | | Product Group Configuration Updated | Product Group | Service Updates | Product Group Updated | Triggered when a product group is modified (e.g., renaming or reorganising products). | Staff | ## Promotion emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------ | ------------ | --------- | ------------------ | ------------------------------------------------------------------------------------- | ------------- | | New Promotion Campaign Created | Promotion | Marketing | Promotion Created | Triggered when a new promotion or discount campaign is created (e.g., seasonal sale). | Staff | | Promotion Campaign Deleted | Promotion | Marketing | Promotion Deleted | Triggered when a promotion is removed from the system. | Staff | | Promotion Disabled | Promotion | Marketing | Promotion Disabled | Triggered when a promotion is turned off and no longer applied to purchases. | Staff | | Promotion Restored | Promotion | Marketing | Promotion Restored | Triggered when a previously disabled promotion is reactivated. | Staff | | Promotion Campaign Updated | Promotion | Marketing | Promotion Updated | Triggered when changes are made to a promotion (e.g., discount value or expiry date). | Staff | | New Promotion Available | Promotion | Marketing | Promotion Created | | Client | ## Provision result emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | --------------------------- | ---------------- | --------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------- | | Provisioning Error Detected | Provision Result | Service Updates | Provision Result Error | Triggered when a provisioning action fails (e.g., service setup like hosting or domain fails due to configuration or API error). | Staff | ## Report emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ----------------------------------- | ------------ | --------- | ------------------------ | -------------------------------------------------------------------------------------------------------- | ----------------- | | Report Generation Completed | Report | System | Report Generated | Triggered when a report is successfully generated and ready for viewing or download. | Staff | | Report Request Received | Report | System | Report Requested | Triggered when a user requests a report to be generated (e.g., selecting filters and clicking generate). | Staff | | Report Generation Delayed | Report | System | Report Stalled Requested | Triggered when a requested report fails to process or gets stuck (e.g., due to timeout or system issue). | Staff | | Requested Report Ready for Download | Report | System | Report Generated | | Client With Login | ## Ticket emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | --------------------------------- | ------------ | --------- | --------------------------------- | ------------------------------------------------------------------------------------------------ | ----------------- | | Ticket Closed by Client | Ticket | Support | Client Closed Ticket | Triggered when a client closes their own support ticket. | Staff | | New Support Ticket Submitted | Ticket | Support | New Ticket Opened by Client | Triggered when a client creates a new support ticket. | Staff | | Client Ticket Inactivity Reminder | Ticket | Support | Client Ticket Inactive | Triggered when a ticket opened by a client has no activity for a defined period. | Client With Login | | Ticket Inactivity Alert | Ticket | Support | Ticket Inactive | Triggered when any ticket remains inactive (no replies from either side) for a period of time. | Staff | | New Lead Support Ticket | Ticket | Support | New Ticket Opened by Lead | Triggered when a lead (non-client) submits a new support or inquiry ticket. | Staff | | Scheduled Ticket Reopened | Ticket | Support | Scheduled Ticket Reopened | Triggered when a previously closed ticket is automatically reopened based on a schedule or rule. | Staff | | Support Ticket Closed | Ticket | Support | Ticket Closed | Triggered when a ticket is closed by staff or the system. | Client With Login | | New Staff Support Ticket Created | Ticket | Support | New Ticket Opened by Staff | Triggered when a staff member creates a ticket on behalf of a client. | Client With Login | | Ticket Assigned to Staff Member | Ticket | Support | Ticket Taken by User | Triggered when a staff member takes ownership of a ticket. | Staff | | Ticket Marked as Client Replied | Ticket | Support | Ticket Set to 'Client Replied' | Triggered when the ticket status is updated to indicate the client has responded. | Staff | | Ticket Marked In Progress | Ticket | Support | Ticket Set to 'In Progress' | Triggered when a ticket status is updated to indicate work has started. | Staff | | Ticket Reopened | Ticket | Support | Ticket Reopened | Triggered when a previously closed ticket is reopened. | Client With Login | | Ticket Awaiting Client Response | Ticket | Support | Ticket Set to 'Awaiting Response' | Triggered when the ticket is waiting for a reply (usually from the client). | Client With Login | | Ticket Details Updated | Ticket | Support | Ticket Updated | Triggered when general updates are made to a ticket (e.g., subject or priority change). | Staff | ## Ticket message emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ---------------------------------- | -------------- | --------- | ------------------------------------- | ------------------------------------------------------------------------------ | ----------------- | | Client Deleted Ticket Message | Ticket Message | Support | Client Deleted Ticket Message | Triggered when a client deletes a message from a ticket conversation. | Staff | | Client Replied to Ticket | Ticket Message | Support | Client Replied to Ticket | Triggered when a client replies to an existing ticket. | Staff | | Client Updated Ticket | Ticket Message | Support | Client Updated Ticket | Triggered when a client updates ticket details (e.g., subject or attachments). | Staff | | Lead Replied to Ticket | Ticket Message | Support | Lead Replied to Ticket | Triggered when a lead responds to a ticket. | Staff | | Staff Replied to Ticket | Ticket Message | Support | User Replied to Ticket | Triggered when a staff member replies to a ticket. | Client With Login | | Staff Updated Ticket Message | Ticket Message | Support | User Updated Ticket | Triggered when a staff member updates ticket details. | Staff | | Staff Updated Private Ticket | Ticket Message | Support | User Updated Private Ticket | Triggered when a staff member updates internal/private ticket content. | Staff | | Internal Ticket Note Added | Ticket Message | Support | User Added Note to Ticket | Triggered when a staff member adds an internal note to a ticket. | Staff | | Ticket Note Removed | Ticket Message | Support | Ticket Note Deleted | Triggered when an internal note is removed from a ticket. | Staff | | Ticket Message Removed | Ticket Message | Support | Ticket Message Deleted | Triggered when any ticket message is deleted. | Staff | | Private Staff Reply to Lead Ticket | Ticket Message | Support | User Replied Privately to Lead Ticket | Triggered when a staff member sends a private/internal reply on a lead ticket. | Lead | ## Ticket user emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------- | ------------ | --------- | ----------------------- | --------------------------------------------------------------- | ------------- | | Ticket Assigned to Staff Member | Ticket User | Support | User Assigned to Ticket | Triggered when a ticket is assigned to a specific staff member. | Staff | ## UpmindPay account emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------------ | ----------------- | --------- | -------------------------- | -------------------------------------------------------------------------- | ------------- | | UpmindPay Account Created | UpmindPay Account | Billing | Upmind Pay Account Created | Triggered when a new UpmindPay account is created for processing payments. | Staff | | UpmindPay Account Details Updated | UpmindPay Account | Billing | Upmind Pay Account Updated | Triggered when an existing UpmindPay account configuration is modified. | Staff | | UpmindPay Account Setup Confirmation | UpmindPay Account | Billing | Upmind Pay Account Created | | Client | ## User emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ---------------------------------------------- | ------------ | --------- | ---------------------------------------------- | -------------------------------------------------------------------------------------- | ------------- | | API Access Token Generated | User | System | API Token Created | Triggered when a new API token is created (e.g., generating a key to access the API). | Staff | | API Access Token Removed | User | System | API Token Deleted | Triggered when an API token is permanently deleted. | Staff | | API Token Refresh Completed | User | System | API Token Refreshed | Triggered when an API token is refreshed or renewed (e.g., extending validity). | Staff | | API Token Revoked | User | System | API Token Revoked | Triggered when an API token is invalidated and can no longer be used. | Staff | | API Token Configuration Updated | User | System | API Token Updated | Triggered when details of an API token are modified (e.g., permissions or label). | Staff | | Staff Two-Factor Authentication Enabled | User | System | User Enabled 2FA | Triggered when a user enables two-factor authentication on their account. | Staff | | New Staff User Account Created | User | System | User Created | Triggered when a new staff/user account is created. | Staff | | Staff User Account Deleted | User | System | User Deleted | Triggered when a user account is removed from the system. | Staff | | Excessive Login Attempts Detected | User | System | User Exceeded Max Incorrect Logins | Triggered when a user fails login too many times (e.g., account temporarily locked). | Staff | | Staff Password Change Confirmation | User | System | User Password Changed, User Password was Reset | Triggered when a user successfully changes their password. | Staff | | Staff Password Reset Confirmation | User | System | User Password was Reset, User Password Changed | Triggered when a password reset process is completed. | Staff | | Staff Two-Factor Authentication Disabled | User | System | User Disabled 2FA | Triggered when a user disables two-factor authentication. | Staff | | Staff Password Reset Link Issued | User | System | User Requested Password Reset | Triggered when a user requests a password reset link. | Staff | | Staff User Profile Updated | User | System | User Updated | Triggered when user account details are modified (e.g., name or permissions). | Staff | | Staff Identity Verification Required | User | System | User Verification Required | Triggered when verification is needed (e.g., confirming identity or email). | Staff | | Staff Account Impersonation Alert | User | System | User was Impersonated | Triggered when another staff member logs in as this user (impersonation feature used). | Staff | | Staff Notification Preferences Updated | User | System | User Notification Emails Disabled | Triggered when a user disables email notifications. | Staff | | Staff Two-Factor Verification Code Generated | User | System | User Second Factor Verification Required | Triggered when a second authentication step is required during login. | Staff | | Admin Verification Required Email | User | System | User Verification Required | | Staff | | Admin Password Reset Link Email | User | System | User Requested Password Reset | | Staff | | Admin Enabled Two-Factor Authentication Email | User | System | User Enabled 2FA | | Staff | | Admin Disabled Two-Factor Authentication Email | User | System | User Disabled 2FA | | Staff | | Admin Changed Password Email | User | System | User Password Changed, User Password was Reset | | Staff | | Admin Registered Email | User | System | User Created | | Staff | ## Voucher emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ----------------------------- | ------------ | --------- | --------------- | ---------------------------------------------------------------------------------------------------- | ------------- | | New Voucher Code Issued | Voucher | Marketing | Voucher Created | Triggered when a new voucher or coupon is generated (e.g., creating a discount code for promotions). | Staff | | Promotional Voucher Available | Voucher | Marketing | Voucher Created | | Client | ## Wallet emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | -------------------------------------- | ------------ | --------- | ----------------------- | ---------------------------------------------------------------------------------------------- | ------------- | | Wallet Balance Adjustment Confirmation | Wallet | Billing | Wallet Balance Adjusted | Triggered when a wallet balance is manually adjusted (e.g., adding credit or deducting funds). | Client | | Wallet Balance Adjustment Logged | Wallet | Billing | Wallet Balance Adjusted | | Staff | ## Wallet refund emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ----------------------- | ------------- | --------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------- | | Wallet Refund Processed | Wallet Refund | Billing | Wallet Refund Created | Triggered when a refund is issued to a client’s wallet (e.g., refunding a cancelled service directly as wallet credit). | Client | | Wallet Refund Logged | Wallet Refund | Billing | Wallet Refund Created | | Staff | ## Wallet refund request emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | ------------------------------------- | --------------------- | --------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------- | | Wallet Refund Request Submitted | Wallet Refund Request | Billing | Wallet Refund Requested by | Triggered when a refund request is submitted, either by a client or staff (e.g., client requests a refund for unused service). | Staff | | Wallet Refund Request Update Recorded | Wallet Refund Request | Billing | Wallet Refund Request Updated | Triggered when a refund request is modified (e.g., status changed from pending to approved or rejected). | Staff | | Wallet Refund Request Confirmation | Wallet Refund Request | Billing | Client | Wallet Refund Requested by | | | Wallet Refund Request Status Updated | Wallet Refund Request | Billing | Wallet Refund Request Updated | | Client | ## Wallet statement emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | --------------------------------- | ---------------- | --------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------- | ------------- | | Wallet Statement Generated | Wallet Statement | Billing | Wallet Statement Generated | Triggered when a wallet statement is generated in CSV format for download (e.g., transaction history export). | Client | | Wallet Statement CSV Ready | Wallet Statement | Billing | Wallet Statement CSV Generated | Triggered when a general wallet statement is created (e.g., monthly summary of wallet activity). | Client | | Wallet Statement PDF Ready | Wallet Statement | Billing | Wallet Statement PDF Generated | Triggered when a wallet statement is generated as a PDF document. | Client | | Wallet Statement Export Generated | Wallet Statement | Billing | Wallet Statement CSV Generated | | Staff | ## Webhook endpoint emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | -------------------------------------- | ---------------- | --------- | ------------------------ | ------------------------------------------------------------------------------------------------------- | ------------- | | Webhook Endpoint Registered | Webhook Endpoint | System | Webhook Endpoint Created | Triggered when a new webhook endpoint is added (e.g., setting up a URL to receive event notifications). | Staff | | Webhook Endpoint Removed | Webhook Endpoint | System | Webhook Endpoint Deleted | Triggered when an existing webhook endpoint is removed. | Staff | | Webhook Endpoint Configuration Updated | Webhook Endpoint | System | Webhook Endpoint Updated | Triggered when webhook configuration is modified (e.g., changing endpoint URL or events). | Staff | ## Whitelisted IP emails | **Action Name** | **Category** | **Topic** | **Trigger** | **Trigger Description** | **Recipient** | | --------------------------------- | -------------- | --------- | ---------------------- | ------------------------------------------------------------------------------------------------------------ | ------------- | | New IP Address Added to Whitelist | Whitelisted IP | System | Whitelisted IP Created | Triggered when an IP address is added to the whitelist (e.g., allowing secure API access from a trusted IP). | Staff | | Whitelisted IP Address Removed | Whitelisted IP | System | Whitelisted IP Deleted | Triggered when an IP address is removed from the whitelist. | Staff | | Whitelisted IP Address Updated | Whitelisted IP | System | Whitelisted IP Updated | Triggered when details of a whitelisted IP entry are modified (e.g., updating label or restrictions). | Staff | # How does Email work in Upmind Source: https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-does-email-work-in-upmind How incoming/outgoing email works in Upmind to configure your web host to send email messages with the Upmind name and branding. Upmind provides integrated email management for handling both outgoing communications and incoming support requests. This guide covers how to: 1. **Set up default and custom outbound email** 2. **Connect your own external SMTP mailbox** 3. **Send bulk email through Upmind** 4. **Configure incoming email piping** You can learn how to format your email templates in text, HTML, and snippets of Twig code from this [guide](https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-format-email-templates). ## Outgoing email This section covers all transactional, bulk, and manual emails sent from Upmind to customers, leads, and staff. ### Default email configuration Once registered, you can create a default `support department email` (e.g., `support@randomstring.upmind.app`). This can be accessed from **Settings** > **Support Departments** under **Branding and Customisation**. Settings > Branding and customisation > Support departments Upmind utilises **Amazon SES** to send all transactional, event-based, and manual emails, including invoices, password resets, and ticket notifications, ensuring excellent deliverability. New accounts have sending limits to protect sender reputation, which gradually increase as activity grows. You can also create additional support department emails, such as `support@randomstring.upmind.app`, if needed. ### Adding a custom SMTP server Upmind can send emails through your own SMTP-enabled mail server, including third-party providers like **Mailgun**, **MailChannels**, or **SpamXperts**. To configure your custom mailserver: 1. Navigate to **Settings** > **Notification Channels** under **Automation**. Settings > Automation > Notification channels 2. Under `Email Channel`, select **Use Custom SMTP**. Custom SMTP 3. You must specify a **From Email** and **From Name**. While these don’t require authentication and can be any name or email, it’s best to use the email linked to your SMTP server. 4. Fill in the information as needed, which can usually be obtained from your email provider (e.g., cPanel, Microsoft 365): 1. **SMTP Server Hostname** 2. **Username** 3. **Password** 4. **Port** Add details 5. **Save** the changes. 6. If you want to send a test email to a client, you can do it manually by choosing the client first. 7. Then go to **Overview** > **Quick Actions** and click on **Send Email**. Clients > Overview > Quick actions By impersonating a client, you can also test it from the client’s profile by clicking on **Open New Ticket** under `Support`. Open new ticket ### Sending bulk email through Upmind Announcements and newsletters can be sent through Upmind under **Client** > **Bulk Notifications**. This feature is meant for quick client updates, not as a full replacement for tools like **Mailchimp** or **CampaignMonitor**. Bulk notifications Newsletters will be sent through either Upmind’s Amazon SES or your custom SMTP server. If using a custom SMTP, remove mailing limits for high-volume sends. For more information on how to send bulk emails to clients, follow this [guide](https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-create-and-send-client-bulk-email-messages). ## Incoming email This section covers emails from customers and leads to Upmind, including new sales or support inquiries and replies to support tickets. ### Incoming email piping Clients can reply to Upmind-generated emails using the default outbound SMTP configuration or send new messages to any address at your Upmind dashboard domain (e.g., `support@randomstring.upmind.app`). Incoming emails are automatically converted into support tickets. You can configure the process in the following way: 1. Create a support department and a support department email from **Settings** > **Support Department**. You can follow this [guide](https://docs.upmind.com/using-upmind/service-desk/how-to-create-support-department). 2. With your domain provider, configure and set up an email forwarder from your branded address (e.g., `support@yourcompany.com`) to the Upmind destination mailbox (`support@randomstring.upmind.app`). 3. To pipe emails from a custom SMTP, set up an email forwarder that relays messages from your address (e.g., `support@yourcompany.com`) to the matching Upmind mailbox (e.g., `support@randomstring.upmind.app`). Destination mailbox You can follow this [guide](https://docs.upmind.com/using-upmind/service-desk/how-to-create-support-department) to create a forwarded message mailbox. ### Website contact forms If your website’s contact form creates support tickets by sending emails, you can make sure that replies to those emails go directly to the client’s email address, not just a generic support address. You can do this by setting it to use the client’s email as the reply-to address. To achieve this in Upmind, enable the setting **Use ‘Reply-To’ Instead Of ‘From’** by navigating to **Settings** > **Branding and Customisation** > **Service Desk** > **Tickets**. This setting ensures that when your support team replies to a ticket email, their response is sent to the client’s email address (the reply-to), making communication more direct and efficient. Email piping header ### Support department routing You can route emails to specific support departments based on the mailbox address. In **Settings** > **Support Departments**, [assign destination mailboxes for each department](https://docs.upmind.com/using-upmind/service-desk/how-to-create-support-department) (e.g., billing, sales). Then forward relevant emails from your custom domain to these addresses. # How to BCC Trustpilot in Upmind Source: https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-bcc-trustpilot-in-upmind Automatically copy emails to external services for reviews or archiving. Trustpilot helps you collect customer reviews. By adding your unique Trustpilot BCC email address to outgoing emails (such as invoice payment messages), you can trigger Trustpilot’s Automatic Feedback Service (AFS) to send review invitations. ## Prepare your Trustpilot account 1. Create and verify your Trustpilot business account. 2. Go to **Trustpilot Business** and select **Get reviews**. 3. Under **Invitation methods**, choose **Trustpilot Automatic Invitations (AFS)**. Invitation methods 4. Copy your unique Trustpilot email address. Invitation methods ## Configure in Upmind 1. Log in to Upmind admin. 2. Go to **Settings** and select **Actions** under **Automation**. Settings > Actions 3. Find and select the **Invoice Payment Capture Triggered** action. Select invoice payment capture triggered 4. Paste your Trustpilot email address into the **BCC** field. Paste Trustpilot email address 5. Save your changes. Now you can easily prompt clients to leave reviews after transactions. This increases brand reputation and customer feedback automatically. # How to Create and Send Client Bulk Email Messages Source: https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-create-and-send-client-bulk-email-messages Save time by reusing templates or creating new ones. You can create and customise email templates to send bulk notifications to all or specific client segments based on parameters like verified account status, guest client, or [fraud status](https://docs.upmind.com/setup-and-configuration/orders-services/fraudmindtm-fraud-prevention-and-security). Quickly duplicate templates for new messages and use this feature for announcements, marketing, or important updates. For bulk notifications about clients' products and services, refer to the separate [guide](https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-create-and-send-product-and-service-bulk-email). ## **Define message recipients** 1. Log in to Upmind Admin. 2. Go to **Clients** in the left menu. 3. Select **Bulk Notifications**. Bulk notifications Bulk notifications 4. Click **Add Bulk Action**. 5. Enter a name for the bulk action. 6. Click the **Segment** field to choose: 1. All clients (default) 2. An existing segment 3. Create a new segment Choose a segment Choose a segment ## **Creating a new segment** 1. Select **Add New Segment**. Add new segment Add new segment 2. Enter a segment name. 3. Set **Segment Parameters** (e.g., Verified, Guest, Fraud status). Segment parameters Segment parameters Add rules Add rules 4. Add rules to refine your segment. 5. Click **Create**. ## **Attach an existing template** 1. Click the template field. 2. Select a template. Add existing template Add existing template 3. Modify text or code snippets if needed. Modify existing text Modify existing text 4. Click **Save**. Upmind displays the message on the `Client bulk notifications` page. Client bulk notifications Client bulk notifications ## **Create a new template** 1. Click **Create Template**. Create new template Create new template 2. Enter a template name. 3. Choose the recipient type. Choose the recipient type to notify Choose the recipient type to notify 4. Fill in the **Subject** and **Body** fields. ## **Adding dynamic fields** Code snippets dynamically insert content into emails when opened by the recipient. To insert a snippet: 1. Click a menu tab to view available snippets. Each tab contains a distinct collection of related code snippets. Click a menu tab Click a menu tab Learn more about [template syntax](https://upmind.featurebase.app/help/articles/5591991-how-to-format-email-templates). 2. Copy and paste snippets into the template. 3. Use HTML for formatting. Paste the code into the template Paste the code into the template Email templates are built with [Twig code](https://twig.symfony.com/). 4. Click **Save**. ## **Edit bulk messages** 1. Go to the **Client Bulk Actions** page 2. Select a message 3. Update as needed. 4. Click **Save**. ## **Delete bulk messages** 1. Click the gear icon next to the message. 2. Select **Delete**. Delete a message Delete a message ## **Send or schedule bulk messages** 1. On the **Client Bulk Actions** page 2. Find your message. 3. Click **Start**. Click start Click start 4. Choose **Start Now** to send immediately, or **Schedule for Later** to pick a date and time. Choose start now or schedule for later Choose start now or schedule for later ## **Review results** Upmind displays email results on the `Client bulk actions` page. You can view delivery statistics, segment info, and template details when you click on a bulk message. Email results displayed Email results displayed # How to Create and Send Product & Service Bulk Email Messages Source: https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-create-and-send-product-and-service-bulk-email Notify customers about product or service changes in bulk. Product & Service Bulk Email Messaging enables you to create templates and send personalised bulk email notifications to clients based on defined product and service parameters (e.g., product, price, status, client parameters). You can quickly send new messages by duplicating and customising templates. Note that each matching product generates a separate email, so clients with multiple products may receive multiple messages. For bulk notifications unrelated to products or services, see this separate [guide](https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-create-and-send-client-bulk-email-messages). ## Define message recipients 1. Log in to Upmind Admin. 2. Go to `Products & Services` in the left menu. 3. Select **Bulk Notifications**. Products & services > Bulk notifications 4. Click **Add Bulk Action**. 5. Enter a name for the bulk action. 6. Click the **Segment** field to choose: * All products & services (default) * An existing segment * Create a new segment Choose a segment ## Creating a new segment 1. Select **Add New Segment**. Add new segment 2. Enter a segment name. 3. Set **Segment Parameters** (e.g., Product, Price, Status, Provision Configuration, Client parameters). Choose a parameter 4. Add rules to refine your segment. 5. Click **Create**. Add rules ## Attach an existing template 1. Click the template field. 2. Select a template. 3. Modify text or code snippets if needed. Modify existing text 4. Click **Save**. Upmind displays the message on the `Product & Services bulk actions` page. Template saved ## Create a new template 1. Click **Create Template**. Create new template 2. Enter a template name. 3. Choose the recipient type. Choose the recipient type to notify 4. Fill in the **Subject** and **Body** fields. ## Adding dynamic fields Code snippets dynamically insert content into emails when opened by the recipient. To insert a snippet: 1. Click a menu tab to view available snippets. Each tab contains a distinct collection of related code snippets. Click menu tab Learn more about [template syntax](https://upmind.featurebase.app/help/articles/5591991-how-to-format-email-templates). 2. Copy and paste snippets into the template. 3. Use HTML for formatting. Paste the code into the template Email templates are built with [Twig code](https://twig.symfony.com/). 4. Click **Save**. ## Edit bulk messages 1. Go to the **Product & Services Bulk Actions** page. 2. Select a message. 3. Update as needed. 4. Click **Save**. ## Delete bulk messages 1. Click the gear icon next to the message. 2. Select **Delete**. Delete a message ## Send or schedule bulk messages 1. On the **Product & Services Bulk Actions** page. 2. Find your message. 3. Click **Start**. Click start 4. Choose **Start Now** to send immediately, or **Schedule for Later** to pick a date and time. Choose start now or schedule for later ## Review results Upmind displays email results on the `Product & Services bulk actions` page. You can view delivery statistics, segment info, and template details when you click on a bulk message. Email results displayed # How to Email a Client Source: https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-email-a-client With a few clicks, you can now send organised and informative emails to your clients easily. You can send a personalised email to a single client directly from their invoice or order. This is useful for sharing updates, reminders, or custom messages related to a specific transaction. This guide shows you how to [send a bulk message](https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-create-and-send-client-bulk-email-messages) to all or a segment of your contacts. To select a message recipient, first open an invoice using the **Clients** or **Orders** link from the left-side menu. ## Sending an email from the clients section 1. Log in to your Upmind admin account. 2. Click **Clients** in the left menu. 3. Select the **Clients List** tab. 4. Find and click the client’s name to open their profile. Select client 5. Go to the **Invoices** section and select the relevant invoice. Invoices section 6. Scroll down to **Quick Actions** and click **Send email**. Send email 7. Choose an existing one or create a [new template](https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-format-email-templates) for your message. Edit the subject and body as needed, using dynamic fields for personalisation. Send invoice email 8. Click **Send** to deliver the message. ## Sending an email from the orders section 1. Log in to your Upmind admin account. 2. Click **Orders** in the left menu. 3. Select the **Orders List** tab. Orders list 4. Use filters to locate the specific order. Order filters 5. Click the order to open its details. 6. Click **View Invoice**. View invoice 7. Click **Go to the invoice**. Go to invoice 8. Scroll down to **Quick Actions** and click **Send email**. 9. Select a template or create a new one, customise as needed, and send. # How to Format Email Templates Source: https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-format-email-templates Upmind makes formatting email templates easier for you so you can work with ease. Upmind’s email templates power all automated and manual messages sent to clients and staff. Email templates consist of three elements: 1. **Text**: The plain content visible to recipients. 2. **HTML**: Enables rich formatting, branding, and layout control. 3. **Snippets of Twig code**: Insert dynamic data (e.g., client name, invoice number) that updates for each recipient. This guide shows you how to properly format templates used to create and send [bulk client](https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-create-and-send-client-bulk-email-messages) messages, as well as emails sent to a [single client](https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-email-a-client). The same template structure (text, HTML, and Twig code) is used to create [notifications](https://docs.upmind.com/setup-and-configuration/notifications/how-to-create-and-disable-notifications#how-to-create-and-disable-notifications) (automated trigger-based messages). ## Accessing email templates You can access the templates from **Settings** > **Automation** > **Email Templates**. Settings > Email templates Settings > Email templates ## Formatting text and HTML Upmind supports basic formatting for the text in the body with standard HTML tags for headings, bold, italics, and links. You can also use \`\` for line breaks as needed. Combining HTML and plain text also helps to make the emails visually appealing and accessible. Use br  / inside \<> to insert line breaks Use br  / inside \<> to insert line breaks ## Adding Twig snippets Twig is a flexible templating language for logic and formatting. It is used for conditional content, loops, and formatting dates or numbers. Code snippets personalise emails by inserting dynamic content that updates with live data from Upmind when recipients open the message. ### How to insert a snippet 1. Scroll to the bottom of the template editor. 2. Click a menu tab (e.g., Client, Invoice, Order) to view available snippets for that context. Each tab contains a unique set of related code snippets, with available options varying based on the message type you create. Menu tab Menu tab 3. Click a snippet to copy it to your clipboard. 4. Paste the snippet into the **Subject** or **Body** field where you want the dynamic content to appear. 5. You can also add snippets when you type `{{` in the email body. Add snippets Add snippets 6. Add as many snippets as needed to customise the message. 7. Click **Save** to apply changes. Draft bulk action template Draft bulk action template To manage templates for bulk and triggered emails, you can access all templates through **Settings** > **Notification Templates**. The bulk action templates (for newsletters or announcements) follow the same structure as automated notifications. Use clear subject lines and consistent branding for all templates. Email templates are built with Twig code. To learn more about this code syntax, open the [Twig site](https://twig.symfony.com/). ### Previewing and testing templates 1. After saving, Upmind displays a preview of the message. 2. Choose a client 3. From the overview, under `Quick Actions`, use the **Send Email** function to [test your email](https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-test-emails) and check formatting and dynamic content before activating the template. 4. Adjust as needed for different email clients and devices. Clients > Quick actions > Send email Clients > Quick actions > Send email Send test email Send test email # How to Test Emails Source: https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-test-emails Send test emails to confirm configuration and template appearance. Testing emails ensures your templates display as intended and dynamic fields populate correctly. Upmind provides several ways to send test emails. ## Sending a test email from a product 1. Go to **Products & Services** in the left menu. 2. Select the desired product. Select product 3. From the **Quick Actions**, click **Send Email**. Send email 4. Choose the email template to test and send it. Test email # How to View Email Logs Source: https://docs.upmind.com/setup-and-configuration/email-configuring-and-sending/how-to-view-email-logs Track sent, failed, and queued emails with search and filtering. ## What is an email log? The email log records every message sent from your Upmind business, including the subject, recipient, date, and delivery status. It allows you to view message content and the trigger or hook that generated it, such as a welcome email. This log serves as proof of communication, aids in auditing and troubleshooting, and enables quick resending of messages if needed. ## Viewing the general email history log 1. Log in to your Upmind admin account. 2. Click **Logs** in the left menu. 3. Select **Email History Log** to view all sent messages. Email history log ## Viewing a specific client’s email log 1. Click **Clients** in the left menu. 2. Select the **Clients List** tab. Clients list 3. Find and click the client’s name. 4. Under the **Logs** heading, click **Email History Log** to see the client’s email history. Specific client email history log ## Filtering messages 1. On the **Email History Log** page, use menu items to filter by status (**Sent, Bounced, Failed**). 2. Use the filter field to search by tag, such as first name or email address. Filter messages ## Reading a message 1. Click a message to open the **View Email** panel. Read messages 2. You can review message details, content, and related [triggers](https://docs.upmind.com/setup-and-configuration/notifications/how-to-create-and-disable-notifications) or [hooks](https://docs.upmind.com/setup-and-configuration/notifications/notifications-overview). Hook and trigger messages ## Resending a message 1. Click the gear icon next to a message and select **Resend**. 2. Or, open the message and use the **Resend** link at the top of the panel. Resend message Resent message When you resend a message, Upmind adds it to the log with a label indicating it is a re-sent message for tracking purposes. # How the Import System Works Source: https://docs.upmind.com/setup-and-configuration/importing-data/how-the-import-system-works Upmind automates your information and business so you can import your important data easily. Upmind supports importing data from a variety of external platforms to help you transition smoothly and manage your business efficiently. Our import system is designed to be effective and user-friendly, allowing you to bring in essential data accurately and securely. ## Data types supported by the import system Upmind can import the following data types: * Products * Users (staff) * Clients * Affiliates * Client Payment Information * Contracts * Invoices * Support Tickets Depending on your data source, you may import some or all of these categories. **Example**: When importing from a ticketing system, you might only bring in clients and tickets. Example of a completed import with necessary steps ## Import workflow ### Staging records All imported data is first staged. This means your import is not applied immediately but held for review. Staging allows you to preview exactly what will be imported, eliminating risks associated with blind imports. ### Data mapping During import, you will be prompted to map external data fields to Upmind records. Mapping helps to connect external product categories, ticket users, or other entities to matching records within Upmind. This step is vital to maintain data integrity and relationships. ### Linking imported records Upmind helps you see how imported data connects to existing records. It shows visual cues (imported tag) and links that let you check relationships. This makes verifying that all data is correctly connected and organised after import easier. Imported client ## Committing or cancelling imports After reviewing the staged data, you can either commit the import to save the data and trigger automations or cancel it to discard all changes with no partial data saved. # Importing CSV Data Source: https://docs.upmind.com/setup-and-configuration/importing-data/importing-csv-data CSV for all fields and sample data needed to import the necessary information. This guide explains how to import information into Upmind using a CSV file, including examples of required columns and formats. These include: 1. **Client payment details** 2. **Client data** 3. **Contracts** 4. **Invoices** 5. **Product data** 6. **User data** Upmind is [ISO 27001 certified](https://docs.upmind.com/legal-and-information/information-security) and uses enterprise-grade security to protect your payment data during import and storage, ensuring your customers’ information remains safe throughout the process. ## Importing CSV 1. You can import CSV files from **Settings** > **Imports** under **Miscellaneous**. Settings > Miscellaneous > Imports Settings > Miscellaneous > Imports 2. Then click on **Upload CSV files**. Upload CSV files Upload CSV files ## Client payment details | **Field Name** | **Description** | **Example** | | ----------------------------- | ---------------------------------------------------------------------- | ------------------------------ | | id | Unique record identifier. | 1 | | client\_id | Upmind client identifier. | 1 | | payment\_method\_name | Descriptive name of the payment method. | Visa ending 4242 | | gateway\_provider\_code | Payment gateway identifier used by Upmind. | PayPal\_Rest | | is\_default | Indicates if this is the default payment method (1 for yes, 0 for no). | 1 | | allow\_auto\_payment | Specifies if automatic payments are allowed (1 = yes). | 1 | | imported\_address\_id | Reference ID for the imported billing address. | 61051 | | card\_type | Type of credit card used. | visa | | card\_last4 | Last four digits of the card number. | 4242 | | card\_expire\_date | Card expiration date in MM/YYYY format. | 11/2023 | | payment\_method\_token | Unique token representing the payment method in the gateway. | pm\_1NpTxkEZLEAqFQ2mTqZcDC6c | | customer\_reference | Customer reference ID from the payment gateway. | cus\_OcjQJtdNFORBpu | | stripe\_setup\_intent | Stripe setup intent ID. | seti\_1NpTyoFSPY1r1zi86UsAyzql | | stripe\_payment\_method\_type | Payment method type registered with Stripe. | paypal | | address\_1 | Primary street address. | Varna | | address\_2 | Secondary address line. | Apt 5B | | country\_code | Two-letter ISO alpha-2 country code. | BG | | region\_code | Regional or state code. | 13 | | postcode | Postal or ZIP code. | 4400 | ## Client data | **Field Name** | **Description** | **Example** | | ---------------------- | --------------------------------------------- | ------------------------------------------------------------- | | id | Unique client record identifier. | 1 | | first\_name | Client's first name. | Leon | | last\_name | Client's last name. | Gomez | | has\_login | Indicates login access (1 for yes, 0 for no). | 1 | | verified | Client's verification status (1 = verified). | 1 | | email | Client email address. | [client1@upmind-client.com](mailto:client1@upmind-client.com) | | phone\_phone | Client’s phone number. | 888777777 | | phone\_country\_code | Two-letter ISO alpha-2 country code. | BG | | phone\_verified | Phone verification status (1 = verified). | 1 | | address\_address\_1 | Street address line 1. | Sofia | | address\_city | City name. | California | | address\_postcode | Postal or ZIP code. | 1220 | | address\_country\_code | Two-letter ISO alpha-2 country code. | BG | | address\_verified | Address verification status (1 = verified). | 1 | | company\_name | Client company name. | Upmind Solutions Ltd. | | company\_verified | Company verification status (1 = verified). | 1 | | currency\_code | Client's default currency in ISO 4217 format. | GBP | ## Contracts | **Field Name** | **Description** | **Example** | | ------------------------------------------------- | ----------------------------------------- | -------------------------- | | id | Unique contract identifier. | 1 | | name | Contract title or name. | Standard Hosting Agreement | | start\_date | Contract start date in YYYY-MM-DD format. | 2025-01-27 | | activation\_date | Date contract was activated. | 2025-01-27 | | client\_id | Associated client’s unique ID. | 1 | | company\_id | Linked company identifier. | 42 | | address\_id | Billing or service address ID. | 1 | | total\_amount | Total contract value. | 20 | | status | Contract state (e.g., contract\_pending). | contract\_pending | | created\_at | Timestamp of contract creation. | 2025-01-27 04:41:14 | | updated\_at | Timestamp of last update. | 2025-08-02 14:11:39 | | contract\_product\_id | Unique contract product ID. | 101 | | contract\_product\_product\_id | Product ID linked to contract product. | 1 | | contract\_product\_name | Product name. | Shared Hosting | | contract\_product\_description | Product description. | Shared Hosting | | contract\_product\_billing\_cycle\_months | Billing cycle length in months. | 1 | | contract\_product\_quantity | Number of products purchased. | 1 | | contract\_product\_unit\_quantity | Unit of measurement for the product. | 5 GB | | contract\_product\_price | Unit price per product. | 20 | | contract\_product\_amount | Total amount for the product line. | 20 | | contract\_product\_status | Status of the contract product. | contract\_pending | | contract\_product\_total\_amount | Total cost including taxes and discounts. | 20 | | contract\_product\_net\_amount | Amount before taxes. | 20 | | contract\_product\_tax\_amount | Tax amount charged. | 0 | | contract\_product\_net\_selling\_price | Selling price excluding taxes. | 20 | | contract\_product\_base\_price | Base price of the product. | 20 | | contract\_product\_selling\_price | Final selling price charged. | 20 | | contract\_product\_net\_product\_discount\_amount | Discount amount on the product. | 0 | | contract\_product\_created\_at | Contract product creation timestamp. | 2025-01-27 04:41:14 | | contract\_product\_updated\_at | Contract product last updated timestamp. | 2025-08-02 14:11:39 | | contract\_product\_renew | Flag if product auto-renews (1 = yes). | 1 | | contract\_product\_initial\_invoice\_amount | Initial invoice amount for product. | 20 | | contract\_product\_manual\_status | Flag for manual status override (0 = no). | 0 | | currency\_code | ISO 4217 currency code. | GBP | | contract\_product\_next\_due\_date | Next billing due date. | 2026-01-12 | | main\_contract\_product\_id | Primary related contract product ID. | 101 | | provisioning\_product\_type | Type of provisioning service. | hosting | | provisioning\_domain\_registrar | Domain registrar name. | GoDaddy | | provisioning\_hosting\_server\_id | Server identifier. | server123 | | provisioning\_hosting\_type | Hosting type (e.g., shared-hosting). | shared-hosting | | provisioning\_hosting\_hostname | Hosting server hostname. | server.hostname | | provisioning\_hosting\_ip | Hosting server IP address. | 127.0.0.1 | | provisioning\_username | Username for provisioning access. | hostingUser1 | | provisioning\_domain\_name | Domain name provisioned. | mydomain.com | ## Invoices | **Field Name** | **Description** | **Example** | | --------------------------------- | ------------------------------------------------------- | ------------------- | | id | Unique invoice identifier. | 1 | | contract\_id | Associated contract’s unique ID. | 1 | | number | Invoice number or reference code. | C-INV-00001 | | client\_id | Client’s unique identifier. | 1 | | user\_id | ID of user who created or manages the invoice. | 1 | | net\_amount | Total amount before taxes. | 20 | | tax\_amount | Tax charged on the invoice. | 4 | | total\_amount | Total amount including tax. | 24 | | paid\_amount | Amount already paid. | 0 | | status | Invoice payment status (e.g., invoice\_unpaid). | invoice\_unpaid | | paid\_datetime | Timestamp when payment was made; use NULL if unpaid. | NULL | | due\_date | Payment due date in YYYY-MM-DD format. | 2025-01-27 | | created\_at | Timestamp of invoice creation. | 2025-01-26 05:38:53 | | updated\_at | Timestamp of last update. | 2025-01-27 18:51:51 | | cancellation\_datetime | Timestamp of cancellation if any; NULL if none. | NULL | | invoice\_product\_id | Unique identifier for invoice line item. | 1 | | invoice\_product\_product\_id | Product ID linked to the invoice item. | 1 | | invoice\_product\_name | Product or service name. | Shared Hosting | | invoice\_product\_description | Description of the product or service. | Shared Hosting | | invoice\_product\_quantity | Quantity billed. | 1 | | invoice\_product\_unit\_quantity | Additional unit details if applicable; use NULL if N/A. | NULL | | invoice\_product\_net\_amount | Net amount for the line item. | 20 | | invoice\_product\_tax\_amount | Tax amount applied to the line item. | 4 | | invoice\_product\_vat\_percentage | VAT or tax rate percentage. | 20 | | invoice\_product\_total\_amount | Total line item amount including tax. | 24 | | invoice\_product\_created\_at | Timestamp when this line item was created. | 2025-01-26 05:38:54 | | invoice\_product\_updated\_at | Last update time for the invoice line item. | 2025-01-27 04:41:14 | | currency\_code | ISO 4217 currency code for the invoice | GBP | ## Product data | **Field Name** | **Description** | **Example** | | ----------------------------- | ----------------------------------------------------------------- | --------------------------- | | id | A unique number identifying each product. | 1 | | name | The product's descriptive name. | Shared Hosting | | product\_type | Numeric code representing the product category. | 1 | | order\_type | Numeric code indicating how the product is ordered. | 1 | | unit\_quantity | Optional unit measurement for the product. | NULL/5 GB | | product\_billing\_type | Billing cycle type code. | 0 for one-time or recurring | | available\_for\_sales | Whether the product is listed for sale (1 for yes). | 1 | | clients\_can\_order | Indicates if clients can directly order this product (1 for yes). | 1 | | price\_price | Product price, usually in decimal format. | 0 | | price\_billing\_cycle\_months | Billing cycle length in months. | 1 | | price\_currency\_code | ISO code for the currency. | GBP | | provision\_configuration\_id | Identifier for the provisioning setup. | 12345 | ## User data | **Field Name** | **Description** | **Example** | | -------------- | ------------------------------------------------------------------ | ------------------------------------------- | | id | Unique numeric identifier for each user. | 1 | | firstname | User’s first name. | Brian | | lastname | User’s last name. | West | | username | Unique login name for the user. | bwest | | email | User’s email address. | [user1@upmind.com](mailto:user1@upmind.com) | | admin | Indicates administrative privileges (1 = admin, 0 = regular user). | 0 | | active | User account status (1 = active, 0 = inactive). | 1 | | language\_code | Preferred user interface language code (ISO 639-1). | en | | group\_ids | Comma-separated list of group IDs the user belongs to. | 1,3,7 | You can use the Upmind examples repository ([GitHub csv-import-examples](https://github.com/upmind/csv-import-examples/blob/main/client-payment-details.csv)) for additional CSV templates. # Importing from WHMCS Source: https://docs.upmind.com/setup-and-configuration/importing-data/importing-from-whmcs Import your WHMCS data, files, and all other necessary information. ## **What is WHMCS?** [WHMCS](https://www.whmcs.com/) is a self-hosted billing and automation platform for hosting businesses. If you are planning to move your billing, client management, and support data from WHMCS to Upmind, this guide will walk you through the process. Note that WHMCS installations often include customisations such as database adjustments or third-party modules, which may not be imported. Upmind focuses on importing core data necessary for client management and billing effectively. ## **What can be imported?** Upmind supports importing most core WHMCS data, including: * Staff users * Products and services * Promotions * Clients * Support tickets * Invoices * Payment methods * Affiliate accounts * Domains and servers If Upmind cannot automatically map certain data (e.g., servers, domains), you will be prompted to create manual mappings during import. ## **Preparing for the import** Before starting the import, verify and configure these settings in Upmind: | **Setting** | **Description** | | ------------------------------ | ----------------------------------------------------------------------------------------------- | | Brand Settings | Set your brand name and contact details. | | Tax Settings | Configure tax rates relevant to your region. | | Web Servers & Domain Providers | Add shared web servers and domain registrars under **Settings** > **Provision Configurations**. | | Payment Gateways | Set up payment gateways under **Settings** > **Payment Providers**. | ## **Setting up WHMCS access for Upmind** Create API Credentials in WHMCS. 1. In WHMCS admin, go to **Setup** > **API Credentials**. Setup > API credentials 2. Under **API Roles**, create a new **API Role**. Create API role 3. Create an API role with full permissions by selecting all checkboxes or by allowing only specific API commands: * GetTicketUsers * GetClients * GetClientsDetails * GetAffiliates * GetAdminUsers (special steps below) * GetTickets * GetInvoices * GetCurrencies * GetProducts * GetOrders * GetTLDPricing * GetClientsDomains * GetClientsProducts * GetInvoice * GetTicket * GetPayMethods * GetClientGroups * GetSupportDepartments * GetConfigurationValue 4. **Save** the API Role. Give the API user all permissions ## **GetAdminUsers API functionality** If the **GetAdminUsers** command does not appear or returns errors, manually add **getadminusers** to the **tblapiroles** table in your WHMCS database. Add getadminusers ## **Creating API credentials** 1. Return to **API Credentials**. 2. Click **Generate New API Credential**. Generate new API credential 3. Select the **API Role** created and assign an admin user. Select API role 4. Generate credentials and copy the **Service Identifier** and **Secret**. ### **Whitelist Upmind IP addresses in WHMCS** Add these IPs to **Settings** > **General Settings** > **Security** > **API IP Access Restriction**: * 91.240.229.1 * 91.240.229.2 * 91.240.229.3 ### **Proxy or Load Balancer configuration** If WHMCS is behind proxies like Cloudflare or load balancers, follow WHMCS’s trusted proxy setup at: [https://docs.whmcs.com/Trusted\_Proxy\_Settings](https://docs.whmcs.com/Trusted_Proxy_Settings) ## **Configuring the import in Upmind from WHMCS** 1. Go to **Settings** > **Imports** in Upmind. Settings > Imports 2. Click **Create New Import** and select **WHMCS**. Create new import 3. Click on **Add New Credentials**. Add new credentials 4. Add the **URL**, **Username** (API Username), **Password** (API Password), **Admin Dashboard URL**, and choose the **Tax Setting** collected from WHMCS. Add details The username and password are provided by WHMCS when generating your API credentials. 5. **Save** and test credentials. You can correct any errors. 6. Once validated, click **Create import**. ## **Running the Import** You can leave the import running and return anytime. No data will be lost or interrupted. You will now see a screen that looks as follows. Click **Start Import**. Start import The import starts immediately, runs in the background, and imports data in order. ### **Products** Upmind treats both domains and products as types of products. However, it stores only one record for each top-level domain (TLD), like ".com." This means if a TLD such as "com" is already in the system, any new imports that include this TLD won't create a duplicate record. Instead, the new data will be linked or mapped to the existing ".com" record. This approach keeps the system organised and avoids unnecessary duplicates while allowing all related data to connect properly under the existing TLD entry. After the first import, you'll see an orange **Mappings required** notification. Mappings required Mappings required expanded 1. Map categories if set up on **Store Catalogue** from the dashboard or from under **Settings** > **Products Catalogue**. (optional) Map categories 2. Click **Confirm mapping(s) and continue**. Product group Confirm mapping(s) and continue 3. Products will begin importing. Importing in progress 4. After import, view the data list, which you can preview but not edit **staged** data. Staged data Product info 5. Repeat this process for the remaining import sections. ### **Users** Users with the same email are automatically mapped. Permission levels for these mappings are set up under **User Roles**. ### **Clients** Your client database will be exported to Upmind and may take time, but you can leave it running in the background. You will be given the option to map custom fields. You can [create Upmind custom fields](https://docs.upmind.com/using-upmind/client-management/how-to-add-client-custom-fields) in the settings panel. Client custom fields Once the client's records are imported, you can go to a client profile and view their staged information. Staged information ### **Affiliate accounts** Imports activate affiliate accounts, including activations and balances. Affiliate links and referrals must be added manually. ### **Client payment details** Requires mapping payment providers to those added in the system. ### **Contracts** Imports current subscriptions and client products. Map provision configurations like servers, suppliers, and domain registrars. ### **Tickets** Imports WHMCS support tickets. You can optionally map support ticket departments. ## **Previewing and committing data** After mapping data, you can preview it, but cannot edit or allow client login. Preview helps verify data before committing. If errors appear, cancel the import. You can commit data once you are happy with the staged import. ## **Best practices** * Add servers, domain providers, and payment gateways in Upmind before importing to match your current setup and ensure smooth data mapping. * Always back up your WHMCS database before importing to protect against data loss. * Disable WHMCS cron jobs and enable maintenance mode during import to avoid conflicts or data changes. * Keep WHMCS offline after import until you confirm all data is correct in Upmind. ## **Troubleshooting** | **Issue** | **Solution** | | ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | My username and password are not correct. | Use the WHMCS Service Identifier and Secret, not the admin password. | | Why does the import fail with "Malformed UTF-8 characters"? | This usually happens due to bad characters in the hosting account passwords. After backing up, you can remove passwords from the accounts. Upmind doesn't need or store them. This can be done via the interface or directly in the database. | Username and password # Importing Tickets from SupportPal Source: https://docs.upmind.com/setup-and-configuration/importing-data/importing-tickets-from-supportpal Importing tickets from SupportPal has never been easier with Upmind. It gives you an automated system to import all your support tickets in a few steps. [SupportPal](https://www.supportpal.com/) is a self-hosted support desk application that provides standalone customer service tools, often used alongside WHMCS. It is an API-driven platform designed to manage customer support efficiently. ## What can be imported? Upmind can import both client data and ticket information from SupportPal. If the client already exists in Upmind, tickets will be matched using the client's email address. If the client does not exist, Upmind will automatically create a new lead for them. ## Preparing to import from SupportPal Before importing, whitelist the following IP addresses on your SupportPal instance to allow access from Upmind: * 91.240.229.1 * 91.240.229.2 * 91.240.229.3 ## Steps to configure SupportPal for import 1. Log in to your SupportPal admin dashboard. 2. Go to **Settings** > **Imports**. 3. Click **Create New Import**. Settings > Imports > Create new import 4. Enter the URL of your SupportPal installation (without including `/admin`). For example, use `support.mydomain.com` if your site URL is `https://support.mydomain.com/admin`. 5. Enter your SupportPal API **username** and **password**. 6. Click **Save**. ## Running the import After saving, initiate the import by clicking **Start Import**. The import process runs in the background and can be monitored or resumed from the import screen without data loss. Tickets will be imported along with client information, preserving associations where emails match. # About Default Notification Templates Source: https://docs.upmind.com/setup-and-configuration/notifications/about-default-notification-templates Pre-generated notifications for your business. Upmind is designed for immediate use with minimal setup, so we include pre-generated notifications for the most common business needs. You can disable or replace them in the admin area from **Settings** > **Actions** under **Automation**. Settings > Automation > Actions Because Upmind is designed to work immediately, with little configuration required, we pre-generated some notifications that we think are important for most businesses. All pre-generated templates are highlighted as **Default**. Default templates ## Template list Here is a full list of default notifications: ### Client email notifications These are sent to clients. Message contents will vary based on whether you've enabled the [client login feature](/using-upmind/client-management/how-to-add-and-manage-clients) on the Client overview page. **Example**: Users without accounts won't see login prompts for invoice payments. * Account created * Password reset * Order confirmation * New invoice created * Invoice overdue * Payment received * Cancellation request received * New ticket opened * New ticket reply ### Staff email notifications * New client * New order placed * Invoice paid * New cancellation request * New ticket opened * New ticket reply ### WebSocket notifications These are pre-configured real-time popups or updates in the Upmind app on active events for staff and clients, which can be customised as needed. # How to Create & Disable Notifications Source: https://docs.upmind.com/setup-and-configuration/notifications/how-to-create-and-disable-notifications Automate notifications with triggers and discover several ways to disable them. This guide covers setting up notifications (actions) based on triggers for your emails. It includes selecting events, recipients, and message formats. It also explains disabling options, which is ideal for migrations from other platforms to Upmind. ## Access the automation page 1. Log in to Upmind. 2. Go to **Settings** > **Actions** under **Automation**. This opens the Automation page with **Actions** and **Triggers** tabs. Settings > Automation > Actions ## Review existing actions and triggers ### Actions tab Click the **Actions** tab to view all notifications (20+ defaults and custom actions, including Slack integrations). Click channel icons to see a list of all actions associated with that notification channel. Actions tab ### Triggers tab Click the **Triggers** tab to browse 30+ categories, each with multiple specific events (e.g., 2–10+ per category). Triggers tab ## Create a new action 1. Select **Actions** tab > **Add action**. 2. Toggle **Enabled** to `ON`. (Default) 3. **Name** the action and choose a **channel**. Create action ## Add a trigger 1. Click the trigger field, search if needed, and select one. Add trigger 2. **Save.** You can now manage the conditions of your trigger. Manage conditions The **Manage Condition** button will only appear after you save the action template. ## Select recipients Choose `Who do you want to notify?` from the options. Choose who to notify The list of options varies with the notification channel and your current configuration. **Example**: There is only one option (Brand) for Slack. ## Build the template 1. Scroll to **Template and** create the message with [**Twig syntax**](/setup-and-configuration/email-configuring-and-sending/how-to-format-email-templates) for variables. 2. Click **Save**. Insert Twig syntax Upmind sends the message when the trigger event occurs (e.g., Slack alert for ticket replies). Final message ## Edit or delete actions 1. Go to the **Actions** tab. 2. Click the three dot icon next to an action. 3. Here you can view to **Edit** or **Delete** it. View or delete ## Disable notifications If you want to stop notifications from being sent to your clients, there are three methods you can use: ### For a specific client 1. Go to **Clients > Client Profile > Settings > Profile**. 2. Toggle **Disable Email Notifications**. Disable email notifications ### Per action 1. **Go to Settings > Actions**. 2. Choose an action and toggle **Enabled** to OFF. Disable action ### All notifications (Custom SMTP) You can set up fake credentials in [**Custom SMTP**](/setup-and-configuration/email-configuring-and-sending/how-does-email-work-in-upmind) to disable notifications. # How to Get Email Notification When a Client Opens a Support Ticket Source: https://docs.upmind.com/setup-and-configuration/notifications/how-to-get-email-notification-when-a-client-open-support Set up client ticket email alerts. Upmind offers extensive customisation through dozens of triggers for various products. **Example**: To get notified when a client opens a support ticket, follow these steps: 1. Go to **Settings** > **Triggers** under **Automation**. Settings > Automation > Triggers 2. Click **Add Action**. Add action 3. Enter a **trigger name** (e.g., Open Support Ticket) and select the **notification channel** (e.g., Email). 4. Choose `Ticket` as the **Category**. Enter name, choose notification channel, and category 5. Choose `Support` as the **Topic**. 6. Select `New Ticket Opened by Client` as the **Event**. 7. Under **Who do you want to notify**, pick `Staff`. Choose topic, select trigger, and choose who to notify 8. Customise Email Headers and Layout (optional). 9. Add a **subject** and **body** using Twig syntax for personalisation, which is customisable. 10. Click **Save**. Add a subject, body, and click save **Avoiding Array Data Issues** When Twig renders as "Array," it means data is incomplete—add the specific object. For example, use `{{ ticket.client.full_name }}` instead of `{{ ticket.client }}`. # How to Integrate with Slack Source: https://docs.upmind.com/setup-and-configuration/notifications/how-to-integrate-with-slack Integrate Slack with Upmind. Connect your Upmind e-commerce store to Slack and stay in constant contact with staff and clients. Integrating Slack with your store is a two-step process. ## Create a Webhook 1. Visit the [Slack help center.](https://slack.com/help/articles/115005265063-Incoming-webhooks-for-Slack) 2. Create a new Slack app by clicking **Sign Up** and following the instructions. Slack help center 3. In your Slack workspace, click the three dots icon and select **Tools**. Tools 4. Go to `Apps`, search for **Incoming Webhooks**, click **Install**. Install Incoming Webhooks 5. Click **Add to Slack**. Add to Slack 6. Choose the `channel` under Post to Channel (e.g., "ticket-notification"). Post to channel 7. Click **Add Incoming Webhooks Integration**. Add incoming Webhooks integration 8. Copy the generated **Webhook URL**. Copy Webhook URL ## Insert the Webhook in Upmind 1. Log in to your Upmind dashboard. 2. Navigate to **Settings** > **Notification channels** under **Automation**. Settings > Automation > Notification Channels 3. Go to the `Slack Channel` and toggle the switch to **ON**. Paste the webhook URL into the field and click **Save**. Toggle switch and paste Webhook URL # How to Send a Test Notification Source: https://docs.upmind.com/setup-and-configuration/notifications/how-to-send-a-test-notification Preview results while creating a message. Upmind's notification page includes a time-saving test feature. Building on our previous [guide](/setup-and-configuration/notifications/how-to-create-and-disable-notifications) on creating automated notifications with triggers, this guide will show you how to send test messages for new or existing setups. The **Send test** option works for many triggers, but not all. The feature is a work in progress and will be expanded soon. ## Test an existing automation 1. Go to **Settings** > **Actions** under **Automation**. Settings > Automation > Actions 2. Find your action, click the three dots icon, and select **View**. Select view 3. Scroll to `Template` in the side panel and click **Send test email** (if available). Send test email 4. Select a **recipient** and choose the **category** (client or staff), confirm, and send. Select recipient Choose who to notify 5. Check the test email inbox for results. ## Test a new automation 1. Create a draft notification and toggle **Enable** to `OFF`. Disable the action 2. Click **Save**, then go back to the previous page. 3. Find the draft, click the gear icon, and select **View**. View 4. Follow the **Send test email** steps above. 5. Once satisfied, return, toggle **Enable** to `ON`, and **save**. # How to Send Admin Emails for New Orders Source: https://docs.upmind.com/setup-and-configuration/notifications/how-to-send-admin-emails-for-new-orders Configure new order staff email trigger. This guide shows how to create a trigger for the **Order Created** event hook. It automatically sends an email notification to staff whenever a new order is placed. 1. Navigate to **Settings > Actions** under **Automation**. Settings > Automation > Actions 2. You can either apply a filter to quickly find the **New Order Staff Email** section or simply scroll through until you see the template. Apply filter Scroll and search 3. Add a trigger for the **Order Created** event and click **Save**. Add Order Created trigger 4. To review sent emails, click **Sent Email History**. Review sent email history Emails may take up to five minutes to appear. **Example**: What the invoice looks like. Example invoice # Notifications Overview Source: https://docs.upmind.com/setup-and-configuration/notifications/notifications-overview Send messages based on Upmind events. Notifications let you send messages to clients and staff triggered by specific events in Upmind. **Examples**: * Emailing a customer when a new invoice is generated. * Alerting staff to a new response on a support ticket. * Sending a message to a Slack channel when an order is placed. * Notifying about a specific product order or cancellation. Hundreds of events can trigger emails, Slack messages, or WebSocket notifications, with fully configurable content. You can also insert variables specific to an event, such as product name, client name, or invoice amount. ## **Hooks** Notifications trigger through hooks, which "hook" into specific events in Upmind. Hundreds of hooks are available in Upmind. **Example**: A hook fires when a client creates, updates, removes, or verifies an email address. You can view all hooks in the admin area under **Settings** > **Actions** under **Automation**. Then select **Triggers**. Settings > Automation > Actions Triggers Hooks are categorised by subject, which determines the data available for notifications. **Example**: ClientEmail hook provides access only to the client's profile information, while a ClientInvoice hook includes details about the invoice and related payments. The most common hooks involve invoices, orders, payments, and customer support. [Sensible defaults](/setup-and-configuration/notifications/about-default-notification-templates) come pre-configured and enabled on new accounts. You can edit or disable them as needed. ## **Sending notifications** Notifications can be sent in three ways: * [Email messages](/setup-and-configuration/email-configuring-and-sending/email-messages-vs-notifications) to client or staff email addresses. * [Slack notifications](/setup-and-configuration/notifications/how-to-integrate-with-slack) to your organisation's channel. * **WebSocket** popups within the Upmind app for staff or clients. You can configure unlimited notifications per hook. Email, Slack, and WebSocket ## **Templating** Notifications use configurable templates with variables depending on the hook category. For an **Invoice paid** hook, you might include client details, invoice info, and payment data by enclosing variables in parentheses. **Example**: ```text theme={null} We successfully received payment of {currency}{amount} from your {payment source} for invoice {invoice_number} on {payment_date} ``` **Displays as**: ```text theme={null} We successfully received payment of $50.00 from your card ending 7777 for invoice #3191 on August 21 2019. ``` ## **Multi-Language support** If you have added multiple languages during your Upmind setup, then each template can be configured in those languages. If a language is not configured, the notification will fall back to your default brand language. # FraudMind™ Fraud Prevention and Security Source: https://docs.upmind.com/setup-and-configuration/orders-services/fraudmindtm-fraud-prevention-and-security Customise settings to protect your e-commerce business. If needed, you can block access to the e-commerce store. Upmind includes a thorough fraud scanning system, FraudMind™. In this guide, we explain how FraudMind™ works and how you can configure it for your needs. As an online business, you need to protect yourself against fraudulent orders. You do not want malicious users using your products and services, and you do not want to allow payment from a stolen card or payment source that may later be charged back. The events can result in administrative hassles and fines from your payment processors. In addition, there may be certain clients you wish to block from placing new orders because of past history. ## How FraudMind™ works FraudMind™ scores every order placed by a client out of 100. The higher the score, the more likely the order is fraudulent. To build a score, we look at a number of data points, including: * Client location * Distance between the profile address and the IP address * IP owner (for instance, are they using a proxy service) * Order history * Login history Based on the FraudMind™ score, you can choose to block the order or allow it but flag the order for your attention (we call this latter option a 'review'). Thresholds for each option are configurable in the Settings area. ## Blocks and reviews Blocks and reviews have separate functions. * Blocking an order stops the client from completing payment and prevents order activation. The order must be approved by a staff member (see below) before the client can make payment. * Flagging an order for review allows the client to complete payment and order activation. However, Upmind flags the order in your staff dashboard. You can also configure a support ticket to be raised should an order be flagged or blocked. In future developments, we imagine that the 'review' status will include further automatic client verification and KYC processes such as ID uploading. ## Keywords fraud rules Keyword fraud rules let you automatically take action on orders that contain high-risk terms in product identifiers (such as domain names). You can define specific keywords or regex patterns and choose whether to allow, review, or block any matching orders. ### How to set up: 1. Go to **Settings > Fraud Prevention.** Settings > Fraud Prevention 2. Under Keyword fraud rules, click **Add keyword rule.** Add keyword rule 3. Select an action: * Allow – Let the order go through without checks. * Review – Hold the order for manual review before activation. * Block – Stop the order and require manual approval. 4. Enter a keyword or PCRE2-compatible regex (e.g. `paypal`, `testdomain`, `\bexample.com\b`). 5. (Optional) Add a comment for internal reference. 6. If you have multiple brands, you can tick “Apply for all brands” to apply the rule across your entire account. 7. Click **Add** to save the rule. Keywords fraud rules ## Setting fraud thresholds Configure your own FraudMind thresholds in the **Fraud Detection** section. Use the sliding scale to set the threshold for what constitutes a possible fraud. * The lower the score, the more fraud warnings you receive. There are threshold sliders to flag orders as **needs manual review** and **fraud.** When FraudMind detects a fraud order, the order is blocked, and your store cannot process the payment. Check a circle to set the reaction when FraudMind detects fraud. * Check the first circle to open a ticket. * Check the second circle to ignore fraud detections. Set reaction when fraud detected ## Changing a client's fraud status Each client has a fraud status: * Approved * Review * Blocked The status is automatically set by FraudMind when an order is placed. If you approve a blocked order, the client can continue and make a payment. You can change the fraud status of a client. 1. Go to the Client overview page. 2. Click the fraud status. Change fraud status 3. In the new window, click a tile to change the fraud status. 4. To add more conditions, click the field and select an option from the drop-down menu. Click the tile to change the fraud status ## High-level blocks In addition to automated fraud scanning, you can configure manual country and IP blocks. On the Fraud settings page, in addition to the threshold scores, you can set: * Country rules * IP rules * Fraud detection These may not necessarily be blocks you put in place because of *fraudulent* orders, but you may want to block specific clients or locations from placing an order. These blocks prevent an order from being placed. ### Creating country fraud rules You may be forbidden from doing business with specific countries. In these cases, you might want to block any client in those countries from placing an order with you. When adding the country, choose to **blacklist** the country. The **grey list** rule allows orders subject to manual review. Block specific countries ### Creating IP fraud rules Create rules to whitelist, grey list, or black list based on an IP. 1. Click the **Add IP** rule button. 2. Select a rule (white, grey, or black list). 3. Enter the IP. 4. Click **Add**. Block location based on IP ### Fraud Detection Tailor your fraud detection system with customisable thresholds for flagging suspicious or fraudulent orders. Watch the YouTube tutorial about Fraud Detection [here](https://www.youtube.com/watch?v=wBPdtkax_W0). * Adjust review scores and fraud score thresholds. Adjust threshold score * Set how many hours a client is considered “new” (set to 0 to disable), and adjust review/fraud scores for them. Adjust fraud threshold for new clients * Set an order to go into review or fraud if the total value exceeds a certain amount. Put order in review if total value is exceeded * Set orders to go into review or fraud if they include more than a certain number of products. Put order in review if it contains more than certain number of products * Set the order into **review** if it exceeds the total orders in the timeframe, and set the time in minutes if it exceeds the max orders in the timeframe. Put order in review if total value is exceeded in a certain timeframe * Set order into **fraud** if it exceeds the total orders in the timeframe, and set time in minutes if it exceeds the max orders in the timeframe. Put order in fraud if total value is exceeded in a certain timeframe * Set order in review/fraud if there are more than X failed payments. Put orders in review/fraud for failed payments * Define actions based on review status, including preselected ticket departments for further investigation. Choose the action upon invoice review status and department * Set the duration for auto-closing orders in a fraudulent status. Set duration to autclose orders # How to Enable Guest Checkout Source: https://docs.upmind.com/setup-and-configuration/orders-services/how-to-enable-guest-checkout Know more about guest checkout, to require an account login before completing a purchase. Store Admins can control customer access to the checkout area. If you enable **Guest checkout**, any website visitor can make a one-time purchase without creating an account or logging in. Guest checkout is not available for subscriptions. ## Managing guest checkout 1. Log in to the Admin dashboard. 2. Go to **Settings** > **Order Options**. Settings > Order options 3. Scroll down to the **Guest Checkout** heading. 4. Click the toggle to the **ON** position to enable this feature. When enabled, a customer can complete a transaction without registering or logging in. When disabled, a customer must log in or create a new account to complete a purchase. Guest checkout toggle ## Guest checkout flow 1. The client selects the product they want to purchase and proceeds to the checkout page. 2. Depending on the type of product being purchased, there are two different flows: * One-time Products: Guests can proceed to checkout without creating an account. They’ll see the option "In a hurry? Checkout as a guest" on the checkout page. If the product is a one-time purchase * Subscription Products: Clients need to either log in or create an account to proceed with checkout due to the recurring nature of the payments. If the product is a subscription product # How to Manage the Basket Source: https://docs.upmind.com/setup-and-configuration/orders-services/how-to-manage-the-basket Customise the online store, choose the home currency, contact details, and more. This guide shows you how to manage the basket by customising discounts for options and defining an abandoned basket. Other settings require advanced tweaks, which we discuss in other articles. These include: * [Set home currency](/setup-and-configuration/branding/how-to-configure-business-settings) * [Manage promotion codes](/using-upmind/marketing-tools/how-to-create-a-basic-promotion-code) * [Customise product billing](/using-upmind/product-management/how-to-add-product-billing) * [Customise invoice settings](/using-upmind/invoicing-and-taxes/how-to-configure-invoice-settings) ## Enabling option discounts This global toggle enables or disables the discounts on [product options](/using-upmind/product-management/how-to-add-product-options). 1. Go to the Upmind dashboard. 2. Go to **Settings** > **Order Options**. Settings > Order Options 3. Scroll down to the **Discount for options** heading. 4. Click the toggle to the **ON** position to enable this control. When enabled, product discounts extend to their options. When disabled, a product discount does not apply to the product option. Discount for product options ## Defining an abandoned basket Set the number of hours of inactivity before Upmind automatically abandons the customer’s basket. 1. Go to the Basket heading. 2. Enter the number of hours of inactivity in the field. 3. Check the box to change basket prices to the customer account’s preferred currency when possible. Set time to abandon basket ## Setting miscellaneous terms The **Misc** section lets you define specific invoice and checkout display settings. #### Invoice notes Check the box to automatically generate a ticket when the customer enters text into the Notes field in the basket. Invoice notes create support tickets A note generates a ticket #### Invoice terms * Check the box to automatically open a support ticket when a client adds a note to a purchase. * Set the number of days to cancel an unpaid initial invoice. * Set the number of days to cancel an unpaid pro-rata invoice. Cancel invoices #### Checkout items * Check the box to enable the **Pay Later** option in the checkout. * Set the basket display price. Choose the highest or lowest figure price based on average monthly rates. * Check the box to display promo prices. Enable Pay Later * Check the box to show promos on the catalogue. * Use the drop-down menu to select the promo display type. * Click the drop-down menu to select a default payment period. Promo and label ## View baskets You can view your baskets from Order > Baskets. Order > Baskets Here, you can edit your customers' baskets or delete them if needed. Delete basket # How to Review Orders Source: https://docs.upmind.com/setup-and-configuration/orders-services/how-to-review-orders Review orders and quickly survey e-commerce transaction activity. Check unpaid invoices, review open baskets, and more. Quickly survey business performance by reviewing three sets of metrics. Upmind breaks down orders by: * Category type (e.g., Cancelled and Unpaid). * Number of open baskets. * Fraud totals. ## Opening the Orders page 1. Go to the Upmind dashboard. 2. Click Orders on the left menu. Upmind displays an overview of order activity over the past 30 days. Dashboard > Orders ## Viewing orders by category Sort orders with a filter. 1. Click the Orders list menu tab. 2. Scroll down the list. 3. Click a **Quick Filters** subheading. Choose a filter ## Adding segments Create a rule to sort and display data based on one or more variables. 1. Scroll down to the Order segments heading. 2. Click the **Add** button. Click add 3. In the new window, add a filter title. 4. Select a segment on the drop-down menu. 5. Click **Save**. Custom fields you create for the [create account page](/using-upmind/client-management/how-to-add-client-custom-fields) or [basket](https://docs.upmind.com/setup-and-configuration/orders-services/how-to-manage-the-basket) appear on this drop-down menu. Segments on the drop-down menu ## Reviewing open baskets Click the **Baskets** link on the left menu. Upmind displays all the open baskets. Displays all the open baskets You can configure settings to decide when Upmind [abandons a basket](/setup-and-configuration/orders-services/how-to-manage-the-basket). ## Reviewing fraud orders 1. Click the FraudMind link on the left menu. Upmind displays all flagged orders, clients, and invoices by FraudMind. 2. Click an order to review the information and take action, if required (e.g., change the fraud status). Icons highlight suspicious orders You can adjust [FraudMind thresholds](/setup-and-configuration/orders-services/fraudmindtm-fraud-prevention-and-security). # Order Options Overview Source: https://docs.upmind.com/setup-and-configuration/orders-services/order-options-overview You can customise invoices and the client view as you like. With Upmind, the options are limitless. The Order Options page lets you customise the appearance of invoices, enable guest checkout, configure basket settings, and more. ## Opening the Order Options page To open the Order Options page: 1. Log in to your Upmind account. 2. Go to **Settings** > **Order options** under **Ecommerce Settings**. Settings > Order Options ### Invoice settings At the top of the Order Options page, you can [configure invoice settings](/using-upmind/invoicing-and-taxes/how-to-configure-invoice-settings): * invoice numbering * due dates for recurring and non-recurring invoices * when invoices are generated relative to the renewal date ### Guest checkout Enable or disable [guest checkout](/setup-and-configuration/orders-services/how-to-enable-guest-checkout). Use this feature to control customer access to the checkout area. Guest checkout ### Discount for options When enabled, this feature automatically applies a [product discount](/setup-and-configuration/orders-services/how-to-manage-the-basket) to related product options in the basket. Discount for options #### Abandoned basket Customise this setting to define an [abandoned basket](/setup-and-configuration/orders-services/how-to-manage-the-basket). ### Misc Customise information in the [basket](/setup-and-configuration/orders-services/how-to-manage-the-basket) and related notifications, including: * Pay Later option * Promo prices * Generate a ticket when a customer adds a note to the basket ### Pro Forma Invoices If you have services that require a pro forma invoice to ensure all parties agree to the transaction details before finalising the sale, Upmind provides this functionality for you. * Choose which types of invoices you want to mark as pro forma * Enable/Disable to exclude pro forma invoices from reports. ### Consolidation If you want to consolidate your invoice, we provide you with several options, such as: * Enable or disable invoice consolidation support. * Give access to staff. * Set rules and specify the date of the month for consolidation, along with intervals for recurring consolidation. # How to Create Terms and Conditions Source: https://docs.upmind.com/setup-and-configuration/other-setup-items/how-to-create-terms-and-conditions Create the terms and conditions page for your Upmind e-commerce. It should describe the terms and conditions to help buyers and protect sellers. If your online business processes payments, we encourage you to create a document that outlines your company’s terms and conditions (T\&C). By agreeing to your T\&C, customers enter into a contractual agreement before browsing your site or making a purchase. This contract helps both buyers and sellers. Buyers know the terms before transacting a purchase. Sellers create a layer of legal protection that can help avoid disputes and prevent misuse of the website and its content. Another benefit is the potential to build trust with potential customers, especially in matters like data privacy. Most of us understand that few people take the time to read the nitty-gritty details in a T\&C document. That understanding, however, is not a good reason to avoid creating this important document. ## Document categories If you are new to e-commerce, there are a number of websites that can generate generic text for your T\&C document. Be sure to read the text carefully and make changes that apply to your business. Generally, a T\&C document should include categories of information like these: * Privacy policy * Terms of sale * Terms of use * Pricing and payment terms * Shipping and delivery * Intellectual property * Disclaimer of liability * Third-party links * Refunds and returns process * Limitation of liability * Information accuracy * Dispute resolution * Intellectual property/trademarks ## Publishing a T\&C document There are two ways to publish a T\&C document for your site: * Create a document on your Upmind site with Markdown. * Add a link to an online document hosted on a different site. ### Creating a T\&C document This step shows you how to create and update a T\&C document hosted on your Upmind site. 1. Open the Upmind Admin dashboard. 2. Go to **Settings** > **Terms & Conditions** under **Branding and Customisation**. Settings > Terms & Conditions ### Using markdown 1. Enter the markdown text into the field. Enter markdown text 2. Check the document text and layout in the Preview panel. 3. Click **Save**. Preview panel If you are unsure what Markdown is, click the link to find more information and examples. Click markdown link ## Viewing history You can read previous versions of the T\&C document. 1. Click **Version History**. Version history 2. You can check the complete list of versions, including the latest one. All T&C versions 3. Click the **Sort** button to change the display order based on the date created. (optional). You can also refresh the list and read the previous versions by clicking on them. Sort, refresh or view 4. Read the text in the side panel. ## Reverting to a previous version To replace the current T\&C document with a previous version: 1. Open an older version. 2. Click **Revert** to this version. Revert to previous version ## Updating sections To update a passage in the current document without replacing all the text: 1. Copy a section from a previous version. 2. Paste it into the current document. 3. Click **Save**. ## Linking to a published document Instead of creating a T\&C document in Markdown, you can link to a published online document on a different site. 1. Select **Link to an external site or resource**. 2. Enter the URL for the published document. Link to an external site or resource 3. Click Save. ## Customer view Upmind automatically places a link to your T\&C document at the bottom of the Create account page. Depending on your T\&C document choice, the link opens the Upmind document or your published page on a different site. Link to your T&C document # How to Set Up Parent Client Branding Source: https://docs.upmind.com/setup-and-configuration/other-setup-items/parent-and-child-accounts-in-upmind/how-to-set-up-parent-client-branding Customise the branding of Child Accounts. If you have a parent client, they can now apply their branding depending on the interface settings you've enabled. If they want to add their logo, they'll need to reach out to you, as it must be uploaded manually through the admin area. [Check out our full guide here about Parent & Child Accounts in Upmind.](https://docs.upmind.com/setup-and-configuration/other-setup-items/parent-and-child-accounts-in-upmind/what-are-parent-and-child-accounts-and-how-do-they) ## Enable Parent Client branding settings As an admin or staff member, you can enable these settings. Here’s how to do it: 1. Go to **Settings** > **User Interface**. Settings > User Interface 2. Under the **Client Area** section, you'll find two options. Settings > User Interface * **Allow Branding for Parent Clients:** Enable this to let parent clients brand themselves by adding their own logo and custom appearance, including brand name, logos, colour, and font. * **Whitelabel Login:** Enable this to remove all branding from the login and password reset page. ## Managing Parent Client’s brand appearance In this section, only you (as an admin) or your staff can manage the brand appearance for a parent client. Here’s how to do it: 1. Go to the Client section and find the parent client account. 2. Click on **Accounts**, then select **Child Accounts**. 3. Under **Child Accounts**, you’ll see a **Brand Appearance** settings section where you can: * Add a brand name. * Select the primary colour and brand font. * Upload brand assets: logo, logomark, favicon, and email logo. Parent Client Brand Appearance Settings in Admin Area 4. Click **Save** to apply the appearance settings. Here’s how it will look in the Child Account client area. Child Account Client Area # What are Parent & Child Accounts and how do they work in Upmind Source: https://docs.upmind.com/setup-and-configuration/other-setup-items/parent-and-child-accounts-in-upmind/what-are-parent-and-child-accounts-and-how-do-they In Upmind, you can now set up parent and child accounts. This system is particularly useful for businesses, especially if you need to control and manage multiple accounts under a single umbrella. ## **Introduction to Parent and Child Account** **Parent accounts** have administrative privileges and can manage multiple child accounts. They can manage settings and permissions, such as impersonation or inheriting payment details. **Child accounts** are essentially sub-accounts of a parent profile. When one client is designated as a child of another, it gains certain functionalities and permissions under the supervision of the parent account. One notable feature is the option for child accounts to inherit and utilise the parent's saved payment details. Parents can impersonate their children, but this can be disabled by the child. **Only staff can establish parent-child relations.** ## **Managing Parent & Child Accounts in Upmind** ### **Adding a Child Account** As a parent, you have the authority to oversee and manage multiple child accounts. Follow these steps to add and manage your child's accounts effectively: #### **Access and choosing the Child Account** 1. Go to a Client’s profile. 2. Click on the three-dot menu. 3. Select **Attach Child Account** from the options. Attach Child Account 4. Select the specific account you want to designate as a child account. #### **Managing the Relationship** 1. Decide on the relationship settings: * Allow Impersonation: Grant the parent account the ability to impersonate the child's account. * Inherit Payment Details: Enable the child's account to use payment methods saved by the parent, with restrictions on modification (they can't modify or delete). 2. Click **Save** to confirm your settings. Manage Child Account relationship #### **Viewing Your Child Accounts** Check all linked child accounts by navigating to your profile from **Accounts** > **Child Accounts**. View Child Accounts #### **Removing a Child Account** To detach a child account, locate it under your profile's **Child Accounts** section and click on **Detach**. Detach Child Account ### **Linking to a Parent Account** **If you want a child account to link to a parent account,** follow a process similar to adding a child account: 1. Access the three-dot menu next to the account you wish to link, then select **Link to a Parent**. Choose the parent account from the options provided. Link to a Parent 2. Manage the relationship settings and save your changes. Manage Parent Account relationship ## **Client panel on Parent & Child Accounts in Upmind** This section explains how parent and child accounts appear and function from the client's perspective. As a parent account in the client panel, you can: * Manage Relationships * Log in as a Child Account * Detach Child Accounts Parent Account in Client Panel For child accounts, the client panel experience remains similar to a standard Upmind account. # What is the Best Image Size for My Pictures? Source: https://docs.upmind.com/setup-and-configuration/other-setup-items/what-is-the-best-image-size-for-my-pictures Find out all about images and visuals for your business site with Upmind. Images are a big part of your e-commerce store. They showcase products and services and also help customers make purchase decisions. That’s why you should upload the best quality images possible. Here are some suggestions for image size. ## Suggested image specs Images of products (and your avatar) with a 1:1 aspect ratio (i.e., square pictures) work best. Other shapes, such as rectangles, may not display well. For avatars, the smallest suggested image size is 128 x 128 pixels. For images of products or services, images between 680 x 680 and 2020 x 2080 are recommended. Smaller image sizes, such as 128 x 128, are not recommended. They may appear grainy. The maximum file size is 1 MB. # How to Create Staff Users Source: https://docs.upmind.com/setup-and-configuration/staff-users/how-to-create-staff-users Add team members to your organisation and manage what they can do. You can also impersonate them when needed. You can add a limited number of staff users to your organisation. You can see more details in the pricing plan [here](https://upmind.com/pricing). Each staff user has their own login, and all activity is logged forever in Upmind. Assign different permissions and access rights to each staff user if you like. For example, you can have specific accounts, staff, support staff, or product managers. You can also give full access or limit their access (for example, by IP address). Only admins can manage staff permissions and impersonate another staff member. Any staff member can be made an administrator by another Admin. ## Review current users To see a list of current users: 1. Go to the **Admin** dashboard. 2. Click **Settings** > **Staff users** under **Users and Permissions**. Settings > Users and Permissions > Staff users Upmind displays a list of names on the Staff users page. Staff Users page ## Creating staff users 1. Click the **Add user** button on the **Staff users** page. Click Add user 2. Fill in the fields. 3. Click **Save**. Add Staff Details and Restrict Access by IP ## Managing a user After you create a user, Upmind displays the Staff Overview page. Here you can manage user information and set brand access. * You can also click a name on the Staff users page to open the Staff overview page. ### Account password Click this account button to force the user to change their password. Upmind sends the user an email with a link to change their password. Reset account password ### User permissions 1. Click a toggle switch to enable or disable user access to a brand. By default, the toggle is in the `OFF` position. Set user permissions Upmind displays a separate toggle switch for [each brand](/setup-and-configuration/branding/how-to-add-brands) if the organisation has multiple brands. * If you created one or more [user groups](/setup-and-configuration/staff-users/how-to-create-user-groups), use the checkboxes to control access at a granular level. 2. Click the **Administrator** toggle switch to the `Yes` (blue) position and assign admin permissions. That means full access to all brands. By default, the toggle is in the `No` position. Add Admin user 3. Click **Save**. ## User gear icon options 1. Open the **Staff users** page. 2. Click the **three dots icon**. 3. When you click the gear icon next to a staff user, you’ll see these options: * **Manage User:** Edit the user’s permissions and access. * **Impersonate User:** Log in as this staff member (Admins only). * **Delete:** Remove the staff user from the organisation. User Gear Icon 4. When you impersonate a staff member, you’ll see the system from their point of view, based on the permissions you've given them. To stop impersonating, just click **End Impersonation** at the top of the screen. Impersonate a Staff Member ## Managing staff user details Admins and users can manage additional details from the **Manage User** panel. To access it, go to **Settings** > **Staff Users**, click the **three dots** next to the staff member, and select **Manage User**. ### Notification preferences Admins and users can configure which notifications they receive. Inside the **Manage User** panel, navigate to the **Notifications** tab to view and update their notification preferences. Notifications ### Tickets The **Tickets** tab displays all tickets associated with the staff member, organised into the following views: Tickets * **Assigned** — Tickets currently assigned to this staff member. * **Watched** — Tickets the staff member is watching or following. * **Closed** — Tickets that have been resolved and closed. ### Logs The **Logs** tab provides a full record of the staff member's activity and login history within Upmind, including login attempt logs for security review, as well as email history logs, which include sent, bounced, and failed emails. Activity log Login attempts log Email history log # How to Create User Groups Source: https://docs.upmind.com/setup-and-configuration/staff-users/how-to-create-user-groups Control what happens on an e-commerce store by setting user permissions. Create a user group with specific permissions and assign a user to the group. Upmind lets you manage staff permissions through **Staff Groups**. We’ve provided a set of predefined groups to make setup easier. These include default permissions for general roles: * **Finance** * **Fraud** * **Marketing** * **Product** * **Support** You can assign staff to any of these predefined groups directly or customise them as needed. Predefined staff user groups You can also create your own staff user groups with access to specific functions. Upmind does not assign permissions directly to staff users. Instead, users inherit the permissions of the group they’re assigned to. To change the level of access that a user has, simply reassign that person to a different **User Group**. You can assign a staff user to more than one User Group. **Example**: Joe Bloggs could be Account Staff on Brand A, and Support Staff on Brand B. ## Creating a user group 1. On the Upmind dashboard, go to **Settings** > **Staff Groups** under **Users and Permissions**. Settings > Users and Permissions > Staff Groups 2. Click the **Create user group** button. Create user group button 3. Enter a group name. User group name 4. Scroll through the **Functionalities** page and check the relevant boxes to assign group permissions. 5. Click the **Select all** button to check all boxes in a subcategory. (optional) 6. Click **Save**. User group subcategories ## Assigning staff users to a user group The next step is to assign staff users to one or more User Groups. 1. Go to the **Admin** dashboard. 2. Click **Settings** > **Staff users** under **Users and Permissions**. Settings > Users and Permissions > Staff users 3. Locate a staff user, click the gear icon, and select **Manage user**. Manage user 4. Scroll down the **Staff** overview page and set **User Group** permissions. If you have [multiple brands](/setup-and-configuration/branding/how-to-add-brands), grant access to each brand separately. Set user permissions 5. Select Administrator to grant the staff user full access to all User Groups and all brands. * We suggest granting Admin permissions to a maximum of two staff users. Assign Admin permissions # How to Restrict Staff Access to Client Profiles Source: https://docs.upmind.com/setup-and-configuration/staff-users/how-to-restrict-staff-access-to-client-profiles Protect sensitive client information. It helps to protect sensitive client information by only allowing staff access if they have a valid support PIN or are assigned to a ticket. Here’s how to enable it: 1. Go to the **Admin** dashboard. 2. Click **Settings** > **Staff users** under **Users and Permissions**. Settings > Users and Permissions > Staff users 3. Scroll down to **General Security Settings**. 4. Enable the option to **restrict staff access to client profiles without a support PIN or assigned ticket**. 5. Set the time (in hours) for how long access should remain valid after a support PIN is entered or a ticket is assigned. Settings → Security If staff try to access a client profile without the required PIN or ticket, they’ll see a message **Unable to access Client or Client resource, due to lack of access granted!** Client section in the admin area # Staff Login & Account Access Source: https://docs.upmind.com/setup-and-configuration/staff-users/staff-login-and-account-access People can access according to their user permissions and work on the same dashboard. When you add **Staff Users** to Upmind, they can log in to the admin area and access features based on the [user permissions](/setup-and-configuration/staff-users/how-to-create-staff-users) assigned to them during setup. ## Logging into Upmind as a staff user 1. Go to your Upmind admin area (e.g., `my.domainname.com/admin`). 2. Enter your email address and password. 3. Click **Login**. Example of the login page in the admin area Example of the login page in the admin area ## Resetting your password If you forgot your password, you can ask your [account administrator to send a password reset link](/setup-and-configuration/staff-users/how-to-create-staff-users) to your email or follow these steps: 1. Go to your Upmind admin area (e.g., `my.domainname.com/admin`). 2. Click **Forgotten your password?** on the login page. 3. Enter your registered email address. 4. Check your email for a password reset link and follow the instructions. Forgotten your password Forgotten your password Password reset Password reset ## IP lockouts If multiple failed login attempts are made from the same IP address, your account may be temporarily locked to prevent unauthorised access. If you experience an IP lockout, please wait a few minutes before trying again or contact your account administrator to check the lockout minutes settings under **Settings** > **Security** under **Branding and Customisation**. Settings > Branding and Customisation > Security Settings > Branding and Customisation > Security Settings → Security (For Account administrator to check) Settings → Security (For Account administrator to check) ## Troubleshooting login issues 1. Ensure you’re using the correct email address and password. 2. Check if 2FA (two-factor authentication) is enabled and enter the correct code from your authentication app. 3. If locked out, contact an account administrator to reset your access. Staff Users have access based on the permissions set by the account administrator. If you’re unable to access certain features, please contact your account administrator for assistance. # How to Filter Products & Services by Manual Status Source: https://docs.upmind.com/untitled-page Quickly identify and review products by manual status across your entire inventory. You can filter products and services by status, making it easy to find and manage specific groups of products without searching manually. This is especially useful for handling large product inventories where efficiency and accuracy matter. ## Filtering products by status 1. Go to **Products & Services**. 2. Select the product type you want to view: * **Subscriptions** * **One-Time Purchases** * **All** Products & Services 3. Click **Sort by Status**. 4. Select **Product/Service Manual Status.** Sort status and choose manual status filter 5. Choose the relevant filter condition. Choose filter conditions 6. Your results will update to show only the products with a manual status. The manual status can be configured by the following statuses. | **Status** | **Description** | | ------------- | --------------------------------------------- | | **Active** | Products currently active and in service. | | **Cancelled** | Products that have been cancelled. | | **Lapsed** | Products that have lapsed due to non-renewal. | | **Suspended** | Products that have been suspended. | Available manual statuses ## Filter conditions The **Product/Service Status** filter can be configured using the following conditions: | **Condition** | **Description** | | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Is – Set** | Returns products whose status exactly matches the selected value. Use this to find all products currently assigned a specific status, such as all Active or all Cancelled products. | | **Is – Not Set** | Returns products that do not have a status assigned. Use this to identify products where no status has been configured. | | **Is Not – Set** | Returns products whose status does not match the selected value. Use this to exclude a specific status from your results, such as showing everything except Suspended products. | | **Is Not – Not Set** | Returns products that have any status assigned, effectively excluding products with no status set. Use this to ensure your results only include products with a configured status. | | **After Relative Date – Set** | Returns products whose status was set after a specified period relative to today, such as products that became Cancelled within the last 7 days. Useful for identifying recent status changes. | | **After Relative Date – Not Set** | Returns products where no status change has been recorded after the specified relative date, meaning the status has not been updated within that period. | | **Before Relative Date – Set** | Returns products whose status was set before a specified period relative to today, such as products that have been Lapsed for more than 30 days. Useful for identifying older or long-standing status changes. | | **Before Relative Date – Not Set** | Returns products where no status change has been recorded before the specified relative date, meaning the status has not been set prior to that period. | # Building a Custom Checkout with Headless Setup Source: https://docs.upmind.com/using-cart-20/choosing-a-quick-start-path/building-a-custom-checkout-with-headless-setup A technical guide to integrating Upmind's commerce logic into your own frontend using the headless setup. * **Time** — 45 minutes * **Difficulty** — Advanced **What You'll Build:** A fully custom checkout experience where your team owns the entire UI and user flow, powered by Upmind's headless composables, XState orchestration, and API layer, giving you complete control over layout, interaction, and sequencing without reimplementing pricing, billing, or payment logic. **Prerequisites:** * An active [Upmind account](https://upmind.com/start) with API access. * An existing frontend application or a defined plan for your UI shell. * Solid working knowledge of Vue 3 and the Composition API. * Familiarity with state management concepts (XState knowledge is helpful but not required). * A read-through of [Understanding the Cart Architecture](/using-cart-20/getting-started-with-cart-20/understanding-the-cart-architecture) to understand how the headless layer fits into the broader stack. * A read-through of [Using the Decision Guide](/using-cart-20/choosing-what-to-implement-for-your-business/using-the-decision-guide) to confirm that headless is the right approach for your team. * Access to [Upmind API Documentation](https://apidocs.upmind.com/) for reference during integration. * Sandbox credentials for testing payments and order flows. A headless checkout is the most flexible way to integrate Upmind’s commerce capabilities into your product. In this model, your team owns the entire user experience while Upmind handles the underlying commerce logic for pricing, subscriptions, promotions, taxes, and payment orchestration. This approach is powerful by design. It is best suited to teams that need control beyond visual styling or page layout, and who want to embed checkout as a first-class part of their product rather than a separate storefront. ## When to choose this approach You should consider a headless checkout when: * You already operate an established frontend or application UI that you want to extend, not replace. * Checkout needs to be deeply embedded into an existing product or onboarding flow. * Maintaining UX consistency across your app, marketing surfaces, and billing experience is critical. * Your purchase flow requires custom steps, branching logic, or non-standard sequencing. * You want to reuse the same commerce logic across web, mobile apps, or internal tools. Common use cases include SaaS onboarding flows, embedded checkout inside dashboards, enterprise customer portals, and mobile applications. If speed to launch with minimal engineering is the priority, the ready-made Cart is usually a better fit. Headless is for teams optimising long-term control, ownership, and extensibility. ## Architecture overview A headless checkout combines **Upmind’s logic layer** with **your own UI**, optionally supported by **Client Vue** as an application shell. This separation allows teams to iterate on experience without touching core commerce behaviour. At a high level: * **Your frontend** defines layout, styling, and user interaction. * **Headless Upmind composables** manage commerce state and business logic. * **XState** orchestrates complex flows in a deterministic way. * **Upmind APIs** persist products, pricing, baskets, payments, and orders. ### Simplified architecture diagram The key idea is simple but powerful: **The UI is replaceable, logic is shared, and orchestration is centralised.** This means teams can redesign, refactor, or even rebuild their frontend without re-implementing pricing rules, subscription logic, or payment sequencing. Commerce behaviour stays consistent across surfaces, while presentation remains fully flexible. ## How Headless, UI, and Client Vue relate These three layers are often confused, so it’s important to separate their roles clearly. These layers are often confused, but they serve very different purposes. Headless defines **what happens**, your UI defines **how it feels**, and Client Vue optionally provides **structure** to accelerate development. Separating these concerns keeps systems maintainable as complexity grows, especially when multiple teams or platforms are involved. ### Headless Upmind (Logic layer) Headless Upmind is a collection of **Vue 3 composables** that encapsulate commerce behaviour and state management. These composables act as the primary interface between your UI and the Upmind platform. It handles: * Basket lifecycle management. * Pricing and discount application. * Subscription rules and renewals. * Tax calculation. * Payment sequencing. * Error handling and retries. Your developers do not manually call raw APIs in sequence. Instead, they interact with composables that already understand the correct order of operations. `JavaScript` **Example**: A single user action may trigger multiple coordinated API calls behind the scenes, all executed safely and consistently. ```javascript JavaScript theme={null} const { basket, addItem, applyPromo, checkout } = useBasket() ``` ```text theme={null} Catalogue → Configure → Basket → Billing → Payment → Confirmation ``` ### XState (Orchestration engine) XState operates beneath the composables and enforces deterministic flow control. It ensures that checkout behaviour progresses through valid, predictable states. It manages transitions such as: * Empty > Configuring * Configuring > Validating * Validating > Processing Payment * Processing > Converting * Converting > Success or Error This guarantees that invalid actions cannot occur. For example, a payment submission cannot be triggered while configuration or validation is incomplete. By formalising flow rules, XState eliminates entire classes of edge cases that typically appear in custom checkout implementations. Developers benefit from: * Fewer edge-case bugs caused by race conditions or invalid state. * Predictable flow behaviour across environments. * Clear extension points for analytics, logging, or custom side effects. ### Client Vue (Application shell) Client Vue is a collection of complex, pre-built UI organisms and layout templates commonly required by cart and checkout experiences. It provides reusable structure and interaction patterns without enforcing pages, routing, or flows. Client Vue is optional, but especially valuable for teams building larger SPAs. It provides: * A clear separation where authentication, guards, and flow control are defined by headless flows and implemented in your app. * Shared layout structure, such as headers, footers, and persistent UI regions. * Dependency wiring that connects UI components cleanly to headless logic. Client Vue acts as a starter framework for UI scaffolding, allowing teams to focus on UX and feature development while retaining full ownership of pages, routes, and user flows. You can choose to: * Use Client Vue end-to-end as your application shell. * Adopt only selected organisms or layouts. * Ignore it entirely and bring your own custom shell. ### Upmind UI (Design system) Upmind UI is a lightweight design system composed of atomic and molecular components that form the foundation for more complex UI organisms. It is designed to balance consistency with flexibility. Upmind UI is the internal component library used by the Cart and Portal, and reflects established interaction patterns across the Upmind ecosystem. While not required for headless implementations, it can accelerate development and alignment. It provides: * Accessible, production-ready components. * Token-based theming for colours, spacing, and typography. * Consistent interaction patterns across commerce surfaces. Advanced teams may choose to adopt it for visual consistency with Upmind. Others may bring a proprietary design system. Both approaches are fully supported, as the headless layer does not depend on Upmind UI. ## High-level setup steps A typical headless implementation follows a clear, phased path that separates application structure, commerce logic, and user experience. This allows teams to move methodically from foundation to launch while keeping responsibilities cleanly divided: 1. **Decide your shell:** Start by choosing where and how the checkout UI will live. This decision defines how headless commerce integrates into your product. * If you already have an **existing frontend**, headless checkout is added directly into your current application, preserving established navigation, branding, and UX patterns. * If you use the **Client Vue starter**, you gain a pre-wired application shell with reusable layouts and organisms, accelerating development while still allowing full customisation. * For **mobile or embedded apps**, the headless layer integrates into native or hybrid environments, enabling shared commerce logic across platforms. This choice determines your UI ownership but does not affect commerce capabilities. 2. **Install Headless Upmind:** Once the shell is defined, install the headless logic layer that powers commerce behavior. * Add the **Headless Upmind composables package** to your project. * This Vue.js composables package encapsulates shared logic, state access, and API interactions, making it usable across Client Vue and fully custom components. * Configure API credentials, select the appropriate environment (sandbox or live), and verify connectivity to Upmind services. At this stage, no UI is required as the focus is on enabling commerce logic. 3. **Define your flow:** Next, model the buyer journey your checkout will follow. * Define how users discover and select products. * Specify any configuration steps required before purchase. * Design the basket review and validation experience. * Determine when and how payment is triggered. * Define confirmation, success, and error handling behaviour. These steps are mapped to deterministic state transitions rather than ad hoc UI logic. 4. **Bind UI to state:** With flows defined, connect your UI to headless state and actions. * Use composables to read data and trigger actions from the UI. * State transitions are handled internally through composables, abstracting XState machines so applications never interact with them directly. * Loading, error, and success states are handled in a standardised way, including surfacing API messages and informational notes consistently across the UI. This ensures predictable behaviour across all screens and interactions. 5. **Integrate payments:** Payments are integrated once the checkout flow is complete. * Rely on **Upmind-managed payment gateways** for orchestration, security, and compliance. * Implement redirects or embedded payment flows as required by your UX and provider configuration. Payment logic remains consistent regardless of UI implementation. 6. **Test edge cases:** Before launch, validate behavior beyond the happy path. * Test failed and interrupted payment scenarios. * Validate promotional rules and discount edge cases. * Confirm tax recalculations when regions or inputs change. * Ensure session recovery works correctly after refreshes or interruptions. This step is critical for production stability. 7. **Go live:** When ready, transition to production confidently. * Monitor state transitions and system events during live usage. * Track conversion events and key checkout metrics. * Iterate on UI, messaging, or layout without rewriting underlying logic. Because commerce logic is centralized and shared, teams can evolve UI and UX independently without reworking pricing, billing, subscriptions, or payment behavior. This separation dramatically reduces regression risk and long-term maintenance cost. ## Links to deeper documentation For teams building headless experiences, the following resources provide essential depth and reference material: * [**Upmind API Documentation**](https://apidocs.upmind.com/) Detailed API documentation covering products, pricing, subscriptions, billing, and order management for advanced or custom integrations. Parts of the Headless package are actively evolving. If you encounter any errors after completing the setup, reach out to our support team, and we'll be happy to review them further. # Launching with the Ready-made Cart Source: https://docs.upmind.com/using-cart-20/choosing-a-quick-start-path/launching-with-the-ready-made-cart A step-by-step guide to getting your Upmind storefront live quickly using the hosted Cart with no custom code required. * **Time** — 30 minutes * **Difficulty** — Beginner **What You'll Build:** A fully functional, production-ready storefront hosted on your own domain, with products, pricing, payment processing, and order confirmation all configured and tested, ready to accept live customer orders. **Prerequisites:** * An active [Upmind account](https://upmind.com/start) with Cart access. * At least one brand configured in Upmind (see [How to Add Brands](/setup-and-configuration/branding/how-to-add-brands)). * Products created with pricing and billing cycles defined (see [How to Create Products](/using-upmind/product-management/how-to-create-products)). * A supported payment provider account (e.g., Stripe). * Access to your domain's DNS management to set up a CNAME record. * A read-through of [Using the Decision Guide](/using-cart-20/choosing-what-to-implement-for-your-business/using-the-decision-guide) to confirm the ready-made Cart is the right path for your business. This path is designed for teams that want to launch a fully functional storefront and checkout quickly using Upmind’s hosted Cart, with minimal engineering involvement. It is the fastest route to a production-ready checkout, relying on built-in flows for catalogue browsing, product configuration, checkout, and confirmation. The ready-made Cart provides a complete commerce experience out of the box. It allows teams to go live quickly while keeping the option open to refine branding, layout, and behaviour later through configuration or headless approaches. You should follow these steps: 1. DNS / CNAME setup 2. Basic configuration 3. Enabling products 4. Payments 5. Testing 6. Go-live checklist ## When to choose this path * You want a working checkout live as quickly as possible. * You are comfortable using a standard, proven checkout flow. * You want to customise behaviour and content through configuration rather than building UI. * You may choose to adopt a headless setup in the future, but not immediately. No frontend framework or custom code is required to create a fully managed, high-conversion storefront hosted on your own subdomain. ## Step 1: DNS / CNAME setup The Cart is hosted by Upmind but designed to appear as part of your own domain. To use the ready-made Cart on your domain, a DNS record must be configured. ### Choose a domain or subdomain Decide which domain or subdomain customers will use to access the Cart. Common examples include: `store.yourdomain.com` or `checkout.yourdomain.com`. This can be accessed from **Settings** > **Domains** under **Branding and customisation**. Add a custom domain ### Create a CNAME record * Create a **CNAME record** for your chosen domain. * Point it to the Upmind Cart hostname (provided by Upmind). * The TTL can usually remain at the default value. ### Verify DNS propagation * DNS changes may take anywhere from a few minutes to several hours to propagate. * Once propagation is complete, the Cart will be accessible through your domain. ### Confirm HTTPS * TLS/SSL is handled automatically by Upmind once the domain resolves correctly. * No manual certificate setup or management is required. For more details, follow this [guide](/setup-and-configuration/branding/how-to-add-a-custom-domain-name). ## Step 2: Basic configuration This stage focuses on enabling **core commerce behaviour only**. You can change brand settings from **Settings** > **Brand Settings** under **Branding and customisation,** and business settings from **Settings** > **Business Settings** under **E-commerce settings**. ### Brand and business settings Review and confirm key brand-level settings, including: * Company name and contact details. * Business logo, colour, and font. * Multiple language options. * Default currency. * Locale and regional settings. * Business location and contact details. Brand settings Business settings These settings ensure proper branding and communications behave correctly. For more information, follow this [guide](/setup-and-configuration/branding/how-to-configure-your-brand-settings) for brand settings and this [guide](/setup-and-configuration/branding/how-to-configure-business-settings) for business settings. ### Checkout behaviour Confirm the default checkout rules, such as: * Whether checkout allows [guest users](/setup-and-configuration/orders-services/how-to-enable-guest-checkout) or requires account creation (**Settings** > **Order Options**). * Which [customer details](https://docs.upmind.com/using-upmind/how-subscription-cancellation-works/cancellation-fields) are required at checkout. * [Tax configurations](/using-upmind/invoicing-and-taxes/how-to-set-sales-taxes-eg-vat-gst) for products (**Settings** > **Tax Settings**). * [Billing and invoicing](/using-upmind/invoicing-and-taxes/how-to-configure-invoice-settings) preferences (for example, invoice generation or payment timing). These defaults define how customers move through checkout. Guest checkout Tax calculation ### Email and notification basics To receive order notifications and provide support through email, set up the following: * Set up your support department (**Settings** > **Support Department**). * Ensure order confirmation emails are enabled. * Verify sender name, sender address, and reply-to address. * Confirm any required system notifications are active. For more on notifications, follow this [guide](/setup-and-configuration/notifications/notifications-overview). At this stage, the Cart will function using default email layouts and behaviour. For more details, follow this [guide](/setup-and-configuration/email-configuring-and-sending/how-does-email-work-in-upmind). Support department ## Step 3: Enabling products To make products available in the Cart: ### Create or review products * Ensure [products](/using-upmind/product-management/how-to-create-products) exist in Upmind by creating product categories and products (**Settings** > **Product Catalogue** or **Dashboard** > **Store Catalogue)**. * Confirm [pricing](/using-upmind/product-management/how-to-add-product-billing), billing cycles, and availability are correctly defined. * Review any required configuration [options](/using-upmind/product-management/how-to-add-product-options) for configurable products. Create product Configure product billing Add product options ### Assign products to the Cart * Mark products as available for storefront purchase. * Apply visibility rules to control whether products appear in the catalogue. Control product visibility ### Validate product behaviour * Add products to the cart in a sandbox environment. * Confirm configuration steps, pricing updates, and validation behave as expected. Once enabled, products will automatically appear in the Cart catalogue. Sample product in the cart ## Step 4: Payments Configure payment in Upmind for your cart. ### Connect a payment provider * Configure a [supported payment gateway](/using-upmind/payment-methods/how-to-add-payment-gateways/adding-payment-gateways-in-upmind) in Upmind (**Settings** > **Payment providers**). * Use test credentials while working in the sandbox. Add payment providers ### Configure payment methods * Enable supported payment methods (for example, cards or wallets). * Apply any restrictions by currency or region if needed. For more details on payment options, follow this [guide](/using-upmind/payment-methods/payment-options-overview). ### Test payment flows * Complete test transactions using sandbox payment methods. * Verify successful payments, failures, and retry behaviour. ### Verify post-payment actions * Confirm orders are created correctly. * Ensure confirmation pages and emails are sent as expected. ## Step 5: Testing Before going live, complete end-to-end testing in the sandbox environment: * Browse the catalogue and add products to the cart. * Complete checkout using test payment methods. * Validate: * Pricing accuracy. * Tax calculation. * Order creation. * Confirmation messaging. Order completion * Test across devices. * Review common edge cases, such as: * Invalid or missing input * Abandoned checkouts * Payment failures Thorough testing ensures confidence without impacting live customers. ## Step 6: Go-live checklist Before switching traffic to the live Cart, confirm the following: * DNS and the domain are correctly configured and resolving. * Live payment credentials are enabled. * Products are visible and purchasable. * Order confirmation pages and emails are working. * [Internal teams](/setup-and-configuration/staff-users/how-to-create-staff-users) can access order and customer data. * A rollback plan exists (for example, reverting DNS if needed). Once these steps are complete, the ready-made Cart is fully live and operational. # Configuring Your Store with UI Metadata Source: https://docs.upmind.com/using-cart-20/choosing-what-to-implement-for-your-business/configuring-your-store-with-ui-metadata A complete reference for using UI Metadata to control how your Cart 2.0 storefront looks, behaves, and what it shows. * **Time** — 20 minutes * **Difficulty** — Intermediate **What You'll Build:** A working UI Metadata configuration that controls your storefront's layout, content, and behaviour, using context and data settings to customise everything from product layouts and pricing display to store copy and feature toggles, without touching any code. **Prerequisites:** * An active [Upmind account](https://upmind.com/start). * Basic familiarity with Cart 2.0. * Access to **Settings > Brand Settings** in your Upmind admin panel. * A basic understanding of JSON formatting. * A read-through of [Understanding the Cart Architecture](/using-cart-20/getting-started-with-cart-20/understanding-the-cart-architecture) to understand how configuration levels and inheritance work. Cart 2.0 is designed to work **out of the box**, with no configuration required. If you do nothing, the cart uses **recommended built-in defaults** that work for most use cases. What’s new in Cart 2.0 is the **level of control** you now have when you do want to customise things. Compared to the original cart, you can finely control: * Page templates. * How components render. * Visual behaviour across different pages. * Whether certain features are enabled or disabled. An **admin configurator panel** is planned for **2026**. Until then, all configuration is done by saving JSON settings into **UI Metadata** fields. You can access the UI Metadata from **Settings** > **Brand Settings** under **Branding and Customisation**. Settings > Brand Settings ## How configuration works The Cart 2.0 uses **two types of settings**, each with a clear purpose. ### 1. Context settings Control **how things look and behave,** such as layout and visibility. Examples: * Layout and spacing. * Visibility of components. * Page behaviour. * Responsive behaviour by device size. * SEO settings. ### 2. Data settings Control **what content, values, and features are used and shown,** such as headings, badges, and toggles. Examples: * Text and labels. * Feature toggles. * Upsells and cross-sells. * Store copy and messaging. All settings are **optional**. If a setting is not defined, the cart automatically falls back to a built-in default. ### 3. Configuration levels and how inheritance works in practice ## 1. Context settings (`@context`) Use `@context` when you want to control **layout, behaviour, or visual presentation** of cart pages. ### Key format ```text theme={null} @context..[/] = value ``` ### Context (``) Defines where the setting applies: * `catalogue` * `configure` * `recommendations` * `basket` * `auth` * `billing_details` * `checkout` * `confirmation` Using `*` (global default) applies the setting everywhere unless overridden. ### Setting (``) Defines what you are changing, for example: * `productImages` * `productListLayout` * `zeroPriceDisplay` ### Modifier (`/`, optional) Used for responsive behaviour: * `sm` – Mobile * `md` – Tablet * `lg` – Desktop If no modifier is used, the setting applies to **all viewports**. To switch to Cart 2.0 and implement context settings, provide the following `JSON` in your UI Metadata: ```json JSON theme={null} { "cart": { "storefront_url": "https://{custom-domain}/order/shop" } } ``` UI Metadata for context settings ### Example 1: Show or hide product images Global default: show product images everywhere. `JSON` Example: ```json JSON theme={null} { "@context.*.productImages": "visible" } ``` On the configure page: hide product images. `JSON` Example: ```json JSON theme={null} { "@context.configure.productImages": "hidden" } ``` **Result:** * Catalogue, basket, checkout, etc. > product images are **visible** * Configure page > product images are **hidden** If this is set at the **brand level**, all products inherit it unless overridden at the category or product level. Image hidden in configure page ### Example 2: Display “0.00” prices as “Free” Show "Free" instead of 0.00 across all contexts. `JSON` Example: ```json JSON theme={null} { "@context.*.zeroPriceDisplay": "label" } ``` * `"label"` > displays **Free** * `"numeric"` > displays **0.00** This applies globally, but can be overridden for specific categories or products. Display price as Free ### Example 3: Change product list layout by viewport Default: 4 columns on catalogue (all viewports). `JSON` Example: ```json JSON theme={null} { "@context.catalogue.productListLayout": "4-col" } ``` Default: 3 columns on catalogue (all viewports). `JSON` Example: ```json JSON theme={null} { "@context.catalogue.productListLayout": "3-col", } ``` Mobile (sm): switch to 1 column. `JSON` Example: ```json JSON theme={null} { "@context.catalogue.productListLayout/sm": "1-col", } ``` Tablet (md): use 2 columns. `JSON` Example: ```json JSON theme={null} { "@context.catalogue.productListLayout/md": "2-col" } ``` **Behaviour:** * Desktop > 3 columns * Tablet > 2 columns * Mobile > 1 column This allows responsive layouts without custom code. 4 column product list layout ### SEO Settings SEO settings in Upmind let you define meta information at three scope levels (Brand, Product Category, and Product) across any context. You can customise page titles, descriptions, and other metadata to match different parts of your storefront. Users can also override SEO metadata at any level, so a specific product or category can have its own meta details that take priority over broader brand-level defaults. `JSON` **Example**: Overriding the SEO page title across your brand. ```json JSON theme={null} { "@context.*.seoTitle": "Build YOur Website | Top Hosting Services" "@context.configure.seoDescription": "Build YOur Website | Top Hosting Services" } ``` **Appendix: SEO Settings** | **Setting** | **Description** | | ----------------------- | ------------------------------------------ | | `seoTitle` | Page \ tag. | | `seoDescription` | Meta description for search engines. | | `seoCanonical` | Canonical URL for the page. | | `seoOgTitle` | Open Graph title for social sharing. | | `seoOgDescription` | Open Graph description for social sharing. | | `seoOgImage` | Open Graph image URL for social sharing. | | `seoTwitterTitle` | Twitter card title. | | `seoTwitterDescription` | Twitter card description. | | `seoTwitterImage` | Twitter card image URL. | **Appendix: UI Properties** | **Property** | **Description** | **Default** | Enum Values | **Contexts** | **Scope** | | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------- | ------------ | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------- | | `activeCategoryBadge` | Controls whether the badge is displayed on the currently active category in the catalogue. | visible | visible \| hidden | catalogue | brand | | `activeCategoryDescription` | Controls whether the description for the currently active category is shown in the catalogue. | visible | visible \| hidden | catalogue | brand | | `basketFields` | Controls whether custom fields are visible in the basket and checkout pages. | hidden | visible \| hidden | basket (`Locked`), checkout | brand | | `basketItems` | Controls whether the list of individual basket items is shown during checkout. | hidden | visible \| hidden | checkout | brand | | `basketSummary` | Controls whether the order summary panel is displayed in the basket and authentication contexts. | visible | visible \| hidden | auth, checkout (`Locked`) | brand | | `basketTaxes` | Controls whether taxes are shown as a separate line item or consolidated into the order total. | consolidated | consolidated \| visible | basket, auth, checkout, confirmation | brand | | `billingDetails` | Controls whether customers can edit their billing details during checkout, or whether those fields are read-only. | readonly | readonly \| editable | billing\_details (`Locked`), checkout | brand | | `breadcrumbs` | Controls how breadcrumb navigation is displayed across cart pages, with options for full, condensed, or hidden display. | parent | hidden \| condensed \| parent \| visible | all | brand, product category, product | | `categoryBadge` | Controls whether a custom badge is shown on category cards in the catalogue. | visible | visible \| hidden | catalogue | brand, product category | | `categoryExcerpt` | Controls whether the short description beneath a category card is visible in the catalogue. | visible | visible \| hidden | catalogue | brand, product category | | `categoryIcon` | Controls whether icons are shown alongside category names in the catalogue. | hidden | visible \| hidden | catalogue | brand, product category | | `categoryImageFallback` | Controls whether a fallback placeholder image is shown when no category image has been uploaded. | visible | visible \| hidden | catalogue | brand, product category | | `categoryImageRatio` | Sets the aspect ratio used for category images displayed in the catalogue. | 1:1 | 1:1 \| 3:2 \| 4:3 \| 16:9 \| 18:6 \| auto | catalogue | brand, product category | | `categoryImages` | Controls whether images are shown on product category cards in the catalogue. | hidden | visible \| hidden | catalogue | brand, product category | | `categoryList` | Controls whether categories are displayed as a static grid or a scrollable carousel. | grid | carousel \| grid \| grid-facet | catalogue, recommendations | brand, product category | | `categoryListLayout` | Sets the number of columns used when categories are displayed in a grid layout. | 3-col | 1-col \| 2-col \| 3-col \| 4-col \| 5-col \| 6-col | catalogue, recommendations | brand, product category | | `iconVariant` | Sets the visual style of icons used throughout the storefront, such as line, solid, duotone, or duocolor. | line | line \| solid \| duotone \| duocolor | all | brand | | `optionGroupDescription` | Controls how descriptions for option groups are displayed, as a tooltip, inline beneath the label, or hidden entirely. | tooltip | tooltip \| inline \| hidden | configure | brand, product category, product, option category | | `optionGroupDividers` | Controls the style of divider lines shown between option groups on the product configuration page. | hidden | hidden \| solid \| dashed \| dotted | configure | brand, product category, product | | `optionGroupSpacing` | Controls the amount of vertical spacing between option groups on the product configuration page. | 4 | 2 \| 4 \| 6 \| 8 \| 10 | configure | brand, product category, product | | `optionItemBenefits` | Controls whether benefit lists are shown alongside individual selectable product options. | visible | visible \| hidden | configure, basket, checkout | brand, product category, product, option category, option | | `optionItemDescription` | Controls how descriptions for individual option items are displayed, inline, as a tooltip, or hidden. | inline | tooltip \| inline \| hidden | configure | brand, product category, product, option category, option | | `optionSelector` | Controls the component used to display and select sub-product options, such as a radio grid, radio rows, or dropdown. | radio-rows | radio-grid \| radio-rows \| select \| select-grouped | configure | brand, product category, product, option category | | `optionSelectorGrid` | Sets the number of columns in the option selector when using the radio-grid layout. | 2-col | 1-col \| 2-col \| 3-col \| 4-col | configure | brand, product category, product, option category | | `optionSelectorIcons` | Controls whether icons are shown alongside each selectable option in the option selector. | visible | visible \| hidden | configure | brand, product category, product, option category | | `optionUpsells` | Controls whether upsell suggestions for product options are shown in the basket and checkout. | visible | visible \| hidden | basket, checkout | brand, product category, product, option category | | `paymentGatewaysCap` | Sets the maximum number of payment methods displayed before a "show more" option appears at checkout. | 5 | 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8 \| none | checkout | brand, product category, product | | `productAnchorPrice` | Controls whether the original or reference price is shown alongside the current product price. | visible | visible \| hidden | catalogue, configure, recommendations | brand, product category, product | | `productBadge` | Controls whether promotional or informational badges are shown on product cards. | visible | visible \| hidden | catalogue, configure, recommendations | brand, product category, product | | `productBenefits` | Controls whether the benefits list is shown on product cards in the catalogue and recommendations. | visible | visible \| hidden | catalogue, recommendations | brand, product category, product | | `productCategory` | Controls whether the category label is shown on individual product cards throughout the cart. | hidden | visible \| hidden | catalogue, configure, recommendations | brand, product category, product | | `productConfigFieldsSummary` | Controls whether a summary of completed configuration fields is shown on the product configuration page. | hidden | visible \| hidden | configure | brand, product category, product | | `productConfigOptionsSummary` | Controls whether selected option details are shown in the configuration summary panel. | visible | visible \| hidden | configure, basket | brand, product category, product | | `productConfigSummary` | Controls whether the overall configuration summary is shown during product setup and in the basket. | visible | visible \| hidden | configure, basket (`Locked`) | brand, product category, product | | `productDescription` | Controls how the full product description is displayed, fully visible, clamped to a set number of lines, or hidden. | clamped | visible \| hidden \| clamped | configure | brand, product category, product | | `productDescriptionClamp` | Sets the number of lines shown before the product description is clamped and truncated. | 3 | 3 \| 4 \| 5 \| 6 \| 7 \| 8 | configure | brand, product category, product | | `productExcerpt` | Controls whether the short product description is shown on catalogue and recommendation cards. | visible | visible \| hidden | catalogue, recommendations | brand, product category, product | | `productImageFallback` | Controls whether a placeholder image is shown when no product image has been uploaded. | visible | visible \| hidden | catalogue, configure, recommendations, basket, confirmation | brand, product category, product | | `productImageRatio` | Sets the aspect ratio used for product images across catalogue, configuration, basket, and confirmation pages. | 1:1 | 1:1 \| 3:2 \| 4:3 \| 16:9 \| 18:6 \| auto | catalogue, configure, recommendations, basket, confirmation | brand, product category, product | | `productImages` | Controls whether product images are shown across catalogue, configuration, basket, and confirmation pages. | visible | visible \| hidden | catalogue, configure, recommendations, basket, confirmation | brand, product category, product | | `productImagesStyle` | Controls how multiple product images are displayed, such as a single image, carousel, or grid. | auto | single \| carousel \| grid \| auto | catalogue, configure, recommendations, basket, confirmation | brand, product category, product | | `productList` | Controls the overall display style for the product listing, such as a standard grid or domain-aware catalogue format. | grid | grid \| carousel \| dac | catalogue, recommendations | brand, product category | | `productListLayout` | Sets the number of columns used when products are displayed in a grid layout. | 3-col | 1-col \| 2-col \| 3-col \| 4-col | catalogue, recommendations | brand, product category | | `productNativeRecommendations` | Controls whether Upmind's built-in product recommendations are shown on the recommendations page. | visible | visible \| hidden | recommendations | brand, product category, product | | `productOrientation` | Controls whether product cards are displayed in a vertical or horizontal orientation. | vertical | vertical \| horizontal | catalogue, recommendations | brand, product category, product | | `productPriceSummary` | Controls whether the pricing summary is shown on product cards in the catalogue and recommendations. | visible | visible \| hidden | catalogue, recommendations | brand, product category, product | | `productStyle` | Controls the visual style of product cards, either as flush (borderless) or carded (with border and background). | flush | flush \| carded \| flush-carded | catalogue, recommendations | brand, product category, product | | `productTermSelector` | Controls whether billing term options are shown directly on product cards in the catalogue, recommendations, and basket. | hidden | visible \| hidden | catalogue, recommendations, basket | brand, product category, product | | `template` | Sets the page layout for a given context, defining how content and sidebars are structurally arranged. | undefined | | all | brand | | `termSelector` | Controls the component used to present billing term options to customers, such as a radio grid, radio rows, or dropdown. | radio-grid | radio-grid \| radio-rows \| select | configure | brand, product category, product | | `termSelectorGrid` | Sets the number of columns in the term selector when using the radio-grid layout. | 2-col | 1-col \| 2-col (default) \| 3-col \| 4-col | configure | brand, product category, product | | `termSelectorSummary` | Controls whether the billing cost summary is shown beneath the selected billing term on the configuration page. | visible | visible \| hidden | configure | brand, product category, product | | `theme` | Sets the named theme applied to the storefront, linking it to the corresponding CSS variable definitions in Brand Tokens. | default | default | all | brand | | `trustMessaging` | Controls whether the trust messaging section is shown on the configuration, basket, and checkout pages. | visible | visible \| hidden | configure, basket, checkout | brand, product category, product | | `zeroPriceDisplay` | Controls whether products with a zero price are displayed as `0.00` or as `Free`. | label | numeric \| label | catalogue, configure, recommendations, basket, auth (`Locked`), checkout (`Locked`), confirmation (`Locked`) | brand, product category, product, option category, option | `Locked` - This means that some properties have forced values in certain contexts. ## 2. Data settings (`@data`) Use `@data` when you want to control **content**, **relationships**, or **feature toggles**. Data settings define *what* the cart shows or enables, rather than *how* it looks. They can also vary by **context** and **viewport modifier**, so the same data property can have different values on mobile, tablet, or desktop. **Key format:** ```text theme={null} @data.<setting>[/<modifier>] = value ``` For example: * `@data.storeHeading` applies the default value. * `@data.storeHeading/md` applies the value on tablet. * `@data.storeHeading/lg` applies the value on desktop. <Warning> Data settings do not use context wildcards. </Warning> This makes it possible to customise store copy and other data-driven content to different screens while keeping the configuration centralised. To switch to Cart 2.0 and implement data settings, provide the following `JSON` in your UI Metadata: <CodeGroup> ```json JSON theme={null} { "cart": { "@data.storeUrl": "https://{custom-domain}/order/shop" } } ``` </CodeGroup> <Frame> <img alt="UI Metadata for data settings" /> </Frame> ### Example 1: Set basic store copy `JSON` Example: <CodeGroup> ```json JSON theme={null} { "@data.storeHeading": "Welcome to Example Hosting", "@data.storeSubHeading": "Choose the right plan for your website.", } ``` </CodeGroup> This controls user-facing text displayed in the cart. <Frame> <img alt="Heading and subheading" /> </Frame> ### Example 2: Disable the catalogue `JSON` Example: <CodeGroup> ```json JSON theme={null} {"@data.catalogueDisabled":true} ``` </CodeGroup> When enabled, the catalogue is hidden, and users can only access individual product pages directly. <Frame> <img alt="When catalogue is disabled, it will take you to the basket screen" /> </Frame> ### Example 3: Upsell a product option within the basket Full Domain Protection. `JSON` Example: <CodeGroup> ```json JSON theme={null} { "@data.optionUpsellEnabled": true, "@data.optionBadge": "Recommended", "@data.optionBenefits": [ { "label": "Prevents hackers from stealing...", "icon": "check" }, { "label": "Requires your approval via...", "icon": "check" }, ], } ``` </CodeGroup> This enables an in-basket upsell for a product option, including badges and benefit messaging. <Frame> <img alt="Cart 2.0 product recommendations" /> </Frame> **Appendix: Data Properties** | **Property** | **Default** | **Type** | **Description** | **Contexts** | **Scope** | | -------------------------- | ----------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | -------------------------------- | | `billingDetailsDisabled` | false | Boolean | Disables the standalone billing details page entirely when set to true. | billing\_details | brand | | `catalogueDisabled` | false | Boolean | Disables the product catalogue page entirely, directing customers straight to individual product pages. | catalogue | brand | | `categoryBadge` | undefined | String | Sets a custom badge label displayed on a product category card in the catalogue. | catalogue, configure | product category | | `clickwrapDisclaimer` | undefined | String | Sets a custom disclaimer shown at checkout that customers must acknowledge before completing their purchase. Supports Markdown formatting. | checkout | brand | | `displayFontLink` | undefined | String | Sets a Google Fonts or custom font URL applied to display typography across the cart and portal. | all | brand | | `optionBadge` | undefined | String | Sets a custom badge label displayed on a specific product option, such as "Best Value" or "Recommended.” | configure, basket, checkout | option category, option | | `optionBenefits` | \[] | Array | Defines a list of benefit items shown alongside a product option, each with a text label and an icon. | configure, basket, checkout | option category, option | | `optionGroupIcon` | undefined | String | Sets a custom icon displayed next to an option group label in the product configuration page. | configure | option category, option | | `optionGroupLabel` | undefined | String | Overrides the display label for an option group shown in the product configuration page. | configure, basket | option category, option | | `optionImgUrl` | undefined | String | Sets a custom image URL for a specific product option, displayed within the option selector alongside the option label. | configure, basket | option category, option | | `optionUpsellEnabled` | false | Boolean | Enables or disables the option upsell feature in the basket and checkout. | basket, checkout | brand, option category, option | | `productBadge` | undefined | String | Sets a custom badge label or icon displayed on a product card, such as "Popular" or "New.” | catalogue, configure, recommendations | product category, product | | `productBenefits` | \[] | Array | Defines a list of benefit items shown on a product card across the catalogue, configuration, and recommendations pages. | catalogue, configure, recommendations | product category, product | | `productName` | undefined | String | Overrides the display name shown for a product in the cart, checkout, and confirmation pages. | configure, basket, auth, checkout, confirmation | product category, product | | `productsToBundle` | \[] | Array | Defines a list of products to be automatically bundled together when a customer adds the parent product to their basket. | catalogue, configure, recommendations | brand, product category, product | | `productsToRecommend` | \[] | Array | Defines a list of products to display as recommendations on the recommendations page. | recommendations | product category, product | | `productUnavailable` | FALSE | Boolean | Marks a product as unavailable if it is sold out, removing it from purchase across the catalogue, configuration, and recommendations pages. | catalogue, configure, recommendations | all | | `productUnavailableReason` | undefined | String | Sets the message shown to customers when a product has been marked as unavailable. E.g. Sold out. | catalogue, configure, recommendations | all | | `storeBadge` | undefined | String | Sets a custom badge displayed on the catalogue page, typically used for store-level promotions or announcements. | catalogue | brand | | `storeHeading` | undefined | String | Sets the main heading text displayed at the top of the product catalogue page. | catalogue | brand | | `storeSubHeading` | undefined | String | Sets the supporting subheading text displayed beneath the main catalogue heading. | catalogue | brand | | `storeUrl` | undefined | String | Sets the URL that the store logo or header links to across all cart and portal pages. | all | brand | | `trimTrailingZeroes` | true | Boolean | Controls whether trailing decimal zeroes are removed from displayed prices, for example showing £10 instead of £10.00. | catalogue, configure, recommendations, basket, auth | all | | `trustMessagingMarkdown` | undefined | String | Sets custom trust messaging shown on the configuration, basket, and checkout pages. Supports Markdown formatting for security assurances, guarantees, or other reassurance copy. | configure, basket, checkout | brand, product category, product | ## 3. Configuration levels and how inheritance works in practice 1. You can define settings at different scopes. The cascade order (most specific > least specific): * Option — Settings on a specific sub-product option * Option Category — Settings on an option group * Product — Settings on a specific product * Product Category — Settings on a group of products * Brand — Your overall brand/storefront-level default * System Default — The built-in default value if nothing else is set For every product, Cart 2.0 resolves settings using a **fallback chain**: ```text theme={null} product → category → brand → internal default ``` This means: * The most specific setting always wins. * You only override what you need. * Everything else is inherited automatically. If you define just **one key at the product level**, all other settings will still come from the category or brand. 2. At each level, it looks for: * `@context.<contextId>.<setting>` * If not found, `@context.*.<setting>` * If still not found, the built-in default is used Because missing values are **filled in automatically**: * You never need to duplicate full configurations. * You can safely override only what matters. * Defaults remain consistent across the cart. This keeps configuration **clean, predictable, and scalable**, even across large product catalogues. ## **Complete example** The following JSON configuration brings together a range of context and data settings into a single working UI Metadata block. It covers layout, content, visibility, and behaviour across multiple pages, and demonstrates how global defaults and page-specific overrides work together. `JSON` Example <CodeGroup> ```json JSON theme={null} { "cart": { "storefront_url": "https://store.yourdomain.com/order/shop" }, "@context.*.theme": "yourbrand", "@context.*.zeroPriceDisplay": "label", "@context.*.breadcrumbs": "hidden", "@context.*.productImages": "visible", "@context.*.trustMessaging": "visible", "@context.*.template": "two-column-ltr", "@context.auth.template": "canvas-card", "@context.configure.template": "two-column-rtl", "@context.basket.template": "two-column-ltr", "@context.checkout.template": "two-column-ltr", "@context.confirmation.template": "full", "@context.catalogue.productListLayout": "3-col", "@context.catalogue.productListLayout/sm": "1-col", "@context.catalogue.productListLayout/md": "2-col", "@context.catalogue.productStyle": "carded", "@context.catalogue.productImages": "visible", "@context.catalogue.productBenefits": "visible", "@context.catalogue.productAnchorPrice": "visible", "@context.catalogue.productBadge": "visible", "@context.catalogue.categoryImages": "visible", "@context.catalogue.categoryListLayout": "3-col", "@context.configure.productImages": "hidden", "@context.configure.optionSelector": "radio-grid", "@context.configure.optionSelectorGrid": "2-col", "@context.configure.optionSelectorIcons": "visible", "@context.configure.termSelector": "radio-grid", "@context.configure.termSelectorGrid": "2-col", "@context.configure.termSelectorSummary": "visible", "@context.configure.productConfigSummary": "visible", "@context.configure.productConfigOptionsSummary": "visible", "@context.basket.basketSummary": "visible", "@context.basket.basketTaxes": "consolidated", "@context.basket.trustMessaging": "visible", "@context.checkout.basketItems": "visible", "@context.checkout.basketSummary": "visible", "@context.checkout.paymentGatewaysCap": "3", "@context.checkout.trustMessaging": "visible", "@context.checkout.billingDetails": "editable", "@context.recommendations.productStyle": "carded", "@context.recommendations.productImages": "visible", "@context.recommendations.productNativeRecommendations": "visible", "@data.storeHeading": "Find the Right Plan for You", "@data.storeSubHeading": "Simple pricing, no hidden fees.", "@data.storeBadge": "New Plans Available", "@data.storeUrl": "https://store.yourdomain.com", "@data.displayFontLink": "https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap", "@data.trustMessagingMarkdown": "🔒 Secure checkout · 30-day money-back guarantee · 24/7 support", "@data.clickwrapDisclaimer": "By completing your purchase, you agree to our [Terms of Service](https://yourdomain.com/terms) and [Privacy Policy](https://yourdomain.com/privacy).", "@data.trimTrailingZeroes": true } ``` </CodeGroup> ## Error handling and invalid values Cart 2.0 does not throw hard errors when an invalid value is used in UI Metadata. Instead, it silently falls back to the built-in default for that setting and ignores the unrecognised value. This means a typo or unsupported value will not break your storefront, but the setting will have no visible effect, which can be difficult to spot. `JSON` **Example:** <CodeGroup> ```json JSON theme={null} { "@context.catalogue.productListLayout": "5-col" } ``` </CodeGroup> `5-col` is not a valid value for `productListLayout`. Therefore, Cart 2.0 will ignore it and fall back to the default `3-col` layout. No error will appear in the UI. **Common mistakes to watch for:** * Misspelled property names (e.g. `produtImages` instead of `productImages`): The setting is silently skipped. * Using a value outside the accepted enum (e.g. `"visible"` on a property that only accepts column values). * Missing or extra commas in your JSON: This will cause the entire UI Metadata block to fail to parse, reverting all settings to defaults. * Applying a context that does not support the setting (e.g. using `@context.confirmation.optionSelector`): The setting is ignored. The safest way to confirm a setting is working is to check the storefront visually after saving, and cross-reference the property's accepted values in the UI Properties appendix and Data Properties appendix. # Exploring Example Scenarios Source: https://docs.upmind.com/using-cart-20/choosing-what-to-implement-for-your-business/exploring-example-scenarios Real-world implementation examples to help you see which Cart 2.0 approach fits businesses like yours. * **Time** — 6 minutes * **Difficulty** — Beginner **What You'll Learn:** A practical reference of how different business types, hosting companies, SaaS products, enterprise platforms, and startups approach Cart 2.0 implementation, so you can map your own situation to the right starting point. **Prerequisites:** * An active [Upmind account](https://upmind.com/start). * Basic familiarity with Cart 2.0. * A read-through of [Using the Decision Guide](/using-cart-20/choosing-what-to-implement-for-your-business/using-the-decision-guide) to understand the available implementation approaches. If you are unsure about your decision, start with the simplest option that meets today’s needs. Cart 2.0 is built so moving from a hosted cart to headless does not require rewriting pricing rules or order logic. This keeps early decisions low risk and future changes manageable. Below are some **example scenarios** of some companies using the different approaches: ## Example 1: Hosting company A hosting provider regularly launches new plans, bundles, or limited-time offers and needs the ability to update pricing and options without rebuilding the checkout. Speed to market and reliability matter more than building everything from scratch. **Recommended approach:** Ready-made Cart. **Reasoning:** The ready-made cart already supports complex hosting configurations, recurring billing, taxes, and payments out of the box. ## Example 2: SaaS product A SaaS company sells subscriptions and wants the signup and checkout flow to feel like a natural extension of its product onboarding. Brand consistency and user experience are closely tied to conversion and retention. **Recommended approach:** Headless plus Custom UI. **Reasoning:** A headless setup lets the product team design a fully custom signup and checkout experience that matches the app’s UI and onboarding flow. Upmind still manages pricing rules, subscription logic, promotions, and billing behind the scenes, so the team gains full control over UX without reimplementing commerce logic. ## Example 3: Enterprise platform An enterprise platform already has a mature frontend, authentication system, and internal workflows. Checkout needs to integrate into existing systems without disrupting the current user experience or architecture. **Recommended approach:** API only or Headless plus Custom UI. **Reasoning:** Using the API directly or a headless setup allows Upmind to plug into existing systems as a commerce engine rather than a UI layer. The platform can keep its current frontend and account flows while relying on Upmind for products, pricing, taxes, and payments. This approach supports complex integrations and long-term scalability. ## Example 4: Startup MVP A startup wants to start selling as quickly as possible to test demand, pricing, and positioning. Engineering resources are limited, and the goal is learning rather than perfection. **Recommended approach:** Ready-made Cart. **Reasoning:** The ready-made cart allows the team to launch checkout with minimal setup and almost no custom development. Products can be sold directly from a simple website or landing page, with checkout handled by Upmind. As the business grows, the startup can later move to a more customised or headless approach without rebuilding everything. # Setting Up Theming with CSS Variables Source: https://docs.upmind.com/using-cart-20/choosing-what-to-implement-for-your-business/setting-up-theming-with-css-variables A reference guide for using CSS variables and design tokens to style your Cart 2.0 storefront to match your brand. * **Time** — 25 minutes * **Difficulty** — Intermediate **What You'll Build:** A branded theme for your Cart 2.0 storefront using CSS variable overrides, covering colours, typography, spacing, and component styles, applied through Brand Tokens and UI Metadata without touching any core code. **Prerequisites:** * An active [Upmind account](https://upmind.com/start). * Access to **Settings > Brand Settings** in your Upmind admin panel. * Basic familiarity with CSS and how CSS variables work. * A read-through of [Configuring Your Store with UI Metadata](/using-cart-20/choosing-what-to-implement-for-your-business/configuring-your-store-with-ui-metadata) to understand how the `@context.theme` setting is applied. * Your brand's colour palette, font choices, and any design guidelines you want to follow. Cart and Portal theming is powered by **CSS variables (design tokens)**. This allows you to control the visual appearance of the interface without modifying core code. The system is designed to be visually neutral by default, so it can align easily with your brand. The most effective way to customise styling is by defining CSS variables that control colours, spacing, borders, and typography. Using CSS variables ensures: * Centralised control of your brand styling * Consistent appearance across cart and portal * Upgrade-safe customisation * No need to modify component code ### Brand-specific theming For multi-brand setups, you can define brand-specific theme tokens. Navigate to **Settings** > **Brand Settings.** <Frame> <img alt="Settings > Brand settings" /> </Frame> Add your tokens inside the **Brand Tokens** field. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-core-canvas: #f3fdf2; --color-control-default: #00c069; } ``` </CodeGroup> This creates a named theme (`webcentral`) with its own colour system. ### Applying the theme To apply a theme to a brand, define it in the **Brand Meta (UI Metadata)** field. `JSON` Example: <CodeGroup> ```json JSON theme={null} { "cart": { "@context.theme": "webcentral", } } ``` </CodeGroup> Once applied, the cart and portal will use the CSS variables defined for that theme. <Frame> <img alt="Applying theme and token" /> </Frame> By using CSS variables: * You can align the cart and portal with your brand quickly. * Styling updates can be made centrally without refactoring components. * Theming remains consistent across checkout and post-purchase views. * Future updates to Cart 2.0 remain safe and compatible. ## **Primitive tokens** These are the **foundational values** that define colours for the entire interface. Changing a primitive token will cascade through the theme, affecting all derived styles. **Core Colors:** Base greys and backgrounds for general layout. * `--color-core-canvas` – The **main page background** colour behind all content (e.g., page canvas). Usually, a very light neutral tone to reduce eye strain. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-core-canvas: #FF7F7F; } ``` </CodeGroup> <Frame> <img alt="Core canvas color" /> </Frame> * `--color-core-surface` – Background colour for **elevated containers** (cards, modals, panels). Contrasts with the canvas to create depth. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-core-surface: #FF7F7F; } ``` </CodeGroup> <Frame> <img alt="Core surface color" /> </Frame> * `--color-core-base` – Default **body text** colour. Used for paragraphs and standard content. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-core-base: #FF7F7F; } ``` </CodeGroup> <Frame> <img alt="Core base color" /> </Frame> * `--color-core-display` – High-emphasis **text** (headings, titles, prices). Darker than `-color-core-base` for emphasis. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-core-display: #FF7F7F; } ``` </CodeGroup> <Frame> <img alt="Core display color" /> </Frame> * `--color-core-muted` – Secondary text (captions, metadata, timestamps). A softer grey for supporting info. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-core-muted: #FF7F7F; } ``` </CodeGroup> <Frame> <img alt="Core muted color" /> </Frame> * `--color-core-faint` – Lowest-emphasis text (placeholders, disabled text, very subtle labels). Light grey near the edge of legibility. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-core-faint: #FF7F7F; } ``` </CodeGroup> <Frame> <img alt="Core faint color" /> </Frame> * `--color-core-skeleton` – Semi-transparent grey for **loading placeholders** (skeleton screens). Applied behind content while data loads. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-core-skeleton: #FF7F7F; } ``` </CodeGroup> <Frame> <img alt="Core skeleton color" /> </Frame> * `--color-core-overlay` – Semi-transparent dark overlay (e.g., behind modals or drawers). Dims the background content. * `--color-core-overlay-contrast` – Text/icon colour on top of `-color-core-overlay`. Typically white or very light to stand out against the dark overlay. **Control Colors:** Used for form controls (checkboxes, radios, toggles, etc.). * `-color-control-default` – Fill colour for **checked/on** controls (checkbox, active radio, enabled toggle). The primary active state colour (usually dark grey/black). `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-control-default: #90EE90; } ``` </CodeGroup> <Frame> <img alt="Control default color" /> </Frame> * `--color-control-default-contrast` – The **icon or checkmark** colour shown on a checked control. Must contrast with `-color-control-default` (typically white). `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-control-default-contrast: #90EE90; } ``` </CodeGroup> <Frame> <img alt="Control default contrast color" /> </Frame> * `--color-control-default-delta` – Darker variant of the on-colour, used for hover/active feedback on checked controls. * `--color-control-muted` – Background highlight for **focused/selected** items in dropdowns or option lists. A very light shade to indicate focus. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-control-muted: #90EE90; } ``` </CodeGroup> <Frame> <img alt="Control muted color" /> </Frame> * `--color-control-muted-contrast` – Text colour used on a selected option (shown on top of `-color-control-muted` background). `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-control-muted-contrast: #90EE90; } ``` </CodeGroup> <Frame> <img alt="Control muted contrast color" /> </Frame> * `--color-control-stroke` – Default **border colour** for inputs, checkboxes, radios, etc. Light grey for resting state. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-control-stroke: #90EE90; } ``` </CodeGroup> <Frame> <img alt="Control stroke color" /> </Frame> * `--color-control-stroke-delta` – Darker border for **hover** state on controls. Provides subtle interactive feedback. **Primary Colors:** Brand’s main colour (often used for CTAs). * `--color-primary-default` – The **primary colour** (e.g., brand blue). Used as the base for primary button backgrounds and key accents. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-primary-default: #4169E1; } ``` </CodeGroup> <Frame> <img alt="Primary default color" /> </Frame> * `--color-primary-default-stop` – End colour for a primary button gradient. Changing this can create a gradient effect. If same as `-default`, buttons are solid. * `--color-primary-default-delta` – Darker shade of primary for **hover/active** states on primary elements (buttons, links). `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-primary-default-delta: #4169E1; } ``` </CodeGroup> <Frame> <img alt="Primary default delta colour" /> </Frame> * `--color-primary-default-contrast` – Text/icon colour on primary backgrounds (e.g., white text on primary button). Ensures accessibility contrast. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-primary-default-contrast: #4169E1; } ``` </CodeGroup> <Frame> <img alt="Primary primary default contrast" /> </Frame> * `-color-primary-muted` – Very light **tinted version** of the primary colour (for subtle highlights). Used for badges or soft backgrounds instead of full primary. * `-color-primary-muted-contrast` – Text colour on the muted-primary background (usually the primary colour itself or dark text). **Secondary Colors:** Accent colour for secondary actions. * `--color-secondary-default` – Base colour for secondary buttons/backgrounds. Usually a neutral tone (like very light grey). `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-secondary-default: #4169E1; } ``` </CodeGroup> <Frame> <img alt="Secondary default color" /> </Frame> * `--color-secondary-default-stop` – Gradient end for secondary buttons. If different from default, creates a subtle gradient on secondary CTAs. * `--color-secondary-default-delta` – Darker shade for **hover/active** on secondary elements. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-secondary-default-delta: #4169E1; } ``` </CodeGroup> <Frame> <img alt="Secondary default delta color" /> </Frame> * `--color-secondary-default-contrast` – Text/icon colour on secondary backgrounds (commonly dark text on the light secondary colour). **Neutral Colors:** Tones for non-branded UI elements. * `--color-neutral-default` – Medium-grey used for neutral buttons or UI elements that shouldn’t draw attention. * `--color-neutral-default-delta` – Darker variant for neutral buttons on hover or focus. * `--color-neutral-default-contrast` – Text colour on `neutral-default` backgrounds (often white for readability). * `--color-neutral-muted` – Very light grey (almost white) for backgrounds of subtle elements (chips, tags, low-emphasis containers). * `--color-neutral-muted-delta` – Slightly darker version for hover on muted backgrounds. * `--color-neutral-muted-contrast` – Text colour on `neutral-muted` backgrounds (dark grey for contrast). * `--color-neutral-stroke` – Border colour for surfaces (cards, dividers, table rows). Subtle light line. * `--color-neutral-stroke-delta` – Darker border for hover or emphasis on neutral outlines. **Promo Colors:** Bright accent for marketing/promotions. * `--color-promo-default` – Bold colour (often a vivid purple/blue) for sale badges, discount banners, or promotional highlights. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-promo-default: #90EE90; } ``` </CodeGroup> <Frame> <img alt="Promo default color" /> </Frame> * `--color-promo-default-contrast` – Text colour on promo backgrounds (usually white). * `--color-promo-muted` – Very light tint of promo colour for subtle emphasis. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-promo-muted: #90EE90; } ``` </CodeGroup> <Frame> <img alt="Promo muted color" /> </Frame> * `--color-promo-muted-contrast` – Text colour on soft promo backgrounds (often the promo colour itself). **Danger Colors:** For error and destructive states. * `--color-danger-default` – Vivid red for error badges, delete buttons, and alerts. Grabs immediate attention. * `--color-danger-default-delta` – Darker red for hover on danger elements. * `--color-danger-default-contrast` – Text colour on danger backgrounds (often a very light pink or white). * `--color-danger-muted` – Light pink background for inline error messages or validation hints. * `--color-danger-muted-contrast` – Text colour on muted-danger backgrounds (usually the danger red itself). **Warning Colors:** For cautionary notices. * `--color-warning-default` – Amber/yellow for warnings, alert banners, or pending states. High visibility. * `--color-warning-default-contrast` – Text colour on warning backgrounds (dark brownish-amber). * `--color-warning-muted` – Very light yellow for inline caution notes. * `--color-warning-muted-contrast` – Text colour on soft-warning backgrounds (darker amber for readability). **Success Colors:** For positive/confirmation states. * `--color-success-default` – Bright green for success messages, completed status, etc. Conveys “all good.” * `--color-success-default-contrast` – Dark green text on `success` backgrounds. * `--color-success-muted` – Pale green for inline confirmations or subtle success indicators. * `--color-success-muted-contrast` – Text colour on muted-success backgrounds (usually a mid-green). **Info Colors:** For neutral informational elements. * `--color-info-default` – Calm blue for tooltips, help badges, or info banners. * `--color-info-default-contrast` – Text colour on info backgrounds (usually white). * `--color-info-muted` – Very light blue tint for inline tips or notices. * `--color-info-muted-contrast` – Text colour on muted-info backgrounds (the info blue itself). ## **Semantic Tokens** These tokens **map primitives to actual UI uses** (backgrounds, text, borders, accents). They help maintain consistency by using the core colour values where needed. **Background (Layout):** Surface and canvas layers. * `--bg-canvas: var(--color-core-canvas)` - The overall page background in layout. * `--bg-surface: var(--color-core-surface)` - Used for card and panel backgrounds. * `--bg-skeleton: var(--color-core-skeleton)` - Background for loading skeleton screens. * `--bg-overlay: var(--color-core-overlay)` - Dark overlay behind modals/drawers. * `--bg-tooltip: var(--color-core-overlay)` – Usually same as overlay. Background for tooltip bubbles (dark background). **Background (Form Controls):** Checkbox, radio, toggle states. * `--bg-control-checked-contrast: var(--color-control-default-contrast)` - Background of a **checked/on** control (checkbox, radio, toggle). * `--bg-control-checked: var(--color-control-default)` - Hover fill for an already-checked control. * `--bg-control-checked-hover: var(--color-control-default-delta)` - The checkmark/radio dot colour on checked controls. * `--bg-control-unchecked: var(--color-control-stroke)` - Background (track) colour of an **unchecked/off** toggle. * `--bg-control-unchecked-hover: var(--color-control-stroke-delta)` - Hover fill for an unchecked toggle track. * `--bg-control-selected: var(--color-control-muted)` - Background for **focused/selected** dropdown items or options. * `--bg-control-surface: var(--color-control-default-contrast)` - Background for form fields (usually white). * `--bg-control-ring: var(--color-control-default)` - Colour used for focus rings on form controls. **Background (Buttons):** Button backgrounds and gradients. * `--bg-button-primary-0: var(--color-primary-default)` - **Primary button** start colour (often same as `-primary-default`). * `--bg-button-primary-1: var(--color-primary-default-stop)` - **Primary button** end colour (for gradient). * `--bg-button-primary-hover-0: var(--color-primary-default-delta)` - Hover start for primary button. * `--bg-button-primary-hover-1: var(--color-primary-default-delta)` - Hover end for primary button. * `--bg-button-primary-ring: var(--color-primary-default-delta)` - Focus ring colour for primary buttons. * `--bg-button-secondary-0: var(--color-secondary-default)` - Secondary button start colour. * `--bg-button-secondary-1: var(--color-secondary-default-stop)` - Secondary button end colour. * `--bg-button-secondary-hover-0: var(--color-secondary-default-delta)` - Hover start for secondary button. * `--bg-button-secondary-hover-1: var(--color-secondary-default-delta)` - Hover end for secondary button. * `--bg-button-neutral-ring: var(--color-neutral-default-delta)` - Focus ring for secondary buttons. * `--bg-button-neutral-0: var(--color-neutral-default)` - Neutral (tertiary) button colour. * `--bg-button-neutral-1: var(--color-neutral-default)` - (Solid colour, no gradient by default). * `--bg-button-neutral-hover-0: var(--color-neutral-default-delta)` - Hover start for neutral buttons. * `--bg-button-neutral-hover-1: var(--color-neutral-default-delta)` - Hover end for neutral buttons. * `--bg-button-subtle-ring: var(--color-neutral-default-delta)` - Focus ring for neutral buttons. * `--bg-button-subtle-0: var(--color-neutral-muted)` - Subtle (minimal) button background. * `--bg-button-subtle-1: var(--color-neutral-muted)` - (Solid light colour). * `--bg-button-subtle-hover-0: var(--color-neutral-muted-delta)` - Hover start for subtle buttons. * `--bg-button-subtle-hover-1: var(--color-neutral-muted-delta)` - Hover end for subtle buttons. * `--bg-button-danger-ring: var(--color-danger-default-delta)` - Focus ring for subtle buttons. * `--bg-button-danger-0: var(--color-danger-default)` - Hover start for danger buttons. * `--bg-button-danger-1: var(--color-danger-default)` - Hover end for danger buttons. * `--bg-button-danger-hover-0: var(--color-danger-default-delta)` * `--bg-button-danger-hover-1: var(--color-danger-default-delta)` - Focus ring for danger buttons. * `--bg-button-outline` – Transparent (default for outline buttons). * `--bg-button-outline-hover: var(--color-neutral-muted-delta)` - Hover fill for outline buttons. * `--bg-button-outline-ring: var(--color-neutral-default-delta)` - Outline button focus ring. * `-bg-button-ghost` – Transparent (default for ghost buttons). * `--bg-button-ghost-hover: var(--color-neutral-muted-delta)` - Hover fill for ghost buttons. * `--bg-button-ghost-ring: var(--color-neutral-default-delta)` - Ghost button focus ring. **Background (Accents/Badges):** Colored backgrounds for labels and tags. * `--bg-accent-primary: var(--color-primary-default)` - Solid background for **primary accents** (featured badges, selected tabs). * `--bg-accent-primary-muted: var(--color-primary-muted)` - Lighter tint of primary for inline tags or subtle highlights. * `--bg-accent-neutral: var(--color-neutral-default)` - Solid neutral background for generic tags/status. * `--bg-accent-neutral-muted: var(--color-neutral-muted)` - Light neutral background for subtle chips or pills. * `--bg-accent-promo: var(--color-promo-default)` - Bold promotional background (sale badges, etc). * `--bg-accent-promo-muted: var(--color-promo-muted)` - Soft promo tint for less intense callouts. * `--bg-accent-danger: var(--color-danger-default)` - Solid danger background for error badges or alerts. * `--bg-accent-danger-muted: var(--color-danger-muted)` - Light danger background for inline error messages. * `--bg-accent-warning: var(--color-warning-default)` - Solid warning background for attention badges. * `--bg-accent-warning-muted: var(--color-warning-muted)` - Soft warning background for subtler notices. * `--bg-accent-success: var(--color-success-default)` - Solid success background for completion badges. * `--bg-accent-success-muted: var(--color-success-muted)` - Soft success background for inline confirmations. * `--bg-accent-info: var(--color-info-default)` - Solid info background for informational badges. * `--bg-accent-info-muted: var(--color-info-muted)` - Soft info background for tips or notes. **Border Colors:** For outlines and dividers. * `--border-surface: var(--color-neutral-stroke)` - Default border colour for cards, panels, tables, and dividers (a light grey). * `--border-button-outline: var(--color-neutral-stroke)` - Border for outline buttons (same as surface border). * `--border-button-outline-hover: var(--color-neutral-stroke-delta)` - Darker border on hover for outline buttons. * `--border-control-default: var(--color-control-stroke)` - Default border on form inputs and controls. * `--border-control-hover: var(--color-control-stroke-delta)` - Hover border on inputs to signal interactivity. * `--border-control-selected: var(--color-control-default)` - Border on focused/selected inputs (darker than default). * `--border-accent-primary: var(--color-primary-default)` - Coloured border for emphasis (active nav items, featured cards). * `--border-accent-secondary: var(--color-secondary-default)` - Coloured border for secondary grouping. * `--border-accent-neutral: var(--color-neutral-default)` - Bold neutral-coloured border. * `--border-accent-promo: var(--color-promo-default)` - Promotional coloured border for marketing emphasis. * `--border-accent-danger: var(--color-danger-default)` - Danger border for error highlighting. * `--border-accent-warning: var(--color-warning-default)` - Warning border for cautionary emphasis. * `--border-accent-success: var(--color-success-default)` - Success border for positive states. * `--border-accent-info: var(--color-info-default)` - Info border for informational emphasis. **Icon Colors:** Default icon shades. * `--icon-primary: var(--color-primary-default)` - Brand-coloured icons (sparingly for key actions). * `--icon-neutral: var(--color-core-base)` - Default grey icon colour (matches body text). **Text Colors:** Typography colors for hierarchy. * `--text-base: var(--color-core-base)` - Default paragraph text colour. * `--text-display: var(--color-core-display)` - High-emphasis text (used on headings, etc). * `--text-muted: var(--color-core-muted)` - Secondary/de-emphasised text (captions, helper text). * `--text-faint: var(--color-core-faint)` - Low-emphasis text (placeholders, disabled text). * `-text-primary` – #ffffff. Always used on a primary-colored background (white text on primary buttons/areas). * `--text-tooltip: var(--color-core-overlay-contrast)` - Text colour inside tooltips (light text on dark tooltip). **Text (Buttons & Controls):** Text for interactive elements. * `--text-control-selected: var(--color-control-muted-contrast)` - Text for currently selected/highlighted items in dropdowns, comboboxes, and option lists. * `--text-button-primary: var(--color-primary-default-contrast)` - Text on primary buttons (white or light). * `--text-button-secondary: var(--color-secondary-default-contrast)` - Text on secondary buttons (dark). * `--text-button-neutral: var(--color-neutral-default-contrast)` - Text on neutral buttons (white). * `--text-button-subtle: var(--color-neutral-muted-contrast)` - Text on subtle buttons (dark grey). * `--text-button-danger: var(--color-danger-default-contrast)` - Text on danger buttons (light). * `--text-button-danger-link: var(--color-danger-default)` - Used for text links styled as danger (red link). * `--text-button-danger-link-hover: var(--color-danger-default-delta)` - Darker red on hover for danger links. * `--text-button-outline: var(--color-core-display)` - Text on outline buttons (dark text on transparent bg). * `--text-button-ghost: var(--color-core-display)` - Text on ghost buttons (dark text). * `--text-button-link: var(--color-core-display)` - Text for inline link-style buttons. * `--text-button-link-hover: var(--color-control-default)` - Text on link-hover (slightly darker). * `--text-button-muted-link: var(--color-core-muted)` - De-emphasised link text (grey link). * `--text-button-muted-link-hover: var(--color-control-default)` - Hover color for muted link (darkens). **Text (Accents):** For coloured text or text on coloured backgrounds. * `--text-accent-primary: var(--color-primary-default)` - Primary coloured text (emphasis colour). * `--text-accent-primary-muted-contrast: var(--color-primary-muted-contrast)` - Text on solid primary backgrounds. * `--text-accent-primary-contrast: var(--color-primary-default-contrast)` - Text on light primary tints. * `--text-accent-neutral: var(--color-neutral-default)` - Neutral accent text. * `--text-accent-neutral-contrast: var(--color-neutral-default-contrast)` - Text on solid neutral backgrounds. * `--text-accent-neutral-muted-contrast: var(--color-neutral-muted-contrast)` - Text on light neutral backgrounds. * `--text-accent-promo: var(--color-promo-default)` - Promotional text colour. * `--text-accent-promo-contrast: var(--color-promo-default-contrast)` - Text on solid promo backgrounds. * `--text-accent-promo-muted-contrast: var(--color-promo-muted-contrast)` - Text on light promo backgrounds. * `--text-accent-danger: var(--color-danger-default)` - Danger text colour (red text). * `--text-accent-danger-contrast: var(--color-danger-default-contrast)` - Text on solid danger backgrounds. * `--text-accent-danger-muted-contrast: var(--color-danger-muted-contrast)` - Text on light danger backgrounds. * `--text-accent-warning: var(--color-warning-default)` - Warning text colour (amber text). * `--text-accent-warning-contrast: var(--color-warning-default-contrast)` - Text on solid warning backgrounds. * `--text-accent-warning-muted-contrast: var(--color-warning-muted-contrast)` - Text on light warning backgrounds. * `--text-accent-success: var(--color-success-default)` - Success text colour (green text). * `--text-accent-success-contrast: var(--color-success-default-contrast)` - Text on solid success backgrounds. * `--text-accent-success-muted-contrast: var(--color-success-muted-contrast)` - Text on light success backgrounds. * `--text-accent-info: var(--color-info-default)` - Info text colour (blue text). * `--text-accent-info-contrast: var(--color-info-default-contrast)` - Text on solid info backgrounds. * `--text-accent-info-muted-contrast: var(--color-info-muted-contrast)` - Text on light info backgrounds. ## **Component Tokens** These tokens control **component-specific styling** like shapes, spacing, and typography. They ensure consistency across UI elements. **Corner Radii:** Rounding for component corners. * `--button-radius` – Rounding for buttons. Higher value makes more rounded buttons. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --button-radius: 32px; } ``` </CodeGroup> <Frame> <img alt="Button radius" /> </Frame> * `--control-radius` – Rounding for inputs, selects, toggles. Usually same as `button-radius`. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --control-radius: 32px; } ``` </CodeGroup> <Frame> <img alt="Control radius" /> </Frame> * `--badge-radius` – Rounding for badges/tags (often pill-shaped). * `--image-radius` – Rounding for images or avatars (corners on images). `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --image-radius: 128px; } ``` </CodeGroup> <Frame> <img alt="Image radius" /> </Frame> * `--card-radius` – Rounding for cards, panels, modals. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --card-radius: 128px; } ``` </CodeGroup> <Frame> <img alt="Card radius" /> </Frame> * `--message-radius` – Rounding for alerts/toasts messages. **Stroke Width:** Thickness of line icons and badge outlines. * `--stroke-icon` – Line thickness for general icons. Adjusts how bold or light icon strokes appear. `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --stroke-icon: 6px; } ``` </CodeGroup> <Frame> <img alt="Stroke icon" /> </Frame> * `--stroke-badge` – Thickness for badge iconography (slightly bolder for small icons). **Letter Spacing (Tracking):** Horizontal spacing of letters. * `--tracking-normal` – Default spacing (used for most body text). * `--tracking-tight` – Condensed spacing (for large headings or condensed text). * `--tracking-wide` – Expanded spacing (for uppercase labels or small-caps). **Display Font (Heading) Tokens:** Typography settings for large display text (headings). * `--font-display-weight` – Base font weight for display text (headings). `CSS` **Example**: <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --font-display-weight: 800 } ``` </CodeGroup> <Frame> <img alt="Font display weight" /> </Frame> * `--font-display-transform` – Text-transform for headings (e.g. uppercase if set). * `--font-display-tracking` – Letter spacing for display text (usually `tight` for big headings). **Display Font (Bold Variant):** Settings for bold emphasis in headings. * `--font-display-bold: var(--font-display)` – Font family for bold display text (inherits default display font). * `--font-display-bold-weight` – Font weight for bold headings (commonly 700). * `--font-display-bold-transform: var(--font-display-transform)` – Text-transform for bold display (usually same as display). * `--font-display-bold-tracking: var(--font-display-tracking)` – Letter spacing for bold display (same as display). **Font Size Scale:** Type scale values and line heights. Each size has a default `line-height` (and tight/loose variants). Base font sizes from extra-small (0.75rem) up to 6xl (3.75rem). * `--text-xs: 0.75rem; /* 12px */ --text-xs--line-height: 20px; --text-xs--line-height-tight: 16px; --text-xs--line-height-loose: 24px;` * `--text-sm: 0.875rem; /* 14px */ --text-sm--line-height: 24px; --text-sm--line-height-tight: 20px; --text-sm--line-height-loose: 28px;` * `--text-md: 1rem; /* 16px */ --text-md--line-height: 28px; --text-md--line-height-tight: 24px; --text-md--line-height-loose: 32px;` * `--text-lg: 1.125rem; /* 18px */ --text-lg--line-height: 28px; --text-lg--line-height-tight: 24px; --text-lg--line-height-loose: 32px;` * `--text-xl: 1.25rem; /* 20px */ --text-xl--line-height: 32px; --text-xl--line-height-tight: 28px; --text-xl--line-height-loose: 36px;` * `--text-2xl: 1.5rem; /* 24px */ --text-2xl--line-height: 36px; --text-2xl--line-height-tight: 32px; --text-2xl--line-height-loose: 40px;` * `--text-3xl: 1.875rem; /* 30px */ --text-3xl--line-height: 44px; --text-3xl--line-height-tight: 40px; --text-3xl--line-height-loose: 48px;` * `--text-4xl: 2.5rem; /* 40px */ --text-4xl--line-height: 44px; --text-4xl--line-height-tight: 40px; --text-4xl--line-height-loose: 48px;` * `--text-5xl: 3rem; /* 48px */ --text-5xl--line-height: 60px; --text-5xl--line-height-tight: 56px; --text-5xl--line-height-loose: 64px;` * `--text-6xl: 3.75rem; /* 60px */ --text-6xl--line-height: 72px; --text-6xl--line-height-tight: 64px; --text-6xl--line-height-loose: 80px;` Each size has associated line-height tokens (e.g. `-text-md--line-height` = 28px) and tighter/looser variants. Each token above can be overridden in your theme to customise the look and feel of the cart. They work together to ensure consistent design: primitives set the base colours, semantic tokens apply them to UI elements, and component tokens handle shapes and typography. ## **Complete example** The following CSS and JSON blocks bring together primitive, semantic, and component tokens into a single working theme definition. It covers colours, typography, spacing, and component shapes, and shows how a named theme is structured and applied to your storefront. ### Step 1: Define your theme in Brand Tokens Add the following to the **Brand Tokens** field under **Settings > Brand Settings (**`CSS` Example): <CodeGroup> ```css CSS theme={null} [data-theme="yourbrand"] { /* Core colors */ --color-core-canvas: #f8f9fc; --color-core-surface: #ffffff; --color-core-base: #374151; --color-core-display: #111827; --color-core-muted: #6b7280; --color-core-faint: #d1d5db; --color-core-skeleton: rgba(0, 0, 0, 0.06); --color-core-overlay: rgba(0, 0, 0, 0.45); --color-core-overlay-contrast: #ffffff; /* Control colors */ --color-control-default: #1d4ed8; --color-control-default-contrast: #ffffff; --color-control-default-delta: #1e40af; --color-control-muted: #eff6ff; --color-control-muted-contrast: #1d4ed8; --color-control-stroke: #d1d5db; --color-control-stroke-delta: #9ca3af; /* Primary colors */ --color-primary-default: #1d4ed8; --color-primary-default-stop: #1d4ed8; --color-primary-default-delta: #1e40af; --color-primary-default-contrast: #ffffff; --color-primary-muted: #eff6ff; --color-primary-muted-contrast: #1d4ed8; /* Secondary colors */ --color-secondary-default: #f3f4f6; --color-secondary-default-stop: #f3f4f6; --color-secondary-default-delta: #e5e7eb; --color-secondary-default-contrast: #111827; /* Neutral colors */ --color-neutral-default: #6b7280; --color-neutral-default-delta: #4b5563; --color-neutral-default-contrast: #ffffff; --color-neutral-muted: #f3f4f6; --color-neutral-muted-delta: #e5e7eb; --color-neutral-muted-contrast: #111827; --color-neutral-stroke: #e5e7eb; --color-neutral-stroke-delta: #d1d5db; /* Promo colors */ --color-promo-default: #7c3aed; --color-promo-default-contrast: #ffffff; --color-promo-muted: #f5f3ff; --color-promo-muted-contrast: #7c3aed; /* Danger colors */ --color-danger-default: #dc2626; --color-danger-default-delta: #b91c1c; --color-danger-default-contrast: #ffffff; --color-danger-muted: #fef2f2; --color-danger-muted-contrast: #dc2626; /* Warning colors */ --color-warning-default: #d97706; --color-warning-default-contrast: #78350f; --color-warning-muted: #fffbeb; --color-warning-muted-contrast: #92400e; /* Success colors */ --color-success-default: #16a34a; --color-success-default-contrast: #ffffff; --color-success-muted: #f0fdf4; --color-success-muted-contrast: #15803d; /* Info colors */ --color-info-default: #0284c7; --color-info-default-contrast: #ffffff; --color-info-muted: #f0f9ff; --color-info-muted-contrast: #0369a1; /* Corner radii */ --button-radius: 8px; --control-radius: 8px; --badge-radius: 999px; --image-radius: 8px; --card-radius: 12px; --message-radius: 8px; /* Stroke width */ --stroke-icon: 1.75px; --stroke-badge: 2px; /* Letter spacing */ --tracking-normal: 0em; --tracking-tight: -0.02em; --tracking-wide: 0.05em; /* Display font */ --font-display-weight: 700; --font-display-transform: none; --font-display-tracking: var(--tracking-tight); --font-display-bold-weight: 800; --font-display-bold-transform: none; --font-display-bold-tracking: var(--tracking-tight); } ``` </CodeGroup> ### Step 2: Apply your theme in UI Metadata Add the following to the **Brand Meta (UI Metadata)** field under **Settings > Brand Settings (**`JSON` Example): <CodeGroup> ```json JSON theme={null} { "@context.*.theme": "yourbrand" } ``` </CodeGroup> ### Step 3: Load a custom font (optional) To use a custom font alongside your theme, add the font URL as a data property in the same UI Metadata field **(**`JSON` Example): <CodeGroup> ```json JSON theme={null} { "@context.*.theme": "yourbrand", "@data.displayFontLink": "https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&display=swap" } ``` </CodeGroup> ## Error handling and invalid values CSS variable overrides in Cart 2.0 do not produce visible errors when an invalid value is used. The browser will silently ignore any unrecognised or malformed value and fall back to the inherited default for that token. This means a typo or unsupported value will not break your storefront's layout, but the styling change will have no effect, which can be easy to miss. `CSS` **Example:** <CodeGroup> ```css CSS theme={null} [data-theme="webcentral"] { --color-primary-default: brandblue; } ``` </CodeGroup> `brandblue` is not a valid CSS colour value. The browser will ignore it and fall back to the default primary colour already defined in the theme. No error will appear in the UI. **Common mistakes to watch for:** * Using an invalid colour format (e.g. `brandblue` instead of a hex, RGB, or HSL value). * Missing the `px` unit on spacing or radius tokens (e.g. `-button-radius: 32` instead of `-button-radius: 32px`). * A typo in the token name (e.g. `-color-primary-defualt` instead of `-color-primary-default`) — The token is silently skipped, and the default value is used. * Applying a token outside its `[data-theme]` block can cause it to override the wrong theme or apply globally when not intended. * Mismatched theme name between Brand Tokens and the `@context.theme` value in UI Metadata — If the names do not match exactly, no theme tokens will be applied. The safest way to confirm a token is working is to inspect the element in your browser's developer tools after saving, and verify that the CSS variable resolves to the expected value rather than falling back to the default. # Using the Decision Guide Source: https://docs.upmind.com/using-cart-20/choosing-what-to-implement-for-your-business/using-the-decision-guide A practical guide to choosing the right Cart 2.0 implementation approach for your business. * **Time** — 8 minutes * **Difficulty** — Beginner **What You'll Learn:** A clear picture of which Cart 2.0 implementation path, Ready-made Cart, Headless, or API-only, best fits your launch timeline, UX requirements, and engineering capacity, so you can move forward with confidence. **Prerequisites:** * An active [Upmind account](https://upmind.com/start). * Basic familiarity with Cart 2.0[.](https://www.notion.so/Using-the-Decision-Guide-2f5782386d4180fe8bfccca7ac0ad965?pvs=21) * A general sense of your business goals, launch timeline, and available engineering resources. Upmind Cart 2.0 is designed so that there is **no single correct way** to implement. The right approach depends on how quickly you want to launch, how much control you need over the user experience, and how much engineering capacity you have. This section helps you decide by breaking down each option, comparing them side by side, and showing real-world scenarios. The key idea to keep in mind is progression. Many users start with one approach and move to another later without rebuilding pricing rules, promotions, or order logic. ## Decision guide Start by answering a few simple questions: **For new users:** * Do you want to sell as soon as possible with minimal setup? * Do you need full control over layout, flow, and interaction? * Are you integrating into an existing frontend or platform? * Do you expect requirements to grow over time? **For existing users:** * Are you planning a storefront refresh or brand update? * Do you want more flexibility over layout and presentation without custom frontend work? * Are you looking to adopt newer UI capabilities as part of your roadmap? * Do you want a more unified experience across catalogue, checkout, and the client portal? * Are you aiming to standardise your checkout experience across multiple brands or domains? If speed is the priority, choose a ready-made path. If control and differentiation matter more, choose a headless or API-first path. If you are unsure, start small and evolve. | **Approach** | **Time to launch** | **UX control** | **Engineering effort** | **Best for** | | ------------------------ | ------------------ | -------------- | ---------------------- | ---------------------------------------------------------------------------- | | **Ready-made Cart** | Fast | Medium | Low | Most customers, fast store launch, built in payments and portal. | | **Headless + Custom UI** | Slower | Very high | High | Product-led or design-driven teams with full custom checkout flows. | | **API only** | Slowest | Full | Very high | Enterprise integrators or legacy frontends that own all UI and orchestration | ### Ready-made cart This approach uses the hosted Cart 2.0 storefront and checkout as provided, with branding and behaviour configured through metadata. **Best characteristics:** * A complete shopping and checkout experience available out of the box. * Built-in support for payments, taxes, localisation, and scaling. * Configuration-driven setup that avoids custom frontend development. **Trade-offs:** * Layout and flow follow the Cart’s established structure. * Deeper interaction or flow changes may require moving to a headless approach later. **Typical use:** A business launches a new store quickly, customising text, colours, layout visibility, and messaging through metadata rather than code. ### Headless plus custom UI This approach uses Upmind’s headless composables and state machines alongside a fully custom frontend. **Best characteristics:** * Full control over layout, flow, and interaction design. * Commerce logic, validation, and rules remain managed by Upmind. * Predictable flow orchestration through state machines. **Trade-offs:** * Requires frontend engineering expertise. * Longer build, testing, and iteration cycles. **Typical use:** A product team designs a bespoke configuration or checkout experience that aligns closely with a custom brand, workflow, or product model. ### API only This approach integrates directly with the Upmind REST API, with all orchestration handled by the customer’s own systems. **Best characteristics:** * Complete control over both UI and backend integration. * Fits well into large or existing platforms with established architectures. * No dependency on Upmind UI layers. **Trade-offs:** * Highest engineering and maintenance investment. * Teams are responsible for sequencing, retries, validation, and edge cases. **Typical use:** An enterprise platform integrates Upmind as one service within a broader ecosystem, alongside other internal systems and services. # Applying Accessibility Considerations Source: https://docs.upmind.com/using-cart-20/customizing-and-theming-your-cart/applying-accessibility-considerations An overview of how Cart 2.0 handles accessibility through themes, design tokens, and consistent interaction patterns. * **Time** — 8 minutes * **Difficulty** — Beginner **What You'll Learn:** A clear understanding of Cart 2.0's accessibility model, including the three built-in accessibility themes, how they work through design tokens, and how to apply or extend them, so your storefront can meet diverse user needs without touching checkout logic or flow. **Prerequisites** * An active [Upmind account](https://upmind.com/start) with Cart 2.0 enabled. * A read-through of [<u>Setting Up Theming with CSS Variables</u>](/using-cart-20/choosing-what-to-implement-for-your-business/setting-up-theming-with-css-variables) to understand how themes and design tokens are defined and applied. * A basic awareness of web accessibility standards (WCAG) is helpful but not required. ## Accessibility considerations Accessibility in Cart 2.0 is treated as a first-class concern, not an afterthought. The Cart’s metadata-driven theming model makes it possible to design inclusive experiences that meet diverse user needs, while keeping commerce logic stable and centralised. Rather than hardcoding accessibility decisions into UI logic, Cart 2.0 approaches accessibility through **themes, tokens, and consistent interaction patterns**, allowing accessibility improvements to evolve independently over time. ## Theme-based accessibility model Cart 2.0 supports the definition of **multiple themes**, each of which can be specialised for different accessibility requirements. A theme controls visual presentation through design tokens such as colours, contrast ratios, typography, spacing, and emphasis states. This approach enables teams to: * Design accessibility as a deliberate, configurable layer. * Support different user needs without duplicating UI logic. * Improve accessibility incrementally without restructuring checkout flows. While Cart 2.0 does not currently ship with a user-facing theme switcher, the underlying architecture supports multiple themes. Introducing a theme selector, either automatically or via user choice, is technically straightforward and can be implemented when required. ## Accessibility themes provided by Upmind Out of the box, Upmind provides **three accessibility-focused themes** specialised for various **A11y** requirements that teams can adopt immediately or use as a baseline for further customisation. ### 1. High-Contrast Light Mode This theme is designed for users who require a strong contrast while preferring a light background. Key characteristics include: * High contrast between text and background to improve readability. * Clear visual separation between sections, inputs, and actions. * Strong focus and hover states for interactive elements. * Reduced reliance on subtle colour differences to convey meaning. This theme is particularly suitable for users with low vision or those using checkout in bright environments. ### 2. High-Contrast Dark Mode This theme provides a dark interface with carefully balanced contrast, optimised for accessibility rather than aesthetics alone. Key characteristics include: * Dark backgrounds paired with high-contrast foreground elements. * Text and controls that meet contrast guidelines without eye strain. * Clear focus indicators and active states in dark contexts. * Improved legibility for prolonged use or low-light environments. This is not a purely stylistic dark mode; it is explicitly tuned for accessibility and readability. ### 3. Reduced-Saturation / High-Contrast Colorblind-Friendly Theme This theme is designed to support users with colour vision deficiencies. Key characteristics include: * Reduced reliance on hue alone to convey meaning. * Higher contrast and clearer separation between UI states. * Emphasis on shape, spacing, labels, and icons over colour. * Safer colour combinations for common forms of colour blindness. This theme ensures that important actions, errors, and confirmations remain clear regardless of colour perception. ## How accessibility themes work in practice Accessibility themes in Cart 2.0 are implemented through **design tokens and metadata**, not custom code. This means: * Switching themes does not affect pricing, checkout flow, or validation logic. * The same UI structure can be rendered differently based on theme selection. * Accessibility improvements can be rolled out without engineering-heavy changes. Themes apply consistently across: * Catalogue * Configuration steps * Basket * Checkout * Confirmation pages This consistency helps users build familiarity and reduces cognitive load throughout the buying journey. ## Theme switching and future extensibility At present, Cart 2.0 does not expose a built-in theme switcher to end users. However: * Multiple themes can already be defined and maintained. * Switching logic can be introduced at the application or platform level. * Theme selection could be driven by user preference, system settings, or account-level configuration. Because Cart 2.0 separates UI presentation from commerce logic, adding theme switching does not require reworking checkout behaviour or state management. ## Beyond colour and contrast While themes primarily address visual accessibility, Cart 2.0 also benefits from broader accessibility improvements driven by its architecture: * Consistent layout and spacing reduce cognitive friction. * Predictable flow steps improve screen reader navigation. * Clear state handling (loading, error, success) improves comprehension. * Centralised messaging ensures consistent guidance and feedback. These improvements are structural, not cosmetic, and apply regardless of which theme is used. # Configuring Options in Cart and Portal Source: https://docs.upmind.com/using-cart-20/customizing-and-theming-your-cart/configuring-options-in-cart-and-portal A full reference for everything you can customise in Cart 2.0's storefront and Client Portal, from layouts and copy to styling and feature toggles. * **Time** — 20 minutes * **Difficulty** — Intermediate **What You'll Build:** A clear understanding of every configurable element across the Cart and Client Portal, including page templates, product layouts, content overrides, design tokens, and feature visibility settings, so you can shape the customer experience from first browse through to post-purchase account management. **Prerequisites:** * An active [Upmind account](https://upmind.com/start) with Cart 2.0 enabled. * Access to **Settings > Brand Settings** in your Upmind admin panel. * A read-through of [Configuring Your Store with UI Metadata](/using-cart-20/choosing-what-to-implement-for-your-business/configuring-your-store-with-ui-metadata) to understand how context and data settings work. * A read-through of [<u>Setting Up Theming with CSS Variables</u>](/using-cart-20/choosing-what-to-implement-for-your-business/setting-up-theming-with-css-variables) to understand how design tokens are applied. * Basic familiarity with JSON and CSS syntax. Cart 2.0 is designed to adapt to your brand and product model rather than forcing your business to adapt to a fixed checkout. Customisation is handled through a combination of **UI metadata**, **design tokens**, and **component-level configuration**, giving teams control without fragmenting logic or introducing fragile overrides. This section covers what can be customized in the **Cart** and the **Client Portal**. ## What is configurable in the Cart The Cart is the customer-facing purchase experience, from browsing products to confirmation. Nearly every visible and behavioural element can be adjusted without rewriting core logic. You can configure the following: 1. Layout and structure 2. Content and copy 3. Visual styling and branding 4. Feature visibility and behaviour ### 1. Layout and structure #### **Templates** Templates can be set on the various contexts to allow users to customise pages in their store with different layouts. These are configured through the **UI Schema** in your brand settings. The setting key follows this format: ```text theme={null} @context.{page}.template ``` These can be set globally (`*`) to apply that template to all applicable pages. `JSON` **Example:** <CodeGroup> ```json JSON theme={null} { "@context.*.template": = "two-column-ltr" } ``` </CodeGroup> Or by `{page}` context specifically, such as (`@context.checkout.template`) for the checkout page to use the "full" template. `JSON` **Example:** <CodeGroup> ```json JSON theme={null} { "@context.checkout.template": = "full" } ``` </CodeGroup> This sets every page to use the **Two Column (Left-to-Right)** template. You can then override individual pages by also specifying their specific context. * @context.\*.template = two-column-ltr > all pages default to this * @context.auth.template = canvas-card > login/register pages override to this `JSON` **Example:** <CodeGroup> ```json JSON theme={null} { "@context.*.template": = "two-column-ltr", "@context.auth.template": = "canvas-card" } ``` </CodeGroup> In this example, every page uses the two-column layout except the login and registration pages, which use the centred card style instead. * **Login & Registration (auth)** | **Template Value** | | -------------------------- | | `two-column-ltr` (Default) | | `two-column-rtl` | | `split` | | `canvas-card` | | `surface-box` | | `enclosed` | <Note> Auth template context does not support `full` template. </Note> `JSON` **Example**: Registration (Split) - Full-width horizontal split. No header or footer visible. Clean, minimal design with the form centred. <CodeGroup> ```json JSON theme={null} { "@context.auth.template": "split" } ``` </CodeGroup> <Frame> <img alt="Split registration layout" /> <img alt="Split registration layout" /> <img alt="Split registration layout" /> </Frame> * **Product Configuration (configure)** | **Template Value** | | -------------------------- | | `two-column-rtl` (Default) | | `two-column-ltr` | | `full` | | `enclosed` | `JSON` **Example**: Product Configuration (full) - Full-width single column. All configuration options and product details stack vertically. Good for simple products with few options. <CodeGroup> ```json JSON theme={null} { "@context.configure.template": "full" } ``` </CodeGroup> <Frame> <img alt="Full configure layout" /> <img alt="Full configure layout" /> <img alt="Full configure layout" /> </Frame> * **Basket (basket)** | **Template Value** | | -------------------------- | | `two-column-ltr` (Default) | | `two-column-rtl` | | `full` | | `enclosed` | `JSON` **Example**: Basket (two-column-rtl) - Order summary on the left, product list on the right. <CodeGroup> ```json JSON theme={null} { "@context.basket.template": "two-column-rtl" } ``` </CodeGroup> <Frame> <img alt="Two column right to left basket layout" /> <img alt="Two column right to left basket layout" /> <img alt="Two column right to left basket layout" /> </Frame> * **Checkout (checkout)** | **Template Value** | | -------------------------- | | `two-column-ltr` (Default) | | `two-column-rtl` | | `full` | | `enclosed` | `JSON` **Example**: Checkout (enclosed) - Checkout content wrapped in a card container. Gives a self-contained, focused checkout experience. <CodeGroup> ```json JSON theme={null} { "@context.checkout.template": "enclosed" } ``` </CodeGroup> <Frame> <img alt="Enclosed checkout layout" /> <img alt="Enclosed checkout layout" /> <img alt="Enclosed checkout layout" /> </Frame> * **Billing Details (billing\_details)** | **Template Value** | | -------------------------- | | `two-column-ltr` (Default) | | `two-column-rtl` | | `full` | | `enclosed` | `JSON` **Example**: Billing details (full) - Full-width single column. <CodeGroup> ```json JSON theme={null} { "@context.billing_details.template": "full" } ``` </CodeGroup> <Frame> <img alt="Full billing details layout" /> <img alt="Full billing details layout" /> <img alt="Full billing details layout" /> </Frame> * Order Confirmation (confirmation) | **Template Value** | | -------------------------- | | `two-column-ltr` (Default) | | `two-column-rtl` | | `full` | | `enclosed` | `JSON` **Example**: Order Confirmation (full) - Full-width single column. <CodeGroup> ```json JSON theme={null} { "@context.confirmation.template": "full" } ``` </CodeGroup> <Frame> <img alt="Full confirmation layout" /> <img alt="Full confirmation layout" /> <img alt="Full confirmation layout" /> </Frame> **Appendix: Template Page Contexts** | **Context** | **Definitions** | **Configuration Key** | **Applies To** | | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- | ----------------------------------------------------- | | auth | The context for login, registration, and password recovery pages. It has the widest selection of available templates, giving you the most control over the first impression customers get when accessing your store. | @context.auth.template | Login, Registration, and Password Recovery pages | | configure | The context for the product configuration page, where customers select options, choose billing terms, and fill in any required provisioning fields. | @context.configure.template | Product Configuration page | | basket | The context for the basket page, where customers review their selected products, quantities, and totals before moving to checkout. | @context.basket.template | Basket / Cart page | | checkout | The context for the checkout page, where customers enter payment details and complete their purchase. | @context.checkout.template | Checkout / Payment page | | billing\_details | The context for the standalone billing details page, where customers enter or update the billing information tied to their account. | @context.billing\_details.template | Standalone Billing Details page | | confirmation | The context for the order confirmation page, shown to customers after a successful purchase. | @context.confirmation.template | Order Confirmation page | | catalogue | The context for the product catalogue page, where customers browse available products and categories. | @context.catalogue.template | Product Catalogue listing page | | recommendations | The context for the product recommendations page, where suggested or related products are shown to customers during the buying journey. | @context.recommendations.template | Recommendations / Cross-sell page | | \* (wildcard) | A global context that applies a setting across all pages at once. Any page with its own specific context setting will take precedence over the wildcard value. | @context.\*.template | All pages simultaneously (can be overridden per-page) | **Appendix: Template Properties** | **Context** | **Component** | **Template Enum** | Type | **Default** | **Template Enum Values** | | ---------------- | ----------------------------- | ------------------------- | ------ | -------------- | ------------------------------------------------------------------------------------- | | auth | `session/Login.vue` | `SESSION_TEMPLATE` | String | two-column-ltr | `split`, `enclosed`, `canvas-card`, `surface-box`, `two-column-ltr`, `two-column-rtl` | | auth | `session/Register.vue` | `SESSION_TEMPLATE` | String | two-column-ltr | `split`, `enclosed`, `canvas-card`, `surface-box`, `two-column-ltr`, `two-column-rtl` | | auth | `session/RecoverPassword.vue` | `SESSION_TEMPLATE` | String | two-column-ltr | `split`, `enclosed`, `canvas-card`, `surface-box`, `two-column-ltr`, `two-column-rtl` | | basket | `basket/Basket.vue` | `BASKET_TEMPLATE` | String | two-column-rtl | `full`, `two-column-ltr`, `two-column-rtl`, `enclosed` | | checkout | `checkout/Checkout.vue` | `CHECKOUT_TEMPLATE` | String | two-column-rtl | `full`, `two-column-ltr`, `two-column-rtl`, `enclosed` | | billing\_details | `billing/Billing.vue` | `BILLING_TEMPLATE` | String | - | `full`, `two-column-ltr`, `two-column-rtl`, `enclosed` | | configure | `product/Configure.vue` | `PRODUCT_TEMPLATE` | String | two-column-rtl | `full`, `two-column-ltr`, `two-column-rtl`, `enclosed` | | confirmation | `order/Order.vue` | `ORDER_TEMPLATE` | String | - | `full`, `two-column-ltr`, `two-column-rtl`, `enclosed` | | basket (edit) | `basket-product/Edit.vue` | `BASKET_PRODUCT_TEMPLATE` | String | | `full`, `two-column-ltr`, `two-column-rtl`, `enclosed` | #### Other layout and structure settings You can control how pages are structured across contexts such as catalogue, configuration, basket, checkout, and confirmation. These changes are driven by **context settings**, allowing different behaviour on different screens without duplication. Configurable elements include: **JSON Examples** * Product listing layout (grid, list, column count by viewport). The product catalogue list appears with a 2-column layout. The default is a `3-column layout`. `JSON` **Example**: productListLayout column. <CodeGroup> ```json JSON theme={null} { "@context.catalogue.productListLayout": "2-col" } ``` </CodeGroup> <Frame> <img alt="2 column product catalogue list layout" /> <img alt="2 column product catalogue list layout" /> <img alt="2 column product catalogue list layout" /> </Frame> * Visibility of sections such as categories, recommendations, or breadcrumbs. Breadcrumbs can be hidden globally. It is `visible` by default. `JSON` **Example**: Breadcrumbs visibility. <CodeGroup> ```json JSON theme={null} { "@context.*.breadcrumbs": "hidden" } ``` </CodeGroup> <Frame> <img alt="Breadcrumbs hidden on category" /> <img alt="Breadcrumbs hidden on category" /> <img alt="Breadcrumbs hidden on category" /> </Frame> * Placement of summaries, totals, and action buttons. Even when product options are selected, these will not show in your configuration summary. The default is `visible`. `JSON` **Example**: productConfigOptionsSummary visibility. <CodeGroup> ```json JSON theme={null} { "@context.*.productConfigOptionsSummary": "hidden" } ``` </CodeGroup> <Frame> <img alt="Product configuration option summary hidden" /> <img alt="Product configuration option summary hidden" /> <img alt="Product configuration option summary hidden" /> </Frame> * Step ordering and visibility within the checkout flow. Basket items can be visible in the checkout. The default is `hidden`. `JSON` **Example**: basketItems visibility. <CodeGroup> ```json JSON theme={null} { "@context.checkout.basketItems": "visible" } ``` </CodeGroup> <Frame> <img alt="Basket items in checkout visibility" /> <img alt="Basket items in checkout visibility" /> <img alt="Basket items in checkout visibility" /> </Frame> * Control how product options are displayed and selected by the customer. Renders the option selector in particular layouts. The default is `radio-rows`. `JSON` **Example**: optionSelector structure. <CodeGroup> ```json JSON theme={null} { "@context.configure.optionSelector": "select" } ``` </CodeGroup> <Frame> <img alt="Select option selector" /> <img alt="Select option selector" /> <img alt="Select option selector" /> </Frame> * Set the number of columns in the option selector when using the `radio-grid` layout. Displays option cards in a column grid, adjustable from 1 to 4 columns to suit your product listing layout. The default is `2-col`. `JSON` **Example**: optionSelectorGrid columns. <CodeGroup> ```json JSON theme={null} { "@context.configure.optionSelectorGrid": "3-col" } ``` </CodeGroup> <Frame> <img alt="3-col option selector grid" /> <img alt="3-col option selector grid" /> <img alt="3-col option selector grid" /> </Frame> * Toggle the visibility of icons displayed alongside each selectable option. Option icons are `visible` by default. You can hide them to display option labels only. `JSON` **Example**: optionSelectorIcons visibility. <CodeGroup> ```json JSON theme={null} { "@context.configure.optionSelectorIcons": "hidden" } ``` </CodeGroup> * Assign a display name to a group of options when using the select-grouped selector layout. Shows a labelled group heading within the grouped dropdown, making it easier for customers to scan and identify related options. `JSON` **Example**: optionGroupLabel. <CodeGroup> ```json JSON theme={null} { "@data.optionGroupLabel": } ``` </CodeGroup> * Assign an icon to an option group, displayed next to the group label in a `select-grouped` layout. Shows a visual icon beside the group label to help customers quickly identify and differentiate option categories. `JSON` **Example**: optionGroupIcon. <CodeGroup> ```json JSON theme={null} { "@data.optionGroupIcon": "rocket" } ``` </CodeGroup> * Control how billing term options (e.g., monthly, yearly) are presented to the customer. Renders billing terms structure accordingly. The default is `radio-grid`. `JSON` **Example**: termSelector structure. <CodeGroup> ```json JSON theme={null} { "@context.configure.termSelector": "select" } ``` </CodeGroup> <Frame> <img alt="termSelector select" /> <img alt="termSelector select" /> <img alt="termSelector select" /> </Frame> * Set the number of columns in the term selector when using the `radio-grid` layout. Display billing term cards in various columns. The default is `2-col`. `JSON` **Example**: termSelectorGrid columns. <CodeGroup> ```json JSON theme={null} { "@context.configure.termSelectorGrid": "3-col" } ``` </CodeGroup> <Frame> <img alt="termSelectorGrid 3 column" /> <img alt="termSelectorGrid 3 column" /> <img alt="termSelectorGrid 3 column" /> </Frame> * Toggle the visibility of the billing summary shown beneath the selected term. Show a cost summary line (e.g., "Pay $12.00 today, then $X.XX/mo"). The default is `visible.` `JSON` **Example**: termSelectorSummary visibility. <CodeGroup> ```json JSON theme={null} { "@context.configure.termSelectorSummary": "hidden" } ``` </CodeGroup> ### 2. Content and copy All user-facing text is controlled through **i18n configuration in UI metadata.** Content can be overridden at brand, category, product, or option level, allowing targeted messaging where it matters most. This includes: **CSS Examples** * Headings and subheadings. You can change the colour of headings in your cart. `CSS` **Example**: Text colour display of headings. <CodeGroup> ```css CSS theme={null} { --text-display: #d72929; } ``` </CodeGroup> <Frame> <img alt="Updated title color" /> <img alt="Updated title color" /> <img alt="Updated title color" /> </Frame> * Button labels and call-to-action text. Colour can be changed on the text on the primary buttons. `CSS` **Example**: Colour display of primary buttons. <CodeGroup> ```css CSS theme={null} { --text-button-primary: #ff6363; } ``` </CodeGroup> <Frame> <img alt="Updated button color" /> <img alt="Updated button color" /> <img alt="Updated button color" /> </Frame> * Empty-state messages. Colour can be changed on the text when the basket is empty. `CSS` **Example**: Core text colour change display. <CodeGroup> ```css CSS theme={null} { --color-core-display: #ed1111; } ``` </CodeGroup> <Frame> <img alt="Empty basket color change" /> <img alt="Empty basket color change" /> <img alt="Empty basket color change" /> </Frame> * Informational banners and notices. * Legal text references. You can create your store's terms and conditions. For more information, follow this [guide](/setup-and-configuration/other-setup-items/how-to-create-terms-and-conditions). `CSS` **Example**: Core colour of legal texts. <CodeGroup> ```css CSS theme={null} { --color-core-base: #ed1111; } ``` </CodeGroup> <Frame> <img alt="Legal text color change" /> <img alt="Legal text color change" /> <img alt="Legal text color change" /> </Frame> **JSON Examples** * Assign a custom image URL to a specific product option, displayed within the option selector. Show the specified image alongside the option label, giving customers a visual reference for each selectable product option. `JSON` **Example**: optionImgUrl. <CodeGroup> ```json JSON theme={null} { "@data.optionImgUrl": } ``` </CodeGroup> ### 3. Visual styling and branding Cart styling is controlled through **design tokens** rather than fixed CSS overrides. Because tokens are semantic, updating a primary colour or font updates the entire cart consistently, including complex components like summaries and modals. You can configure: **CSS Examples** * Brand colours and accents. `CSS` **Example**: Canvas colour. <CodeGroup> ```css CSS theme={null} { --color-core-canvas: #a0c3ff; } ``` </CodeGroup> <Frame> <img alt="Updated canvas color" /> <img alt="Updated canvas color" /> <img alt="Updated canvas color" /> </Frame> * Typography scale and font families. You can change the font weight for display texts. Increase for bolder headings. `CSS` **Example**: Font weight for display text. <CodeGroup> ```css CSS theme={null} { --font-display-weight: 1000; } ``` </CodeGroup> <Frame> <img alt="Font weight display" /> <img alt="Font weight display" /> <img alt="Font weight display" /> </Frame> * Spacing and border radius. * Button styles and variant colour values. You can change the primary button backgrounds, main CTAs, and key accent elements. Gradients can also be updated. `CSS` **Example**: Button primary colour. <CodeGroup> ```css CSS theme={null} { --color-primary-default: #d60e0e; } ``` </CodeGroup> <Frame> <img alt="Primary button color" /> <img alt="Primary button color" /> <img alt="Primary button color" /> </Frame> * Badges and highlight styles. Bold promotional background for discount badges. `CSS` **Example**: Default promo colour. <CodeGroup> ```css CSS theme={null} { --color-promo-default: #43d106; } ``` </CodeGroup> <Frame> <img alt="Default promo color" /> <img alt="Default promo color" /> <img alt="Default promo color" /> </Frame> ### 4. Feature visibility and behaviour Cart features can be enabled or disabled per context. This allows a checkout flow that feels intentional rather than generic. Examples include: **JSON Examples** * Showing or hiding product images. Product images in recommendations can be hidden from the customer's view. The default is `visible`. `JSON` **Example**: productImages visibility. <CodeGroup> ```json JSON theme={null} { "@context.recommendations.productImages": "hidden" } ``` </CodeGroup> <Frame> <img alt="Product images hidden in recommendations" /> <img alt="Product images hidden in recommendations" /> <img alt="Product images hidden in recommendations" /> </Frame> * Displaying or suppressing recommendations. Change the product style to `flush` and `carded`. `JSON` **Example**: productStyle carded. <CodeGroup> ```json JSON theme={null} { "@context.recommendations.productStyle": "carded" } ``` </CodeGroup> <Frame> <img alt="Carded product style in recommendations" /> <img alt="Carded product style in recommendations" /> <img alt="Carded product style in recommendations" /> </Frame> * Controlling zero-price display behaviour. `JSON` **Example**: zeroPriceDisplay value. Zero-price products will display `0.00` globally. <CodeGroup> ```json JSON theme={null} { "@context.*.zeroPriceDisplay": "numeric" } ``` </CodeGroup> <Frame> <img alt="Zero-price display numeric" /> <img alt="Zero-price display numeric" /> <img alt="Zero-price display numeric" /> </Frame> ## What is configurable in the Client Portal The **Client Portal** is where customers manage services after purchase. It shares the same architectural principles as the **Cart** but focuses on account management rather than conversion. ### 1. Branding and layout Portal customisation includes: * Header and navigation structure. * Brand identity and colour system. * Page-level layout and spacing. * Consistent typography across account views. This ensures continuity between checkout and post-purchase experience. You can find more details on client area templates in this [guide](/setup-and-configuration/branding/how-to-create-client-area-templates). ### 2. Features You can configure the features in the portal: 1. **Billing history and invoices** The portal can provide full visibility into financial history, including: * Invoice listings with filtering and search. * Invoice downloads (PDF or hosted views). * Payment status indicators (paid, overdue, refunded). * Credit notes and adjustments. * Transaction history. This helps reduce support requests while giving customers transparency and self-service access to financial records. For more information, follow this guide on [billings](/client-self-service/client-area/how-do-my-clients-review-billings). 2. **Subscription controls** Customers can manage recurring services directly within the portal. Depending on your configuration, this can include: * Changing billing cycles. * Applying promotional codes. * Enabling or disabling auto-renew. * Managing upgrades and plan changes. * Viewing next billing dates and renewal pricing. This gives customers confidence and control over ongoing commitments. For more details on subscription control, you can follow the guide on [auto-renewals](/using-upmind/how-subscription-cancellation-works/turning-onoff-auto-renew). 3. **Payment method management** Customers can securely manage their payment details, including: * Adding new payment methods. * Updating card details. * Removing saved methods. * Selecting a default payment method. * Viewing stored payment methods for active subscriptions. All payment processing continues to be handled by Upmind’s integrated gateways, ensuring compliance and security. For more details on payment methods, follow this [guide](/client-self-service/client-area/how-do-my-clients-add-a-payment-method). 4. **Profile and security settings** The portal can also act as a customer account centre, allowing users to: * Update contact information. * Manage company details. * Configure tax or VAT information. (For the tax guide, find more information [here](/using-upmind/invoicing-and-taxes/how-to-set-sales-taxes-eg-vat-gst)). * Change passwords. (For the security guide, find more information [here](/client-self-service/client-area/how-do-my-clients-change-account-settings)). * Manage authentication settings (including SSO, where enabled). This centralises account management and reduces reliance on manual support intervention. ### 3. Messaging and guidance Portal messaging follows the same i18n-driven approach as the cart. While messaging capabilities will expand over time, current customisation is limited to text overrides rather than structural changes. Because the Portal and Cart share the same metadata and i18n foundation, messaging remains consistent across the storefront, checkout, and customer portal. # Understanding Cart 2.0 Source: https://docs.upmind.com/using-cart-20/getting-started-with-cart-20/understanding-cart-20 A breakdown of Cart 2.0's architecture, layers, and storefront changes over Cart 1.0. * **Time** — 8 minutes * **Difficulty** — Beginner **What You'll Learn:** A clear understanding of how Cart 2.0 is structured, what's changed from Cart 1.0, and how each layer of the cart system fits together to support your storefront and checkout experience. **Prerequisites:** * An active [Upmind account](https://upmind.com/start). * Familiarity with your current storefront setup (Cart 1.0 or otherwise). * Basic understanding of how products and categories are configured in Upmind. Upmind’s cart is a storefront and checkout system that provides a ready-made shopping experience you can run immediately, plus a set of reusable layers you can adopt as your needs grow. Each layer handles a clear responsibility, so users can pick only what they need. The layers include: * Cart & Portal - The ready-to-use customer interfaces where users browse products, manage accounts, and complete checkout. * Client Vue - A frontend starter framework that provides the structural building blocks needed to assemble cart and checkout experiences. * Upmind UI - The shared design system of reusable UI components used to ensure visual and interaction consistency. * Headless Upmind - A frontend-agnostic layer that exposes commerce logic and state so teams can build fully custom checkout experiences. * XState Machines - The internal workflow engines that manage checkout state, transitions, and edge cases behind the scenes. * Upmind API - The core backend APIs that power products, pricing, billing, subscriptions, orders, and payments. The result is a platform that supports multiple ways to sell: fast-launch hosted carts, full-featured client portals, and fully custom frontends, all using the same underlying commerce logic. This means you can mix and match approaches depending on your business needs, while ensuring consistency in pricing, configuration, and checkout behaviour. Below, we show the **major differences between Cart 1.0 and Cart 2.0**: ## Registration With Cart 2.0, the registration experience has been refined into a cleaner, faster, and more brand-aligned flow. <Frame> <img alt="Cart 1.0 registration" /> </Frame> Improved typography, spacing, and visual hierarchy make the page easier to scan and complete, reducing friction and helping customers register with greater confidence as part of a cohesive buying journey. <Frame> <img alt="Cart 2.0 registration" /> </Frame> ## Login In Cart 2.0, the login experience has been brought fully in line with the rest of the cart and checkout. <Frame> <img alt="Cart 1.0 login" /> </Frame> A clearer layout, improved typography, and better responsiveness create a more polished and reassuring experience that feels integrated with your storefront and reinforces trust in your brand. <Frame> <img alt="Cart 2.0 login" /> </Frame> ## Product categories Cart 2.0 enhances product categories with a more visual and informative category layout. <Frame> <img alt="Cart 1.0 product categories" /> </Frame> Clearer descriptions, improved spacing, and a more prominent position at the top of the store page help customers understand what’s available more quickly and navigate the catalogue with greater ease. <Frame> <img alt="Cart 2.0 product categories" /> </Frame> Users can get into individual category pages to browse and search products more easily. <Frame> <img alt="Cart 2.0 Individual category page" /> </Frame> Domain purchases are now simplified with a dedicated flow, allowing users to search and buy standalone domains directly through `/order/domains`. Exact matches for your search will also be provided. <Frame> <img alt="Cart 2.0 domain purchase flow" /> </Frame> ## Product catalogue With Cart 2.0, the catalogue experience moves to a lighter, more structured layout. The new catalogue introduces improved spacing, clearer visual hierarchy, and more flexible layouts. This makes products easier to scan and compare, while giving brands more control over presentation. <Frame> <img alt="Cart 1.0 product catalogue" /> </Frame> Promotional offers on products are also highlighted properly for customers to see. <Frame> <img alt="Cart 2.0 product catalogue" /> </Frame> ## Product configuration Cart 2.0 builds on the solid foundation of Cart 1.0 by introducing a clearer and more guided configuration flow. Layout improvements and a stronger visual structure make [product options](/using-upmind/product-management/how-to-add-product-options) and pricing changes easier to follow, especially for more complex products. <Frame> <img alt="Cart 1.0 product configuration" /> </Frame> The result is a smoother configuration experience with better clarity at each step. <Frame> <img alt="Cart 2.0 product configuration" /> </Frame> ## Recommendations/upsells In Cart 2.0, product recommendations are given a more prominent and intentional role in the buyer journey. The updated design adds clearer context, stronger visual cues, and better alignment with the surrounding content. <Frame> <img alt="Cart 1.0 product recommendations" /> </Frame> This helps upsells feel more relevant and integrated, rather than simply supplementary. <Frame> <img alt="Cart 2.0 product recommendations" /> </Frame> ## Basket In Cart 2.0, the basket experience has been simplified with a cleaner layout and clearer grouping, so customers can review items, options, and totals more quickly and make changes with confidence before checkout. <Frame> <img alt="Cart 1.0 basket" /> </Frame> You can also change the [currencies](/using-upmind/invoicing-and-taxes/about-multi-currency) here to update the real-time prices. <Frame> <img alt="Cart 2.0 basket" /> </Frame> The new **Empty Basket** screen is also shown when there are no items in the basket. <Frame> <img alt="Cart 1.0 empty basket" /> </Frame> <Frame> <img alt="Cart 2.0 empty basket" /> </Frame> ## Checkout The Cart 2.0 checkout builds on the foundation of the previous checkout with a simplified, modern layout that feels lighter and more fluid. <Frame> <img alt="Cart 1.0 checkout" /> </Frame> A clear order summary sits alongside well-structured personal and business detail sections, while improved typography and spacing create a faster, more reassuring checkout experience that stays fully aligned with your brand and helps reduce drop-off. <Frame> <img alt="Cart 2.0 checkout" /> </Frame> All the familiar checkout features from Cart 1.0 remain available in Cart 2.0, including address autocomplete for faster data entry. When autocomplete is not used, customers can always enter their address details manually. <Frame> <img alt="Cart 2.0 personal billing details" /> </Frame> <Frame> <img alt="Cart 2.0 business billing details" /> </Frame> ## Confirmation The order confirmation page shows your order details, payment choices, and basket items clearly. Clean spacing and simple icons make it easy to read and confirm your purchase. <Frame> <img alt="Order confirmation" /> </Frame> ## Templates Cart 2.0 provides custom layouts for store pages through templates that define structural arrangements of content, sidebars, headers, and footers. You can set different templates for different pages to create a fully customised storefront appearance: * Product catalogue * Product configuration * Recommendations * Basket * Auth (Registration, login, password recovery) * Billing details * Checkout * Confirmation ## New and improved loading screens The **Order Complete** screen is now split into three different screens: * Order conversion * Payment processing * Order confirmation <Frame> <img alt="Cart 1.0 order complete" /> </Frame> <Frame> <img alt="Cart 2.0 order conversion" /> </Frame> <Frame> <img alt="Cart 2.0 payment processing" /> </Frame> <Frame> <img alt="Cart 2.0 order confirmation" /> </Frame> The screen below appears when an item is added to the basket or when moving to checkout, indicating the basket is updating. <Frame> <img alt="Getting things ready" /> </Frame> # Understanding the Cart Architecture Source: https://docs.upmind.com/using-cart-20/getting-started-with-cart-20/understanding-the-cart-architecture A look at how Cart 2.0's modular layers fit together and what each one does. * **Time** — 10 minutes * **Difficulty** — Intermediate **What You'll Learn:** A solid understanding of Cart 2.0's layered architecture, from the customer-facing storefront down to the API, so you can make informed decisions about which layers to adopt based on your team's setup and business needs. **Prerequisites:** * An active [Upmind account](https://upmind.com/start). * Basic familiarity with Cart 2.0. * A general understanding of how storefronts and checkout flows work. * Some awareness of frontend concepts (helpful but not required for Beginner readers). ## The modular adoption philosophy Cart 2.0 is designed to be flexible and modular. You don’t have to commit to a fully hosted or fully custom setup all at once. Instead, you can adopt Upmind’s commerce stack **in layers**, at your own pace. ### What this means in practice * Use the hosted Cart and Portal when you want a complete, production-ready storefront and client area with fast launch and built-in payments, taxes, and scaling. * Adopt Client Vue and Upmind UI when you want to reuse Upmind's app shell and component set for a custom branded portal while still relying on Upmind logic. * Move to Headless with Vue composables and XState when you need full control over UI and flow but still want Upmind's commerce rules and orchestration. * Use the raw REST API if you need to integrate Upmind into an existing enterprise platform or centralised multi-brand system and are prepared to manage sequencing and state yourself. Each step builds on the same underlying system. ### Why this matters * Early-stage users can launch quickly. * Growing users can customise safely. * Mature teams can fully control UX * No migration is wasted work This philosophy reduces long-term risk while accelerating time to revenue. Many customers mix approaches. **Example**: Cart 2.0 for public sales and headless for enterprise portals. ## The Upmind modular stack <img alt="" /> 1. **Top layer (Customer Browser):** This is where buyers interact with your store and complete their purchase. Depending on your setup, this can be through the ready-made cart and checkout, or a fully custom user interface (UI). Regardless of approach, customers experience a consistent and guided buying journey. 2. **Experience layer:** This layer defines how the cart and checkout are presented to customers, allowing teams to choose the level of control that best fits their needs. * **Ready-made Cart & Checkout** provides a complete, out-of-the-box storefront and checkout flow with minimal setup. * **Custom UI (Headless)** enables full control over the user experience while reusing Upmind’s commerce logic. 3. **Upmind Client (Vue):** UI foundation that is used by the cart. It provides consistent components, styling patterns, and interaction behaviour, ensuring a unified experience across all customer-facing surfaces. 4. **Headless Logic Layer:** This layer handles core checkout orchestration using **Vue composables and XState**. It manages state, flow progression, validation, and transitions independently of how the UI is rendered. 5. **Upmind API:** The central source of truth for products, pricing, cart state, orders, payments, taxes, and customer data. All UI layers interact with the same APIs to ensure consistent and reliable commerce behaviour. 6. **UI Metadata:** Configuration that controls layout, visibility, copy, and behaviour across all UI surfaces. This allows teams to adjust and evolve the user experience without making code changes. ## Summary table | **Options** | **What it is** | **Setup Effort** | **UX Flexibility** | **Typical Use** | | -------------- | ------------------------------------------------------------------------------------- | ---------------- | ------------------ | ------------------------------------------------------------ | | **Cart** | Fully hosted, ready-made storefront and checkout with Upmind-managed UI and flow. | **Low** | **Medium** | Launch a complete checkout fast with minimal setup. | | **Upmind UI** | The shared visual layer used by the cart, driven by UI metadata. | **Low–Medium** | **Medium–High** | Control layout, copy, visibility, and branding without code. | | **Client Vue** | Upmind’s frontend client framework that renders cart, and UI states. | **Medium** | **High** | Extend or embed Upmind UI in more tailored experiences. | | **Headless** | Full control over checkout UI using Vue composables and XState logic. | **High** | **Very High** | Build a fully custom checkout and product flow. | | **API** | Direct access to all commerce primitives (products, pricing, cart, orders, payments). | **Very High** | **Maximum** | Deep platform integrations or non-UI use cases. | # Planning Your Migration Strategy Source: https://docs.upmind.com/using-cart-20/migrating-from-cart-10-to-cart-20/planning-your-migration-strategy A phased approach to migrating from Cart 1.0 to Cart 2.0 safely, with a full pre-launch checklist to validate before going live. * **Time** — 15 minutes * **Difficulty** — Intermediate **What You'll Learn:** A structured migration plan covering parallel running, sandbox testing, gradual rollout, and rollback steps, plus a complete checklist across products, pricing, promotions, taxes, theming, and more, so your team can switch to Cart 2.0 with confidence and minimal risk to live customers. **Prerequisites:** * An active [Upmind account](https://upmind.com/start) currently running Cart 1.0. * A read-through of [Understanding the Migration Overview](/using-cart-20/migrating-from-cart-10-to-cart-20/understanding-the-migration-overview) to understand the scope of changes before planning your approach. * Awareness of your current storefront setup, including products, pricing rules, promotions, tax configuration, and any active integrations or webhooks. * Access to a sandbox environment for pre-launch testing. * [Upmind Support](https://upmind.com/support) contact details in case rollback assistance is needed. A phased migration approach reduces risk, protects revenue, and allows teams to validate Cart 2.0 with confidence before fully switching live traffic. Rather than treating migration as a single cutover event, this strategy breaks the process into controlled stages that allow testing, observation, and rollback at each step. ## The Strategies ### Step 1: Parallel run A parallel run allows Cart 2.0 to be validated alongside Cart 1.0 without disrupting live customers. * **Cart 1.0 remains live during migration:** Existing checkout flows continue to operate normally while Cart 2.0 is prepared and verified. * **Cart 2.0 is enabled by Upmind as part of the migration process:** No changes are required from the customer unless explicitly requested. * **Behaviour can be validated without impacting customers:** Teams can review flows, pricing, and presentation before any traffic is switched. If a team chooses to use a separate checkout subdomain, a parallel URL can be provided for additional validation. This is optional and typically used for internal testing or stakeholder review, rather than a required migration step. ### Step 2: Sandbox testing Sandbox testing ensures that all commerce behaviour works as expected before exposing Cart 2.0 to live traffic. * **Use test products and payment gateways:** This allows teams to simulate full checkout flows without creating real orders. * **Validate pricing, taxes, promotions, and edge cases:** Special cases such as discounts, trials, and region-specific pricing should be reviewed. * **Confirm behaviour across devices and regions:** All device experiences should be tested with different locales and currencies. ### Step 3: Gradual rollout A gradual rollout reduces risk by introducing Cart 2.0 to real traffic in a controlled way. * **Monitor conversion, errors, and customer feedback:** Early signals help confirm that the new experience performs as expected. * **Expand usage once confidence is high:** Traffic can be increased once key metrics remain stable. ### Step 4: Rollback plan A clear rollback plan ensures that any issues can be resolved quickly and safely. * **Cart 1.0 configuration remains unchanged during migration:** This allows a reliable fallback at any point. * **Switching between Cart 1.0 and Cart 2.0 is managed by Upmind:** Customers do not need to manage routing or configuration changes. * **Reverting to Cart 1.0 can be done quickly with Support assistance:** Rollback does not require data changes or reconfiguration. No DNS or routing changes are required from the customer unless they have opted into a custom checkout subdomain. ## Migration checklist This checklist helps teams confirm readiness before go-live and reduces the risk of missed details. It should be reviewed during sandbox testing and again before switching to live traffic. ### 1. Products Confirm that the catalogue appears and behaves correctly in Cart 2.0. * All products are visible and ordered correctly in the catalogue. * Product descriptions, images, and labels are accurate. * Configuration steps render and validate as expected. ### 2. Pricing Ensure pricing behaviour matches existing expectations. * Billing cycles and renewal terms match the current setup. * Discounts, trials, and introductory pricing apply correctly. * Zero-price or free products display and behave correctly. ### 3. Promotions Validate that promotional logic carries over cleanly. * Promo codes validate and apply correctly. * Stacking rules and exclusions behave as expected. * Labels and badges display consistently across screens. ### 4. Domains Review domain-related flows where applicable. * Domain search and purchase flows work end to end. * Pricing and availability are accurate. * Existing domain paths resolve correctly. ### 5. Taxes Confirm tax handling across regions. * Inclusive or exclusive tax display is correct. * Regional tax rules calculate as expected. * Tax line items appear correctly in the basket and checkout. ### 6. Webhooks Verify downstream integrations. * Order and payment events fire correctly. * Connected systems receive updates as expected. * Retry and failure behaviour is confirmed. ### 7. Analytics Ensure visibility into performance and conversion. * Page views and conversion events are tracked. * Funnel steps are mapped correctly. * Any custom events are validated. ### 8. SSO Confirm authentication behaviour if applicable. * Login and account linking work correctly. * Sessions persist across checkout steps. * Redirects behave correctly after checkout completion. ### 9. Theming Review the final presentation across devices. * Brand colours and typography are applied correctly. * Device layouts are visually consistent. * Accessibility, contrast, and readability are checked. # Understanding the Migration Overview Source: https://docs.upmind.com/using-cart-20/migrating-from-cart-10-to-cart-20/understanding-the-migration-overview A clear breakdown of what changes, what stays the same, and what to review when moving from Cart 1.0 to Cart 2.0. * **Time** — 10 minutes * **Difficulty** — Beginner **What You'll Learn:** A clear picture of the scope and impact of migrating to Cart 2.0, covering data compatibility, URL continuity, payment flow changes, and any UI-level adjustments needed, so your team can plan the migration with confidence and minimal disruption. **Prerequisites:** * An active [Upmind account](https://upmind.com/start) currently running Cart 1.0. * Basic familiarity with your existing storefront setup, product catalogue, and checkout configuration. * A read-through of [Understanding Cart 2.0](/using-cart-20/getting-started-with-cart-20/understanding-cart-20) to understand what's new in Cart 2.0 before assessing the migration scope. Migrating to Cart 2.0 does not change your products, pricing, billing logic, customers, or payment providers. The core commerce layer remains the same. What improves is the presentation layer, configurability, and long-term flexibility. For most teams, migration is straightforward and managed with Upmind’s guidance. There is no need to rebuild your product catalogue or reconfigure billing from scratch. The goal is to modernise the checkout experience without introducing risk. ## Feature comparison – Cart 1.0 vs Cart 2.0 | **Area** | **Cart 1.0** | **Cart 2.0** | | ---------------- | ------------------------- | -------------------------------------------------- | | Visual design | Functional, fixed layouts | Lighter UI, improved typography, flexible layouts. | | Customisation | Limited, code-heavy | Metadata-driven, granular control. | | Theming | Basic overrides | Token-based, scalable theming. | | Headless support | None | Native composables + XState. | | State handling | Implicit | Explicit, deterministic flows. | | Responsiveness | Good | Refined mobile-first behaviour. | | Extensibility | Tight coupling | Modular by design. | ## Data compatibility Core commerce data remains fully compatible between **Cart 1.0** and **Cart 2.0**. This includes: * Products and product options. * Pricing models and billing terms. * Subscriptions and customer records. * Orders, invoices, and historical data. What changes is **how this data is presented and controlled**, not the underlying data itself. Migration primarily involves mapping existing products and behaviour into Cart 2.0’s metadata-driven layout and configuration model. ## URL and SEO considerations Core cart and checkout routes remain unchanged between Cart 1.0 and Cart 2.0, so redirects are not required by default. Cart 2.0 continues to support clean, predictable URLs. During migration, teams should verify that: * Existing checkout URLs and deep links continue to resolve correctly. * Domain configuration and product ordering paths behave as expected. * Indexed catalogue or checkout pages remain accessible where applicable. A common and safe approach is to keep Cart 1.0 live during testing, validate Cart 2.0 behaviour in production, and then switch traffic without introducing URL changes. ## Payment flows Payment logic remains consistent across both versions, ensuring continuity in how transactions are processed and settled. What improves in Cart 2.0: * Clearer transitions between checkout steps. * Better handling of loading, processing, and intermediate states. * More flexible placement of payment actions within the UI. * Improved support for both hosted and redirected payment methods. Payment providers, credentials, settlement behaviour, and reconciliation remain unchanged. ## Customisations that need rewriting Most core commerce behaviour carries over unchanged, but some UI-level assumptions may need adjustment. Typical areas to review include: * Layout or presentation logic that was previously implicit in Cart 1.0. * Any Cart 1.0 specific UI patterns that do not map directly to metadata-driven configuration. * Custom flows that depended on less explicit step boundaries. These changes are usually one-time adjustments that unlock easier iteration and safer evolution going forward. # Understanding Key Terms in the Glossary Source: https://docs.upmind.com/using-cart-20/understanding-key-terms-in-the-glossary | **Term** | **Description** | | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | | A11y | Shorthand for accessibility, referring to the practice of designing digital experiences usable by people with diverse needs. | | Abandoned checkout | A checkout session where a customer began the purchase flow but did not complete it. | | Address autocomplete | A checkout feature that suggests and fills in address details automatically as customers type. | | Analytics | Tracking and measurement of storefront behaviour, including page views, conversion events, and funnel steps. | | Anchor price | A reference price shown alongside a product, typically used to highlight savings or original pricing. | | API credentials | Authentication details required to connect your frontend or integration to the Upmind API. | | API-first | An integration approach where all commerce logic and orchestration is handled directly through the Upmind REST API without using Upmind's UI layers. | | Auto-renew | A subscription setting that automatically renews a customer's service at the end of each billing cycle. | | Basket lifecycle | The full sequence of states a customer's basket moves through, from item addition to checkout completion. | | Billing cycle | The recurring interval at which a customer is charged for a subscription, such as monthly or yearly. | | Brand settings | The configuration area in Upmind where brand-level defaults for logo, colours, fonts, and metadata are managed. | | Brand scope | The broadest configuration level, where settings apply across all products and categories unless overridden at a more specific level. | | Brand tokens | CSS variable definitions scoped to a specific named theme, entered in the Brand Tokens field under Brand Settings. | | Cart 1.0 | The original version of Upmind's hosted storefront and checkout system, now superseded by Cart 2.0. | | Cart 2.0 | The current version of Upmind's storefront and checkout system, featuring modular architecture, metadata-driven configuration, and improved theming. | | Client Portal | The post-purchase customer interface where clients manage services, billing, subscriptions, and account settings. | | Client Vue | Upmind's frontend starter framework that provides structural building blocks for assembling cart and checkout experiences. | | CNAME record | A DNS record type used to point a custom domain or subdomain to Upmind's hosted Cart infrastructure. | | Conversion event | A tracked action indicating a customer completed a desired step, such as a purchase or checkout initiation. | | CSS variables | Custom properties defined in CSS that store reusable values for colours, spacing, and typography, used throughout Cart 2.0 theming. | | Custom checkout | A checkout experience built using Upmind's headless layer, where the team owns and controls all UI and interaction. | | Custom domain | A team's own domain or subdomain used to host the Cart, configured through a CNAME DNS record. | | Design tokens | Named CSS variables that represent visual decisions such as colours, spacing, and typography, used to style Cart 2.0 consistently. | | DNS propagation | The time it takes for a new DNS record to become active and accessible across the internet after being configured. | | Domain scope | A configuration level used in the context of product-specific settings, often used for domain-related purchase flows. | | Edge case | An uncommon or boundary scenario in a checkout flow, such as a failed payment, session timeout, or invalid input. | | Empty basket | The state shown when a customer's cart contains no items, displayed with a dedicated screen in Cart 2.0. | | Feature toggle | A data setting that enables or disables a specific cart feature, such as catalogue visibility or option upsells. | | Funnel | The sequence of steps a customer moves through from product discovery to completed purchase. | | Go-live checklist | A list of items to verify before switching live traffic to Cart 2.0, covering DNS, payments, products, and notifications. | | Gradual rollout | A migration strategy where Cart 2.0 is introduced to live traffic incrementally, allowing monitoring and validation before full cutover. | | Guest checkout | A checkout option that allows customers to complete a purchase without creating an account. | | Headless checkout | A commerce integration approach where the team owns the entire UI while Upmind handles all underlying commerce logic. | | Headless Upmind | The frontend-agnostic layer that exposes Upmind's commerce logic and state through Vue composables for custom checkout builds. | | i18n | Internationalisation - the system used in Cart 2.0 to manage and override user-facing text across languages and regions. | | Inheritance | The mechanism by which Cart 2.0 automatically applies broader settings (brand or category) to more specific levels (product) unless overridden. | | Locale | A regional setting that defines the language, date format, and number formatting used in the cart and communications. | | Metadata-driven configuration | A configuration approach where cart layout, content, and behaviour are controlled through structured data fields rather than code changes. | | Migration | The process of moving a storefront from Cart 1.0 to Cart 2.0, primarily involving updating configuration and presentation settings. | | Multi-brand | A setup where multiple distinct brands are managed within the same Upmind account, each with its own theme and configuration. | | Order confirmation | The final screen shown after a successful purchase, displaying order details, payment summary, and next steps. | | Parallel run | A migration strategy where Cart 2.0 operates alongside Cart 1.0 simultaneously, allowing validation without disrupting live customers. | | Payment gateway | A third-party payment provider connected to Upmind that processes customer transactions, such as Stripe. | | Payment orchestration | The process of coordinating and sequencing payment actions, retries, and confirmations managed by Upmind's commerce layer. | | Phased migration | A structured approach to moving from Cart 1.0 to Cart 2.0 in stages, reducing risk and allowing rollback at each step. | | Promo code | A discount code customers can enter during checkout to apply a price reduction or promotional offer. | | Ready-made Cart | Upmind's fully hosted, out-of-the-box storefront and checkout experience requiring minimal setup and no custom code. | | Recommendations | Suggested products shown to customers during configuration or basket review, used for upselling and cross-selling. | | Reduced-saturation theme | An accessibility theme designed for users with colour vision deficiencies, using shape, spacing, and icons over colour to convey meaning. | | REST API | Upmind's core backend API layer that powers products, pricing, billing, subscriptions, orders, and payments. | | Rollback | The process of reverting from Cart 2.0 back to Cart 1.0, managed by Upmind Support without requiring data changes. | | Sandbox environment | A test environment where teams can simulate full checkout flows using test products and payment credentials without creating real orders. | | Scope | The level at which a configuration setting is applied, option, option category, product, product category, or brand. | | SEO | Search Engine Optimisation - the practice of configuring page titles, descriptions, and metadata to improve search engine visibility. | | Session recovery | The ability for a customer's checkout progress to be restored after a page refresh or interruption. | | SSO | Single Sign-On - an authentication method that allows customers to log in using an existing account from another platform. | | Subscription | A recurring billing arrangement where a customer is charged on a defined cycle for continued access to a product or service. | | Template | A layout configuration that defines the structural arrangement of content, sidebars, headers, and footers on a specific cart page. | | Theming | The process of applying brand-specific visual styles to the cart and portal using CSS variables and design tokens. | | TLS/SSL | Security protocols that encrypt data between the customer's browser and the server, automatically managed by Upmind for hosted carts. | | UI Metadata | A structured JSON configuration field in Upmind's Brand Settings used to control cart layout, content, behaviour, and theming. | | Upmind API | The core backend API layer that powers all commerce operations including products, pricing, billing, subscriptions, and payments. | | Upmind UI | Upmind's shared design system of reusable UI components used across the cart and portal for visual and interaction consistency. | | Upsell | A product or option presented to a customer during the purchase flow to encourage an upgrade or additional purchase. | | Vue composables | Reusable functions in Vue 3 that encapsulate and expose commerce state and logic for use in custom or headless UI implementations. | | WCAG | Web Content Accessibility Guidelines, the international standard used to measure and improve digital accessibility. | | Webhook | An automated HTTP notification sent by Upmind to an external system when a specific event occurs, such as an order being placed. | | XState | A JavaScript state machine library used in Cart 2.0 to manage checkout flow transitions in a deterministic and predictable way. | # Affiliate: Enable and Request Manual Commission Withdrawals Source: https://docs.upmind.com/using-upmind/affiliates/affiliate-enable-and-request-manual-commission-withdrawals Allow affiliates to request their commissions manually and manage requests easily. Manual commission requests let affiliates request their commissions directly. Once enabled, affiliates with an available balance will see a button in their account to submit a withdrawal request. When submitted, a ticket is automatically created and sent to the selected department for processing. To enable manual withdrawal requests as an admin, follow these steps: 1. Go to **Settings → Affiliate → General Settings**. 2. Tick the box for **Withdrawal Request**. 3. Select the department that will handle withdrawal tickets. 4. Click Save. <Frame> <img alt="Settings → Affiliate → General Settings" /> </Frame> ### Client Area View If the client has an available balance, they will see a Request Withdrawal button. Clicking this creates a ticket in the chosen department. <Frame> <img alt="Client area → My Account → Affiliate Program → Commissions" /> </Frame> ### Managing Requests in Admin Area When a withdrawal request is submitted, a ticket is automatically created for the admin. After reviewing and approving the request, you can process the payout by going to the client’s profile → Account → Affiliate Account → Commissions tab. <Frame> <img alt="Affiliate Account → Commissions" /> </Frame> # Create an Affiliate System Source: https://docs.upmind.com/using-upmind/affiliates/create-an-affiliate-system Build your referral network This article shows you how to set up an affiliate network. This optional program helps you expand your customer base by rewarding people who refer clients to you. There are many customisation options that let you decide how to pay, when to pay, and how much to pay. Creating an affiliate program is a two-step process. 1. Customise **general settings** for your affiliate network. 2. Create unique affiliate programs - called **Tiers** - for specific products, triggers, or people. This article describes the general affiliate settings. After you configure these options, click [here](/using-upmind/affiliates/create-an-affiliate-tier) and learn how to set up Tiers. ## Opening the affiliates page To create or edit a Tier, start on the Affiliates page. 1. Log in to your account. 2. Click Settings on the main dashboard. 3. Click the Affiliates tile under the e-commerce heading. The Affiliates page displays. ## Creating tiers At the top of the Affiliates page, click the [Add affiliate tier](/using-upmind/affiliates/create-an-affiliate-tier) button to create a unique affiliate program. <Tip> We created a [separate article](/using-upmind/affiliates/create-an-affiliate-tier) that shows you how to create and configure Tiers. </Tip> <Frame> <img alt="Create an affiliate tier" /> </Frame> ## Affiliate payout destinations Choose where to send a commission payout. 1. Click the Add payout destination button. A new panel displays. <Frame> <img alt="Payout destination" /> </Frame> 2. On the new panel, enter a unique name for this payment method. 3. Click the drop-down menu and select an option (Wallet, Offline, or PayPal). 4. Check the box to make this the default payout method. (optional) 5. Uncheck the box to hide this information from clients. (optional) The default is Visible for clients. 6. Repeat steps to add another payment method. (optional) <Note> If you choose PayPal, you need to enter a payment gateway. This will be of a type PayPal (REST). </Note> <Frame> <img alt="Select an option" /> </Frame> <Note> To bank wire commissions, your affiliate should open a ticket and send bank transfer details (e.g. Swift code). </Note> ## General Settings * Default Link Redirect: Enter the URL where visitors will be sent if an affiliate link is invalid or missing a redirect. <Frame> <img alt="Redirect site" /> </Frame> * Manual Commission Requests: Enable this option to allow affiliates to request their commissions manually. Once enabled, affiliates will see a button in their account to submit withdrawal requests if they have an available balance. A ticket will then be automatically raised and sent to the selected department for processing. <Frame> <img alt="Manual withdraw request" /> </Frame> ## Upmind Affiliates This section has many options and customisation features. They are described below. ## Enabled 1. Click the **Enabled** toggle to the ON position to activate your affiliate program. If the toggle is in the OFF position, all of your affiliate payment systems are stopped. 2. Click the **Customer Controls Enabled** toggle to the ON position to let your customers create and manage their own affiliate program. If the toggle is OFF, only admins and staff can set up and configure your affiliate program. 3. Slide the scale to set the active life of the referral cookie. <Note> Upmind tracks client referrals through a unique link attached to a cookie. Each customer order gets tracked back to an affiliate through that link. You decide how long the cookie should remain active (i.e. the number of days after the cookie was first created). </Note> <img alt="" /> ## Excluded commission order status Use these filters to approve or reject commission payouts. Check a box to activate a block that prevents commission payouts. Upmind does not pay a commission if the condition of a checked box is present in the referral transaction. For example: * If you leave the Fraud box checked (default setting), Upmind **does not** pay commissions for transactions marked Fraud. * If you leave the Suspended box unchecked, Upmind **does** pay commissions for transactions marked Suspended. <Frame> <img alt="Excluded commissions" /> </Frame> ## Commission period You can decide how long to pay referring agent commissions. Leave the default (zero) if you will pay commissions forever. Otherwise, enter a number to set the period length (in months). **Only on paid invoices** The default setting is Yes. That means you only pay commissions on paid invoices. If the toggle is set to No, you pay commissions on unpaid invoices. **Commission on free invoices** The default setting is Yes. That means you pay commissions on paid invoices that generate no revenue. (e.g. you pay a fixed amount for an invoice rather than a percentage of the total invoiced amount). If the toggle is set to No, you do not pay commissions on free invoices. <Frame> <img alt="Commission period" /> </Frame> ## Calculate commissions on net or total amount Click the drop-down menu and select Net (excludes tax) or Total (includes tax). **Calculate commissions in brand or account currency** Click the drop-down menu and select Brand currency or Account currency (the client's currency). You must choose one currency because commission payouts do not have a multi-currency option. <Frame> <img alt="Calculate commissions" /> </Frame> ## Payouts **Payouts** The default setting is Yes. That means automatic payouts are triggered when pre-set conditions are met. **Payout Condition** Set the condition that triggers an automatic payout. Click the drop-down menu and choose Amount (balance in referring agent's account) or Time. **Payout time** Set the number of days. Upmind automatically sends a payment after this number of days passes if you set the Payment Condition to Time. **Payout amount** Set the account balance. Upmind automatically sends a payment when commissions reach this total if you set the Payment Condition to Amount. <Frame> <img alt="Commission payouts" /> </Frame> # Create an Affiliate Tier Source: https://docs.upmind.com/using-upmind/affiliates/create-an-affiliate-tier Set your commissions This article shows you how to create and configure a specific affiliate commission package, which we call a Tier. A Tier contains a set of conditions that you define for a product or products, commission rates, time periods, and more. You can create multiple Tiers and edit them. ## Creating a Tier The starting point is the Affiliates page. 1. Log in to your account. 2. Click Settings on the main dashboard. 3. Click the Affiliates tile under the e-commerce heading. The Affiliates page displays. 4. Click the Add affiliate tier button. A new panel displays. <Frame> <img alt="b-3.png" /> </Frame> ## Naming a tier 1. In the Add affiliate tier panel display, enter a unique name for this tier. 2. Check the box to make this your default tier. (optional) 3. Click Add condition. A new panel displays. This is where you configure tier settings. <Frame> <img alt="c-1.png" /> </Frame> ## Configuring tier conditions Two checkboxes at the top of the Add affiliate tier condition panel show default settings. * Leave the first checked box if you want to keep the tier active. Uncheck the box to make the tier inactive. * Leave the second box checked if you want to pay only commission per affiliate referral. If one affiliate generates repeat sales on the same tier, they do not receive a commission. Uncheck the box to pay the affiliate a commission for each sale on this tier. <Frame> <img alt="c-2.png" /> </Frame> ## Affiliate type Click a tile to choose the payment type: Fixed amount or Percentage. Then enter the amount in the next field. Click the field under Billing Term and select an option on the drop-down menu (e.g. monthly, quarterly, etc.). <Frame> <img alt="c-3.png" /> </Frame> ## Period and interval Slide the period scale to set the active life (measured in months) of the referral link. At the end of this period, the link is inactive and no new affiliate commissions are calculated. Slide the interval scale to define the payout period. This sets the number of days that must pass before the affiliate commission is paid out. This condition acts like a buffer to protect against improper payouts if other conditions are not present (e.g. the account is not active). * For more information about conditions, go to the **Affiliates** page and scroll down to the subheading: Upmind Affiliates > Excluded Commission Order Status. <Frame> <img alt="c-4.png" /> </Frame> ## Invoices and eligibility Under Invoice Categories, choose which type of invoice is eligible for a commission. Check one, two, or all three boxes. Under Multiple Item Eligibility, choose how to calculate the commission when two or more affiliate products are purchased at the same time. <Frame> <img alt="c-5.png" /> </Frame> ## Eligible products Click a box to set which products are part of this tier. Choose All products or Selected products. * If you choose All products click Save and go to the next panel (see below Reviewing a tier). <Frame> <img alt="d-1.png" /> </Frame> * If you choose Selected products, the Product/Service window displays. 1. Click the Manage button. 2. On the Select products panel, check the box next to each item that is part of this tier. 3. Click Save. 4. Click Save on the next page. <Frame> <img alt="d-2.png" /> </Frame> ## Reviewing a tier After you create a tier (All products or Selected products), Upmind shows a summary. * To edit any of the tier conditions, click the gear icon and select Update. * To delete the tier, click the gear icon and select Delete. * To create a new tier, click Add condition. <Frame> <img alt="d-3a.png" /> </Frame> Click Save or Close. The summary window closes. Upmind returns to the Affiliates page. The page shows all of your affiliate tiers. Click the gear icon to edit or delete an affiliate tier. <Frame> <img alt="d-4a.png" /> </Frame> ## Setting a new default tier To change the default tier: 1. Locate the new default tier. 2. Click the gear icon. 3. Click edit. A new panel displays. 4. Check the box next to default. 5. Click Save. <Frame> <img alt="d-5a.png" /> </Frame> # How do My Clients Create and Manage Affiliate Sales Source: https://docs.upmind.com/using-upmind/affiliates/how-do-my-clients-create-and-manage-affiliate-sales Help your clients generate revenue This article shows your clients how to create affiliate links and track commissions on their Account page. ## Before you start If you want to give clients the ability to create their own affiliate links, go to your Affiliates page and confirm two settings. 1. Log in to your account. 2. Click Settings on the main dashboard. 3. Click the Affiliates tile under the e-commerce heading. 4. Scroll down to the General Settings heading. Make sure you enter a Redirect link. This URL can link to any page on your e-commerce site. One URL can track all purchases that are eligible for affiliate commissions. <Note> You can create product-specific URLs. Say, for example, you write a review about coffee grinders. You could include a specific link to a coffee bean grinder page on your site. That product-specific link can also track all affiliate-available purchases on your site beyond the grinder. </Note> Upmind attaches a unique code to this link and uses the URL to track purchases and assign commissions to your affiliate. You need to share this link with clients (e.g. via a ticket) who contact you and want to become an affiliate. Go to the next heading and make sure Customer Controls is enabled. If this toggle is disabled, your clients cannot create affiliate links by themselves. <Frame> <img alt="Enable customer controls" /> </Frame> ## Opening the affiliate page To create an affiliate link, your client should: 1. Log in to their store account. 2. Click the My account menu tab. 3. Click Affiliate program on the left menu under the Profile heading. <Frame> <img alt="Open affiliate page" /> </Frame> ## Creating a link To create an affiliate link, your client should: 1. Go to the Links section on the page. 2. Click the Create new link button. 3. Paste your Redirect URL. 4. Enter a unique name. 5. Click Save. <Frame> <img alt="Create an affiliate link" /> </Frame> Upmind shows the affiliate link on the page. Click the gear icon to edit or delete the link. <Frame> <img alt="New affiliate link" /> </Frame> ## Tracking program results Your clients can track their affiliate data. On the Affiliate program page, click the Overview link on the left menu. The page shows an overview of key indicators, like visits and available balance. Scroll down the page to see a list of referrals. <img alt="" /> Click the Commission link on the left menu to see the Commission history. Click the Payouts link to select a payout destination and see Payout history. <img alt="" /> ## Reword Affiliate Program You can now change the wording of the affiliate program in the client area. This will apply to the menu item link, page title, and any descriptions on the page. 1. Go to **Settings** > **Brand Settings** under **Branding and Customisation**. <Frame> <img alt="Settings > Branding and Customisation > Brand Settings" /> </Frame> 2. Paste the following overrides into the **Brand meta**. This can be edited. JSON ``` { "i18n": { "_.affiliate_program": "Refer a Friend", "_.affiliate_since": "Member since", "_.affiliate_link": "Referral link", "_sentence.affiliate.links_desc": "Create and share unlimited referral links for targeting different URLs, campaigns and shop configurations. When clicked, a cookie will be set on the visitors browser and subsequent purchase activity will be attributed to your account.", "_sentence.affiliate.referrals_desc": "A referral is someone who first visits via one of your custom referral links and goes on to make a purchase. Each referral will show in this referrals table.", "_sentence.affiliate.program_onboarding_desc": "Join our 'Refer a Friend' program and earn a commission for each referral you make. The program is free to join and there's no limit on how much you can earn. Our intuitive interface allows you to create unlimited custom links and track referral activity on a link-by-link basis. With a simple one-click opt-in, you can be up and running in just minutes." } } ``` <Frame> <img alt="Insert the JSON code in the Brand Meta" /> </Frame> Your affiliate program has now been reworded. <Frame> <img alt="Reworded affiliate program" /> </Frame> # What are Affiliate Links and How do they work? Source: https://docs.upmind.com/using-upmind/affiliates/what-are-affiliate-links-and-how-do-they-work Check What are Affiliate Links and How do they work? Affiliate helps you to grow more with others efforts and earn more profit doing less. Click Now! Affiliate links are URLs which your affiliates can use to send a user to a page on your website, while setting up a cookie to track the referral so that any future orders are assigned to them. At its most simple, an affiliate link can send a user to your brand homepage. ### How to set up an affiliate link 1. In the affiliate panel (either as a client or staff) click 'Add Affiliate Link'. 2. Enter a destination URL and display name (for your reference) 3. Add the link. You will be given an affiliate link that can be shared. <Note> Allowed affiliate domains - Your clients can't just set redirects to any website. For security reasons the domain they set as a redirect destination needs to be added as a domain under `settings`>`domains` </Note> ### Setting a default affiliate link destination You can set a default affiliate link destination under `settings`>`affiliates` under Default Link Redirect. <img alt="" /> ### Changing the referral cookie lifetime Under `settings`>`affiliates` you can change the length of time the referral cookie is valid. You can set the number of days. Within that period, any signups will be credited to the referrer whose link was used. <img alt="" /> # A Guide to Account Level Delegates Source: https://docs.upmind.com/using-upmind/client-management/a-guide-to-account-level-delegates You can assign delegates to help manage specific products and tickets. This is especially useful for clients who work with team members or colleagues and need to share access without handing over full control. You can change or remove these permissions anytime. You can refer to our full guide to learn more about how delegates work [here](/using-upmind/client-management/how-do-delegates-work). ## Delegating Access to Specific or All Contract Products & Tickets 1. Go to the client’s profile → Account 2. Click on Account Delegates <img alt="" /> 3. Select Invite Delegates <img alt="" /> * In the invite box, you’ll find two ways to invite: <img alt="" /> * By email: The invitee must have an Upmind account. * From existing clients: Choose a client already in the system. * Choose access type: <img alt="" /> * Full access to all products & tickets * Restricted access to specific products & tickets → If restricted, you can select which products & tickets the delegate can view. <Frame> <img alt="Select the products that the delegates can access" /> </Frame> <Frame> <img alt="Select the tickets that the delegates can access." /> </Frame> 4. Click Add Delegates. * Once added, click on the delegate’s name to manage their access or profile. <img alt="" /> Here’s a preview of what the delegate sees in their client area dashboard. <Frame> <img alt="Delegates Dashboard" /> </Frame> # Automation Overrides on Client Level Source: https://docs.upmind.com/using-upmind/client-management/automation-overrides-on-client-level In this guide, we’ll show you how to prevent a client’s products from being automatically suspended, cancelled, or closed. With Automation Overrides, Administrators can set client-specific rules that ensure certain products remain active, regardless of billing or system automation. ## How to Enable Automation Overrides on Client Level 1. Log in to your Upmind admin area. 2. Navigate to Clients → Select a client. 3. Go to Settings → Billing tab, then scroll down to find Global Automation Overrides. <Frame> <img alt="Automation Overrides on Client Level" /> </Frame> # Client Number Setting Source: https://docs.upmind.com/using-upmind/client-management/client-number-setting Client number settings in Upmind are optional and offer a simple, sequential reference that can be displayed on invoices and communications. In this guide, we’ll walk you through how to set the client number prefix and configure other relevant settings. ## How to Set Up Client Numbers: 1. Go to Settings → Client Settings. 2. In the Client Numbers section, you can: * Set a client number prefix according to your needs (e.g., "CLT-" for client-related numbers). * Configure the next client number to continue the sequence. <Frame> <img alt="Client Number Prefix and Next Client Number" /> </Frame> 3. In the Settings section, you can choose whether to enable/disable sequential client numbers. If enabled, client numbers will be automatically assigned in order. <Frame> <img alt="Enable / Disable Sequential Client Numbers" /> </Frame> * These numbers will appear only in the admin area under the client's profile <Frame> <img alt="Profile in Admin Area" /> </Frame> 4. For existing clients, you’ll need to manually add the client number by selecting the client you want to update: Go to Settings → Profile → Basic Configuration. <img alt="" /> <Info> Client numbers don’t affect billing or automation and can be updated anytime. If client numbers were turned off and then back on, new clients registered during that period won’t have a number. When re-enabled, numbering continues from the last assigned number + new clients +1 </Info> # How Do Delegates Work? Source: https://docs.upmind.com/using-upmind/client-management/how-do-delegates-work Clients share access to their products and support tickets ## Introduction Delegates allow a [client to grant access](/client-self-service/client-area/how-do-my-clients-create-contract-delegates) to one or more of their contract products to another client in your brand. This would allow their delegate to view management actions and create support tickets relating to this product. Delegates can also be added to a specific support ticket. ## Access Rights When added to a contract product, a delegate **can**: * View contract product registration and renewal dates and status. * Undertake [provisioning](/using-upmind/provisioning/how-does-provisioning-work) actions (e.g. log in to a hosting account, update domain nameservers) * Create support tickets in relation to the contract product. * View tickets others have created in relation to the contract product, from the point that they were added as a delegate. A delegate **can not**: * manage billing for a contract product * cancel, upgrade, or modify the contract product * add or remove delegates ## Support Tickets When a [support ticket](/using-upmind/service-desk/about-upminds-service-desk-features) is created and a contract product is selected as a related product by either the owner or a delegate, the ticket will automatically include all contract product delegates. Delegates can also be [added (or removed)](/using-upmind/service-desk/how-to-create-ticket-delegates) standalone from individual support tickets. Upmind will not add new delegates to support tickets, or remove existing delegates from support tickets, should they be changed on the contract product. # How Does the Affiliate System Work Source: https://docs.upmind.com/using-upmind/client-management/how-does-the-affiliate-system-work Build a referral network The Upmind affiliate system lets you reward affiliates for referring clients and orders to your business. Affiliates can generate unique links which connect orders to their account. You can choose to credit your affiliate with a commission, and even allow them to automatically withdraw their credit. <Tip> For example, you might pay an affiliate \$5 for every referral they send to your store or pay them 20% of the order value. </Tip> ## What is an affiliate system? Affiliate systems are relatively common and commonly fall into three categories: * Individuals who may be referring a friend. * Blog and high ranking sites make money by driving affiliate sales on linked websites. This is called **affiliate marketing**. * Other businesses that may refer to your business in bulk. ## Enabling the affiliate system in Upmind The affiliate system is disabled by default. It can be easily enabled under `Settings` > `Affiliates`. You will see two key options: 1. To enable the affiliate system as a whole, scroll down the screen and select **Enabled** next to Upmind Affiliates. This enables staff to manage affiliates and generate affiliate links. With only this option enabled, your clients will not be able to manage their own affiliate account. The affiliate system, therefore, works as an internal tool for you. 2. To enable customer controls, select **Customer Controls Enabled.** This gives your clients the ability to enable and manage the affiliate system in their client area. Calculations and commissions are based on your default brand currency (see below). You can choose whether you want clients to view their affiliate balance in your default brand currency or in their account currency. ## Features * Track affiliate link clicks and referrals * Setting affiliate tiers and commission amounts * Configure maturation and payout delays/thresholds * Customer controls ## Get Started [Follow our guide](/using-upmind/affiliates/create-an-affiliate-system) to learn how to configure your own affiliate program on Upmind # How Impersonating a Client Works Source: https://docs.upmind.com/using-upmind/client-management/how-impersonating-a-client-works Experience your store from the client perspective Impersonation allows you to log in as a client and see things as they do. Upmind temporarily removes you from your current status (e.g. Admin or store staff) and gives you client access to your store. You have the same access rights and limits as that client. The impersonation feature lets you review the store's UI, view the catalogue, and inspect the checkout flow. You can even complete a purchase with the client's payment credentials. ## Accessing impersonation mode 1. Log in to Upmind. 2. Click Clients on the left menu. 3. Click the Clients list menu tab. 4. Click a client name. 5. Click the Manage client button. 6. Click Impersonate client on the drop-down menu. * A new browser tab displays with a bar across the top of the screen. <Frame> <img alt="a-1.png" /> </Frame> ### Exiting impersonation mode To stop impersonating a client and return to your status, click the "click here to end" link at the top of the screen. # How to Add & Manage Clients Source: https://docs.upmind.com/using-upmind/client-management/how-to-add-and-manage-clients A suite of client management tools ## Introduction Upmind can keep unlimited records of your clients and store sets of emails, addresses and companies. The system is also extensible, so [custom fields](/using-upmind/client-management/how-to-add-client-custom-fields) can be added as required. Upmind is designed so that your clients can register themselves through your website, usually by placing their first order. However, you can also choose to add clients yourself. ## Opening the Clients dashboard 1. Log in to Upmind. 2. Click Clients on the left menu. The Clients page provides a broad overview of client activity with stats, charts, and lists. From here, you can explore details by clicking a link. <Note> Click any client name to open the Clients overview page. </Note> <Frame> <img alt="Clients page" /> </Frame> ## Adding a client It is possible to manually add clients to your e-commerce site. 1. Open the Clients page. 2. Click the Add client button. 3. Fill the fields. 4. Leave the toggle switch in the Allow Login position. 5. Click Add client. <Frame> <img alt="Add client" /> </Frame> Upmind sends the client an email message with a verification link. You can track that client's activity on the Client overview page. <Frame> <img alt="Track client activity" /> </Frame> <Note> If the Allow login switch is ON, Upmind sends the client a notification email and verification link. If the switch is OFF, you can create a user but that person does not receive a notification email and cannot log in to your e-commerce site. An email address is only required if you are giving them login access. </Note> ### Disable login use cases The disable feature can protect your business by blocking fraudulent clients from accessing your store. This feature can also be used to record cash transactions. You could, for instance, create a client account but disable the login. When the client pays cash for an item, use Upmind to create a record and generate accurate sales reports. ## Filtering client list You can sort client names with filters. 1. Click the Clients list menu tab. 2. Click an option under the Quick filters heading. <Frame> <img alt="Sort client names" /> </Frame> ## Managing clients The Clients overview page gives you several tools to manage clients. 1. Click a client name. The Client overview page displays. 2. Click the three dots near the client's name and email. <Frame> <img alt="Manage client button" /> </Frame> **Client supports PIN** is a unique code used to securely verify your client's identity when they contact customer support. **Place new quick order** Allows you to quickly create and submit new orders for both new and existing products and services. **Place new order** Open the client's store in your window. You can order products on behalf of your client. **Open new ticket** Quickly create a new ticket for this client. **Impersonate client** Get complete access to the client's store account. To close the impersonation, go to the banner at the top of the page and click the **click here to end** link. **Attach child account** Allows you to link a subordinate account to a primary account, facilitating management and access control for different users or teams. **Link to a parent** Refers to the process of connecting a subordinate account to a primary account, enabling easier management and access control for different users or teams. **Merge client data** Move the current client's data to another client account. **Delete** Remove the client account from your store. <Frame> <img alt="Merge client data" /> </Frame> <Note> We don’t recommend deleting a client account since you won’t be able to access or manage any existing contracts products linked to that account. If the account has already been deleted and you need to make changes to an associated order, please [raise a support ticket](/managing-your-account/getting-help-from-upmind#/), and we’ll help you in restoring the client account. </Note> ## Importing Clients If you already have clients using an external system, you may want to bulk import these clients directly into Upmind. Navigate to `Settings` → `Imports` to view import options. # How to Add Client Custom Fields Source: https://docs.upmind.com/using-upmind/client-management/how-to-add-client-custom-fields Collect and save structured data ## Video tutorial #### In this video tutorial we cover: * How to create client custom fields. * What the different settings on client custom fields mean. * How to segment clients by custom fields. <iframe /> #### Custom field placement Add custom fields to the **Create account window** or [checkout basket](https://features.upmind.com/en/help/articles/4897219) to collect and store additional structured data against customer records. You can collect a wide range of data types, including: * client information (e.g. age, date of birth, favourite band) * answers to questions (e.g. How did you find us?) * verification information (e.g. support pin numbers) Custom fields are especially powerful because you can use them to [search and categorise](/setup-and-configuration/orders-services/how-to-review-orders) clients. Clients can optionally view and edit their custom field information through their self-service client area. You can also choose to display custom field information on the invoices that you send clients. * If you want to create unstructured notes against a client, you can use Upmind's [client notes](/using-upmind/client-management/how-to-create-account-notes-and-secrets). ## Defining custom fields 1. Open the Upmind Admin dashboard and click the Settings button. 2. Click the Client custom fields tile. 3. Click the Create custom field button. 4. Click the field under CUSTOM FIELD NAME and select an option on the drop-down menu. <Frame> <img alt="Custom field options" /> </Frame> You can also enable/disable the following options: * Is this field required? * Do you want to hide this field from clients? * Do you want this field to be read only for clients? * Do you want to display this data on invoices? ### Text input * A free form text field (ideal for short answers). <Frame> <img alt="Text input" /> </Frame> ### Password * A password text field that obscures the data. <Frame> <img alt="Enter password" /> </Frame> ### Select * Create a drop-down menu. * Click the Add option button to add items to the drop-down menu. <Frame> <img alt="Select option" /> </Frame> ### Checkbox * A Yes - No tick box. * A checked box means Yes. * The default setting is unchecked (No). <Frame> <img alt="Yes - No tick box." /> </Frame> ### Text area * Clients enter a long-form response. <Frame> <img alt="Text field" /> </Frame> ### Date * Clients click the field and enter a date with the calendar. <Frame> <img alt="Enter a date" /> </Frame> ### Number * Clients click the field and enter a number. <Frame> <img alt="Enter a number" /> </Frame> ### Image * Clients click the field and upload an image file. <img alt="" /> # How to Add Client Tags Source: https://docs.upmind.com/using-upmind/client-management/how-to-add-client-tags Manage client records efficiently ## What are client tags? A tag is a short label you attach to a client record. It's an extra piece of information - one or two words usually - that you can use to quickly sort clients, create segments, and ultimately improve the way you organise information and connect with clients. Here's an example. Bookstores use tags to classify books based on genre (e.g. mystery, computer, biography). If they didn't use tags, store staff would not know how to shelve books and customers would not know where to find them. ## Opening the tag manager The first step is to open the tag manager. This is where you create, customise, and save tags. Upmind saves your tags, so you can quickly apply them to any client without creating the same tag over and over again. 1. Log in to your account. 2. Click Clients on the left menu. 3. On the next page, click the Clients list menu tab. 4. Scroll down the list and click a client name. 5. On the next page, click **Add client tag** under the client detail for FraudMind. A pop-up box will display. <Frame> <img alt="b-1a.png" /> </Frame> 6. Click the Add and manage tags link. The Manage tags panel displays. <Note> The first time you create a tag, the pop-up box is blank. As you add tags, a list of tag options displays here. </Note> <Frame> <img alt="b-1a.png" /> </Frame> ## Creating a tag 1. Click Add tag on the Manage tags panel. <Frame> <img alt="c-1.png" /> </Frame> 2. Enter a tag label (only visible to admins and staff). 3. Add a brief description. 4. Choose a colour. 5. Click Create. <Frame> <img alt="c-2.png" /> </Frame> Upmind adds the tag to your library. At this point, you can close the panel, add a new tag, or edit a tag. <Frame> <img alt="c-3.png" /> </Frame> ## Assigning a tag So far, you have created a tag. The next step is to assign a tag to a client. 1. Go back to the Clients list. 2. Scroll through the list and click a client name. 3. Click **Add client tag** under the client detail for FraudMind. A pop-up box will display. 4. Select a tag. 5. Click Save and Upmind automatically applies that tag to this client. <Frame> <img alt="c-4.png" /> </Frame> ## Checking your tags Go back to the Clients list page. Upmind shows the tags. <Frame> <img alt="c-5.png" /> </Frame> ## Sorting clients with tags You can sort the client list with one or more tags. 1. Go to the Clients list page. 2. Click the Add filter field at the top of the page. 3. Click Client tag on the drop-down menu. <Frame> <img alt="c-6.png" /> </Frame> 4. On the pop-up window, select a condition. <Frame> <img alt="c-7.png" /> </Frame> 5. On the same window, select one or more tags. 6. Click Apply. <Frame> <img alt="c-8.png" /> </Frame> Upmind displays a list of clients that match your condition and tag selection. In this example, we want to see all clients with the VIP or Restaurant tag. To remove the filter, go to the Add filter field at the top of the page and click the X icon next to the tag names. <Frame> <img alt="c-9.png" /> </Frame> # How to Add Delegates in Your Admin and Client Area Source: https://docs.upmind.com/using-upmind/client-management/how-to-add-delegates-in-your-admin-and-client-area Before diving into this guide, we previously provided comprehensive information about [how delegates work](/using-upmind/client-management/how-do-delegates-work) and [how your clients can create contract delegates](/client-self-service/client-area/how-do-my-clients-create-contract-delegates). In this guide, we will explain how to add delegates to your admin and client areas for a specific contract product. Delegation allows you to grant other brand clients read-only access to this product. This is beneficial if you need to share access with a colleague or third party without disclosing your own credentials. Please note that delegates must have their own brand account to be added. You can revoke access at any time, ensuring you maintain full control. ## How to Add Delegates from Your Admin Area If your client needs assistance adding their delegates, you can do this through your admin area. Follow these steps: 1. Go to the client's profile > Navigate to Product & Service > Click the Product. 2. Go to the Delegates section > Add Delegates <Frame> <img alt="Client's profile > select product > invite delegates" /> </Frame> ## How to Add Delegates from Your Client Area If your client wants to add their delegates themselves, they can do it through their client area. Follow these steps: 1. From your client area, go to the Active Product > choose the Product <img alt="" /> 2. Click the Setting section > Navigate to the Delegates section > Click Add Delegates. <Frame> <img alt="Setting section > Delegates section > Invite delegates" /> </Frame> The email invitation that the delegates will get looks like this: <Frame> <img alt="Delegate Access Invitation" /> </Frame> ## How to Remove Delegates If you need to remove delegates, you can do so from either your admin area or client area. Follow these steps: **From your admin area:** 1. Go to the client's profile > Navigate to Product & Service > Click the Product. 2. Go to the Delegates section > Click the delegates > Click revoke <img alt="" /> **From your client area:** 1. Go to the product and click the Settings section. 2. Navigate to the Delegates section > Find the delegate you want to remove > Click Remove. <img alt="" /> # How to Create Account Notes and Secrets Source: https://docs.upmind.com/using-upmind/client-management/how-to-create-account-notes-and-secrets Securely save important remarks and information. Client notes and secrets allow you to store freeform notes against a client. You have the option to make them visible or hide them from your clients, but they are always visible to staff members. Account notes are a way to capture and share non-sensitive information, while account secrets are a way to share sensitive information and are stored in a digital vault using AES-256 encryption, ensuring your data is safe and secure. Both can be edited and deleted by the author or admins. A note can also be *pinned* to the top of a client's profile, which makes it visible first whenever notes and secrets are viewed. ## Opening Account Notes 1. Log in to your account. 2. Click Clients on the left menu. 3. Click the Clients list menu tab. <Frame> <img alt="Clients list tab" /> </Frame> 4. Scroll through the client list and click a name. <Frame> <img alt="Client names" /> </Frame> 5. On the Client overview page, enter text into the Account notes field. 6. Click Save note. <Frame> <img alt="Notes field" /> </Frame> ## Editing and Deleting Account Notes Saved notes display under the Account Notes field. Each note can be edited or deleted by staff users. <Frame> <img alt="Edit note" /> </Frame> ## Pinning a note Click the Pin icon to keep the note close to the Account Notes field. Pinned notes do not move when admins or staff add notes to the list. <Frame> <img alt="Pinned note" /> </Frame> The pinned note can now be viewed from the client summary. <Frame> <img alt="View notes" /> </Frame> You can click the note to see the details. <img alt="" /> ## Creating Account Secrets When you want to add Account Secrets to a client's account, the steps are similar to adding Account Notes. However, you need to find the Account Secret field below the Account Notes. <Frame> <img alt="Account Secrets" /> </Frame> Account secrets can be edited, deleted, and pinned, just like account notes. # How to Manage Client Settings Source: https://docs.upmind.com/using-upmind/client-management/how-to-manage-client-settings Update profiles and security information. Edit client contact and security information on the Profile settings page. You can: * Resend an email verification request * Add or update contact information * Enable or disable account login * Ask the client to reset their password ## Opening a client dashboard 1. Log in to Upmind. 2. Click Clients on the left menu. 3. Click the Clients list menu tab. 4. Scroll through the list and click a client name. The Client overview page displays. 5. Scroll down to the Overview menu. 6. Click the Settings subheading. ## Reviewing profile settings The Profile settings page displays client contact information (e.g. name, language, address, email address) which admins can change or update. ### Verify email If the client has not yet verified their email address, click the resend verification link. <Note> This link is not visible on the page if the client has a verified email address. </Note> <Frame> <img alt="a-1a.png" /> </Frame> ## Changing security settings Click the Security tab to change login settings. 1. To disable client login, click the toggle switch to the OFF position. 2. Click the link to ask the client to reset their store account password. (optional) The security page also shows the two-factor authentication status set by the client. <Note> Admins and store staff cannot change this two-factor authentication setting. </Note> <Frame> <img alt="a-2.png" /> </Frame> ## **General client settings** The general client settings can be accessed from **Settings** > **Client Settings** under **Branding and Customisation**. <Frame> <img alt="Settings > Client Settings" /> </Frame> These settings control how clients can manage their account details. <Frame> <img alt="General client settings" /> </Frame> * **Sequential Client Numbers** — When enabled, each registered client is automatically assigned a `number` in sequential order. * **Allow Company Update** — When disabled, clients cannot update their company details or change their default company. * **Allow Email Update** — When disabled, clients cannot update their email address or change their default email. * **Allow Phone Update** — When disabled, clients cannot update their phone number or change their default phone. * **Can Update Address Country** — When disabled, clients cannot change the country on their address. # How to Manage Leads Source: https://docs.upmind.com/using-upmind/client-management/how-to-manage-leads Capture and manage prospective client relationships efficiently **Leads** in Upmind are records that capture the details of potential clients. They help manage early interactions before turning prospects into clients. Leads keep a history of messages, notes, and activities so your team can track progress and build relationships. You can link multiple leads to manage contacts from the same company or related groups. ## **How Upmind counts a submission as a lead** A submission counts as a lead when an unknown email sends a message to the brand owner, if incoming emails are set up through a [<u>piped email forwarder</u>](/setup-and-configuration/email-configuring-and-sending/how-does-email-work-in-upmind#/incoming-email). The system creates a [<u>support ticket</u>](/using-upmind/service-desk/how-to-create-a-ticket#/) from this message and records the email as a lead, only if it’s not linked to an existing client. Leads can also be added manually through the Upmind interface, enabling teams to capture and manage potential clients proactively. ## **Understanding leads vs. clients** Leads represent potential customers who have shown interest but have not yet committed. Clients are customers with active contracts or ongoing services. Leads can be converted into clients, transferring notes, tickets, and history, so that there is continuity in relationship management. (remove duplicated sentence) ## **Why leads matter and how they convert into customers** Managing leads helps your team organise prospects, avoid losing potential business, and improve communication. Tracking leads shows a clear opportunity status. Qualified leads convert to clients to start contracts, billing, and service provisioning while keeping past interactions. ## **Where to access leads in Upmind** Leads can be found in the Upmind dashboard at **Clients** > **Leads**. <Frame> <img alt="Clients > Leads" /> </Frame> ## **How to create a lead** 1. In the `Leads` section, click **Add Lead**. <Frame> <img alt="Add lead" /> </Frame> 2. Fill in the **Name** and **Email** fields. 3. Add a **Note** to capture initial information or context about the lead. (optional) <Frame> <img alt="Fill in details" /> </Frame> 4. **Save** the lead record. ## **Actions available after lead creation** * **Convert to Client**: Change the lead into an active client without losing previous interactions, enabling contracts and billing. * **Open New Ticket**: Create a support or sales ticket linked to the lead, for tracking requests. * **Merge with Existing Client**: Combine duplicate or related leads into an existing client record, preserving all historical data. <Note> When you merge a lead into an existing client in Upmind, the lead’s data is not moved to the client record. If the lead’s email differs from the client’s primary email, it’s added as a secondary email. The lead remains visible in the Leads section. **Notes and tickets linked to the lead don’t transfer during the merge**, but new tickets from the lead’s email will link to the client account. Alternatively, converting a lead to a client moves all lead data, including notes and tickets, into the new client record. </Note> * **Hide Lead**: Temporarily remove the lead from active views without deletion, useful for leads that require follow-up later. * **Delete Lead**: Permanently remove the lead record from the system. <Frame> <img alt="Lead settings" /> </Frame> * **Add Tag**: Assign tags to group leads by campaign, source, or interest, for organised filtering and marketing efforts. <Frame> <img alt="Add tag" /> </Frame> ### **Overview section** * **Contact Details**: Edit the contact information for the lead, name, and email. * **Disable Email Notifications**: Toggle this option on to stop sending automatic email notifications to the lead. This helps prevent auto-responder loops or unwanted replies. <Frame> <img alt="Contact details" /> </Frame> * **Lead Notes**: Share important, non-sensitive information or potential opportunities that your team, or Upmind staff, may add. Notes reflect observations, follow-up instructions, or context to guide interactions. <Frame> <img alt="Lead notes" /> </Frame> * **Related Leads**: You can link one or more related leads to a main lead. This function helps manage duplicate entries or multiple contacts from the same business, so that communication and consolidated record-keeping are easier. <Frame> <img alt="Related leads" /> </Frame> ### **Tickets section** Tracks active and closed tickets associated with the lead. Tickets can be sorted by last updated, date created, subject, or reference number to prioritise workflow. * **Active Tickets**: View ongoing support or sales conversations needing attention. * **Closed Tickets**: Archive of resolved tickets linked to the lead for reference. * **Open New Ticket**: Create a ticket directly linked to the lead for immediate issue tracking. <Frame> <img alt="Tickets" /> </Frame> When you click on **Open New Ticket**, you need to fill out details such as email, a message (you can attach a file here), and also schedule the ticket for a future date and time (optional). <Frame> <img alt="Ticket details" /> </Frame> ### **Email History Section** Shows the entire email communication history related to the lead, including both active and closed threads. Emails are organised by date and subject to simplify review. New emails or replies can be added directly from the history interface. <Frame> <img alt="Email history" /> </Frame> # How to Transfer Ownership and Merge Client's Accounts Source: https://docs.upmind.com/using-upmind/client-management/how-to-transfer-ownership-and-merge-clients-accounts Consolidate and simplify client data and management In this guide, we will walk you through: 1. How to transfer ownership of a service. 2. How to merge two client accounts. ## Transfer Ownership Transfer Ownership allows you to move a contract product from one client account to another. This process is performed individually for each contract product. Behind the scenes, Upmind cancels the existing contract and creates a new one under the new client account. Before proceeding, make sure the contract has no unpaid invoices. Note that all existing invoices and billing history will remain with the original client account. Follow these steps to transfer ownership: 1. Go to `Products and Services`. 2. Select the contract product you want to transfer. 3. Navigate to the `Settings tab`. <Frame> <img alt="alt text" /> </Frame> 4. Scroll down to `Advanced Options` and click **Transfer Ownership**. <Frame> <img alt="Transfer ownership" /> </Frame> ## Merge Accounts Merging Client Accounts combines two client profiles into a single account. All data from the old account is transferred to the target account, after which the old account can be deleted if no longer needed. Here’s how to do it: 1. Go to the `Clients` section. 2. Select the client profile you'd like to keep. 3. Click the **three dots** (•••) in the top-right of the client profile. 4. Choose `Merge Client Data` and select the target client to merge. <Frame> <img alt="Merge client data" /> </Frame> 5. Enter the confirmation code provided. 6. Click Merge Client Data to complete the process. <Frame> <img alt="alt text" /> </Frame> # Storing Client Notes and Secrets Source: https://docs.upmind.com/using-upmind/client-management/storing-client-notes-and-secrets The "Vault" is a way of sharing information about a client or client service. Notes and Secrets can be * Plain text or encrypted * Visible (and editable) by the client, or hidden from the client * Attached to a client, or attached to a client service. * Pinned, so they have priority over others * Edited and Deleted Example use cases include: * A client sharing external login details with support * Staff members leaving notes about clients (not visible to clients) * Providing clients with access information about their services ### Adding Notes and Secrets To add notes or secrets to a client profile simply navigate to their profile and find the Vault section. You can view and add assets. <img alt="" /> To add notes to a product navigate to the product and click the 'Notes and Secrets' tab. ### Client View Clients can view their notes and secrets in their client area under `My Account` > `Notes and Secrets`. They can also view it from a support ticket directly. # Auto-accepting Requests Source: https://docs.upmind.com/using-upmind/how-subscription-cancellation-works/auto-accepting-requests Auto-accept requests to cancel overdue products. Auto-accept skips manual review for specific cancellation requests. You can configure this in subscription options. ## **Access subscription options** 1. Log in to Upmind admin. 2. Go to **Settings** > **Subscription Options** under **Branding and Customisation**. <Frame> <img alt="Settings > Branding and Customisation > Subscription Options" /> </Frame> ## **Enable auto-accept** 1. Under **Cancellation Terms**, select **Auto-accept cancellation requests for overdue products**. 2. Save changes. <Frame> <img alt="Requests auto-approve if the invoice is overdue. It has an immediate effect on new requests." /> </Frame> ## **When auto-accept triggers** 1. Client submits a cancellation request on an overdue subscription. 2. Upmind skips creating an open support ticket. 3. Contract cancels based on the selected option, either immediate or end of term. <Note> Client-level overrides are available under Automation Overrides. For more details, follow this [guide](https://features.upmind.com/dashboard/articles/pmbul2hh9yd1joja/4771567). </Note> # Cancellation Fields Source: https://docs.upmind.com/using-upmind/how-subscription-cancellation-works/cancellation-fields Manage custom fields for subscription cancellation. You can add custom fields to cancellation forms to collect detailed client feedback. Fields appear when clients cancel products or services with immediate effect. These can also be used as custom fields for the basket. <Warning> Use these responses to identify issues and improve retention for your business. </Warning> ## **Adding a custom cancellation field** 1. Go to **Settings** > **Custom Cancellation Fields** under **E-commerce Settings**. <Frame> <img alt="Settings > E-Commerce Settings > Custom Cancellation Fields" /> </Frame> 2. Click **Create Custom Field**. <Frame> <img alt="Create custom field" /> </Frame> 3. Set the custom field type and custom field name. <Frame> <img alt="Set custom field type and name" /> </Frame> 4. Click save. <Frame> <img alt="Custom cancellation field examples" /> </Frame> ## Custom cancellation field types You can choose from the following cancellation field types: * Text input * Password * Select * Checkbox * Text area * Date * Number * Image ### **Text input** A free-form text field (ideal for short answers). <Frame> <img alt="Text input" /> </Frame> ### **Password** A password text field that obscures the data. <Frame> <img alt="Enter password" /> </Frame> ### **Select** Creates a drop-down menu. Users can click the Add option button to add items to the drop-down menu. <Frame> <img alt="Create drop-down" /> </Frame> ### **Checkbox** A Yes/No tick box. A checked box means Yes (The default setting is unchecked - No). <Frame> <img alt="Yes - No tick box" /> </Frame> ### **Text area** Clients enter a long-form response. <Frame> <img alt="Text field" /> </Frame> ### **Date** Clients click the field and enter a date with the calendar. <Frame> <img alt="Select a date" /> </Frame> ### **Number** Clients click the field and enter a number. <Frame> <img alt="Enter a number" /> </Frame> ### **Image** Clients click the field and upload an image file. <Frame> <img alt="Upload image" /> </Frame> ## **Custom field options** When creating a custom field, you can set a number of customisation options. <Frame> <img alt="Custom field options" /> </Frame> **Field Required?** Make a custom field mandatory for all new clients. If the field is a checkbox, the client must tick it before proceeding. **Hide from Client?** Create a custom field that is invisible to clients. This is useful for sorting clients based on internal data. Example: Tagging new clients who signed up using a discount code. **Display on Invoice?** Add the custom field to invoice documents. A typical use case is displaying the client's VAT number or account number on their invoices. **Filtering by Custom Fields** Once custom fields are added to client profiles, you can search and filter clients by those fields using the Client Filter options. Filters can be saved for quick access later. ## Show reason and custom cancellation fields at the end of the billing term ### **Access subscription options** 1. Log in to Upmind admin. 2. Go to **Settings** > **Subscription Options** under **Branding and Customisation**. <Frame> <img alt="Settings > Branding and Customisation > Subscription Options" /> </Frame> On Cancellation, you can find these options: ### For clients * **Show Custom Cancellation Fields and Reason for End-of-Term Cancellation:** When on, clients fill in the custom fields or enter a reason when requesting cancellation at the end of the billing cycle. <Frame> <img alt="Client custom fields for cancellation" /> </Frame> Once enabled, the client can select the Cancellation Option and fill in the custom fields. Admins can see more details once the cancellation request is submitted. <Frame> <img alt="More cancellation details" /> </Frame> <Frame> <img alt="Manage cancellation" /> </Frame> ### For users * **Require Users to Fill Custom Fields or Provide Cancellation Reason:** Prompts clients to enter a reason or complete custom fields when cancelling or setting end-of-term expiry. Also creates a contract request record. <Frame> <img alt="User custom fields for cancellation" /> </Frame> Staff users will also be asked to fill out custom fields and cancellation reasons. They can access this from the **Quick Actions** on **Client** > **Products & Services**. <Frame> <img alt="Client > Products & Services > Client" /> </Frame> ## **Manage cancellation requests** You can view and handle client cancellation requests under **Billing > Cancellation Requests**. When **Show Custom Cancellation Fields and Reason for End-of-Term Cancellation** is enabled, submitted requests appear here with client-provided reasons and custom field responses. <Frame> <img alt="Billing > Cancellation requests" /> </Frame> Staff and admins can review details and take action directly from this section. # Retention Systems (Beta) Source: https://docs.upmind.com/using-upmind/how-subscription-cancellation-works/retention-systems-beta Overview of tools designed to measure and improve retention. Upmind’s Retention Tools help you effectively manage overdue subscriptions and recently cancelled products to reduce customer churn. The tools provide a clear dashboard displaying all at-risk subscriptions with essential contract information such as status, billing cycle, pricing, and renewal dates. You can categorise reasons for lost subscriptions, and also track your retention process. <Warning> This system can provide a structured **cancellation flow,** which can allow you to understand why a client is cancelling their subscription and offer a last-minute, personalised incentive to stay. </Warning> ## **Accessing the retention dashboard** Navigate to **Billing** > **Retention (Beta)** in the Upmind Admin Panel to view detailed contract and product status data. <Frame> <img alt="Billing > Retention (Beta)" /> </Frame> ## **Retention process and statuses** Track the status of each contract’s retention journey to intervene promptly, improving the chances of retaining subscriptions before they lapse: * **Flagged**: Subscription or contract product is cancelled or overdue. * **In Progress**: Active retention efforts are underway by the retention or customer care team. * **Lost**: Subscription has been lost and is no longer recoverable. * **Saved**: Subscription has been successfully retained through intervention and has been prevented from being cancelled. ## **Custom retention reasons** You can create custom reasons and assign them manually to retention cards, using as many as needed within the retention system. 1. Go to **Settings** > **Miscellaneous** > **Retention Reasons**. <Frame> <img alt="Settings > Miscellaneous > Retention reasons" /> </Frame> 2. Click **Create Custom Reason**. <Frame> <img alt="Create custom reason" /> </Frame> 3. Enter reason details and save. <Frame> <img alt="Enter reason" /> </Frame> ## **Create default retention reasons** You can add default retention reasons and assign them to specific retention statuses. <Frame> <img alt="Default retention reasons" /> </Frame> <Frame> <img alt="Create retention reason" /> </Frame> In the **Retention UI**, you can flag cards, select reasons, add notes, and view the activity log. <Frame> <img alt="Manage retention" /> </Frame> <Note> As this feature is in Beta, updates and enhancements will be reflected in the guide. </Note> # Subscription Cancellation Options Source: https://docs.upmind.com/using-upmind/how-subscription-cancellation-works/subscription-cancellation-options Configure subscription cancellations. Upmind gives you control over how clients cancel subscriptions through global settings and per-contract actions. Clients can request cancellation from their account. Admins handle requests based on your configured rules. ## **Global cancellation settings** You can set the default behaviour for all subscription cancellations. ## **Access subscription options** 1. Log in to Upmind admin. 2. Go to **Settings** > **Subscription Options** under **Branding and Customisation**. <Frame> <img alt="Settings > Branding and Customisation > Subscription Options" /> </Frame> ## **Cancellation terms options** Upmind supports two cancellation points for subscriptions. 1. Immediate cancellation: The subscription is cancelled right away, and the service stops immediately. 2. End of billing term cancellation: The subscription remains active until the end of the current billing period and then stops. The cancellation term options can: * **Prevent clients from cancelling paid invoices**: Blocks cancellation until the current term ends. This is for services that require full payment periods. * **Auto-accept requests for overdue invoices**: Approves cancellations on unpaid invoices. * **Open support ticket automatically**: Creates a ticket assigned to a specific department. When assigning a cancellation ticket department, make sure **Allow clients to select this department when creating a ticket** is enabled from **Settings** > **Support Departments** > \[Your Department] <Frame> <img alt="Settings > Support Department" /> </Frame> <Frame> <img alt="Enable allow clients to select this department when creating a ticket" /> </Frame> If disabled, clients will see an error: **There was an error while creating a ticket for this invoice**. * **Allow Immediate Cancellation Requests**: When off, clients can only cancel at the end of the billing term. Applies to client-side requests only. <Note> When assigning a cancellation ticket department, make sure **Allow clients to select this department when creating a ticket** is enabled. Settings → Support Departments → \[Your Department] If disabled, clients see an error: "There was an error while creating a ticket for this invoice." </Note> <Frame> <img alt="Manage cancellation requests from Cancellation" /> </Frame> <Info> Client-level overrides are available under Automation Overrides. For more details, follow this [guide](https://features.upmind.com/dashboard/articles/pmbul2hh9yd1joja/4771567). </Info> ## **Contract terms (strict mode)** * **Strict Reconciliation Mode**: Evaluates contracts by paid invoices. This suspends or cancels unpaid ones or allows next-due-date mode for incomplete histories. * **Cancel Unpaid Invoices on Auto-renew Off:** Cancels future unpaid invoices when auto-renew turns off. Fully cancels the contract if the invoice contains only those products. * **Block Charges on Pending Cancellations**: Stops charge attempts on invoices with pending cancellation requests. <Frame> <img alt="Configure strict mode" /> </Frame> * **Cancel Unpaid Invoices on Contract Close:** Auto-cancels all unpaid contract invoices during automatic contract closure. * **Cancel Unpaid Invoices on Contract Cancel**: Auto-cancels all unpaid contract invoices during automatic contract cancellation. <Frame> <img alt="Unpaid invoice cancellations" /> </Frame> ## How to cancel a subscription ### **Client cancellation process** Clients cancel from their account dashboard. 1. Log in to the client area. 2. Go to **Products & Services** > **Subscriptions**. <Frame> <img alt="Products & Services > Subscriptions" /> </Frame> 3. Click the product > **Billing** tab. 4. Click **Cancellation Options**. <Frame> <img alt="Billing > Cancellation Options" /> </Frame> 5. Choose **Immediate Cancellation** or **End of Billing Term**. 6. Enter reason (required). 7. Submit a request. <Frame> <img alt="Submit cancellation request" /> </Frame> If you cancel with immediate effect, refund options will appear. You can choose to refund to the original payment source or as account credit. Upmind sends a confirmation email. The status then shows under the **Cancelled** tab in Subscriptions. <Frame> <img alt="Cancellation request" /> </Frame> ### Product & service cancellation options These are options available to the admin or staff. You can access these options from **Product Catalogue** > **Chosen Product or Service** > **Product Automation**. <Frame> <img alt="Product Catalogue > Chosen Product or Service > Product Automation" /> </Frame> * **Cancel Anytime:** Allows cancellation requests at any point during the billing term. * **Automatically Accept Cancellation Requests:** Automatically approves requests for this product. Automated acceptance issues no refunds. You can only do so if you issue it manually. * **Use Brand Recommended Money Back Period Value:** Applies the brand's recommended money back period from global settings to this product. * **Recommended Money Back Period:** Number of days for refunds on immediate cancellations, set at the brand level. <Frame> <img alt="Product cancellation" /> </Frame> ### **Admin cancellation actions** Admin or staff can cancel subscriptions from the admin dashboard. **Cancel from the client profile** 1. Go to **Products & Services** > **Subscriptions**. 2. Use a menu tab (e.g. Active, Awaiting for payment, etc.) to filter results. (optional) 3. Find the subscription contract > **Manage**. <Frame> <img alt="Products & Services > Subscriptions" /> </Frame> 4. Under **Quick Actions**, choose **Cancellation Options** and submit the request. <Frame> <img alt="Quick actions > Cancellation options" /> </Frame> ## **Subscription status update** ### For paid invoices After submitting the cancellation, Upmind changes the subscription status to **Lapsed**. <Frame> <img alt="Lapsed status" /> </Frame> ### For unpaid invoices When you cancel with **immediate effect**, the status changes to **Cancelled**. The client will receive a notification. <Frame> <img alt="Cancelled status" /> </Frame> <Note> You can reactivate a cancelled or lapsed contract. For more details on **How to Modify a Subscription Contract**, follow this [guide](/using-upmind/manage-client-services/how-to-modify-a-subscription-contract). </Note> # Turning on/off Auto-renew Source: https://docs.upmind.com/using-upmind/how-subscription-cancellation-works/turning-onoff-auto-renew Stop recurring payments. Clients and staff can toggle auto-renew per subscription to control recurring invoices. Manual renew options are also available for recurring payments. ## Turning off auto-renew 1. Log in to Upmind. 2. Click **Products & Services** and choose the subscription. 3. Go to the **Settings** tab. 4. Click the **Turn off auto-renew** link. <Frame> <img alt="Clients > Products & Services > Settings > Turn off auto-renew link" /> </Frame> 5. Click **Turn off auto-renew** in the pop-up confirmation window. <Frame> <img alt="Turn off auto-renew" /> </Frame> The auto-renew status changes to off. <Frame> <img alt="Auto-renew turned off" /> </Frame> <Warning> Cancelling a subscription stops it from renewing after the current payment period ends so your service continues unaffected until then. </Warning> If you want to turn the auto-renew on again, click **Turn on auto-renew.** ## Manual renew When the auto-renew feature is turned off, the client can manually renew the subscription. 1. Click the manual renew link in the text. <Frame> <img alt="Manual renew" /> </Frame> 2. Click **Issue next invoice** in the pop-up confirmation window. <Frame> <img alt="Manually generate an invoice" /> </Frame> 3. Upmind displays a new invoice. <Frame> <img alt="New invoice" /> </Frame> <Info> Strict mode cancels unpaid future invoices if off. </Info> If you want to change the renewal date of a subscription, follow this [guide](https://features.upmind.com/dashboard/articles/pmbul2hh9yd1joja/0341867). If you want to know how to manage renewal automation settings, follow this [guide](https://features.upmind.com/dashboard/articles/pmbul2hh9yd1joja/1852492). # What happens when clients don't pay Source: https://docs.upmind.com/using-upmind/how-subscription-cancellation-works/what-happens-when-clients-dont-pay What happens when a client does not pay an invoice? When an invoice is not paid, Upmind follows the timelines configured in your Subscription Options. The system moves the related contract through a series of stages. These stages include: * Reminder notifications * Overdue status * Service suspension * Contract cancellation * Final termination Each step runs automatically based on the delay values you configure. If no overrides are applied, all services follow this lifecycle. ### Can this process be customised? Yes. All timelines and actions are controlled from Subscription Options. You can adjust: * Reminder schedules * Grace periods * Suspension timing * Cancellation timing * Termination timing You can view subscriptions at risk during this process in the Retention Dashboard. ### Can automation be disabled for specific clients? Yes. You can override automation rules at the client level. Client-level overrides are available under **Automation Overrides**. For more details, follow this [guide](https://features.upmind.com/dashboard/articles/pmbul2hh9yd1joja/4771567). ## Notifications and reminders ### How are payment reminders sent? Upmind sends reminders based on the notification schedule configured in Subscription Options. 1. Log in to Upmind admin. 2. Go to **Settings** > **Subscription Options** under **Branding and Customisation**. <Frame> <img alt="Settings > Branding and Customisation > Subscription Options" /> </Frame> You can define: * **Days' Notice Before Invoice Due Date:** Number of days before invoice due date to send reminder notifications. * **Overdue Reminder Interval Days:** Interval in days between overdue notifications. * **Max Overdue Notifications:** Maximum number of overdue reminders sent per invoice. These settings control how often and how many reminders are sent. <Frame> <img alt="Notification reminders" /> </Frame> ### **What is the pre-termination notification?** **Pre-termination Notification Interval:** Sends a warning for the number of days before contract termination to send notification. Set to 0 for no notifications. <Frame> <img alt="Pre-termination notification interval" /> </Frame> ## Configure suspension, cancellation, and termination delays ### **When is a service suspended?** A service is suspended after the invoice becomes overdue and passes the configured suspension delay. * **Overdue Contract Suspension Delay Days:** Number of days an overdue contract waits before automatic suspension. **Example**: If set to 7, the service is suspended 7 days after the invoice becomes overdue. ### When is a contract cancelled? A contract is cancelled after the cancellation delay is reached. * **Overdue Contract Cancellation Delay Days:** Number of days an overdue contract waits before automatic cancellation. **Example**: If set to 14, the contract is cancelled 14 days after becoming overdue. ### When is a contract terminated? Termination is the final stage. It permanently closes the contract. * **Overdue Contract Termination Delay Days:** Number of days an overdue contract waits before automatic termination. **Example**: If set to 30, the contract is terminated 30 days after becoming overdue. <Frame> <img alt="Contract delays" /> </Frame> ### **Do trial products follow the same rules?** Trial products use separate delay settings. Available options: * **Overdue Contract Suspension Delay Days (Trial Products):** Number of days a trial contract stays overdue before automatic suspension. * **Overdue Contract Cancellation Delay Days (Trial Products):** Number of days a trial product contract stays overdue before automatic cancellation. * **Overdue Contract Termination Delay Days (Trial Products):** Number of days a trial contract stays overdue before automatic termination. <Frame> <img alt="Contract delays (trial product)" /> </Frame> ## Invoice and payment behaviour ### Can clients manually generate recurring invoices? Yes, but this can be restricted. * **Restrict issuing manual recurring invoices**: When on, it applies a day interval restriction. Blocks clients from manually issuing recurring invoices within that period. * **Manual Recurring Invoice Interval:** Number of days before the due date when clients can manually create a recurring invoice. When enabled, clients cannot generate recurring invoices within a defined number of days before the due date. <Frame> <img alt="Restrict manual issuing of recurring invoices" /> </Frame> <Warning> For more information on invoice generation and due dates, follow this [guide](https://features.upmind.com/dashboard/articles/pmbul2hh9yd1joja/6021598). </Warning> ### What happens if a client partially pays an invoice? If partial payments or account credit are used, the remaining balance stays due. The service will still follow overdue rules for any unpaid amount. You can use the following to settle the remaining balance before suspension or cancellation occurs: * Account credit * Wallet balance * Manual payments ## Troubleshooting scenarios ### Why is a service still active even though the invoice is overdue Possible reasons * Suspension delay has not been reached * Automation overrides are enabled for the client * The service is part of a custom workflow or exception Check the configured delay settings and client overrides. ### Why was a service suspended earlier or later than expected This usually relates to the delay configuration. You can check: * Suspension delay days * Cancellation delay days * Termination delay days If invoice consolidation is active, timing may follow consolidation rules instead of standard automation. ### How can I monitor unpaid subscriptions? Use the **Retention Dashboard** to track: * Overdue subscriptions * Cancellation risk * Contract status changes This helps identify clients who may need follow-up before cancellation. For more information on retentions, follow this [guide](/using-upmind/how-subscription-cancellation-works/retention-systems-beta). # A Guide to Invoice Consolidation Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/a-guide-to-invoice-consolidation Combine multiple charges into a single invoice. This guide covers everything you need to know about invoice consolidation in Upmind, from enabling the feature to managing payment methods. **Here’s what you should know about our consolidation system:** * Invoice consolidation only applies to renewal invoices. * If consolidation is enabled after there are existing unpaid renewal invoices, those invoices will not be automatically consolidated. * Once invoice consolidation is enabled, invoice generation and due dates no longer follow the automation interval. They follow the invoice consolidation rules instead. ## **Enabling invoice consolidation** 1. Go to **Settings** > **Order Options** under Ecommerce Settings. <Frame> <img alt="Settings > Order options" /> </Frame> 2. Scroll to the `Consolidation` section and check the box to enable. 3. Restrict consolidation management to staff only. (Optional) <Frame> <img alt="Invoice consolidation" /> </Frame> To restrict consolidation access to staff only, check the Allow only staff using that feature box, preventing clients from using it directly. <Frame> <img alt="No consolidation" /> </Frame> When the **allow only staff users** option is enabled for invoice consolidation, clients must [<u>submit a ticket</u>](/using-upmind/service-desk/about-upminds-service-desk-features) to request consolidation through their account. ## **Invoice consolidation timing options** Invoice consolidation groups multiple invoices into one based on specific rules. Importantly, consolidation is based on the *next invoice date*, not the due date. 1. **Consolidation Rules**: You can define how invoices are consolidated using these options: * **Consolidate on a selected date each month**: Choose a date (e.g., the 15th), and the system consolidates invoices from that date up to the day before the same date next month. * **Consolidate on the first day of the month**: On the 1st of each month, the system consolidates invoices for the entire upcoming month. * **Consolidate on the last day of the month**: On the last day of each month, the system consolidates all invoices with next\_invoice\_dates in the following month, excluding the last day itself. * **Consolidate on a selected day of the week**: On a specified weekday (e.g., Monday), the system consolidates invoices for the entire current week, from that day through the week’s end. * **Consolidate invoices issued on the same day**: The system consolidates all invoices scheduled to be issued on the same day. <Frame> <img alt="Consolidation rule" /> </Frame> 2. **Consolidation Rule – Date of Month**: This option lets you specify the day of the month when invoices are consolidated, such as the 1st, 15th, or last day, depending on your billing cycles and business needs. <Frame> <img alt="Consolidation rule – Date of month" /> </Frame> 3. **Consolidation Rule – Day of Week**: This option sets the specific day of the week (e.g., Monday, Tuesday) on which invoices should be consolidated. <Frame> <img alt="Consolidation rule – Day of week" /> </Frame> 4. **Due Date Interval for Consolidated Invoices**: The due date of the consolidated invoice is set a specified number of days (e.g., 7 days) before the next\_invoice\_date of the earliest product or service date among the consolidated invoices. <Frame> <img alt="Due date interval for consolidated invoices" /> </Frame> <Danger> Upmind's billing terms are fixed to monthly, quarterly, semi-annual, or annual cycles, so partial-month charges require manual handling by adjusting the contract or product renewal date. You can [<u>change the renewal date of a subscription</u>](/using-upmind/manage-client-services/how-to-change-the-renewal-date-of-a-subscription) or [<u>modify a subscription contract</u>](/using-upmind/manage-client-services/how-to-modify-a-subscription-contract). </Danger> ## **Client overrides and product exclusions** Clients can manage their own consolidation rules unless restricted (if you do not check the option **Allow only staff using that feature**). <Frame> <img alt="Billing > Settings" /> </Frame> ### **Client-managed consolidation** Clients can exclude specific products from invoice consolidation: 1. Navigate to `Products and Services`. 2. Select the product to exclude. 3. Go to the `Billing` tab. 4. Find Invoice Consolidation and change it to **Exclude invoice when consolidating**. 5. Click **Save**. <Frame> <img alt="Products and services > Billing" /> </Frame> ### **Admin-managed consolidation** If only admins manage consolidation, you can handle client requests individually. 1. **To exclude a product from consolidation for a client**: * Go to `Products & Services` in the client profile. * Select the product. * Click **Settings**. * Choose **Exclude invoices when consolidating**. <Frame> <img alt="Products and services > Settings" /> </Frame> 2. **To exclude a client entirely from invoice consolidation**: * Go to `Settings` in the client profile. * Click **Billing**. * Select **Do not consolidate invoices**. <Frame> <img alt="Settings > Billing" /> </Frame> 3. To exclude a specific product from all consolidated invoices: * Go to `Products & Services`. * Click **Product Automation**. * Select **Exclude from invoice consolidation**. <Frame> <img alt="Products and services > Product automation" /> </Frame> ## **When invoices are consolidated automatically** Invoices consolidate automatically when multiple subscriptions for the same customer renew within a specific time frame, allowing all charges to be combined into a single invoice for easier payment and clearer billing. Invoices are consolidated based on the following criteria: * Client * Client address or company details * Currency **Examples**: 1. **Same Client with Different Currencies**: If a client has services billed in different currencies (e.g., one in USD and another in EUR), they will receive separate invoices for each currency. 2. **Same Client with Different Addresses**: If a client has services at different addresses with varying currencies (e.g., a UK address billed in GBP, another UK address billed in EUR, and a DE address billed in EUR), invoices are issued as follows: * One invoice in GBP for the UK address. * Two separate invoices in EUR, one for each address (UK and DE). ## **Payment methods for consolidation** When a client has a default payment method saved in their client area, Upmind uses this method during consolidation, ignoring any payment methods set for individual services. ## **Custom consolidation invoice due date** By default, consolidated invoices are due based on the earliest invoice due date in that consolidation batch. This setting lets you pin the due date to a specific day of the month instead, useful for clients whose contracts are set to never suspend on payment failure. Before you begin, confirm all three of the following are active: 1. **Never Suspend** is enabled from **Clients** > **Global automation overrides**. <Frame> <img alt="Enable never suspend" /> </Frame> 2. **Auto cancel unpaid invoices which have partial payment** is turned **OFF**. Go to **Settings** > **Order Options**. Then, under the Misc section, enable Auto cancel unpaid invoice, which have partial payment. <Frame> <img alt="Auto cancel unpaid invoice, which have partial payment" /> </Frame> 3. A **monthly** consolidation rule is set (first day of month, last day of month, or specific day of month). Go to **Clients** > **Consolidate Invoices** (Admin/Staff). <Frame> <img alt="Clients > Consolidate Invoices (Staff)" /> </Frame> Go to **Billing** > **Settings** > **Consolidate Invoices** (Client). <Frame> <img alt="Billing > Settings > Consolidate Invoices (Client)" /> </Frame> <Warning> This setting is not available for weekly or same-day consolidation rules, and it will not appear in the interface if those conditions above are not met. </Warning> ### Setting a custom due date for a client 1. Open the client profile and go to **Settings > Billing**. 2. Find the **Consolidation due date** field. 3. Enter the day of the month you want consolidated invoices to be due (e.g., `28`). 4. Click **Save**. <Frame> <img alt="Specify consolidation invoice due date day" /> </Frame> This can be set or edited by both staff and clients (unless client access to consolidation settings has been restricted to staff only). ### **How the due date is applied** * The day you set here overrides the default earliest-date logic for that client's consolidated invoices going forward. * Any previously unpaid invoices are not affected, and they keep their original due dates. * Add-ons and changes apply to future invoices only, from the point at which this setting is saved. * If the configured day does not exist in a given month (e.g., day 30 in February), the due date falls on the last available day of that month (e.g., the 28th or 29th in a leap year). <Note> This setting only controls the **due date** of the consolidated invoice, not when it is created or when consolidation runs. </Note> ## Common scenarios ### Consolidation does not include all expected products In some cases, not all services appear in a consolidated invoice even when they seem aligned. This behaviour usually comes from how consolidation works internally. Consolidation is based on the **next invoice date**, not the due date. **Common reasons include:** * The services do not share the same **next\_invoice\_date**, even if their due dates look similar. * A product has been explicitly excluded from consolidation at the product or client level. * The services use different currencies or billing entities, which always results in separate invoices. * Consolidation was enabled after invoices were already generated, and existing invoices remain separate. **Example:** The behaviour in the example below depends on which consolidation rule is active. If the weekly consolidation rule is enabled and both dates fall within the same billing week, both services can be grouped into a single consolidated invoice. A client has: * Service A renewing on March 1. * Service B renewing on March 2. **With a monthly or date-based rule**, these two services may not consolidate since their `next_invoice_date` values differ. **With a weekly rule**, both services fall within the same billing week and will be included in the same consolidated invoice. ### Consolidation enabled, but existing invoices are not merged When consolidation is enabled after invoices already exist, those invoices are not merged automatically. **What to expect:** * Only future renewal invoices follow consolidation rules. * Existing unpaid invoices remain unchanged. **Recommended approach:** * If unpaid invoices were generated before invoice consolidation was enabled, they can still be manually consolidated without cancelling them. As long as the invoices share the same billing address and currency, you can group them immediately instead of waiting for the next billing cycle. * Wait for the next billing cycle for automatic consolidation to take effect going forward. ### How consolidation timing affects the invoice Consolidation timing directly controls which services are grouped together. **Monthly date rule example:** If consolidation is set to the 15th: * All services with next invoice dates between the 15th and the 14th of the next month are grouped. * Services outside that range are excluded. **First day of the month rule:** * All services renewing within the upcoming month are grouped into one invoice generated on the 1st. **Last day of the month rule:** * Services renewing in the following month are grouped on the last day of the current month (excluding that last day itself). **Weekly rule:** * Services within the same billing week are grouped together. ### Due date calculation for consolidated invoices The due date is based on the earliest service billing start date among all included services. **How it works:** Each service has a `from_date` representing the start of its next billing period. * The system identifies the earliest `from_date`. * The due date is calculated using the configured offset. **Example:** * Offset set to 0 > Due date equals the earliest `from_date` (e.g. 1st of the month). * Offset set to -5 > Due date is 5 days after the earliest `from_date`. ### Client selects different consolidation rules Different rule selections produce different grouping behaviour. **Selected date (e.g. 10th):** * Consolidates services from the 10th of the current month to the 9th of the next month. **First day of the month:** * Groups all services renewing within that month. **Last day of the month:** * Groups services for the following month, excluding the last day itself. **Selected weekday:** * Groups services within that weekly cycle. # About Multi-Currency Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/about-multi-currency Automate currency conversions. This guide explains how Upmind supports selling and invoicing in multiple currencies with automatic conversions throughout the sales process. ## Home currency Your store’s home currency, called the `store currency` in Upmind, sets the price for all products and services. You must set your store currency during initial setup, as it becomes locked and unchangeable after the first sale. Using this currency and current exchange rates, Upmind automatically converts prices to display them to a global audience. <Warning> Set your store currency on the page under Ecommerce Settings when creating your Upmind store. </Warning> ## Managing currencies You can add or remove currencies by associating them with payment gateways in **Settings** > **Payment Providers**. Currencies linked to a payment gateway appear as options for clients at checkout. <Frame> <img alt="Manage currencies" /> </Frame> **Example**: EUR, GBP, and USD are available currencies in the store. ## Store currency By default, clients see prices in your brand currency. You can override this by adding the currency parameter to your URL, for example: `https://shop.brand.com/order/shop?currency=USD` ## Product pricing Upmind offers multiple currency options for pricing. 1. You can manually set prices for each currency. <Frame> <img alt="Set prices" /> </Frame> 2. You can also enable auto-conversion, where prices are automatically converted from your home currency based on exchange rates. <Frame> <img alt="Choose make available" /> </Frame> ## Exchange rates Upmind automatically updates daily exchange rates but allows manual overrides for fluctuations. You can manage rates in **Settings** > **Currencies**. <Frame> <img alt="Settings > Currencies" /> </Frame> ### Recurring price calculation You can choose how recurring prices adjust to currency changes by selecting one of the following options: * Keep the original rate. * Recalculate the price with the current exchange rate. * Use current rates but keep the same price for current clients. <Frame> <img alt="Choose recalculate" /> </Frame> ## Auto-conversion Check the box to automatically calculate missing currency prices. <Frame> <img alt="Calculate missing prices" /> </Frame> ## Client currency preferences (default) Each client has a default currency that appears when they visit your store, which they can change at any time. Clients can also override the currency for individual orders. Changing a client's default currency does not affect existing subscriptions, which must be updated individually. ## Changing service currency Staff can change the currency of an active service by going to the `settings` tab and clicking **Change Currency**. This action closes the existing contract and creates a new one in the new currency, preserving due dates and provisioning details. <Frame> <img alt="Change currency" /> </Frame> ## Forced exchange rates This feature lets you apply a percentage adjustment to current market or manual exchange rates. When toggled **ON**, you can set a positive or negative percentage to increase or decrease the exchange rate for currency conversions. The forced rate applies on top of manual rates, giving precise control beyond automatic values. Turning **OFF** the toggle disables forced rates, reverting to standard automatic or manual rates. <Frame> <img alt="Forced exchange rates" /> </Frame> ## Wallet balances Client wallets can hold multiple currencies, and you can customise how these funds are applied to settle invoice balances. 1. Go to **Settings** > **Payment Options**. 2. Check the box to convert wallet funds to the payment currency. (Optional) 3. Check the box to automatically draw funds from the wallet to settle due automatic payments. (Optional) <Frame> <img alt="Settle the due payment automatically" /> </Frame> # Advanced Subscription Pricing Tools Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/advanced-subscription-pricing-tools Managing complex recurring subscription pricing. Upmind offers advanced tools to simplify and speed up the process of setting up product pricing, especially for subscriptions with multiple terms or currencies. ## Accessing advanced pricing 1. Go to the `Product Billing` page for any product. 2. Click the **Advanced** button under **Subscription Terms** to enter advanced pricing mode from the dropdown menu. <Frame> <img alt="Advanced pricing" /> </Frame> ## Auto-populate prices You can quickly generate pricing for multiple terms and currencies based on a single entry. 1. Enter the price for one term (e.g., annual). 2. Select the billing cycle and currencies you want to auto-populate. 3. The system will fill in prices for the selected terms/currencies, using your base price as a reference. 4. Optionally, you can choose to overwrite existing prices or only fill empty fields. **Example**: Set an annual price, then auto-populate pricing for 2–10 year terms in multiple currencies. <Frame> <img alt="Auto-populate prices" /> </Frame> ## Copy prices from another product You can easily duplicate pricing from an existing product to a new one. 1. Select the source product to copy from. 2. Choose which terms and currencies to copy. 3. Apply the copied prices to your current product. <Warning> This is essential if you want to apply domain pricing from one TLD to another, or replicate standard pricing across similar products. </Warning> <Frame> <img alt="Copy prices from another product" /> </Frame> # Bulk Operations for Subscription Pricing, Billing Intervals, and Status Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/bulk-operations-for-subscription-pricing-billing-intervals-and-status Changes to subscriptions and invoices. <Info> **The Bulk Operations feature is currently in Beta**, and its setup and customisation may change over time. Use caution when making changes, as future operations may affect its functionality. To update specific billing terms, configure segment parameters correctly to filter the billing cycle. **Currently, selecting a billing term in the bulk update window applies changes to all products unless properly filtered**. All changes made through Bulk Update are recorded in the activity log for each contract product. </Info> Bulk operations let you quickly modify prices, billing intervals, subscription statuses, and more across contract product categories, filters, and segments. To set up a bulk update: 1. Go to **Products & Services** > **Subscriptions Overview**. 2. Apply filters. 3. Choose **Bulk Update** from the menu. This guide will show you how to create a segment and apply bulk operations to contract products. <Note> **Watch the** [**YouTube tutorial**](https://www.youtube.com/watch?v=ng0HS8iCksI) **on Bulk Operations for subscription pricing, billing, and status.** </Note> ## Creating a segment 1. Go to **Product & Services** > **Subscriptions**. 2. Find `Subscription Segments` and click **Add**. <Frame> <img alt="Product & services > Subscriptions" /> </Frame> 3. Enter a segment name and set filters (e.g., product, billing term, status). 4. Click **Create**. <Frame> <img alt="Set segment parameters" /> </Frame> ## Applying bulk operations ### For price changes 1. Open the segment. <Frame> <img alt="Open segment" /> </Frame> 2. Click the three dots and select **Create bulk operation**. <Frame> <img alt="Create bulk operation" /> </Frame> 3. Select **Schedule price or term change**. <Frame> <img alt="Schedule price or term change" /> </Frame> 4. Select the method to either **Apply change across entire product configuration** or **Apply change to main product only**. <Frame> <img alt="Select method" /> </Frame> 5. Enter new pricing (fixed or percentage), adjust billing intervals, or update status. 6. Click **Create** to apply. <Frame> <img alt="Change price or billing term" /> </Frame> ### For interval or status changes 1. Select **Apply status or interval updates**. <Frame> <img alt="Apply status or interval updates" /> </Frame> 2. Choose the interval or status. 3. Click **Create**. <Frame> <img alt="Update interval or status changes" /> </Frame> ## For renewal invoices 1. Select **Generate next renewal invoice**, write a **reason**, and click **Create**. <Frame> <img alt="Generate next renewal invoice" /> </Frame> ## Viewing bulk operations history 1. Go to **Product & Services** > **Bulk operations**. 2. Review all past and current bulk operations, including those in progress. <Frame> <img alt="Product & services > Bulk operations" /> </Frame> ## Common scenarios ### **Adjusting billing dates or pricing (Single contract vs. Bulk)** The right tool depends on the scope of the change you need to make. For a single contract product, use the **Modify Product** option on the contract product's **Overview** tab. This updates the billing date or price for that specific subscription. Note that modifying a contract product this way will generate a migration invoice or a prorated invoice, depending on the nature of the change. <Frame> <img alt="Modify single contract product" /> </Frame> See the [Modify Product guide](/using-upmind/manage-client-services/how-to-modify-a-subscription-contract) for full details on how this works. For multiple contract products at once, use the **Bulk Operations** feature covered in this guide. Create a segment that targets the relevant subscriptions, then apply the appropriate bulk operation. When doing this, take care to select the correct operation type: * Schedule price or term change - For pricing and billing interval updates * Apply status or interval updates - For automation interval changes. Choosing the wrong operation type can apply changes more broadly than intended, so review your segment filters carefully before confirming. **Key points:** * Invoice regeneration cannot be used to change billing dates. Regenerating an invoice only updates client details on the invoice, such as the company name or billing address, and does not affect the billing cycle, renewal date, or service period in any way. * Billing date changes affect future invoice cycles only. \*\*Example: (\*\*To move billing from the 2nd of the month to the 10th) * Update the contract product renewal date. * Allow the system to generate new invoices based on the updated cycle. # Configuring Recurring Invoice Generation, Due Dates, and Automation Interval Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/configuring-recurring-invoice-generation-due-dates-and-automation-interval Automating billing cycles and due dates at brand, product, and contract product levels. Upmind allows you to customise **recurring invoice generation**, **due dates**, and **automation intervals** at multiple levels for maximum flexibility. For mass changes based on client criteria, follow these steps to use **Bulk Update** in the **Subscriptions Overview**. Here, you can create a segment and apply updates to invoice settings across multiple contracts. ## Brand level settings These settings apply to all products and clients by default, unless they are specifically overridden at the product or contract product level. 1. Go to **Settings** > **Order Options** from the **E-commerce Settings**. <Frame> <img alt="Settings > E-commerce settings > Order Options" /> </Frame> 2. Set when invoices are generated (e.g., on renewal date, or X days before). 3. Define invoice due dates (immediate, or X days after generation). 4. Save changes to apply globally. <Frame> <img alt="Brand level settings" /> </Frame> ## For the automation interval 1. Go to **Settings** > **Subscription Options** under Branding & Customisation. 2. Adjust contract product suspend, cancel, and close intervals. 3. Save changes. <Frame> <img alt="Automation interval" /> </Frame> ## Product level settings These settings override the brand level settings for specific products. 1. Go to **Settings** > **Product Catalogue** or directly from the `Store Catalogue`. 2. Select a product, then open the **Product Automation** tab. <Frame> <img alt="Settings > Product catalog > Product automation" /> </Frame> <Frame> <img alt="Store catalogue" /> </Frame> 3. Override global settings for invoice generation and due dates as needed. 4. Save changes for product-specific behaviour. <Frame> <img alt="Recurring invoice" /> </Frame> ## Contract product level These settings override both brand and product level configurations for specific clients' contract products. 1. Go to `Clients` and select the client. 2. Under `Products and Services`, select the contract product. 3. In the `Settings` tab, override invoice generation, due dates, and automation intervals for this client’s contract. 4. **Save** to apply. <Frame> <img alt="Client > Products & services > Settings" /> </Frame> ## Common scenarios ### Consolidation overrides automation intervals When services are part of consolidation: * Automation interval settings are ignored. * Invoice timing follows consolidation logic instead. This applies across: * Brand-level settings. * Product-level settings. * Contract product-level settings. ### Manual status and its effect on automation A contract product's status directly affects whether automation intervals apply. If a contract product is manually set to **Active**, for example, when it has an unpaid invoice or is approaching suspension, the system's automation intervals will not act on it. The contract stays in its manually assigned status regardless of configured suspend, cancel, or close intervals. Because of this, manually setting a contract to **Active** bypasses the protections that automation provides. It is generally not recommended unless you are able to actively monitor and manage that contract on a daily basis, as overdue invoices and lapsed services will not be handled automatically. # How to Add Additional Information to an Invoice Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/how-to-add-additional-information-to-an-invoice Adding notes, fields, or custom info. Upmind lets you add extra information to invoices using key-value pairs as metadata, which is especially useful for including additional records when reporting to external fiscal authorities. ## Adding metadata to an invoice 1. Go to **Client** > **Billing**. 2. Select the invoice you wish to update. <Frame> <img alt="Clients > Billing" /> </Frame> 3. Select an invoice, scroll down, and click **Manage metadata** under **Quick Actions**. This is useful for adding fiscal authority references, purchase order numbers, or custom notes. <Frame> <img alt="Manage metadata" /> </Frame> 4. Enter a **Meta Key** and **Meta Value**. * A meta key is a unique identifier or name used to store specific information. * A meta value is the actual data. <Frame> <img alt="Meta key and meta value" /> </Frame> 5. Click **Save** to add the information to the invoice. 6. Metadata is displayed on the invoice, visible to both admins and clients as needed. <Frame> <img alt="Updated invoice with metadata" /> </Frame> # How to Add Currencies and Exchange Rates Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/how-to-add-currencies-and-exchange-rates Customise the exchange rate from the base currency. Your base currency is an important setting to configure when creating your Upmind account, as it affects your payment gateway and revenue reporting. With flexible currency control, you can expand your store’s reach to a global audience. ## Base currency Choose your base currency during setup, **as it cannot be changed after the first invoice**. All other currencies use exchange rates relative to this base. Prices are set in the base currency, with other currencies calculated through automatic or manual rates, enabling global price display with automatic conversions. ## Product pricing Upmind allows flexible pricing for each product, supporting multiple currencies on a per billing term basis. 1. **Manual Multi-Currency Pricing**: Set explicit prices for each currency and billing cycle inside the product’s billing settings. <Frame> <img alt="to setting each product prices under the product billing" /> </Frame> 2. **Auto-Convert Pricing**: Enable automatic conversion based on current exchange rates. <Frame> <img alt="This can be configured on a per-product basis." /> </Frame> ## Manage the currency from the payment providers Currencies are added or removed by linking them to payment gateways, making them available as store currency options. 1. Log in to your Upmind account and go to **Settings** > **Payment Providers** under the E-commerce settings. 2. Add a new provider by filling out the required fields. Scroll down to the `Currencies` section. 3. Choose the currencies supported by the payment provider. These currencies will automatically appear in **Settings** > **Currencies** for exchange rate management. 4. Click **Create** to save the payment provider. It will then appear as an option on the client checkout page. <Frame> <img alt="Add payment providers based on your preferences" /> </Frame> <Frame> <img alt="Either choose some or all currencies here" /> </Frame> ## Manage exchange rates on Upmind By default, Upmind auto-converts prices using current market exchange rates, providing quick and accurate currency conversions. If you prefer to set exchange rates manually: 1. Go to **Settings** > **Currencies** under Brandings and Customisations. 2. For each currency, uncheck the Dynamic rate box to disable automatic updates. 3. Enter your preferred exchange rate manually. Manual rates override the automatic market rates, allowing you to set rates that better suit your business needs. You can manage manual exchange rates in either direction relative to your base currency. <Frame> <img alt="Set the exchange rate manually" /> </Frame> ## Paying an invoice in a different currency Clients can set their preferred payment currency; otherwise, all documents will default to this currency. As an admin, you can enable this option under **Settings** > **Payment Options**. <Frame> <img alt="Different currency invoice payment" /> </Frame> ## Recurring price calculation For recurring products or services, you can set price adjustments related to currency fluctuations. Click the field to choose: * **Keep the Original Rate**: Prices remain fixed regardless of exchange rate changes. * **Recalculate with Current Exchange Rate**: Prices adjust with each billing cycle according to the latest rates. * **Use Current Rates but Keep Price for Existing Clients**: New clients get recalculated rates, and existing clients retain their original pricing. <Frame> <img alt="Recurring price calculation" /> </Frame> ## Auto-conversion of missing prices Upmind can auto-calculate missing prices in other currencies using current exchange rates, keeping all prices updated without manual entry. <Frame> <img alt="Auto conversion" /> </Frame> ## Client default currency Each client has a default currency they see on your storefront when placing new orders. Clients can change their default or override currency on their order forms. Changing a client’s default currency will not affect existing subscriptions or contracts, which must be updated individually if needed. ## Changing the currency of a service Staff can update the currency of an active service from the subscription’s `Settings` tab: * Navigate to the specific subscription. * Scroll to the Change Currency section. Updating the currency will close the existing contract and open a new one in the selected currency. The process will preserve contract due dates and provisioning information to avoid service disruption. <Frame> <img alt="Change currency" /> </Frame> # How to Check an Invoice Status Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/how-to-check-an-invoice-status Monitor and understand invoice states. This guide explains how to find and review invoices by status category or customer, making it easy to track and monitor invoice states for any client or transaction. ## Accessing the invoices page 1. Log in to your Upmind dashboard. 2. Click **Billing** in the left menu. 3. Select the **Invoices list** tab to view all invoices and their current statuses. <Frame> <img alt="Invoices page" /> </Frame> ## Using filters and sorting 1. Use `quick filters` to display invoices by status (e.g., date paid, date created, due date). 2. Change the display order by clicking the `sort tool` with a dropdown menu that allows you to change the sort criteria, or an arrow icon that lets you toggle the sort order. <Frame> <img alt="Change display order" /> </Frame> ## Reviewing invoice details 1. Click any invoice in the list to open its details page. 2. View all related information, including: * Client details * Transactions and payment history * Linked support tickets * Email history 3. From this page, you can email the client directly or take further actions. <Frame> <img alt="Review details" /> </Frame> # How to Configure a Proforma Invoice Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/how-to-configure-a-proforma-invoice Setting up quotes and pre-bill drafts. A **proforma invoice** is a preliminary bill sent to buyers before delivery, outlining transaction details such as descriptions, quantities, prices, and terms. While not a demand for payment or an official record, it is often used for customs, pre-shipment approvals, or as a detailed quote before issuing a final invoice. Upmind supports proforma invoices with separate numbering that convert to regular invoices upon payment. This guide explains how to set up proforma invoices for unpaid invoices. ## How to enable a proforma invoice 1. Go to **Settings** > **Order Options**. <Frame> <img alt="Settings > Order options" /> </Frame> 2. Scroll to the `Proforma Invoice` section. 3. Toggle `ON` to enable proforma invoices. <Frame> <img alt="Proforma invoice" /> </Frame> 4. Choose which invoice categories will apply to proforma invoices. 5. You can exclude proforma invoices from reports. (Optionally) ## How to separate the invoice number sequence To use a different number sequence for proforma invoices, follow these steps: 1. In **Order Options** > **Miscellaneous**, tick *Separate number sequence for proforma invoices*. <Frame> <img alt="Separate number sequence for proforma invoices" /> </Frame> 2. The proforma invoice number will appear separately, starting at `#PRF-000001`, and will convert to a regular invoice upon payment. <Frame> <img alt="Proforma invoice number" /> </Frame> 3. After payment, the invoice number switches to your regular numbering sequence. <Frame> <img alt="Automatically converted to a regular invoice" /> </Frame> ## How to manage the proforma invoice number and prefix By default, proforma invoices start at `#PRF-000001`. To change the number or prefix, follow these steps: 1. Go to **Settings** > **Order Options** > **Invoice Number**. 2. Set the prefix and starting number for proforma invoices. <Frame> <img alt="Proforma invoice number and prefix" /> </Frame> # How to Configure Invoice Settings Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/how-to-configure-invoice-settings Default invoice options, templates, and preferences. Upmind automatically creates invoices for purchases and subscription payments. Admins and staff can customise invoice branding and terms for generation and cancellation. ## Accessing invoice settings 1. Go to your Upmind dashboard. 2. Click **Settings**. 3. Select the **Order Options** tile. <Frame> <img alt="Settings > Order options" /> </Frame> ## Selecting a brand If you manage multiple brands, use the dropdown in the top left of the `Order Options` page to select the brand you want to configure. <Frame> <img alt="Click drop-down menu" /> </Frame> <Frame> <img alt="Switch brand" /> </Frame> ## Customising invoice fields ### Invoice number & prefix This can be found under `Invoice Number`. Upmind auto-fills these fields. You can [<u>set the starting number and prefix for your invoices</u>](/using-upmind/invoicing-and-taxes/invoice-numbering-and-prefixes). (optional) <Frame> <img alt="Review and edit fields" /> </Frame> ### Non-recurring invoice due dates Set how many days after creation a non-recurring invoice is due. The due date is calculated as the invoice generation day plus the specified number of days. This applies to initial orders and migration invoices for product upgrades. <Frame> <img alt="Set due date" /> </Frame> ### Recurring invoice generation Set how many days before renewal a recurring payment invoice is generated. The invoice is created X days prior to the renewal date. <Frame> <img alt="Set generation date for recurring payments" /> </Frame> ### Recurring invoice due dates Configure due dates for recurring invoices to be on, before, or after the renewal date. This setting applies to renewal invoices, with the due date set X days relative to renewal. <Frame> <img alt="Set due date for recurring payments" /> </Frame> ## Manual invoice generation controls You can configure manual invoice generation at the brand and product levels to control when clients can create recurring invoices. ### At the brand level 1. Go to **Settings** > **Subscription Options** > **Contract Settings**. <Frame> <img alt="Settings > Subscription options" /> </Frame> <Frame> <img alt="Contract settings" /> </Frame> You can configure these options: * **Enable/Disable Manual Issuing of Recurring Invoices**: When enabled, clients can only generate recurring invoices within the specified timeframe. * **Manual Recurring Invoice Interval**: Set how many days before the due date clients can manually create a recurring invoice. ### At the product level Go to **Product Catalogue** > **\[Select Product]** > **Product Automation**. <Frame> <img alt="Settings > Product catalogue" /> </Frame> If manual issuing of recurring invoices is enabled at the brand level, you can refine the timeframe for each product: * You can apply the brand default settings or set a custom timeframe per product. * Define how many days before renewal a client can manually generate an invoice. * Early renewal is restricted outside the allowed period. <Frame> <img alt="Product automation" /> </Frame> ## Common scenarios ### Why are services not following the configured automation intervals? This is one of the most common questions when invoice timing appears inconsistent. Invoice generation settings work across three levels: * Brand * Product * Contract product If the timing looks off, check all three before drawing conclusions. At the brand level, the settings in **Settings** > **Order Options** act as the global default for all products and clients. At the product level, settings in **Product Catalogue** > **\[Product]** > **Product Automation** override the brand default for that specific product. At the **contract product level**, settings on an individual client's contract product override both the brand and product level, and this is the most granular level and takes the highest priority. One common cause of inconsistency is that product-level changes do not automatically apply to existing contract products. If you update invoice generation settings on a product, clients who already have that product active will not be affected unless you update their contract products individually, or [apply the changes in bulk](/using-upmind/invoicing-and-taxes/bulk-operations-for-subscription-pricing-billing-intervals-and-status) using the **Segment** feature in **Subscriptions Overview.** For more information, see this [guide](/using-upmind/invoicing-and-taxes/configuring-recurring-invoice-generation-due-dates-and-automation-interval). If all three levels look correctly configured but invoices are still not generating on the expected schedule, contact Upmind support, especially if the contract products were imported, as imported data may carry configuration differences that affect billing behaviour. Invoice generation settings defined here apply only when consolidation is not active. Once consolidation is enabled: * Consolidation rules override invoice generation timing. * Product-level automation intervals are ignored for consolidated services. **Example:** * A product is set to generate invoices 7 days before renewal. * Consolidation groups service monthly. The result is that the invoice is generated based on the consolidation timing, not the 7-day rule. # How to Configure Subscription Options Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/how-to-configure-subscription-options Manage global subscription settings. This guide explains how admins and store staff can customise global subscription and cancellation settings by configuring the overall **subscription options**. ## Accessing subscription options 1. Log in to Upmind. 2. Go to `Settings`. 3. Click the **Subscription Options** tile under **Branding and Customisation**. <Frame> <img alt="Settings > Subscription options" /> </Frame> ## Setting notification terms Define how your store sends notifications for overdue invoices by customising the timing, notice intervals, and the number of reminders. You can set up when and how clients are notified about overdue invoices and subscription events, ensuring timely and effective communication. <Frame> <img alt="Notification settings from Notifications" /> </Frame> ## Setting contract terms ### Set configuration for new contracts 1. You can restrict the manual issuing of recurring invoices by setting an interval during which clients cannot create them. 2. This interval specifies how many days before the due date clients may manually generate a recurring invoice. 3. Review the checkbox for unpaid invoices. The default shows that unpaid invoices are cancelled when contracts are closed. <Frame> <img alt="Manage closed contracts" /> </Frame> ### Set delay terms Enter the number of days to define when an overdue contract should be suspended, cancelled, or terminated. <Frame> <img alt="Manage delay settings" /> </Frame> <Warning> To prevent automation from suspending, cancelling, or closing a contract product, you can enable it. </Warning> # How to Edit an Invoice PDF Template Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/how-to-edit-an-invoice-pdf-template Customise invoice appearance. Upmind automatically generates an invoice for every order entered into the system. You can view a digital version on-screen and access a PDF version designed for printing or sharing. The PDF layout differs slightly and is based on default template settings, which you can customise. This guide explains how to customise your invoice template to suit your needs. <Note> On February 10, 2025, Invoice Templates were updated. Users who had not customised their default template were automatically upgraded to the new version. </Note> ## Opening a default PDF invoice 1. Log in to your Upmind dashboard. 2. Click **Orders** in the side menu. 3. Select an order, then click **Go to order**. 4. Click **View invoice** and then **Go to invoice**. <Frame> <img alt="View invoice" /> </Frame> 5. Download the PDF version to review the current layout. <Frame> <img alt="Download PDF" /> </Frame> Open the document to see the PDF invoice, which closely resembles the on-screen digital version but with minor layout and content differences. For example, the email address appears above the mailing address, and the business phone number is omitted. <Frame> <img alt="Downloaded invoice" /> </Frame> ## Accessing and editing the invoice template 1. Go to `Settings` from the dashboard. 2. Select **PDF templates** under **E-commerce Settings**. <Frame> <img alt="Settings > E-commerce Settings > PDF Templates" /> </Frame> 3. Choose the **Invoice template**. <Frame> <img alt="Invoice template" /> </Frame> 4. Use the **HTML** editor to customise the template code. <Frame> <img alt="HTML editor" /> </Frame> Two tabs, **Brand** and **Invoice**, appear at the bottom for easy access to code snippets. Copy snippets by clicking their label and paste them where needed in the template. <Frame> <img alt="Brand and invoice" /> </Frame> ## Restoring default settings 1. Click **Restore default** in the editor to revert to the original template. This is displayed after making any changes to the **Invoice Template** settings. 2. Click **Save** to apply changes. <Frame> <img alt="Restore default" /> </Frame> ## Editing the invoice template code You have two options when editing the invoice code: 1. Move or delete existing lines within the editor. 2. Add content: * Click a **menu tag** from the HTML body. * Find the desired code snippet. * Click the snippet label to copy it to the clipboard. * Paste the snippet into the desired spot in the code. * Click **Save**. **Example**: The email address is moved below the company address, and the business phone number is inserted beneath the email address. <Frame> <img alt="Edit template" /> </Frame> To test the changes, open an order and regenerate the invoice. The screenshot below shows the updated template with the business phone number placed under the email address. <Frame> <img alt="Updated invoice" /> </Frame> ## Example case: Adjusting the date format You can customise the date format in your invoice template using the code: `format_datetime(pattern='MM/dd/yyyy')` * MMM represents the month. * d represents the day. * y represents the year. Rearrange the pattern to match your preferred format: * Use MMM/d/y for month-first formats (e.g., 01/23/2025). * Use d/MMM/y for day-first formats (e.g., 23/01/2025). <Frame> <img alt="Updated invoice date" /> </Frame> ## Display invoice status on PDF To show the invoice status on the PDF: 1. Go to **Settings** > **E-commerce Settings** > **Order Options** > **Misc** section. 2. Enable **Show Invoice Status on PDF**. <Frame> <img alt="Show invoice status on PDF" /> </Frame> 3. Next, add the following code to line 174 of the invoice template if using the default template: `{{invoice.display_status}}` <Frame> <img alt="Display invoice status" /> </Frame> The invoice will then display the status as shown below. <Frame> <img alt="Invoice status" /> </Frame> # How to Handle Grace Periods in Upmind Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/how-to-handle-grace-periods-in-upmind Control when services suspend, cancel, and close after a missed payment. A grace period is the window of time between an invoice's due date and the moment a service is suspended, cancelled, or terminated/closed. It gives clients extra time to pay without immediately losing access to their services. There are two ways to manage grace periods in Upmind: 1. **Automation intervals** - Let the system handle suspension, cancellation, and termination automatically based on your configured timers. 2. **Manual status changes** - Override the status on a specific contract product yourself and manage the lifecycle by hand until the invoice is paid. ## Using automation intervals Upmind lets you configure automation intervals at three levels. Each level overrides the one above it, giving you fine-grained control over individual products or even specific client subscriptions. **The level hierarchy** | **Level** | **Overrides** | | ---------------- | -------------------------------- | | Brand | Default for everything | | Product | Overrides brand | | Contract Product | Overrides both brand and product | ### Setting the brand-level automation interval This is your global default. Every product and client falls under these settings unless a lower level overrides them. 1. Go to **Settings** > **Subscription Options** under **Branding & Customisation**. <Frame> <img alt="Settings > Branding & Customisation > Subscription Options" /> </Frame> 2. Locate the automation interval fields under Contract Settings (**Suspension**, **Cancellation**, and **Termination**). <Frame> <img alt="Automation intervals" /> </Frame> 3. Set the number of days after the invoice due date for each action to trigger. 4. Click **Save**. <Tip> **Example** If you set Suspension to 14 days, every unpaid invoice will trigger a suspension 14 days after its due date, across all products and clients, unless a product or contract product level setting says otherwise. </Tip> The image below shows how the intervals will appear for a product. <Frame> <img alt="Product automation intervals" /> </Frame> ### Setting the product-level automation interval Use this when you want a specific product to behave differently from your brand default. A common use case is domain names, which often require longer grace periods than hosting products. 1. Go to **Settings** > **Product Catalogue** under **Products and Promotions**, or open the product directly from the **Store Catalogue**. <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> <Frame> <img alt="Dashboard > Store Catalogue" /> </Frame> 2. Select the product you want to configure. 3. Open the **Product Automation** tab. 4. Adjust the **Suspend**, **Cancel**, and **Close** intervals to override the brand defaults. <Frame> <img alt="Product automation" /> </Frame> 5. You can also set it to follow the interval values of the brand settings. <Frame> <img alt="Inherit brand values" /> </Frame> 6. Click **Save**. <Tip> **Example** Your brand-level setting suspends services after 30 days. You want all **.com** domains to have a 60-day grace period before suspension. Set the Suspend interval to 60 days at the **.com** product level. So, the brand setting no longer applies to those domains. </Tip> ### Setting the contract product-level automation interval This gives you the most granular control. Use it when you need a custom grace period for a single client's specific service, without changing the product settings for everyone else. 1. Go to **Clients** and open the relevant client account. <Frame> <img alt="Dashboard > Clients" /> </Frame> 2. Under **Products & Services**, find the contract product you want to adjust. 3. Open the **Settings** tab of that contract product. <Frame> <img alt="Products & Services > Settings tab" /> </Frame> 4. Override the **Suspend**, **Cancel**, and **Close** intervals as needed. <Frame> <img alt="Override automation intervals" /> </Frame> 5. Click **Save**. <Tip> **Example** A client has [**mydomain.net**](http://mydomain.net) registered through you. Due to an agreed payment arrangement, you want to give them 90 days before suspension, but you don't want to change the grace period for any other domain. Go to that specific contract product and set the Suspend interval to 90 days at the contract product level. </Tip> ## Manually changing contract product status If you want to hold off on suspension or cancellation for a specific client while waiting for payment, you can manually set the contract product status. This immediately overrides automation. The system will not run any automated suspend, cancel, or close actions while a manual status is in place. ### How to manually change a contract product status 1. Go to **Clients** and open the client's account. 2. Under **Products & Services**, select the contract product. 3. On the **Overview** tab, locate the current status field. <Frame> <img alt="Clients > Products & Services > Overview tab" /> </Frame> 4. Click the status and select the new status from the dropdown. <Frame> <img alt="Set manual status" /> </Frame> <Warning> Carefully change the manual status and the **Run provision commands** option, as it may trigger actions on the domain product at the registrar. </Warning> **Available manual statuses:** * **Active** - Service is live and accessible. * **Suspended** - Service is restricted but recoverable. * **Lapsed** - Service has expired. This is often used for domains past their renewal date. * **Cancelled** - Service is marked as cancelled. 5. Confirm the change. The status updates immediately, and automation is paused for that contract product. <Frame> <img alt="Updated manual status" /> </Frame> ### Switching back to system status after payment This step is easy to miss. Once a manual status is applied, **Upmind will not resume automated actions on its own**. After the client pays their invoice, a staff member must manually return the contract product to system-controlled status. **After payment is confirmed:** 1. Open the client's account and navigate to the contract product. 2. On the **Overview** tab, restore the system status to **Active** (or the appropriate status). <Frame> <img alt="Restore system status" /> </Frame> <Frame> <img alt="Click to restore" /> </Frame> 3. If you want automation to resume normally, make sure the status reflects the system state, not a manual override. <Danger> Set a reminder or internal note when applying a manual status. Without a follow-up step, the service could remain frozen even after payment is received. </Danger> ### Example cases **Waiting on a bank transfer** A client is paying through bank transfer, and the funds haven't cleared yet. Their invoice is already overdue. You don't want the system to suspend their hosting account while you wait. Set the contract product status to **Active** manually. This holds automation. Once the transfer is confirmed and the invoice is marked paid, switch the status back, and automation resumes from that point. **Negotiated payment arrangement** A long-term client has asked for two extra weeks to pay their renewal invoice. Your brand-level automation would suspend them for 7 days. Rather than adjusting your brand or product automation settings (which affect other clients), manually set this client's contract product status to **Active**. Add an internal note with the agreed payment date. When payment comes in, revert the status. **Client disputes an invoice** A client raises a billing dispute, and you agree to pause their account status while it's being reviewed. Set the contract product to **Active** manually so no automated actions run during the dispute window. Once resolved, whether they pay or you cancel, update the status accordingly. ## Choosing between automation intervals and manual status | **Scenario** | **Recommended Approach** | | ------------------------------------------------------ | ------------------------------------------ | | All clients on a product need the same grace period. | Product-level automation interval | | One specific subscription needs a custom grace period. | Contract product-level automation interval | | Temporary hold while waiting for a specific payment. | Manual status change | | Long-running payment arrangement with one client. | Manual status change + internal note | | Scaling grace periods across many clients at once. | Brand or product-level automation interval | # How to Issue Refunds & Credit Notes Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/how-to-issue-refunds-and-credit-notes For paid and unpaid invoices. Admins and store staff can issue full or partial refunds and credit notes for paid invoices, as well as credit unpaid invoices. ## Refunds vs. credit notes * **Refund** - Returns money to the client via their original payment method. * **Credit Note** - Cancels the purchase and adds credit to the client’s account for future use. <Note> Upmind automatically sends clients an email notification with a link to view refunds and credits. </Note> ## Opening an invoice 1. Log in to your account. 2. Click **Orders** in the left menu. 3. Select the **Orders list** tab. <Frame> <img alt="Orders list" /> </Frame> 4. Click the invoice you want to open. 5. In the new window, click **View invoice**. <Frame> <img alt="View invoice" /> </Frame> 6. On the next screen, click **Go to invoice**. ## Working with paid invoices 1. Open the invoice. 2. Scroll to the bottom of the page. 3. Click the **Credit/refund invoice** button. <Frame> <img alt="Credit/refund invoice" /> </Frame> 4. In the new window, select either **Refund** or **Credit note**. 5. Modify the amount if needed. (Optional) 6. Click **Submit**. ### Paid invoice: refunds 1. Select the **Refund** option. 2. To issue a partial refund for an overcharge, adjust the amount in the **Amount** field. <Frame> <img alt="Enter the refund amount" /> </Frame> 3. Choose one of the following: * **Issue credit note only** - Issue a credit note without changing the invoice status. * **Adjust invoice balance only** - Adjust the invoice balance without issuing a credit note. * **Adjust invoice balance and issue credit note** - Adjust the balance and issue a matching credit note. <Frame> <img alt="Refund options" /> </Frame> <Note> The refund option shows the invoice total but does not display individual purchases (if multiple items were bought). </Note> ### Paid invoice: credit notes You can issue a credit note for the full amount or selected items on paid invoices, or provide a partial credit by adjusting the amount in the Amount field. 1. Select the **Credit note** option. 2. Use the checkboxes to add or remove invoice items. (Optional) 3. Adjust the credit amount in the **Amount** field to issue a partial credit. (Optional) <Frame> <img alt="Credit note for invoice items" /> </Frame> ## Working with unpaid invoices You cannot cancel an invoice, but you can reduce the amount owed to zero or issue a partial credit. To do this: 1. Open the invoice. 2. Click the **Credit/refund invoice** button to open a new window. <Frame> <img alt="Issue credit" /> </Frame> <Note> You can also click the Credit invoice link at the top of the invoice page. </Note> ### Full credit 1. Verify the numbers at the top of the window. 2. Keep the default setting (issue a credit note for the whole invoice). 3. Click **Submit**. <Frame> <img alt="Issue a full credit" /> </Frame> Upmind will automatically set the invoice amount owed to zero. ### Partial credit To issue a partial credit: 1. Select Issue a credit note for select invoice items. 2. Use checkboxes to add or remove items. (Optional) 3. Adjust the credit total in the Amount field. (Optional) 4. Click **Submit**. <Frame> <img alt="Select invoice items" /> </Frame> Upmind will generate an updated invoice reflecting the new amount owed. <Frame> <img alt="New invoice" /> </Frame> ## Common scenarios ### **Incorrect pricing or product on a new order with an unpaid invoice** If an order has already been placed and the invoice is still unpaid, the pricing or product on that invoice cannot be changed directly. Invoices in Upmind are fixed once created, so editing the line items or swapping the product is not possible at the invoice level. **The recommended approach in this situation is:** 1. Cancel the unpaid invoice by issuing a full credit note, which reduces the amount owed to zero. 2. Place a new order with the correct pricing or correct product. This keeps your billing records clean and makes sure the client receives an accurate invoice before payment is collected. ### Removing VAT from an already generated invoice Once an invoice is created, tax cannot be directly removed. **Correct approach:** * Credit the original invoice. * Regenerate a new invoice with updated tax settings. This maintains a clean audit trail and accurate reporting. # How to Manage Renewal Automation Settings Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/how-to-manage-renewal-automation-settings Customise invoice dates and renewals. Admins and store staff can manage subscription renewals and recurring payment invoices globally. <Note> Recurring payments and renewals can also be managed at the client level. </Note> ## Manage global renewal automation settings You can set global defaults for all recurring invoices and renewals. 1. Log in to your Upmind admin area. 2. Go to `Settings` and select `Order Options` under **Ecommerce Settings**. 3. Scroll to **Recurring invoice generation**. 4. Use the sliding scale to set how many days before the renewal date invoices are generated (e.g., generate invoices 7 days before renewal). <Frame> <img alt="Generate invoices x days before renewal" /> </Frame> 5. Find **Recurring invoice due dates**. 6. Set the due date for renewal invoices to be a certain number of days on, before, or after the renewal date using the sliding scale. <Frame> <img alt="Invoices will be due on the day of renewal" /> </Frame> 7. Click **Save** to apply your settings. ## Common scenarios ### Why renewal timing differs from expectations When consolidation is active: * Renewal invoices align with consolidation rules. * Automation settings do not control timing for those services. ### Manual status and its effect on renewal automation A contract product's status directly affects whether renewal automation applies. If a contract product is manually set to **Active**, for example, when it has an unpaid invoice or is approaching suspension, the system's automation intervals will not act on it. The contract remains in its manually assigned status regardless of any configured suspend, cancel, or close intervals. <Frame> <img alt="Active contract product" /> </Frame> Because of this, manually setting a contract to **Active** bypasses the protections that renewal automation provides. It is generally not recommended unless you are actively monitoring and managing that contract on a daily basis, as overdue invoices and lapsed services will not be handled automatically. # How to Regenerate Invoices Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/how-to-regenerate-invoices Admins and store staff can regenerate an invoice with updated data. **Regenerating an invoice** creates a new invoice with updated information, such as a changed address. Since invoices in Upmind cannot be edited after creation, the original invoice is credited, and a new one is issued with the updated details. ## Opening the invoices page 1. Go to the Upmind dashboard. 2. Click **Billing** in the left menu. 3. Select the **Invoices** tab. 4. Click an invoice name to open it. <Frame> <img alt="Invoices list" /> </Frame> <Note> Use the Quick filters options to filter invoices. </Note> ## Regenerating an invoice When regenerating an invoice, you have two options: * **Regenerate just data** - Updates the invoice with fresh data but keeps the address, company details, and tax rates unchanged. * **Regenerate with address/company change** - Updates the client’s address and company information and lets you decide if these changes apply to future contract renewals. * If the Invoice is Unpaid: * Address and company details are updated. * Taxes are recalculated based on new information. * Invoice number remains the same, but Total, Tax, and Net amounts may change. * If the Invoice is Paid: * The invoice is recalculated as an unpaid invoice. * If the new total is higher, the status changes to unpaid, and the client must pay the difference. * If the new total is lower, a partial credit note is issued, and the difference is refunded as account credit. <Frame> <img alt="Regenerate invoice details" /> </Frame> You can also choose to apply updated tax rules to the related product, ensuring future invoices follow the new tax settings. ### Steps to regenerate an invoice 1. Select the invoice you want to regenerate and scroll down the invoice page. 2. Click the **Regenerate** invoice button under **Quick Actions**. <Frame> <img alt="Regenerate invoice" /> </Frame> 3. On the next page, update the company name or address. (Optional) 4. Click **Regenerate** to complete the process. Upmind will send the client an email notification with a link to the updated invoice. <Frame> <img alt="Email notification" /> </Frame> Regenerating a tax invoice by fully crediting the original and creating a new renewal invoice is the best approach because it ensures accurate accounting and maintains a clear audit trail. This method prevents confusion or errors that can arise from simply editing the original invoice, which may compromise financial records and compliance. While other methods like directly modifying the existing invoice might seem quicker, they are less reliable and can lead to discrepancies in tax reporting. <Warning> Ensure the **Invoice PDF Regenerate Trigger** is set up under **Settings** > **Actions**. Add it to the PDF Generated action or create a new action template to enable email notifications. </Warning> ## Common scenarios ### Regenerating an invoice to apply tax If tax was missing during initial creation, regeneration can apply updated tax rules. **Key behaviour:** * Tax recalculation through regeneration is only possible on unpaid invoices. Once an invoice has been paid, regeneration cannot be used to apply or correct tax. For paid invoices, the correct approach is to process a refund and generate a new invoice with the updated tax settings in place. * Regeneration recalculates totals and tax. * A new invoice replaces the original through crediting. ### Changing the billing cycle by regeneration Attempting to change billing periods through regeneration alone will not work as expected. **Example:** Changing: * February 2 → March 2 to * February 10 → March 10 Regeneration cannot change the billing term or the invoice amount. It is limited to updating client details such as the billing address or company name. To change the billing term or adjust the product price, make those changes directly in the **Overview tab** with the **Modify Product** option under Quick Actions of the contract product. Follow this [guide](/using-upmind/manage-client-services/how-to-modify-a-subscription-contract) for more details. <Frame> <img alt="Clients > Products & Services > Modify Product" /> </Frame> Once the contract product is updated, any future invoices generated will reflect the new billing period and pricing. # How to Set Sales Taxes (e.g., VAT, GST) Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/how-to-set-sales-taxes-eg-vat-gst Add and manage tax rules. Upmind supports and can configure global sales tax requirements, including: * UK/EU VAT * US sales taxes (state and federal) * Indian GST * Service charges * Card processing fees Taxes in Upmind are customisable and managed using templates and tags, allowing different rules per product and client location. This guide explains how to set up and configure taxes for your brand, as well as how to debug any issues with the setup. ## Accessing tax settings 1. Log in to Upmind. 2. Go to `Settings`. 3. Select **Tax Settings** from the **Ecommerce Settings**. <Frame> <img alt="Settings > Tax settings" /> </Frame> ## Enabling tax features Switch the `TAX Registered`? `ON` if your business is tax registered, and then enter your tax number for official documentation. This enables tax options throughout your store. By default, the toggle is **OFF**, so you can switch it **ON** if applicable. <Frame> <img alt="Toggle tax settings" /> </Frame> ## Tax inclusion setting You can decide if your product prices are **tax inclusive** (tax included) or **tax exclusive** (tax added). By default, the setting is off, so Upmind adds tax (if applicable) to the price. Toggle it `ON` to indicate prices include tax, and Upmind will deduct tax accordingly. <Frame> <img alt="Toggle tax inclusion" /> </Frame> ## How Upmind handles taxes Upmind uses **tax templates** and **tax tags** to manage taxes efficiently. ### Tax templates Tax templates are sets of tax rules assigned to products. Each product can have only one tax template, but a template can apply to many products. Templates allow you to apply different tax rules based on product type, location, or client type. **Example**: A web design firm might charge local tax on design work, but tax hosting based on the client’s location. Food and beverage businesses may charge higher tax rates on alcohol than on food. <Note> You can optionally import our system default tax templates, which cover the most common tax options. </Note> You can create tax templates by clicking **Add Tax Template**, naming it (visible only to you), and selecting the applicable business types (commonly Virtual Services). Then, assign tax tags to the template. <Frame> <img alt="Tax template" /> </Frame> ### Tax tags Tax tags are individual tax rules within a template. They can be fixed fees or percentages and may include secondary rates. When applied, Upmind processes tax tags in order, applying those relevant to the invoice. **Example**: Two tax tags applied: <Frame> <img alt="Tax tag" /> </Frame> When creating a tax tag, you: 1. **Name** the tag. 2. Choose the **default** fixed or percentage fee and enter the amount and currency. <Frame> <img alt="Tax tag name and fee" /> </Frame> 3. Optionally add a **secondary rate** for specific business types, such as businesses rather than individuals. This is common in the EU under the reverse charge mechanism for applicable countries. <Frame> <img alt="Secondary rate" /> </Frame> 4. Set **display options** (show tax at invoice or item level). <Frame> <img alt="Display options" /> </Frame> 5. Choose whether the tax applies to the **subtotal only** or the **subtotal plus previous taxes**. <Frame> <img alt="Apply to" /> </Frame> 6. Assign applicable **locations** (countries, regions, client types). <Frame> <img alt="Locations" /> </Frame> ## Tax settings Tax settings control how Upmind calculates and applies taxes across invoices and products. <Frame> <img alt="Tax settings" /> </Frame> **Business Type**: You can pick the type that matches your operations from a range of options. Upmind uses this to apply correct tax rules and templates automatically. <Frame> <img alt="Business type" /> </Frame> **Automatic VAT Validation**: Turn on to check VAT numbers automatically when clients enter or update company details. Upmind queries external services for validity in real time. <Frame> <img alt="Automatic VAT validation" /> </Frame> **VAT Synchronous Check on Company Update**: Activate instant VAT checks during company info changes. This requires Automatic VAT Validation to be enabled and speeds up validation without delays. <Frame> <img alt="VAT synchronous check on company update" /> </Frame> **VAT Number Validation Interval**: Set days between rechecks of VAT numbers on invoice creation, like 30 days. Upmind skips checks if within the interval to save time and API calls. <Frame> <img alt="VAT number validation interval" /> </Frame> ## Tax on invoices When an invoice is generated, Upmind shows a tax summary and a breakdown of taxes charged. ## Applying taxes by location Upmind determines applicable taxes based on the client’s address or, if none is provided, their IP geolocation at the country level. If a client adds an address, the tax rate is recalculated for greater accuracy. Since IP geolocation only identifies the country, regional tax rules require a client’s address to apply correctly; otherwise, no tax rate will display for specific regions. **Example**: Indian GST System India has three sales tax types: * **IGST**: Charged on inter-state transactions. * **CGST**: Charged on intra-state transactions by the central government. * **SGST**: Charged on intra-state transactions by the state government. So, a business in Maharashtra charges SGST for local clients and both IGST and CGST for clients in other states. <Frame> <img alt="Tax Exemption Codes are added under the tax tag" /> </Frame> <Note> Consult your accountant for tax advice. Upmind provides software support but does not replace professional guidance. You can import system default tax templates covering common tax scenarios. </Note> ## Common scenarios ### The invoice has no tax applied A frequent issue occurs when tax is configured after invoice creation. **Why does this happen:** * Tax is calculated at the time the invoice is generated. * If tax settings are not active at that moment, the invoice will not include tax. **What to do:** * Regenerate the invoice with updated tax settings. This option is only available for unpaid invoices. Upmind recalculates tax when the invoice is regenerated, so the corrected tax amount will reflect on the new version. * For paid invoices where tax should have been applied before payment, regeneration is not an option. In this case, process a refund against the original invoice, then generate a new invoice with the correct tax calculation applied. This keeps your records accurate and the tax figures legally correct. # How to Use Credit Limit Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/how-to-use-credit-limit Manage prepaid balances and limits. The **credit limit** feature lets clients use their wallet balances below zero up to a set limit, providing greater flexibility. This guide explains how to set and manage credit limits and wallet statements at both the **Brand** and **Client** levels. ## Configuring the credit limit at the brand level 1. Go to **Settings** > **Payment Options** under Ecommerce Settings. 2. Scroll to **Client Wallet**. 3. Check the box to enable **Credit Limit** and set the maximum amount you want to allow. 4. Choose the **day of the month for generating the wallet statement**. <Frame> <img alt="Payment options > Client wallet" /> </Frame> <Warning> The credit limit operates in the brand's default currency. </Warning> ## Setting the credit limit at the client level 1. Go to `Clients` and select a client. 2. Click **Billing** > **Account Credit**. <Frame> <img alt="Billing > Account credit" /> </Frame> 3. Check the box to enable credit balance usage and set a specific limit or use the brand default. 4. Choose the statement generation day (optional). <Frame> <img alt="Credit limit setting" /> </Frame> <Warning> The Credit Limit feature is only available if the multi-currency setting is store credit in single currency. </Warning> <Frame> <img alt="Store credit in single currency" /> </Frame> The settings for the **Credit Limit** are described below: ## How clients see credit limits in the client area 1. Clients see their credit limit in their preferred currency from **Billing** > **Account Credit** > **Credit Limit**. <Frame> <img alt="Billing > Settings" /> </Frame> 2. Once a currency is used for payment, all future credit payments must use the same currency. **Example**: If a client makes their first payment in USD, all future credit limit payments must also be in USD. <Frame> <img alt="Credit limit in client area" /> </Frame> ## How to enable auto consume balance on the invoice due date 1. Go to **Settings** > **Payment Options** under **E-commerce Settings**. 2. Scroll to the **Client Wallet** section. 3. Toggle **Auto Consume Balance on Invoice Due Date** on or off as needed. 4. Save your changes. <Frame> <img alt="Settings > E-commerce Settings > Payment Options" /> </Frame> When enabled, Upmind draws from the client's wallet balance at the point of automatic payment collection. If the wallet balance covers the full invoice amount, the invoice is marked as paid. If it only covers part of the amount, the wallet credit is applied first, and the remaining balance is collected from the client's payment method, or left as an outstanding balance if no payment method is on file. <Frame> <img alt="Auto consume balance on invoice due date" /> </Frame> This setting is enabled by default. ## Accessing and editing the wallet statement template You can customise your brand's wallet statements. 1. From **Settings**, go to **PDF Templates** under **E-commerce Settings**. <Frame> <img alt="Settings > E-commerce settings > PDF templates" /> </Frame> 2. Select **Wallet Statement Template**. <Frame> <img alt="Wallet statement template" /> </Frame> 3. Use the **HTML** editor to customise the template code. <Frame> <img alt="HTML editor" /> </Frame> 4. Two tabs, **Brand** and **Invoice**, appear at the bottom for easy access to code snippets. Copy snippets by clicking their label and paste them where needed in the template. <Frame> <img alt="Brand and invoice" /> </Frame> ## Download PDF or CSV credit statements ### From the admin area 1. Go to **Clients** > **Billing** > **Account Credit**. 2. Click **View Credit Statements**. <Frame> <img alt="View credit statements from admin" /> </Frame> 3. Select the desired statement. 4. Click to download either **PDF** or **CSV**. <Frame> <img alt="Download PDF or CSV from admin" /> </Frame> ### From the client area: 1. Go to `Billing`. 2. Click **Account Credit**. 3. Click **View Credit Statements**. <Frame> <img alt="View credit statements from admin" /> </Frame> 4. Select the desired statement. 5. Click to download either **PDF** or **CSV**. <Frame> <img alt="Download PDF or CSV from client" /> </Frame> ## Common scenarios ### Partial payments with account credit Enable partial payments for clients from the following: 1. Go to **Settings** > **Payment Options** under **E-commerce Settings**. 2. Scroll to the **Gateway Settings** section. 3. Toggle **Enable partial payments for clients** on. <Frame> <img alt="Enable partial payments for clients" /> </Frame> Invoices can be partially paid using account credit, depending on the configuration. **Behaviour:** * Account credit may automatically apply on invoice creation or due date. * The remaining balance stays unpaid until cleared. **Example:** * Invoice total: \$100 * Account credit available: \$60 Result: $60 applied automatically, with the remaining $40 still due. Invoices that are partially paid and remain unpaid after a certain period may be cancelled automatically, depending on your settings. Two options under **Settings** > **Order Options** > **Misc** control this behaviour: * **Auto cancel unpaid pro-rata invoices -** Automatically cancels pro-rata invoices that still have an unpaid balance after the configured period. * **Auto cancel unpaid invoice, which have partial payments** - Automatically cancels invoices that received a partial payment but were never fully settled. <Frame> <img alt="Auto cancel unpaid pro-rata invoices & Auto cancel unpaid invoice, which have partial payments" /> </Frame> If you are using account credit as a payment method and clients regularly carry a remaining balance, review these settings to make sure partial payment invoices are not being cancelled before clients have a chance to pay the outstanding amount. # How to Use Swap Payment in an Invoice Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/how-to-use-swap-payment-in-an-invoice Share invoices with clients or teams. The Swap Payment feature lets you replace the payment recorded against a paid invoice without needing to issue manual credits or make invoice adjustments. This is useful for correcting payment methods, handling refunds, or updating transaction records. <Note> This action is available only within the admin panel. </Note> ## Steps to use swap payment on an invoice 1. Log into the Upmind admin area. 2. Locate the specific invoice you wish to modify. 3. Click the three-dot menu (⋯) on the invoice detail page. 4. Select **Swap Payments**. <Frame> <img alt="Invoice > Click swap payment" /> </Frame> 5. Configure the **Swap Options**: * **Refund Destination**: Choose whether to refund the original payment back to the payment source or as account credit. * **New Payment Provider**: Select a different payment method (such as card, PayPal, or offline payment). * **Transaction ID (Optional)**: Enter a reference or transaction ID if you are linking an external or manual payment. <Frame> <img alt="Configure details" /> </Frame> 6. After making your selections, click **Save** to complete the swap. The invoice will now reflect the new payment, and a refund or credit (as selected) will be applied to the original transaction. # Invoice Numbering and Prefixes Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/invoice-numbering-and-prefixes Customising invoice sequences and IDs. Invoice numbering sequences can be customised to meet your business and legal requirements. Upmind’s billing system lets you set invoice prefixes and numbers for easy tracking. As an administrator, you can also separate numbers for free invoices and hide zero-amount invoices from clients in the `Miscellaneous` section. ## How to set invoice number and prefixes 1. Go to **Settings** > **Order Options**. 2. Find the `Invoice Number` section. <Frame> <img alt="Settings > Order options" /> </Frame> 3. Enter your preferred prefix (e.g., INV) and starting number. <Frame> <img alt="Invoice numbers and prefixes" /> </Frame> Invoice numbers must be incremental, but prefixes can be changed as needed. <Note> Resetting yearly invoice numbering You can reset yearly invoice numbering by starting the invoice number with the year. * The prefix can be changed (we recommend using INV). * The invoice number would start 2500001 for 2025. * The following year would start 2600001 for 2026. </Note> <Frame> <img alt="Reset invoice number" /> </Frame> <Frame> <img alt="Updated invoice number" /> </Frame> ## Separate number sequences You can separate number sequences for free invoices (0 value invoices), proforma invoices, and credit notes, keeping paid invoices strictly incremental. ## How to separate invoice number for zero-amount invoices 1. Go to **Settings** > **Order Options** > **Miscellaneous**. 2. Tick *Separate number sequence for free invoice* and click **Save**. <Frame> <img alt="Separate number sequence for free invoice" /> </Frame> 3. Set the prefix and number for free invoices. <Frame> <img alt="Prefix and number for free invoices" /> </Frame> ## How to hide zero-amount invoices from clients In **Order Options** > **Miscellaneous**, tick *Hide 0 invoice for clients* to prevent clients from seeing zero-value invoices and click **Save**. <Frame> <img alt="Hide 0 invoice for clients" /> </Frame> ## Enforcing consecutive numbers With tens of thousands of daily invoices, enforcing strict consecutive numbering creates overhead by processing invoices one at a time to ensure 100% sequence accuracy. This option impacts performance. You can enable *Strict* consecutive number sequence for compliance. <Frame> <img alt="Strict consecutive number sequence" /> </Frame> # Invoice Shared Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/invoice-shared Share invoices with clients or teams. As an administrator, you can enable the invoice share link, allowing customers to pay invoices without logging into their client area. This can simplify the payment process and encourage faster payments. ## Options to enable the share link * **Per Invoice**: Manually enable the share link for individual invoices. * **Auto-Share on Invoice Creation**: Automatically share invoices when they are generated using a brand setting. ## Sharing individual invoice links 1. Go to **Billing** > **Invoices** under **Clients** and select an unpaid invoice. 2. Click **Share** in the modal, copy the link, and send it to your client (you must enable sharing first). <Frame> <img alt="Billing > Invoice" /> </Frame> ## Auto sharing on invoice creation 1. Go to **Settings** > **Order Options** under Ecommerce Settings. 2. Enable **Shared Invoice** under the Misc section to auto-generate shareable links for all new invoices. <Frame> <img alt="Shared invoice" /> </Frame> ## Adding shared invoice links to email notifications 1. Go to **Settings** > **Actions** under Automation. 2. Edit the **New Invoice PDF Customer Email** template or create a new one. 3. Insert this `HTML` code to include the share link and replace the highlighted one: <CodeGroup> ```javascript HTML theme={null} <a href="//{{ brand.customer_portal_domain }}/invoice/{{ invoice.shared.token }}" target="_blank">{{ invoice.number }}</a> ``` </CodeGroup> <Frame> <img alt="Settings > Action" /> </Frame> 4. Save the template to allow clients to access invoices directly from their email ## Link expiration days Admins and staff can generate protected sharing links to share invoices with clients securely. By default, these links expire after 7 days, ensuring controlled and time-limited access to sensitive billing information. This provides a convenient way to deliver invoices while maintaining security and control over access. You can access this from **Settings** > **Branding & Customisation** > **Security** > **Sharing Links**. <Frame> <img alt="Settings > Security" /> </Frame> <Frame> <img alt="Link expiration days" /> </Frame> ## Enable auto-storing payment methods Automatically storing payment methods helps to renew subscriptions on their due dates. This reduces missed payments and maximises renewals. ### For clients Clients can enable automatic payments by saving a payment method in their portal and selecting the option to **Allow Automatic Payments**. <Frame> <img alt="Allow auto payment" /> </Frame> They can also save their card details during checkout to use for future payments and enable automatic billing. <Frame> <img alt="Save card" /> </Frame> ### For admin Admins have options within the gateway settings to **Force card storage** and **Force auto payment for stored details**, so that details are saved whenever possible for billing automation. 1. Navigate to **Settings** > **Payment Options** in your Upmind admin dashboard. <Frame> <img alt="Settings > E-commerce Settings > Payment Options" /> </Frame> 2. Under the `Gateway settings` section, you can enable: * **Force card storage**: This mandates that clients save their card details securely for future use. <Frame> <img alt="Force card storage" /> </Frame> * **Force auto payment for stored details**: This automatically charges invoices using the stored payment details. <Frame> <img alt="Force auto payment for stored details" /> </Frame> # Legacy Invoices Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/legacy-invoices View and analyse historical billing data imported from a previous platform. When invoices are imported into Upmind from WHMCS or via CSV, they are stored as **Legacy Invoices**. These are a read-only representation of your clients' historical billing data from your previous platform, giving clients continued access to their past invoice records after migration. Legacy invoices are available for reference only. They are not active invoices within Upmind, which means they cannot be paid, cancelled, or refunded. No billing actions can be taken on them. For more information on importing data, follow this [<u>guide</u>](/setup-and-configuration/importing-data/importing-csv-data). ## Where to find legacy invoices Legacy invoices can be accessed in two places. **From the Billing section:** 1. Go to **Billing** in the left menu. 2. Select the **Legacy Invoices** tab. <Frame> <img alt="Billing > Legacy invoices" /> </Frame> <Frame> <img alt="Legacy invoices" /> </Frame> **From a client profile:** 1. Go to **Clients** and select the client. 2. Click **Billing** in the client profile. 3. Select the **Legacy Invoices** tab. <Frame> <img alt="Clients > Billing > Legacy invoices" /> </Frame> From here, you and your clients can view the full details of any imported invoice for reference. Clients can also view Legacy invoices in the client area from **Billing** > **My Legacy Invoices**. <Frame> <img alt="Billing > My legacy invoices" /> </Frame> ## What legacy invoices can and cannot do Legacy invoices are strictly read-only records. Once imported, they reflect the billing history from your previous platform exactly as it was at the time of migration. **You can:** * View invoice details, line items, and amounts. * Reference historical billing records for a client. **You cannot:** * Collect payment on a legacy invoice. * Cancel or void a legacy invoice. * Issue a refund against a legacy invoice. If a client needs a corrected or reissued invoice for past services, a new invoice will need to be created manually in Upmind. ## Frequently asked questions **What happens to invoices that were unpaid at the time of import?** If an invoice was marked as unpaid in WHMCS or your CSV data, it will appear as **replaced** in Upmind. This means it is no longer treated as an outstanding invoice to be collected. If the associated service is still active and requires billing, Upmind will automatically generate a new invoice based on the service's next due date. The client will receive the new invoice through the normal billing process, and it can be paid, tracked, and managed like any other Upmind invoice. # Locked Invoices Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/locked-invoices Locked invoices during payment processing. ## What is a locked invoice? A locked invoice is an invoice that temporarily cannot be changed or paid, because Upmind is still processing a payment or related billing action against it. This protects both you and your customers from duplicate or conflicting charges. A lock is applied at the invoice level, so it affects that specific invoice only, not the whole client account. <Frame> <img alt="Locked Invoice" /> </Frame> ## When invoices become locked Invoices can become locked in several common situations: * A card, wallet, or bank payment is currently being attempted against the invoice and has not been completed yet. * Upmind or your gateway reported an **unknown** or interrupted transaction state, so the system holds the invoice until it can be sure whether the customer was charged. * An external system or integration briefly reports conflicting information about the invoice balance or payment status. In practice, this means invoices are usually locked right after they are created, and a payment attempt is kicked off, or when an existing unpaid invoice is being collected automatically. **Example:** A customer checks out with a Quick Order and pays with a card. The gateway starts 3D Secure verification, but the customer closes the browser. The transaction is not clearly successful or failed, so the invoice goes into a locked state while the system waits for a final update. ## How long do invoices stay locked In most cases, an invoice lock is short-lived and resolves itself. * Typical lock time is around 90 minutes while Upmind waits for a final response from the payment gateway or retries a pending task. * On rare occasions, the Upmind system may have a large number of invoices to process and charge, and the lock might stay in place for longer than 90 minutes. * If an invoice remains locked for more than 24 hours, this is longer than normal and should be checked by Upmind’s support. Once the lock clears automatically, the invoice returns to its normal unpaid or paid status, and customers can pay, or you can take manual actions again. ## Why can an invoice be locked even when no payment method exists You can sometimes see a locked invoice even where the client has no active payment method on file. This usually means: * A payment attempt was started when a method was still present (a saved card that was later removed). * An automatic collection attempt or background process triggered right after invoice creation, then failed or timed out, leaving the invoice in a locked state. **Example**: When the Quick Order generates an invoice and immediately triggers an automatic payment attempt, which then stalls. The invoice locks straight away and stays locked beyond the normal 90‑minute window, even though the client account shows no payment method. ## What you can and cannot do with a locked invoice When an invoice is locked, Upmind restricts certain actions to avoid conflicts and double-billing. You cannot: * Charge the invoice again or start a new payment attempt from the admin or client area. * Modify amounts, taxes, or line items on the locked invoice. * Regenerate or replace the invoice number while the lock is active. You can still: * View the invoice in Billing > Invoices and in the client area. * Review related orders, services, and transactions for context. * Add internal notes for your team on the client or order. Restricting edits here keeps your invoice history consistent and avoids gaps or conflicts in numbering and tax calculations. ## What customers see When a customer tries to pay a locked invoice from the client area, they will see a message explaining that the invoice is locked and cannot be paid right now. ## How to handle a locked invoice as an admin Use the following approach when you or your team see a locked invoice. ## 1. Open the invoice and check the context * Go to the Upmind dashboard > Billing > Invoices. * Open the locked invoice and review: * Client name and account * Linked order or subscription * Current status and timestamps (when it was created, when it was last updated). Look for signs that an automatic payment was launched (immediately after invoice creation). ## 2. Review recent payment activity * Open the client’s payment methods and transaction history. * Check your payment gateway dashboard to confirm whether any charge succeeded, failed, or is still pending for that invoice reference. Only one of these should be true: * The customer was charged successfully, but Upmind has not yet updated the invoice. * The customer was not charged at all, and the lock is stuck after a failed or abandoned attempt. ## 3. Decide how to proceed * If the customer **was charged** at the gateway: * Record or sync the successful payment against the invoice once the lock clears or support resolves it. * Do not attempt another charge. * If the customer **was not charged:** * Wait a short period for the lock to clear automatically (up to around 90 minutes in normal circumstances). * Ask the customer to try again once the invoice shows as unpaid and unlocked. For urgent cases where the customer is waiting to pay, and the invoice has already been locked for several hours, contact Upmind support with the invoice ID so the team can investigate directly. # Quick Invoice Guide Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/quick-invoice-guide Introduction to creating and sending invoices. Upmind’s **Quick Invoice** feature simplifies the billing process for both one-time and recurring products or services. You can select existing products or add new ones. Newly added products are automatically created in your catalogue with a selected billing term, but remain hidden from your storefront unless you choose to make them visible. ## Creating a quick invoice ### From the client profile 1. Go to the `Clients` section. 2. Select the client you wish to invoice. 3. On the client overview page, click the **three dots** next to the client’s name and select **Add Quick Invoice**. <Frame> <img alt="Add quick invoice from client overview" /> </Frame> ### From quick add 1. Click the **Quick add** button in the top right corner. 2. Select **Add quick invoice**. 3. Choose the client and proceed with the prompts. <Frame> <img alt="Add quick invoice from quick add" /> </Frame> ## Add invoice details You can configure the following details: 1. **Currency**: Choose the billing currency for the invoice from the dropdown. 2. **Address**: Confirm or enter the client’s billing address. 3. **Products**: 1. **Select Existing**: Search and select products from your catalogue. 2. **Add New**: Enter details for a new product or service 4. **Billing Terms**: Set one-time or recurring billing as needed. <Frame> <img alt="Add invoice details" /> </Frame> 5. Review the invoice details, save, and send it directly to the client. The invoice will appear in the client’s billing history and can be tracked, paid, or credited as needed. <Note> Automated Product Creation If a product isn’t found in your search, entering a new product name will automatically create that product in your catalogue once the invoice is generated. These products remain hidden from your storefront unless you choose to publish them. </Note> # Revenue Recognition Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/revenue-recognition Track and report deferred revenue. Every Upmind contract product’s service period requires an invoice, even if the amount is 0, to ensure proper revenue recognition and acknowledge the service provided. ## Configuring global revenue recognition 1. Go to Settings > Order Options under Ecommerce Settings. <Frame> <img alt="Settings > Order options" /> </Frame> 2. Scroll to `Misc` and find **Account Revenue Recognition**. 3. Choose Recognition Method: * **Over Billing Cycle**: Revenue is recognised gradually over the billing or subscription period. * **Immediately**: Revenue is recognised in full as soon as the product is delivered or the service is provided, regardless of the billing cycle. <Frame> <img alt="Account revenue recognition" /> </Frame> <Note> The selection of a revenue recognition method may vary. Businesses evaluate whether revenue should be recognised at a point in time or over a period, based on factors like delivery of goods, transfer of control, or the fulfilment of performance obligations. Contract terms, including payment schedules, milestones, and service durations, influence the timing and pattern of revenue recognition. Compliance with relevant accounting frameworks ensures that revenue is recorded accurately and consistently, reflecting the economic reality of transactions while meeting regulatory requirements. This approach aligns revenue recognition with the delivery of value to customers and supports transparent financial reporting. </Note> 4. Enable Hide 0 Invoices for clients. (Optional) ## Why zero value invoices exist Upmind generates 0 value invoices to bridge gaps between service periods, ensuring continuous revenue tracking and accurate recognition, even when no payment is due. Since these invoices can confuse clients, we recommend enabling the **Hide 0 Invoices for clients option**. ## Product level revenue recognition 1. Go to **Settings** > **Product Catalogue**. <Frame> <img alt="Settings > Product catalogue" /> </Frame> 2. Adjust the revenue recognition method for individual products. 3. Then select a product and go to the `product billing`. <Frame> <img alt="Revenue recognition for a product" /> </Frame> This allows different products to follow distinct revenue recognition rules, supporting complex sales agreements and multi-service offerings. # Schedule Price Changes for Contract Products Source: https://docs.upmind.com/using-upmind/invoicing-and-taxes/schedule-price-changes-for-contract-products Automating future price adjustments. Scheduling price changes allows you to plan and automate billing adjustments for contract products. Changes take effect automatically on the next renewal invoice. <Info> **Watch the** [**YouTube tutorial**](https://www.youtube.com/watch?v=ng0HS8iCksI) **about Schedule Price Changes for Contract Products.** </Info> ## Scheduling a price change 1. Go to `Products & Services` and select the contract product. 2. In the `Overview` tab, find `Schedule Price Change` in **Quick Actions**. <Frame> <img alt="Product & service > Contract product" /> </Frame> 3. You can choose to set a total price for the entire product if only the product price needs changing, or set individual prices for the product and its options to adjust option prices too. 4. Enter the new price (fixed amount or percentage). 5. Select the billing term if applicable. 6. If the contract product has options, adjust their prices as needed. 7. Click **Create** to schedule. <Frame> <img alt="Contract product price changes" /> </Frame> ## Editing or deleting scheduled changes 1. From the `Overview` tab, click **View** more details on the scheduled change. 2. Edit the price or details as needed. <Frame> <img alt="Contract product → Overview" /> </Frame> 3. Alternatively, go to the `Scheduled Changes` tab and use the three-dot menu to **Edit** or **Delete** the schedule. <Frame> <img alt="Contract Product → Scheduled changes" /> </Frame> # Add an existing product or service Source: https://docs.upmind.com/using-upmind/manage-client-services/add-an-existing-product-or-service If the customer already has an existing product or service that isn't yet billed in Upmind, this guide will explain how to add it to their account You can use the **Place new quick order** feature to quickly add a pre-existing order product to a client's account. This feature allows you to: 1. Place New Order – Creates a new order with a normal invoice that includes the full price. 2. **Add Existing Service** – Adds an existing service to Upmind for continued billing. The initial invoice will be set to 0 since the system recognises that the client has already paid for it in your previous system. <Frame> <img alt="You may want to select either Place New Order or Add Existing Service" /> </Frame> Here are the steps you can follow to add an existing product or service to a client's account. 1. Navigate to the Client's profile in your admin area 2. Click the three dots on client profile card and select **Place new quick order** <img alt="" /> 3. In the quick order window select **Add existing service** <img alt="" /> 4. Add an Order Item and select the product you wish to add 5. Configure the product as necessary then click **Add to basket** 6. If necessary, configure the **Activation and Next Renewal** date accordingly <img alt="" /> 7. Click **Place order** If the product has provisioning then the order status may have gone to "Awaiting activation" in which case you should activate it manually, and then go to the **Manage** tab and run **Get Info** to verify it works. <Frame> <img alt="Manually activate the order if necessary" /> </Frame> <Frame> <img alt="If the product has provisioning, go to the Manage tab and run Get Info to verify it works" /> </Frame> Next, the invoice will display a **custom discount** which will make the invoice amount 0 as the system recognises that the client has already paid for it in the previous system. The next renewal invoice will show the normal price. <img alt="" /> You can also watch the details in the Upmind YouTube video [here](https://www.youtube.com/watch?v=is9d5KGlSM8) # How to Add Existing Domain Names to an Upmind Client Account Source: https://docs.upmind.com/using-upmind/manage-client-services/how-to-add-existing-domain-names-to-an-upmind-client If the customer already has a product or service that hasn't been billed in Upmind, this guide will show you how to add it to their account. Because domains have specific expiry dates and renewal dates, we'll guide you on synchronising the due dates after the import. Utilise the **"Place new quick order"** feature to swiftly add a pre-existing product order to a client's account and store staff how to manage invoice settings for a client subscription. Here are the steps: 1. Go to **client’s area** and click **manage client** 2. **Place new quick order** <Frame> <img alt="Manage client > Place new quick order" /> </Frame> 3. Click **add existing service** 4. Click **here** under the empty basket <Frame> <img alt="Select Add existing service > click here under Empty Basket" /> </Frame> 5. Select product 6. Click continue <Frame> <img alt="Example domain product" /> </Frame> 7. Fill the information in the configure product and then click add basket <Warning> Note that you can make these fields optional under the **product catalogue -> product page**, by setting the provision fields to ‘optional’ or ‘hidden’. Because they are required in this instance of Upmind, we are required to fill the data in here </Warning> <Frame> <img alt="Information in Configure Product" /> </Frame> 8. Set the desired activation date and next renewal. <Warning> Select the activation date you prefer for when you want to start using the domain/service; **note that you cannot choose a date in the past so you likely want to choose today.** Additionally, set the next renewal date, which serves as a reminder for when you need to make the payment for the domain/service again. For domains, the renewal date can synchronise after import. </Warning> <img alt="" /> 9. Change the basket total price to 0 (This adjustment will not impact the renewal price) 10. Click on **"Place order."** <img alt="" /> 11. Navigate to the Manage tab for the domain, ensure the correct domain registrar is selected, and then execute the "Get Info" and Sync Due Date functions. <img alt="If the product has provisioning, go to the Manage tab and run Get Info to verify it works" /> If the product has provisioning, go to the Manage tab and run Get Info to verify it works # How to Change a Subscription Service Level Source: https://docs.upmind.com/using-upmind/manage-client-services/how-to-change-a-subscription-service-level Upgrade or downgrade a subscription Admins and store staff can modify a client's subscription by upgrading or downgrading the service level. Typically, you would use this feature when a client wants to scale up or scale down the scope of services in response to changes in their business. <Warning> To keep the same subscription service but modify its terms, see [How to Modify a Subscription Contract](/using-upmind/manage-client-services/how-to-modify-a-subscription-contract). </Warning> ## Opening a client subscription page The first step is to open the client's subscription page. 1. Log in to Upmind. 2. Click Products & Services on the left menu. 3. Make sure the Subscriptions menu tab is selected. <Frame> <img alt="a-1.png" /> </Frame> 4. Scroll through the list and click the subscription contract you want to change. 5. Click the Modify product button under the QUICK ACTIONS heading. <Frame> <img alt="a-2.png" /> </Frame> 6. On the new window, click the Change to new product tile. 7. Click the field below the product name. 8. Select an option to upgrade or downgrade the current service level. <Frame> <img alt="a-3a.png" /> </Frame> ## Upgrades and invoice changes Upmind automatically calculates the balance owed, if applicable, when you upgrade a subscription service. You can choose to send an invoice or apply changes for free. <Frame> <img alt="a-4a.png" /> </Frame> ## Downgrades and invoice changes Upmind automatically calculates an account credit, if applicable, when you downgrade a subscription service. You can choose to issue a refund, add funds to the client's account, or do nothing. <Frame> <img alt="a-5a.png" /> </Frame> # How to Change Subscription Invoice Settings Source: https://docs.upmind.com/using-upmind/manage-client-services/how-to-change-subscription-invoice-settings Edit due dates, payment methods, and more This article shows Admins and store staff how to manage invoice settings for a client subscription. You can: * pay invoices * issue credit notes or refunds * change due dates ## Opening a client subscription page 1. Log in to Upmind. 2. Click Products & Services on the left menu. 3. Make sure the Subscriptions menu tab is selected. <Frame> <img alt="a-1.png" /> </Frame> 4. Scroll through the list and click the client subscription you want to review or modify. The Overview page displays. ## Managing invoices 1. Click the Invoices menu tab. 2. Click the invoice you want to review or modify. 3. Scroll down the page and locate the QUICK ACTIONS heading. <Frame> <img alt="a-3.png" /> </Frame> ### Paying invoices 1. Click the Pay invoice button. 2. Fill the fields on the pop-up window. 3. Select Pay. <Frame> <img alt="a-4a.png" /> </Frame> ### Issuing a credit or refund 1. Click the Credit/refund invoice button. 2. Fill the fields in the window. 3. Click Submit. <Note> You can issue a full or partial credit/refund. </Note> <Frame> <img alt="a-5.png" /> </Frame> ### Resending an invoice Use this feature to resend invoices. You can also update details like company name and address. 1. Click the Regenerate invoice button. 2. Fill the fields in the window. 3. Click Regenerate. <Frame> <img alt="a-6.png" /> </Frame> ### Changing the due date 1. Click the Change due date button. 2. Select a new date on the calendar. 3. Click Save. <Frame> <img alt="a-7.png" /> </Frame> ### Changing the payment method 1. Click the Change payment method button. 2. Choose a new method and fill the fields. 3. Click Save. <Frame> <img alt="a-8.png" /> </Frame> ## Customising invoice settings Admins and store staff can change invoice settings for a specific subscription client. 1. Click the Settings menu tab. 2. Scroll down the page and adjust the settings. ### Changing payment method * As discussed above. ### Recurring invoice generation Use the sliding scale to set the date when a new invoice should be generated relative to the end of the current subscription contract. <Frame> <img alt="b-1.png" /> </Frame> ### Recurring invoice due dates Use the sliding scale to set the due date of a new invoice relative to the end of the current subscription contract. <Frame> <img alt="b-2.png" /> </Frame> ### Changing intervals Use the sliding scales to override default intervals for contract suspension, cancellation and termination. <Frame> <img alt="b-3.png" /> </Frame> # How to change the renewal date of a subscription Source: https://docs.upmind.com/using-upmind/manage-client-services/how-to-change-the-renewal-date-of-a-subscription You can change the date that a subscription renews easily. * Go to the subscription overview page within the client profile. Click the `Modify product` button or simply the renewal price. <img alt="" /> * Edit the renewal date to your new desired renewal date. <img alt="" /> * Once the date is chosen, we will attempt to calculate a pro rata upgrade or downgrade cost. You can either accept this estimate, override it, or set the change to be free. * Click `Apply Changes` <img alt="" /> If the change has no cost implication or is set to `Apply changes free of charge`, the change will be immediate. If the change results in a credit note/refund, then that will be immediate. <Note> If an invoice is generated as a result of this modify product order, these changes only take effect once that invoice is settled. If an invoice already exists (for instance, based on the previous renewal date), then this will be credited once the pro rata invoice is paid. Based on your order options, you can set a threshold at which a pro rata invoice is automatically credited (e.g. the due date change request is abandoned) </Note> # How to Modify a Subscription Contract Source: https://docs.upmind.com/using-upmind/manage-client-services/how-to-modify-a-subscription-contract Adjust subscription terms, pricing, and reactivate products. Upmind provides detailed control over subscription modifications through its admin interface without requiring client-side actions or support tickets. This guide shows admins and staff how to modify a client subscription. We show you how to: 1. Change subscription terms 2. Update subscription prices 3. Reactivate a subscription 4. Change to a new product <Warning> We show you how to cancel a [client subscription](https://features.upmind.com/en/help/articles/6008399) in a different article. </Warning> ## Opening a client subscription page 1. Log in to Upmind. 2. Click `Products & Services` on the left menu. 3. Make sure the `Subscriptions` menu tab is selected <Frame> <img alt="Products & Services > Subscriptions" title="Image" /> </Frame> 4. Go through the list and click the client subscription you want to review or modify. 5. Scroll down on the **Overview** tab, and you will find several `Quick Action` buttons. <Frame> <img alt="Quick Actions" /> </Frame> ## Changing the subscription term You can change the payment period (term) of the subscription on the **Modify** page. 1. Click the edit icon next to **Term,** or click the **Modify Product** button under `Quick Actions`. <Frame> <img alt="Term edit icon" title="Image" /> </Frame> 2. The **Modify** page will be displayed. <Frame> <img alt="Modify page" title="Image" /> </Frame> 3. Choose the `Billing Term` (Monthly/Annually/Biennially) and set the effective date for the `Next Renewal`. <Frame> <img alt="Set billing terms and next renewal date" /> </Frame> 4. If an invoice for renewal has already been created, Upmind will automatically credit the old invoice and generate a new one with the updated billing cycle. <Frame> <img alt="Renewal invoice" /> </Frame> <Frame> <img alt="New invoice created" /> </Frame> ## Changing subscription prices To manually set the price on the client's next invoice, you can follow these steps: 1. Click on the `Price` amount. 2. Enter an amount. 3. Click **Apply**. <Frame> <img alt="Enter a price" /> </Frame> 4. For the existing term, if a client renewed monthly but switches to an annual plan at a lower average monthly price, Upmind recalculates the price as if they had been on the annual plan since the last renewal. <Frame> <img alt="Average lower monthly price" /> </Frame> 5. If you want to change the next renewal price, you can set the charge to free. <Frame> <img alt="Free of charge" /> </Frame> 6. Moreover, you can also schedule the price change from `Quick Actions`. For more on **Schedule Price Changes**, follow this [guide](/using-upmind/invoicing-and-taxes/schedule-price-changes-for-contract-products#/). <Frame> <img alt="Schedule price change action" /> </Frame> <Frame> <img alt="Schedule price change" title="Image" /> </Frame> ## Reactivating a product You can change the status of a Lapsed or `Cancelled Subscription` to `Active`. 1. Scroll down to `Quick Actions`. 2. Click the **Reactivate product** button. <Frame> <img alt="Reactivate product" /> </Frame> 3. In the new window, set the conditions, including `Renewal Date` and `Price`. 4. Click **Submit**. <Frame> <img alt="Select renewal date and price" /> </Frame> 5. If you want to offer a discount on an existing raised invoice, you can go to the invoice and add a 'credit' against that invoice. <Frame> <img alt="Credit invoice" /> </Frame> <Frame> <img alt="Credit amount" /> </Frame> ## Change to a new product You can upgrade or downgrade to a new product and configuration. 1. On the **Modify** page, select the `Change to New Product` tab and then choose a new product. <Frame> <img alt="Change to new product" /> </Frame> 2. You can choose new billing terms and the charge options. <Frame> <img alt="Choose billing terms and charge options" /> </Frame> ## Apply pro-rata modifications without impacting existing invoices 1. Go to **Settings** > **Order Options**. <Frame> <img alt="Settings > Order Options" /> </Frame> 2. Under the **Misc** section, click **Enable control over pro rata/modify crediting invoices**. This controls whether crediting or refunding of invoices is disabled during pro-rata adjustments. When enabled, an additional parameter can be passed when pro-rating a product to suppress the automatic credit or refund on affected invoices. <Frame> <img alt="Enable control over pro rata/modify crediting invoices" /> </Frame> 3. Then, when you modify a product and click **Preview changes**, you will see the option **Only apply these changes to future invoices**. <Frame> <img alt="Only apply these changes to future invoices" /> </Frame> ## How to reactivate a contract with a past date ### Reactivating with a past date 1. Go to the client's profile and open **Products & Services**. 2. Scroll to **Quick Actions** and click **Reactivate Product**. <Frame> <img alt="Reactivate product" /> </Frame> 3. In the window that appears, locate the **Renewal Date** and set it to your desired past date. <Frame> <img alt="Choose a past date" /> </Frame> 4. Set the product price (if applicable) and click **Submit**. ### How far back can you backdate? The backdated renewal date cannot be set earlier than one billing cycle before the current next due date. In practice, this means if a product **Lapsed** or was **Cancelled** in a given month, you can only backdate it to one month prior to that date. **Example 1: Cancelled** - 27 July 2026 to 27 June 2026 (one month back). <Frame> <img alt="Cancelled contract product" /> </Frame> **Example 2: Lapsed** - 27 July 2026 to 27 May 2026 (one billing cycle back). <Frame> <img alt="Lapsed contract product" /> </Frame> <Warning> The limit is based on when the contract was set to **Cancelled** or **Lapsed,** not the renewal date at the time of reactivation. If you receive an error, try selecting a date closer to the lapse or cancellation date. </Warning> ### How billing works when backdating When reactivating with a past date, the flow differs from a standard reactivation: * A **recurring invoice** is issued from the calculated next invoice date at its full amount, not a pro-rata invoice. * The **Activate for Free** and **Issue Next Recurring** options are not available in this flow. * The reconciliation setting controls how billing is calculated when you backdate a reactivation. This can be accessed from **Settings** > **Subscription Options** > **Contract Settings.** <Frame> <img alt="Settings > Subscription Options" /> </Frame> <Frame> <img alt="Contract Settings > Reconciliation Strict Mode" /> </Frame> **Option 1** (default) - Billing is evaluated based on paid invoices in historical order. When backdating, the system works through the invoice history chronologically to determine what is owed from the backdated renewal date. **Option 2 -** Billing is evaluated based on the calculated next due date at the invoice product level, starting from the last invoice. This means the system calculates forward from the most recent invoice rather than reviewing the full history. For detailed examples of how each option behaves during cancellation and reactivation, refer to the [Subscription Cancellation Options guide](https://docs.upmind.com/using-upmind/how-subscription-cancellation-works/subscription-cancellation-options#contract-terms-strict-mode). # How to Use Order Templates Source: https://docs.upmind.com/using-upmind/manage-client-services/how-to-use-order-templates Choose this template option if you want to automatically generate an order for a specific product when a website visitor creates a new store account. To illustrate the potential value of an order template, here are two possible use cases: * A VPN reseller provides two months of service for free when a website visitor creates an account. * A newsletter publisher gives each new account holder a two-month free trial subscription. ## Creating an order template The first step is to select an order (or basket line item) for the target product. This order serves as the baseline for the template. * If you don't have an order in your system for the target product, create a test order with a dummy client account. It's not necessary to process a payment - simply create an order in the basket. 1. Go to the admin dashboard. 2. Click the **Products & services** tab on the side menu. 3. Locate your target product and click the tile. 4. Click the **Invoices** menu tab. 5. On the next page, click an invoice. 6. On the next page, click **Create order template**. A new side panel displays. ### Adding template details On the side panel page, enter a unique template name. In the **Code** field, enter a unique identifier (useful if you integrate an API with the order template). Click the radio button that matches your target product and then click **Save**. **Options** Select the first radio button if you're creating a template for a one-off item. Select the second radio button (Pre-generate recurring invoices) if this is a recurring product. Enter the number of invoices that Upmind should generate for the new account. This feature is useful if you are creating an order with a discount code that applies for a number of months. * For example, if you offer a 60-day free trial, you would add a 100% discount for two months, then auto-generate two recurring invoices (as the screenshot below shows). <img alt="" /> ### Editing an order template After you click Save, the **Order templates** page displays. Here you can update or delete an order template. * To make changes, locate the template you want to edit and click **Manage template**. * To remove a template, click the ellipsis and select **Delete**. You can also click **Update** to open the template editor. <img alt="" /> You can always return to the **Order templates** page at a later date to make changes. 1. Log in to the admin dashboard. 2. Click Settings. 3. Click the **Order templates** tile under the Ecommerce Settings heading. ## Enabling an order template The next step is to activate the order template so that when a website visitor creates an account, Upmind automatically creates a new order. In this example, Upmind creates an order for a newsletter subscription that comes with a two-month free trial. 1. Log in to the admin dashboard. 2. Click Settings. 3. Click the **Order options** tile under the Ecommerce Settings heading. 4. On the next page, scroll down to the SIGN UP ORDER DEFAULT TEMPLATE ID heading. 5. Click the field to open the drop-down menu. The menu shows the code name for each available order template. 6. Select the correct order template code name. 7. Click Save. <img alt="" /> ## What the customer sees ## Calling the order template by default There are two ways to trigger this order template. First you can call it on the client registration API command. Simply pass `order_template_code` as a parameter when registering a new client. PHP ``` $res = $client->request('post', 'https://api.upmind.io/api/clients/register', [ 'form_params' => [ 'firstname' => $post['name'], 'lastname' => $post['lastname'], 'email' => $post['email'], 'order_template_code' => 'myexampleorder', ] ]); ``` JavaScript ``` var xhr = new XMLHttpRequest(); xhr.open("POST", "https://api.upmind.io/api/clients/register", true); //Send the proper header information along with the request xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.onreadystatechange = function() { // Call a function when the state changes. if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { // Request finished. Do processing here. } } xhr.send("firstname=First&lastname=Last&email=me@email.com&order_template_code=myexampleorder"); ``` Second, you can have this order placed with every single new client by going to `settings` > `order options`. | **Field name** | **Description** | | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Signup order on | This defines when the order is placed in the client account. Registration - when the client fills out the registration form. Verification - once they have verified their email. | | Signup order default template ID | If you want to auto-create an order for every new client, the code of that order (e.g. myexampleorder) | # How to Create a Basic Promotion Code Source: https://docs.upmind.com/using-upmind/marketing-tools/how-to-create-a-basic-promotion-code Discount code for all items Create a basic promotion code that your customers can use for all products, services, and price lists. You also create an optional mandatory product which is a required purchase before Upmind applies the promo code discount. Upmind offers two types of discounts. * For a [group discount](/using-upmind/marketing-tools/how-to-create-a-promo-code-for-a-group-of), create a single code that applies to multiple items. * For an [advanced discount](/using-upmind/marketing-tools/how-to-create-an-advanced-promo-code), create a single code that applies a different discount to different products. ## Opening the Promotions page 1. Log in to your Upmind account. 2. Click Settings. 3. Click the Promotions tile. 4. On the next page, click the Add promotion button. ## Setting promotion details Fill fields and customise options on the Add promotion page. 1. Check the box to activate the promotion code. 2. Enter a name for the promotion. 3. Enter a brief description. 4. Enter a code. <Frame> <img alt="a-1.png" /> </Frame> 5. Click the All products tile. <Frame> <img alt="c-3.png" /> </Frame> ## Setting the discount and conditions Customise the settings. 1. Select a discount type: fixed amount or percentage. 2. Enter a discount value. <Frame> <img alt="a-5.png" /> </Frame> 3. Check or uncheck boxes as required. If you uncheck a box, select an option in the drop-down menu. <Frame> <img alt="a-3.png" /> </Frame> ## Adding a mandatory product You can make promotion codes conditional upon the purchase of one or more mandatory products. <Tip> For example, a 10% discount on any product is not valid unless the customer adds a bag of coffee beans (the mandatory product) to the basket. </Tip> 1. Under the Mandatory products heading, click the Manage products button. 2. Click Attach new products. 3. Complete the workflow to add a product or service. ## Setting availability and eligibility Scroll down the page and set the conditions for all items attached to this promotion code. 1. Set the start and end dates. 2. Check the maximum number of uses (all clients). The default is Unlimited. 3. Select Single or Multiple if you want to limit the number of times this code can be used by all clients. (optional) 4. Check the maximum number of times an individual client can use the promo code. The default is Unlimited. 5. Select Single or Multiple if you want to limit the number of times this code can be used by any client. (optional) 6. Review the Recurring count option. 7. Review the checkboxes and customise as required. 8. Click Save. <Frame> <img alt="b-3.png" /> </Frame> ## Editing a promotion To modify a promotion: 1. Open the Promotions page. 2. Click the three dots. 3. Click Manage promotion. 4. Make changes. 5. Click Save. <Frame> <img alt="d-1.png" /> </Frame> ## Removing a promotion To delete a promotion: 1. Open the Promotions page. 2. Click the three dots. 3. Click Delete. 4. Enter the number in the confirmation pop-up window. 5. Click Delete. ## Tracking promo code use 1. Go to the Edit promotion page. 2. Click the Uses menu tab. 3. Upmind shows the clients who have used the code. <Frame> <img alt="d-2.png" /> </Frame> ## Customer view Upmind applies the discount at the checkout. * If you enable the auto-apply option, the discount is applied automatically. <Frame> <img alt="d-3.png" /> </Frame> * If you disable the auto-apply option, the customer must enter the discount code and click the Add button. <Frame> <img alt="d-4.png" /> </Frame> # How to Create a Promo Code for a Group of Items Source: https://docs.upmind.com/using-upmind/marketing-tools/how-to-create-a-promo-code-for-a-group-of Discount code for selected items This article shows you how to create a promotion code that applies a single discount to one or more products. You also learn how to create an optional mandatory product which is a required purchase before Upmind applies the promo code discount. Upmind offers two types of discounts. * For store-wide discounts, create a [single discount code](/using-upmind/marketing-tools/how-to-create-a-basic-promotion-code) for every product or service. * For an [advanced discount](/using-upmind/marketing-tools/how-to-create-an-advanced-promo-code), create a single code that applies a different discount to different products. ## Opening the Promotions page 1. Log in to your Upmind account. 2. Click Settings. 3. Click the Promotions tile. 4. On the next page, click the Add promotion button. ## Setting promotion details Fill fields and customise options on the Add promotion page. 1. Check the box to activate the promotion code. 2. Enter a name for the promotion. 3. Enter a brief description. 4. Enter a code name. <Frame> <img alt="a-1.png" /> </Frame> 5. Click the Selected products tile. <Frame> <img alt="a-2.png" /> </Frame> ## Adding products 1. Click the Manage products button. 2. Click Manage selected products. <Frame> <img alt="a-3.png" /> </Frame> 3. On the new window, expand the tabs. 4. Check the box next to each item you want to include in this promotion. 5. Click Save. <Frame> <img alt="a-4.png" /> </Frame> ## Setting the discount and conditions Scroll down the page and customise the settings. 1. Select a discount type: fixed amount or percentage. 2. Enter a discount value. <Frame> <img alt="a-5.png" /> </Frame> 3. Check or uncheck boxes as required. 4. Click Save. <Frame> <img alt="a-6.png" /> </Frame> <Note> By default, the Limit quantity box is unchecked. If you check this box, add a minimum and maximum quantity. </Note> ## Adding a mandatory product You can make promotion codes conditional upon the purchase of one or more mandatory products. <Tip> For example, a 10% discount on Moka coffee pots is not valid unless the customer adds a bag of coffee beans (the mandatory product) to the basket. </Tip> 1. Under the Mandatory products heading, click the Manage products button. 2. Click Attach new products. 3. Complete the workflow to add a mandatory product or service. ## Setting availability and eligibility Scroll down the page and set the conditions for all items attached to this promotion code. 1. Set the start and end dates. 2. Check the maximum number of uses (all clients). The default is Unlimited. 3. Select Single or Multiple if you want to limit the number of times this code can be used by all clients. (optional) 4. Check the maximum number of times an individual client can use the promo code. The default is Unlimited. 5. Select Single or Multiple if you want to limit the number of times this code can be used by a client. (optional) 6. Review the Recurring count option. 7. Review the checkboxes and customise as required. 8. Click Save. <Frame> <img alt="b-7.png" /> </Frame> <Warning> On the checkout page in the client area, each selected product must have one mandatory product to apply a discount. To apply discounts to two selected products, add two mandatory products to the cart. </Warning> ## Editing a promotion To modify a promotion: 1. Open the Promotions page. 2. Click the three dots. 3. Click Manage promotion. 4. Make changes. 5. Click Save. <Frame> <img alt="b-8.png" /> </Frame> ## Removing a promotion To delete a promotion: 1. Open the Promotions page. 2. Click the three dots. 3. Click Delete. 4. Enter the number in the confirmation pop-up window. 5. Click Delete. ## Tracking promo code use 1. Go to the Edit promotion page. 2. Click the Uses menu tab. * Upmind shows the clients who have used the code. <Frame> <img alt="b-9.png" /> </Frame> ## Customer view Upmind applies the discount at the checkout. * If you enable the auto-apply option, the discount is applied automatically. <Frame> <img alt="g-1a.png" /> </Frame> * If you disable the auto-apply option, the customer must enter the discount code and click the Add button. <Frame> <img alt="G-2.png" /> </Frame> # How to Create an Advanced Promo Code Source: https://docs.upmind.com/using-upmind/marketing-tools/how-to-create-an-advanced-promo-code Different codes for different products This article shows you how to create a promotion code that applies different discounts to different products. You also learn how to create an optional mandatory product which is a required purchase before Upmind applies the promo code discount. Upmind offers two offer types of discounts. * For store-wide discounts, create a [single discount](/using-upmind/marketing-tools/how-to-create-a-basic-promotion-code) code for every product or service. * For a [group discount](/using-upmind/marketing-tools/how-to-create-a-promo-code-for-a-group-of), create a single code that applies a single discount to multiple items. ## Opening the Promotions page 1. Log in to your Upmind account. 2. Click Settings. 3. Click the Promotions tile. 4. On the next page, click the Add promotion button. ## Setting promotion details Fill fields and customise options on the Add promotion page. 1. Check the box to activate the promotion code. 2. Enter a name for the promotion. 3. Enter a brief description. 4. Enter a code. <Frame> <img alt="a-1.png" /> </Frame> 5. Click the Individual promotion per product tile. <Frame> <img alt="c-1.png" /> </Frame> ## Adding products 1. Click the Manage products button. 2. Click Attach new product. <Frame> <img alt="a-2.png" /> </Frame> 3. On the new window, click the field and select a product. <Frame> <img alt="a-3.png" /> </Frame> 4. Select a discount type: fixed amount or percentage. 5. Enter a discount value. <Frame> <img alt="a-4.png" /> </Frame> 6. Scroll down the page and customise the settings. 7. Check or uncheck boxes as required. 8. Click Save. 9. Repeat steps to add another product. <Note> By default, the Limit quantity box is unchecked. If you check the box, add a minimum and maximum quantity. </Note> <Frame> <img alt="a-5.png" /> </Frame> ## Adding a mandatory product You can make promotion codes conditional upon the purchase of one or more mandatory products. <Note> For example, a 10% discount on Moka coffee pots is not valid unless the customer adds a bag of coffee beans (the mandatory product) to the basket. </Note> 1. Under the Mandatory products heading, click the Manage products button. 2. Click Attach new products. 3. Complete the workflow to add a product or service. ## Setting availability and eligibility Scroll down the page and set the conditions for all items attached to this promotion code. 1. Set the start and end dates. 2. Check the maximum number of uses (all clients). The default is Unlimited. 3. Select Single or Multiple if you want to limit the number of times this code can be used by all clients. (optional) 4. Check the maximum number of times an individual client can use the promo code. The default is Unlimited. 5. Select Single or Multiple if you want to limit the number of times this code can be used by any client. (optional) 6. Review the Recurring count option. 7. Review the checkboxes and customise as required. 8. Click Save. <Frame> <img alt="a-6.png" /> </Frame> <Warning> On the checkout page in the client area, each selected product must have one mandatory product to apply a discount. To apply discounts to two selected products, add two mandatory products to the cart. </Warning> ## Editing a promotion To modify a promotion: 1. Open the Promotions page. 2. Click the three dots. 3. Click Manage promotion. 4. Make changes. 5. Click Save. <Frame> <img alt="c-2.png" /> </Frame> ## Removing a promotion To delete a promotion: 1. Open the Promotions page. 2. Click the three dots. 3. Click Delete. 4. Enter the number in the confirmation pop-up window. 5. Click Delete. ## Tracking promo code use 1. Go to the Edit promotion page. 2. Click the Uses menu tab. * Upmind shows the clients who have used the code. <Frame> <img alt="b-3.png" /> </Frame> ## Customer view Upmind applies the discount at the checkout. * If you enable the auto-apply option, the discount is applied automatically. <Frame> <img alt="d-6.png" /> </Frame> * If you disable the auto-apply option, the customer must enter the discount code and click the Add button. <Frame> <img alt="d-5.png" /> </Frame> # Place a 'Rapid' order (experimental) Source: https://docs.upmind.com/using-upmind/ordering/place-a-rapid-order-experimental We've implemented a new (**experimental**) rapid order route which allows one to pass a single product config, with optional provision fields, and then direct the user straight on to the checkout step. This functionality can be especially useful when deep linking a user from an external site, social post or paid advert – and pre-populating a basket for them. This should be considered a power-user feature as it requires some advanced setup and exploration to ensure you are passing the correct configuration in a correctly encoded format. The new rapid order route exists under the path `/order/_` and it supports the following query parameters: * **product** `[required]`: A product config object which can be used to pre-select a billing term, quantity and any available options and attributes. It can also pass through promotional codes if required. Behind the scenes, we're basically wrapping our 'Add product to order' endpoint, so you can feasibly pass any of the parameters listed here: [https://demoapi.upmind.io/doc/#api-Client\_Orders-PostOrdersOrder\_idProducts](https://demoapi.upmind.io/doc/#api-Client_Orders-PostOrdersOrder_idProducts). The simplest way to obtain a valid product config (rather than hunting down product IDs etc) is to go through the usual flow of adding an item to your basket and then via your browser's 'Network' tab, copy part of the payload object from the POST request. * **fields** `[optional]`: An object containing provision field values for the given product (if applicable). Field names should be used as property keys – for example `{ domain_name: "example.com" }`. If the added product does not provision anything, this param **must** be omitted, otherwise the request will fail. * **currency** `[optional]`: A supported/enabled ISO 4217 currency code (eg. USD). <Warning> All `object` type parameters MUST first be `JSON.stringify`(ed) and then encoded. </Warning> To help get this formatting right, you can run the following IIFE code snippet in your browser console. Just substitute \{ ... } with your actual product and field objects, and it should correctly process and return a query string which can be used with the rapid route. JavaScript ``` ((params, host = "?") => { for (const key in params) { if (typeof params[key] === "object") params[key] = encodeURI(JSON.stringify(params[key])); } return host + new URLSearchParams(params).toString(); })({ product: { ... }, fields: { ... }, currency: "USD", }); ``` An example link might end up looking like this: ``` https://{ YOUR_UPMIND_INSTANCE }/order/_?product=%257B%2522product_id%2522%3A%252201e96d29-8537-d4e5-025c-54e120637085%2522%2C%2522quantity%2522%3A1%2C%2522billing_cycle_months%2522%3A12%257D&fields=%257B%2522domain_name%2522%3A%2522example.com%2522%257D ``` <Warning> Using this route will always create a NEW basket. It will **not** add to an existing basket. If **ANY** error is encountered (incorrect config, malformed query etc) the rapid order attempt will fail silently and the user will be redirected to the main shop step. If things keep failing, and you're not sure why, we suggesting preserving your console and network logs to see what errors are being thrown or coming back from the API. </Warning> # Differences Between Stored Payment Methods and One-Time Payment Methods Source: https://docs.upmind.com/using-upmind/payment-methods/differences-between-stored-payment-methods-and-one-time-payment-methods Stored vs one-time payment methods Upmind supports both **stored** and **one-time** payment methods, each offering distinct benefits and use cases for clients and businesses. ## Stored payment methods Payment details are securely saved to each client’s account. This helps with smooth recurring billing for subscriptions, automated invoice payments, and effortless renewals. Clients have the flexibility to add, update, or remove their stored payment methods anytime from their billing profile. Admins can require payment method storage for specific gateways or products. All payment data is **tokenized**, so that sensitive information is never stored directly on Upmind’s servers. When this feature is enabled, stored payment methods are automatically charged for future invoices, reducing manual work and late payments. You can check out this [guide](/using-upmind/payment-methods/payment-options-overview#/) for more information on stored payment settings. **Examples**: Credit card on file, PayPal Billing Agreement, GoCardless mandate. ## One-time payment methods Payment details are used for a single transaction only and are not saved for future use. This is ideal for manual or one-time payments, single invoice settlements, or when clients choose not to store their information. While the payment is processed securely, no recurring billing or auto-renewal is possible with one-time methods, as details are not retained after the transaction. It is beneficial for [guest checkouts](/setup-and-configuration/orders-services/how-to-enable-guest-checkout#/). You can check out this [guide](/using-upmind/payment-methods/payment-options-overview#/) for more information on one-time payment settings. **Examples**: Entering card details for a one-off invoice, using PayPal Express Checkout without saving the agreement. ## Recurring billing A stored payment method is required. Upmind will automatically charge the payment on the due date and retry if it fails, following your [billing automation](/using-upmind/payment-methods/payment-options-overview#/billing-automation) settings. # How to Add GoCardless as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/gocardless-access-token-webhooks/how-to-add-gocardless-as-a-payment-method Configure GoCardless payment gateway Setting up **GoCardless payment gateway** in Upmind requires both an **access token** and a **webhook endpoint**. These allow Upmind to securely communicate with GoCardless, receive mandate and payment events, and automatically update invoice statuses when payments clear. ## **Creating a GoCardless access token** 1. Log in to your GoCardless account at [<u>manage.gocardless.com</u>](http://manage.gocardless.com). <Frame> <img alt="Log into your GoCardless account" /> </Frame> 2. Go to the `Developers` section. 3. Click **Create** and select **Access Token**. <Frame> <img alt="Go to Developers > Create > Access Token" /> </Frame> 4. Enter a name for your access token and select the appropriate scope: 1. **Read Only Access**: Allows users to view data without making any changes. Ideal for accessing information without the risk of modification. 2. **Read-Write Access**: Grants permission to both view and modify data. Required for actions such as creating payments, updating records, or managing customers. <Frame> <img alt="Name your access token and select the appropriate scope based on your needs" /> </Frame> 5. Click **Create Access Token**. 6. Copy the access token displayed (you will not be able to view this token again, so save it securely). <Frame> <img alt="Click “Create Access Token” and copy your new access token" /> </Frame> 7. In Upmind, go to your GoCardless `Payment Provider` settings. 8. Paste the access token into the designated field and click **Save**. <Frame> <img alt="Paste the access token" /> </Frame> ## **Setting up the webhook endpoint** 1. Log in to your [<u>GoCardless account</u>](https://manage.gocardless.com/) and go to the `Developers` section. 2. Click **Create** and select `Webhook endpoint`. <Frame> <img alt="Developers > Create > Webhook endpoint" /> </Frame> 3. Enter a name for the webhook. 4. Set the URL to: [<u>https://api.upmind.io/payments/gocardless/callback</u>](https://api.upmind.io/payments/gocardless/callback). 5. Leave the **Secret** field blank (GoCardless will generate a secure secret for you). 6. Click **Create Webhook Endpoint**. <Frame> <img alt="980" /> </Frame> 7. After creation, click on the new webhook endpoint to view its details. <Frame> <img alt="New webhook endpoint" /> </Frame> 8. Copy the **Secret** generated by GoCardless. <Frame> <img alt="Copy webhook secret" /> </Frame> 9. In Upmind, paste the webhook secret into your GoCardless `Payment Provider` settings and click **Save**. <Frame> <img alt="Paste the webhook secret" /> </Frame> # Manually Adding GoCardless Mandate Tokens in Upmind Source: https://docs.upmind.com/using-upmind/payment-methods/gocardless-access-token-webhooks/manually-adding-gocardless-mandate-tokens-in-upmind Configure GoCardless mandate tokens Admins and staff can manually link existing GoCardless mandates to customer accounts in Upmind by adding mandate tokens. This is helpful for clients who have set up mandates outside of the automated Upmind process. Additionally, you can refer to this [guide](/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-gocardless-as-a-payment-method) on how to add GoCardless as a payment method. You can also find the instructions on obtaining the GoCardless access token and setting up webhooks on this [guide](/using-upmind/payment-methods/gocardless-access-token-webhooks/manually-adding-gocardless-mandate-tokens-in-upmind). ## Getting the mandate token from GoCardless 1. Log in to your **GoCardless Dashboard** at [manage.gocardless.com](https://manage.gocardless.com/). <Frame> <img alt="GoCardless account login" /> </Frame> 2. In the left menu, click `Customers`. <Frame> <img alt="Customers > Choose the customer" /> </Frame> 3. Select the customer whose mandate you want to link. 4. Click **Bank Accounts** under the customer profile. <Frame> <img alt="Bank account under customer profile" /> </Frame> 5. Locate and copy the **Mandate Code** (the unique identifier for the mandate). <Frame> <img alt="Copy the mandate code" /> </Frame> ## Manually adding the mandate token in Upmind 1. Log in to your Upmind admin panel. 2. Select the client to whom you want to assign the mandate. 3. Go to **Billing** > **Payment Methods** and click **Add Payment Method**. <Frame> <img alt="Billing > Payment methods" /> </Frame> 4. In the **Advanced** section, choose the option to add a mandate token manually. <Frame> <img alt="Manually add mandate token" /> </Frame> 5. Select **GoCardless** as the provider. 6. Paste the copied mandate code into the `TOKEN` field. <Frame> <img alt="Paste the mandate token" /> </Frame> 7. Click **Save** to store the mandate. <Frame> <img alt="Store the mandate" /> </Frame> # How Staff Can Top Up Account Credit Source: https://docs.upmind.com/using-upmind/payment-methods/how-staff-can-top-up-account-credit This guide shows you how staff can add (top up) account credit for a client through the admin area, along with some available options. Here's how to do it: 1. Go to the client’s profile > Billing > Account Credit. <img alt="" /> 2. Click Top Up. 3. In the pop-up window, you’ll see a few options: <img alt="" /> * Enter the amount to top up. * Choose whether to create a credit note for the top-up and fill in the reason for it. <Note> To enable this as the default option, go to `Settings` > `Payment Options` > `Client Wallet` > `Force Credit Note on Top Up.` </Note> * Select a payment method: use a new payment method, an existing one, or record a manual/offline payment. 4. Click Submit Payment. Once done, the client’s account credit will be updated. ## **Other Account Credit Settings** Besides topping up, you can also manage a client's account credit with these options: <img alt="" /> Account Credit under Client Profile in Admin Area * Enable or disable top-up for this client. <img alt="" /> * Set up multi-currency options for the client’s account credit. <img alt="" /> * Configure auto-consume credit <img alt="" /> <Note> If you choose Inherit brand default, you can review the option under `Settings` > `Payment Options` > `Client Wallet` </Note> * Make manual adjustments to the client’s credit balance. <img alt="" /> * View credit transactions to see the full history of credit usage and changes. <img alt="" /> # Adding Payment Gateways in Upmind Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/adding-payment-gateways-in-upmind Customise payment options Adding **payment gateways** in Upmind allows you to accept a variety of payment methods in your e-commerce store. You can also control visibility, supported currencies, and provide custom instructions for each gateway. This guide will show you how to add, edit, disable, and delete these gateways, and add payment instructions. ## **Adding a new payment gateway** 1. Log in to your Upmind admin dashboard. 2. Click **Settings** at the bottom of the left menu and select **Payment Providers**. <Frame> <img alt="Settings > Payment providers" /> </Frame> 3. Click **Add Payment Provider**. <Frame> <img alt="Add payment provider" /> </Frame> 4. Choose a payment provider from the list. <Frame> <img alt="Choose a payment provider" /> </Frame> 5. Fill in the required fields. <Note> **Each payment option requires different information. We selected the Stripe option for this example. To obtain specific information, like an API key, go to your payment provider account.** </Note> <Frame> <img alt="Fill in the details" /> </Frame> 6. Test your **credentials** to confirm the correct setup. (Optional) <Frame> <img alt="1588" /> </Frame> 7. Use toggle switches to enable or disable credit card acceptance. <Frame> <img alt="1569" /> </Frame> 8. Select which currencies you want to accept for this gateway. <Frame> <img alt="Select currencies" /> </Frame> 9. Specify the countries where this payment provider should be available. <Frame> <img alt="Enable for countries" /> </Frame> 10. (Optional) Add payment instructions for clients. 11. Click **Update** to save your settings. <Frame> <img alt="1667" /> </Frame> ## **Editing payment visibility** You can control which payment provider options the client can access on the checkout page. To control visibility, toggle the switch **ON** (green) to show the gateway at checkout. <Frame> <img alt="Payment visibility (enabled)" /> </Frame> **Example**: The client sees two payment options. <Frame> <img alt="Multiple payment options" /> </Frame> Toggle the switch **OFF** (grey) to remove the payment option from the checkout and disable the tool on your e-commerce site. <Frame> <img alt="Payment visibility (disabled)" /> </Frame> **Example**: The client sees one payment option. <Frame> <img alt="Single payment option" /> </Frame> ## **Editing a payment provider** To edit an existing payment provider, locate it in the list and click the gear icon. You can also delete any payment providers. <Frame> <img alt="Edit payment provider" /> </Frame> Make any necessary changes and click Update. **Example**: We add instructions for offline bank deposits. <Frame> <img alt="Payment instructions" /> </Frame> <Note> **Payment provider instructions display on the checkout only if the client selects that payment option.** </Note> # How to Add Adyen as a Payment Method in Upmind Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-adyen-as-a-payment-method-in-upmind [<u>Adyen</u>](https://www.adyen.com/) is a global payment gateway supporting credit cards, digital wallets, and local payment options on one platform. ## Getting Adyen credentials 1. Log in to your **Adyen** account. 2. Go to **Developers** > **API Credentials**. 3. Create or select an API credential. <Frame> <img alt="Create new credential" /> </Frame> 4. Under **Server settings** > **Authentication**, generate and copy your **API Key**. <Frame> <img alt="API key" /> </Frame> 5. Under **Client settings** > **Authentication**, generate and copy your **Client Key**. <Frame> <img alt="Client key" /> </Frame> 6. Under **Permission** > **Roles** > **Uncategorized**, enable API tokenise payment details (contact Adyen support if unavailable). <Frame> <img alt="API tokenise payment details" /> </Frame> 7. Click **Save changes**. ### Getting Merchant Account After generating the **API** and **Client Key**, the **Account** column displays your **Merchant Account**. <Frame> <img alt="Merchant account" /> </Frame> ### Generate HMAC Key 1. Go to **Developers** > **Webhooks**. 2. Create or edit a webhook. <Frame> <img alt="Create new webhook" /> </Frame> 3. Under **Security**, generate and copy your **HMAC Key**. <Frame> <img alt="Generate HMAC key" /> </Frame> 4. Under **Events**, select all. <Frame> <img alt="Select all" /> </Frame> 5. Click **Save configurations**. 6. Enable **Recurring** contract and **Authentication**. <Frame> <img alt="Save settings" /> </Frame> <Frame> <img alt="Enable recurring and authentication" /> </Frame> 7. For more information, check this . ### Additional Settings to Check for Storing Cards 1. Go to **Developers** > **Additional Data** and enable **Recurring detail**. <Frame> <img alt="Recurring detail" /> </Frame> 2. In **Settings** > **Checkout Settings** > **Tokenization**, ensure **Recurring** is *ON*. <Frame> <img alt="Enable Recurring" /> </Frame> ## Adding Adyen in Upmind 1. Go to **Settings** > **Payment Providers** in your admin area. 2. Click **Add Payment Provider** and select **Adyen**. ## Configure details 1. Enter a display name. We suggest **Adyen**. 2. Select **Test Mode** as needed. 3. Enter your **API Key**, **Client Key**, **Merchant Account**, and **HMAC Key**. 4. (Optional) Click **Test Credentials**. 5. Add supported currencies. 6. (Optional) Enter payment instructions. 7. Click **Create**. ## Editing the payment method To update, go to **Settings** > **Payment Providers**, click the three dots next to `Adyen`, and select **Edit**. # How to Add Bank Transfer as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-bank-transfer-as-a-payment-method Let customers wire money to your account **Bank Transfer** lets customers pay by moving funds directly between bank accounts, either online or at a branch. This is a preferred option for those who do not wish to use cards online. ### Recommended process When a customer selects bank transfer at checkout, your store should automatically send an order confirmation with your bank details. The order should include: * Your bank name and address. * Account number. * SWIFT code. After confirming the funds, manually mark the invoice as paid and process the order. ## Adding the Bank Transfer provider 1. Go to **Settings** > **Payment Providers** in Upmind. 2. Click **Add Payment Provider**. 3. Select `Bank Transfer`. <Frame> <img alt="Select payment provider" /> </Frame> ## Configuring details 1. Enter a display name. 2. (Optional) Add supported currencies. 3. Enter payment instructions. 4. Click **Create**. <Frame> <img alt="Add details" /> </Frame> ### What the customer sees Customers see your bank transfer instructions at checkout. <Frame> <img alt="Instructions at checkout" /> </Frame> ## Editing the payment method Go to **Settings** > **Payment Providers**, click the three dots next to `Bank Transfer`, and select **Edit**. <Frame> <img alt="Edit payment provider" /> </Frame> # How to Add BitPay as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-bitpay-as-a-payment-method Set up BitPay to take payments in Upmind [<u>BitPay</u>](https://www.bitpay.com/) is a payment service provider specialising in cryptocurrency payments. It lets you accept payments in Bitcoin, Bitcoin Cash, Ethereum, and select stablecoins. ## Getting BitPay API credentials 1. Log in to your BitPay account. 2. Generate a pairing key and use it as your first API token. 3. BitPay will then issue an updated API key for ongoing use. <Frame> <img alt="Generate API token" /> </Frame> ## Adding BitPay as a payment provider 1. Go to **Settings** > **Payment Providers** in Upmind. 2. Click **Add Payment Provider** and choose **BitPay**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configuring details 1. Enter a display name. We suggest **BitPay**. 2. Set **Test Mode** as needed. 3. Enter your **API Token**. 4. Click **Test Credentials** to verify. 5. (Optional) Add currencies and payment instructions. 6. Click **Create**. <Frame> <img alt="Add details" /> </Frame> ## Editing the payment method Go to **Settings** > **Payment Providers**, click the three dots next to `BitPay`, and select **Edit**. # How to Add Blockonomics as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-blockonomics-as-a-payment-method Learn How to Add Blockonomics as a Payment Method in Upmind. You can receive payments from your customers using Blockonomics. Check Now! [Blockonomics](https://www.blockonomics.co/) is a decentralised Bitcoin payment platform that offers specialised tools to improve your Bitcoin transactions. ## Getting Blockonomics credentials 1. Log in to your **Blockonomics** account. 2. On your merchant page, go to **Stores** to view your cryptocurrency and **API Key**. <Frame> <img alt="API Key in Blockonomics Account" /> </Frame> > 📘 NOTE > > * To obtain your Extended Public Key, refer to the Blockonomics [documentation](https://help.blockonomics.co/support/solutions/articles/33000248743-bitcoin-wallet-and-xpub). > * To avoid any issues, make sure to use one Extended Public Key for only one Blockonomics account. ## Adding Blockonomics in Upmind 1. Go to **Settings** > **Payment Providers** in your admin area. 2. Click **Add Payment Provider** and select **Blockonomics**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configuring details 1. Enter a display name. We suggest **Blockonomics**. 2. Select the appropriate **Test Mode** option. 3. Choose the cryptocurrency from your account. 4. Enter your **API Key** and **Extended Public Key**. 5. (Optional) Click **Test Credentials** to verify successful authentication. 6. (Optional) Add supported currencies. 7. (Optional) Enter payment instructions. 8. Click **Create**. <Frame> <img alt="Add details" /> </Frame> ## Editing the payment method To update, go to **Settings** > **Payment Providers**, click the three dots next to `Blockonomics`, and select **Edit**. # How to Add Braintree as a Payment Method in Upmind Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-braintree-as-a-payment-method-in-upmind Set up Braintree to take payments in Upmind [<u>Braintree</u>](https://www.paypal.com/us/braintree?utm_campaign=Braintree_Migration\&utm_medium=Website\&utm_source=Braintree) enables global payments in 130+ currencies and 45+ countries, supporting cards, wallets, and more. ## Getting Braintree credentials 1. Log in to your **Braintree** account. <Frame> <img alt="Settings → API" /> </Frame> 2. Click the **Settings** cog wheel → **API** to obtain your **Public Key**, **Private Key**, and **Merchant ID**. <Frame> <img alt="API Key in Blocknomics Account" /> </Frame> 3. For your **Merchant Account ID**, go to **Settings** > **Business** > **Merchant Accounts**. <Frame> <img alt="Settings → Business" /> </Frame> <Frame> <img alt="Merchant ID and Merchant Account ID" /> </Frame> <Info> The Merchant Account ID lets you specify the merchant account used for processing payments. By default, your Braintree account only supports your home currency. To accept other currencies, set up additional currencies in Braintree, then update your Upmind provider with the new merchant account ID for each currency you want to process. </Info> ## Adding Braintree to Upmind 1. Go to **Settings** > **Payment Providers** in your admin area. 2. Click **Add Payment Provider** and select **Braintree**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configure details 1. Enter a display name. We suggest **Braintree**. 2. Select **Test Mode** as needed. 3. Enter your **Merchant ID**, **Public Key**, **Private Key**, and **Merchant Account ID**. 4. Choose your **preferences** for: 1. Stored card 2. Create a New Braintree Customer Account for Guest 3. Reuse the Braintree Customer Account by Stored Payment Method 4. Use 3D Secure Flow 5. Accept PayPal Payment 6. Accept PayPal Credit Payment 5. (Optional) Click **Test Credentials** to verify. 6. Select the currency. 7. (Optional) Enter payment instructions. 8. Click **Create**. <Frame> <img alt="Add details" /> </Frame> <Frame> <img alt="Choose options" /> </Frame> ## Editing the payment method To update, go to **Settings** > **Payment Providers**, click the three dots next to `Braintree`, and select **Edit**. # How to Add CoinGate as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-coingate-as-a-payment-method Set up CoinGate to take payments in Upmind [<u>CoinGate</u>](https://coingate.com/) is a cryptocurrency payment gateway that supports a wide range of cryptocurrencies, including Bitcoin, Ethereum, and Litecoin. ## Getting CoinGate API credentials 1. Log in to your **CoinGate** account. 2. Go to **Merchant** > **API** > **Apps**. 3. Create a new app and generate your **API Key**. <Frame> <img alt="Generate API key" /> </Frame> ## Adding CoinGate as a payment provider 1. Go to **Settings** > **Payment Providers** in Upmind. 2. Click **Add Payment Provider** and select **CoinGate**. <Frame> <img alt="Generate API key" /> </Frame> ## Configuring details 1. Enter a display name. We suggest **CoinGate**. 2. Set **Test Mode** as needed. 3. Enter your **API Key**. 4. Click **Test Credentials** to verify. 5. (Optional) Add currencies and payment instructions. 6. Click **Create**. <Frame> <img alt="Add details" /> </Frame> ## Editing the payment method Go to **Settings** > **Payment Providers**, click the three dots next to `CoinGate`, and select **Edit**. # How to Add dLocal as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-dlocal-as-a-payment-method Set up dLocal to take payments in Upmind [<u>dLocal</u>](https://www.dlocal.com/) specialises in cross-border payments for emerging markets, enabling businesses to access customers in Latin America, Asia Pacific, the Middle East, Africa, and more. Integrating dLocal with Upmind helps you reach clients in regions where traditional banking may be limited. ## Getting dLocal credentials 1. Log in to your **dLocal** dashboard. 2. Navigate to **Settings** > **Integration**. 3. Locate your **x-login**, **x-trans-key**, and **secret key**. These credentials are required for secure integration in Upmind. <Frame> <img alt="Settings > Integration" /> </Frame> <Warning> You can create a test account to try payment functionality, but live payments require account activation. For more details, refer to the dLocal . </Warning> ## Adding dLocal in Upmind 1. Go to **Settings** > **Payment Providers** in your Upmind admin area. 2. Click **Add Payment Provider** and select **dLocal**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configure details 1. Enter a display name. We suggest **dLocal**. 2. Select the appropriate **Test Mode** option. 3. Enter your **x-login**, **x-trans-key,** and **secret key** from your dLocal dashboard. 4. (Optional) Click **Test Credentials** to verify your connection. 5. (Optional) Add supported currencies. 6. (Optional) Enter payment instructions for your customers. 7. Click Create to activate **dLocal**. <Frame> <img alt="Add details" /> </Frame> <Note> dLocal requires a document number from customers at checkout in order to process payments. Make sure the document number field is enabled on your checkout to avoid payment failures. </Note> ## Editing the payment method To update, go to **Settings** > **Payment Providers**, click the three dots next to `dLocal`, and select **Edit**. # How to Add Flutterwave as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-flutterwave-as-a-payment-method Set up Flutterwave to take payments in Upmind [<u>Flutterwave</u>](https://flutterwave.com/us/) is a leading payment gateway in Africa, supporting cards, bank transfers, mobile money, and digital wallets. ## Getting Flutterwave API credentials 1. Log in to your **Flutterwave** account. 2. Go to **Developer** > **API Key** to find your **Public Key**, **Secret Key**, and **Encryption Key**. <Frame> <img alt="Developer > API Key" /> </Frame> ## Adding Flutterwave as a payment provider 1. Go to **Settings** > **Payment Providers** in Upmind. 2. Click **Add Payment Provider** and select **Flutterwave**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configuring details 1. Enter a display name. We suggest **Flutterwave**. 2. Set **Test Mode** as needed. 3. Enter the **Public Key**, **Secret Key**, and **Encryption Key**. 4. Click **Test Credentials** to verify. 5. (Optional) Add currencies and payment instructions. 6. Click **Create**. <Frame> <img alt="Add details" /> </Frame> ## Editing the payment method Go to **Settings** > **Payment Providers**, click the three dots next to `Flutterwave`, and select **Edit**. # How to Add GoCardless as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-gocardless-as-a-payment-method Set up GoCardless to take payments in Upmind [<u>GoCardless</u>](https://gocardless.com/) is an online direct debit payment method. After a customer approves a mandate, payments are pulled automatically from their bank. ## Getting GoCardless credentials 1. Log in to your **GoCardless** account. 2. Obtain your **Access Token** and **Secret** from the `Developers` section. ## Adding GoCardless as a payment provider 1. Go to **Settings** > **Payment Providers** in Upmind. 2. Click **Add Payment Provider** and select **GoCardless**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configuring details 1. Enter a display name. We suggest **GoCardless**. 2. Enter the **Access Token** and **Webhook Secret**. 3. Set **Sandbox**, **Retry**, and **Custom References** options as needed. 4. Click **Test Credentials**. 5. (Optional) Add currencies and payment instructions. 6. Click **Create**. <Frame> <img alt="Add details" /> </Frame> ## Editing the payment method Go to **Settings** > **Payment Providers**, click the three dots next to `GoCardless`, and select **Edit**. # How to Add MercadoPago as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-mercadopago-as-a-payment-method [<u>MercadoPago</u>](https://www.mercadopago.com.ar/) is a leading payment gateway for online transactions in Latin America, supporting credit cards and local payment methods. <Note> Upmind supports MercadoPago for card payments and local methods based on your account. Check in your MercadoPago account. </Note> ## Getting MercadoPago credentials 1. Log in to your **MercadoPago** account. 2. Go to **Your Integrations** > **Your Application** > **Production** > **Production Credentials**. 3. Copy your **Access Token** and **Public Key**. <Frame> <img alt="API Key in Blocknomics Account" /> </Frame> ## Adding MercadoPago Card in Upmind 1. Go to **Settings** > **Payment Providers** in your admin area. 2. Click **Add Payment Provider** and choose **MercadoPago**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configure details 1. Enter a display name. We suggest **MercadoPago**. 2. Select **Test Mode** as needed. 3. Enter your **Access Token** and **Public Key**. 4. (Optional) Click **Test Credentials**. 5. Select the currency matching your MercadoPago account. 6. (Optional) Enter payment instructions. 7. Click **Create**. <Frame> <img alt="Add details" /> </Frame> ## Adding MercadoPago Other Payments in Upmind 1. Go to **Settings** > **Payment Providers**. 2. Choose **MercadoPago Other Payment**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configure details 1. Enter a display name. We suggest **MercadoPago Other Payments**. 2. Select **Test Mode** as needed. 3. Enter your **Access Token** and **Public Key**. 4. (Optional) Click **Test Credentials**. 5. Select the currency matching your MercadoPago account. 6. (Optional) Enter payment instructions. 7. Click **Create**. <Frame> <img alt="Add details" /> </Frame> <Note> When setting up MercadoPago in Upmind, select one currency that matches your MercadoPago account (e.g., MercadoPago Colombia > COP). For multiple currencies, set up each MercadoPago account separately with its own credentials and currency (e.g., MercadoPago Argentina > ARS). MercadoPago Other Payments redirects customers to a payment page where they can make a one-time payment using any option available in your account. </Note> ## Editing the payment method To update, go to **Settings** > **Payment Providers**, click the three dots next to `MercadoPago`, and select **Edit**. # How to Add Micropayment as Payment Gateway Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-micropayment-as-payment-gateway Set up Micropayment to take payments in Upmind [<u>Micropayment</u>](https://www.micropayment.de/home/) is a payment method for small transactions, usually from a few cents to a few dollars. It lets businesses efficiently process low-value payments, making it ideal for digital content, online services, and microtransactions. ## Getting Micropayment credentials 1. Register and create a project in your **Micropayment** dashboard under **Projekte/Project**. <Frame> <img alt="Create a Project in your Micropayment Dashboard" /> </Frame> 2. Copy the provider webhook URL from Upmind and paste it into the **Portal URL** field in Micropayment. This can be adjusted later. <Frame> <img alt="Copy the webhook URL" /> </Frame> <Frame> <img alt="Paste the provider webhook URL from your Upmind dashboard into the Portal URL section of the project you just created in Micropayment" /> </Frame> 3. Go to **Payment Methods** > **Access Permission** and click **Create Permission**. Choose **Unrestricted**. <Frame> <img alt="Access permission" /> </Frame> 4. Find your **Account**, **Access Key**, and **Project** in **Help Center** > **Whitelabel (API)**. <Frame> <img alt="Go to Help Center > Whitelabel (API)" /> </Frame> <Frame> <img alt="The Account, Access Key, and Project information can be found in the Requirements section of the Whitelabel API." /> </Frame> ## Callbacks For callbacks to work, the **Micropayment** admin must set the `redirectDataHash` additional param for `notifications`. 1. Log in to the Micropayment Dashboard. 2. From the top right, select **Setup** > **Payment Methods**. <Frame> <img alt="Setup > Payment methods" /> </Frame> 3. Click on **CreditCard Event** > **Edit** <Frame> <img alt="CreditCard Event > Edit" /> </Frame> 4. Then on **Parameters: Notification URL** > **Edit**. <Frame> <img alt="Parameters: Notification URL > Edit" /> </Frame> <Frame> <img alt="redirectDataHash additional param" /> </Frame> 5. Whitelist Upmind's IP addresses on your Micropayment instance to allow access from Upmind: * 91.240.229.1 * 91.240.229.2 * 91.240.229.3 ## Adding Micropayment in Upmind 1. Go to **Settings** > **Payment Providers** in your admin area. 2. Click **Add Payment Provider** and select **Micropayment**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configure details 1. Enter a display name. We suggest **Micropayment Card**. 2. Select the appropriate **Test Mode** option. 3. Enter your **Account**, **Access Key**, and **Project**. 4. (Optional) Click **Test Credentials** to verify. 5. (Optional) Add supported currencies. 6. (Optional) Enter payment instructions. 7. Click **Create**. <Frame> <img alt="Add details" /> </Frame> ## Editing the payment method To update, go to **Settings** > **Payment Providers**, click the three dots next to `Micropayment`, and select **Edit**. # How to Add Nicky as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-nicky-as-a-payment-method *Set up Nicky to take payments in Upmind.* [Nicky](https://nicky.me/) is a non-custodial, peer-to-peer crypto payment platform built for businesses. It lets you accept cryptocurrency payments directly into your own wallets. Nicky never holds your funds. It supports multiple wallet connections, a wide range of crypto assets, and converts prices from your local fiat currency into crypto at checkout. ## Before you begin You will need an active Nicky merchant account. If you don't have one, register at [pay.nicky.me/register](https://pay.nicky.me/register), then log in to your Nicky Dashboard before proceeding. <Frame> <img alt="Nicky register" /> </Frame> ## Getting Nicky credentials To connect Nicky to Upmind, you need an API key from your Nicky Dashboard. This key is only shown once at the time of generation, so copy and store it somewhere safe before closing the screen. 1. In your Nicky Dashboard, go to **Settings > API**. 2. Click **Generate new API key**. <Frame> <img alt="Generate API key" /> </Frame> 3. Copy the key immediately and keep it in a secure location. It will not be displayed again. ## Connect your wallet Your wallet is where all incoming payments land. You need to register at least one wallet address in Nicky before the gateway can process any transactions. 1. In your Nicky Dashboard, go to **Settings > Wallets**. 2. Click **+ Add Connection**. 3. Follow the on-screen steps to register your payment address. You can connect mobile wallet apps, exchange accounts, and cold wallets. <Frame> <img alt="Connect wallet" /> </Frame> ## Set your payment route Once your wallet is connected, you need to tell Nicky which crypto asset it should accept for that wallet address. 1. Still in **Settings > Wallets**, locate the wallet connection you just added. 2. Click **Edit Route**. 3. Confirm and set the payment asset (e.g. USDT, BTC, ETH) you want to accept for that address. <Frame> <img alt="Set payment route" /> </Frame> <Note> You can define separate routes for different wallets if you want to accept multiple assets to different destinations. </Note> ## Configure your accepted currencies This step controls which fiat currencies your customers will see their price converted from when paying in crypto at checkout. 1. Go to **Settings > Merchant > Currencies**. 2. Select the fiat currencies you want to support. <Frame> <img alt="Configure accepted currencies" /> </Frame> The currencies you select here must match the currencies you configure in the Nicky gateway settings in Upmind. Keep both lists in sync. This is because if a currency is active in Upmind but not enabled in Nicky, the conversion will not work for that currency. Nicky supports the following currencies: AED, ARS, AUD, BOB, BRL, CAD, CHF, CLP, CNY, COP, CZK, DKK, EUR, GBP, HKD, HUF, INR, JPY, KRW, NOK, NZD, PEN, PLN, RON, RUB, SEK, SGD, TRY, USD, UYU, ZAR ## **Add** Nicky **in Upmind** 1. Go to **Settings** > **Payment Providers** in your Upmind admin panel. 2. Select **Add Payment Provider** and choose Nicky. <Frame> <img alt="Select payment provider" /> </Frame> ## Configure details 1. Enter your Nicky API credentials. 2. Set the accepted currencies to match what you configured. 3. Save the gateway. <Frame> <img alt="Add details" /> </Frame> ### How the checkout flow works Once Nicky is active in Upmind, here is what happens when a customer completes a purchase: 1. The customer places an order and selects Nicky as the payment method. 2. They are redirected to a Nicky-hosted payment page, where they scan a QR code with their wallet app and confirm the payment. 3. At the point of redirect, Upmind creates a **pending payment** for the order. 4. When Nicky confirms the transaction, it sends a callback to Upmind, which marks the payment as complete and activates the order automatically. 5. A webhook is created automatically the first time a purchase is completed. You do not need to set this up manually. If a customer needs to return to their payment page, the redirect link is available at any time from the **payment instructions** on the invoice screen in Upmind. # How to Add Offline as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-offline-as-a-payment-method Give customers an offline option **Offline payments** allow customers to pay via cash, check, postal order, or other offline methods. This option is valuable for businesses serving regions or clients without access to online payment solutions. Offline payments require manual reconciliation, as there is a delay between payment and account update. <Note> Bank transfers are sometimes considered an offline payment option, but are described in a separate **[<u>guide</u>](/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-bank-transfer-as-a-payment-method#/).** </Note> ### Recommended process Configure your store to automatically send an order confirmation with payment instructions when a customer selects this method at checkout. The order would include: * Your company name and mailing address. * Any relevant payment details (such as bank account or SWIFT code). Once you confirm receipt of the offline payment, manually mark the invoice as paid and process the order. ## Adding the Offline payment provider 1. Go to **Settings** > **Payment Providers** in Upmind. 2. Click **Add Payment Provider**. 3. Select `Offline` from the list. <Frame> <img alt="Select payment provider" /> </Frame> ## Configuring details Scroll down the page and add details. 1. Enter a display name. 2. (Optional) Add supported currencies. 3. Enter clear payment instructions for your customers. 4. Click Create. <Frame> <img alt="Add details" /> </Frame> ### What the customer sees Customers see your payment instructions at checkout when choosing this method. <Frame> <img alt="Instructions at checkout" /> </Frame> ## Editing the payment method To update, go to **Settings** > **Payment Providers**, click the gear icon next to `Offline`, and select **Edit**. <Frame> <img alt="Edit payment provider" /> </Frame> ## Paid (clearing) invoice status 1. Go to **Settings** > **Payment Options** under **E-commerce Settings**. <Frame> <img alt="Settings > Payment Options" /> </Frame> 2. In the **Gateway Settings** section, choose a payment method for the **Invoice pending payment method provider**. This specifies the payment method provider used to pay an invoice. If the selected provider requires manual or offline processing, the pending\_payment\_method property will be set to true. <Frame> <img alt="Invoice pending payment method provider" /> </Frame> 3. The invoice paid with the offline payment method will then have Paid (Clearing) status. <Frame> <img alt="Invoice paid with an offline payment provider" /> </Frame> <Frame> <img alt="Paid (clearing) status" /> </Frame> # How to Add Opayo as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-opayo-as-a-payment-method Set up Opayo to take payments in Upmind [<u>Opayo</u>](https://www.elavon.co.uk/) is a widely used payment provider in the UK and Ireland, supporting online, phone, and in-person payments. ## Adding Opayo as a payment provider 1. Go to **Settings** > **Payment Providers** in Upmind. 2. Click **Add Payment Provider** and select **Opayo**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configuring details 1. Enter a display name. We suggest **Opayo**. 2. Set **Test Mode** to *No*. 3. Enter your **Vendor** name. 4. Set **Stored** to *No* if you do not want to store payment details. 5. Click **Test Credentials** to verify. 6. Toggle credit card types. 7. (Optional) Add currencies and payment instructions. 8. Click **Create**. <Frame> <img alt="Add details" /> </Frame> ## Editing the payment method Go to **Settings** > **Payment Providers**, click the three dots next to `Opayo`, and select **Edit**. # How to Add Openpay as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-openpay-as-a-payment-method Set up Openpay to take payments in Upmind [<u>Openpay</u>](https://www.openpay.mx/) is a flexible payment gateway for Mexico that lets customers pay in interest-free instalments, supporting card payments, bank transfers, and store payments. ## Getting Openpay API credentials 1. Log in to your **Openpay** account dashboard. 2. Locate your **Merchant ID**, **Public Key**, and **Secret Key**. <Frame> <img alt="Merchant ID, Public and Secret Key on Openpay Dashboard" /> </Frame> ## Adding Openpay Card as a payment provider 1. Go to **Settings** > **Payment Providers** in your admin area. 2. Click **Add Payment Provider** and select **Openpay Card**. <Frame> <img alt="**Select payment provider**" /> </Frame> ## Configuring details 1. Enter a display name. We suggest **Debit/Credit Card**. 2. Select the appropriate **Test Mode** option. 3. Enter your **Merchant ID**, **Public Key**, and **Secret Key**. 4. Set the **Stored** field as needed. 5. Click **Test Credentials** to verify. 6. Add supported currencies. 7. (Optional) Enter payment instructions. 8. Click **Create**. <Frame> <img alt="Add details" /> </Frame> ## Adding Openpay Other Payments (Bank/Store) 1. In **Settings** > **Payment Providers**, click **Add Payment Provider**. 2. Select **Openpay Other Payments**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configuring details 1. Enter a display name. We suggest **Bank Transfer/Store Payment**. 2. Select the appropriate **Test Mode** option. 3. Enter your **Merchant ID** and **Secret Key**. 4. Select the payment method (Bank/Store). 5. Click **Test Credentials** to verify. 6. Add supported currencies. 7. (Optional) Enter payment instructions. 8. Click **Create**. <Frame> <img alt="Add details" /> </Frame> The barcode payment option displays a scannable barcode along with the order number for easy processing: <Frame> <img alt="Barcode" /> </Frame> ## Editing the payment method To update, go to **Settings** > **Payment Providers**, click the three dots next to the `Openpay` method, and select **Edit**. # How to Add PayFast as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-payfast-as-a-payment-method Set up PayFast to take payments in Upmind [<u>PayFast</u>](https://payfast.io/) is a popular payment gateway in South Africa. ## Getting PayFast credentials 1. Log in to your **PayFast** account. 2. Collect your **Merchant ID**, **Merchant Key**, and **Passphrase**. ## Adding PayFast as a payment provider 1. Go to **Settings** > **Payment Providers** in Upmind. 2. Click **Add Payment Provider** and select **PayFast**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configuring details 1. Enter a display name. We suggest **PayFast**. 2. Set **Test Mode** to *No*. 3. Enter your **Merchant ID**, **Merchant Key**, and **Passphrase**. 4. Set **Stored** to *No* if you do not want to store payment details. 5. (Optional) Add currencies and payment instructions. 6. Click **Create**. <Frame> <img alt="Add details" /> </Frame> ## **Adding Currencies** <Note> To use PayFast, **ensure you select ZAR as the currency**, as this gateway supports ZAR only. </Note> <Frame> <img alt="Select ZAR" /> </Frame> ## Editing the payment method Go to **Settings** > **Payment Providers**, click the three dots next to `PayFast`, and select **Edit**. # How to Add Paysafecard as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-paysafecard-as-a-payment-method Set up Paysafecard to take payments in Upmind [<u>Paysafecard</u>](https://www.paysafecard.com/en-gb/) is a prepaid payment solution that lets customers pay online using vouchers purchased at local retail outlets. Customers enter a **PIN code** to complete their payment, making it a secure and accessible option for those without bank accounts or cards. ## Getting Paysafecard API credentials 1. Log in to your **Paysafecard** account. 2. Go to your account dashboard and locate your **API key**. 3. Copy the API key for use in Upmind. ## Adding Paysafecard in Upmind 1. Go to **Settings** > **Payment Providers** in your Upmind admin area. 2. Click **Add Payment Provider**. 3. Select **Paysafecard** from the list. <Frame> <img alt="Select payment provider" /> </Frame> ## Configuring details 1. Enter a display name. We suggest **Paysafecard**. 2. Set **Test Mode** to *No* for live transactions. 3. Paste your **API key** into the appropriate field. 4. Set **Stored** to *No*. 5. Click **Test Credentials** to verify your connection. 6. (Optional) Add supported currencies. 7. (Optional) Enter payment instructions for your customers. 8. Click **Create** to activate Paysafecard. <Frame> <img alt="Add details" /> </Frame> ## Editing the payment method To update or change the payment method, go to **Settings** > **Payment Providers**, click the three dots next to `Paysafecard`, and select **Edit**. # How to Add Paystack as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-paystack-as-a-payment-method Set up Paystack to take payments in Upmind [<u>Paystack</u>](https://paystack.com/) is a secure payment gateway popular in Nigeria, supporting credit/debit cards, bank transfers, and mobile money. In Upmind, Paystack supports stored cards for automated payments, provided the customer places an order and chooses to save their card. ## Getting Paystack API credentials 1. Log in to your **Paystack** account. 2. Go to **Settings** > **API Keys** & **Webhooks**. 3. Copy your **Secret Key** and **Public Key**. <Frame> <img alt="API Keys & Webhooks" /> </Frame> ## Adding Paystack in Upmind 1. Go to **Settings** > **Payment Providers** in your admin area. 2. Click **Add Payment Provider** and select **Paystack**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configuring details 1. Enter a display name. We suggest **Paystack**. 2. Select the appropriate **Test Mode** option. 3. Enter your **Public Key** and **Secret Key**. 4. Click **Test Credentials** to verify successful authentication. 5. (Optional) Add supported currencies. 6. (Optional) Enter payment instructions for your customers. 7. Click **Create** to enable Paystack. <Frame> <img alt="Select payment provider" /> </Frame> ## Editing the payment method To update the payment method, go to **Settings** > **Payment Providers**, click the three dots next to `Paystack`, and select **Edit**. # How to Add Paytm as a Payment Method in Upmind Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-paytm-as-a-payment-method-in-upmind Set up Paytm to take payments in Upmind. [<u>Paytm</u>](https://paytm.com/) is a widely used digital payment platform in India. Integrating Paytm with Upmind allows you to accept payments through UPI, wallets, credit/debit cards, and net banking. <Warning> A webhook must be configured between Paytm and Upmind for payment callbacks to be received and orders to be completed automatically. </Warning> ## Getting Paytm credentials 1. Log in to **Paytm** Business Dashboard. 2. Go to **Settings** > **Profile** > **Account Details** for **Merchant ID**, **Website**, **Industry Type**, and **Channel ID**. 3. Go to **Developer Settings** > **API Keys** to generate your **Merchant Key**. Choose either **Test** or **Production** environment as needed. <Frame> <img alt="Developer setting → API keys" /> </Frame> <Frame> <img alt="Generate keys" /> </Frame> <Note> If test credentials are unavailable, request them via a Paytm support ticket. Some merchants may only have live credentials. </Note> ## Add Paytm in Upmind 1. Go to **Settings** > **Payment Providers** in your Upmind admin panel. 2. Select **Add Payment Provider** and choose **Paytm**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configure details 1. Enter **Display Name**. We suggest **Paytm**. 2. Configure **Test Mode**. 3. Enter **Merchant ID**, **Website**, **Industry Type**, and **Channel ID**. 4. Click **Test Credentials** to verify connection. 5. Set **Currency** (only INR supported) and optionally, add payment instructions for customers. 6. Click **Create** to save. <Frame> <img alt="Add details" /> </Frame> ## Configure Paytm Webhook After adding **Paytm**, Upmind will generate a webhook URL. This URL must be added to your Paytm account for payment and refund notifications. <Frame> <img alt="Webhook" /> </Frame> 1. Log in to your **Paytm** Business Dashboard. 2. Go to **Developer Settings**. 3. Select **Webhook URL**. <Frame> <img alt="Webhook URL" /> </Frame> 4. Add the Upmind webhook URL for both payment and refund events. <Frame> <img alt="Upmind webhook URL" /> </Frame> 5. To enable the Refund API, please submit a request to Paytm Support at [pg.support@paytmpayments.com](mailto:pg.support@paytmpayments.com). If you are using multiple Merchant IDs (MIDs), the Refund API needs to be enabled separately for each MID. Please make sure to include all relevant MIDs in your request so they can be activated accordingly. ## Editing the payment method Go to **Settings** > **Payment Providers**. Click the three dots next to `Paytm` and select **Edit**. ## How to Enable EMI payments on Paytm EMI is not enabled by default on Paytm accounts. To get the EMI payment mode activated on your MID, you need to **contact your Paytm account manager** or **submit a request** through the [Paytm contact page](https://paytmpayments.com/contact-us#developer). If you are using multiple MIDs, the EMI payment mode needs to be requested and enabled separately for each MID. Standard EMI on Paytm is available for both credit card and debit card transactions across all checkout flows supported by Paytm. ### Supported banks Credit Card EMI is currently supported by 19 banks, including: * HDFC BANK * SBI BANK * ICICI BANK * AXIS BANK * BANK OF BARODA * HSBC BANK * RBL BANK * AMERICAN EXPRESS * IDBI BANK * YES BANK * INDUSLND BANK * STANDARD CHARTERED BANK * CITI BANK * KOTAK BANK * IDFC FIRST BANK * AU SMALL FINANCE BANK * ONE CARD * FEDERAL BANK * CANARA BANK * SCAPIA Debit Card EMI is supported by: * HDFC BANK * ICICI BANK * KOTAK BANK (will be available soon) ### How it works for your customers For **Credit Card EMI**, the customer selects the EMI option at checkout, enters their card details, and chooses an EMI tenure. The bank then takes around 5–7 working days to approve and convert the transaction into EMI. If the bank rejects the conversion, the customer pays the full amount as per their credit card billing cycle. For **Debit Card EMI**, the bank requires the customer's mobile number to check eligibility. If eligible, a ₹1 verification transaction is processed first, and upon success, the loan is booked against the transaction amount. The customer then pays EMI as per the plan selected at checkout. <Note> Once EMI is enabled on your MID by Paytm, it will be available as a payment option within your Paytm checkout automatically. No further configuration is needed in Upmind. </Note> For the full list of supported banks, interest rates, and integration details, refer to the [Paytm Standard EMI documentation](https://www.paytmpayments.com/docs/affordability-standard-emi-introduction). # How to Add PayU as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-payu-as-a-payment-method Set up PayU to take payments in Upmind [<u>PayU</u>](https://corporate.payu.com/) provides secure online payment processing, supporting merchants to accept payments from customers through multiple channels such as credit/debit cards, bank transfers, digital wallets, and more. ## Getting PayU API credentials 1. Log in to your **PayU** account. 2. Navigate to **Online Payment** > **My Shop** > **Add Shop**. <Frame> <img alt="Online payment > My shop > Add shop" /> </Frame> 3. Complete the form to generate your **Merchant ID**, **Merchant Secret**, **Oauth Client ID**, and **Oauth Client Secret**. <Frame> <img alt="Configuration keys" /> </Frame> ## Adding PayU in Upmind 1. Go to **Settings** > **Payment Providers** in your admin area. 2. Click **Add Payment Provider** and select **PayU**. <Frame> <img alt="Select payment provider" /> </Frame> <Note> This integration is specifically for European merchants using PayU Europe. </Note> ## Configuring details 1. Enter a display name, we suggest **PayU**. 2. Select the appropriate **Test Mode** option. 3. Enter your **Merchant ID**, **Merchant Secret**, **Oauth Client ID**, and **Oauth Client Secret**. 4. Click **Test Credentials** to confirm successful authentication. 5. (Optional) Add supported currencies. 6. (Optional) Enter payment instructions for your customers. 7. Click **Create** to activate **PayU**. <Frame> <img alt="Add details" /> </Frame> ## Editing the payment method To update the payment method, go to **Settings** > **Payment Providers**, click the three dots next to `PayU`, and select **Edit**. # How to Add PesaPal as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-pesapal-as-a-payment-method Set up PesaPal to take payments in Upmind [<u>PesaPal</u>](https://www.pesapal.com/) supports online and mobile payments across Africa, accepting credit/debit cards, mobile money, and bank transfers. ## Getting PesaPal API credentials 1. Create a **PesaPal** account. 2. Check your email for PesaPal integration details (**Consumer Key** and **Consumer Secret**). 3. If you do not have the email, log in to your PesaPal account, go to the Business Dashboard, and click **Resend** API credentials from the `API Credentials` section. <Frame> <img alt="Resend API credentials" /> </Frame> ## Adding PesaPal in Upmind 1. Go to **Settings** > **Payment Providers** in your admin area. 2. Click **Add Payment Provider** and select **PesaPal**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configuring details 1. Enter a display name. We suggest **PesaPal**. 2. Select the appropriate **Test Mode** option. 3. Enter your **Consumer Key** and **Consumer Secret**. 4. Click **Test Credentials** to verify. 5. (Optional) Add supported currencies. 6. (Optional) Enter payment instructions for your customers. 7. Click **Create**. <Frame> <img alt="Add details" /> </Frame> ## Editing the payment method To update, go to **Settings** > **Payment Providers**, click the three dots next to `PesaPal`, and select **Edit**. # How to Add Razorpay as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-razorpay-as-a-payment-method Set up RazorPay to take payments in Upmind. [<u>RazorPay</u>](https://razorpay.com/) is a leading payment gateway in India, supporting credit/debit cards, net banking, UPI (Unified Payments Interface), wallets, and more. Razorpay is for standard payments, which are non-recurring. <Warning> A webhook must be configured between Razorpay and Upmind for payment callbacks to be received and orders to be completed automatically. </Warning> ## Getting RazorPay API credentials 1. Log in to your **RazorPay** account. 2. Go to **Accounts & Settings** > **Settings** > **API Key** and click **Regenerate Key** to obtain your **Key ID** and **Key Secret**. <Frame> <img alt="Key ID and Key Secret" /> </Frame> ## Adding RazorPay in Upmind 1. Go to **Settings** > **Payment Providers** in your admin area. 2. Click **Add Payment Provider** and select **RazorPay**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configuring details 1. Enter a display name. We suggest **RazorPay**. 2. Select the appropriate **Test Mode** option. 3. Enter your **Key ID** and **Key Secret**. 4. Click **Test Credentials** to verify. 5. (Optional) Add supported currencies. 6. (Optional) Enter payment instructions for your customers. 7. Click **Create**. <Frame> <img alt="Add details" /> </Frame> ## Editing the payment method To update, go to **Settings** > **Payment Providers**, click the three dots next to `RazorPay`, and select **Edit**. ## Configure RazorPay webhook You must configure the RazorPay webhook so Upmind always receives transaction updates. 1. Log in to your **RazorPay** dashboard. <Frame> <img alt="RazorPay login" /> </Frame> 2. Go to `Account & Settings`. <Frame> <img alt="Account & settings" /> </Frame> 3. Click **Webhooks** under **Website and app settings**. <Frame> <img alt="Website and app settings > Webhooks" /> </Frame> 4. Click **+ Add New Webhook**. <Frame> <img alt="Add New Webhook" /> </Frame> 5. Enter the public **HTTPS URL** of your endpoint. The webhook URL needs to be taken from the Upmind provider set up. <Frame> <img alt="Webhook URL from Upmind" /> </Frame> 6. Add a **Secret** for security on the webhook endpoint. (Optional) 7. In the **Alert Email** field, enter the address to receive webhook failure notifications, such as errors or deactivations. 8. Select the desired **Events** from the list. <Frame> <img alt="Fill in the details" /> </Frame> 9. Click **Create Webhook**. For more information, you can check out this [<u>guide</u>](https://razorpay.com/docs/webhooks/setup-edit-payments/) from RazorPay. ## How to Enable EMI payments on Razorpay The EMI function is not enabled by default on Razorpay accounts. You need to raise a request through the Razorpay Dashboard for activation. The following EMI types are available: * Credit Card EMI * Debit Card EMI * No Cost EMI * Low Cost EMI * Cardless EMI <Info> Instant refunds are not supported on EMI transactions, so make sure your refund policies reflect this before going live. </Info> ### Requesting EMI for your account 1. Log in to your **Razorpay Dashboard** in **Live mode** (this setting is only available in Live mode). 2. Go to **Account & Settings** > **Payment Methods**. 3. Click **Payment Methods**, then select **EMI** as the payment method type. <Frame> <img alt="Account & Settings > Payment Methods" /> </Frame> 4. Find the EMI option you want to enable and click **Request**. 5. Review the activation timeline shown in the confirmation box, then click **Confirm**. Once approved, you can verify which EMI options are active by returning to **Account & Settings** > **Payment Methods** in your Razorpay Dashboard. For a full breakdown of supported banks, interest rates, and EMI types, refer to the [Razorpay EMI documentation](https://razorpay.com/docs/payments/payment-methods/emi/). # How to Add RazorPay Checkout as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-razorpay-checkout-as-a-payment-method Set up RazorPay Checkout to take payments in Upmind. [<u>RazorPay</u>](https://razorpay.com/) is a leading payment gateway in India, supporting credit/debit cards, net banking, UPI (Unified Payments Interface), wallets, and more. Razorpay Checkout is used for recurring payments. <Warning> You must configure the RazorPay Checkout webhook so Upmind always receives transaction updates. To configure RazorPay Checkout webhooks, follow this [<u>guide</u>](/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-razorpay-as-a-payment-method#/configure-razorpay-webhook). The webhook URL needs to be taken from the Upmind provider setup. <Frame> <img alt="Webhook URL from Upmind" /> </Frame> </Warning> ## **Getting RazorPay Checkout API credentials** 1. Log in to your **RazorPay** account. 2. Go to **Accounts & Settings** > **Settings** > **API Key** and click **Regenerate Key** to obtain your **Key ID** and **Key Secret**. <Frame> <img alt="Key ID and Key Secret" /> </Frame> <Warning> Customers need to check with Razorpay support that the recurring payments feature is enabled for their account, and that it is available in their country (India, Malaysia, Singapore). This should be requested first if it is not active. For more information, follow this [<u>guide</u>](https://razorpay.com/docs/api/payments/recurring-payments/cards/create-subsequent-payments/). </Warning> ## **Adding RazorPay Checkout in Upmind** 1. Go to **Settings** > **Payment Providers** in your admin area. 2. Click **Add Payment Provider** and select **RazorPay Checkout**. <Frame> <img alt="Select payment provider" /> </Frame> ## **Configuring details** 1. Enter a display name. We suggest **RazorPay Checkout**. 2. Set the **Internal Name**. 3. Select the appropriate **Test Mode** option. 4. Enter your **Key ID** and **Key Secret**. 5. Choose whether to **Store** the card. 6. Click **Test Credentials** to verify. <Frame> <img alt="Fill in the details" /> </Frame> 7. (Optional) Add supported currencies. 8. (Optional) Enter payment instructions for your customers. 9. Click **Create**. <Frame> <img alt="Choose currency and write payment instructions" /> </Frame> Afterwards, [<u>clients can add the new payment method</u>](/client-self-service/client-area/how-do-my-clients-add-a-payment-method#/) from **Billing** > **Payment Methods** > **Add Payment Method**. You can then select RazorPay Checkout during the actual payment process. <Frame> <img alt="Choose RazorPay Checkout in the store checkout" /> </Frame> <Note> **RazorPay Checkout** is a reusable card for auto-payments. When paying for an order in Upmind, if the customer wants to create a reusable card token for auto-payments, they must select *Save payment details*. This ensures the checkout presented to the customer only shows the card payment method and allows the system to store the card for auto-payments. </Note> <Frame> <img alt="Confirm payment type" /> </Frame> <Frame> <img alt="Save payment details" /> </Frame> If the customer wants to pay with **other payment methods**, such as Bank, UPI, or a card without storing it for auto-payment, they should unselect **Save payment details**. The difference here is that Upmind cannot use cards stored this way for auto-payments. <Frame> <img alt="Other payment methods" /> </Frame> ## **Editing the payment method** To update, go to **Settings** > **Payment Providers**, click the three dots next to **RazorPay Checkout**, and select **Edit**. ## Configure RazorPay webhook You must configure the RazorPay webhook so Upmind always receives transaction updates. 1. Log in to your **RazorPay** dashboard. <Frame> <img alt="RazorPay login" /> </Frame> 2. Go to `Account & Settings`. <Frame> <img alt="Account & settings" /> </Frame> 3. Click **Webhooks** under **Website and app settings**. <Frame> <img alt="Website and app settings > Webhooks" /> </Frame> 4. Click **+ Add New Webhook**. <Frame> <img alt="Add New Webhook" /> </Frame> 5. Enter the public **HTTPS URL** of your endpoint. The webhook URL needs to be taken from the Upmind provider setup. <Frame> <img alt="Webhook URL from Upmind" /> </Frame> 6. Add a **Secret** for security on the webhook endpoint. (Optional) 7. In the **Alert Email** field, enter the address to receive webhook failure notifications, such as errors or deactivations. 8. Select the desired **Events** from the list. <Frame> <img alt="Fill in the details" /> </Frame> 9. Click **Create Webhook**. For more information, you can check out this [guide](https://razorpay.com/docs/webhooks/setup-edit-payments/) from RazorPay. # How to Add SSLCOMMERZ as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-sslcommerz-as-a-payment-method Set up SSLCOMMERZ to take payments in Upmind [<u>SSLCOMMERZ</u>](https://sslcommerz.com/) processes payments for merchants in Bangladesh and South Asia through cards, bank transfers, and mobile wallets. ## Getting SSLCOMMERZ credentials 1. Visit SSLCOMMERZ and sign up for a merchant account. <Frame> <img alt="Register as a merchant" /> </Frame> 2. Log in to the dashboard. 3. Navigate to **Integration** > **API Keys** or **Sandbox Credentials** for testing. 4. Copy **Store ID** (merchant identifier) and **Store Password** (API secret, not login password). ## Add SSLCOMMERZ in Upmind 1. Go to **Settings** > **Payment Providers** in your Upmind admin panel. 2. Select **Add Payment Provider** and choose **SSLCOMMERZ**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configure details 1. Enter **Display Name**. We suggest **SSLCOMMERZ**. 2. Configure **Test Mode**. 3. Enter **Display Name**, **Internal Name**, **Store ID**, and **Store Password**. 4. Click **Test Credentials** to verify the connection. 5. Set **Currency** and optionally, add payment instructions for customers. 6. Click **Create** to save. <Frame> <img alt="Add details" /> </Frame> ## Editing the payment method Go to **Settings** > **Payment Providers**. Click the three dots next to **SSLCOMMERZ** and select **Edit**. # How to Add Stripe as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-payment-gateways/how-to-add-stripe-as-a-payment-method Set up Stripe to take payments in Upmind [Stripe](https://stripe.com/) is a popular payment method that enables fast, secure credit and debit card payments. Upmind’s integration is easy, letting clients enter card data directly on your site (not redirected to Stripe). A token is stored in Upmind along with card details (last four digits, card type, and expiry date). The full card information is never stored. ## Getting Stripe API credentials 1. Log in to your Stripe account. 2. Go to Developers > API Keys. 3. Copy your Secret Key (for Upmind’s API Key field) and Publishable Key (for Upmind’s Public Key field). 4. Optionally, generate a Restricted Key with write access to: 1. PaymentIntents 2. Customers 3. PaymentMethods 4. Prices 5. SetupIntents 6. Charges <Frame> <img alt="Developers > API keys" /> </Frame> <Frame> <img alt="Secret key and publishable key" /> </Frame> ## Adding Stripe as a payment provider 1. Go to **Settings** > **Payment Providers** in Upmind. 2. Click **Add Payment Provider** and select **Stripe**. <Frame> <img alt="Select payment provider" /> </Frame> ## Configuring details 1. Enter a display name. We suggest **Credit** or **Debit Card**. 2. Set **Test Mode** to *No* for live payments. 3. Enter your **Secret Key** and **Publishable Key**. 4. Choose whether to allow stored cards (for subscriptions/recurring) or one-time payments. 5. Click **Test Credentials** to verify. 6. Toggle accepted card types as needed. 7. (Optional) Add supported currencies and payment instructions. 8. Click **Create**. ### Stripe.js options After entering your Stripe information, the next step is to add the Stripe JS. To do this, you will need a public key. This [guide](https://support.stripe.com/questions/what-are-stripe-api-keys-and-how-to-find-them) explains how to obtain it. For each question, you can choose either yes or no. Choose options that match your business needs and the payment methods you want to support through Stripe.js on your website. Below is a detailed explanation to help you decide: 1. **Create Customer for Non-Stored Payments**: Select yes to create a customer record for each payment without storing payment details for future transactions. Recommended: **YES**. 2. **Reuse Stripe Customer from Other Saved Methods**: Select yes to use saved payment methods linked to a customer's Stripe account for Stripe.js payments. Recommended: **YES**. 3. **Reuse Stripe Customers by Email**: Select yes to link customer payments by email in Stripe for Stripe.js transactions. Recommended: **YES**. 4. **Accept Cards?**: Choose yes to accept card payments using Stripe.js on your website. Recommended: **YES**. 5. **Accept PayPal?**: Select yes to accept PayPal payments through Stripe.js integration. For setup, see this [article](https://docs.stripe.com/payments/paypal/activate). Recommended: **YES**. 6. **Accept SEPA Debit**: Select yes only if SEPA Debit is active in your Stripe account. Otherwise, it will fail. Recommended: **NO** unless enabled. 7. **Accept iDEAL**: Enable only if iDEAL is active in your Stripe account. Otherwise, it will fail. Recommended: **NO** unless enabled. <Frame> <img alt="Select options" /> </Frame> <Note> If your client is using either **iDEAL** or **SEPA**, please note the following: 1. iDEAL is a one-time payment method, which means each payment must be authenticated by the customer. 2. While Stripe can save the IBAN from an iDEAL payment as a SEPA Direct Debit method, in Upmind this does not happen automatically. 3. To use SEPA for future payments in Upmind, your client needs to manually add SEPA as a payment method in their account. [<u>See the guide here</u>](/client-self-service/client-area/how-do-my-clients-add-a-payment-method). </Note> ### Changing the Stripe statement description You can change this under **Settings** > **Payment Options** > **Gateway Settings** > **Statement Description**. ## Indian Stripe customers For Stripe customers in India, only INR is supported for non-sole traders due to Stripe’s regulations. The error is as follows: <Note> As per Indian regulations, only registered Indian businesses (i.e., sole proprietorships, limited liability partnerships, and companies, but not individuals) can accept international payments. More info [here](https://docs.stripe.com/india-accept-international-payments). </Note> ## Editing the payment method Go to **Settings** > **Payment Providers**, click the three dots next to `Stripe`, and select **Edit**. ## Configure Stripe webhook Configuring Stripe webhooks allows your Stripe account to notify Upmind when key payment and billing events occur. 1. Log in to `Stripe Dashboard` ([https://dashboard.stripe.com](https://dashboard.stripe.com)) <Frame> <img alt="Stripe login" /> </Frame> 2. In the left sidebar, click **Developers**. Under the Developers section, select **Webhooks**. <Frame> <img alt="Click on developers" /> </Frame> <Frame> <img alt="Select webhooks" /> </Frame> 3. Click the **+ Add destination** button to add webhooks. <Frame> <img alt="Add destination" /> </Frame> 4. Select the **Events** you want to receive. Common recommended events for payment automation and reconciliation: * **payment\_intent.succeeded** – Payment succeeded * **payment\_intent.payment\_failed** – Payment attempt failed * **invoice.payment\_succeeded** – Invoice payment completed * **charge.refunded** – Refund processed on a charge * **mandate.updated** - Mandate details updated * **charge.succeeded** - Charge completed successfully Use the search bar to quickly find specific events. <Frame> <img alt="Choose events" /> </Frame> Upmind currently supports these triggers: * charge.refunded (refund) * mandate.updated (mandate Update) * charge.succeeded (paid Pending) * charge.failed (reject Pending) 5. Choose **Webhook endpoint** as the destination type. <Frame> <img alt="Webhook endpoint" /> </Frame> 6. In the Endpoint URL field, enter your system’s webhook receiver address, which you can find under Settings > Payment Providers. Example: [https://yourdomain.com/api/stripe/webhook](https://yourdomain.com/api/stripe/webhook) <img alt="" /> If integrating with Upmind, use the dedicated webhook route specified in the Upmind documentation or module setup. You can also write the **Destination Name** and a **Description**. <Frame> <img alt="Create destination" /> </Frame> 7. Finalise `Webhook Setup` by clicking **Create Destination**. The new endpoint now appears in your Stripe dashboard, where you can review event delivery and replay events for testing. <Frame> <img alt="Review webhook" /> </Frame> # How to Add PayPal Billing Agreement as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-paypal-as-a-payment-method/how-to-add-paypal-billing-agreement-as-a-payment-method Configure PayPal Billing Agreement **PayPal Billing Agreements** enable automatic recurring payments, making it the recommended PayPal integration for most Upmind users. This method supports smooth recurring billing, whether or not reference transactions are enabled in your PayPal account. In this guide, we will set up PayPal Billing Agreement. You will require: * PayPal Business account * Upmind admin access ## Obtaining API credentials from PayPal 1. Log in to your PayPal Business account. 2. Go to `Account Settings` (top right) <Frame> <img alt="Account settings" /> </Frame> 3. Click **API Access** > **Update**. <Frame> <img alt="API access > Update" /> </Frame> 4. Under `Custom checkout experience`, locate `NVP/SOAP API Integration (Classic)` and click **Manage API credentials**. 5. Copy your **API Username**, **API Password**, and **Signature**. <Frame> <img alt="Copy credentials" /> </Frame> ## Adding PayPal Billing Agreement in Upmind 1. In Upmind, go to **Settings** > **Payment Providers**. 2. Click **Add Payment Provider**. 3. Select **PayPal Billing Agreement** from the list. <Frame> <img alt="Select PayPal Billing Agreement" /> </Frame> 4. Scroll down and enter a display name. We suggest **PayPal**. 5. Set **Test Mode** to **No** for live transactions. 6. Paste your **API Username**, **Password**, and **Signature** into the respective fields. 7. Click **Test Credentials** to verify the connection. 8. (Optional) Add supported currencies. 9. (Optional) Enter payment instructions for clients. 10. Click **Create** to activate the payment method. <Frame> <img alt="Fill in the details" /> </Frame> ## Editing PayPal Billing Agreement To update or change settings, go to **Settings** > **Payment Providers**, click the three dots next to PayPal Billing Agreement, and select **Edit**. # How to Add PayPal Express as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-paypal-as-a-payment-method/how-to-add-paypal-express-as-a-payment-method Configure PayPal Express **PayPal Express**, which is the most common PayPal implementation, is a widely used integration that provides a fast and secure checkout experience by redirecting users to PayPal to complete their payment. In this guide, we will set up PayPal Express. You will require: * A PayPal account * An Upmind account ## Obtaining API credentials from PayPal 1. Log in to your PayPal account. 2. Go to `Account Settings`. 3. Click **API Access** > **Update**. 4. Under `Custom checkout experience`, locate `NVP/SOAP API Integration (Classic)` and click **Manage API credentials**. 5. Copy your **API Username**, **API Password**, and **Signature**. <Frame> <img alt="Copy credentials" /> </Frame> ## Adding PayPal Express in Upmind 1. In Upmind, go to **Settings** > **Payment Providers**. 2. Click **Add Payment Provider**. 3. Choose **PayPal Express**. <Frame> <img alt="Select PayPal Billing Express" /> </Frame> 4. Enter a display name. We suggest **PayPal**. 5. Set **Test Mode** to **No**. 6. Enter your **API credentials**. 7. Click **Test Credentials** to confirm. 8. (Optional) Add currencies and payment instructions. 9. Click **Create**. <Frame> <img alt="Fill in the details" /> </Frame> ## Editing PayPal Express To edit, go to **Settings** > **Payment Providers**, click the three dots next to PayPal Express, and select **Edit**. # How to Add PayPal Legacy Subscription (Callbacks) as Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-paypal-as-a-payment-method/how-to-add-paypal-legacy-subscription-callbacks-as-payment-method Configure PayPal Legacy Subscription (Callbacks) **PayPal Legacy Subscriptions (Callbacks)** use **NVP/SOAP APIs** and are maintained for legacy clients. This method is deprecated for new integrations but remains available for existing subscriptions. In this guide, we will set up PayPal Express. You will require: * A PayPal account * An Upmind account <Note> Please make sure this feature is enabled on your PayPal account. You may need to contact PayPal or check their [guide](https://developer.paypal.com/api/nvp-soap/ipn/IPNSetup/). </Note> ## Obtaining API credentials from PayPal 1. Log in to **PayPal**. 2. Go to `Account Settings`. 3. Click **API Access** > **Update**. 4. Under **Custom checkout experience**, select **NVP/SOAP API Integration (Classic)** and click **Manage API credentials**. 5. Copy the **Username**, **Password**, and **Signature**. <Frame> <img alt="Copy credentials" /> </Frame> ## Adding PayPal Legacy Subscription in Upmind 1. In Upmind, navigate to **Settings** > **Payment Providers**. 2. Click **Add Payment Provider**. 3. Select **PayPal Legacy Subscription (Callbacks)**. <Frame> <img alt="Select PayPal Legacy Subscription (Callbacks)" /> </Frame> 4. Enter a display name. We suggest **PayPal**. 5. Set **Test Mode** to **No**. 6. Add your **API credentials**. 7. Click **Test Credentials**. 8. (Optional) Add currencies and payment instructions. 9. Click **Create**. <Frame> <img alt="Fill in the details" /> </Frame> ## Editing PayPal Legacy Subscription To edit, go to **Settings** > **Payment Providers**, click the three dots, and select **Edit**. # How to Add PayPal Pro as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-paypal-as-a-payment-method/how-to-add-paypal-pro-as-a-payment-method Configure PayPal Pro **PayPal Pro** enables direct credit or debit card payments through PayPal, acting as a full payment gateway. This is ideal if you want PayPal to process card payments directly. However, **we recommend** using [PayPal Billing Agreements](/using-upmind/payment-methods/how-to-add-paypal-as-a-payment-method/how-to-add-paypal-billing-agreement-as-a-payment-method) as the PayPal payment method. In this guide, we will set up PayPal Pro. You will require: * A PayPal account * An Upmind account <Note> Please make sure this feature is enabled on your PayPal account. You may need to contact PayPal or check their [guide](https://developer.paypal.com/api/nvp-soap/payflow/website-payments-pro/). </Note> ## Obtaining API credentials from PayPal 1. Log in to your **PayPal Business account**. 2. Go to `Account Settings`. 3. Click **API Access** > **Update**. 4. Under **Custom checkout experience**, select **NVP/SOAP API Integration (Classic)** and click **Manage API credentials**. 5. Copy your **API Username**, **API Password**, and **Signature**. <Frame> <img alt="Copy credentials" /> </Frame> ## Adding PayPal Pro in Upmind 1. In Upmind, go to **Settings** > **Payment Providers**. 2. Click **Add Payment Provider**. 3. Choose **PayPal Pro**. <Frame> <img alt="Select PayPal Pro" /> </Frame> 4. Enter a display name. We suggest **PayPal**. 5. Set **Test Mode** to **No**. 6. Enter your **API credentials**. 7. Choose if you want it **Stored**. 8. Click **Test Credentials**. 9. (Optional) Add currencies and payment instructions. 10. Click **Create**. <Frame> <img alt="Fill in the details" /> </Frame> ## Editing PayPal Pro To update, go to **Settings** > **Payment Providers**, click the three dots, and select **Edit**. # How to Add PayPal Pro (REST) as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-paypal-as-a-payment-method/how-to-add-paypal-pro-rest-as-a-payment-method You will know How to Add PayPal Pro (REST) as a Payment Method in this article. As some people still use REST, it is useful for them and you. Check now. **PayPal Pro (REST)** is an integration using the **REST API**. While Upmind’s current implementation uses PayPal’s deprecated **V1 API**, an update is planned. In this guide, we will set up PayPal Pro (REST). You will require: * A PayPal account * An Upmind account <Note> Please make sure this feature is enabled on your PayPal account. You may need to contact PayPal or check their [guide](https://developer.paypal.com/api/rest/). </Note> ## Obtaining API Credentials from PayPal 1. Log in to your **PayPal Business account**. 2. Go to the `Developer` section. <Frame> <img alt="Go to developer" /> </Frame> 3. Click **Apps and Credentials**. 4. Click **Create App** or select an existing app to view the **Client ID** and **Secret**. <Frame> <img alt="Create app" /> </Frame> ## Adding PayPal Pro (REST) in Upmind 1. In Upmind, go to **Settings** > **Payment Providers**. 2. Click **Add Payment Provider**. 3. Select **PayPal Pro (REST)**. <Frame> <img alt="Select PayPal Pro (REST)" /> </Frame> 4. Enter a display name. We suggest **PayPal**. 5. Set **Test Mode** to **No**. 6. Enter your **Client ID** and **Secret**. 7. Click **Test Credentials**. 8. (Optional) Add currencies and payment instructions. 9. Click **Create**. <Frame> <img alt="Fill in the details" /> </Frame> ## Editing PayPal Pro (REST) To edit, go to **Settings** > **Payment Providers**, click the three dots, and select **Edit**. # How to Add PayPal Subscription Agreement as a Payment Method Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-paypal-as-a-payment-method/how-to-add-paypal-subscription-agreement-as-a-payment-method Configure PayPal Subscription Agreement In this guide, we will set up PayPal Subscription Agreement. You will require: * A PayPal account * An Upmind account <Note> Please make sure this feature is enabled on your PayPal account. You may need to contact PayPal or check their [guide](https://developer.paypal.com/docs/subscriptions/). </Note> ## Obtaining API credentials from PayPal 1. Log in to your **PayPal Business account**. 2. Go to the `Developer` section (top right). <Frame> <img alt="Go to developer" /> </Frame> 3. Click **Apps and Credentials**. 4. Click **Create App** or select an existing app to view the **Client ID** and **Secret**. <Frame> <img alt="Create app" /> </Frame> ## Adding PayPal Subscription Agreement in Upmind 1. In Upmind, go to **Settings** > **Payment Providers**. 2. Click **Add Payment Provider**. 3. Select **PayPal Subscription Agreement**. <Frame> <img alt="Select PayPal Subscription Agreement" /> </Frame> 4. Enter a display name. We suggest **PayPal**. 5. Set **Test Mode** to **No**. 6. Enter your **Client ID** and **Secret**. 7. Choose if you want it **Stored**. 8. Click **Test Credentials**. 9. (Optional) Add currencies and payment instructions. 10. Click **Create**. <Frame> <img alt="Fill in the details" /> </Frame> ## Editing PayPal Subscription Agreement To edit, go to **Settings** > **Payment Providers**, click the three dots, and select **Edit**. # Using PayPal with Upmind Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-add-paypal-as-a-payment-method/using-paypal-with-upmind Configure PayPal with ease [<u>PayPal</u>](https://paypal.com/) is a popular payment method. It provides a range of payment solutions, from simple payments to subscription-based models. Upmind supports multiple PayPal integrations, allowing flexibility for both businesses and clients. We recommend **PayPal Billing Agreements** for most use cases, as it supports both one-time and recurring transactions, regardless of reference transaction settings. ## **Supported PayPal services in Upmind** Each of these services comes with different functions, APIs, and credentials for integration. You can enable multiple PayPal options simultaneously. Each PayPal integration has unique credentials and API requirements. **PayPal Subscriptions** can be mapped for existing clients with subscription IDs to record incoming payments, but do not support new subscription creation. | **PayPal Type** | **API Type** | **API Credentials** | **Function** | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | --------------------------------- | ------------------------------------------------------------------------------------------------------- | | [<u>PayPal Billing Agreements</u>](/using-upmind/payment-methods/how-to-add-paypal-as-a-payment-method/how-to-add-paypal-billing-agreement-as-a-payment-method) | NVP/SOAP | API username, password, signature | Automatically charge a client’s PayPal account for invoice payments (just like charging a card on file) | | [<u>PayPal Express</u>](/using-upmind/payment-methods/how-to-add-paypal-as-a-payment-method/using-paypal-with-upmind) | NVP/SOAP | API username, password, signature | Fast checkout, redirects users to PayPal for payment | | [<u>PayPal Pro</u>](/using-upmind/payment-methods/how-to-add-paypal-as-a-payment-method/how-to-add-paypal-pro-as-a-payment-method) | NVP/SOAP | API username, password, signature | Full payment gateway solution, supports credit card processing | | [<u>PayPal Pro (REST)</u>](/using-upmind/payment-methods/how-to-add-paypal-as-a-payment-method/how-to-add-paypal-pro-rest-as-a-payment-method) | REST API | API client ID, secret | Advanced integration for PayPal Pro through RESTful API | | [<u>PayPal Subscription Agreement</u>](/using-upmind/payment-methods/how-to-add-paypal-as-a-payment-method/how-to-add-paypal-subscription-agreement-as-a-payment-method) | REST API | API client ID, secret | Manages recurring payments with subscription agreements | | [<u>PayPal Legacy Subscriptions (Callbacks)</u>](/using-upmind/payment-methods/how-to-add-paypal-as-a-payment-method/how-to-add-paypal-legacy-subscription-callbacks-as-payment-method) | NVP/SOAP | API username, password, signature | Manages legacy subscription payments with callbacks | # How to Make Payments in Different Currencies Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-make-payments-in-different-currencies Flexible transactions with many payment options Upmind supports multi-currency payments, giving clients the flexibility to pay invoices in their preferred currency. This applies to both new orders and renewals, and is accessible from both the Client area and Admin area. * To set the currency for payments, you can refer to this [guide](/using-upmind/invoicing-and-taxes/how-to-add-currencies-and-exchange-rates#/). * For more details on multi-currency support in Upmind, please refer to this [guide](/using-upmind/invoicing-and-taxes/about-multi-currency). ## Paying from the client area 1. Log in to your Upmind **client portal**. 2. Navigate to the invoice for the purchased product or service from `Billing` and click **Pay Now**. <Frame> <img alt="Click pay now" /> </Frame> 3. Click **Change Currency** on the invoice page. <Frame> <img alt="Change currency" /> </Frame> 4. Select your preferred currency from the available list. <Frame> <img alt="Select preferred currency" /> </Frame> 5. Click **Pay** to proceed and complete the payment. ## Paying from the admin area 1. Log in to the Upmind **admin dashboard**. 2. Navigate to the client profile and under the `Billing` section, select the invoice to be paid. <Frame> <img alt="Clients > Invoices" /> </Frame> 3. Click **Pay Now**. <Frame> <img alt="Click pay now" /> </Frame> 4. Click **Change Currency** and choose the desired one for the transaction. <Frame> <img alt="Change currency" /> </Frame> 5. Click **Pay** to finalise the payment. <Note> Currency selection is only available if the payment gateway supports the chosen currency. Exchange rates are automatically applied based on your store’s configuration. </Note> # How to Manage the Payment Interval Before Invoice Due Date Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-manage-the-payment-interval-before-invoice-due-date Managing invoice payment timing The payment interval determines how many days before an invoice’s due date Upmind will attempt to charge the client’s saved payment method. This helps to ensure timely payments and reduces the risk of overdue invoices. In this guide, we'll walk you through how to manage: 1. **Payment Interval Before Due Date** 2. **Payment Interval Before Due Date with Pending Payments** ## How to set the payment interval before the due date 1. Go to `Settings` and select **Payment Options**. <Frame> <img alt="Settings > Payment options" /> </Frame> 2. Under `Billing Automation`, find **Charge Interval Before Due Date**. This is the number of days before the invoice due date that the charge will be applied. <Frame> <img alt="Change interval before due date" /> </Frame> 3. Set the **Invoice Charge Attempt Interval Days** to define how often Upmind retries failed payments. <Frame> <img alt="Invoice charge attempt interval days" /> </Frame> 4. Save your changes. ### Override payment interval for individual clients 1. Go to `Clients` and select the desired client. 2. Click **Settings**, then `Billing`. <Frame> <img alt="Clients > Settings > Billing" /> </Frame> 3. Scroll to `Billing Automation`. 4. Enter a custom **Payment Capture Interval (in days)** for this client. <Frame> <img alt="Payment capture interval for individual clients" /> </Frame> 3. Click **Save**. ## How to set the payment interval before the due date with pending payments In the Billing Automation section, this setting works similarly to the Charge Interval Before Due Date, but it specifically applies to: * Direct debit payments. * Invoices with pending payments (e.g., incomplete or failed transactions). <Frame> <img alt="Charge interval before due date (with pending payments)" /> </Frame> ### Managing pending payments (purge after inactivity) If any pending payments have not been captured, the system will automatically purge them if they are older than X days. You can configure the Purge Pending Payment After X Days of Inactivity setting to automatically remove incomplete or abandoned payment attempts after the specified period. <Frame> <img alt="Purge pending payment after X days of inactivity" /> </Frame> # How to Set up Automatic Payments Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-set-up-automatic-payments Configure gateways, billing, and more **Automatic payments** make billing easier by charging the saved payment methods for clients on a set schedule. This reduces the need for manual work and helps prevent late payments. This guide explains how to set up and customise automatic payments for your online store. Once configured, your store will be able to handle online payments automatically. Additionally, admins and store staff can [manually process any unpaid invoices](/using-upmind/payment-methods/how-to-take-manual-payments) when needed. ## Accessing payment options 1. Log in to Upmind. 2. Click **Settings**. 3. Select the **Payment Options** tile. <Frame> <img alt="Settings > Payment options" /> </Frame> ## Customising payment settings ### Gateway settings 1. Choose a **Capture Mode**: 1. **Direct Capture** (default): Charges immediately. 2. **Authorize**: Places a hold, then captures after a set number of days. <Frame> <img alt="Payment capture mode" /> </Frame> 2. Set the number of days before capturing an authorised hold (not required if you select **Direct Capture**). <Frame> <img alt="Authorization capture delay days" /> </Frame> 3. Enable or disable partial payments. <Frame> <img alt="Enable/disable partial payments for clients" /> </Frame> ### Billing automation For payment automation, you can configure the following settings according to your needs. 1. **Max Authorization Capture Attempts**: Limit the number of tries to capture an authorised amount. <Frame> <img alt="Max authorization capture attempts" /> </Frame> 2. **Invoice Charge Attempt Interval Days**: Set the retry interval for failed payments to automatically charge an invoice. <Frame> <img alt="Invoice charge attempt interval days" /> </Frame> 3. **Max Invoice Charge Attempts**: Limit how many times Upmind will attempt to process a payment. <Frame> <img alt="Max invoice charge attempts" /> </Frame> 4. **Days’ Notice Before Credit Card Expiry Notification**: Notify clients with a reminder before their card expires. <Frame> <img alt="Days’ notice before credit card expiry notification" /> </Frame> 5. **Attempt Other Saved Card on Failed Payments**: Enable fallback to other stored cards if the automatic payment on the main one fails. <Frame> <img alt="Attempt other saved card on failed payments" /> </Frame> 6. **Invoice Categories for Auto-Charging**: Restrict auto-charging to selected invoice categories. <Frame> <img alt="Invoice categories for auto-charging" /> </Frame> 7. **Charge Interval Before Due Date**: Start charging invoices a set number of days before their due date. <Frame> <img alt="Charge interval before due date" /> </Frame> 8. **Max Days to Attempt Payment After Charge Date**: Set a limit for how long to keep automatically retrying after the charge date. This protection feature applies only to subscription clients added to the store through the Import tool. ## Enabling automatic payments for clients * Clients can enable automatic payments by saving a payment method in their portal and selecting **Allow Automatic Payments**. * Admins can enforce auto-pay for specific products or clients if required. <Frame> <img alt="Allow auto payment for new payment methods" /> </Frame> ## Managing subscriptions and plan changes * Automatic payments will renew subscriptions on their due date. * For **plan changes** (e.g., upgrades or downgrades), there are additional options for additional charges or refunds. Upmind automatically calculates the balance. For more information, follow this [guide](/using-upmind/manage-client-services/how-to-change-a-subscription-service-level#/). # How to Take Manual Payments Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-take-manual-payments Manually process unpaid invoices Manual payments allow **admins** and **staff** to process **unpaid invoices** directly from the Upmind admin panel. This is useful for accepting payments when clients need assistance. <Warning> You can also set up your store to [process automatic payments](/using-upmind/payment-methods/how-to-set-up-automatic-payments#/). </Warning> ## Steps to take a manual payment ## Open an invoice The first step is to open an invoice. 1. Log in to your **Upmind account**. 2. Click `Orders` in the left-hand menu. 3. Open the `Orders List` tab. 4. Locate and select the **unpaid invoice** you want to process. <Frame> <img alt="Orders > Orders list" /> </Frame> ## Process the payment 1. Click the **Pay Now** button on the invoice page. <Frame> <img alt="Click pay now" /> </Frame> 1. Choose the **payment method**. 2. Enter the required payment details. 3. Click **Pay** to complete the transaction. <Frame> <img alt="Enter details and pay" /> </Frame> ### After payment 1. The invoice status automatically updates to Paid. 2. The client receives an email notification confirming payment. <Frame> <img alt="Updated paid status" /> </Frame> ## Handling failed payments If a payment fails, Upmind retries based on your configured retry schedule (see [Payment Intervals](/using-upmind/payment-methods/how-to-manage-the-payment-interval-before-invoice-due-date#/)). Admins receive alerts and can manually attempt payment or contact the client. Failed card payments trigger automatic retries up to three times by default. ## Refunds and credits You can issue refunds through the invoice details page. Refunds return funds to the original payment method. For bank transfers or cash, apply credit to the client’s account instead. # How to Use Different Payment Methods Source: https://docs.upmind.com/using-upmind/payment-methods/how-to-use-different-payment-methods Optimally set up payment methods on invoices This guide will show you how to use different payment methods on [renewal invoices](/using-upmind/invoicing-and-taxes/how-to-configure-invoice-settings#recurring-invoice-generation) and set them up for [automatic payment](/using-upmind/payment-methods/how-to-set-up-automatic-payments) processing from the admin and client areas. To learn how to add different payment gateways, follow this [guide](/using-upmind/payment-methods/payments-in-upmind/available-payment-gateways). ## Admin area If a client’s card fails to pay a renewal invoice, staff or admins can assist by using a different payment method. Admins can only use another saved card or add a new card for payments if the client has shared their card details and given permission. For **PayPal** and **MercadoPago Other Payments**, it will be redirected to their respective account to complete the payment. Here are the steps: 1. Log in to your Upmind **Admin Dashboard**. 2. Select `Clients` from the left panel. <Frame> <img alt="Select clients" /> </Frame> 3. Click on the **Client** with the unpaid invoice. <Frame> <img alt="Select the client" /> </Frame> 4. Go to `Billing` and then `Invoices`. <Frame> <img alt="Select invoices" /> </Frame> 5. Find the unpaid Invoice. <Frame> <img alt="Unpaid invoice" /> </Frame> 6. Click **Pay Now**. <Frame> <img alt="Pay now" /> </Frame> 7. As an admin or staff member, you can help process a client’s payment using their saved card or any of the existing payment methods they have added. In the example shown in the screenshot, the available methods are **Stripe** and **PayPal**. <Frame> <img alt="New payment method" /> </Frame> ### How to change the default payment method from the admin area Admins can only change the default card. The automatic payment setting is applied when the card is initially added and saved. 1. Select your **Client** and then go to `Payment Methods` from `Billing`. <Frame> <img alt="Select payment methods" /> </Frame> 2. You can make a new card automatically charge for the renewal invoice by making it the **Default**. <Frame> <img alt="Make default" /> </Frame> ## Client area Your client can also pay their renewal invoice using a different payment method from the client area. Here’s how to do it: 1. Log in to the **Client Area**. 2. Select `Billing` and go to `My Invoices`. <Frame> <img alt="Select my invoices" /> </Frame> 3. Select the unpaid `Invoice` and click **Pay Now**. <Frame> <img alt="Pay now" /> </Frame> 4. Similar to **Admin**, you can make the payment with the existing card or use a different payment method. <Frame> <img alt="New payment method" /> </Frame> Some payment methods, like **PayPal**, cannot be saved. The client will be redirected to their PayPal account to complete the payment. ### How to change the default payment method from the client area Clients can only change the default card. The automatic payment setting is applied when the card is initially added and saved. 1. Go to `Billing` and select `Payment Methods`. 2. You can make a new card automatically charge for the renewal invoice by making it the **Default**. <Frame> <img alt="Make default" /> </Frame> ## Notify clients about card expiry You can set up notifications to alert clients several days before their cards expire. This will help to ensure timely reminders and avoid missed payments. This works for multiple payment methods and can be customised to your preference. <Frame> <img alt="Configure notification (Settings > Payment options > Billing automation)" /> </Frame> You can also review our guide explaining [Payment Options](/using-upmind/payment-methods/payment-options-overview#/) in Upmind. ## To prevent automatic payment failure If you have other cards saved as payments for your clients, Upmind will automatically switch to another backup card if there is an automatic payment failure on the primary one. <Frame> <img alt="Enable/disable attempts (Settings > Payment options > Billing automation)" /> </Frame> This is also the case if a contract product does not have any payment method assigned, but the client has a saved card. You may lower or completely disable the interval time after a failed payment attempt before trying the same payment method again. The default system is set to 2. **Example**: 1. A client has 10 invoices scheduled for auto payment today and only one card on file. 2. The payment for the 3rd invoice fails. 3. The card will be temporarily unavailable for use for the next 2 hours during the cool-down period. ## To reset payment attempts after a successful payment When a client successfully pays an invoice, Upmind can automatically reset the payment attempts for any other unpaid or overdue invoices they have. This means if those invoices had previously reached the maximum number of payment tries without success, the system will give them a fresh start to process payments again. <Frame> <img alt="Enable/disable attempts (Settings > Payment options > Billing automation)" /> </Frame> This helps avoid unnecessary payment failures and keeps billing running smoothly, ensuring clients have more chances to clear their outstanding balances automatically. # Payment Options Overview Source: https://docs.upmind.com/using-upmind/payment-methods/payment-options-overview A summary of payment resources The Payment Options in Upmind is the area for configuring global payment settings. This section outlines how to access and customise payment capture, billing automation, client wallet, and multi-currency features to match your business requirements. To open the Payment Options page: 1. Log in to your Upmind account. 2. Click **Settings** in the left menu. 3. Select the **Payment Options** tile. ## **Gateway settings** At the top of the Payment Options page, you can customise how Upmind handles [<u>automatic payments</u>](/using-upmind/payment-methods/how-to-set-up-automatic-payments). | **Field Name** | **Description** | | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Payment capture mode | This setting controls whether card payments are captured immediately or just authorised for later capture. Immediate capture is useful to avoid chargebacks from fraudulent payments. 1. **Direct Capture**: Payment is taken right away. 2. **Authorize**: Payment is pre-approved and reserved on the customer’s card, allowing you to complete the charge later. | | Authorization capture delay days | Set how many days after authorization the payment should be captured (applies if using **Authorize** mode). | | Enable partial payments for clients | Allow clients to pay invoices in parts, not just in full. | | Statement description | Set a description to appear on client statements (if supported by the payment processor). | | Force card storage | Store card details securely for future use, if supported by the gateway. | | Delete card only if replacement | Only remove a stored card if a new one is added and the account has active services. | | Force auto payment for stored details | Automatically charge invoices using stored payment details. | | Enable payment details store for shared invoices | Show *Save payment details* and *Allow auto payment options* for shared invoices. | <Warning> **To add or remove** [**<u>payment gateways</u>**](/using-upmind/payment-methods/payments-in-upmind/available-payment-gateways)**, visit the Payment Providers section.** </Warning> ## **Billing automation** Customise how Upmind handles recurring, overdue, and failed payments, including notifications. | **Field Name** | **Description** | | ------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Max authorization capture attempts | Maximum number of times to attempt capturing an authorized payment. | | Invoice charge attempt interval days | Days between automatic charge attempts. | | Max invoice charge attempts | Total number of automatic charge attempts for an invoice. | | Reset payment attempts on successful payment | Resets payment attempts for overdue or unpaid invoices when a client pays another invoice, applying only to invoices that have reached the maximum payment attempts. | | Days’ notice before card expiry notification | Number of days before the card expiry to notify the client. | | Attempt other saved card on failed payments | Try other stored cards if the automatic payment on the main card fails. | | Failed card cool-down charge interval | Wait time (in hours) before retrying a failed card payment. By default, this is set to 2 hours. Set it to 0 to disable this feature. | | Invoice categories, for auto-charging | Select invoice types to auto-charge: 1. **Recurring invoice** = renewals 2. **Initial invoice** = new orders 3. **Migration** = upgrades/downgrades 4. **One time service** = one-time orders 5. **Consolidation** = invoice consolidations | | Charge interval before due date | Days before the due date to attempt the first invoice charge. | | Charge interval before due date (with pending payments) | For gateways that are not instant and can take time like Direct Debit, set days before due for pending payments. | | Max days to attempt payment after charge date | On an import from an external system to Upmind, limit how long to keep trying to charge overdue imported services. | | Payment days term priority | Choose which due date to use if multiple services on an invoice have different payment days. - **Smaller** (the earlier due date) - **Bigger** (the later due date) | | Expiration notices | Set how many days before product expiry to send notifications. | | Cancel invoices on stopped contract | Automatically cancel invoices older than X months for suspended/cancelled/closed contracts. | | Purge pending payments after X days of inactivity | Automatically remove pending payments not completed after X days. | ## **Client wallet** Customise client wallet (account balance) settings for your clients. * To learn more about client wallet settings, follow this [<u>guide</u>](/using-upmind/invoicing-and-taxes/about-multi-currency#/). * To learn more about how clients can access their wallet after they log in to their store account, follow this [<u>guide</u>](/client-self-service/client-area/how-do-my-clients-check-their-account-balance#/). | **Field Name** | **Description** | | --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Credit limit | Allow clients to have a negative wallet balance up to a set limit. | | Credit limit\* | Maximum negative balance in your brand’s default currency. | | Day of the month for generating wallet statement | Set the day each month to generate wallet statements. | | Multi currency balance | Enable use of wallet balances across different currencies, with automatic conversion. | | Auto consume balance on invoice due date | Automatically use wallet balance when an invoice is due. | | Possible top-up | Control whether clients can top up their wallet, regardless of active services. 1. Allow top-ups for all clients. 2. Only allow top-ups for clients with active orders. 3. Never allow top-ups. | | Force credit note on top-up | Always issue a credit note for wallet top-ups. | | Top-up credit note tax template | Set the tax template for credit notes on wallet top-ups. If not set, the system will use the default tax template. | | Pay invoice by wallet balance on creation | When an invoice is created, this option allows the system to automatically pay the invoice using the client’s wallet balance. | | Partially pay invoice by wallet balance on creation | When an invoice is created, this allows a partial payment attempt using the client’s wallet balance. This works only in combination with the previous setting (Pay Invoice by Wallet Balance on Creation) to enable wallet payments on invoice creation. | ## **Payment currencies** Manage how invoices and payments are handled in multiple currencies. | **Field Name** | **Description** | | -------------------------------------------------- | ---------------------------------------------------------------------------------- | | Enable payment in different than document currency | Let clients choose a preferred payment currency per payment, not just per invoice. | # Available Payment Gateways Source: https://docs.upmind.com/using-upmind/payment-methods/payments-in-upmind/available-payment-gateways Integrate many payment gateways with Upmind Upmind integrates with over **30 payment gateways**. Each gateway supports multi-currency transactions with tax rules. These can be categorised by: * Popular Gateways * Regional Options * Cryptocurrency * Offline Methods Payment gateways have security features that include tokenisation for certain stored cards and AES-256 encryption for sensitive data like bank details. Upmind supports the following **payment providers**: 1. Bank Transfer 2. BitPay 3. Blockonomics 4. Braintree 5. CoinGate 6. DLocal 7. Flutterwave 8. GoCardless 9. MercadoPago 10. MercadoPago Other Payments 11. Micropayment Card 12. MoMo MTN Collections 13. Offline 14. Opayo 15. OpenPay Card 16. OpenPay Other Payments 17. PayFast 18. PayPal Billing Agreement 19. PayPal Express 20. PayPal Legacy Subscriptions (Callbacks) 21. PayPal Pro 22. PayPal Pro (REST) 23. PayPal Subscription Agreement 24. PaySafeCard 25. Paystack 26. Paytm 27. PayU 28. PesaPal 29. RazorPay 30. Stripe 31. SSLCommerz # How Payments Work in Upmind Source: https://docs.upmind.com/using-upmind/payment-methods/payments-in-upmind/how-payments-work-in-upmind Payment methods in Upmind refer to the various ways clients pay for products and services, including credit cards, bank transfers, and cryptocurrency. These can be stored for recurring billing or used once. Stored methods enable [<u>automatic</u>](/using-upmind/payment-methods/how-to-set-up-automatic-payments#/) and secure invoice payments, while one-time methods require manual action for each transaction. ## **Connection to gateways** **Payment gateways** are connected to payment methods, which serve as intermediaries, safely transferring transaction data between your company, customers, and financial institutions. When a client selects a payment method, the gateway encrypts and routes the data, verifies funds, and completes the transaction. Some gateways require a linked merchant account to settle funds. Others (e.g., PayPal) handle settlement directly. Gateways determine which methods are available, which you can configure in your platform’s settings to align with client preferences and regional requirements. ## **Managing payment methods** ### **Admin area** You can manage payment methods in Upmind in a few ways. **Admins** can add payment gateways from **Settings** > **Payment Providers**. Follow this guide for more information on [<u>how to add payment gateways</u>](/using-upmind/payment-methods/payments-in-upmind/available-payment-gateways). <Frame> <img alt="Settings > Payment providers" /> </Frame> They can also add payment methods for individual clients by navigating to **Clients** > **Billing** > **Payment Methods**. <Frame> <img alt="Clients > Billing > Payment methods" /> </Frame> ### **Client area** **Clients** manage their stored methods in the **Billing** > **Payment Methods** area of their portal, where they can add, update, or remove options. <Frame> <img alt="Billing > Payment methods" /> </Frame> Admins can also [<u>impersonate the client</u>](/using-upmind/client-management/how-impersonating-a-client-works#/) to add payment methods and handle failed payments manually or through automated settings. For more information, follow this [<u>guide</u>](/using-upmind/payment-methods/how-to-use-different-payment-methods#/). # Auto-Populating Catalogue Prices Source: https://docs.upmind.com/using-upmind/product-management/auto-populating-catalogue-prices With the auto-populating catalogue price you can effortlessly manage subscription terms and prices within the product catalogue. Check now! The auto-populate feature allows for rapid catalogue pricing updates, which is ideal for applying global percentage-based changes (such as promotions or seasonal rates) across your products. ## How to auto-populate prices in your product catalogue 1. Log in to the Upmind dashboard. 2. Access it from the dashboard by clicking on **Store Catalogue**. <Frame> <img alt="Store catalogue" /> </Frame> 3. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> 4. Select the product to update. 5. Open `Product Billing`. 6. In `Subscription Terms`, open the *Advanced* options, then choose **Auto Populate Prices**. <Frame> <img alt="Auto-populate prices" /> </Frame> ## Customising auto-population ### Choose base term: Select either monthly or annually. **Example**: Setting £5/month will auto-calculate £60/year for annual term. <Frame> <img alt="Base term" /> </Frame> ### Select billing terms: Choose which terms (quarterly, semiannual, etc.) to auto-fill with prices. Optionally, you can add percentage discounts on each calculated price per term. <Frame> <img alt="Billing terms" /> </Frame> ### Overwrite existing prices: Check the `Overwrite existing prices` box to update or retain prices for selected terms. <Frame> <img alt="Overwrite existing prices" /> </Frame> **Example**: Applying a 2% discount just to the monthly term will update only that field. <Frame> <img alt="Apply discount" /> </Frame> Clients will see updated pricing in the catalogue immediately after saving changes. <Frame> <img alt="Customer view" /> </Frame> # Configure Product Automation Source: https://docs.upmind.com/using-upmind/product-management/configure-product-automation Learn how to configure subscription automation for your online store. You can set subscription renewal settings and many more. Check Now! Subscription automation in Upmind controls intervals for suspension, cancellation, and closure of subscriptions and simplifies contract management. ## Open the automation settings 1. Log in to the Upmind dashboard. 2. Access it from the dashboard by clicking on **Store Catalogue**. <Frame> <img alt="Store catalogue" /> </Frame> 3. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> 4. Choose a product and click **Product Automation** on the product details page. <Frame> <img alt="Product automation" /> </Frame> ## Set interval timings Customise interval settings at the top of the `Product Automation` page: * **Suspend**: Enter the number of days after expiration before suspending the subscription (default enabled). * **Cancel**: Set days after suspension when a subscription is cancelled. * **Close**: Define the time after cancellation when the subscription is closed, invoices are credited, and unpaid balances are written off. <Frame> <img alt="Setting intervals" /> </Frame> ## Define restrictions * **Restrict Future Due Date**: If the box is checked, you can limit subscription contract length (e.g., maximum 24 months). Leave unchecked for no limit. * **Restrict Reactive Status**: If the box is checked, define contract statuses under which clients can renew. If unchecked, renewal is allowed regardless of contract status. By default, clients can renew a subscription in all the statuses listed below. <Frame> <img alt="Restrictions" /> </Frame> ## Recurring invoice settings * **Invoice Generation**: Set when recurring invoices are created (default 30 days before period end). <Frame> <img alt="Recurring invoice" /> </Frame> * **Invoice Due Dates**: You can configure due dates relative to subscription renewal (default 0 days before period end). <Frame> <img alt="Recurring invoice due dates" /> </Frame> ## Support Support tickets opened by clients related to the product will be automatically routed to the selected department. <img alt="" /> # Contract Automation Terminology Source: https://docs.upmind.com/using-upmind/product-management/contract-automation-terminology Contract Automation Terminology lets you automate the contracts based on several facts such as pending, subscription, renewal and many more. Check Now! Understanding contract statuses helps manage customer subscriptions and automate lifecycle actions efficiently. | Term | Meaning | | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | Pending | A new order that is not yet paid. | | Awaiting Activation | This has been ordered and paid for but has not been set up, either because activation requires manual input, or there was an error. | | Active | An active, paid, and live contract. | | Suspended | Service is suspended, but invoicing still runs as normal, and new invoices are generated. | | Cancelled | Service is cancelled. No new invoices are generated but existing invoices remain unpaid. | | Closed | Any unpaid invoices are written off and credited. | # Create Product Notifications Source: https://docs.upmind.com/using-upmind/product-management/create-product-notifications Create product notifications for your store and you can send message automatically with an update, add, delete of a product or service. Check Now! Upmind allows you to set up automated product notifications. You can set a trigger (like a purchase), create a message (such as a thank you), and choose a channel (email, Slack, etc.). Once configured, Upmind automatically sends the notification whenever the trigger happens. ## Create a trigger 1. Log in to the Upmind dashboard. 2. Access it from the dashboard by clicking on **Store Catalogue**. <Frame> <img alt="Store catalogue" /> </Frame> 3. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> 4. Choose a product and click **Product notifications** on the product details page. <Frame> <img alt="Create a trigger" /> </Frame> ## Select a trigger 1. Click **Add** to create a notification. 2. Click the *Trigger* field and select the event that will activate this notification (e.g. product purchased, subscription renewed). <Frame> <img alt="Select a trigger" /> </Frame> ## Create the notification message 1. Enter a unique **Notification Name** (internal use only). 2. Choose the Message Type: email, in-app, or Slack (depending on what is enabled). <Frame> <img alt="Create template" /> </Frame> 3. Select the recipient group (clients, staff, etc.). <Frame> <img alt="Notify recipient" /> </Frame> 4. Compose the message subject and body using text and Twig code snippets for dynamic content. <Frame> <img alt="Create a message" /> </Frame> on how to format email templates. ## Save and manage notifications 1. Click **Save**, then **Create** to finalise setup. 2. Notifications will be sent automatically when triggers occur. 3. To edit a notification, click its name in the list. 4. To delete, use the gear icon. <Frame> <img alt="Completed product notification" /> </Frame> ## Customer view **Example**: A Thank You email sent automatically after product purchase improves communication without manual intervention. <Frame> <img alt="Thank you email" /> </Frame> # How to Add Product Attributes Source: https://docs.upmind.com/using-upmind/product-management/how-to-add-product-attributes Create product options in your e-commerce store with the product attributes feature. Check now how to add product attributes, options based on size, colour, material, and more. Product attributes represent customisations that generally do not affect pricing, such as colour, size, or style. Product attributes usually offer choices that don’t affect the price. Adding product attributes requires two steps: * Create a list of choices on the `Product Attributes` page. * Link those choices on the `Product Details` page. ## Access the product catalogue 1. Log in to the Upmind dashboard. 2. Access it from the dashboard by clicking on **Store Catalogue**. <Frame> <img alt="Store catalogue" /> </Frame> 3. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> 4. Click the **attributes** tab. <Frame> <img alt="Attributes menu tab" /> </Frame> ## Creating attribute categories A category is like a folder that groups related product attributes. If you plan to offer variations now or later, using multiple categories saves time. 1. Click **Add New** > **Product attributes category**. <Frame> <img alt="Product attributes category" /> </Frame> 2. Provide a unique name. 3. Add category description (not visible to customers). <Frame> <img alt="Enter a description" /> </Frame> 4. Allow customers to select multiple attribute options simultaneously. (Optional) <Frame> <img alt="Allow multiple choice" /> </Frame> 5. Click **Create**. Upmind creates a category with zero product attributes. <Frame> <img alt="Empty category" /> </Frame> ## Adding product attributes 1. Find the attribute category. 2. Click the three-dot menu. 3. Click **Add product attribute**. <Frame> <img alt="Add product attribute" /> </Frame> 4. Confirm the category or select a different one. 5. Ensure visibility boxes are checked (for staff and customers). 1. **Is active**: If unchecked, this product won’t appear in your store. 2. **Is visible to clients**: If unchecked, clients won’t see this product, but staff can still order it. 6. Enter the attribute’s name and description (visible to customers). 7. Click **Create**. 8. Repeat for additional attributes. <Frame> <img alt="Product details" /> </Frame> ## Editing attributes 1. On the `Product attributes` tab, select a category to view attributes. 2. Use the three-dot menu to edit or delete attributes as needed. 3. You can also duplicate attributes. <Frame> <img alt="Edit product attribute" /> </Frame> ## Linking attributes to products 1. Click the **Products** tab. 2. Expand the relevant category. <Frame> <img alt="Select product attribute category" /> </Frame> 3. Select the target product and click the three-dot menu > **Edit**. <Frame> <img alt="Click three-dot icon" /> </Frame> 4. Click the `Product attributes` menu link. <Frame> <img alt="Product attributes menu tab" /> </Frame> 5. Click **Manage**. 6. Choose the attribute category and select attributes to display. <Frame> <img alt="Check the required boxes" /> </Frame> 7. Save your changes. 8. Click **Manage** to edit an attribute. 9. Click the red circle to delete an attribute, or choose **detach**. <Frame> <img alt="Remove an attribute" /> </Frame> ## Customer view Customers will see the linked attributes as options when viewing the product, and can select them at checkout. <Frame> <img alt="Store displays three options" /> </Frame> On the `Basket` page: * Click **Details** to view the product attribute. * Click **Edit** to choose a different attribute. <Frame> <img alt="Clicks details to see product attribute" /> </Frame> # How to Add Product Billing Source: https://docs.upmind.com/using-upmind/product-management/how-to-add-product-billing Customise product prices and currencies. You can create recurring payments, decide which price displays on the customer page, and more. Use the **Product Billing** page to define the price customers pay for each product or service. <Note> If you operate internationally, you can add prices in [<u>multiple currencies</u>](/using-upmind/invoicing-and-taxes/about-multi-currency). </Note> Upmind supports two main pricing types: * **One-off payment**: A single purchase with no recurring charge. * **Recurring payment**: A subscription with automatic periodic billing (e.g. monthly subscription to a hosting plan). ## Open the product billing page 1. Log in to the Upmind dashboard. 2. Access it from the dashboard by clicking on **Store Catalogue**. <Frame> <img alt="Store catalogue" /> </Frame> 3. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> 4. Open a category to find your product or service. 5. Click the product to open its `Product Details` page. <Frame> <img alt="Click product or service" /> </Frame> <Frame> <img alt="Product details page" /> </Frame> 6. Select `Product billing` from the menu. <Frame> <img alt="Choose Product billing" /> </Frame> ## Create a one-off payment price 1. Click the **One-off payment** tile. <Frame> <img alt="One-off payment tile" /> </Frame> 2. Enter the price for your default currency. 3. Add prices for additional currencies. (Optional) <Frame> <img alt="Add price for default currency" /> </Frame> 4. Click **Save**. ## Configure multi-currency option If a product doesn’t have a set price in a specific currency (for example, it’s only priced in your primary currency), you can control how Upmind handles it. By default, it follows your brand’s settings, but you can override this per product by choosing one of three options. * **Omit product**: Product unavailable in that currency. * **Make available**: Automatically convert price using current exchange rates. * **Inherit brand default**: Use your brand’s global multi-currency setting. <Frame> <img alt="Choose make available" /> </Frame> ## Set up recurring payments 1. Click the **Recurring payment** tile. <Frame> <img alt="Recurring payment tile" /> </Frame> 2. Scroll to the pricing section and click **Add new term**. 3. Choose a billing term from the dropdown menu (monthly, yearly, etc.) <Frame> <img alt="Select option on drop-down menu" /> </Frame> 4. For custom plans, select **Custom** and enter the number of months. <Frame> <img alt="Enter number of months" /> </Frame> 5. Add prices for each currency accordingly. 6. Add more terms if needed. <Frame> <img alt="Enter price for each currency" /> </Frame> 7. To delete a term, click Delete next to it. 8. Click **Save**. ## Select the default payment term When multiple subscription options exist, you can set which term displays by default to customers. At the bottom of the billing page, select the default. <Frame> <img alt="Select an option" /> </Frame> **Lowest price** <Frame> <img alt="Lowest price option" /> </Frame> **Lowest monthly price** (**Example**: The annual one-time price averaged over 12 months often appears cheaper per month than a regular subscription.) <Frame> <img alt="Lowest monthly price" /> </Frame> **Highest price** <Frame> <img alt="Display highest price" /> </Frame> # How to Add Product Options Source: https://docs.upmind.com/using-upmind/product-management/how-to-add-product-options Learn how to add product options with different sizes and prices to your e-commerce store. Give e-commerce shoppers multiple product options easily. Check Now! Product options represent choices that typically affect the product’s price, such as size, quality level, or support tier. **Adding product options is a three-step process:** * Create a list of choices on the `Product Options` page. * Link those choices on the `Product Details` page. * Enter unique billing info, including price, for each option. ## Access product options 1. Log in to the Upmind dashboard. 2. Access it from the dashboard by clicking on **Store Catalogue**. <Frame> <img alt="Store catalogue" /> </Frame> 3. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> 4. Open the `Product options` tab. <Frame> <img alt="Product options" /> </Frame> ## Creating option categories 1. Create categories to group related options. 2. Click **Add New** > **Product options category**. <Frame> <img alt="Products category" /> </Frame> 3. Provide a unique category name. 4. Enable subcategories. (Optional) 5. Add internal descriptions (hidden from customers). <Frame> <img alt="Enter a description" /> </Frame> 6. Choose whether to allow customers to select multiple options at once. <Frame> <img alt="Purchase multiple options" /> </Frame> 7. Click **Create**. ## Adding product options 1. Select the options category. 2. Open the **three-dot menu** > **Add product option**. <Frame> <img alt="Select add product option" /> </Frame> 3. Verify or change the category. 4. Check boxes to keep visibility checked for staff and customers. 5. Enter option name and description. 6. Click **Create**. 7. Repeat to add additional options. <Frame> <img alt="Review details" /> </Frame> ## Editing options 1. Go to the `Product Options` tab and select a category. 2. View the options within that category. 3. Click the three-dot icon to edit or delete an option. <Frame> <img alt="Edit or delete product option" /> </Frame> ## Limit order quantity for options This setting controls the maximum quantity a client can buy per product option. By default, there’s no limit, but enabling it lets you set a purchase cap. <Frame> <img alt="Limit order quantity" /> </Frame> ## Setting bulk order permissions for product options By default, customers cannot change order quantities for product options. To enable bulk orders: 1. Select **Yes** to allow quantity changes on the order page. <Frame> <img alt="Enable bulk orders" /> </Frame> <Frame> <img alt="Change the quantity" /> </Frame> 2. Select *Yes, in multiples of* and enter a number to set the minimum order quantity and increment steps. (Optional) <Frame> <img alt="Minimum order quantity" /> </Frame> On the order page, customers must order at least the minimum quantity, adjusting quantities up (▲) or down (▼) in the specified increments, using the arrows. <Frame> <img alt="Bulk order setting" /> </Frame> 3. Click **Save** after making changes. ## Setting billing for options 1. Go to a product option and click the **three-dot menu** > **Edit**. <Frame> <img alt="Edit product option" /> </Frame> 2. On the option detail page, select `Product option` billing. 3. Enter price, currency, and term. 4. **Save** changes. <Frame> <img alt="Add price" /> </Frame> 5. Repeat for other options. ## Linking options to products You can link options to an existing product on the Product details page. 1. Navigate to `Products` tab. 2. Expand the category and select the product. 3. Click the **three-dot menu** > **Edit** to open product details. <Frame> <img alt="Click edit" /> </Frame> ## Edit the current product price When adding options to a product, make sure its base price is set correctly. This prevents pricing errors in the client’s basket. 1. On the `Product Details` page, click **Product Billing**. 2. Check the price. 3. If it’s not zero, change it to zero and click Save. 4. Once the price is zero, proceed to the next step. <Frame> <img alt="Change number to zero and click save" /> </Frame> ## Add options 1. Click the `Product Options` menu link. <Frame> <img alt="Product options" /> </Frame> 2. Click **Manage**. 3. Select the category with the options you want to add. 4. Check the boxes next to the desired product options. 5. Click **Save** at the bottom. <Frame> <img alt="Choose which product options to display" /> </Frame> ### To edit or remove options 1. Click **Manage**. 2. Click the red circle to remove an option. 3. Click **Save**. Upmind will then display the options on the product options page. <Frame> <img alt="Click manage to edit" /> </Frame> ## Customer view The customer page shows each product option with its price, plus the placeholder price (zero). <Frame> <img alt="Original products and prices" /> </Frame> On the `Basket` page, customers can: * Click **Details** to view the chosen product option. * Click **Edit** to change the product option. <Frame> <img alt="Customer can access product information" /> </Frame> # How to Add Recommendations Source: https://docs.upmind.com/using-upmind/product-management/how-to-add-recommendations Learn how to add recommendations on the way to check out. It enables you to cross-sell products or service without selling or marketing. Check Now! Product recommendations engage customers by suggesting complementary items at checkout. **Example**: Starter hosting package with a monthly subscription. ## Open the recommendations page 1. Log in to the Upmind dashboard. 2. Access it from the dashboard by clicking on **Store Catalogue**. <Frame> <img alt="Store catalogue" /> </Frame> 3. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> 4. Select the product you want to add recommendations for. 5. Click **Recommendations**. <Frame> <img alt="Recommendations" /> </Frame> ## Create a recommendation 1. Click **Manage** on the `Recommendations` page. 2. Scroll through the product catalogue and select the items to recommend alongside the base product. 3. Click **Save**. <Frame> <img alt="Select products" /> </Frame> ## Customise recommendation text (Optional) 1. Click the **gear** icon to edit the description shown with the recommendation popup. <Frame> <img alt="Edit recommendation" /> </Frame> 2. To override the default product description, uncheck the box and enter custom text. * The Is active box makes the product visible to customers and staff on the product/service order section. <Frame> <img alt="Check the box" /> </Frame> ## Edit the button label (Optional) 1. Click the `Label` field on the recommendation popup settings. 2. Enter custom text for the action button (default is `Add` to basket). <Frame> <img alt="Edit button label" /> </Frame> ## Customer experience When purchasing the base product, customers see a pop-up recommending the selected products with an option to add them to their basket or proceed to checkout. <Frame> <img alt="Frequently bought together" /> </Frame> # How to Add Upgrade/Downgrade Options for Products Source: https://docs.upmind.com/using-upmind/product-management/how-to-add-upgradedowngrade-options-for-products Learn How to Add Upgrade/Downgrade Options for Products on your online store. clients easily switch between different packages with higher or lower prices. Check Now! The upgrade/downgrade feature empowers customers to move between higher and lower-tier products as their needs change. ## Setting up upgrade/downgrade paths To allow clients to upgrade or downgrade products in the client area, specify which products are eligible. 1. Log in to the Upmind dashboard. 2. Access it from the dashboard by clicking on **Store Catalogue**. <Frame> <img alt="Store catalogue" /> </Frame> 3. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> 4. Open `Upgrades/Downgrades` and click **Manage**. <Frame> <img alt="Click manage" /> </Frame> 5. Select the products eligible as upgrade or downgrade options. **Example**: A customer on a Pro SEO Service plan could be allowed to upgrade to an Advanced SEO Service plan, or downgrade to a Starter SEO Service plan. This gives clients flexibility while keeping your product catalogue organised. <Frame> <img alt="Select product" /> </Frame> 6. **Save** your changes. ## How clients can upgrade/downgrade their product 1. In the client area, customers navigate to `Products & Services`. <Frame> <img alt="Products and services" /> </Frame> 2. Select the product to change. 3. Click **Upgrade/Downgrade** under `Quick Actions`. 4. Choose among the permitted products and confirm the choice. <Frame> <img alt="Quick actions > upgrade/downgrade" /> </Frame> <Frame> <img alt="Choose the products" /> </Frame> **If upgrading**: An invoice is created for the price difference. <Frame> <img alt="Upgrading" /> </Frame> **If downgrading**: Product switches with no payment required. <Frame> <img alt="Downgrading" /> </Frame> # How to Change Contract Product's Currency Source: https://docs.upmind.com/using-upmind/product-management/how-to-change-contract-products-currency Learn How to Change Contract Product's Currency with Upmind. upon request from customer, admin and staffs can change the contract product's currency. Check Now! Admins and staff can update the billing currency for any contract product in Upmind. 1. In the Upmind dashboard, navigate to `Products & Services`. 2. Find and select the relevant contract product. 3. Open the `Settings` tab within the contract product. <Frame> <img alt="Settings tab" /> </Frame> 4. Under `Advanced Options`, select **Change Currency**. <Frame> <img alt="Change currency" /> </Frame> 5. Choose the new currency from the dropdown in the modal. <Frame> <img alt="Select new currency" /> </Frame> 6. Click **Change Currency** to confirm. # How to Create a Setup Fee Source: https://docs.upmind.com/using-upmind/product-management/how-to-create-a-setup-fee Check out how to create setup fee for your e-commerce store with ease. You can now charge for setting up the products or service to the store. Check Now! A setup fee is an extra, one-off charge added when customers purchase select products or services. This is handled in Upmind by creating a required . ## Create the setup fee product option 1. Log in to the Upmind dashboard. 2. Access it from the dashboard by clicking on **Store Catalogue**. <Frame> <img alt="Store catalogue" /> </Frame> 3. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> 4. Click the **Product Options** tab. 5. Click **Add New** and select `Product options category`. <Frame> <img alt="Add a new product option category" /> </Frame> 6. Enter a category name. The description is optional. 7. Make sure the *Is required?* checkbox is ticked to enforce selection. 8. Click **Create** to add the option category. <Frame> <img alt="Add a subcategory of product option" /> </Frame> To organise further, you may add a subcategory using the same steps. ## Add the setup fee option 1. In the `Product Options` section, click the three-dot menu next to your new category. <Frame> <img alt="Add product option" /> </Frame> 2. Select **Add product option**. 3. Enter the name and set the desired price. 4. Click **Create**. <Frame> <img alt="Add product option" /> </Frame> ## Assign the setup fee to products 1. Go to `Store Catalogue`. 2. Select the product or service to which you want to add the setup fee. 3. Click the three-dot menu on the product and choose **Edit**. <Frame> <img alt="Edit product" /> </Frame> 4. In the product menu, go to the `Product Options` section and click **Manage**. 5. Choose the setup fee option you just created and apply it to the product. 6. **Save** your changes. <Frame> <img alt="Select the product option > setup fee" /> </Frame> Customers will see the setup fee in the order summary in their client area. # How to Create Price Lists Source: https://docs.upmind.com/using-upmind/product-management/how-to-create-price-lists Learn how to create a price list for your e-commerce store. It leads you to a better product management throughout the online e-commerce store. Check Now! By default, Upmind uses a single price list that sets basic pricing for all products and services. You can override this by creating separate price lists for more flexibility. **Example**: If the default price is $80/month, you can charge one customer $60 and another \$85, making price customisation easy in Upmind. The multiple price lists feature enhances product management by letting you: * Create custom price lists for specific clients, such as: * Offering discounts to wholesale customers. * Loyalty pricing. * Legacy rates for existing clients. * You can enable or disable products per client. A product is only orderable if it has a price in that client’s list, though most products already have default prices. ## Create a price list 1. Log in to Upmind. 2. Go to **Settings** > **Price Lists** under **Products and promotions**. <Frame> <img alt="Settings > Products and promotions > Price Lists under" /> </Frame> 3. Click **Add Price List**. <Frame> <img alt="Add price" /> </Frame> 4. Name the price list and click **Add**. <Frame> <img alt="Click add" /> </Frame> A blank price list will be created for configuration. ## Set product prices in a price list 1. Log in to the Upmind dashboard. 2. Access it from the dashboard by clicking on **Store Catalogue**. <Frame> <img alt="Store catalogue" /> </Frame> 3. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> 4. Choose a product to modify. <Frame> <img alt="Choose product" /> </Frame> 5. Open the `Product billing` panel. 6. Select the desired price list from the dropdown. 7. Add or edit prices per currency. <Frame> <img alt="Choose new price list and price" /> </Frame> 8. Click **Save**. ## Assign a price list to a client 1. Go to **Clients** in the main dashboard. <Frame> <img alt="Dashboard > Clients" /> </Frame> 2. Select a client. 3. Click the **Settings** tab. 4. Choose the desired price list from the Price List dropdown under Billing. 5. Save the client profile. <Frame> <img alt="Choose price list" /> </Frame> Price changes apply to future purchases for the client and do not affect existing subscriptions. ## Use price lists to show or hide products When creating a new price list, you can choose whether to inherit prices from another list: * **Inherit prices enabled**: Products not added to this list will still use their default (or inherited) prices. * **Inherit prices disabled**: Only products explicitly added to this price list will be visible to clients. <Frame> <img alt="Check box to inherit prices" /> </Frame> To hide a product from a client’s catalogue: 1. Open the product in `Products & Services`. 2. Select the relevant price list. 3. Clear the price and check **Omit product**. 4. Save your changes. <Frame> <img alt="Select omit product" /> </Frame> 5. Assign the updated price list to the client (or client group). Clients will then only see the products that are enabled and priced in their assigned list. <Frame> <img alt="Apply new price list" /> </Frame> ## Client view Clients shopping in the store will only see products that are both priced and enabled in their price list. # How to Create Product Bundles Source: https://docs.upmind.com/using-upmind/product-management/how-to-create-product-bundles Learn how to create product bundles and Add products with different sizes and prices to your e-commerce store. Give e-commerce shoppers multiple product options. A product bundle combines two or more stand-alone products or services into a single bundled offer for sale. Creating a bundle involves two steps: * Create a dummy bundle category. * Add stand-alone products or services to that category. ## Access the bundle page 1. Log in to the Upmind dashboard. 2. Access it from the dashboard by clicking on **Store Catalogue**. <Frame> <img alt="Store catalogue" /> </Frame> 3. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> 4. On the `Product Catalogue` page, select the **Products** tab. <Frame> <img alt="Product tab" /> </Frame> ## Create a bundle category 1. Click Add New > Products category. <Frame> <img alt="Add new > Products category" /> </Frame> 2. Enter a unique category name for the bundle. 3. Choose to make it a subcategory. (Optional) **Example**: If you’re selling a bundle like *Website Starter Pack*, you might want to group hosting, a domain, and a website builder as subcategories within that bundle. 2. Add a category description and a short description (up to 130 characters). 3. Click **Create**. <Frame> <img alt="Enter details" /> </Frame> The new bundle category will appear in the catalogue. <Frame> <img alt="Category on the product catalogue page" /> </Frame> ## Create a product bundle 1. Find the bundle category in the catalogue. 2. Click the three-dot menu and select **Add product**. <Frame> <img alt="Add product" /> </Frame> 3. Confirm the category, or select a different one. 4. Choose the `Product bundle` tile. 5. Leave visibility options checked to keep the product bundles visible to staff/customers. 6. Enter the bundle name and description (Customers can see this when they are placing the order). 7. Click **Manage**. <Frame> <img alt="Bundle name and description" /> </Frame> ## Add products to the bundle On the `Select Products` page, you can browse available products and services. 1. Expand categories as needed. 2. Check boxes for products or services to include. 3. Click **Save**. 4. Repeat to add more items if required. 5. Click **Create**. <Frame> <img alt="Check boxes to add items" /> </Frame> The bundle appears in the selected category. <Frame> <img alt="Bundle item in bundle category" /> </Frame> ## Edit or customise bundles Use the three-dot menu to edit bundle details or remove items. <Frame> <img alt="Edit product list or descriptions" /> </Frame> ## Review and update product details 1. Review info on the **Product Details** page. 2. Add images (optional). 3. Edit descriptions as needed. ## Set pricing 1. Click **Product Billing**. 2. Choose product type: one-off or recurring. 3. Set the bundle price and add currencies (optional). 4. Configure multi-currency settings and default payment terms. 5. Click **Save**. <Frame> <img alt="Edit pricing" /> </Frame> ## Manage bundle items 1. Scroll to the bottom to see included products or services. 2. Click **Manage** to add or remove items. <Frame> <img alt="Click manage to add to remove bundles" /> </Frame> ## Customer view Bundles appear as one item in the store’s catalogue and basket, showing the bundle name and total price. <Frame> <img alt="Basket view" /> </Frame> # How to Create Products Source: https://docs.upmind.com/using-upmind/product-management/how-to-create-products Learn how to add products or services to your e-commerce Upmind store. You can also upload product images and set bulk order settings. Check Now! Creating products or services allows customers to purchase them. **Example**: A hosting company might sell starter hosting services. Creating a product involves five key steps: 1. Build a category hierarchy. 2. Add products within categories. 3. Set [<u>product billing</u>](/using-upmind/product-management/how-to-add-product-billing#/). 4. Customise [<u>product options</u>](/using-upmind/product-management/how-to-add-product-options#/). 5. Set [<u>product attributes</u>](/using-upmind/product-management/how-to-add-product-attributes#/). ## Access the product catalogue 1. Log in to the Upmind dashboard. 2. Access it from the dashboard by clicking on **Store Catalogue**. <Frame> <img alt="Store catalogue" /> </Frame> 3. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> ## Creating categories Categories help you organise your products and can be edited at any time. ### Add a new category 1. On the Product Catalogue page, click **Add New**. 2. Choose **Products category**. <Frame> <img alt="Add new product category" /> </Frame> 3. Enter a unique category name. 4. Add a category description (visible to website visitors). 5. Click **Create**. <Frame> <img alt="Web hosting service" /> </Frame> The new category appears in the catalogue. <Frame> <img alt="Service on catalogue page" /> </Frame> ## Create subcategories (Optional) When adding a category, check the `Subcategory` box to create a nested category. The default setting is **do not** create a standalone category (box unchecked). Keep it as is to avoid creating a subcategory. <Frame> <img alt="Subcategory box" /> </Frame> **To create a subcategory:** 1. Select a parent category from the dropdown or create a new one. 2. Add a description. 3. Click **Create**. <Frame> <img alt="Add subcategory" /> </Frame> The catalogue shows the category hierarchy. <Frame> <img alt="Subcategory hierarchy" /> </Frame> ## Creating products You can add products in two ways: 1. Click **Add New** > **Product** on the `Product Catalogue` page. 2. Or, click the three-dot menu next to a category and select **Add product**. <Frame> <img alt="Add product" /> </Frame> 3. Choose **Single** product (default) or **Product** bundle. 4. Complete the product fields (name, descriptions, etc.). 5. Click **Create**. <Frame> <img alt="Single product option" /> </Frame> <Frame> <img alt="Click the product" /> </Frame> The `Product Details` page displays the category and product name. <Frame> <img alt="Category and product name" /> </Frame> ## Adding product details On the Product Details page, you can add or edit product info: * **Product Description**: Detailed information about the product, such as features and benefits. Longer text supported. * **Product Short Description**: A concise description up to 130 characters to grab attention. <Frame> <img alt="Product description & product excerpt" /> </Frame> <Frame> <img alt="Product description displays" /> </Frame> <Frame> <img alt="Product excerpt" /> </Frame> ## Uploading images You can add up to 10 images per product to enhance its presentation. Click the upload area to select images. The first uploaded image becomes the default. You can also change the default image by hovering over the thumbnail and clicking the star. Learn about [<u>suggested image sizes</u>](/setup-and-configuration/other-setup-items/what-is-the-best-image-size-for-my-pictures#/). <Frame> <img alt="Click a square to upload image" /> </Frame> ## Uploading icons You can also upload icons to catalogue products and categories. <Frame> <img alt="Upload product icon" /> </Frame> ## Bulk order permissions You can customise bulk order settings. By default, bulk ordering is disabled, so customers must add items individually to order multiples. To allow bulk orders, choose an option and click **Save**. 1. Click **Yes** to enable bulk orders. <Frame> <img alt="Enable bulk orders" /> </Frame> * If you select **Yes**, customers can adjust quantities on the order page. <Frame> <img alt="Change the quantity" /> </Frame> 2. Optionally, click **Yes** and set a *multiples* of number to define the minimum order and rate of change. <Frame> <img alt="Minimum order quantity" /> </Frame> On the order page, the minimum quantity reflects this setting, and quantities increase or decrease by these increments when customers use the plus (+) or minus (-) buttons. <Frame> <img alt="Bulk order setting" /> </Frame> ## Limit order quantity This setting controls the maximum quantity a client can purchase. By default, there’s no limit, but you can enable it to set a purchase cap. <Frame> <img alt="Limit order quantity" /> </Frame> ## Product store link Upmind generates a shareable product store link: 1. You can find it in the `Admin Area` under `Product Details`. <Frame> <img alt="Product store link" /> </Frame> 2. Customers can generate a link to the product with the **Share button** in the `Client Area`. <Frame> <img alt="Client area/shop" /> </Frame> ## Product codes Assign product codes in **Product Details** > **Advanced Settings** for reporting and easy identification. Codes are free-form. <Frame> <img alt="Advanced settings" /> </Frame> # How to Edit a Product Category Source: https://docs.upmind.com/using-upmind/product-management/how-to-edit-a-product-category Learn how to edit a product category in Upmind. You can update, edit, modify, or change the categories based on your store setup. Check Now! Product categories organise your products in Upmind. Editing categories keeps your catalogue accurate and relevant. ## Access the category editor 1. Log in to the Upmind dashboard. 2. Access it from the dashboard by clicking on **Store Catalogue**. <Frame> <img alt="Store catalogue" /> </Frame> 3. You can also click **Settings** and select the **Product Catalogue** tile under **Products and Promotions**. <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> 4. Locate the category you want to edit. 5. Click the three-dot menu (ellipsis) on the category. 6. Choose **Edit** category. <Frame> <img alt="Edit category" /> </Frame> ## Editing category details 1. Change the `Category Name` as needed. 2. Update the Category Description to reflect the category’s contents accurately. 3. Click **Update** to save changes. <Frame> <img alt="Edit name and description" /> </Frame> Category changes go live immediately and reflect in your storefront. <Frame> <img alt="Live descriptions" /> </Frame> # How to Manage Free Trials Source: https://docs.upmind.com/using-upmind/product-management/how-to-manage-free-trials Setup, configure, and automate free trial offers for your products and services. Free trials in Upmind let you offer products or services at no charge for a set period, giving clients a chance to evaluate before committing to a paid subscription. You can control what happens when the trial ends, pair trials with promotional discounts, and automate the process to reduce manual work. <Note> Free trials apply to recurring payments (subscriptions) only. They are not available for one-time payment products. </Note> ## What is included in this guide 1. How to Enable a Free Trial for a Product 2. Trial Settings Explained 3. Client Experience During a Trial 4. How to Offer a Discount for Trial Continuations 5. How to Auto-Apply a Promotion 6. Trial Automation and Contract Settings 7. Requiring Payment Details for Free Trial Orders ## How to enable a free trial for a product Before setting up a trial, make sure you have already [created a product](/using-upmind/product-management/how-to-create-products). If you have not, you can add a new [product category](/using-upmind/product-management/how-to-edit-a-product-category) and product first. 1. Go to **Settings > Product Catalogue** (or open **Store Catalogue** directly). <Frame> <img alt="Store catalogue" /> </Frame> <Frame> <img alt="Settings > Products and Promotions > Product Catalogue" /> </Frame> 2. Select an existing product or create a new one. 3. Open the **Billing** tab, then expand **Product Trial**. <Frame> <img alt="Product billing > Product trial" /> </Frame> 4. Toggle on **Support Trial Period**. <Frame> <img alt="Enable support trial period" /> </Frame> You will now see all the trial configuration options described below. ## Trial settings explained ### Forced trial You can make a trial **optional** or **mandatory (forced)**. * If the trial is **optional**, clients can choose to skip it when placing an order. * If the trial is **forced**, all clients ordering that product will start on the trial, with no option to bypass it. <Frame> <img alt="Force trial period" /> </Frame> ### Trial period duration (in days) The number of days the free trial lasts before the end-of-trial action is triggered. <Frame> <img alt="Trial period duration (in days)" /> </Frame> ### Pre-expired notification (in days) Set how many days before the trial ends you want to trigger configured actions, for example, sending reminder emails to clients. <Frame> <img alt="Pre-expired notification (in days)" /> </Frame> ### End of trial action Choose what happens when the trial period finishes. <Frame> <img alt="End of trial action" /> </Frame> | **Action** | **What It Does** | | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Continue** *(default)* | The subscription carries on as normal. The client is charged at the standard price and billing cycle. | | **Migrate** | The trial product migrates to a different product. Any associated change-product provisioning commands will run. Useful when you want to move clients to a different package or apply different resource limits. | | **Cancel** | The trial is cancelled immediately when it ends. | ## Client experience during a trial When a client is on an active trial, the trial status is visible in their client area. Clients can end the trial early at any time. Doing this triggers the end-of-trial action configured for that product (continue, migrate, or cancel). <Frame> <img alt="Free trial product" /> </Frame> ## How to offer a discount for trial continuations If you want to reward clients who choose to continue after a trial with a promotional discount, you can set this up through the Promotions section. 1. Go to **Settings > Promotion** (found under the products and promotions). <Frame> <img alt="Settings > Products and Promotions > Promotion" /> </Frame> 2. Click **Add Promotion** and configure the promotion details. <Frame> <img alt="Add promotion" /> </Frame> 3. Choose the promotion type: **Custom condition per product**, which will apply to an individual promotion per product. <Frame> <img alt="Choose promotion type" /> </Frame> 4. Then click on **Attach new product**. <Frame> <img alt="Attach new product" /> </Frame> 5. Set the discount as a fixed amount or a percentage of the product price, tick the applicable conditions, and fill in the minimum and maximum quantity. <Frame> <img alt="Set discount" /> </Frame> 6. Click **Save**. 7. Under **Mandatory Products**, click **Manage Product.** <Frame> <img alt="Mandatory products" /> </Frame> 8. Tick the conditions that apply to the promotion, and click **Save**. <Frame> <img alt="Tick conditions" /> </Frame> 9. Set up the **Availability** and **Eligibility** rules, tick the applicable conditions, and click **Save**. <Frame> <img alt="Set availability and eligibility" /> </Frame> Clients can now use the promotion code when continuing a free trial product or service. ## How to auto-apply a promotion To automatically apply a promotion without requiring clients to enter a code: 1. Go to **Settings > Business Settings** (under the E-commerce Settings heading). <Frame> <img alt="Settings > E-commerce Settings > Business Settings" /> </Frame> 2. Scroll down to **Applied Promotion**. 3. Toggle the setting to **ON**. <Frame> <img alt="Applied promotion" /> </Frame> With this enabled, eligible promotions are applied automatically at checkout. ## Trial automation and contract settings Upmind can automatically suspend, cancel, or terminate trial contracts that become overdue. These settings are found at **Settings > Branding and Customisation > Subscription Options > Contract Settings**. <Frame> <img alt="Settings > Branding and Customisation > Subscription Options" /> </Frame> | **Setting** | **Description** | | ----------------------------------------------------------------- | --------------------------------------------------------------------------------- | | **Overdue Contract Suspension Delay Days (For Trial Products)** | Number of days a trial contract is overdue before it is automatically suspended. | | **Overdue Contract Cancellation Delay Days (For Trial Products)** | Number of days a trial contract is overdue before it is automatically cancelled. | | **Overdue Contract Termination Delay Days (For Trial Products)** | Number of days a trial contract is overdue before it is automatically terminated. | <Frame> <img alt="Overdue contract settings for trial products" /> </Frame> Configuring these values keeps your trial subscriptions tidy without requiring manual intervention. ## Requiring payment details for free trial orders Go to **Settings > E-commerce Settings > Order Options > Misc.** <Frame> <img alt="Settings > E-commerce Settings > Order Options" /> </Frame> The **Require Payment Details for Zero Amount Orders** setting controls whether clients must provide a payment method when checking out a free trial (or any 100% discounted order). <Frame> <img alt="Require payment details for zero amount orders" /> </Frame> Setting this to `true` means that when a basket is converted to an invoice for a free trial, the client must add a saved payment method before completing the order. This makes sure the renewal invoice at the end of the trial can be charged automatically, without any manual follow-up. This is recommended if your end-of-trial action is set to **Continue** and you want billing to be fully automated. # How to Set Up Preselected Product Options/Attributes Source: https://docs.upmind.com/using-upmind/product-management/how-to-set-up-preselected-product-optionsattributes Learn how to set up preselected product options or attributes. You can offer a variety of options based on size, price, quantity, and more. Check Now in Upmind! Setting default product options or attributes helps customers quickly place orders with preselected choices, simplifying the shopping experience. 1. Create the or and assign them to the target product. 2. Go to the `Product options` or `Product attributes` section on the product details page. 3. Click the three-dot menu next to the desired option or attribute. 4. Select **Preselect in Shop**. <Frame> <img alt="Preselect in shop" /> </Frame> Once enabled, the product page will show the option or attribute preselected for customers in the store. <Frame> <img alt="Preselected choice" /> </Frame> # How to Use Contract Product Tags Source: https://docs.upmind.com/using-upmind/product-management/how-to-use-contract-product-tags Tag, organise, and filter contract-based products. Contract product tags help you organise and filter products easily within Upmind. ## **Adding tags from the products & services page** 1. Go to **Products & Services** in your admin dashboard. 2. Locate the contract product you want to tag. 3. Click **Add Tag** next to the product. <Frame> <img alt="Add tag from product & services" title="Image" /> </Frame> 4. Select an existing tag or create a new one by typing the desired tag name. <Frame> <img alt="Manage tag from product & services" /> </Frame> ## Adding tags from inside a contract product 1. Go to **Products & Services**. 2. Open the contract product you want to tag. 3. Click **Add Tag** inside the product details. <Frame> <img alt="Add tag from contract product" title="Image" /> </Frame> 4. Select an existing tag or create a new one. <Frame> <img alt="Contract product with tag" title="Image" /> </Frame> ## Displaying product tags on invoices Product tags **do not** appear on invoices by default. To show a tag on an invoice, you need to enable this option when creating or editing the tag. When creating or editing a tag, enable the option to show it to customers and on invoices. You can also set a colour for the tag. Use a bright colour, as it will be reflected on the invoice PDF. <Frame> <img alt="Customise tag" title="Image" /> </Frame> The codes already exist in the PDF template, which can be accessed from **Settings** > **PDF Template**. <Frame> <img alt="Settings > PDF Template." title="Image" /> </Frame> **For the main product:** ```html theme={null} {% if product.tags %} <br/><br/> {% for tag in product.tags %} <span class="rounded-l px-3 py-2 rounded-r product-tag" style="background: {{ tag.colour }}">{{ tag.name }}</span> {% endfor %} {% endif %} ``` **For product options:** ```html theme={null} {% if option.tags %} <br/><br/> {% for optionTag in option.tags %} <span class="rounded-l px-3 py-2 rounded-r product-tag" style="background: {{ optionTag.colour }}">{{ optionTag.name }}</span> {% endfor %} {% endif %} ``` <Note> The tag will appear on the invoice when it is downloaded. </Note> <Frame> <img alt="Invoice PDF" title="Image" /> </Frame> # Split Bulk Orders into Separate Contract Products Source: https://docs.upmind.com/using-upmind/product-management/split-bulk-orders-into-separate-contract-products Efficient management of bulk purchases by automatically splitting into individual contracts Splitting bulk orders into separate contract products simplifies management by treating each unit as a distinct contract product. This allows better tracking, provisioning, billing, and customer service for bulk purchases. ## Enable bulk order splitting for your brand 1. Log in to your Upmind Admin panel. 2. Navigate to **Settings** > **Order Options** under **E-commerce Settings**. <Frame> <img alt="Settings > E-commerce settings > Order options" /> </Frame> 3. On **Basket**, check the option *Split product into separate baskets if possible*. <Frame> <img alt="Basket" /> </Frame> 4. **Save** your settings. ## Configure individual products to support bulk splitting 1. Go to **Store Catalogue** > **Products**. 2. Select the product to enable bulk splitting for. 3. Scroll to the `Product Details` section. 4. Find the setting *Can this order be in bulk?* and set it to **Yes**. 5. Tick the checkbox *Split multiple items into separate contract products*. <Frame> <img alt="Store catalogue > Product > Product details" /> </Frame> 6. Click **Save**. When enabled, Upmind automatically creates separate contract products for each unit in a bulk order. This means every item in the bulk purchase is tracked individually from provisioning to billing and renewal. # Subscription Settings Overview Source: https://docs.upmind.com/using-upmind/product-management/subscription-settings-overview Subscription Settings Overview enables to customise the global settings for your online store as you like. The options are limitless. Check now in Upmind! ## Configure subscription options Upmind offers configurable subscription management to control , suspension delays, and auto-notifications. You can access subscription from **Settings** > **Subscriptions Options** under **Branding and Customisation**. <Frame> <img alt="Settings > Subscriptions Options" /> </Frame> ## Cancel a contract Admins and store staff can manually . To prevent automatic suspensions or cancellations, enable . ## Modify a client contract , such as terms and product status. You can also reactivate a contract product if needed and send messages or updates to clients. ## Modify invoice settings for subscriptions. You can pay invoices, issue credit notes or refunds, and even adjust invoice due dates. ## Manage auto-renewals Control global and recurring payment invoices. ## Manage recurring payments Learn how clients can directly through their client area. # What If Your Product or Service is Not Showing? Source: https://docs.upmind.com/using-upmind/product-management/what-if-your-product-or-service-is-not-showing Read this article and know the to do list, What If Your Product or Service is Not Showing? Check out and explore Upmind now! If products or services don’t appear on your frontend shopping cart, the following steps help ensure proper visibility. ## Check payment gateway and currency support Products require enabled payment gateways to be displayed, since customers need a payment method to complete purchases. You can verify your payment gateways under **Settings** > **Payment Providers** under **E-commerce settings**, to make sure they support the currencies assigned to your products (found in **Product** > **Billing**). A mismatch in supported currencies blocks product display and ordering. For detailed setup, see this guide on \[topic/link]. <Frame> <img alt="Product billing cycle in USD and IDR" /> </Frame> <Frame> <img alt="Gateway that only supports GBP" /> </Frame> ## Ensure catalogue display is activated 1. Go to **Settings** > **User Interface** under **Branding and Customisation**. <Frame> <img alt="Settings > User Interface" /> </Frame> 2. In the `Client Area` settings, find `Show Catalog`. <Frame> <img alt="Show catalog" /> </Frame> 3. Choose one of: * **Always Show** — Catalogue visible to all visitors. * **Show to Logged in** — Catalogue visible only to logged-in customers. * **Hide** — Catalogue hidden from customers. Select **Always Show** to guarantee product visibility. ## Confirm products have prices Upmind includes a default price list that sets basic pricing for each product or service. For more details, see this on how to create price lists. # A Guide to cPanel/WHM Provisioning Options Source: https://docs.upmind.com/using-upmind/provisioning/a-guide-to-cpanelwhm-provisioning-options Options for cPanel/WHM provisioning This guide explains the different provisioning settings available for your **cPanel/WHM**. ## Navigate to your provisioning settings 1. Go to `Settings`. 2. Find the `Product Catalogue`. If you already have the product, select it to check the provisioning options. If not, you can [create a new product](/using-upmind/product-management/how-to-create-products#/). <Frame> <img alt="Product catalogue" /> </Frame> 3. Next, choose the provisioning field. On the following screen, select the **Provision Blueprint** and **Provision Providers**. <Frame> <img alt="Provisioning under Product" /> </Frame> 4. Then, scroll down to find the **Provision Fields**. To configure the **package identifier**, ensure that it's similar to your package name in cPanel. <Frame> <img alt="Provisioning Field" /> </Frame> ## Choose the provision fields Fill up each part to set up the provisioning fields: 1. **Package Identifier**: Set this by creating a package in WHM or using an existing one. Make sure it matches the package name in cPanel. If you are a hosting reseller, make sure your WHM package name includes your reseller username. 2. **Reseller Privileges**: Note that you cannot manage reseller privileges, ACL names, account limits, disk space, or bandwidth through WHM **unless you have root access**. 3. **Account Owns Itself** <Frame> <img alt="Change Account Ownership" /> </Frame> 4. **Reseller ACL Name** <Frame> <img alt="Reseller ACL (Access Control List)" /> </Frame> 5. **Reseller Account Limit** <Frame> <img alt="Reseller Account Creation Limits" /> </Frame> 6. **Reseller Disk Space Limit (MB)** <Frame> <img alt="Reseller Disk Space Limit (MB)" /> </Frame> 7. **Reseller Diskspace Overselling** <Frame> <img alt="Reseller Diskspace Overselling" /> </Frame> 8. **Reseller Bandwidth Limit (MB)** <Frame> <img alt="Reseller Bandwidth Limit (MB)" /> </Frame> 9. **Reseller Bandwidth Overselling** These features collectively provide control, flexibility, and limitations for resellers in managing hosting accounts within Upmind. # Brand Provisioning Fields Source: https://docs.upmind.com/using-upmind/provisioning/brand-provisioning-fields Customise provisioning fields Upmind **Brand Provisioning Fields** are the key customisable parameters, settings, and data points that connect your products and services to automated service delivery within Upmind. These fields are essential for mapping product details, like domain names, server specs, or user credentials, to the right provisioning functions and providers. This can help ensure your clients get exactly what they ordered, quickly and accurately. This can be found in **Settings** > **Brand Provisioning Fields**. <Frame> <img alt="Settings > Brand provisioning fields" /> </Frame> ## Why are brand provisioning fields needed? To automate and customise the service delivery process, provisioning fields are required. Upmind knows exactly what data to get from clients and how to utilise it to trigger the appropriate setup steps, such as registering domains, creating hosting accounts, or activating software licences, thanks to the mapping of these fields to your selected provision blueprint. In addition to accelerating delivery, this lowers manual error rates and increases business efficiency. The ability to filter and organise blueprints makes it simple to oversee a variety of services and guarantee that each is configured with the appropriate data and procedure. <Frame> <img alt="Brand provisioning fields" /> </Frame> <Frame> <img alt="Manage fields" /> </Frame> # Contract Product Provision Management Source: https://docs.upmind.com/using-upmind/provisioning/contract-product-provision-management Manage business processes In Upmind, you can manage provision actions to automate, monitor, and control key business workflows, making operations more efficient and smooth. These tools manage actions triggered by your products and services, such as provisioning, suspending, or terminating accounts, helping you deliver consistent customer experiences with minimal effort. Available in both **Admin** and **Client** areas (with some actions reserved for admins), these provisioning actions connect to services like hosting and domains. Each provisioning blueprint may feature unique action buttons according to its workflow, which is explained in this guide. ## **Using actions in the admin area** For more information on **Parameters** and **Return Data** for the actions, [<u>check our GitHub</u>](https://github.com/upmind). To manage the provisioning actions in the **Admin** area, follow these steps: 1. Go to the `Client Profile`. 2. Select Products & Services and choose the relevant product. <Frame> <img alt="Products & services from the admin area" /> </Frame> 3. Click the **Manage** tab. <Frame> <img alt="Manage tab" /> </Frame> ### **Actions** The admin area lets you manage key actions for client products and services efficiently. You can make quick edits to any of the functions to keep everything up to date. <Frame> <img alt="Actions for Web hosting" /> </Frame> ### **Web hosting provision actions** | **Action Name** | **Functionality** | | ---------------------- | --------------------------------------------------------------------------------------------------------------- | | Create account | Automatically creates a new hosting account. | | Get info | Retrieves current details about the hosting account. | | Get usage data | Fetches resource usage metrics (disk, bandwidth). | | Login to control panel | Provides a secure link to the hosting control panel and direct access without entering a username and password. | | Make reseller | Converts a hosting account into a reseller account. | | Revoke reseller | Removes reseller privileges. | | Change password | Updates the hosting account password. | | Change package | Switches the hosting plan or package. | | Change primary domain | Updates the primary domain for a cPanel or Plesk hosting account. | | Suspend account | Temporarily disables the hosting account. | | Unsuspend account | Reactivates a suspended account. | | Delete account | Permanently removes the hosting account and data. | ### **Domain names provision actions** | **Action Name** | **Functionality** | | -------------------------------------- | --------------------------------------------------------------------------------------------------------- | | Register | Registers a new domain name. | | Transfer | Initiates the transfer of a domain from another registrar. | | Renew | Extends the domain registration period. | | Sync due date | Updates the expiry date to match the registrar’s records. | | Get info | Retrieves current domain registration details. | | Lock/unlock | Enables or disables domain transfer locking. | | Update nameservers | Changes the domain's DNS nameservers. | | Update registrant | Edits the domain owner’s details. | | Update registrant with default details | Resets registrant info to default company data. | | Update contact | Update the contact details of a domain for every contact type: Registrant, Technical, Admin, and Billing. | | Get epp code (non-UK domains) | Retrieves the authorisation code for the domain transfer. | | Update IPS tag (UK domain release) | Modifies the IPS tag for UK domains to enable transfers. | | Get verification status | Checks the verification state of a domain. | | Resend verification email | Sends the domain verification email again. | | Set Glue Record | Adds a glue record by linking a nameserver to an IP address. | | Remove Glue Record | Deletes an existing glue record from the domain. | ### **Auto login provision actions** | **Action Name** | **Functionality** | | --------------- | ----------------------------------------------------- | | Login | Generates a secure automatic login link for clients. | | Create | Sets up necessary parameters for enabling auto login. | | Renew | Extends or refreshes auto login credentials. | | Suspend | Temporarily disables auto login access. | | Unsuspend | Restores suspended auto login functionality. | | Terminate | Completely revokes auto login access. | ### **SEO provision actions** | **Action Name** | **Functionality** | | ---------------------- | ---------------------------------------------- | | Login to control panel | Grants direct access to the SEO control panel. | | Create | Initialises a new SEO service account. | | Change package | Updates the SEO plan or service package. | | Suspend | Pauses the SEO service. | | Unsuspend | Reactivates a suspended SEO service. | | Terminate | Cancels the SEO service entirely. | ### **Website builders provision actions** | **Action Name** | **Functionality** | | ----------------- | ------------------------------------------------------------------------ | | Create account | Launch a new website builder account instantly. | | Get info | Retrieve detailed information about an existing website builder account. | | Manage website | Access management functions and settings for the website. | | Change package | Switch the website builder plan or features. | | Suspend account | Temporarily disable a website builder account. | | Unsuspend account | Reactivate a suspended account. | | Delete account | Permanently delete the website builder account and its data. | ### **Software licenses provision actions** | **Action Name** | **Functionality** | | ------------------------------- | ---------------------------------------------------- | | Create license | Issue a new software license to a client. | | Reissue license | Replace or renew an existing license key. | | Get usage data | Fetch current usage stats for the licensed software. | | Sync tracked product quantities | Update license quantities to match tracked data. | | Upgrade/downgrade license | Modify license level or features. | | Suspend license | Temporarily disable the license. | | Unsuspend license | Restore a suspended license. | | Terminate license | Permanently revoke license access. | ### **Servers provision actions** | **Action Name** | **Functionality** | | -------------------- | ----------------------------------------------------------- | | Create server | Deploy a new server instance. | | Reinstall server | Reinstall the server OS or software. | | Resize server | Adjust server resources such as CPU, RAM, or storage. | | Get info | Get the detailed status and configuration of the server. | | Get connection | Retrieve connection details such as IP addresses and ports. | | Change root password | Update the server’s root/admin password. | | Power on | Power up the server. | | Shut down | Gracefully power down the server. | | Reboot | Restart the server. | | Suspend | Temporarily suspend the server. | | Unsuspend | Resume a suspended server. | | Terminate | Permanently delete or decommission the server. | ### **Office tools provision actions** | **Action Name** | **Functionality** | | --------------- | ------------------------------------------------------- | | Create | Initialise a new office tool account or service. | | Login | Generate auto-login credentials or direct access links. | | Get info | Retrieve service details and status. | | Renew | Extend the subscription or license period. | | Change package | Modify the subscribed office tool plan. | | Suspend | Temporarily disable the office tool service. | | Unsuspend | Reactivate a suspended service. | | Terminate | Cancel and remove the office tool service. | If you are using a provisioning system that integrates with Upmind (like cPanel in this guide), you’ll see additional configuration options: ### **Provision configuration** You must have an existing account with your provisioning provider, then enter its credentials and details to configure and connect your provisioning system. <Frame> <img alt="Provision configuration for web hosting" /> </Frame> ### **Provision fields** Provision fields include order and product settings that store key details about each item. These are mostly filled in automatically when a new account is created, saving time and reducing errors. <Frame> <img alt="Provision fields for Web hosting" /> </Frame> ### **Logs** Provision logs track all system and team actions with timestamps, statuses, and details. This organised record helps with identifying issues, troubleshooting, auditing, and maintaining a transparent history of every event. <Frame> <img alt="Provision logs for Web hosting" /> </Frame> To see more details about particular errors, click on the error to view the detailed message. <Frame> <img alt="View error message" /> </Frame> You can also check the debug data for further details. <Frame> <img alt="View debug data" /> </Frame> ## **Using actions in the client area** When you manage provision actions in the client area, it is designed to give both clients and teams a clear, secure, and organised way to manage product information, communicate smoothly, and protect sensitive data. To get to the actions, follow these steps: 1. Log in to the `Client Area` portal. 2. Go to **Products & Services** and select the product you want to manage. <Frame> <img alt="Products & services from the client area" /> </Frame> In the product overview tab, you will find: ### **Product details** Provides all the essential information about your product in one place. In the case of a web hosting package, it includes specifics like the Domain Name, Username, and IP Address. Having these details handy helps you understand exactly what your hosting plan offers, making it easier to manage your account and ensure it meets your needs. <Frame> <img alt="Product details for web hosting" /> </Frame> ### **Managing your product** Managing your product is easy from the Upmind client area. In the case of a hosting product, you can update your hosting password anytime to keep your account secure and log in to your control panel directly from the dashboard for quick access to tools and settings. These actions will differ depending on the type of product and provisioning. <Warning> Actions are limited in the client area compared to the admin area. </Warning> <Frame> <img alt="Manage your product" /> </Frame> # Dynamic Deployment Source: https://docs.upmind.com/using-upmind/provisioning/dynamic-deployement How specific provision configurations are chosen In businesses with multiple servers or providers, how do you decide where a client’s service is deployed? **Example**: How does a web hosting order go to **Server X** instead of **Server Y**? Or how does a domain register through **Registrar A** rather than **Registrar B**? This guide explains dynamic deployment in Upmind and shows how to apply it in web hosting environments. ## Basic static implementation You can create a direct, static mapping between a product and a provisioning provider in its simplest form. **Example**: If you sell , you likely have just one Basekit setup. Similarly, if you work with only one domain provider, you can statically map all domain orders to that provider. Think of your web hosting like having one server for all websites. Every hosting task is assigned to this single server. In the provisioning setup, you might map (like storage size or bandwidth limits) to specific server functions, but you don’t choose between multiple servers dynamically. ## Dynamic deployment Imagine you have two web servers, **Server A** and **Server B**. You want Server A to handle shared hosting accounts and Server B to handle reseller accounts. Dynamic deployment lets you route hosting orders to different servers based on order details. To set this up: 1. Add a location under **Host Control** > **Web Hosting**. <Frame> <img alt="Add location" /> </Frame> 2. Assign configuration attributes to each server (**Server Type: Shared** or S**erver Type: Reseller**). See the information below. 3. In the product’s Dynamic Deployment settings, map the order values to these attributes to control which server each order is deployed to. ## Setting up configuration attributes For web hosting providers using dynamic deployment, you create to guide order routing. **Example**: A cPanel shared hosting server might have attributes like Location (London or New York). This is like specifying **what hosting services are offered**. One server could be set to serve shared hosting accounts in London, while another handles reseller accounts in New York. These attributes help Upmind decide where each hosting order should go. You can check this to see how provisioning works in Upmind. ## Configure product attributes 1. Go to `product attributes`. 2. Click **Create Product Attribute**. <Frame> <img alt="Product attribute" /> </Frame> 3. Create or choose a category and give it a name. <Frame> <img alt="Add product attribute" /> </Frame> 4. Click **save**. For more information, check this . ## Configure dynamic deployment Once the configuration attributes are set on the provision provider, it becomes easy to apply them to a product. On the product, you define which configuration attribute an order must match to be deployed to a specific server. You can do this with the **Auto Mode** and select match configuration attributes. <Frame> <img alt="Auto mode provisioning" /> </Frame> <Frame> <img alt="Configure attribute field" /> </Frame> If the product option `London, UK` is selected, then the order will be deployed to a provision configuration with the location `London, UK` specified. <Note> When selecting a web server, the server’s attribute Accepting New Accounts must be set to True for it to be selectable. </Note> # How Does Provisioning Work? Source: https://docs.upmind.com/using-upmind/provisioning/how-does-provisioning-work Step-by-step guide to provisioning in Upmind From this guide, you will learn: 1. **How to Create a Web Server.** 2. **How to Create a Hosting Package.** 3. **How to Purchase the Hosting Package as a Client.** ## How to create a web server 1. First, create an account on any web hosting service such as **Plesk**. 2. You can create and provision a *Web Hosting service* on **Host Control** > **Web Hosting** from the `Admin Dashboard` or **Settings** > **Provision Configurations**. <Frame> <img alt="alt text" /> </Frame> <Frame> <img alt="alt text" /> </Frame> For this example, we will go in from the **host control**. 3. Click on **Add New** and select `Web Server`. <Frame> <img alt="Select web server" /> </Frame> 4. Type your *Web Hosting service* name and choose **Plesk**. <Frame> <img alt="Add the web server name and choose a provider" /> </Frame> 5. Add all the necessary **Provision Configurations**, such as Host Name, Admin User Name, and Admin Password. All of the information can be found on your panel. <Frame> <img alt="Add provision configurations" /> </Frame> 6. Afterwards, choose your operating system, fill in the optional configuration attributes, and then click **Create**. <Frame> <img alt="Add configuration attributes and click create" /> </Frame> ## How to create a hosting package 1. Go to the Hosting Packages tab, then click on **Add New**, and select `Hosting Package`. <Frame> <img alt="Select hosting package" /> </Frame> 2. Create a [Product Category](/using-upmind/product-management/how-to-create-products#creating-a-category). <Frame> <img alt="Add product category" /> </Frame> 3. Write your `Product Name` and then click **Create**. <Frame> <img alt="Click create" /> </Frame> 4. Click **Manage Product**, go to [Product Billing](/using-upmind/product-management/how-to-add-product-billing#/), and under Purchase Type, you can make it a **Recurring Payment**. <Frame> <img alt="Click manage product" /> </Frame> <Frame> <img alt="Make it a recurring payment" /> </Frame> 5. Under `Subscription Terms`, type in an amount and choose the currency. <Frame> <img alt="Choose amount and currency" /> </Frame> 6. You can update the `Multi-currency options`. <Frame> <img alt="Select multi-currency option" /> </Frame> 7. You can also go to `Provisioning` to choose your **Provision Blueprint** and **Provider**. <Frame> <img alt="Choose the provision blueprint and provider" /> </Frame> 8. Select the `Configuration Mode` and choose your `Provider Configuration` (the Web Hosting that you created). <Frame> <img alt="Select configuration mode and provider configuration" /> </Frame> 9. You can keep the `Setup Functions` as **Default**, and `Order Setup Fields` as **Inherit from category**. <Frame> <img alt="Choose setup functions and order setup fields" /> </Frame> 10. Under `Provision Fields`, you need to configure your **Package Identifier**. <Frame> <img alt="Configure package identifier" /> </Frame> 11. You can create the **Package** with all the details (for example, disk space, monthly bandwidth limit, etc.) from your panel. Add the **Package Name** to the `Package Identifier`. <Frame> <img alt="Add package identifier name" /> </Frame> The product should now be set up and live. ## How to purchase the hosting package as a client 1. A **Client** can purchase the **Hosting Package** by first going to `Place New Order` from the [Client Dashboard](/client-self-service/client-area/overview-of-the-client-area-dashboard#/). <Frame> <img alt="Select place new order" /> </Frame> 2. Select the **Category** and click **Add to basket**. <Frame> <img alt="Add to basket" /> </Frame> 3. Add a `Domain Name` and click **Add to basket**. <Frame> <img alt="Add domain name" /> </Frame> 4. Click **Continue** to `Checkout`. <Frame> <img alt="Continue to checkout" /> </Frame> 5. Select `Pay Later` and click on **Place Order and Pay**. <Frame> <img alt="Place order and pay" /> </Frame> 6. Your **Order** will be complete. <Frame> <img alt="Completed order" /> </Frame> 7. If you go to `Orders` from the `Admin Dashboard`, you can find the order. Click on it. <Frame> <img alt="Find the order from admin panel" /> </Frame> 8. You can [Review the order](/setup-and-configuration/orders-services/how-to-review-orders#/) with [FraudMind](/setup-and-configuration/orders-services/fraudmindtm-fraud-prevention-and-security#/). <Frame> <img alt="Review order" /> </Frame> 9. Approve it. <Frame> <img alt="Approve order" /> </Frame> 10. Select **Go to Order**. <Frame> <img alt="Go to order" /> </Frame> 11. Select `Invoices` and click on the **Order**. <Frame> <img alt="Select invoice and the order" /> </Frame> 12. Click on **Pay Now**. <Frame> <img alt="Select pay now" /> </Frame> 13. Make the **Manual Payment**. <Frame> <img alt="Manual payment" /> </Frame> 14. It will mark it as paid. Click on the **Product**. <Frame> <img alt="Select the product" /> </Frame> 15. In the back end of the `Manage` tab, it will trigger the system to run a **Create Command**. <Frame> <img alt="Manage tab" /> </Frame> 16. You can also see the `Activity log`. <Frame> <img alt="Activity log" /> </Frame> 17. You can log in to the `Control Panel` now as the **Admin**. <Frame> <img alt="Admin control panel login" /> </Frame> 18. You can also log in as a **Client**. <Frame> <img alt="Client control panel login" /> </Frame> # How to Remove a Provisioning Configuration Source: https://docs.upmind.com/using-upmind/provisioning/how-to-remove-a-provisioning-configuration Remove any provision configuration to organise your services Removing a provisioning configuration in Upmind is a simple process that helps keep your service integrations organised and up to date. Following the correct steps, whether retiring an outdated provider, switching to a new integration, or clearing unused configurations, ensures your system remains efficient and free of errors. ## Why remove a provisioning configuration? Provisioning configurations connect your products to third-party services, automating tasks like account creation, domain registration, or server deployment. Over time, some configurations may become obsolete or redundant. Removing them helps avoid confusion, prevents accidental use, and maintains optimal system performance. For example, you might need to: * Switch to a new provider (e.g., moving from GoDaddy to Cloudflare). * Retire outdated services (e.g., phasing out legacy hosting packages). * Clean up test setups. Step-by-Step Process to Remove a Provisioning Configuration: 1. Go to `Settings`, then `Provision Configurations`. <Frame> <img alt="Settings > Provision configurations" /> </Frame> 2. Browse or search for the specific provisioning configuration you want to remove. 3. You can then click the three dots icon and delete. This removes the provision configuration entirely. 4. Upmind will then delete the provisioning configuration from your system. This action is usually irreversible, so double-check before proceeding. <Frame> <img alt="Delete configuration" /> </Frame> <Note> Before removing, check if any active products or services are currently using this configuration. A provision configuration cannot be deleted if there are any services associated with it. Removing a configuration that is in use can disrupt service automation or cause provisioning failures. If dependencies exist, reassign those products to a different configuration or disable the products first. You should also backup important settings. Before deletion, document or export configuration details in case you need to restore or reference them later. </Note> # New Domain Search Tool Source: https://docs.upmind.com/using-upmind/provisioning/new-domain-search-tool New domain search tool delivers fast, trustworthy, and relevant domain suggestions from external engines. The **New Domain Search Tool** from Upmind gives customers a faster, smarter way to find and register domains directly from your storefront. ## **Access domain search settings** 1. Log in to Upmind admin. 2. Go to **Settings** > **Miscellaneous** > **Provisioning.** <Frame> <img alt="Settings > Miscellaneous > Provisioning" /> </Frame> 3. Find the **Domain Search Method** section under **Domain Names**. <Frame> <img alt="Domain Names" /> </Frame> ## **Choose the domain search method** Upmind offers two domain search methods: 1. Legacy Lookup 2. Smart Suggest ### Legacy lookup Uses the traditional domain availability method. Checks real availability for each keyword as users type and returns domains that are available or taken, which they can register. <Frame> <img alt="Legacy Lookup and Smart Suggest domain search methods" /> </Frame> **Example: Legacy Lookup Keyword Search** “hostpanel” - A short, single keyword a hosting provider might search when naming a new control panel product or reseller brand. <Frame> <img alt="Legacy Lookup keyword search" /> </Frame> **Example: Legacy Lookup Exact Match** “hostpanel.com” - Confirms whether this specific domain is free to register or already taken. <Frame> <img alt="Legacy Lookup exact match" /> </Frame> ### Smart suggest Smart Suggest powers the **New Domain Search Tool** by connecting to external domain suggestion engines. Rather than simply checking whether a single domain is taken, it reads the search term, whether that's a single keyword, a phrase, or even a full sentence, and intelligently generates a list of relevant, registrable domain ideas around it. It uses either **Verisign’s “NameStudio”** or **Identity Digital’s “Domain Engine”** to provide suggestions that load instantly with your Upmind pricing and promotions already applied, and defers true availability checks until the moment a user attempts to add a domain to their basket. **Example: Smart Suggest “NameStudio” Keyword/Phrase Search** “managed wordpress hosting” - A descriptive phrase that lets NameStudio surface creative, brand-ready domain suggestions beyond the obvious exact match. **Example: Smart Suggest “NameStudio” Exact Match** “managedwphosting.com” - Triggers an immediate full check on this specific domain, with NameStudio suggestions populating below. <Frame> <img alt="Smart Suggest NameStudio exact match" /> </Frame> **Example: Smart Suggest “Domain Engine” Keyword/Phrase Search** “reseller hosting plans” - A practical search a hosting reseller would run, where Domain Engine surfaces high-intent, readily registrable domains over creative alternatives. <Frame> <img alt="Smart Suggest Domain Engine keyword/phrase search" /> </Frame> **Example: Smart Suggest “Domain Engine” Exact Match** “resellerplans.com” - Runs an immediate full availability check at the top, with Domain Engine suggestions populating below. <Frame> <img alt="Suggest Domain Engine exact match" /> </Frame> ## **Selecting the domain suggestion engine** When **Smart Suggest** is active, you choose between two engines. Both deliver high-quality suggestions, and the difference is in how they generate them and what they prioritise. | **Engine** | **Provider** | **Choose if** | **Strengths** | **Weaknesses** | | ----------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | | **NameStudio** | Verisign | You want AI-driven brainstorming, creative brand-name generation, and flexible naming from descriptions or phrases. | Strong "brand idea" generation using semantic relevance and LLM prompts, great for surfacing creative names from open-ended searches. | Can feel more experimental, better for inspiration than conversion. | | **Domain Engine** | Identity Digital | You want higher registrar conversions, stronger search merchandising, and monetisation-focused recommendations. | Conversion-oriented recommendations that surface registrable domains customers are more likely to buy. | Suggestions lean practical and may be less imaginative for creative brand naming. | <Frame> <img alt="Domain Suggestion Engines" /> </Frame> Save changes and test the storefront search to confirm your selection. ## **How it works** Search → See suggestions → Choose → Add to basket + Availability check → Checkout. Domain availability in Smart Suggest works in two stages: A fast soft check during search and a confirmed hard check at the basket. 1. **Search** — The customer enters a keyword, phrase, or description into the storefront search. If the customer types an exact domain (e.g., serverstack.net), the top result runs a full hard availability check immediately, giving a confirmed status right from the search. **Example**: “serverstack.net” - A direct check a hosting provider might run when evaluating a brand name for a new infrastructure offering. <Frame> <img alt="Smart Suggest NameStudio exact match" /> </Frame> 2. **See suggestions** — The engine generates relevant domain ideas instantly. A soft availability check runs in the background to filter results and keep suggestions as accurate as possible. 3. **Choose** — The customer browses suggestions and selects a domain they like. 4. **Add to basket** — A hard availability check runs at this point. This is the final, confirmed verdict on whether the domain is available. In rare cases, this result may differ slightly from what appeared during the search. This is expected, as the search prioritises speed while the basket check prioritises accuracy. Two scenarios can occur at this stage: * A domain shown as **available to register** may return as **available to transfer:** The domain status updates accordingly, and the customer is given the option to transfer it instead. **Example**: “pixelhost.com” - A well-known domain that will almost certainly return as a transfer candidate rather than available to register. <Frame> <img alt="Available to transfer" /> </Frame> * A domain shown as **available to transfer** may return as **available to register:** The status updates, and the customer can proceed with a fresh registration. **Example**: “hostlaunchpro.com” - An obscure enough domain where a soft check might flag it as potentially registered, but the hard check confirms it is free to register. <Frame> <img alt="Available to register" /> </Frame> 5. **Checkout** — The customer completes their purchase with a verified domain status confirmed at the basket stage. <Note> Search results are reliable in most cases, but the basket-stage check is always the definitive one. This keeps the search experience fast without compromising accuracy at the point of registration. </Note> # Product Notes and Secrets Source: https://docs.upmind.com/using-upmind/provisioning/product-notes-and-secrets Create and store non-sensitive and sensitive information on products and services ## Product notes You and your team can add and view non-sensitive notes about products or services directly in the client area. These notes are ideal for sharing useful details, reminders, or updates with your staff or the organisation team. **Example**: You can record special client requests, troubleshooting tips, or recent changes. Notes keep everyone informed and organised without cluttering support tickets or emails. <Frame> <img alt="Product notes" /> </Frame> ## Product secrets Product secrets store sensitive information like credentials and passwords securely using AES-256 encryption. Only authorised users can access this data, ensuring strong protection and compliance. Secure sharing helps teams work efficiently while maintaining client trust. <Frame> <img alt="Product secrets" /> </Frame> * **Secret Label**: A simple, user-friendly name that identifies the secret (e.g., Server Root Password or Client X API Key) without exposing its value. Clear labels help teams find and manage secrets easily, especially across multiple clients or products. * **Secret Value**: The actual sensitive data, such as passwords or tokens, is stored securely and encrypted by Upmind. Only authorised users can access or use the secret, protecting your business and client data at all times. <Note> If the provision blueprint is set to **Manual**, clients can use product notes and secrets to store the sensitive data. </Note> # Provision Categories in Upmind Source: https://docs.upmind.com/using-upmind/provisioning/provision-configurations/provision-categories-in-upmind Upmind offers 8 provisioning categories Provisioning in Upmind can be done through **several categories**. Each provision category represents a specific type of service or product that can be sold and managed through Upmind, with specialised functions and integrations to handle the unique requirements of that service. Below, we provide a detailed breakdown of its core categories, including how they work, key features, and real-world applications: ## Web hosting This category covers provisioning for shared web hosting accounts across popular platforms, making setup quick and hassle-free. Web hosting eliminates manual server configuration, reduces downtime, and ensures reliable performance. The system handles creating hosting accounts, retrieving account details, monitoring disk space and bandwidth, managing login URLs, updating passwords or packages, suspending or terminating accounts, and managing reseller privileges. **Example**: When a customer buys a *shared hosting plan*, Upmind automatically sends a request to your cPanel server to create the account with the chosen domain, and the customer gets their login details within seconds. **Supported providers**: 1. cPanel 2. Plesk 3. 20i Hosting 4. Enhance 5. InterWorx 6. SolidCP 7. DirectAdmin 8. CentosWeb <Frame> <img alt="Web hosting provision providers" /> </Frame> ## Domain names This category automates domain name tasks like registration, renewal, transfer, and overall management across various registries and reseller platforms. This prevents domain expiration and reduces manual DNS errors. The system handles registering, renewing, and transferring domains, updating DNS settings, and retrieving domain information. **Example**: When a user buys "mycompany.com" from your website, Upmind uses your registrar credentials to register the domain and applies the default nameservers automatically. **Supported providers**: 1. HexonetNominet 2. Enom 3. OpenSRS 4. HRS 5. ResellerClub 6. LogicBoxes 7. NetEarthOne 8. ConnectReseller 9. Resell.biz 10. OpenProvider 11. NameSilo 12. CoCCA EPP 13. NIRA 14. RICTA 15. UG Registry 16. Domain Name Api 17. Namecheap 18. CentralNic 19. CentralNic Reseller 20. GoDaddy 21. Realtime Register 22. InternetBS 23. EuroDNS 24. InternetX 25. EURID 26. TPP Wholesale 27. Synergy Wholesale 28. Netim <Frame> <img alt="Domain name provision providers" /> </Frame> ## Auto login This category makes it easy for users to log in to their online service accounts directly, enhancing their experience with convenient access links. It reduces the need for password reset support tickets and improves security. The system handles creating accounts, generating secure login URLs, suspending or unsuspending accounts, updating packages, renewing, and terminating accounts. **Example**: After setting up a *hosting account*, a customer can click **Login to cPanel** from the Upmind portal and access their dashboard without needing to log in again. **Supported providers**: 1. SpamExperts <Frame> <img alt="Auto login provision providers" /> </Frame> ## SEO Although not detailed in the search results, SEO provisioning usually means automating the setup and management of SEO services like analytics, reporting, and optimisation tools. This helps make websites search-ready without any manual plugin or configuration work. **Example**: When a customer signs up for an *SEO audit plan*, Upmind automatically sets up access to a third-party audit tool and sends the login details to the customer. **Supported providers**: 1. marketgoo <Frame> <img alt="SEO provision providers" /> </Frame> ## Website builders This category handles provisioning for website builder platforms and related tools, letting customers launch polished websites in minutes instead of days. It takes care of creating site builder accounts, retrieving account details and usage, generating auto-login links, updating packages, and managing account suspensions or terminations. **Example**: When a customer buys a *WordPress hosting plan*, Upmind automatically sets up the hosting, installs WordPress, and preloads their chosen theme, making the whole process smooth and fast. **Supported providers**: 1. BaseKit 2. Website.com 3. Weebly 4. Topline Yola <Frame> <img alt="Website builder provision providers" /> </Frame> ## Software licences This category automates the setup and management of software licences, helping prevent overbuying and unused licences. It handles creating licence keys, tracking usage, upgrading or downgrading licences, reissuing keys, and managing suspensions or terminations. **Example**: When a customer buys a *CloudLinux licence*, Upmind automatically provisions it through the [API](/developers/api-tokens/upmind-api-guide-generating-api-tokens#/) and instantly delivers the licence key to the customer. **Supported providers**: 1. EnhanceBlesta 2. WHMCS 3. cPanel <Frame> <img alt="Software licence provision providers" /> </Frame> ## Servers This category automates server provisioning on popular cloud platforms, delivering high-performance servers without needing system administrator skills. It handles creating, managing, and suspending server instances, retrieving server details, and managing configurations. Termination is not automated, as it requires a manual action to give users time to back up their data first. <Note> When a server service is cancelled, it is suspended rather than terminated immediately. This stops further charges and gives clients time to retrieve backups before manually performing the termination. </Note> **Example**: When a customer orders a *VPS*, Upmind sets up the server on your Virtualizor instance, assigns an IP address, and emails the root login details to the customer. **Supported providers**: 1. LinodeSolusVM v1 2. Virtualizor 3. Virtuozzo Hybrid Server 7 4. OnApp 5. Virtfusion <Frame> <img alt="Server provision providers" /> </Frame> ## Office tools This category automates the setup and management of business productivity tools like email. **Example**: When a client buys Titan Email, Upmind instantly creates inboxes, sets security rules, and syncs accounts automatically. This saves time, reduces errors, and lets teams focus on work. **Supported providers**: 1. Titan Email <Frame> <img alt="Office tool provision providers" /> </Frame> ## Provision category fields Provision category fields in Upmind are the essential customisable settings and parameters you configure to automate the delivery and management of services. These fields typically include the provider type, API credentials, product or package mapping, resource limits, and automation rules for actions like activation, suspension, or termination. You can also set up domain names, user credentials, and advanced options such as reseller privileges or custom scripts. Each provisioning request is fully logged, giving you transparency and a complete audit trail. # Provision Configurations in Upmind Source: https://docs.upmind.com/using-upmind/provisioning/provision-configurations/provision-configurations-in-upmind Choose from several categories Provisioning configurations in Upmind lets you connect external products and systems with the API. You can automate how products and services are set up and managed across different providers. You can also create multiple provisioning setups and dynamically choose the right one based on customer orders. Upmind currently offers **8 different provisioning categories**: 1. Web Hosting 2. Domain Names 3. Auto Login 4. SEO 5. Website Builders 6. Software Licenses 7. Servers 8. Office Tools You can check all the categories with the following steps: 1. From `Settings`, go to the `Provision Configurations`. <Frame> <img alt="Settings > Provision configurations" /> </Frame> 2. Click **Add New Configuration**. <Frame> <img alt="Add new configuration" /> </Frame> 3. Click on the **Provision Category** dropdown. <Frame> <img alt="Provision categories" /> </Frame> ## **Configuration attributes** Configuration attributes in Upmind are **optional metadata fields** you can add to a provisioning setup to help better organise, classify, or customise your configurations. These attributes might include details like server location, product type, or customer-specific preferences, making it easier to filter, manage, and deploy resources dynamically across different providers or environments. You can offer more customised options to your customers, such as letting them choose a server location at checkout, and simplifying your management by grouping or identifying configurations based on key criteria. This flexibility supports more efficient automation and deployment, especially when working with dynamic or multi-region setups. # Provisioning Options for Web Hosting Source: https://docs.upmind.com/using-upmind/provisioning/provisioning-options-for-web-hosting Options for web hosting provisioning This guide explains the different provisioning settings available for your web hosting. These can be found from **Settings** > **Product Catalogue** > **Product** > **Provisioning**. ## Provision blueprint By choosing the right provision blueprint, you ensure your product is set up to trigger the correct automated workflows. <Frame> <img alt="Provision blueprint" /> </Frame> ## Provision provider You can let Upmind pick the best provision provider automatically, select a specific one, or set up advanced dynamic rules for more control. This flexibility means you can easily scale, switch, or customise how and where your products are provisioned. <Frame> <img alt="Provision providers (web hosting)" /> </Frame> ## Configuration mode The configuration mode lets you decide how Upmind matches your product to a provider setup, either by using your brand’s default settings or by matching specific attributes like location or features. <Frame> <img alt="Configuration mode" /> </Frame> ## Provider configuration The provider configuration is where you choose the exact settings or credentials for your selected provider, such as the brand’s default setup or a custom configuration. This step makes sure that Upmind connects to your provider with the right details. <Frame> <img alt="Provider configuration" /> </Frame> <Frame> <img alt="Match configuration attributes" /> </Frame> ## Setup functions Setup functions define what action Upmind takes when a product is activated, usually creating a new account or service. You can choose from standard actions like *create* or customise what happens during setup, so your customers get instant access to their new service without delays. <Frame> <img alt="Setup functions" /> </Frame> The *Create Account* function is the default setup action that runs when your product is activated. It automatically provisions the service, like setting up a hosting account or website builder, so your customer’s order is fulfilled quickly and efficiently. ## Order setup fields Order setup fields control when and how customers provide the information needed for provisioning. You can decide if details are collected before payment, after payment, or optionally at either stage, giving you flexibility to match your sales process and customer experience. <Frame> <img alt="Order setup fields" /> </Frame> 1. **Inherit from category (None)**: Uses the default timing set by the product category. 2. **None (Before payment)**: Customers must enter all required info during checkout, before they pay. 3. **Optional**: Customers can provide some info at checkout and confirm or complete details after payment. 4. **Hidden (After payment)**: Customers pay first, then provide the info needed for provisioning. ## Provision fields Provision fields are the specific data points, like package name, domain, or server location, that Upmind maps to the provider during setup. These fields make sure the right information is sent for each order, making automated provisioning accurate and customised to each product or service. These features collectively provide control, flexibility, and limitations for resellers within Upmind. <Frame> <img alt="Provision fields" /> </Frame> | Field Name | Description | | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Package Identifier | This is a unique identifier for a hosting package (the package name). It helps Upmind distinguish between different hosting plans. | | Reseller Privileges | Defines the permissions and limits granted to a reseller account, such as the ability to create, manage, and allocate resources to user accounts, set quotas, and access certain management features within the hosting platform. | | Account Owns Itself | When enabled, this means that an account can manage itself. Without this, only the root admin can manage the account. | | Reseller ACL Name | ACL stands for Access Control List. This setting specifies the name of the ACL list associated with a reseller. ACLs control what actions a user or reseller can perform. | | Reseller Account Limit | This sets a limit on the number of accounts a reseller can create. It helps in controlling the reseller's business scale. | | Reseller Disk Space Limit (MB) | Specifies the maximum disk space that a reseller can allocate across all their accounts. It prevents a reseller from overcommitting resources. | | Reseller Diskspace Overselling | If enabled, this allows resellers to allocate more disk space than physically available, relying on the assumption that not all users will use their full allocation. | | Reseller Bandwidth Limit (MB) | Similar to disk space, this sets the maximum bandwidth that a reseller can allocate among their accounts. | | Reseller Bandwidth Overselling | When enabled, this allows resellers to oversell bandwidth, assuming that not all users will use their full allocated bandwidth. | # Provisioning Settings Source: https://docs.upmind.com/using-upmind/provisioning/provisioning-settings General provisioning automation settings Provision automation settings in Upmind let you control how your products and services are automatically managed. One key feature is **Automatic Termination**, which you can enable to have services automatically cancelled or deleted when an order is closed or expires. You can enable or disable it with the following steps: 1. From `Settings`, go to **Provisioning** under **Miscellaneous**. <Frame> <img alt="Settings > Provisioning" /> </Frame> 2. Here, you can choose the configuration for **Automatic Termination**. <Frame> <img alt="Enable/disable automatic termination" /> </Frame> This helps keep your system clean and avoids unnecessary charges or inactive accounts, automatically making your provisioning process smoother and more efficient. # Upmind Marketplace Source: https://docs.upmind.com/using-upmind/provisioning/upmind-marketplace Offer and sell more to your clients The [Upmind Marketplace](https://upmind.com/marketplace) is a simple yet effective platform that offers more than **85 digital products and services** that are ready to market, helping you grow your business. You can easily integrate popular solutions such as web hosting, domains, website builders, SEO tools, and more with a simple plug-and-play setup. These are automated behind the scenes, allowing you to focus on customer service and sales. With little effort, the Marketplace offers additional revenue sources, simplifying the introduction of new products, and automates complex processes like provisioning. ## What you can sell with Upmind 1. **Web hosting**: You can provide dependable web hosting to your clients from reputable industry leaders. For easy administration and simple provisioning, Upmind links you with leading systems, whether you are using dedicated servers, VPS, or shared hosting. You can easily provide hosting options to accommodate all needs, from start-ups to major corporations. 2. **Website builders**: You can assist your clients in creating beautiful, expert websites without any coding. You can use well-known builders to offer customised templates and easy drag-and-drop functionality. These platforms help the process of creating a website, such as a personal blog, portfolio, or company website. 3. **Domain names**: With domain registrations from reputable registrars, you can make it simple for your clients to protect their online identities. Upmind saves you time by automating domain registration, renewals, and management. You can provide a large selection of TLDs and easily manage domain sales. 4. **Servers**: You can provide server solutions that grow with the needs of your clients. From cloud servers to dedicated hardware, connect with providers for powerful infrastructure that’s automatically provisioned. Upmind’s integrations simplify server management so you can focus on supporting your customers. 5. **SEO, software & more**: You can expand your offerings with essential software licences, SEO tools, and security solutions. Partner with providers to offer automated licence provisioning, enhanced security, and SEO optimisation. These add-ons help your clients improve their online presence and protect their businesses with ease. # What are the Benefits of Provisioning? Source: https://docs.upmind.com/using-upmind/provisioning/what-are-the-benefits-of-provisioning Provisioning offers many benefits When it comes to provisioning, Upmind brings **powerful benefits** that ensure accuracy, reliability, and a smoother experience for both you and your customers. Below, we break down the key benefits: 1. **Automated Service Management**: Upmind automates every step of service management, from activation to suspension and cancellation. When a customer places an order, workflows instantly deploy servers, register domains, or assign licences once payment clears. It also handles renewals and overdue suspensions automatically, ensuring consistent results by connecting your billing system directly to service providers for faster order processing and immediate service access. 2. **Improved Customer Experience**: Upmind provides a user-friendly, self-service portal that reduces needless emails by allowing customers to manage subscriptions, view invoices, and request support. Features like *SSO* allow customers to access tools like *cPanel* or *WordPress* directly from their dashboard, while transparent billing keeps everything clear. The branding of the portal can also be customised, giving customers more control over their services and reducing the need for support. 3. **Enhanced Security**: Upmind prioritises security with built-in fraud scanning ([FraudMind](/setup-and-configuration/orders-services/fraudmindtm-fraud-prevention-and-security#/)), immutable invoices to prevent tampering, and detailed audit logs for full transparency. Role-based access and SSO limit staff permissions, while secure [API](/developers/api-tokens/upmind-api-guide-generating-api-tokens#/) credentials and encrypted communications protect your provisioning workflows from unauthorised changes. 4. **Cost Savings**: By automating most service setups and renewals, Upmind reduces manual efforts and support costs. Its flexible pricing lets you start free with up to three provisioning configurations, and scale as needed. Automation optimises server provisioning and licence management to cut resource waste, while built-in retry and error handling reduce costly rollbacks and support tickets. 5. **Error Reduction**: Upmind eliminates manual errors by automating every provisioning step with consistent, validated workflows. This reduces the risk of typos or misconfigurations that cause downtime or lead to unhappy customers. Every API call is logged, retried on failure, and audited, so you can trust your provisioning tasks complete smoothly and accurately. 6. **Scalable Infrastructure**: Upmind grows with your business, offering unlimited integrations on paid plans. Its dynamic resource allocation automatically deploys services based on demand, which is ideal for traffic spikes or seasonal sales. Moreover, [multi-currency](/using-upmind/invoicing-and-taxes/about-multi-currency#/) and multilingual support enable global sales without limitations. Whether you are handling ten or ten thousand orders, Upmind’s parallel workflows keep operations scalable, smooth, and cost-effective. 7. **Third-Party Integration**: With over 85 ready-to-use integrations, Upmind connects you to top providers for hosting, domains, SEO tools, servers, and more, all managed from one platform. These integrations speed up service launches and automation. For unique needs, Upmind’s open-source SDKs let you build custom modules to connect any niche API or internal tool. 8. **API Integration**: You can list all systems you want to connect, such as hosting panels, licence managers, domain registrars, or custom apps. Afterwards, you can easily verify that each of these has available APIs and clear documentation to ensure smooth compatibility with Upmind’s platform. 9. **Complete Lifecycle Management**: Upmind manages the full service lifecycle, not just activation. You define what happens at every stage, such as setup, suspension, and cancellation. Services activate automatically after payment, pause on overdue invoices, and terminate per your rules. This comprehensive approach ensures consistent, smooth service handling regardless of volume. # What is Provisioning? Source: https://docs.upmind.com/using-upmind/provisioning/what-is-provisioning Upmind’s provisioning automates the complete setup and management of services through APIs, while the Marketplace offers a curated catalogue of ready-to-buy, pre-built services. Below, we explain how our provisioning system works Provisioning is the process of creating and configuring resources, like user accounts, so they are operational. To save time and guarantee that everything goes smoothly, this process is now primarily automated. **Example**: When you sign up for a *cloud storage provider*, provisioning automatically creates your account, allocates storage space, and grants you access to tools. ## What is provisioning in Upmind? Provisioning is an **automated procedure** in Upmind that connects and controls third-party products and services you sell through their **APIs** (an interface that Upmind can communicate with). This enables organisations to easily and automatically manage external systems, such as web hosting, software licences, and domain registration, in response to Upmind events like customer orders, renewals, cancellations, or payments. **Example**: When a customer purchases a *hosting plan* from you, Upmind immediately installs software, sets up security, configures a server, and links the service to the customer's account. It also integrates with billing, invoicing, support, and monitoring systems, making it simple to manage services from start to finish. Provisioning also lets your clients and staff manage third-party services directly from their Upmind dashboard. This can range from simple actions like **Single Sign-On (SSO)** to full-featured interfaces, giving them on-demand control whenever needed. ## Key terms of provisioning Provisioning in Upmind is simple yet offers advanced features. We will explain the key terms: * **Blueprint**: A reusable template or framework that defines how a service should be provisioned. It includes step-by-step instructions for setting up resources, such as server configurations, parameters, software installations, or DNS settings. We use blueprints because they standardise the integrations. **Example**: All *domain registrars* share common features like registration and renewal workflows. This makes integrating multiple providers easier and more consistent, even if their systems vary. * **Provision Provider**: A third-party platform or service, like *cPanel*, that Upmind integrates with for deploying resources. Upmind acts as the “middleman,” translating your blueprint into actions the provider understands. **Example**: If your blueprint requires a *domain registration*, Upmind communicates with GoDaddy’s API to reserve the domain, configure DNS, and assign it to the customer. This is an implementation of a blueprint for a specific provider. * **Provision Configuration**: A unique set of settings that define how a specific service is provisioned. It specifies which blueprint to use, which provision provider to connect to, and any custom parameters needed for the service. It also includes credentials, API keys, default regions, and resource limits. We explain more in this [guide](/using-upmind/provisioning/provision-configurations/provision-configurations-in-upmind). **Example**: A provision configuration for a *WordPress hosting service* might specify the cPanel provision provider, the WordPress blueprint, and settings for the domain name and database. * **Contract Product**: Refers to how Upmind manages and interacts with the [products or services you create](/using-upmind/product-management/how-to-create-products) and offer to customers. It involves setting up and storing the metadata like product details, pricing, billing cycles, support contacts, and any related configurations within the Upmind platform. **Example**: When a customer purchases a *hosting package*, the contract product ensures that all the necessary details, such as disk space, bandwidth, and other features, are correctly assigned and managed. It also tracks the server’s expiry date, invoices, and support tickets. * **Service Identifier (Service ID)**: A unique code or label that identifies a specific contract product on the provision configuration. It is used to track and manage the product or service throughout its lifecycle. There can be two contract products on the same provision configuration with the same service identifier. **Example**: A *hosting plan* might have the ID `SVC-2024-WP-5678`, which appears in invoices, support requests, and server logs. * **Deployment**: The process of assigning a service on the provider's platform. It involves executing the blueprint, applying the provision configuration, and creating and upgrading the contract product or service. This can be Dynamic or Static. We explain more in this [guide](/using-upmind/provisioning/dynamic-deployement). ## The provisioning flow (example scenario) Here is a scenario explaining how a customer purchases a *Hosting Plan* with Upmind: * **Product Setup**: You create a product (e.g., Hosting Plan A) in Upmind and link it to a provisioning provider (e.g., cPanel). * **Blueprint**: Upmind uses a prebuilt *Hosting Plan* blueprint with instructions for a 4GB server, cPanel access, and SSL setup. * **Provision Provider**: The blueprint triggers AWS (configured with your API keys) to launch a server in `us-east-1`. * **Provision Configuration**: Default settings apply (e.g., monthly backups enabled). * **Customer Purchase**: A customer orders that product from your storefront. * **Provisioning Triggered**: Upmind automatically triggers provisioning using the configuration you defined. * **Provisioning Request Sent**: The request is sent to the connected platform (like your server, registrar, or API provider). * **Service Created**: The external platform completes the request (e.g., account created, domain registered). * **Contract Product**: A product named `BizHost-123` links the service to the customer’s account, tracking renewal dates. * **Service Identifier**: The server is tagged `SVC-2024-BH-91011`. * **Deployment**: Upmind deploys the server, installs cPanel, tests the site, and emails the customer their login. * **Automation**: A welcome email is sent, and a support ticket is created for onboarding. * **Ongoing Sync (Optional)**: Some services continue to sync status (e.g., domain status updates, disk usage, license validation). To understand how provisioning works, follow this [guide](/using-upmind/provisioning/how-does-provisioning-work#/). ## Provisioning lifecycle Customer Order ↓ Product Linked to Provider ↓ Provision Request Sent ↓ External Platform Creates Resource ↓ Status Returned to Upmind ↓ Customer Notified & Service Active # About Insights and Reports Source: https://docs.upmind.com/using-upmind/reporting/about-insights-and-reports Get all the data you need to understand how your e-commerce site is performing on the Insights and Reports section Upmind offers a suite of reports and key performance metrics designed to help you monitor and analyse your business performance effectively. These tools provide valuable insights that support informed decision-making and operational management. ## **Available data types** The reporting system includes core datasets such as: * **Accounting Data**: Invoices issued, credit notes, outstanding balances. * **Tax Information**: Sales tax collected. * **Transactional Data**: Money received and paid out. * **Revenue Reports**: Monthly run rate (MRR) and subscription revenue trends. * **Business Performance Metrics**: Churn rates, customer lifetime revenue (LTR), average revenue per user (ARPU). * **Operational Metrics**: Customer acquisition and retention statistics. ## **Accessing performance data** 1. Log in to your Upmind account. 2. Select **Insights and Reports** from the left navigation panel. <Frame> <img alt="Open insights and reports" /> </Frame> The default view opens the `Monthly Report` page showing key revenue and performance data. ## **Selecting and customising a data set** Use the left menu to switch between different datasets and reports. <Frame> <img alt="Select data sets" /> </Frame> In the `Insights and Reports` section, table data can be customised by adjusting column types, order, and width, but this option is only available on the `Sales Listing` and `Tracked Referral` pages. ### **Add or remove columns** 1. Click the **Manage Columns** icon. 2. Check or uncheck the boxes for the columns you want to show or hide. 3. Click **Save**. <Frame> <img alt="Manage columns" /> </Frame> ### **Reorder columns** 1. Click the **Manage Columns** icon. 2. Go to the `Arrange Columns` tab. 3. Drag and drop column names to rearrange. 4. Click **Save**. <Frame> <img alt="Arrange columns" /> </Frame> ### **Change column width** 1. Hover over a column border next to the heading. 2. Drag the border left or right to resize. <Frame> <img alt="Drag column border" /> </Frame> ## **Filtering sales data** Use filters to narrow the data display: 1. Click the sort field. 2. Select a category. <Frame> <img alt="Select category" /> </Frame> 3. Choose a condition and enter a value. 4. Click **Apply**. <Frame> <img alt="Select condition and value" /> </Frame> <Warning> Conditions and values vary by category. </Warning> ## **Tracking referrals** Click **Tracked Referrals** in the left menu to see all referred clients and orders brought by advocates. <Frame> <img alt="Track referral activity" /> </Frame> ## **Review stats** Click **Stats** in the left menu to view cash, invoice, and client data for the last 30 days by default. To change the time frame: 1. Click the **Last 30 days** link. 2. Select or highlight a new period. 3. Click **Apply**. <Frame> <img alt="Select new time frame" /> </Frame> <Info> The selected time frame applies to all metrics on this page. </Info> ## **Reviewing MRR data** Click **Monthly Run Rate** in the left menu to view actual and projected subscription revenue across currencies. To change the start date: 1. Click the date link. 2. Pick a date from the calendar. 3. Click **Select Date**. <Frame> <img alt="Select date" /> </Frame> To view revenue in your home currency (e.g., GBP): 1. Click the **All Revenue** button top right. 2. Select your home currency. <Frame> <img alt="Select home currency" /> </Frame> ## **Accessing reports** You can access all the various report types from **Insights and Reports** > **Reports**. <Frame> <img alt="Insights and Reports > Reports" /> </Frame> ## **Regenerating reports** Once you generate a report, you can **regenerate** it by clicking the three dots. <Frame> <img alt="Regenerate report" /> </Frame> ## **Available report types** This section describes the available report types in Upmind and highlights report names, descriptions, and the key data each report provides. | **Report Name** | **Description** | **Data Provided** | | ---------------------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Active Order Product Summary | Summarises current active orders by product. | - Product details (product ID, brand ID, product name, category name, provision category, provision provider) - Active order counts - Report code - Catalogue URL | | Orders By Product | Lists orders grouped by product. | - Product details (product category, name) - Order count - Revenue - Order amount (Tax amount, net amount) - Formatted amounts (Tax amount, net amount) | | Orders By Product Bc | Similar to Orders By Product but with brand currency conversion. | - Product details (product category, name) - Billing cycle - Order count - Revenue - Order amount (Tax amount, net amount) - Formatted amounts (Tax amount, net amount) | | Orders By Promotion | Shows orders by applied promotions. | - Promotion details (promotion name, codes) - Product details (contract product ID, product service identifier) - Order details (net selling price, quantity, net amount) - Client details (client ID, name, email) - Invoice details (invoice name, type) - Billing cycle | | Orders By Product Category | Aggregates orders by product category. | - Product details (product categories, count) - Revenue (net amount, tax amount, total amount, total quantity) - Average net selling price - Formatted amounts (net amount, tax amount, total amount, total quantity) | | Tracked Referrals By Client | Referrals sourced per client. | - Client details (client name, email, country) - Payment details (payment detail gateway, medium, source) - Referrals (Campaign, content, term, create datetime) | | Tracked Referrals By Order | Referral data grouped by order. | - Service details (service status summary, service active days summary) - Order details (order status, order number, order summary) - Product name - Client details (client name, email, country) - Payment details (gateway, medium, source) - Billing cycle months - Cancellation date - Currency code - Order amount (initial amount, amount by client, paid amount, amount migration, amount renew, credit notes) - Formatted amounts (initial amount, amount by client, paid amount, amount migration, amount renew, credit notes) - Referrals (Campaign, content, term, create datetime) | | All Clients And Leads | Comprehensive client and lead list. | - Client and lead identifiers (email, phone number, client name) - Company details (company name, type, reg date, verification) | | Active Inactive Clients | Status report on active versus inactive clients. | - Client and lead identifiers (email, phone number, client name) - Company details (company name, type, reg date, verification, status) | | Cash In Per Day | Daily cash inflow report. | - Payment details (payment date per day, gateway) - Transaction details (count of transactions, currency code, money in and out, brand currency, total result) - Formatted amounts (money in and out, brand currency, total result) | | Cash In Per Month | Monthly cash inflow summary. | - Payment details (payment date per month, gateway) - Transaction details (count of transactions, currency code, money in and out, brand currency, total result) - Formatted amounts (money in and out, brand currency, total result) | | Tickets Per User | Support tickets count by user. | - User details (from date, to date, user name) - Ticket details (ticket count, ticket replies, clients by ticket count, leads by ticket count) | | Tickets Per Client | Ticket volume per client. | - Client details (from date, to date, client name) - Ticket details (ticket count, ticket replies) | | Tickets Per Lead | Tickets associated with leads. | - Lead details (from date, to date, lead name) - Ticket details (ticket count, ticket replies) | | Invoice Items Taxes Detailed | Detailed tax breakdown per invoice item. | - Invoice details (date, number, invoice status, invoice category) - Tax details (tax country, invoice tax amount, tax tag, tax rate) - Formatted amounts (invoice tax amount formatted) | | All Taxes By Tag And Country | Tax reports filtered by tags and country. | - Tax details (tax country, invoice tax amount, tax tag, tax rate) - Formatted amounts (invoice tax amount formatted) | | All Invoices | Complete invoice list. | - Invoice details (date, category, invoice number) - Order amounts (net amount, tax amount, gross amount) - Formatted amounts (net amount formatted, tax amount formatted, gross amount formatted) | | All Invoices By Country | Invoices grouped by client country. | - Invoice details (country, invoice total amount) - Formatted amounts (invoice total amount formatted) | | All Invoices GST | GST-specific invoice summary. | - Invoice details (number, client, state, status, create datetime, paid datetime) - GST details (GSTIN, subtotal, total) | | All Invoices By Category Per Month | Monthly invoices broken down by category. | - Invoice details (date, category) - Order amounts (net amount, tax amount, gross amount) - Formatted amounts (net amount formatted, tax amount formatted, gross amount formatted) | | Invoices Accrual By Category | Revenue accrual summaries by category. | - Revenue data (monthly revenue) - Invoice details (clients count, services count, category) - Formatted amounts (monthly revenue formatted) | | Invoices Accrual By Product | Revenue accrual summaries by product. | - Revenue data (monthly revenue) - Invoice details (clients count, services count, product) - Formatted amounts (monthly revenue formatted) | | Invoices Accrual | Overall revenue accrual reporting. | - Revenue data (number, monthly revenue, invoice item net amount, period days, recognized revenue, deferred revenue, net selling price) - Invoice details (order date, item period from, item period to, item name, product name, category) - Formatted amounts (monthly revenue formatted, invoice item net amount formatted, recognized revenue formatted, deferred revenue formatted, net selling price formatted) | | Invoices Accrual Paid Unpaid | Accrual reports split by payment status. | - Revenue data (number, monthly revenue, status paid datetime, invoice item net amount, period days, recognized revenue, deferred revenue, net selling price) - Invoice details (order date, item period from, item period to, item name, product name, category) - Formatted amounts (monthly revenue formatted, invoice item net amount formatted, recognized revenue formatted, deferred revenue formatted, net selling price formatted) | | LTV Churn Arpu By Product | Customer value and churn metrics by product. | - Product details (product name, start of the period clients, end of the period clients) - Monthly LTV details (monthly ARPU, monthly churn rate, monthly LTV) - Interval LTV details (interval ARPU, interval churn rate, interval LTV) - Annual LTV details (annual ARPU, annual churn rate, annual LTV) | | All Clients And Services | List of clients with associated services. | - Client details (import, status, firstname, lastname, email, client reg date) - Service details (service identifier, description, product name) - Order amounts (currency code, net amount, tax amount, total amount) - Formatted amounts (net amount formatted, tax amount formatted, total amount formatted) - Invoice details (activation date, next invoice date, next due date, suspended date, cancelled date, closed date) | | Clients By Country | Client distribution by country. | - Client details (client country, count clients, all services, active services) | | Clients Churn Per Month | Monthly client churn statistics. | - Churn timeline (year month format, client count, date) | | Affiliates | Affiliate program reporting. | - Affiliate details (email, firstname, lastname, ref count, link count, sales value) - Formatted amounts (sales value formatted) | | Promotion Usage | Usage statistics for promotional campaigns. | - Promotion details (name code, initial orders, recurring orders) | | Top Spenders | Lists clients with the highest spending. | - Client details (firstname, lastname, email, client country, postcode, address, phone, company, first order, total spend) - Formatted amount (total spend formatted) | | Orders Per Payment Method | Shows orders segmented by payment method. | - Payment details (gateways) - Order details (total count, total amount, initial count, initial amount, migration count, migration amount, recurring count, recurring amount) - Formatted amounts (total amount formatted, initial amount formatted, migration amount formatted, recurring amount formatted) | | Average Ticket Response Times | Measures average response time for support tickets. | - Ticket details (department, first response time minutes) | | All Invoice Items | Detailed list of all invoice line items. | - Invoice details (invoice number, create datetime, cancellation datetime, paid datetime, status, invoice type, invoice item description, product name, product category, document currency, currency exchange rate, net selling price, credited invoice, credit note invoice) - Amounts (quantity, net amount, tax amount, total amount, net global discount amount, net product discount amount, invoice net amount, invoice tax amount, invoice total amount, invoice paid amount) - Document currency (net selling price document currency, net amount document currency tax, amount document currency, total amount document currency, net global discount amount document currency, net product discount amount document currency, invoice net amount document currency, invoice tax amount document currency, invoice total amount document currency, invoice paid amount document currency) | | Affiliates Referrals Invoices | Reports on affiliate-driven invoice activity. | - Affiliate details (aff name, aff email) - Referral details (ref name, ref email) - Invoice details (invoice number, create datetime, total amount, paid amount, currency, currency exchange rate, client total amount, client paid amount, status code, invoice type, paid datetime, cancellation datetime) | | Leads Export Only | Export of lead information only. | - Lead details (ID, name, email, international phone, client ID, comment) - Lead status (assigned client at, created at, updated at, deleted at) | | Clients Export Only | Export full client details. | - Client details (client ID, import ID, firstname, lastname, email, location source, location town, location country code, location IP, language code, last login) - Client status (is guest, created at, updated at, deleted at, external ID) | | Clients Addresses Export Only | Export of client address information. | - Client details (ID, import ID, client ID, default, name) - Client address details (address 1, address 2, region, country, city, postcode) - Client status (created at, updated at, deleted at) | | Clients Emails Export Only | Export of client email contacts. | - Client details (ID, import ID, client ID, email, default) - Client email details (bounced) - Client status (bounced at, created at, updated at, deleted at) | | Clients Phones Export Only | Export of client phone records. | - Client details (ID, import ID, client ID, default) - Client phone details (international phone) - Client status (created at, updated at, deleted at) | | Clients Payment Details Export Only | Export of client payment methods and details. | - Client details (ID, import ID, client ID, name, address ID) - Client payment details (card type, gateway ID, auto payment) - Client status (created at, updated at) | | Clients Companies Export Only | Export of company records linked to clients. | - Client details (ID, import ID, client ID, name) - Company details (VAT number, reg number, email ID, address ID, phone ID) - Status (created at, updated at, deleted at) | | Gateways Export Only | Export payment gateway configurations. | - Gateway details (ID, import ID, name, provider) - Status (created at, updated at, deleted at) | | Imports Export Only | Export details of imported data. | - Import details (ID, source code, name) - Status (started at, completed at, created at, updated at, deleted at) | | Invoices Items Export Only | Export of invoice item details for detailed revenue and billing analysis. | - Invoice details (client ID, gateway ID, payment details ID, address ID, company ID, import ID, ID, number, create datetime, cancellation datetime, paid datetime, due date, next charge date, payment failed attempts, payment currency code, payment currency exchange rate, status, invoice type, invoice item description, product, product category, document currency code, currency exchange rate, invoice product ID, from date, to date, net selling price, quantity, billing cycle months, credited invoice, credit note invoices, contract ID, contract product ID, product code 1, product code 2, main invoice product ID, base price, base price currency, base price exchange rate) - Amounts (net amount, tax amount, total amount, net global discount amount, net product discount amount, invoice net amount, invoice tax amount, invoice total amount, invoice paid amount, invoice partial credited amount) - Status (created at, updated at, deleted at) | | Baskets Items Export Only | Export of shopping basket and cart details. | - Cart details (client ID, gateway ID, payment details ID, address ID, company ID, import ID, ID, create datetime, cancellation datetime, paid datetime, due date, next charge date, payment failed attempts, payment currency code, payment currency exchange rate, status, invoice type, invoice item description, product, product category, document currency code, currency exchange rate, net selling price, quantity, billing cycle months) - Amounts (net amount, tax amount, total amount, net global discount amount, net product discount amount, invoice net amount, invoice tax amount, invoice total amount, invoice paid amount) - Status (created at, updated at, deleted at) | | Payments Export Only | Export of payment transaction details. | - Payment details (ID, import ID, client ID, currency code, transaction type, payment amount, currency exchange rate, invoice ID, transaction ID, gateway ID, affiliate payout) - Status (created at, updated at) - Amounts (original client amount) | | Contracts Products Export Only | Export of active contract products. | - Contract details (contract ID, import ID, client ID, company ID, payment details ID, address ID, gateway ID, contract product ID, product, product category, service identifier, description, net selling price, base price, base price currency code, currency code, currency exchange rate, quantity, billing cycle months, status, next invoice date, next due date, activation date, suspended date, cancelled date, closed date, calculated suspend date, calculated cancel date, calculated close date, renew is provisioned, auto create renew invoice, in trial, trial end date, product code 1, product code 2, main contracts product ID, product ID, provision configuration ID, external ID) - Status (created at, updated at, deleted at) - Amounts (net product discount amount, net global discount amount, net amount, tax amount, total amount) | | Staff Export Only | Export of staff user data. | - Staff details (ID, firstname, lastname, email, admin) - Status (created at, updated at, deleted at) | | Tickets Export Only | Export of support tickets. | - Ticket details (ID, message ID, reference, department, status code, client ID, lead ID, user ID, source type) - Status (created at, updated at, deleted at) | | All Invoices GST Export Only | GST-specific invoice report. | - Invoice details (number, client, state, status, create datetime, paid datetime) - GST details (GSTIN, subtotal, total) | | Invoice Items Taxes Detailed Export Only | Detailed tax breakdown per invoice item. | - Invoice details (date, number, invoice, status, invoice category) - Tax details (tax country, invoice tax amount, tax tag, tax, invoice tax amount formatted) | | Tags | Summary and listing of tags used in client and invoice management. | - Tag details (ID, name, description) | | Clients Tags Export Only | Export of tags linked to clients. | - Client details (client ID, tag ID, tag) | | Cancellation Requests Export Only | Export of client cancellation requests. | - Client details (ID, contract ID, contract product ID) - Status (created at, updated at) | | Clients Wallet Balances Export Only | Export of client wallet balance details. | - Client details (client ID) - Balance details (balance brand currency, balance client currency, client currency code, enable negative wallet balance) | | Scheduled Actions Export Only | Export of scheduled automation actions. | - Automation details (id, contract id, contract product id, user id, original values, values, action) - Status (created at, updated at, executed at, deleted at) | | All Taxes Export Only | Summary of all taxes applied across invoices. | - Invoice details (number, invoice category, invoice id, invoice product id, contract product id, create datetime, product, currency exchange rate, currency, country name, region name, city name, postcode, county, company name) - Tax details (tax number, tax percentage) - Amounts (tax amount brand currency, tax amount document currency, invoice product net amount, invoice product tax amount, invoice product total amount document currency, invoice product net amount document currency, invoice product tax amount document currency, invoice product total amount) | | Clients Custom Field Values Export Only | Export of client-specific custom field data. | - Field details (ID, field ID, field name, client ID, value) - Status (created at, updated at) | | Objects Tags Export Only | Export of tags applied to various objects within the system. | - Object details (ID, object type, object ID, tag ID, tag name) - Status (created at, updated at, deleted at) | # Analytics and Tracking Source: https://docs.upmind.com/using-upmind/reporting/analytics-and-tracking Types of events tracked and reported by Upmind Upmind’s **Analytics and Tracking** settings let you easily connect with Google Tag Manager, Google Analytics v4, and custom trackers. This helps you monitor user behaviour, track conversions, and gather data to make smarter business decisions. ## Accessing analytics and tracking 1. Log in to Upmind 2. From the dashboard, go to `Settings`. 3. Then, go to **Analytics & Tracking** under **Miscellaneous**. <Frame> <img alt="Settings > Miscellaneous > Analytics & Tracking" /> </Frame> ## Google Tag Manager settings You can configure Google Tag Manager (GTM) to deploy tracking tags and manage analytics scripts. * **GTM Container ID**: Enter your Google Tag Manager container ID here (e.g., "GTM-XXXX"). This identifies your GTM workspace and links Upmind with your tags and triggers. This GTM container ID is also required if you want to add . * **GTM Script URL (Optional)**: You can specify a custom script URL for your Google Tag Manager setup. <Frame> <img alt="Google Tag Manager settings" /> </Frame> ## Google Analytics v4 settings You can connect Upmind with v4 to get detailed reports on user interactions and purchase behaviour. * **Track Purchases**: Enable or disable sending purchase data to Google Analytics. * **Google Measurement ID**: Input your GA4 measurement ID (format: G-XXXXX). This ID directs Upmind’s data to your GA4 property for reporting. * **Google Measurement API Secret**: Secure your integration by entering the Measurement API secret generated in Google Analytics. This authenticates server-side event data transmissions for more reliable tracking. <Frame> <img alt="Google Analytics v4 settings" /> </Frame> ## Other tracking settings Fine-tune data handling and security with additional options. **Hashing Salt**: Add a salt value for hashing sensitive tracking data before it’s sent or stored. This preserves user privacy and meets data protection standards while maintaining tracking accuracy. <Frame> <img alt="Tracking settings" /> </Frame> # How to Get the GTM Script URL Source: https://docs.upmind.com/using-upmind/reporting/how-to-get-the-gtm-script-url Locate and use your Google Tag Manager Script URL in Upmind Upmind supports adding a custom GTM script URL to simplify tag management and analytics integration. This guide is optional, as the script is already included inside the container ID. ## Steps to retrieve your GTM script URL 1. Log in to `Google Tag Manager` (go to ). 2. Sign in using your Google account credentials. 3. Select the **Container** associated with the website or app you want to track from your GTM dashboard. If you have not created one, follow this . <Frame> <img alt="Select container" /> </Frame> 4. Locate and click the **Admin** button in the top left corner of the screen. The `Admin` area contains settings for your account and containers. <Frame> <img alt="Select admin" /> </Frame> 5. Under the `Container` column, click on **Install Google Tag Manager**. This opens a popup displaying the GTM installation code snippets needed on your website. <Frame> <img alt="Install Google Tag Manager" /> </Frame> 6. Identify the `GTM Script URL`. Within the popup, you will see two pieces of JavaScript code. <Frame> <img alt="GTM Script URL" /> </Frame> The relevant GTM script URL is inside the \< script > tag and typically looks like: [https://www.googletagmanager.com/gtm.js?id=GTM-XXXXXX](https://www.googletagmanager.com/gtm.js?id=GTM-XXXXXX) The `GTM-XXXXXX` is your container ID and will differ for your account. 7. Highlight the `GTM Script URL` within the \< script > tag and copy it to your clipboard. ## How to use the GTM script URL in Upmind 1. Log in to your Upmind admin panel. 2. Navigate to **Settings** > **Miscellaneous** > **Analytics & Tracking**. <Frame> <img alt="Settings > Miscellaneous > Analytics & Tracking" /> </Frame> 3. Locate the `Google Tag Manager Settings` section. Paste the copied GTM script URL into the custom **GTM Script URL** field. <Frame> <img alt="Paste the GTM Script URL" /> </Frame> 4. **Save** your settings. Upmind will now load your specified GTM script across your site, enabling tag management through Google Tag Manager. # How to Set Up Google Analytics with Upmind Source: https://docs.upmind.com/using-upmind/reporting/how-to-set-up-google-analytics-with-upmind Instructions for connecting Google Analytics for tracking Google Analytics 4 (GA4) offers comprehensive tracking of website and e-commerce activity. Connecting GA4 with Upmind requires the Google Measurement ID and an API Secret. ## Obtain Google Measurement ID and API Secret 1. Log in to your Google Analytics account at [<u>https://analytics.google.com</u>](https://analytics.google.com). 2. Go to Admin and under the Property column, select Data Streams. <Frame> <img alt="Admin > Data streams" /> </Frame> 3. Choose an existing web data stream or create one by clicking **Add Stream**, entering your website URL, and naming the stream. <Frame> <img alt="Add stream" /> </Frame> 4. Locate the **Measurement ID** (formatted like G-XXXXXXXXXX) under stream details. <Frame> <img alt="Copy measurement ID" /> </Frame> 5. In the Events section of the stream detail page, click **Measurement Protocol API Secrets**. <Frame> <img alt="Measurement Protocol API Secrets" /> </Frame> 6. Create a new **API Secret** and copy the generated key. <Frame> <img alt="Copy API secret" /> </Frame> ## Connect GA4 with Upmind 1. Access your Upmind dashboard. 2. Go to **Settings** > **Analytics & Tracking**. 3. Paste the **Google Measurement ID** and **API Secret** into their respective input fields. 4. **Save** your changes. <Frame> <img alt="Paste the Google Measurement ID and API Secret" /> </Frame> This enables Upmind to send purchase and event data directly to Google Analytics, improving your e-commerce reporting and marketing analysis capabilities. # How to Set Up Google Tag Manager with Upmind Source: https://docs.upmind.com/using-upmind/reporting/how-to-set-up-google-tag-manager-with-upmind Integrate Google Tag Manager code to gain actionable insights Google Tag Manager (GTM) lets you collect website data and manage tracking tags efficiently. You can integrate GTM with your Upmind store. ## Create a GTM Account and Container 1. Visit the `Google Tag Manager` website at [https://tagmanager.google.com/](https://tagmanager.google.com/). 2. Sign in with your Google account or create one if necessary. 3. Set up a new container: * Enter a descriptive name reflecting your Upmind store domain. * Select the appropriate target platform: Web, iOS, Android, or AMP. <Frame> <img alt="Configure details" /> </Frame> 4. After container creation, copy the `GTM Container ID` provided (formatted like GTM-XXXXXXX). <Frame> <img alt="GTM Container ID" /> </Frame> ## Configure GTM in Upmind 1. Log in to your Upmind admin panel. 2. Navigate to **Settings** > **Analytics & Tracking** under **Miscellaneous**. <Frame> <img alt="Settings > Miscellaneous > Analytics & Tracking" /> </Frame> 3. Paste your **GTM Container ID** into the designated field. 4. **Save** your settings. <Frame> <img alt="Paste the GTM Container ID" /> </Frame> Once configured, GTM will begin tracking visitor interactions on your website, laying the groundwork for advanced analytics. # Invoice Reporting for Accounts Source: https://docs.upmind.com/using-upmind/reporting/invoice-reporting-for-accounts How to generate and use invoice reports for accounts Upmind is built for accounting compliance and supports businesses with \$100M+ turnovers requiring external audits. Reports are accessible through the Upmind app, and advanced users can export data to their own data warehouse. This guide explains the reporting process and invoice data structure. ## **Accessing reports** Reports can be downloaded from **Insights and Reports** > **Reports**. For instance, the `Invoice Items Export Only` report covers most revenue and billing data. <Frame> <img alt="Insights and reports > Reports" /> </Frame> ## **Automated report delivery** You can automate daily report delivery to Amazon S3 or similar in **Settings** > **Accounting and Reports**. This will send updated database rows for integration with data lake tools like Snowflake. You can follow this [<u>guide</u>](/using-upmind/reporting/setting-up-export-to-amazon-s3-in-upmind#/) to set up export to Amazon S3 in Upmind. <Frame> <img alt="Settings > Miscellaneous > Accounting" /> </Frame> ### **Real-time data access for enterprise users** Enterprise customers have full API access and can also export raw data into S3 buckets for their own analysis. If they need database-level access or encounter issues, they can contact support for assistance. ## **Key data concepts** * **Relations**: Upmind stores IDs as UUID strings. Relations in tables (for example, `company id` in Invoice Items Export) link to related records in other exports, such as companies. * **Currencies**: Each brand has a fixed `base currency` in which all amounts are stored. Invoices or payments in other currencies include the exchange rate to the base currency. [<u>Multiple brands</u>](/setup-and-configuration/branding/how-to-add-brands#/) can have different base currencies. * **Invoices and Credits**: Cancelled invoices always generate credit notes, ensuring no leakage. The sum of all invoice totals equals payments received + accounts receivable + wallet balance. * **Service Periods**: Contract products always have consistent service date periods. Changing due dates or adding contract products with past or future start dates may include (0) zero-value items. * **Tax**: Upmind’s tax rules are flexible, summing tax per invoice item, with tax reports provided separately. * **Product Codes**: Product codes (`product code 1 and 2`) are defined on individual projects per product for reporting and mapping purposes. (See [<u>How to Create Products</u>](/using-upmind/product-management/how-to-create-products#/)). * **Billings vs. Revenue**: Billings track invoice creation dates, while revenue is apportioned over the service lifetime. Typically, the invoice creation date is used as the billing date. ## **Constructing revenue data** Upmind invoices are divided into `Invoice Items`, with each item representing a row on the invoice containing detailed information. | **Field Name** | **Description** | **Can this change** | **Type** | | ------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------- | -------- | | client id | The unique client ID | No | String | | gateway id | The payment gateway ID | Yes | String | | payment details id | The payment details associated | Yes | String | | company id | The client company invoiced | No | String | | import id | ID from the external system if the invoice is imported | No | String | | id number | Unique Invoice Item ID | No | String | | create datetime | Timestamp of invoice creation | No | Date | | cancellation datetime | Date of invoice cancellation | Yes | Date | | paid datetime | Date when the invoice was paid | Yes | Date | | due date | Invoice due date | No | Date | | next charge date | Next automated charge attempt | Yes | Date | | payment failed attempts | Number of failed payment attempts | Yes | Integer | | payment currency code | Currency used if the invoice is paid | Yes | String | | payment currency exchange rate | The exchange rate is paid in a different currency | Yes | Float | | status | Current invoice status | Yes | String | | invoice type | Whether the invoice is - New Contract - Renewal - Migration (Upgrade or Downgrade) - Credit | No | String | | invoice item description | Description of invoice line | No | String | | product | Product from the catalogue for the invoice | No | String | | product category | Category of the product | No | String | | document currency code | Currency of the invoice | No | String | | currency exchange rate | Exchange rate from base currency to document currency | No | Float | | invoice product id | Invoice product identifier | | String | | from date | Service period start date | Possibly - see note below | Date | | to date | Service period end date | Possibly - see note below | Date | | net selling price | Net selling price | | Float | | quantity | Quantity | | Integer | | billing cycle months | Length of service in months | | Integer | | net amount | Net amount | | Float | | tax amount | Tax amount | | Float | | total amount | Total amount | | Float | | net global discount amount | Net global discount | | Float | | net product discount amount | Net discount on product | | Float | | invoice net amount | Invoice net amount | | Float | | invoice tax amount | Invoice tax amount | | Float | | invoice total amount | Invoice total amount | | Float | | invoice paid amount | Amount paid on the invoice | | Float | | credited invoice | Linked the credited invoice | | String | | credit note invoice | Linked credit note invoice | | String | | contract id | Contract identifier | | String | | contract product id | Contract product identifier | | String | | created at | Record creation date | | Date | | updated at | Last update date | | Date | | deleted at | Deletion date (if applicable) | | Date | | invoice partial credited amount | Partially credited amount | | Float | | product code 1 | Freeform product code 1 for reporting | | String | | product code 2 | Freeform product code 2 for reporting | | String | | main invoice product id | Main product ID on invoice | | String | ## **Service start and end dates** <Note> Service start and end dates may be reversed in credit notes where due dates roll back. </Note> If service dates are missing when they are not created: 1. When start\_date and end\_date are null and billing cycle months = 0, replace with the invoice creation date. 2. When start\_date and end\_date are null and billing cycle months > 0: * In the billings model, use the invoice create date as both start and end dates. * In the revenue model, keep dates null as the product is unprovisioned. ## **Status inclusion** Invoice statuses typically include: * Paid * Unpaid * Allocated (credited against a paid invoice) ## **Currency conversions** | **Exchange Rate Name** | **Description** | | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | Document currency code | The currency shown on the invoice is visible to the customer. | | Payment currency code | Used to determine how to calculate the customer’s payment amount in local currency. | | Brand currency | The currency for which the document currency exchange rate equals 1 is used to convert from local to brand currency. | | Currency exchange rate (invoice items) | The rate in the payments export is used to convert from the brand currency to the document currency. | | Currency exchange rate (payments) | The rate in the payments export shows the local currency of the transaction. | You can report in Upmind’s base currency or convert from brand to document currency, then apply your own spot rate (example, from [openexchangerates.com](http://openexchangerates.com)) to convert to your reporting currency. ### **Examples of currency conversions** Calculating Billings: * Convert the native net or total amount from brand currency back to the document currency using the Currency Exchange Rate. * Convert to the reporting currency at either a spot or constant exchange rate. Calculating Payments (example in USD): * If invoice\_paid\_amount = 0, Payment Amount is zero. * If Document Currency Code equals Payment Currency Code, Reported Payment Amount equals the USD (Total/Net) Amount. If Document Currency Code does not equal Payment Currency Code: * If Payment Currency Exchange Rate = 1: * Use invoice\_paid\_amount * Payment Currency Code to convert to USD using your own exchange rates. * If Payment Currency Exchange Rate ≠ 1 (and not null): * Convert the total amount from brand to document currency using the Currency Exchange Rate. * Multiply this by the Payment Currency Exchange Rate to calculate the local amount paid. * Convert this amount to USD using your own exchange rate. * If Payment Currency Exchange Rate is null: * USD Payment Amount equals USD (Total) Amount. ## **Building revenue** We distinguish two revenue types: * **Commercial revenue**: Provides accurate periodic representation and may adjust past periods if a service is credited or unpaid. * **Accounting revenue**: Does not backdate revenue. Revenue can be calculated by aggregating invoice line data as follows. | **Calculation** | **Definition** | | --------------- | ------------------------------------------------------------------------------------------------------------- | | Service period | The number of days between the invoice start and end dates; if equal, the service period is set to 1 day. | | Day value | The (net/total) amount from the billings table divided by the service period days, representing a daily rate. | | Cumulative days | Total days elapsed in the service period by the end of each month. | ### **Examples of building revenue** **Commercial Revenue** Calculate commercial revenue by multiplying the days in the revenue period by the day value. * **Days in Month** is the number of days within the month falling on or after the service start date and up to the earlier of the service end date or the month-end. * Multiply Days in Month by Day Value for each month in the service period. * Repeat for net and total amounts and for spot and constant exchange rate conversions. **Commercial Deferred Revenue** * Calculate total earned revenue since the beginning of the service period as the product of cumulative days and Day Value. * Subtract this from the total invoice line value to find the remaining liability yet to be delivered. **Accounting Revenue** Accounting revenue does not backdate, allocating no revenue before the invoice create date. **Calculate Day Value** for commercial revenue. To calculate the days multiplied by the Day Value for monthly Accounting Revenue, for each month (date\_period): * If earlier than the invoice date month, accounting revenue is zero. * If equal to the invoice date month, multiply cumulative days by Day Value. * If after the invoice date month (within service period), multiply Days in Month by Day Value. **Accounting Deferred Revenue** * For months on or after the invoice date, calculate earned revenue since the beginning of the service period as cumulative days times Day Value. * Subtract this value from the invoice line total to find the remaining deferred revenue. * For months before the invoice date, deferred revenue is zero. * Repeat for net, total, spot, and constant conversions. ## **Payments** The Payments table aggregates daily data from the **Payments** export, with rows representing each month a customer has a new transaction type, product, and date combination. For `KPIs`, convert the **Payment Amount** using the **Currency Exchange Rate** from the **Payments Export** to get the local transaction amount. Then, multiply this local amount by the local exchange rate associated with the **Currency Code** to convert it to the reporting currency: * For spot rates, use the transaction date from the table. * For constant rates, use today’s date. ## **Tracking customer status** Customer status can be tracked using the invoice items table based on active invoice presence and timing. | **Customer Status** | **Logic** | | ------------------- | ---------------------------------------------------------------------------------------- | | Pending warm | No active invoices and within 30 days of the customer start date. | | Pending cold | No active invoices and more than 30 days since the start date. | | New | Within 60 days of the first active invoice. | | Established | An active invoice exists after the initial 60-day period. | | Inactive | No active invoices, but had active invoices previously. | | Closed | Customer delete date is on or after the latest invoice end date, status lasts 12 months. | ## **Accounting in transition** When importing to Upmind, only invoices generated within Upmind are reported, so historic invoices can be imported as legacy data but serve only as customer metadata. For accounting, it's essential to clear any unpaid historical invoices from old systems. Upmind allows mapping of contract products and clients to external services using both an `import ID` and an `external ID` for reporting integration. # Setting up Export to Amazon S3 in Upmind Source: https://docs.upmind.com/using-upmind/reporting/setting-up-export-to-amazon-s3-in-upmind Configuring automated report exports to Amazon S3 storage Backing up data or exporting reports to external storage is straightforward with Upmind’s Amazon S3 integration. ## Enabling Amazon S3 export 1. Log in to the Upmind Admin Panel. 2. Navigate to **Settings** > **Accounting** under **Miscellaneous**. <Frame> <img alt="Settings > Miscellaneous > Accounting" /> </Frame> 3. Enable **External Storage Provider** and **Schedule Report Generation**. <Frame> <img alt="Enable settings" /> </Frame> 4. Provide your **Amazon S3** credentials: * Storage Access Key ID * Storage Secret Access Token * Default Region * Bucket Name * Storage Hostname (Optional - S3 API endpoint) 5. Schedule report exports by choosing frequency (daily, weekly) and selecting reports to include. 6. **Save** changes. Upmind will automatically upload the specified reports to your Amazon S3 bucket according to your schedule. # Supported Event Types Source: https://docs.upmind.com/using-upmind/reporting/supported-event-types Types of events tracked and reported by Upmind Upmind supports tracking of key e-commerce and user interaction events through two main methods: 1. **Google Tag Manager (GTM)** for client-side tracking: For an easy, no-code setup that reliably tracks user interactions and e-commerce events while avoiding issues with ad blockers. 2. **Measurement Protocol** for server-side tracking: When you require backend event tracking for enhanced data accuracy and integration. It’s important to choose one method to ensure consistent and accurate data collection. This guide explains how to set up GA4 e-commerce tracking using **Google Tag Manager**. For **Measurement Protocol** instructions, refer to [<u>Google's documentation</u>](https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type=firebase). ## **Setting up GA4 e-commerce tracking with Google Tag Manager** You can use Google Tag Manager for client-side tracking to ensure accurate 'purchase' event recording despite ad or cookie blockers and eliminate extra script tags. To know how to set up Google Tag Manager with Upmind, see this [<u>guide</u>](/using-upmind/reporting/how-to-set-up-google-tag-manager-with-upmind#/). Upmind pushes the following recommended GA4 events: * view\_item * purchase * remove\_from\_cart * add\_payment\_info * add\_to\_cart * sign\_up ### **Additional Upmind custom events** Upmind also pushes several first-party events prefixed with *upmind*, which help track specific user actions within the platform: * upmind.logout * [upmind.actor](http://upmind.actor)\_identified * upmind.modal\_open ## **Configuring Google Tag Manager** To send e-commerce transactions to `Google Analytics`, add tags and triggers in `Google Tag Manager` to fire tags for all [<u>recommended e-commerce events</u>](https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtm), enabling data collection for item views, cart additions, checkouts, purchases, and other actions. **Recommended triggers to add to Google Tag Manager** | **Triggers Name** | **Event Type** | | ---------------------- | -------------- | | GA4 add\_payment\_info | Custom Event | | GA4 add\_to\_cart | Custom Event | | GA4 login | Custom Event | | GA4 purchase | Custom Event | | GA4 remove\_from\_cart | Custom Event | | GA4 sign\_up | Custom Event | | GA4 view\_item | Custom Event | | UPM actor\_identified | Custom Event | | UPM logout | Custom Event | | UPM modal\_open | Custom Event | **Recommended tags to add to Google Tag Manager** | **Tags Name** | **Type** | **Firing Triggers** | | ---------------------------------- | --------------------------- | ---------------------- | | GA4 Event 'add\_payment\_info' | Google Analytics: GA4 Event | GA4 add\_payment\_info | | GA4 Event 'add\_to\_cart' | Google Analytics: GA4 Event | GA4 add\_to\_cart | | GA4 Event 'login' | Google Analytics: GA4 Event | GA4 login | | GA4 Event 'purchase' | Google Analytics: GA4 Event | GA4 purchase | | GA4 Event 'sign\_up' | Google Analytics: GA4 Event | GA4 sign\_up | | GA4 Event 'view\_item' | Google Analytics: GA4 Event | GA4 view\_item | | GA4 Event 'remove\_from\_cart' | Google Analytics: GA4 Event | GA4 remove\_from\_cart | | UPM Event 'upm\_actor\_identified' | Google Analytics: GA4 Event | UPM actor\_identified | | UPM Event 'upm\_logout' | Google Analytics: GA4 Event | UPM logout | | UPM Event 'upm\_modal\_open' | Google Analytics: GA4 Event | UPM modal\_open | ## **Setting up e-commerce tracking and creating triggers and tags in Google Tag Manager** ### **Create GA4 property in Google Analytics** 1. Log in to `Google Analytics` with your Google account or create one if needed. 2. Click **Admin**, select **Property**, then go to `Property Details`. <Frame> <img alt="Admin > Property details" /> </Frame> 3. Enter a property name, industry category, reporting time zone, and currency. <Frame> <img alt="Enter details" /> </Frame> 4. Click **Create**. ### **Create triggers in Google Tag Manager** 1. Log in to Google Tag Manager and select the container to connect with Google Analytics. 2. Click **Triggers** in the left menu, then **New**. <Frame> <img alt="Triggers > New" /> </Frame> Set **Trigger Configuration** to **Custom Event** and enter each recommended GA4 event as the **Event Name**. <Frame> <img alt="Custom event" /> </Frame> 4. Click **Save** and repeat to add all recommended triggers, including UPM modal\_open. ### **Create tags in Google Tag Manager** 1. In the left menu, click **Tags**, then **New** to create a tag that sends data to Google Analytics for each trigger. <Frame> <img alt="Tags > New" /> </Frame> 2. Enter your **Google Measurement ID** and add each recommended GA4 event name individually. <Frame> <img alt="Add Google measurement ID" /> </Frame> <Frame> <img alt="Add event name" /> </Frame> 3. Under **More Settings**, check **Send E-commerce Data** and select **Data Layer** as the source to send all e-commerce details automatically. <Frame> <img alt="Configure more settings" /> </Frame> 4. Assign the corresponding trigger for each event, such as **GA4 add\_payment\_info** for the **add\_payment\_info** event. 5. Click **Save** and repeat to add all recommended tags, including the UPM event **upm\_modal\_open**. ### **Review, test, and publish** 1. Review triggers and tags for correct configuration. <Frame> <img alt="Review triggers" /> </Frame> <Frame> <img alt="Review tags" /> </Frame> 2. Use Preview mode to test, then click **Submit** to activate the tag. <Frame> <img alt="Submit" /> </Frame> 3. Add a version name and description (e.g., GA4 Purchase Event Setup), then click **Publish**. ### **Add credentials to Upmind** You can add [<u>Google Tag Manager</u>](/using-upmind/reporting/how-to-set-up-google-tag-manager-with-upmind#/) and [<u>Google Analytics</u>](/using-upmind/reporting/how-to-set-up-google-analytics-with-upmind#/) credentials to Upmind: 1. Log in to your Upmind account. 2. Go to **Settings** > **Analytics and Tracking**. 3. Enter your **GTM Container ID**, **Google Measurement ID**, and **API Secret**. <Frame> <img alt="Add details" /> </Frame> Verify tracking by making test purchases and monitoring Google Analytics event reports. # What is Churn Rate? Source: https://docs.upmind.com/using-upmind/reporting/what-is-churn-rate The measure of customer retention and its effect on business Churn Rate is the percentage of customers lost over a specified time. It measures customer retention and business health. ## Calculating Churn Rate If 100 customers start the year and 50 remain at the end, ChurnRate = (100−50)/100 = 50% Churn rate can be calculated for any period but is usually annualised. Multiply monthly churn by 12 or daily churn by 365 to estimate yearly rates. Longer periods and more data generally increase accuracy. ## Variability Churn varies across customer segments, products, and acquisition sources. Upmind provides both short-term and long-term churn rates to help identify retention trends. ## Why Churn Rate matters Churn rate helps determine customer [<u>Lifetime Revenue (LTR) and Lifetime Value (LTV)</u>](/using-upmind/reporting/what-is-customer-lifetime-value-ltv#/), key metrics for understanding each customer's value to your business. It also highlights issues, such as if churn rises, you can investigate the cause. # What is Customer Lifetime Value (LTV) Source: https://docs.upmind.com/using-upmind/reporting/what-is-customer-lifetime-value-ltv The importance of Customer Lifetime Value, a key profit metric ## What is Customer Lifetime Value (LTV) **Customer Lifetime Value (LTV)** measures the total revenue a customer generates during their relationship with your business. It helps businesses understand the long-term value of clients beyond just individual transactions. Upmind calculates **Customer Lifetime Revenue (LTR)**, showing the total revenue from a customer. You can use this as a basis to estimate your LTV by accounting for costs like service delivery or applying your gross margin. ## LTR vs LTV * **LTR (Customer Lifetime Revenue)**: Total revenue a customer generates during their lifetime. * **LTV (Customer Lifetime Value)**: Adjusts LTR by subtracting the cost of service delivery or applying gross margin. Upmind emphasises LTR in insights and reporting, providing clear figures for revenue attributed to each customer. ## Importance of LTV/LTR Understanding LTV helps set realistic customer acquisition budgets and guides strategic marketing investments. It reveals how much revenue can be expected from customers over time, supporting smarter growth decisions. **Example**: If a customer’s LTV is $500 and acquisition cost is $200, you earn \$300 per customer on average. ## Where to find LTR in Upmind You can view `Lifetime Revenue` in the **Insights and Reports** dashboard, where it’s calculated by aggregating customer transaction history over time, factoring in subscriptions, renewals, and payments. ## How to calculate your own LTV Upmind provides key metrics like customer revenue and churn data, which you can combine with your own cost or margin inputs to estimate LTV. Rather than calculations within the platform, you adjust LTR figures externally based on your business specifics, such as gross margin rates. * : Measures customers lost over a period. You can also calculate churn monthly or weekly and multiply accordingly. * **Average Revenue Per User (ARPU)**: This is the average yearly spend per customer, calculated by dividing total cash received by the number of customers, including discounts rather than using ARR. ## Using gross margin for LTV Since Upmind doesn’t track your expenses, incorporating a typical gross margin (often around 40%) is recommended to convert LTR to LTV. Work with your finance team if needed to refine this figure for accuracy. # About Upmind's Service Desk Features Source: https://docs.upmind.com/using-upmind/service-desk/about-upminds-service-desk-features Learn about Upmind's service desk features designed for e-commerce customer support tools and ticket system so you can manage customers efficiently. Check Now! ## Overview We imagine Upmind will be the dashboard you and your staff work from every day. That's why we want to make the customer support interface as natural as possible. Specifically, we have two key aims. 1. Resolve a typical support request in as few clicks as possible, and, ideally, without navigating away from the ticket page. 2. Display the current support state as easily as possible. We understand that customer sales & support are deeply integrated with products & billing. These things should not exist in silos. In our experience, most of the existing service desks are standalone. Some do bring in key bits of information from the billing or product system. Others are vastly complicated and were clearly designed by people with little support experience. On the other side, e-commerce platforms rarely contain any customer support tools. Upmind’s current Service Desk implementation, though basic, is extremely functional. There are also a number of roadmapped features which are relatively imminent. Here's an overview of the current state, and our future development plans. You also can watch Upmind YouTube Video [here](https://www.youtube.com/watch?v=bvc3vqtLXtk). ## Current Features 1. Support Tickets can be created by [store staff](/using-upmind/service-desk/how-to-create-a-ticket) or [clients](/using-upmind/service-desk/how-do-my-clients-create-tickets). Tickets can be assigned to a department and display status. The default status is **Open** and the default department is **General**. If your brand has only one Ticket Department, Upmind does not give the client a department choice when they submit a ticket. 2. Store staff and clients can link a ticket to a specific contract product or invoice. This makes support work efficient for staff. Contract product provisioning and billing information, for instance, are available in the ticket view for staff to see. 3. To facilitate collaboration, tickets can include multiple clients. For example, a staff person at the store opens a ticket for a contract product and invites a store account holder (perhaps a client or sales lead) to be a [delegate](/using-upmind/service-desk/how-to-create-ticket-delegates). That account holder, as a delegate, can see the Support Ticket and make replies. Clients and staff can associate (or disassociate) others with a ticket by adding or removing their email addresses. 4. You can create a [custom Ticket Department](/using-upmind/service-desk/how-to-customise-the-ticket-and-support-system) (e.g. Sales or Billing) and custom Ticket Status (e.g. In Progress or Escalated). You can also decide if staff and clients can create tickets in a custom status, or just staff. 5. Email Piping allows you to use any external email for your support system. You can configure specific emails to create Support Tickets in a specific Department, or even assign tickets to specific staff members. [Read more about setting up Email Piping](/setup-and-configuration/email-configuring-and-sending/how-does-email-work-in-upmind#incoming-email-piping). 6. Tickets can be [owned](/using-upmind/service-desk/how-to-customise-the-ticket-and-support-system) by a staff member. This allows a staff member to ‘take’ a ticket and indicate to others that they are working on it. Replying to an unowned ticket automatically makes you the owner. Tickets can only be owned by one staff member at a time, but ownership can be easily transferred. 7. Tickets can be [assigned](/using-upmind/service-desk/how-to-open-and-assign-client-tickets) to as many staff members as wished. If you are assigned a ticket, it is highlighted in your My Assigned Tickets view. Ticket assignees can be changed at any time. 8. Attachments can be added to tickets by both Staff and Clients. All attachments are scanned by Upmind for viruses. The list of allowed attachments can be configured under `Settings-> Security`. 9. Tickets not relating to a client are assigned to leads. They will be assigned to a client should that lead turn into a client. 10. Tickets can have private notes which are only visible to staff members. 11. Messages can be edited and deleted. 12. You can add signatures to the ticket message. ## Support View To open the Tickets support page, click Support on the left-hand sidebar in Upmind. The support page looks like this: ## Dashboard View <Frame> <img alt="Service Desk Dashboard View" /> </Frame> ## Imminent Roadmap * Macros to define automated actions and update the status after a certain time period or when a ticket receives a reply * Interaction logging * Phone and support pin * Third-party service desk integrations (Kayako, Zendesk, SupportPal, etc) * Lockdown to supported customer Imagined for Future * Live chat * Knowledge base support * Predefined replies * Ticket signatures and headers # Bulk Support Ticket Updates Source: https://docs.upmind.com/using-upmind/service-desk/bulk-support-ticket-updates Manage multiple client tickets at once without going one by one. The bulk ticket update feature in Upmind's Service Desk lets you act on several tickets for a specific client in one go. Instead of opening and closing tickets individually, you can update their status, reassign staff, add notes, or mark tickets as spam across a client's full ticket list at once. ## What you can do in bulk From the client's ticket section, you can apply the following actions to multiple tickets at the same time: * Change ticket status (e.g., Open, Closed, In Progress). * Lock and unlock the ticket. * Mark tickets as spam. * Change the department. * Assign or unassign a staff member. * Add a note or message. ## How to bulk update client tickets 1. Go to the **Service Desk** from your Upmind dashboard. <Frame> <img alt="Dashboard > Support" /> </Frame> 2. Open any ticket belonging to the client whose tickets you want to manage. 3. Click the **client profile** within the ticket view to open their profile panel. <Frame> <img alt="Choose client profile" /> </Frame> 4. Navigate to the **Ticket** section within the client profile. 5. Click the **three-dot menu** (⋯) in the top right of the ticket section. <Frame> <img alt="Ticket section" /> </Frame> 6. Select **Create Bulk Operation** from the menu. 7. You can choose to do the bulk action on all tickets. 8. Or you can also select the tickets you want to update by checking them off. <Frame> <img alt="Choose bulk action" /> </Frame> <Frame> <img alt="Select individual tickets" /> </Frame> 9. Confirm to apply the changes. <Note> This feature works at the **client level**, not across all tickets in the Service Desk globally. The bulk actions apply only to tickets belonging to the specific client you are viewing. This makes it particularly useful for situations like spam tickets from a single client, where you can select all relevant tickets and close or mark them at once rather than handling each one separately. </Note> ### Close all tickets for a client If you need to close every ticket status (open, in progress, and awaiting response) for a specific client at once, there is a dedicated button for this at the client level. 1. Go to the client's profile. 2. Open the **Tickets** tab. 3. Click the **Close All** button to close all open tickets for that client in one action. <Frame> <img alt="Clients > Tickets > Close all tickets" /> </Frame> <Note> This is separate from the bulk update feature and only handles closing. For other actions like reassigning, changing status, or marking as spam, use the bulk update flow described above. </Note> # How Do My Clients Create Tickets Source: https://docs.upmind.com/using-upmind/service-desk/how-do-my-clients-create-tickets Learn how my clients can create support tickets for your e-commerce store. Create info when you onboard new clients. Setup for your clients. Check Now! This article shows store owners and staff how account holders can create a ticket or add delegates to a support ticket. Store owners and staff can use this information as part of their client onboarding process. * An account holder is a client or sales lead who creates an account on your store. <Warning> Clients and leads must [create a store account](/getting-started/how-to-create-an-upmind-account) before they can create a support ticket. </Warning> ## Creating a support ticket 1. Log in to the store account. 2. Click the Support menu tab. <Frame> <img alt="a-1a.png" /> </Frame> 3. Click the Open new ticket button. 4. Add a subject. 5. Click the field and select a department. (optional) <Warning> The client sees department options only if you [create ticket departments](/using-upmind/service-desk/how-to-customise-the-ticket-and-support-system) for your store. </Warning> <Frame> <img alt="a-2a.png" /> </Frame> 6. Enter a message. 7. Add an attachment. (optional) 8. Click the Create ticket button. <Frame> <img alt="a-3.png" /> </Frame> * The ticket displays on the screen. <Frame> <img alt="a-4a.png" /> </Frame> ## Editing a ticket subject 1. Click the three-bar icon. 2. Click Edit subject. <Frame> <img alt="a-5a.png" /> </Frame> 3. Change the subject. 4. Click Save. <Frame> <img alt="a-6.png" /> </Frame> ## Editing a ticket message 1. Scroll down to the ticket text. 2. Click the three-dot icon. 3. Click Edit. 4. Change the message. 5. Click Save. <Frame> <img alt="d-2a.png" /> </Frame> ## Closing a ticket The final status of a ticket is called Closed. That means no further communication can take place on this message. Account holders can close a ticket anytime. There are two ways to close a ticket. 1. Click the Close ticket button. 2. Click the three-bar icon and then click Close ticket now. <Frame> <img alt="b-1a.png" /> </Frame> ## Viewing tickets The account holder's store dashboard shows a list of active tickets and their current status. The list does not display Closed tickets. 1. To see the discussion thread inside a ticket, click a name on the dashboard list. 2. To see a list of all Active and Closed tickets, click View all. <Frame> <img alt="b-2.png" /> </Frame> 3. Click a menu tab to see Active or Closed tickets. <Frame> <img alt="b-4.png" /> </Frame> ## Adding delegates to a ticket Clients and leads (who have a store account) can invite other account holders to join the ticket as a delegate. A delegate can read posted messages in a ticket thread and submit messages, too. 1. On the account dashboard, click an active ticket. <Frame> <img alt="b-5.png" /> </Frame> 2. Click the three-line icon. 3. Select Delegate access on the drop-down menu. <Frame> <img alt="b-6a.png" /> </Frame> 4. On the Ticket delegate access panel, click Invite delegate. 5. Enter the person's email address in the popup window. 6. Click Send invite. <Frame> <img alt="b-7.png" /> </Frame> * Upmind sends the person an email message with an invite and displays their name with the Invited status. <Frame> <img alt="b-8.png" /> </Frame> After the account holder clicks the Accept link, the delegate status changes from Invited to Accepted. <Frame> <img alt="c-1a.png" /> </Frame> ## Removing delegate access To remove delegate access to a ticket: 1. Click the three-line icon. 2. Select Delegate access on the drop-down menu. 3. Click the Revoke access icon. <Frame> <img alt="b-7 - Copy.png" /> </Frame> <Note> Upmind immediately removes delegate access to a ticket after the account holder clicks the Revoke icon. </Note> ## The delegate experience The delegate's dashboard shows active tickets including tickets with delegate access. * Tickets with delegate access have a share icon. <Frame> <img alt="c-2a.png" /> </Frame> 1. To read a thread, click the active ticket tile. 2. To add a message, enter text and click Post reply. <Frame> <img alt="c-3a.png" /> </Frame> A new delegate post changes the ticket status on the store's Support dashboard to Client replied. <Frame> <img alt="c-4.png" /> </Frame> The Client replied status appears on the account holder's dashboard, too. <Frame> <img alt="d-1a.png" /> </Frame> # How to Add Signatures on Ticket Messages Source: https://docs.upmind.com/using-upmind/service-desk/how-to-add-signatures-on-ticket-messages You can set up a signature that will automatically appear in your ticket replies, so you don’t need to type it each time. There are two ways to do this: from Preferences or from the Settings button inside a ticket message. ## Option 1: Add a Signature from Preferences 1. Go to Support. <img alt="" /> 2. Click Preferences. <img alt="" /> 3. Under Message Composition, add your signature text. <img alt="" /> 4. Click Save. Your signature will now appear automatically in all your ticket replies. ## Option 2: Add or Edit a Signature from the Settings Button in a Ticket You can also set or update your signature directly while working inside a ticket. 1. Open any ticket. 2. Click the Settings (gear icon) in the message editor. 3. Enter or update your signature text. 4. Click Save. <img alt="" /> Once added, your signature will appear automatically in your ticket replies (see screenshot example). <img alt="" /> # How to Create a Ticket Source: https://docs.upmind.com/using-upmind/service-desk/how-to-create-a-ticket Admins and other users can manage tickets Admins and other users can create tickets on behalf of clients. Tickets create an audit trail of support and help staff follow up on client questions or problems. ## Creating a ticket 1. Open the Upmind dashboard. 2. Click Support on the left menu. 3. Click Create new ticket. <Frame> <img alt="a-1a.png" /> </Frame> 4. Scroll through the list and select a client on the side panel. 5. Use the Search tool to locate a client name. (optional) <Frame> <img alt="a-2.png" /> </Frame> 6. Fill the fields. 7. Attach files. (optional) 8. Click Create ticket. <Frame> <img alt="a-3.png" /> </Frame> ## Ticket communication After a user creates a ticket, Upmind generates two actions. 1. The client receives an email notification about the open ticket. The client can click a link to read the ticket. <Frame> <img alt="a-4.png" /> </Frame> 2. Upmind opens a ticket on the Support page. <Frame> <img alt="a-5a.png" /> </Frame> ## Editing the ticket subject line 1. Open a ticket. 2. Click the three-bar icon. 3. Click Edit subject. 4. Change the text. 5. Click Save. <Frame> <img alt="b-5.png" /> </Frame> ## Editing the ticket message 1. Scroll down to the ticket text. 2. Click the three-dot icon. 3. Click Edit. 4. Change the message. 5. Click Save. <Frame> <img alt="b-6.png" /> </Frame> ## Assigning a ticket By default, Upmind assigns the ticket to the user who creates the ticket. You can change the assignment. 1. Click Support on the left menu. 2. Scroll through the list and click the ticket you want to edit. 3. On the right side of the screen, click the three-dot icon. 4. Click Manage participants. <Frame> <img alt="b-2a.png" /> </Frame> 5. Click the X icon to remove an assigned user. 6. Click the Add button to assign a user to the ticket. 7. Click Save. <Frame> <img alt="b-3.png" /> </Frame> * Upmind updates the name of the assigned user. <Frame> <img alt="b-4.png" /> </Frame> # How to Create Support Department Source: https://docs.upmind.com/using-upmind/service-desk/how-to-create-support-department Create unique departments You can create additional departments for the ticket system (e.g. billing, refunds, technical support). Each department can have a separate Upmind email account and be enabled/disabled for clients. ## **Reviewing the Default Options** Each Upmind store comes with a working public ticket system that your clients can use right away. * The ticket system has one department (called General). * If you're fine with the default settings, no further action is required. <Frame> <img alt="1035" /> </Frame> ## **Creating Support Departments** 1. Go to Settings 2. Find the Support Department Tile 3. Then, click Create Department. 4. Fill in the Name; the code will be automatically filled once you enter the name. Then, click Create. <Frame> <img alt="Add a new department" /> </Frame> 5. You need to toggle the button to enable the department. <Frame> <img alt="A new department has added" /> </Frame> 6. When you toggle the button, you will see the option to grant staff access when enabling support departments. <Frame> <img alt="Grant staff access" /> </Frame> ## **Editing Support Departments** If you want to Edit the department, you can follow: 1. Click the three buttons, then click edit. <Frame> <img alt="Edit Departments" /> </Frame> 2. On the next screen, you can set the Brand Department Settings. You also can manage the [<u>destination mailbox</u>](/setup-and-configuration/email-configuring-and-sending/how-does-email-work-in-upmind) for automated email piping based on the department. <Frame> <img alt="Edit departments and add destination mailbox" /> </Frame> ## **Managing your Department by Brand** <Frame> <img alt="Brand Department Settings" /> </Frame> Within the Brand Department Settings, there are options you can select by clicking: * By default, all the tickets will be coming to General, so once you create another department and decide to make it the default, you can tick the box “Make default department”. * Ensure that you tick the box to “Allow the client to select this department when opening the ticket”. It will be shown in your client area. ## **Adding a Department Email Address** On the same page, create a separate Upmind email address for each department. 1. Enter the department name. 2. Click Save. <Warning> Create an action to send a notification when this Upmind department receives an email message. Learn [<u>Notifications</u>](/setup-and-configuration/notifications/notifications-overview) here. </Warning> <Frame> <img alt="1495" /> </Frame> ## **Creating a Forwarded Message Mailbox** If you own your own domain, you can forward email messages to an Upmind department email. Here's an example. You have a domain called [bigcookies.com](http://bigcookies.com). You want to forward messages sent to [<u>billing@bigcookies.com</u>](mailto:billing@bigcookies.com) to an Upmind department email account. 1. Open your hosting account dashboard (e.g. cPanel). 2. Go to the forwarding section. 3. Create a forwarder to send [<u>billing@bigcookies.com</u>](mailto:billing@bigcookies.com) messages to [<u>billing@4yi9hcryuzb9.upmind.app</u>](mailto:billing@4yi9hcryuzb9.upmind.app). <Note> Email forwarding may not work if the Upmind email address uses dashes or hyphens. Because the Upmind email address is based on your Upmind organisation name, we suggest that you create an organisation name without dashes or hyphens. </Note> ## **What do clients see in the client area?** If your client wants to [<u>create a ticket</u>](/using-upmind/service-desk/how-do-my-clients-create-tickets), they can select which department they refer to (it could be General, Billing, or Support based on your department created). 1. Log in to the client area 2. Go to Support. 3. Click Open new ticket <Frame> <img alt="Create a new ticket on the client area" /> </Frame> 4. Then, the client can select which department they refer to <Frame> <img alt="Select a department in the client area" /> </Frame> # How to Create Ticket Delegates Source: https://docs.upmind.com/using-upmind/service-desk/how-to-create-ticket-delegates Share messages with a group The [Delegate](/using-upmind/service-desk/how-to-create-ticket-delegates) tool works a bit like a social media post. It's a place where your store customers and leads can answer a question, comment on a topic, and read what others post. Store owners and staff use delegates to build a community, stay in contact with the audience, and initiate sales touches without hard selling or a clever marketing campaign. ## Before you start * You add delegates to an existing ticket. Any active ticket created by a customer, Admin or store staff can have a delegate. * You can add any delegate to a ticket. * Only admins and store staff can add delegates to a ticket. Store customers can't add delegates. * Delegates are people who have a store account. ## Adding delegates In this scenario, the store admin wants to ask some customers about the coffee beans they purchased recently. It was a special blend offered for a limited time. The admin has a list of customers who purchased the special beans online. The admin uses the delegate tool to survey customer reactions to the special blend of coffee beans. ## Creating a ticket The first step is to [create a ticket](/using-upmind/service-desk/how-to-create-ticket-delegates) for a single customer. The admin creates a ticket with the survey questions. <Frame> <img alt="a-1.png" /> </Frame> ## Adding delegates The next step is to add delegates to the ticket. 1. Hover the client ticket tile. 2. Click the three-dot icon. 3. Select Manage delegates. <Frame> <img alt="a-2.png" /> </Frame> 4. On the Ticket delegate access panel, click Invite delegate. 5. Enter the person's email address in the popup window. 6. Click Send invite. <Frame> <img alt="a-3.png" /> </Frame> Upmind sends the person an email message with an invite and displays their name with the Invited status. <Frame> <img alt="a-5.png" /> </Frame> ## Client experience Upmind sends the client an email message with an accept link. * No further action can be taken until the client clicks that link. <Frame> <img alt="a-6a.png" /> </Frame> If the client accepts the invitation to be a delegate, an active ticket displays on their dashboard. * The ticket has a share icon. <Frame> <img alt="b-1.png" /> </Frame> The client clicks the ticket name. The ticket opens on a new page. * The client can read all of the messages in the ticket thread. * The client can enter a response and click Post to publish a message on the thread. <Note> Every delegate with access to this ticket can read the posts in the thread. </Note> <Frame> <img alt="b-2.png" /> </Frame> ## Store owner experience After the client accepts the link, the delegate status changes from Invited to Accepted. <Frame> <img alt="a-7.png" /> </Frame> If a client (delegate) posts a message to a ticket thread, Upmind changes the status of the ticket to Client replied. <Frame> <img alt="b-3a.png" /> </Frame> Click the ticket to read the client post in the ticket thread. <Frame> <img alt="b-4.png" /> </Frame> ## Removing a delegate To prevent a client from posting in a ticket thread, revoke their delegate status. 1. Hover the client ticket tile. 2. Click the three-dot icon. 3. Select Manage delegates. <Frame> <img alt="b-5a.png" /> </Frame> 4. Click the Revoke access icon. * Upmind removes the client from the delegate list. <Frame> <img alt="b-6.png" /> </Frame> <Note> Upmind immediately removes delegate access to a ticket after the admin or staff user clicks the Revoke icon. </Note> # How to Customise the Ticket & Support System Source: https://docs.upmind.com/using-upmind/service-desk/how-to-customise-the-ticket-and-support-system Create unique departments, add message forwarding, and more This article shows you how to configure your store's ticketing system. You also learn how to generate a ticket when a client sends a message to your domain's email account. <Warning> Not sure how to find clients' tickets? See [How to Open and Assign Client Tickets](/using-upmind/service-desk/how-to-open-and-assign-client-tickets). </Warning> ## Opening the Tickets & Support page 1. Log in to Upmind. 2. Click the Settings button. 3. Click the Service desk tile. ## Setting Ticket Reference Customise the prefix that displays with every ticket number. The default setting is TICKET. To change the default: 1. Enter a name in the field. 2. Click Save. <Frame> <img alt="b-2.png" /> </Frame> ## Customising Ticket System Settings Customise the default settings for three fields. (optional) **CLOSE TICKET AFTER DAYS** * Automatically close a ticket after X number of days of inactivity. **PRE-CLOSE NOTIFICATION AFTER DAYS** * Automatically notify a party that a ticket will be closed after X number of days of inactivity. **DEFAULT TICKET PRIORITY** * Automatically set ticket priority to this level if the party does not choose a priority level. <Frame> <img alt="b-3.png" /> </Frame> ## Enabling Support PIN The Client Support PIN is a unique code used to securely verify your client's identity when they contact customer support. [You can enable or disable](/using-upmind/service-desk/how-to-enable-a-support-pin) this feature under Settings -> Service Desk. You can also set the expiration interval, which will allow the system to automatically generate a new PIN once the current one expires. <Frame> <img alt="b-3.png" /> </Frame> # How to Enable a Support PIN Source: https://docs.upmind.com/using-upmind/service-desk/how-to-enable-a-support-pin <iframe /> ## Enabling the Support PIN In a world of spoofing, phishing, spam, and bots, it makes sense to add a layer of security to your support system. That's why we brought a support PIN to Upmind. With a few clicks, you can protect your clients, reduce time spent on dead-end support requests, and allocate scarce resources to real clients who need help. This article explains how to enable and use this feature. ## Enabling the support PIN 1. Log in to your admin account. 2. Click Settings. 3. On the Settings page, click the **Service desk** tile. 4. Scroll down the Service desk page to the **Support** heading. 5. Switch on the **USE OF SUPPORT PIN** toggle. 6. Enter a number in the interval field (in hours) to auto-generate a new PIN. 7. Click Save. <img alt="" /> ### UI changes After you click Save, Upmind implements two UI changes. On the admin side, Upmind adds a **Verify pin** tab to the top menu bar. Click this tab when you want to verify a client PIN. <img alt="" /> On the client side, Upmind adds a support PIN box. The client clicks the **Support** menu tab to display the PIN. <img alt="" /> ## Verifying a PIN There are many ways to verify a client with the support PIN. You could use it during a live chat, when handling a support ticket, or even during a live phone call. The use case below demonstrates the communication flow in response to a client ticket. 1. The admin (or user) opens a ticket and asks the client to send the PIN. <img alt="" /> 2. The client locates the number and sends the PIN in a response post. 3. The admin copies the number, clicks the **Verify Pin** tab, and pastes the six digits into the box. If valid, Upmind displays the client's name and email address to verify the account holder. The admin clicks the client's name to open the **Client overview** page, which displays the client's history (e.g. purchases, tickets, etc.). <img alt="" /> ### Failed verification If the PIN verification fails, Upmind displays a **No results** window. At this point, you could ask the client to re-generate the PIN and try again. One more failure likely means the client is not an account holder and does not require support resources. <img alt="" /> # How to Lock a Ticket Source: https://docs.upmind.com/using-upmind/service-desk/how-to-lock-a-ticket To prevent your clients from closing unresolved tickets, you can lock the ticket through the admin area. 1. Go to Support page. 2. Select the ticket you want to lock. 3. Click the three-line icon and select **Lock ticket**. <img alt="" /> 4. The locked ticket icon will appear on the support page. <Frame> <img alt="Support page in admin area." /> </Frame> Your client will also know if the ticket is locked, as it will be displayed in the client area as well. <Frame> <img alt="Admin area" /> </Frame> # How to Manage Spam Tickets Source: https://docs.upmind.com/using-upmind/service-desk/how-to-manage-spam-tickets In Upmind, we have enhanced our ticket management system to include a "Mark as Spam" feature, allowing you to easily manage spam tickets by marking and closing them. You can also set up spam email rules and filters to simplify spam ticket handling. In this guide, we will help you navigate these features for a more efficient and organised ticket management process. To understand our service desk feature, please take a look at our service desk overview [here](/using-upmind/service-desk/about-upminds-service-desk-features). ## Mark as Spam Ticket/Email If you suspect you've received a spam ticket, you can easily mark it as spam. 1. Go to your support section. 2. Click on the ticket/email that contains spam information. 3. You have two options: either "**Mark as Spam**" or "**Mark as Spam & Close**." <Frame> <img alt="a-1a.png" /> </Frame> Once you mark a ticket or email as spam, a badge will appear beside the ticket number. If you later determine that the ticket is not spam, you can change its status to "**Mark as Not Spam**". <Frame> <img alt="a-1a.png" /> </Frame> ## Filter Spam Ticket / Email For filtering spam tickets, we provide three options: * Spam: Filters only spam tickets. * Not Spam: Filters tickets without a spam badge. * Everything: Shows all tickets, both with and without a spam badge <Frame> <img alt="a-1a.png" /> </Frame> ## Create Email Spam Rules These rules are applied to incoming emails. If an email matches any of these specified rules, it will be automatically identified and flagged as spam, improving your system's efficiency and security. **Currently applicable only for pipe emails.** ## Create a New Spam Rule 1. Click "**Create Email Spam Rule**". <Frame> <img alt="a-1a.png" /> </Frame> 2. Adjust your spam rules to fit your preferences easily. 3. You can use different conditions such as: * Client: Block emails from specific clients. When you block a client, all email addresses associated with that client will be flagged as spam. * Lead: Block emails from specific leads. Similar to clients, blocking a lead will flag all associated email addresses as spam. * Subject: Block emails based on keywords in the subject line. Add keywords or phrases that, if present in the subject line, will flag the email as spam. * Email Address: Block specific email addresses. Enter the email addresses you want to block 4. Click create. <Frame> <img alt="a-1a.png" /> </Frame> ## Manage Your Spam Email Rules 1. Navigate to Setting > Spam Condition 2. Here you can view, edit, or delete your existing spam rules. <Frame> <img alt="a-1a.png" /> </Frame> # How to Open and Assign Client Tickets Source: https://docs.upmind.com/using-upmind/service-desk/how-to-open-and-assign-client-tickets Read, assign, and respond to client tickets Support tickets help you connect with your clients. Answer questions, resolve problems, build trust, and retain customers. The Upmind ticket system is easy to learn and even easier to use. ## Opening the ticket page From the main dashboard, there are two ways to open the tickets page. 1. Click the Active tickets tile. Or <Frame> <img alt="d-1.png" /> </Frame> 2. Click Support on the left menu. <Frame> <img alt="a-1a.png" /> </Frame> * The Tickets page displays. <Frame> <img alt="a-2.png" /> </Frame> ## Sorting tickets On the left menu, Upmind gives you five filters to sort tickets: * label * status * department * open time * spam filter <Frame> <img alt="a-3.png" /> </Frame> ### Opening a ticket The centre window displays a list of tickets and summary information. The page also provides display options. To review a ticket in detail, click a ticket name. <Frame> <img alt="a-5a.png" /> </Frame> ## Assigning a ticket Every ticket needs a participant (the person responsible for taking action on a ticket). An admin user can become the participant by clicking the **Take ticket** button. <Frame> <img alt="a-6a.png" /> </Frame> Admin users can also assign a ticket to another user. 1. Click the three-dot button and select Manage participants. <Frame> <img alt="a-7.png" /> </Frame> 2. On the list of Users, locate the participant and click the Add button. 3. Click Save. <Frame> <img alt="a-8.png" /> </Frame> ## Removing an assigned participant To remove a participant from a ticket: 1. Click the ticket in the centre window. 2. Click the three-dot icon. 3. Click Unassign user. <Frame> <img alt="a-9a.png" /> </Frame> ## Reading a ticket The ticket thread starts in the bottom right corner of the screen. Click the Attachment or Notes menu tabs to view additional information (if available). <Frame> <img alt="c-1.png" /> </Frame> ## Posting a reply 1. Write a reply in the blank field in the ticket thread. 2. Click Post reply to send a response to the client and add the message to the ticket thread. 3. Click Attach files to attach images or documents. (optional) <Frame> <img alt="c-2.png" /> </Frame> * Upmind sends the reply to the client. <Frame> <img alt="c-3.png" /> </Frame> ## Adding a note Users can add notes to a ticket thread. The client can read these internal comments. 1. Enter text in the field. 2. Check the Internal note box. 3. Click the Add note button. <Frame> <img alt="c-4.png" /> </Frame> ## Editing a note 1. Click the three-dot icon. 2. Click Edit. 3. Change the text. 4. Click Save. <Frame> <img alt="c-6.png" /> </Frame> ## Changing ticket status Participants can manually change the status of a ticket. 1. Go to the top of the screen. 2. Click the status button. 3. Select the correct status on the drop-down menu. <Frame> <img alt="c-5.png" /> </Frame> # Managing Ticket Flows and Optimisations Source: https://docs.upmind.com/using-upmind/service-desk/managing-ticket-flows-and-optimizations In this guide, we’ll walk you through how to manage ticket flows from both the Staff User and Admin perspectives. This includes how staff users handle tickets and how admins configure ticket assignment settings. ## Assigning Departments to Staff Users You can assign specific departments to your staff users. If a staff user is not assigned to a department, they won’t be able to see tickets from that department. To assign a department to a staff user, follow these steps: 1. Navigate to `Settings` → `Staff Users`. <img alt="" /> 2. Select a staff user and click `Manage user`. <img alt="" /> 3. In the new screen, go to the Overview tab, scroll down to `User Permissions`, and assign them to specific groups or departments. * **Permission Group:** These are groups you create under `Settings → Staff Group`, and they control what each staff user can access. [\[Refer to our guide here for further details\]](/setup-and-configuration/staff-users/how-to-create-user-groups#creating-a-user-group) * **Ticket Department:** These are the departments you’ve set up under `Settings → Support Departments`. [Check the guide here to create a support department.](/using-upmind/service-desk/how-to-create-support-department) This option allows you to manage and assign departments to staff users, ensuring they only handle tickets from their designated departments. <Frame> <img alt="This is where you manage permission groups and assign ticket departments to staff users" /> </Frame> ## How to Remove "List All Tickets" for Staff This feature prevents staff from picking and choosing tickets themselves. 1. Go to Settings. 2. Click on Staff Groups > then click Edit. <img alt="" /> 3. Uncheck the List Tickets and Unassigned Tickets options. <img alt="" /> Once these options are unchecked, in the Support Menu, staff will no longer see the **All Tickets** and **Unassigned Tickets** sections. They will only see tickets that are assigned to them. <img alt="" /> Additionally, staff will have the Take Ticket option (explained in the next section). ## How Staff Take Unassigned Tickets In the Support menu, there is a feature called **Take Ticket**. This allows staff to pick up unassigned tickets from their assigned department. **How It Works:** 1. Once a staff is assigned to a department, they can use the Take Ticket button. 2. Clicking Take Ticket will automatically assign them the first available unassigned ticket in their department. **Example Scenario** 1. **Before Clicking "Take Ticket"** * The staff is assigned to the Support Department. * There are unassigned tickets available. <Frame> <img alt="Ticket list before clicking Take Ticket" /> </Frame> 2. **After Clicking "Take Ticket"** * The system assigns the staff the first unassigned ticket in their department. * They can now proceed to handle the ticket. <Frame> <img alt="Ticket assigned after clicking Take Ticket" /> </Frame> ## As an Admin: How to View Staff Ticket Admins can see each staff’s **assigned, watched, and closed tickets** under: `Settings → Staff Users`. This allows admins to track workload, monitor ticket progress, and ensure fair ticket distribution. ### How to Check a Staff User’s Tickets: 1. Go to `Settings` → `Staff Users`. 2. Select a staff user and click `Manage User`. 3. In the Ticket tab, you’ll find: * **Assigned tickets – Tickets assigned to them.** * **Watched tickets – Tickets they are involved in.** * **Closed tickets – Tickets they’ve closed** <Frame> <img alt="All tickets listed in the Assigned Tickets section" /> </Frame> <Frame> <img alt="All tickets listed in the Watched Tickets section" /> </Frame> <Frame> <img alt="All tickets are listed in the Closed Tickets section" /> </Frame> In addition to ticket management, we also offer features for ticket scheduling and locking tickets. For more details, check the guides below: * [How to Schedule a Ticket](/using-upmind/service-desk/ticket-scheduling) * [How to Lock a Ticket](/using-upmind/service-desk/how-to-lock-a-ticket) # Ticket Scheduling Source: https://docs.upmind.com/using-upmind/service-desk/ticket-scheduling Both you and your clients can schedule tickets with Upmind. When a ticket is scheduled in the admin area, it will automatically open on your support page at the selected date and time. ## How to Schedule a Ticket in Admin Area To schedule a ticket in admin area, follow these steps: 1. Go to Support page. 2. Select the ticket you want to schedule. 3. Click the three-line icon and select **Schedule for later**. <img alt="" /> 4. Choose your preferred date and time, then click **Select date**. <img alt="" /> 5. Then, your ticket will be scheduled based on the selected date and time. Additionally, you can filter scheduled tickets by selecting "Scheduled" status on Support page in the admin area. <img alt="" /> ## Allowing Your Clients to Schedule Tickets As an admin, you can enable clients to schedule messages in the client area by following these steps: 1. Go to Settings and find Service Desk. 2. In the Tickets section, tick the box for **Let clients schedule tickets** to allow clients to schedule tickets for your store. <img alt="" /> ## How Your Clients Can Schedule Tickets 1. On the client area, go to Support tab. 2. Click **Open a new ticket** 3. Your client can fill in the subject, department, and message. 4. There will be an optional field for **Schedule for a future date and time**. Once selected, your client can choose the date and time to send the ticket. <img alt="" />