Automation library

Automate gift card liability reconciliation, from Shopify to your ledger

Updated · By Ecomsellertool editorial team

Short answer

A gift card sold is a liability, not revenue, until it is redeemed. To reconcile it each month, pull Shopify's gift card figures, roll the opening liability forward with cards sold, cards issued free, redemptions and disabled cards, and check the closing figure against both Shopify's outstanding balance and the liability account in QuickBooks Online or Xero. Rules post the movements; a person explains every gap.

  • Shopify does not count a sold gift card as a sale, because it is a liability; the full item value counts as a sale when the card is redeemed (checked November 13, 2026).
  • Shopify's gift card data reports the starting and ending liability, value added by cards sold, value added by cards issued, value removed by disabled cards and adjusted value for any period.
  • In Shopify, a deactivated gift card cannot be reactivated, and gift card balances cannot be edited directly from the admin.
  • Closing liability = opening liability + cards sold + cards issued free - redemptions - disabled value +/- adjustments.
  • US federal rules bar store gift card funds from expiring within five years, with exclusions such as promotional cards; state and foreign laws differ, so your accountant or counsel decides.

The step map: who runs each step

Trigger: Month-end close, plus a daily check of new gift cards issued, disabled or adjusted in Shopify.

Each step of the workflow in order, and whether a fixed rule, an AI model or a person runs it
StepWhat happensWho runs it
1At month-end the workflow pulls Shopify's gift card figures for the month: starting balance, value sold, value issued, value disabled, value adjusted and ending balance, per currency.Rule
2Redemptions and refunds back to gift cards are pulled from the gift card entries in Shopify's payments data, and the gift card export is pulled for card-level detail such as issue method, expiry and deactivation date.Rule
3The roll-forward is built: opening liability plus sold plus issued, minus redeemed and disabled, plus or minus adjustments. The computed closing figure is checked against Shopify's ending balance.Rule
4Each movement is mapped to the accounts your accountant approves, and one balanced journal entry per month and currency is drafted for QuickBooks Online or Xero, with the roll-forward attached.Rule
5The ledger's gift card liability balance is read back and compared with Shopify's ending balance. Any difference is split into known causes from the mismatch table, and what is left is marked unexplained.Rule
6Cards issued free, disabled cards, expired cards with a balance and manual adjustments are listed card by card for review, with who issued them and the note on the card.Rule
7A person reviews the flagged cards and the unexplained difference, decides the treatment with the accountant, and approves the entry.Person
8The approved entry is posted, the month's roll-forward is saved as next month's opening line, and the run is logged with the reports it came from.Rule

7 rule steps · 0 AI model steps · 1 person step. A rule follows fixed logic you approve; an AI model handles messy input and its output is checked by rules; a person makes the calls listed below.

Person

What stays with a person

  • The account map: which accounts cards sold, cards issued free, redemptions and disabled cards post to
  • How free cards issued as refunds, promotions or apologies are booked, decided with your accountant
  • Expired and long-unused balances, and any unclaimed-property question, decided by your accountant or counsel
  • Any difference the mismatch table cannot explain, before the month is closed
  • Who may issue, disable or adjust gift cards in Shopify, and the limits for each person
Tools

Which tools can run it

  • A monthly spreadsheet roll-forward fed by Shopify's gift card reports, for a low card volume
  • Your accounting connector's gift card mapping, if it posts sales and redemptions to a liability account
  • Zapier, Make or n8n pulling Shopify data, drafting the journal and sending it for approval
  • Custom code on your accounts, for several stores, currencies or gift card sources and a card-level audit

Systems it connects

  • Shopify gift cards and finance reports
  • Shopify Admin API (gift cards)
  • QuickBooks Online
  • Xero
  • Approval queue in Slack or email

Build size: Medium

The arithmetic is simple; the work is finding redemptions and free cards in the right data and agreeing their treatment once with your accountant.

Every gift card you sell is money you have taken for goods you have not shipped yet. Until the card is redeemed, that money is a debt to the cardholder, so it sits in a liability account, not in sales. The trouble starts when the liability in your ledger and the outstanding balance in Shopify drift apart: free cards issued as refunds that nobody booked, redemptions recorded as a payment without reducing the liability, cards disabled in one system and not the other. This recipe closes that gap every month. It is one page of our automation library.

How does a monthly gift card roll-forward work?

A roll-forward explains how the liability moved from the first day of the month to the last. Every movement has a source in Shopify, and the closing line has to match two numbers: Shopify's own ending balance and the gift card liability account in your ledger. You can run this table today in a spreadsheet; the workflow only fills it in and checks it.

Closing liability = opening liability + cards sold + cards issued free - redemptions - disabled value +/- adjustments

Shopify's gift card data for reports gives most lines directly, per day, month or currency: the starting and ending gift card balance, the liability added by cards sold, the liability added by cards issued, the value removed when cards are disabled, and the value adjusted (checked November 13, 2026). Redemptions are not in that data. They come from the payments side, where Shopify's finance reports record the amount paid by or refunded to a gift card as a gift card entry (checked November 13, 2026).

