REST API
Gift Card API - Built to Power Every Store You Run
One REST API, the entire gift card lifecycle. Issue, sell, redeem, reload, and reverse digital and physical gift cards across every store and channel, then trigger reward workflows, loyalty points, and store credit from the same system.
5-Star Reviews

Trusted by teams at
What is a gift card API
Built to Handle the Entire Gift Card Lifecycle
A gift card API is the set of endpoints your app calls to create, sell, redeem, and track gift cards, so you never have to build a system to track balances, catch fraud, or store transaction history from scratch. As a gift card API provider, 99minds handles the full lifecycle for both digital and physical cards, and connects every transaction to the loyalty points and store credit already running on the same platform.
Issue & Sell
Create cards under a campaign, or sell digital or physical cards, single or bulk, complete with a custom greeting message and a scheduled delivery date.
Redeem & Reload
Apply a partial or full redemption, top up a balance, refund onto the card, or cash out what's left, all in one call.
Check Balance
Look up the balance, status, and expiration on any card, without needing a write call.
Sync via Webhooks
Every transaction fires a signed webhook, retried up to 5 times over roughly 4.5 hours. Nothing gets missed.
Cash Out
Cash out the remaining balance on a card in one call, where required by law or your own policy.
Refund
Refund a purchase back onto the card or to the original payment method, without touching the rest of the balance.
Void
Void a transaction outright, reversing it as if it never happened.
Activate & Deactivate
Turn a card on when it's ready to use, or deactivate it to block further redemptions and reloads without erasing its history.
Manual Adjustment
Debit or credit a card's balance directly for corrections, goodwill credits, or support cases, outside the normal redeem or reload flow.
Full paths, request bodies, and response schemas are in the API reference.
Gift card software with rewards built in
Gift Cards That Reward Customers, Automatically
Most gift card APIs treat a gift card as a one-off payout. 99minds gift card software connects it to what happens before and after that purchase, so every purchase can trigger a reward on its own.
Rewards, Built In
- A gift card purchase can automatically earn loyalty points
- Redeemed loyalty points can convert straight into gift card balance
- A partial refund reduces both balances by the same percentage, in one call
Multi-Store by Default
- Every request is tagged with a store_ref (a location ID), so a card issued at one location redeems at any other
- Per-store reporting on every issue, sell, redeem, and reload
- Single-store mode works the same way, just pass one reference
Auth, Rate Limits & Encryption, Published
- Sign in with an access token (a Bearer token), using separate keys for your website and your server
- 150 requests per minute per IP address, the same limit on every plan
- Every response tells you how many requests you have left, so there are no surprises
- Every request runs over TLS 1.2 or higher, and balances are encrypted at rest with AES-256
Signed Webhooks, Every Time
- Every transaction type fires an event, from issuance to redemption to refund
- Digitally signed (HMAC-SHA256), so you know it actually came from 99minds
- Retried up to 5 times, with a longer wait between each try, if your endpoint is briefly down
Real Code. Not a Contact Form.
Redeem a Gift Card in One Call
Pass a unique client_order_id on any request that changes a balance, to link it to your own order. A retried request never double-charges a balance.
Request
POST /api/v1/giftcards/redeem
{
"giftcard": {
"store_ref": "store_8412d0...",
"giftcard_number": "2179386532019412",
"redemption_amount": 2.45,
"client_order_id": "ODXXXXX2"
}
} 200 OK
{
"data": {
"transaction": {
"giftcard_number": "2179386532019412",
"balance": "97.55",
"transaction_type": "REDEMPTION",
"transaction_amount": "2.45"
}
},
"status": "OK",
"code": 200
}
From Sandbox to Production
Get Your First Gift Card API Call Running in Minutes
Get a sandbox key
Grab a sandbox access token from the docs, no sales call required to start testing.
Build against the sandbox
Issue, redeem, and expire test cards at sandbox.99minds.io with mock webhooks and rate limits that mirror production.
Go live
Swap in your production Bearer token. Basic integrations typically ship in under a day, full rollouts with webhooks and multi-store sync take one to two weeks.
Customer Success Stories
Don’t just take our word for it. Hear it from our successful customers. All Customer Stories
38%
Increase Average Spend Over Gift Card Value
Multi-Currency
AUS $ USD $ GBP £
30%
Increase in Sales due to rise in Gift card Redemption frequency
Saved 400hrs
Manual work

$640K
In Sales due to Promotional Gift Cards
45 Days
Summer Promotion
28%
Increase in AOV
Gift Card
As new promotion channel

25%
Increase in Customer LTV
Omnichannel
Online and In-store
40%
Higher Spending on Redemption
Gift Cards
As new marketing channel

$1.5M
In Sales due to Gift Card Promotion
60 Days
Social Media promotion with Heather Storm
20%
Increase in AOV
15%
Increase in Conversion Rate

