For the complete documentation index, see llms.txt. This page is also available as Markdown.

Custom Checkout

How Gleantap's custom checkout forms process payments and sync data across supported CRM and payment integrations — Mindbody, Stripe, with MarianaTek and ABC coming soon.

Gleantap's custom checkout forms let you sell memberships, class packs, and products directly from a Gleantap-hosted page — with the purchase captured on the contact's profile and, where applicable, synced back to your CRM.

This page covers what's supported, what happens between Gleantap and each payment/CRM integration during a checkout, and how to troubleshoot when something goes wrong.

For creating checkout forms in general, see Creating a Form.


Supported integrations

Integration
Status
What it powers

Mindbody

✅ Live

Products, class packs, and memberships sold + synced back to Mindbody as native sales

Stripe

✅ Live

Products/prices from your Stripe account, charged via Stripe, purchase logged in Gleantap

MarianaTek

Coming soon

ABC

Coming soon

Which integration is right for you depends on the CRM you already use for your business:

  • Fitness studios with Mindbody → use the Mindbody integration so sales stay native to your CRM.

  • Businesses without a fitness CRM, or wanting to run purchases through their own Stripe → use the Stripe integration.

  • MarianaTek or ABC customers — hold tight; these integrations are being built. Contact support@gleantap.com to be notified when they're ready.


What a custom checkout form is

A custom checkout form is a Gleantap-hosted form that combines:

  • Client info fields — name, email, phone, and any integration-required fields

  • Product selection — one or more products fetched from your connected system

  • Payment capture — credit card fields, processed at checkout

When a customer completes the form, Gleantap:

  1. Creates or updates their contact record in Gleantap

  2. Processes the payment through the appropriate rail (Mindbody, Stripe)

  3. Syncs the purchase back to your CRM (where applicable)

  4. Records the completed purchase on the contact's profile


Mindbody integration

For businesses using Mindbody, Gleantap syncs the entire sale into Mindbody so your CRM stays authoritative.

What syncs

Gleantap calls Mindbody's public API to complete the sale, using one of two endpoints depending on what's being purchased:

What's purchased
Mindbody endpoint

Membership contract

/public/v6/sale/purchasecontract

Product, class pack, or retail item

/public/v6/sale/checkoutshoppingcart

Both endpoints receive:

  • ClientID — the Mindbody client the purchase is for

  • LocationID — which of your Mindbody locations owns the sale

  • Payment info — credit card details, tokenized

  • Items — the products or contract being purchased

The end result: the purchase appears in Mindbody's Sales/Reports the same as if the client had bought it at the front desk. Their credit card, purchase history, and any resulting membership status reflect natively in Mindbody.

Client matching

If the person is already a Mindbody client — matched by email or phone during checkout, their existing ClientID is used and the sale attaches to their profile.

If they're new — Gleantap creates a new client in Mindbody first (using the info they entered on the checkout form), then processes the sale against the new ClientID.

Required fields — Mindbody sites vary in what they require on a client record. Gleantap fetches RequiredClientFields from your Mindbody site during form rendering to ensure the checkout collects everything needed. If Mindbody rejects a sale for missing required data, the customer sees an error on the checkout page.

Credit card handling (Mindbody)

  • Cards are captured in a secure iframe (PCI compliant — the card number doesn't touch Gleantap's servers).

  • Cards are tokenized by the payment processor.

  • The charge is processed by Mindbody's connected payment processor (whichever gateway your Mindbody site uses).

  • If Mindbody is configured to store cards for members, the card is saved on the client's Mindbody profile — same as any Mindbody-processed sale.

Gleantap doesn't hold or store the card number. Everything payment-related lives in Mindbody (or its payment processor).


Stripe integration

For businesses that want to charge directly through their own Stripe account.

How it works

  1. Products live in your Stripe Dashboard. Create the products and prices you want to sell in Stripe directly.

  2. Gleantap syncs your Stripe products. Once you've connected your Stripe account under Settings → Integrations, Gleantap pulls your product list and prices.

  3. Products appear in a dropdown on the checkout form. Pick which products to offer on this form.

  4. Customer completes the form. Name, email, phone, product selection, and credit card.

  5. Charge processes through your Stripe account. The transaction hits your Stripe Dashboard as a normal payment.

  6. Purchase is logged on the contact profile in Gleantap. The Activities tab shows a purchase event; the Purchase History tab records the sale.

