Advanced features

Gift cards and class passes

Gift cards and class passes

A gift card is paid for up front. Your customer then uses it at checkout. FullClass™ has two types of card. The type you pick changes how the card is priced, how it is used, and how it shows on your reports.

The two types

Type Holds Best for
Balance An amount of money (for example $50). The balance goes down each time the card is used. Everyday gift cards, holiday gifts, store credit instead of a refund, and any time the customer should choose what to spend it on.
Class pass A set number of classes (for example 5 classes). The price is fixed when it is bought. Later price changes do not affect it. Class bundles and loyalty packs. The customer pays once and gets that number of spots, whatever your classes cost later.
Why the type matters. A balance card works like cash. The customer can put any amount of it towards any booking. A class pass works like a punch card. One use equals one class, whatever that class costs on the day. If you raise prices later, pass holders still get a full spot per class. If you lower prices, they do not get money back. So a class pass protects the customer from price rises, and a balance card gives them choice.

Selling the same pass at more than one price

Normally a class pass has one price. It is your price per class, times the number of classes the buyer picks. That cannot offer the same pass at two prices, which you need for a sliding scale or a members' rate.

Class passes (Settings → Gift cards and passes) let you give each pass its own name and price. For example, two passes can both hold five classes, one at $70 and one at $90. The buyer picks the one they can afford.

  • You have to turn it on. On that page, under Class passes on your booking page, choose Passes from your list. Until you do, your booking page keeps pricing by the number of classes. Nothing your customers see changes.
  • Each pass gets its own link. Copy it from the same page. Put each link behind its own button on your website. Someone who clicks the lower price then gets the lower price without typing anything.
  • Taking a pass off sale works straight away. It disappears from your booking page and its link stops working. Passes already bought stay exactly as they were sold.
  • You cannot delete a pass that has sold. Take it off sale instead. Deleting it would lose the record of which pass each customer bought, and so how many people chose each price.
  • Editing a pass changes what future buyers get. Passes already sold keep the classes and price they were bought with.

Reading the gift card list

Four numbers sit above the list. They match the numbers on your reports, so the two never disagree.

  • Outstanding balance: the money still on active balance cards. This is what you owe your customers. Class passes are not included, because a pass holds classes, not money.
  • Active cards: every card that still works, passes included.
  • Expiring in 30 days: active cards that run out within the month. Click it to see just those cards, soonest first.
  • Sold this month: what customers paid for cards this month, before tax and after any refunds. Cards you gave away for free do not count as sales.

Each row shows what is left on the card, with a small bar, so you can see how much has been spent. It also shows when the card expires. Use Filters → Expiring within to see the cards running out in the next 7, 30 or 90 days. Those are the customers worth reminding before their money runs out.

Fields on every gift card

  • Code: leave it blank and FullClass makes one, or type your own. The dashes and capital letters only make it easier to read. They are not part of the code. So GIFT-RSVF-M55C-8WXK, giftrsvfm55c8wxk and the same code pasted with a stray space all find the same card, wherever a code is typed in. This means two of your cards cannot have codes that differ only by dashes or spaces. If you try to create one, it is refused.
  • Type: balance or class pass. You choose when you create the card. Later you can change a balance card into a class pass (see below).
  • Starting value: the amount of money (in your currency) or the number of classes.
  • Purchaser: pick a customer from your list. If they are not in it, just enter a name and email.
  • Recipient: the name and email of the person getting the card, and an optional gift message.
  • How many: make up to 100 identical free cards in one go. Each one gets its own code. See "Giving away a lot of cards at once" below.
  • Payment: you must choose one. There is no default. Choose Complimentary only for a card you give away. If the buyer paid you another way, such as cash or a bank transfer, choose Paid outside FullClass. Then say how they paid (cash, card on your own terminal, check, bank transfer or other). The card is recorded as a sale on your reports, and its page shows how it was paid. A gift card paid this way follows the same expiry rule as any other paid gift card (see Validity period). For a class pass, you enter the amount paid, tax included. If you take card payments through FullClass, you can also charge the buyer's card here.
  • Validity period: optional, in days. Leave it blank and the card never expires. In Canada and the US, a gift card the buyer pays for cannot expire, because several provinces and states do not allow it. Free cards and class passes can expire. Outside Canada and the US, you can choose to let paid gift cards expire. Set Paid gift cards expire after under Settings → Gift cards and passes. This applies to every gift card sold from then on, on your booking page and in the admin. Buyers see how long the card lasts before they pay. Gift card laws differ by country, so check that an expiry, and its length, is allowed where you are. A card past its expiry cannot be used, but its value is still owed. You can extend or remove the expiry on the card's page.
  • Restricted class: optional. Tie the card to one class, so it can only be used on events of that class. Leave it empty to allow any class.
  • External purchase ID: a reference number for a card sold through the widget or the API, or imported from another system. It helps you trace where the card came from.