LineWhere it comes fromIllustrative month
Opening liabilityLast month's closing line (and Shopify's starting balance)$18,400
+ Cards soldLiability added by gift cards sold$6,250
+ Cards issued freeLiability added by cards issued from the admin, such as refunds and promotions$900
- RedemptionsGift card payments on orders, net of refunds back to gift cards$5,120
- Disabled valueValue removed when cards are disabled$150
+/- AdjustmentsBalance changes made through an app or the API$0
= Computed closing liabilityThe sum of the lines above$20,280
Shopify ending balanceOutstanding gift card balance on the last day$20,280
Difference, ShopifyComputed closing minus Shopify ending$0
Ledger liability balanceGift card liability account in QuickBooks Online or Xero$20,130
Difference, ledgerComputed closing minus ledger$150

These numbers are illustrative, for a brand selling about $6,000 of gift cards a month, not a client's results. The first check ties out: Shopify's movements explain its own ending balance. The second does not. The ledger is $150 low, and the card-level review finds two causes that partly cancel: $300 of promotional cards issued free were never booked (ledger too low), and a $150 card disabled in Shopify was never released in the ledger (ledger too high). A net difference of $150 hid $450 of errors, which is why the workflow explains each cause instead of posting a plug.

What causes gift card mismatches, and who fixes each one?

When either difference line is not zero, one of these is usually the reason. The workflow checks for each cause in turn, shows the cards involved, and only marks a difference unexplained when none fit.

CauseHow it shows upWho fixes it
Free cards issued from the admin (as a refund, store credit, promotion or reward)Shopify's issued value is above zero, with no cash behind it; the ledger is lower than ShopifyYour accountant decides the account once; then the workflow books them every month
Redemptions booked as a payment method, not against the liabilityThe ledger liability keeps growing while Shopify's balance fallsThe bookkeeper fixes the connector or item mapping, then corrects past months
A disabled cardShopify zeroes its balance; the ledger still holds itA person confirms why it was disabled; the accountant decides where the release goes
An expired card with a balanceShopify keeps counting it in the outstanding balance; the ledger may have released itYour accountant or counsel, under the rules that apply to you
A balance changed through an app or the APIAdjusted value is not zeroWhoever owns the app or integration explains the change
A gift card sold at a discountNet sales from gift cards are below the face value added to the liabilityYour accountant decides how the discount is booked
Imported orders paid by gift cardShopify's balance did not fall for those ordersThe ops owner of the import adjusts the card balances
Several currenciesTotals tie in one currency and not anotherThe workflow reconciles each currency on its own line
Timing at month-endA card disabled or a redemption late on the last day shows next monthThe cut-off rule is set once; disabled values can take up to 24 hours to reach the report

Shopify documents several of these behaviors itself. Its finance reports page says an expired card's remaining balance keeps counting toward the outstanding balance, a deactivated card's balance returns to zero, deactivated values can take up to 24 hours to show, the amount paid by gift card on imported orders is not subtracted automatically, and gift card reports and exports can have different totals because they count different things (checked November 13, 2026). It also says there is no per-transaction gift card ledger report, which is why the workflow keeps its own.

Where does the card-level detail come from?

Totals tell you that something is wrong. Card-level detail tells you which card. Shopify's gift card export includes the issue date, expiry date, initial and current balance, currency, issue method, whether the card is expired or deactivated, the deactivation date, the issuing staff member and the note (checked November 13, 2026). The same page says a deactivated card cannot be reactivated, reloaded or refunded onto, and that balances cannot be edited directly from the admin: they change only through redemption, a refund or a custom integration that uses the gift card API.

For a daily check, the GiftCard object in Shopify's Admin API returns each card's balance, initial value, whether it is enabled, its expiry and deactivation dates, its transaction history and the order that created it, which is empty for cards issued manually (checked November 13, 2026). It needs the read_gift_cards access scope only; this workflow reads gift cards and never changes them.

Shopify's page on issuing gift cards lists the reasons a staff member creates one without payment: a promotion, incentive or reward, a custom denomination, or a refund or store credit (checked November 13, 2026). Those are exactly the cards the review list shows each day, with who issued them and why, so a refund issued as a card in your returns and refunds workflow is booked the same way as the cash refund it replaced.

How do you post gift card movements in QuickBooks Online or Xero?

Post one summary entry per month and currency, not one per card. Intuit's guide to selling and redeeming gift cards in QuickBooks Online sets up a liability account and a gift certificate product linked to it; a redemption adds that product as a negative line on the customer's invoice (checked November 13, 2026). A month-end journal entry works too, and QuickBooks requires the total of its debits column to equal the total of its credits column, per its journal entry guide (checked November 13, 2026).

In Xero, the Accounting API's manual journals need a narration and lines where debits are positive and credits are negative; the Xero Accounting API specification shows the error returned when total debits do not equal total credits (checked November 13, 2026). Either way, the account behind each line is your accountant's choice. The table shows what each movement does to the liability; the other side of each entry is left to that decision.