25%
Increase in Customer LTV
30%
Increase in ARR
10%
Increase in AOV
Omnichannel Loyalty & Referral
New Customer Acquisition & Retention channel

15%
Increase in Customer LTV
20%
Increase in ARR
15%
Increase in AOV
Omnichannel Loyalty & Referral
New Customer Acquisition & Retention channel

Frequently Asked Questions
Everything you need to know about the 99minds gift card API - from platform integrations and lifecycle basics to security, webhooks, and cross-border currency support.
Yes. 99minds has native plugins for Shopify and BigCommerce that wrap the API and fire the same signed webhooks on every issue, redeem, reload, and refund, so you can activate gift cards from the app store without writing code. For headless or custom storefronts, you call the REST endpoints directly.
A gift card API is a set of HTTP endpoints that let your application issue, redeem, reload, and track gift cards programmatically, instead of you building that ledger yourself. A production-ready one should cover the full lifecycle: issuing and selling digital or physical cards, checking balances, redeeming full or partial amounts, reloading, refunding, voiding transactions, activating or deactivating cards, and cashing out remaining balances. It also needs signed webhooks so your app knows when something changes, Bearer token authentication with separate keys for client and server use, published rate limits, and a sandbox for testing before you touch live balances. The 99minds Gift Card API covers all of these out of the box, exposing nine lifecycle actions as REST endpoints, rate-limited at 150 requests per minute per IP address, plus multi-store routing and loyalty integration on the same gift card object.
Call the issue endpoint with a POST request specifying the card type (digital or physical), the amount, and optionally a campaign, a custom greeting message, and a scheduled delivery date. You can issue a single card for a one-off purchase or pass an array to issue in bulk, for example for a corporate rewards batch. The API generates and returns a unique gift card number for each card it creates.
At checkout, call the balance endpoint first to confirm the card is active and has enough funds, then apply the redemption with a POST request that includes a unique client_order_id tied to your order. That client_order_id makes the call idempotent, so if your checkout retries the request after a timeout, the card is never charged twice. The response returns the updated balance immediately, so you can apply it against the order total in the same request cycle.
Keep your API key server-side only. A client-side or mobile-embedded key is the most common way gift card credentials end up scraped and stuffed against checkout forms. Use separate keys for your website and your server, as 99minds' auth model supports, so a leaked client-side key can't be used to issue or redeem funds directly. Rate-limit redemption attempts per card and per IP on your own layer in addition to the API's published 150 requests per minute, log and alert on repeated failed redemption attempts against the same card number, and never log a full gift card number or claim code in plaintext. All traffic already runs over TLS 1.2 or higher with balances encrypted at rest with AES-256, but the application-layer controls above are still yours to implement. Every response also tells you how many requests you have left before you hit that limit, so you can back off proactively instead of discovering the ceiling mid-incident.
Every transaction, including redemption, fires a signed webhook the moment it happens, so you don't have to poll the balance endpoint to find out. 99minds signs each payload with HMAC-SHA256 so you can verify it actually came from 99minds before acting on it, and retries delivery up to 5 times over roughly 4.5 hours if your endpoint is briefly unreachable. Subscribe your endpoint once and you'll get an event for issuance, redemption, reload, refund, and void, so your app's own state stays in sync without extra API calls.
Every card and transaction carries a currency_code, so balances and redemptions are always denominated in a specific currency rather than converted silently behind the scenes. 99minds' multi-currency gift card solution lets Shopify and Shopify Plus merchants issue, sell, and redeem cards in a shopper's local currency, with conversion following Shopify's native exchange rate logic. If you're integrating directly against the REST API outside of Shopify, confirm current multi-currency and cross-border support for your specific setup with the 99minds team before launch.
There isn't a dedicated low-balance alert endpoint, but you can build one on top of the two primitives 99minds already exposes. Poll the balance endpoint for your pre-funded wallet's card on whatever schedule fits your risk tolerance, or, better, listen for the webhook events fired on every load and redemption against it, and trigger your own alert through email, Slack, or your on-call tool when the returned balance crosses a threshold you define. Because every webhook is signed and retried automatically, you won't miss the transaction that pushed the balance below your limit.
Issue cards in a single bulk call rather than looping one card at a time where possible. That keeps the batch atomic from your side and lets 99minds generate a unique code for every card in one request. For distribution, use the scheduled delivery date and custom greeting message fields to queue sends for a specific time, for example a Monday morning corporate rewards drop, instead of triggering delivery immediately at creation. For large one-time promotional drops, coordinate the batch size with your account team so it doesn't collide with account-level or per-minute rate limits.
Start Building
Ship gift cards without building the ledger yourself
Get sandbox access to the 99minds Gift Card API and start issuing, redeeming, and syncing gift cards today. REST endpoints, signed webhooks, and SDKs for every major platform.