Giving away a lot of cards at once

The How many box on the gift card form makes that many identical cards in one go, up to 100. That is the size of one print job, so any batch you make can be printed in one go. Each card gets its own code. Use it for a charity donation, a raffle, a company order, or any time you hand out a stack of cards rather than sell one card to one person.

It is only for cards you are not charging for. Three fields have to be left alone, and the form tells you which one is in the way.

  • Complimentary only. One sale is one gift card, so set Payment to Complimentary. To sell several cards, by card or for cash, record them one at a time.
  • No custom code. A code belongs to one card. Leave it blank and each card gets its own.
  • No email addresses. Every card with an email address sends that person their code. A batch of 72 would send 72 emails to one inbox. Leave the purchaser and recipient email fields blank. Names and the gift message are fine. They send nothing, and they record who the batch was for.
These are giveaways, not sales. A batch is recorded as complimentary. It does not count towards "Sold this month". It also does not add to the prepaid balance you owe customers the way a sold card does. That is on purpose. The spreadsheet importer, the other quick way to make many cards, records every card as bought. If money really changed hands, do not use the How many box.

When the batch is made, you land on the gift card list with a message saying how many were created. The list shows the newest cards first, so the batch is at the top. Tick the ones you want and use the print button if you print your own cards. If something goes wrong partway, the cards already made are kept. The message tells you how many exist, so you only need to make the rest.

Before you give away more than one card, a card worth 250 or more, or a pass of 10 classes or more, FullClass asks you to confirm. It shows the total you are giving away. Anyone who has a card's code can spend it, so a code posted online goes to whoever uses it first. Cards you sell never ask.

Card statuses

  • Active: created and ready to use.
  • Redeemed: fully used up (the balance is zero, or every class is used). FullClass sets this for you.
  • Expired: past its expiry date. FullClass shows this for you. The card cannot be used, but whatever is left on it is still owed to the holder. To make it usable again, open the card and extend or remove the expiry.
  • Canceled: canceled by you or your staff (for example after a chargeback, a mistake or fraud). You can restore it if it was canceled by mistake.

How using a card works

