Skip to content
Leat Help Center

When a gift card expires, and what sets its expiry date

Gift card expiry is set per gift card program as a number of days. There's no single end date for the whole program: every card has its own expiry date, and that date is set again each time money goes onto the card.

So the question to ask about a card is never "when was it sold?" but "when was money last added to it?".

Setting the expiry for a program

Go to Store → Giftcards → Settings, find Expiration settings and click Edit expiration. You get two options:

  • Never expires. Cards in this program don't get an expiry date.
  • Expires after a set number of days. Enter a number from 1 to 10000. Every time a card is loaded, it expires that many days later.

Changing this setting doesn't touch the cards that already exist. Each card keeps its current date until the next time money is added to it, and only then does it pick up the new setting. That includes switching to Never expires: an existing card keeps its date until its next top-up, which removes it.

What sets the expiry date

Whenever money is added to a card, its expiry date becomes that moment plus the program's number of days. The new date covers the whole balance on the card, not just the amount that was added.

This happens every time a card's balance goes up, wherever it comes from:

  • selling or creating a gift card with an amount, online, in the dashboard or through an issuance
  • a top-up at the till through a POS integration, or in the Business App
  • adding a transaction to a card in the dashboard
  • generating cards with an amount in Data → Generate
  • loading cards with a Giftcard transactions import, unless you turn this off (see below)
  • reversing a payment that was made with the card, because that puts money back on it

These don't change the expiry date:

  • spending from the card
  • reversing a top-up
  • generating cards without an amount, which have no expiry date at all until they're first loaded

A top-up that's held as pending at the till only moves the date once it's confirmed.

Cards you generate in bulk

In Data → Generate you choose between Create giftcards with an amount and Create giftcards without an amount, and the two behave differently.

With an amount. The cards are loaded the moment the batch is generated, so their expiry dates start counting from that day, not from the day you sell or hand out each card. If you generate stock months ahead, those months come off the card's lifetime.

Without an amount. The cards have no expiry date. The countdown starts on the first top-up, wherever that happens: at the till through your POS, in the Business App, in the dashboard or through an import. This is the option to use when you want each card's lifetime to start when it's sold.

Both options have a Reusable switch. With it on, a card can be topped up as often as you like, and each top-up sets a new expiry date. With it off, a card accepts its first load and refuses every top-up after that. A card generated with an amount has already had its first load, so with Reusable off it can never be topped up.

Loading many cards at once with an import

To put balances on many cards at once, for example 100 cards sold to one company, use Data → Imports with the import type Giftcard transactions. Balances in the file are in cents.

On the Options step, Update expiration date is on by default. With it on, every card in the file gets a new expiry date counted from the moment it's imported, just like a top-up at the till.

Turn it off only when the cards already have the date they should keep, for example when you're moving gift cards over from another system and imported their original expiry dates first. Turning it off for blank cards leaves them with no expiry date, so they won't expire until they're topped up again.

Changing the dates of existing cards with an import

A Giftcards import with the option Update existing giftcards finds each card in your file by its card number and sets its expiry date from a date in your file. Cards without a date in the file keep the one they have.

The Options step of that import has an Upgradable switch, which is on by default. It overwrites the same setting as Reusable on every card in the file: with it on, all of them can be topped up again, with it off, none of them can. Set it to what those cards should be before you run the import, even if you only meant to change their dates.

Changing the date on one card

Go to Store → Giftcards → Cards and open the card. On its Information tab, click Edit settings, change Expires at and click Save changes. The new date has to be in the future.

A date you set by hand only holds until the next top-up. The next time money is added to the card, the program's rule sets the date again.

What happens when a card expires

Leat checks for expired cards every few minutes. When a card's expiry date has passed:

  • any balance left on it is written off with an expiry transaction
  • the balance goes to 0
  • the card's expiry date is cleared

You'll find that transaction on the card's Transactions tab, and in the program's transaction list as Expired, next to the top-ups and payments.

From the moment the date passes, payments with the card are refused, even in the few minutes before the balance is written off. A card with Reusable on can be loaded again afterwards, and gets a fresh expiry date when it is. A card with Reusable off can't.

Common questions

I generated blank cards and loaded 100 of them with an import. Do they get an expiry date? Yes, as long as Update expiration date was on during the import. Each card expires the program's number of days after the import ran.

If a blank card is loaded at the till, does it get the expiry date then? Yes. A top-up at the till through a POS integration is an ordinary top-up, so the card's expiry date is set from the moment of the top-up. This applies to any POS that loads gift cards through Leat.

A contact's card expires later than I expected. Why? The date is counted from the most recent top-up, not from the first sale. Open the card's Transactions tab: the last positive transaction is where the current date comes from.

I changed the number of days, but my cards still show their old dates. That's expected. The setting only applies the next time money goes onto a card. To change existing cards now, edit Expires at per card, or update them with an Update existing giftcards import.

Why doesn't my blank card have an expiry date? Cards generated without an amount only get one on their first top-up.

Back to the help center