Title: ZapGifts: Gift Cards &amp; Gift Certificates
Author: mikefifield
Published: <strong>October 28, 2026</strong>
Last modified: October 28, 2026

---

Search plugins

![](https://ps.w.org/zapgifts-gift-cards-gift-certificates/assets/banner-772x250.
png?rev=3771808)

![](https://ps.w.org/zapgifts-gift-cards-gift-certificates/assets/icon-256x256.png?
rev=3771772)

# ZapGifts: Gift Cards & Gift Certificates

 By [mikefifield](https://profiles.wordpress.org/mikefifield/)

[Download](https://downloads.wordpress.org/plugin/zapgifts-gift-cards-gift-certificates.1.4.0.zip)

 * [Details](https://wordpress.org/plugins/zapgifts-gift-cards-gift-certificates/#description)
 * [Reviews](https://wordpress.org/plugins/zapgifts-gift-cards-gift-certificates/#reviews)
 *  [Installation](https://wordpress.org/plugins/zapgifts-gift-cards-gift-certificates/#installation)
 * [Development](https://wordpress.org/plugins/zapgifts-gift-cards-gift-certificates/#developers)

 [Support](https://wordpress.org/support/plugin/zapgifts-gift-cards-gift-certificates/)

## Description

ZapGifts helps restaurants, salons, spas, studios, tour operators and shops sell
gift cards and gift certificates from their own WordPress site. You put a gift card
form on a page, the recipient gets an eGift card by email, and you track the balance
in wp-admin until it is spent.

A restaurant can sell dinner for two as a December gift. A salon or day spa might
sell a haircut or a massage, and a yoga studio a month of classes. The buyer can
add a personal message, and the recipient can spend the card over several visits
until the balance runs out.

#### Three ways to take payment

You choose during setup, and you can change it later.

 1. **Online, with a free ZapGifts account.** Connect a ZapGifts account and your gift
    card forms take card payments through your own Stripe or Square account. The money
    goes to your processor account. ZapGifts charges 2.9% + $0.30 per gift card sold
    through ZapGifts checkout, plus your processor’s normal fee. On a $50 gift card,
    the ZapGifts fee is $1.75. There is no monthly fee. ZapGifts bills its fees weekly
    to a card you add in your ZapGifts account. Current rates are at https://www.zapgifts.
    com/pricing.
 2. **Through WooCommerce.** Sell gift cards as a WooCommerce product in the checkout
    you already run. Customers can spend their gift card balance at both the classic
    checkout and the block checkout. ZapGifts charges no fees on WooCommerce sales,
    and the plugin never sends WooCommerce orders to ZapGifts.
 3. **Order requests you collect payment for yourself.** The form sends you an order
    request instead of taking payment. The buyer gets an email saying you will contact
    them about payment. The card waits in the awaiting-payment queue and can’t be used
    yet. Once the buyer has paid you in person or over the phone, click “Mark paid &
    send” and the recipient gets the gift card by email.

#### Free in WordPress, with no limits

 * Unlimited gift cards, each with bundled artwork (General, Happy Birthday, Wedding
   or Christmas) or your own image from the media library
 * Fixed amounts, or amounts the buyer chooses between a minimum and maximum you
   set
 * A live preview while you edit a gift card
 * Gift card form and balance lookup as blocks or shortcodes
 * Order requests with an awaiting-payment queue and “Mark paid & send”
 * Gift card emails with your own subject line and card colors, plus CC and BCC
 * Full and partial redemption, with an activity log for every card
 * Balance adjustments with staff notes, and a void action for cards that should
   not be used
 * Reports on sales and outstanding liability, meaning the unspent balances you 
   owe customers
 * CSV import for existing or physical gift cards, CSV export at any time, and bulk
   code generation for printed cards
 * A WooCommerce gift card product type, with balance redemption at the classic 
   and block checkout

#### What a free ZapGifts account adds

 * Card payments on your gift card forms through your own Stripe or Square account
 * Buyers can pick a future delivery date, which suits birthdays and holidays
 * Printable PDF gift cards with a scannable barcode
 * A sales dashboard at zapgifts.com

Connecting is optional. Everything in the free list above keeps working without 
an account.

Until you connect, ZapGifts screens show short tips about taking payment online,
which you can dismiss, and the “Gift card order awaiting payment” email you get 
for each order request has one line about connecting. To turn both off, untick “
Show ZapGifts connection tips” under ZapGifts > Settings (General tab, Advanced 
section).

Cards sold through ZapGifts checkout are redeemed in your ZapGifts dashboard, which
holds their balance. WordPress keeps a read-only copy of each one so all your gift
cards show up in one list. Sales completed on ZapGifts after you connect are copied
here.

The bundled gift card artwork is made by ZapGifts and released under GPLv2 or later,
the same license as the plugin.

### External Services

This plugin can connect to ZapGifts (https://www.zapgifts.com), a gift card checkout
service run by ZapGifts. The plugin sends nothing to ZapGifts until a site administrator
clicks Connect ZapGifts on the ZapGifts > Connect page, or pastes an API key there
under “Advanced: connect with an API key”. Once you are connected, that menu item
reads “ZapGifts Account”. This readme calls it the Connect page either way. On sites
that sell through WooCommerce or take order requests without connecting, the plugin
never sends anything to ZapGifts.

Here is every way the plugin talks to ZapGifts, when it happens, and what is sent.
Every request from your server goes to https://www.zapgifts.com. The one exception
is artwork for imported cards, described under Gift card import.

 * **Connect link.** Clicking Connect ZapGifts sends your browser to https://www.
   zapgifts.com/register with your site URL, your site name, the address on your
   site that ZapGifts sends you back to, a random one-time state value, and source
   =wordpress. You sign in or create an account there and approve the connection.
   This is a link your browser follows, and the plugin sends nothing from your server
   at this step.
 * **Code exchange.** After you approve, ZapGifts sends your browser back to your
   site with a one-time code. Your site sends that code and your site URL to POST
   https://www.zapgifts.com/api/v1/plugin/connect/exchange and receives an API key,
   which is stored in your WordPress database.
 * **Account status.** GET https://www.zapgifts.com/api/v1/plugin/entitlements confirms
   the API key works. It reads your account name and currency, your fee rate, which
   payment processors you connected, and whether a billing card is on file. The 
   Connect page uses this for its setup checklist. It runs when you connect or save
   a key, and when you click Check connection or Retry setup. While you are connected
   but have no Stripe or Square account set up in ZapGifts, it also runs when you
   open the Connect page, at most once a minute.
 * **Webhook registration.** POST https://www.zapgifts.com/api/v1/plugin/webhooks
   sends your site’s webhook address (the one under Incoming webhooks below) so 
   ZapGifts can tell your site about completed sales. ZapGifts replies with the 
   secret it signs them with. It runs when you connect or save a key, and again 
   on Check connection or Retry setup if the webhook is missing.
 * **Gift card sync.** The plugin creates or updates a matching gift card at https://
   www.zapgifts.com/api/v1/gift-cards at these times: for every active gift card
   when you connect or save a key; for one gift card each time you save it with 
   Active ticked on the Gift Cards screen while connected; for active gift cards
   that aren’t linked yet when you click Link now in the setup checklist on the 
   Connect page or the Welcome page; and for every active gift card when you change
   Default expiration in ZapGifts > Settings while connected. It sends the gift 
   card’s name, description, price (or its minimum, maximum and a few preset amounts),
   artwork image URL, expiry, and whether it is active. New cards are marked so 
   they stay off the public ZapGifts browse page. Before it updates a linked fixed-
   price card, the plugin reads that card from the same address (GET with the card’s
   id). If you set that card in ZapGifts to issue more than its price, the higher
   amount is kept unless you change the price in WordPress. When you save a linked
   gift card with Active unticked, or delete it, the plugin sets its ZapGifts card
   to draft so it stops selling.
 * **Gift card import.** GET https://www.zapgifts.com/api/v1/gift-cards lists the
   gift cards in your ZapGifts account. The plugin does this when you connect or
   save a key, to check that linked cards still exist, and when you click “Import
   cards you created on ZapGifts” on the Connect page or “Import from ZapGifts” 
   on the Gift Cards screen. Artwork for imported cards is downloaded into your 
   media library from the image address saved on the card in ZapGifts. Images uploaded
   to ZapGifts are on www.zapgifts.com. If you entered an image address from another
   site on a card in ZapGifts, the plugin downloads the image from that address.
 * **Checkout sessions.** When a buyer submits a gift card form that takes online
   payment, the plugin sends POST https://www.zapgifts.com/api/v1/plugin/checkout-
   sessions with the ZapGifts gift card id, the amount, currency and quantity, the
   purchaser’s and recipient’s names and email addresses, the personal message, 
   the delivery date the buyer picked (if any), the id of the gift card in WordPress,
   source=wordpress, and the page address to return to. The buyer then pays on the
   ZapGifts checkout page, and their card details go to your Stripe or Square account
   without passing through WordPress.
 * **Incoming webhooks.** When a gift card sells through ZapGifts checkout, ZapGifts
   sends a signed POST request to /wp-json/zapgifts/v1/webhooks/zapgifts on your
   site. It carries the order number and date, the buyer’s and recipient’s names
   and email addresses, the message, and each card’s code, amount, balance, currency
   and expiration date, so WordPress can keep a copy. Requests without a valid signature
   are rejected.
 * **Disconnect.** Clicking Disconnect on the Connect page, or deleting the plugin,
   sends DELETE https://www.zapgifts.com/api/v1/plugin/connection with your site
   URL. ZapGifts stops sending webhooks to this site. A key created by the Connect
   ZapGifts button is revoked. A key you pasted in yourself stays active in ZapGifts,
   because it may serve other tools, and you can delete it under API Keys in your
   ZapGifts dashboard. The plugin then deletes the key from WordPress.
 * **Links to zapgifts.com.** Some pages link to www.zapgifts.com. A link sends 
   nothing from your server, and a browser only contacts ZapGifts when someone clicks
   it. On the public balance lookup, a card sold through ZapGifts checkout shows
   a link to https://www.zapgifts.com/redeem in place of its balance (see Privacy).
   The “Powered by ZapGifts” link shows on a gift card form only if you turn it 
   on. Links in wp-admin to ZapGifts pages, such as pricing and your ZapGifts dashboard,
   add source=wordpress-plugin to the address.

After you connect, every request your site sends to the ZapGifts API carries your
API key in a request header and names the plugin and its version in the User-Agent
header. The artwork download for imported cards sends neither.

ZapGifts terms of service: https://www.zapgifts.com/terms
 ZapGifts privacy policy:
https://www.zapgifts.com/privacy

### Privacy

Gift card records are stored in your WordPress database. They can include purchaser
and recipient names, email addresses, personal messages, staff notes, gift card 
codes, balances and each card’s activity log. For gift cards sold through WooCommerce,
the order item also stores the recipient’s name and email address, the purchaser’s
name and the message.

The plugin adds no tracking or analytics to your site. A “Powered by ZapGifts” link
shows on a gift card form only if you tick “Show Powered by ZapGifts link” when 
you edit that gift card. It is off by default.

The public balance lookup shows only the balance, status and expiration date for
the code entered. A card that is awaiting payment or void shows only a note that
it isn’t active. For a card sold through ZapGifts checkout, the lookup shows a link
to https://www.zapgifts.com/redeem in place of the balance, because ZapGifts keeps
that card’s balance. The code is not added to the link, and your site sends nothing
to ZapGifts. If the visitor clicks the link, zapgifts.com opens in a new tab and
the ZapGifts privacy policy applies there.

If you connect ZapGifts, the data described under External Services is shared with
ZapGifts and handled under its privacy policy. WooCommerce orders are never sent
to ZapGifts.

The plugin adds suggested text for your privacy policy, which you can copy from 
Settings > Privacy (Policy Guide tab). It also works with the WordPress personal
data tools under Tools > Export Personal Data and Tools > Erase Personal Data. Erasing
replaces the person’s own name and email address, and the personal message, on each
gift card that has their email address. It does the same in the card’s activity 
log and staff notes and, for gift cards sold through WooCommerce, in the order item.
The code, amount and balance stay, so the card can still be redeemed. WooCommerce’s
own privacy tools handle the rest of a WooCommerce order, such as the billing details.

## Screenshots

[⌊Welcome page with the setup checklist⌉⌊Welcome page with the setup checklist⌉[

Welcome page with the setup checklist

[⌊Gift card editor with a live preview⌉⌊Gift card editor with a live preview⌉[

Gift card editor with a live preview

[⌊Gift card order form on a page⌉⌊Gift card order form on a page⌉[

Gift card order form on a page

[⌊Orders screen with a notice about orders awaiting payment⌉⌊Orders screen with 
a notice about orders awaiting payment⌉[

Orders screen with a notice about orders awaiting payment

[⌊An order awaiting payment, with Mark paid & send and the order details⌉⌊An order
awaiting payment, with Mark paid & send and the order details⌉[

An order awaiting payment, with Mark paid & send and the order details

[⌊Connect page after connecting, with the setup checklist⌉⌊Connect page after connecting,
with the setup checklist⌉[

Connect page after connecting, with the setup checklist

[⌊Balance lookup⌉⌊Balance lookup⌉[

Balance lookup

## Blocks

This plugin provides 2 blocks.

 *   Gift Card Order Form Show one of your gift card templates so customers can 
   buy it or send you an order request.
 *   Gift Card Balance Check Let customers enter a gift card code and see the balance
   left on it.

## Installation

 1. In wp-admin, go to Plugins > Add Plugin (called “Add New Plugin” or “Add New” in
    older WordPress versions), search for “ZapGifts”, then install and activate the
    plugin.
 2. Open ZapGifts in the admin menu. The Welcome page has a short setup checklist.
 3. Choose how customers pay: online with ZapGifts, through WooCommerce, or order requests.
 4. Create your first gift card on the Gift Cards screen and pick its artwork and amount.
 5. Publish it. The Welcome page can create a Gift Cards page for you, or you can add
    the Gift Card Order Form block to any page. The shortcode `[zapgifts_gift_card 
    id="1"]` also works.
 6. Add the Gift Card Balance Check block, or the `[zapgifts_lookup]` shortcode, so
    customers can check their balance.

## FAQ

### Do I need a ZapGifts account?

No. Order requests, WooCommerce sales, redemption, balance lookup, reports and the
CSV tools all work without an account. You only need an account if you want your
gift card forms to take card payments online without WooCommerce.

### What does ZapGifts cost?

Connecting is free and there is no monthly fee. When a gift card sells through ZapGifts
checkout, ZapGifts charges 2.9% + $0.30, plus your payment processor’s normal fee.
On a $50 gift card, the ZapGifts fee is $1.75. ZapGifts adds up the week’s fees 
and charges them to a card you add in your ZapGifts account. In your ZapGifts settings
you can choose to add the fee to the buyer’s total instead. Businesses with higher
sales can ask about a lower rate. Current rates are at https://www.zapgifts.com/
pricing, and after you connect, the Connect page shows your account’s rate.

Order requests and WooCommerce sales have no ZapGifts fee.

### Which payment processors work with ZapGifts?

Stripe or Square. You connect your own Stripe or Square account inside ZapGifts,
and the money from each sale goes to that account. Any other processor connected
in ZapGifts isn’t used for gift card forms on your WordPress site.

### I already take payments with Square. Why would I use ZapGifts?

Square has its own gift card program, and it works well inside Square. ZapGifts 
is built for selling from your WordPress site. The form sits on your own pages, 
the records sit in your WordPress database, and it works with Stripe or Square. 
If you switch processors later, the gift cards you already sold keep working. Stripe
does not include a gift card program, so Stripe users get one here.

### Can customers order gift cards without WooCommerce or an account?

Yes. The form creates an order request. The buyer gets an email saying you will 
contact them to arrange payment, and you get an email with a link to the request.
It also appears in the awaiting-payment queue on the Orders screen. After the buyer
pays you, open the order and click “Mark paid & send”. Until then the card can’t
be redeemed and the buyer never sees its code.

### Does it work with the WooCommerce block checkout?

Yes. Customers can apply a gift card balance on the block Cart and Checkout and 
on the classic cart and checkout pages. The one exception is cards sold through 
ZapGifts checkout. Those are redeemed in your ZapGifts dashboard.

### How do WooCommerce gift card orders work?

A gift card is issued once the order is paid. Cash on delivery, bank transfer and
check orders issue the card when you mark the order Completed. When a customer pays
with a gift card balance, the balance is taken as the order is placed and put back
if the order is cancelled, fails, or is fully refunded. Unused gift cards are voided
when the order that bought them is cancelled or refunded. Coupons don’t apply to
gift card products.

### How do I redeem a gift card in person?

Search for the code on the Orders screen and click View. Enter the amount spent 
under “Partial redemption amount” and click Redeem Partial Amount, or click Mark
Fully Redeemed. A partial redemption keeps the rest of the balance on the card, 
and every redemption shows in the card’s activity log. Cards sold through ZapGifts
checkout are redeemed in your ZapGifts dashboard, and WordPress keeps a read-only
copy.

### Can I sell printable gift certificates or vouchers?

Every card is emailed as an eGift card with your artwork, the amount and the code.
Printable PDF gift cards with a barcode come with a ZapGifts account, for cards 
sold through ZapGifts checkout. If you print physical cards yourself, use bulk generation
to create the codes and export them as a CSV file for your printer.

### What happens if I disconnect ZapGifts?

Forms linked to ZapGifts go back to taking order requests. Every gift card already
sold keeps working. Cards sold through ZapGifts checkout stay in your ZapGifts dashboard
for redemption, and WordPress keeps its copies. ZapGifts revokes a key created by
the Connect ZapGifts button. A key you pasted in yourself stays active in ZapGifts
until you delete it there. Either way, the plugin deletes the key from WordPress.

### What does the balance lookup show?

The current balance, status and expiration date. It never shows names, email addresses
or messages. A card that is awaiting payment or void shows only a note that it isn’t
active. A card sold through ZapGifts checkout shows a link to check its balance 
on zapgifts.com, because ZapGifts keeps that balance.

### What happens when I uninstall the plugin?

Uninstalling always disconnects the site from ZapGifts and deletes the stored API
key. A key created by the Connect ZapGifts button is revoked in ZapGifts too. Your
gift card data stays by default, because unspent balances are money you owe customers.
If you tick “Delete all gift card data when the plugin is uninstalled” under ZapGifts
> Settings (General tab, Advanced section) before you delete the plugin, uninstalling
also removes the plugin’s tables, settings and saved notices. WooCommerce orders
are never deleted.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“ZapGifts: Gift Cards & Gift Certificates” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ mikefifield ](https://profiles.wordpress.org/mikefifield/)

[Translate “ZapGifts: Gift Cards & Gift Certificates” into your language.](https://translate.wordpress.org/projects/wp-plugins/zapgifts-gift-cards-gift-certificates)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/zapgifts-gift-cards-gift-certificates/),
check out the [SVN repository](https://plugins.svn.wordpress.org/zapgifts-gift-cards-gift-certificates/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/zapgifts-gift-cards-gift-certificates/)
by [RSS](https://plugins.trac.wordpress.org/log/zapgifts-gift-cards-gift-certificates/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.4.0

 * First release on WordPress.org.
 * Gift cards with bundled artwork, fixed or buyer-chosen amounts, and a live preview.
 * Order requests with an awaiting-payment queue and “Mark paid & send”.
 * WooCommerce gift card product, with balance redemption at the classic and block
   checkout.
 * Online payment through a free ZapGifts account, with one-click connect and a 
   setup checklist.
 * Balance lookup, reports, CSV import and export, and bulk code generation.

## Meta

 *  Version **1.4.0**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [gift cards](https://wordpress.org/plugins/tags/gift-cards/)[gift certificates](https://wordpress.org/plugins/tags/gift-certificates/)
   [store credit](https://wordpress.org/plugins/tags/store-credit/)[vouchers](https://wordpress.org/plugins/tags/vouchers/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/zapgifts-gift-cards-gift-certificates/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/zapgifts-gift-cards-gift-certificates/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/zapgifts-gift-cards-gift-certificates/reviews/)

## Contributors

 *   [ mikefifield ](https://profiles.wordpress.org/mikefifield/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/zapgifts-gift-cards-gift-certificates/)