# Tip based industries

Use Moov to enable tipping, with preset configurations and free-form tipping options for customers.

This guide focuses on the quickest and easiest way to get started with the features of Moov we think you'll find most useful in an industry that involves giving customers the option to tip. Onboard customers to a secure payment platform and send payment links with various tipping options.

Moov offers a variety of integration options to get started. Use [Drops](/moovjs/drops/) or the [Dashboard](https://dashboard.moov.io/signin) UIs for a low to no-code solution, or choose the [API](/api/) or one of many [SDKs](/sdks/) for more complex integrations.

For the purposes of this guide, we'll provide Dashboard and API examples.

## [Onboard customers](#onboard-customers)

As you move through the onboarding process to create Moov accounts, some data is required while other data is optional. To view our full onboarding guides, visit the [Dashboard](/guides/dashboard/accounts/onboarding-links/) or main [onboarding](/guides/accounts/hosted-onboarding/) guides.

| Onboarding data      | Required |
|----------------------|----------|
| Capabilities         | **✓**    |
| Fee plan             | **✓**    |
| Scopes               | **✓**    |
| Return URL           | **×**    |
| Terms of service URL | **×**    |
| Prefilled data       | **×**    |

**Capabilities** determine what each Moov account can do, such as receiving transfers, or sending money to others. For risk and fraud protection purposes, we require detailed information when requesting capabilities. For example, we'll request more details if an account wants to collect funds than we would for an account receiving funds.

- [Transfers](/guides/accounts/capabilities/enablement/#transfers): Authorize debit transfers
- [Wallet](/guides/accounts/capabilities/enablement/#wallet): Store funds with Moov
- [Send funds](/guides/accounts/capabilities/enablement/#send-funds): Send funds to another account
- [Collect funds](/guides/accounts/capabilities/enablement/#collect-funds) (Business accounts only): Collect funds from another account

**Pricing &amp; fee plans** can be assigned to one merchant or reused for many merchants. Merchants must agree to and accept the fee plan before it can go into effect. Moov offers two types of plans:

- **Cost plus:** With a cost plus plan, card networks’ interchange fees and Moov’s processing markup are passed along to the merchant. Cost plus plans are beneficial for merchants with a high and varied transaction volume that prefer to have more control over fees. Fees are broken down into a more digestible and transparent format.
- **Flat rate:** With a flat rate plan, you can lump all the processing fees together with a flat rate customized for each merchant. Flat plans are beneficial for merchants with a low transaction volume that prefer a predictable solution over lowering cost as much as possible.

**Scopes** are used to determine what can be done with the account once it's onboarded. For example, the `/accounts.read` scope provides access to view all connected user accounts and the `/accounts/{accountID}/files.read` scope provides access to view or upload files associated with a Moov account.

Read more on required data in our documentation:

[Capabilities](/guides/accounts/capabilities/) [Fee plans](/guides/fee-plans/) [Scopes](/api/authentication/scopes/)

[Dashboard](#tab-852741369-1-0) [cURL](#tab-852741369-1-1)

Moov will send the [terms of service platform agreement](/guides/accounts/requirements/platform-agreement/) as part of the onboarding process through the Dashboard. Everyone with a Moov account must agree to and accept the terms of service before using Moov.

The following clip demonstrates how to create a new onboarding link in the Dashboard:

You'll need to generate and send a terms of service platform agreement as part of the onboarding process. Everyone with a Moov account must agree to and accept the terms of service before using Moov. If you're using the API, an SDK, or Moov Drops to onboard, see the [terms of service platform agreement](/guides/accounts/requirements/platform-agreement/) guide for more information and instructions.

The following is a sample request to create an [onboarding invite](/api/moov-accounts/onboarding/post/) with all available data:

```zsh
curl -X POST "https://api.moov.io/onboarding-invites" \
  -H "Authorization: Bearer {token}" \
  -H "x-moov-version: v2024.01.00" \
  --data-raw '{
    "returnURL": "https://mycompany.com/account",
    "termsOfServiceURL": "https://mycompany.com/terms-of-service",
    "scopes": [
     "accounts.read"
    ],
    "capabilities": [
      "transfers",
      "wallet.balance"
    ],
    "feePlanCodes": [
      "merchant-direct"
    ],
    "prefill": {
      "mode": "production",
      "accountType": "business",
      "profile": {
        "business": {
          "legalBusinessName": "LBM Lenders LLC",
          "doingBusinessAs": "LBM Lenders",
          "businessType": "llc",
          "address": {
            "addressLine1": "123 Main Street",
            "addressLine2": "Apt 302",
            "city": "Boulder",
            "stateOrProvince": "CO",
            "postalCode": "80301",
            "country": "US"
          },
          "phone": {
            "number": "8185551212",
            "countryCode": "1"
          },
          "email": "amanda@classbooker.dev",
          "website": "www.lbmlenders.com",
          "description": "Financial institution for personal lending",
          "taxID": {
            "ein": {
              "number": "123-45-6789"
            }
          },
          "industryCodes": {
            "naics": "522291",
            "sic": "6141",
            "mcc": "6141"
          },
          "primaryRegulator": "FDIC"
        }
      },
      "metadata": {
        "property1": "string",
        "property2": "string"
      },
      "termsOfService": {
        "token": "kgT1uxoMAk7QKuyJcmQE8nqW_HjpyuXBabiXPi6T83fUKRJkA3dsFID6fzitMpm2qrOh4"
      },
      "foreignID": "4528aba-b9a1-11eb-8529-0242ac13003",
      "customerSupport": {
        "phone": {
          "number": "8185551212",
          "countryCode": "1"
        },
        "email": "amanda@classbooker.dev",
        "address": {
          "addressLine1": "123 Main Street",
          "addressLine2": "Apt 302",
          "city": "Boulder",
          "stateOrProvince": "CO",
          "postalCode": "80301",
          "country": "US"
        },
        "website": "www.lbmlenders.com"
      },
      "settings": {
        "cardPayment": {
          "statementDescriptor": "LBM Lenders"
        },
        "achPayment": {
          "companyName": "LBM Lenders"
        }
      }
    }
  }'\
```

Read more about accounts and onboarding in our documentation:

[Accounts](/guides/accounts/) [Onboarding links](/guides/dashboard/accounts/onboarding-links/)

## [Create tipping presets](#create-tipping-presets)

Tipping can be enabled with different options per Moov account. Each Moov account's settings can be set with different tipping presets (a percentage or set amount) or a free form field. Percentages can be set to be calculated on a pre or post-tax basis.

![Set tipping presets](../../guides/shared-images/set-tipping-presets.png)

You can create presets for Moov accounts via the Dashboard or API.

[Dashboard](#tab-718362459-0-0) [cURL](#tab-718362459-0-1)

In the Dashboard, set presets for each Moov account, choosing three percentages or set amounts.

![Preset tips](../../guides/shared-images/preset-tips.png)

Use the `/transfer-config` [endpoint](/api/money-movement/transfers/create-transfer-config/) to set presets for each Moov account, choosing three percentages or set amounts.

```zsh
curl -X POST "https://api.moov.io/accounts/{accountID}/transfer-config" \
  -H "Authorization: Bearer {token}" \
  -H "X-Moov-Version: v2026.04.00" \
  -d '{
    "tipPresets": {
      "calculationBasis": "pre-tax",
      "percentageOptions": [
        5,
        15,
        25
      ]
    }
}'
```

If you enable tipping on an account, but do not choose any presets, the tip field will be a free-form option. Tipping is always optional for the customer.

Read more about account settings in our documentation:

[Account settings](/guides/dashboard/settings/business-settings/)

## [Create a payment link](#create-a-payment-link)

After creating presets per Moov account, you can enable tipping per payment request. Toggle tipping on when creating a payment link, or set tippingEnabled to true via the API when creating a payment link. Turning on tipping will show the customer the presets, or present them with a free-form field, depending on settings.

[Dashboard](#tab-246513987-0-0) [cURL](#tab-246513987-0-1)

![Preset tips](../../guides/shared-images/tipping.png)

```zsh
 1curl -X POST "https://api.moov.io/accounts/{accountID}/payment-links" \
 2  -H "Authorization: Bearer {token}" \
 3  -H "X-Moov-Version: v2026.04.00" \
 4  -d '{
 5  "partnerAccountID": "d290f1ee-6c54-4b01-90e6-d701748f0851",
 6  "merchantPaymentMethodID": "4c4e7f8e-81f4-4f3d-8f6f-6f6e7f8e4c4e",
 7  "amount": {
 8    "currency": "USD",
 9    "value": 1200
10  },
11  "customer": {
12    "requirePhone": true,
13    "tippingEnabled": true
14  },
15  "display": {
16    "title": "Order no. 6",
17    "description": "Lunch combo",
18    "callToAction": "pay"
19  },
20  "payment": {
21    "allowedMethods": [
22      "card-payment",
23      "ach-debit-collect"
24    ]
25  }
26}'
```

If you're not utilizing payment links, you can also set a tip amount when creating a transfer via the [transfers API](/api/money-movement/transfers/create/). Tips can be set in `amountDetails.tip`.

Read more about payment links and tipping in our documentation:

[Payment links](/guides/dashboard/payment-links/) [Tipping](/guides/money-movement/tipping/)

## [Branded receipts](#branded-receipts)

With a payment link, a [branded receipt](/guides/dashboard/settings/business-settings/) is sent. Receipts can include the following details:

- Transfer amount
- Transfer date
- Receipt ID
- Transfer description (if provided)
- Source payment method
- Sales tax amount and total amount paid (if applicable)
- Tip amount (if applicable)
- Surcharge amount (if applicable)
- Issuer confirmation number (if applicable)

![Email receipt](./images/receipt.png)

Branded receipts can also be sent with general transfers. Read more on receipts in our documentation:

[Receipts](/guides/money-movement/receipts/) [Receipts API](/api/money-movement/receipts/)