Both types can be used at checkout, whether you book in the admin or the customer books on your booking page, in the widget, or through the API. Every change to a card is written in its history (the ledger, below).

  • Balance cards. You or the customer can use the whole remaining balance, or part of it, up to the booking total. The card's balance remaining goes down by the amount used. Several bookings can use the same card until it reaches zero.
  • Class passes. Each use takes one class, unless a booking for several spots uses more. The card's classes remaining goes down by that number. If the pass is tied to one class, the booked event must be that class.
  • Blocking class passes on a class. You can stop class passes being used on a class. Turn off the Accept class passes switch on that class (under Gift cards in the class form). Do this for premium or special classes. Balance gift cards still work on them. Courses never accept class passes.
  • When the card does not cover it all. If the card covers only part of the booking, the customer pays the rest by card as usual (through Stripe or Square).
  • Limiting how cards and codes combine. By default, a customer can put several gift cards on one booking and also enter a promo code. Two tick boxes under Settings → Booking Widget → Payments & checkout can limit this. They are Only allow one gift card per booking and Do not allow a promo code and a gift card on the same booking. Both start off, so nothing changes until you tick one. They only apply when customers book for themselves. A booking you take in the admin is never limited. Neither is a gift card you add to a booking afterwards. So you can still accept three cards from a customer at the front desk. Cards already sold keep their full balance either way. A referral link's discount is never blocked.
  • Using a card after booking. If a customer brings a gift card after a booking is already paid, open the booking and use Payment → Apply a gift card. The card covers part or all of what they paid, and that amount is refunded to their original card automatically. The customer gets an email explaining what the card did to their money. If they have two cards (for example for a two-spot booking), you can enter both codes at once. This works for a confirmed booking that was paid online. Course bookings can only use gift cards at checkout.
  • Cancellations and refunds. When you cancel a booking that used a gift card, the value goes back on the card (the money or the classes used). This is recorded in the card's ledger.
  • Refunding what someone paid for a card. Open the card and click Cancel gift card. The dialog asks what to do about the money. You can give a full refund, a partial one, or none. FullClass then asks Square or Stripe to send the refund from your account to the card the buyer paid with, so you do not need to do anything in Square or Stripe. The amount offered is what the buyer actually paid, tax included. It is capped at the value nobody has spent yet, because value already used paid for a class you ran. Whatever you refund comes off the card at the same moment, so nobody can get their money back and still spend the card. A class pass is refunded in full or not at all, because you cannot hand back part of a class. If you choose no refund, the card stops working and you keep the money, so the sale stays on your revenue report. A refund takes the sale off your revenue report, and takes the matching share of the tax you owe off too. A card sold outside FullClass (cash at the desk, your own card terminal, a bank transfer, or a sale sent in through the API) gets the same choice. But FullClass sends no money in that case. Hand the refund back to the buyer yourself and record it in the dialog. It then comes off your gift card sales the same way. A card nobody paid for (a free card, a referral reward, or an imported voucher with no sale amount) has nothing to refund. Its dialog simply cancels the card and says so. If the card is canceled while your dialog is still open (in another tab, or by a colleague), your submit is refused and nothing is refunded twice.
  • Expiry reminders. If your gift cards have an expiry date, we email the holder about a month before it, as long as the card still has value on it. There is nothing to set up, and they only get it once. Cards with no expiry date never get a reminder. Nor do cards that were only valid for a few weeks, because the email with the code already gave the date.
  • Changing an expiry. On a card's page, under Validity, you can move the expiry to a later date or remove it. You cannot make it sooner. You also cannot add an expiry to a card that never had one. Either would take value away from the holder. The holder is emailed about the change.
  • Free cards that expire are marked Promotional. When a free card or a referral reward has an expiry date, the printed card and the email with the code say "Promotional card". They show the date in capitals. Some places only let a free card expire if it says so on the card. Cards that never expire look the same as always.
  • Telling the customer when a card changes. When you cancel a card, reactivate it, or convert it between a balance and a class pass, FullClass emails whoever holds it. Each of these changes what the card is worth, so the email always goes. A card with no email address on it (for example a free card you made with no recipient) has nobody to email.
  • Resending the gift card. If a recipient says they never got their code, open the gift card and click Resend email. It sends the "you've received a gift card" email (with the code) again. It goes to the recipient, or to the purchaser if there is no separate recipient. You can do this while the card is active and has an email address. It is recorded in the activity log.
  • Your card design. A printed gift card shows your own artwork. A strip along the bottom carries the amount, the code, the expiry, your contact details and a QR code. The design has its own page. Open Printed cards from the gift card settings page. Until you upload artwork there is nothing to print, so the print buttons stay hidden. Artwork must be at least 1011 by 500 pixels. That is the part of the card above the strip, at the quality a card printer prints. We scale bigger images to fit and crop the middle. So design at that shape if you want to choose what gets trimmed. We refuse smaller images rather than stretch them, because a stretched design prints looking stretched. An SVG can be any size, because we draw it at the card's resolution. You can upload JPEG, PNG, WebP, GIF or SVG, up to 15 MB. Photos straight off an iPhone are HEIC, which we cannot read, so save them as JPEG first. Next to the form is a preview of your card. It is made the same way as the printed card, so you can check the crop and the strip before you use any card stock.
  • What the strip prints. Your artwork may already show some of these details. So each one has its own tick box on that page. They are the amount, the expiry date, your website, your phone number, your email address, and the QR code. Untick whatever your design already says, and the rest spreads out to fill the strip. The amount and the code print side by side, the same size, in black, with no headings. The code always prints, because it is the only thing on the card that lets anyone use it. The QR code opens your booking page. It does not hold the card's code, so a photo of a card is not the same as having the card.
  • Printing cards. To print one card, open it and click the print button. To print several, tick them in the gift card list and use the print button in the bar that appears above the list. The bar tells you how many you have ticked. Use the box in the table heading to tick the whole page at once, and Clear in the bar to start again. What you get depends on your Print onto setting, and the button is named to match (Print on a sheet to cut out or Print on a card printer). A sheet holds ten cards with cut marks, for an ordinary printer. A card printer gets one page per card, sized to the card, so a batch goes as one job, up to 100 cards at a time. Only active cards can be ticked. A canceled card printed on plastic looks just like a live one, and you cannot take it back. If one of the ticked cards was canceled in the meantime, nothing prints. You are asked to refresh the list instead of getting a stack that is one card short. Either way, the QR code on the card opens your booking page, and the customer types in the code from the card.
  • Choosing more than one page of cards. What you tick stays ticked when you go to the next page, sort the list, or come back later. So you can collect cards from anywhere in the list. Once you have ticked a whole page, the bar offers to tick every card that matches your filters (Select all … matching, with the number of cards). You can then untick any you do not want. Changing the search box or a filter clears the selection, because it changes which cards "all" means. A print job takes up to 100 cards and an export takes up to 1000. If you go past either number, the bar greys out that button and shows the limit, so you can narrow the list first. The limits differ because your printer's ribbon limits a print run, and a spreadsheet has no ribbon.
  • Taking an order to a print shop. If you do not print your own cards, tick the ones you want and use Export codes in the bar above the list. You get a spreadsheet file with one row per card. Each row has the code, what the card is worth, when it expires, and its status. That is the file a print shop needs to print a batch. It holds up to 1000 cards, ten times a print job, because your ribbon does not limit a print shop's press. Only active cards can be ticked. If one of them was canceled in the meantime, you get no file, rather than a file that is quietly one row short.
    Treat the file like cash. Whoever holds a gift card code can spend it, so anyone who has the file can spend these cards. There is no name on a code. You cannot tell a code has been used until a customer is turned away at the desk. Send the file only to a printer you trust. Send it the way you would send an invoice, not as a public link. Delete your copy once the job is done. Every download is recorded in your activity log, with who did it and how much was on the cards, so you can always see when codes left your hands.
    The file holds the code and the value and nothing else. Your customers' names and email addresses are left out on purpose, because a printer does not need them.
  • Getting told about sales. When a customer buys a gift card, everyone on your team with new-booking emails turned on also gets an email about the sale. It shows the type, value, code, who bought it, and who it was sent to. It uses the same setting as new-booking emails, so turn that on for anyone who should hear about gift card sales.