What syncs where

Data
Destination

Charge / transaction

Your Stripe account (record of truth for financial data)

Contact record

Created/updated in Gleantap

Purchase log

Logged on the contact's Activities and Purchase History in Gleantap

Card on file

Saved in Stripe if the customer is a repeat buyer or on a recurring plan

When to use Stripe checkout

  • You don't have a fitness CRM like Mindbody or you're okay running purchases outside it.

  • You already use Stripe for other business revenue and want a single place to track sales.

  • You need one-off product sales (e.g., merchandise, event tickets) without CRM overhead.

  • You want the flexibility of Stripe's product catalog (subscriptions, one-time, tiered pricing).


MarianaTek and ABC — coming soon

Native custom checkout integrations for MarianaTek and ABC are being built. When they're ready, purchases made through Gleantap forms will sync back into MarianaTek or ABC the same way Mindbody works today.

If you use MarianaTek or ABC and want to be notified when checkout support ships, email support@gleantap.com.

Until then:

  • MarianaTek customers — Gleantap's existing integration handles contact and visit sync; new sales still originate in MarianaTek directly.

  • ABC customers — same pattern; use ABC for the sale, Gleantap for engagement.


What appears in Gleantap after any checkout

Regardless of which integration processes the payment:

  • The contact's Purchase History tab in Gleantap shows the sale.

  • The contact's Activities timeline logs the checkout submission and successful purchase.

  • If the form triggers a flow or campaign, that automation fires (see Trigger Flows or Campaigns).

For Mindbody-synced sales, subsequent syncs from Mindbody continue to update the Purchase History and Membership tabs. For Stripe, the initial purchase log persists but doesn't refresh from Stripe unless you edit the contact.


Common scenarios

"A customer completed my checkout form but I don't see the sale in Mindbody"

Walk through:

  1. Was the Gleantap → Mindbody API call successful? Check the contact's Activities tab for error events and the form submission for the API response.

  2. Are you looking at the right Mindbody location? Sales attach to a specific LocationID. Verify.

  3. Was a client record created? If the customer was new to Mindbody, client creation happens first. If that failed (missing required field, etc.), the sale wasn't attempted.

  4. Contact support with the contact's email and approximate checkout time. We can trace the API call in our logs.

"My Stripe checkout worked but I don't see the product I created in Stripe"

Products sync from Stripe to Gleantap on a schedule. If you just created the product in Stripe, wait a few minutes and refresh the form's product picker. If it still doesn't appear:

  • Confirm the Stripe integration is connected. Settings → Integrations.

  • Confirm the product is active in Stripe (not archived) and has at least one price.

  • Reach out to support if the product still doesn't sync.

"The customer got an error at checkout — 'invalid product' or similar"

Products on the checkout form are fetched live from the connected system. If a product was deleted, deactivated, or made unavailable between form render and submit, the sale can fail. Refresh the product list on the form and try again.

"Will the credit card be saved on the client's profile?"

  • Mindbody — depends on your Mindbody configuration. If Mindbody saves cards on file (typical for membership recurring), yes.

  • Stripe — the card is saved in Stripe if the transaction is on a recurring subscription or you explicitly configure card storage.

"Can I use custom checkout for a business without Mindbody or Stripe?"

Not today. Custom checkout requires one of the supported payment integrations. For pure lead capture without payment, use a regular form — see Creating a Form.

"Can I customize the checkout page's appearance?"

Yes — checkout forms follow the same customization model as other forms. See Customizing Design for CSS, tracking codes (GA, Meta Pixel), and JavaScript hooks.

"Which integration should I pick if I have both Mindbody and Stripe?"

  • If the sale should live in Mindbody (memberships, classes, retail tracked in Mindbody reporting) → Mindbody integration.

  • If the sale is outside Mindbody's tracking (event tickets, merch, one-off offers) → Stripe integration.

  • You can have both integrations connected simultaneously; each form picks one.


  • Creating a Form — building the underlying form

  • Customizing Design — styling, tracking codes, custom scripts

  • Push Data to Mindbody — the broader Mindbody integration

  • Trigger Flows or Campaigns — automation on form submission

  • Managing Contacts — post-checkout contact management

Was this helpful?