MovementEffect on the gift card liabilityThe other side, decided by your accountant
Card soldIncreases itUsually the cash or payments clearing account
Card issued free as a refundIncreases itUsually where the refund would have gone
Card issued free as a promotionIncreases it, or is tracked separatelyA choice your accountant makes
RedemptionDecreases itSales, if the order's sale is not already booked from the order data
Disabled or expired balance releasedDecreases itA choice your accountant makes under the rules that apply

Check the redemption line against how your orders reach the ledger. If a connector already books each order as a sale paid partly by gift card, the redemption entry must only move the gift card portion out of the liability, or the sale is counted twice. Our marketplace payouts recipe covers the cash side of the same orders.

Which tools can run it?

Pick the smallest setup that ties out every month.

SetupWhen it fitsTrade-off
A monthly spreadsheet roll-forwardA few hundred cards and one storeSomeone exports and reconciles by hand, but the table above is all it needs
Your accounting connector's gift card mappingYour connector already posts gift card sales to a liability accountFree cards, disabled cards and expiry usually still need the monthly check
Zapier, Make or n8nOne store, one currency, an approval step in Slack or emailYou maintain the field mapping and the log
Custom code on your accountsSeveral stores or currencies, gift cards from POS and online, a card-level audit trailHigher build cost; it can run on Ecomsellertool Growth OS

What should stay with a person?

The rules find and sort; people decide. Your accountant sets the account map once, including how free cards issued as refunds and promotions are booked. Each month a person reviews the cards the workflow flags, explains or accepts any difference the mismatch table cannot, and approves the entry before the month closes. Expiry and unclaimed balances go to your accountant or counsel. A person also decides who may issue, disable or adjust cards in Shopify. Free cards and discount codes leak margin the same way, which our discount code leak alerts recipe watches on the code side.

Who builds gift card reconciliation for Shopify brands?

Ecomsellertool builds finance workflows like this one on your own Shopify and accounting accounts. We have built software on Amazon's seller APIs since 2017 and shipped 50+ tools for 100+ teams. We start with your accountant's account map and how your cards are issued, then build the pulls, the roll-forward, the checks and the review list. Send a project brief below, or read how our workflow automation service works.

The alerting and finance data sides of this recipe are work we have shipped:

  • Alerts that put a person on the right item. For AccountDr we built rule-based automation that notifies Amazon sellers about account events such as performance metrics, listing faults and stranded inventory, by push and email, so a person acts on the specific item instead of searching for it.
  • An accounting firm's data pipeline. For Zonkeepers, an accounting firm, we built an AWS pipeline that ingests Amazon order and finance reports into profit and loss analytics, with sales and expenses broken out.

Get this workflow built

Send us your version of this workflow

Describe the workflow you want automated. We reply with a written plan: scope, timeline and a fixed price.

A few sentences is enough: what happens today, who does it and how often.

Starts when you fill in the form

A quick private check that runs in your browser. No tracking, no puzzles.

A person reads every brief. You get a written plan within 2 business days; no obligation.

Frequently asked questions

Is a gift card sale revenue?

Not when it is sold. The money is received, but you still owe the customer goods, so it is usually held as a liability. It becomes revenue when the card is redeemed. Shopify reports it the same way: selling a gift card is not counted as a sale, and the redeemed item is counted as a sale later.

Why doesn't my Shopify gift card balance match QuickBooks?

The usual causes are free cards issued from the admin that were never booked, redemptions recorded as a payment method without reducing the liability, disabled cards that Shopify has zeroed but the ledger still holds, expired cards treated differently in each system, and month-end timing. A roll-forward splits the difference into those causes so you know which entry to fix.

How do I find my gift card liability in Shopify?

Use the Outstanding gift card balance report in Shopify's finance reports and read the ending gift card balance for the date you need. For movements during the month, the same gift card data shows value sold, value issued, value disabled and value adjusted. Redemptions come from the gift card entries in the payments data.

How should free gift cards from refunds or promotions be booked?

There is no single answer, and it is a decision for your accountant. A card issued instead of a cash refund is different from a promotional card given away. What matters for the workflow is that every free card is found, tagged with its reason and booked the same way each month, so the liability in the ledger matches Shopify.

What happens to the liability when a gift card expires or is disabled?

In Shopify, an expired card's remaining balance keeps counting in the outstanding balance, and a deactivated card's balance goes to zero. Whether and when your books release that value depends on the law that applies to you and your accountant's judgment. The workflow lists those cards and does not decide for you.

Can I automate gift card reconciliation without custom code?

Often, yes. At low volume a monthly spreadsheet fed by Shopify's gift card reports works. An accounting connector may already post gift card sales to a liability account. Custom code earns its cost with several stores or currencies, gift cards from more than one system, or a finance team that wants a card-level audit trail.

Jaimin Dholakia, founder of Ecomsellertool
Jaimin Dholakia · Founder
Schedule a call

Get this workflow built on your own systems.

Prefer to talk the workflow through first? Schedule a free call with the engineers who would build it. Selling on Amazon? The free 24-hour diagnostic finds the operations gaps in your account: connect it with Login with Amazon, on Amazon’s own consent screen (we only read data; we never change listings, prices, stock or ads), and get a report within 24 hours of connecting, on business days.

Free · 30 minutes · Pick any open slot