Print settings for a card printer. You only need these if you set Print onto to blank plastic cards. A sheet of cards prints like any other document. On a Mac, open the downloaded file in Preview and press Command-P. Set Paper Size to Card (your printer shows it as 55 by 86 mm). Set Orientation to Landscape. Leave Scale at 100%, not "Scale to Fit". Landscape is the one people miss. The printer's card page stands upright and the gift card lies on its side, so without Landscape your card comes out turned or shrunk. To test one card before a batch, set the page range to 1 to 1. Once it looks right, save these settings under Presets, so the next batch is one click.

The ledger

Every gift card has a ledger. It is a history of the card that is only ever added to, never changed, so you can always see everything that happened. Each entry shows who did it, when, and what changed.

Action When it is added
purchase The card is created. Its starting balance or class count is noted.
redeem The card is used on a booking. The booking number is noted.
refund A booking that used the card was canceled, so the value goes back.
adjust You or your staff changed the balance or class count by hand (with a note).

Converting balance to class pass

A customer may pay for a balance card, then ask to swap it for a class pass. You can convert the card without changing its code. The dialog asks how many classes the pass is good for. Set it to match what the balance was worth, because the balance itself is lost and cannot be recovered. Use this for one-off favours, not as an everyday routine. The change is recorded in the ledger and in the activity log, with the number of classes.

Selling gift cards and passes on your booking page

Everything about what customers can buy up front is on one page, Settings → Gift cards and passes. The banner, the class passes your booking page shows, the tax you charge and the passes themselves all work together, so they are set in one place.

What customers can buy right now. The box at the top of the page has one sentence per product. It says what a visitor to your booking page can buy today. It is worked out from your current settings, so it always matches what the booking page really does. Read it after every save. It is the quickest way to check a change did what you expected.

  • Show the gift card purchase banner. Puts a banner on your booking page and in the widget, for whatever you offer below. It only controls the banner. A direct link to a gift card or a class pass still sells with the banner off. That is how you sell passes from your own website without showing them on your booking page.
  • Banner subtitle. The line under the banner heading. Leave it blank to use the default, which the empty box shows in grey.

Monetary gift cards on your booking page decides whether a customer can buy a card for an amount they choose. Untick it to offer only class passes. That suits you if your customers buy passes for themselves rather than as gifts. Cards you have already sold keep working either way. This setting decides what is for sale, not what still works.

You can turn both off. If you untick monetary gift cards and also pick "No class passes on my booking page", your booking page shows no purchase banner at all. That is true even if the banner switch is on, because there would be nothing to buy. Any direct pass links you already shared keep selling.

The Class passes on your booking page setting has three choices. Whichever you pick, a pass still sells from a direct link you share.

  • No class passes on my booking page. Class passes do not appear there at all. You can still send someone a direct link to a pass. You can also still create one yourself on the Gift Cards page at any time.
  • A pass for any number of classes. Customers pick how many classes they want and pay the same for each. The Price per class box appears under this choice when you pick it, and is hidden otherwise. The buyer pays that price times the number of classes, plus any tax set below.
  • Passes from your list. Customers choose from the passes you have on sale, each with its own name and price. This is the choice that lets you sell the same five classes at two prices. You can pick it before you have any pass on sale. That is a normal order to do things in, so the save goes through and the box at the top says customers see no passes yet.
The price is no longer an on/off switch. You used to keep class passes off your booking page by setting the price per class to 0. The first choice does that job now. The price box is not on screen at all when it does not apply.
  • Class pass tax rates. Pick which of your tax rates apply when someone buys a class pass. Tax is added on top, or is part of the price if your prices include tax (a setting on the Tax Rates page). It is charged once, when the pass is bought. If you have no tax rates yet, the page links you to where you create them.
  • Your class passes. The list below the settings. Here you add, edit, take off sale and delete passes. It sits apart from the three choices on purpose. Your passes exist, and keep selling by link, whichever choice you picked.
  • Links to each pass. Every pass on sale has a link you can copy. It opens your booking page with that pass already chosen. See Selling the same pass at more than one price above for how to use them.

Balance cards have no price or tax settings. The buyer chooses the amount, and is charged that amount with no tax added. Any tax is charged later, when the card is spent on a class.

Balance cards you give away carry no tax. FullClass treats a free balance card (a staff freebie or a referral reward) as a discount, not a payment. So the part of a booking it pays for is not taxed. Most places treat free vouchers this way, but check with your accountant. Your Tax Remittance report shows that tax as "Complimentary gift card tax" and takes it out of what you pay to the tax office. If the card pays for only part of a booking, tax still applies to the part the customer paid.

How class-pass tax works

  • Added on top, or included in the price. Tax never reduces what the recipient gets. When tax is added at checkout, a $25 class pass with 10% tax costs the buyer $27.50. When your prices include tax, the same pass costs the buyer $25.00, and $2.27 of that is tax. Either way the recipient still gets one class.
  • Charged once, when the pass is bought. When the recipient later uses the pass on a class, no more tax is charged. The pass covers that class in full. Your Tax Remittance report shows this as "Class-pass tax (deferred to sale)". The tax on the class comes out, and the tax you charged when the pass sold goes back in. So you pay it to the tax office once.
  • A pass that was never taxed is taxed when it is used. If no tax was charged when a pass was sold, the tax is counted when it is used instead. It stays in the total you pay to the tax office. This covers passes imported from another system. It also covers passes made by converting a balance gift card, because a gift card is sold without tax (the tax is charged when it is spent). The customer is not charged anything when they use the pass. The pass still covers the class in full, and the tax comes out of what you were paid for it.
  • Free passes are not taxed at all. A pass you gave away took no money, so there is nothing to tax at either end. The report shows that class's tax as "Complimentary class-pass tax" and takes it out of what you pay to the tax office.
  • Several rates are added together. If you pick a 5% rate and a 7% rate, the buyer pays a flat 12% on the subtotal. One rate is not charged on top of the other.
  • Checked by FullClass. The widget shows the tax before checkout. FullClass then works out the final total again itself, so nobody can change the price in their browser.

Customer-facing purchase (widget & API)

  • Customers can buy and look up gift cards in your booking widget. For a developer, this needs a public key with the gift card scopes (giftcards:read and giftcards:write).
  • Recipients get their code by email. They can use it at checkout or in their customer account, or you can apply it for them.
  • The person with the code gets the card. Once you have uploaded your card design, the email with a card's code also includes the printed card as a PDF. It goes to the recipient if the buyer named one, and to the buyer if not. A card you make in the admin, and Resend email, include it too. It always comes as a sheet with cut marks, in color, whatever your Print onto and ink settings say. Those settings describe your printer, not your customer's. A canceled card is never attached.
  • The buyer gets a receipt PDF. The purchase receipt email includes a receipt PDF. It shows your legal business name, your sales tax number if you have entered one, and the tax charged. A card you sell in the admin with a card payment gets one too. A class pass shows the tax it was sold with. A balance card shows no tax, because a gift card is taxed when it is spent, not when it is sold. A card you record through the API, for a sale your own checkout took, gets no receipt from FullClass. Your checkout already sent one.
  • Buyers become customers. Anyone who buys a gift card is added to your Customers list and linked to the card. So you can see who bought it, even if they have never booked a class. If the buyer is already in your list, the purchase is linked to them, so there is no duplicate.
  • Marketing opt-in. Turn this on under Settings → Booking Widget → Booking form. Your customers then see a "keep me updated" tick box on the booking form. They also see it when they buy a gift card or class pass, because both sign them up to the same list. You can write your own wording. Leave it blank and we use ours, translated into each language your booking page offers. When a new buyer ticks the box, they are signed up to your marketing emails. A purchase never changes an existing customer's choice, so nobody who has opted out is quietly signed back up.
  • FullClass limits how fast anyone can look up codes, so nobody can find working codes by guessing thousands of them.

Reporting

The gift card report sums up the value you issued, the value used, the value left, class pass use, expired cards and canceled cards. Use it with the ledger when you check your books at month end. Cards given out without payment (staff freebies, referral rewards, and store credit from cancellations) also appear on the complimentary report. It shows how much of their value has been used so far. It also splits what you owe into value people paid for and value you gave away.

You still owe unspent balances. Unspent gift card balances are money you owe on your books until they are used or refunded. FullClass never writes off an unused balance, even after a card expires. In many places the law limits whether a business can keep the unused value of a gift card someone paid for. Check your local rules before you count any of it as income.