We're building the future of agentic promotions. Sign up for early access!
Sign upREST API
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
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.
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.
Apply a partial or full redemption, top up a balance, refund onto the card, or cash out what's left, all in one call.
Look up the balance, status, and expiration on any card, without needing a write call.
Every transaction fires a signed webhook, retried up to 5 times over roughly 4.5 hours. Nothing gets missed.
Cash out the remaining balance on a card in one call, where required by law or your own policy.
Refund a purchase back onto the card or to the original payment method, without touching the rest of the balance.
Void a transaction outright, reversing it as if it never happened.
Turn a card on when it's ready to use, or deactivate it to block further redemptions and reloads without erasing its history.
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
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.
Real Code. Not a Contact Form.
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
Grab a sandbox access token from the docs, no sales call required to start testing.
Issue, redeem, and expire test cards at sandbox.99minds.io with mock webhooks and rate limits that mirror production.
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.
Don’t just take our word for it. Hear it from our successful customers. All Customer Stories
Increase Average Spend Over Gift Card Value
AUS $ USD $ GBP £
Increase in Sales due to rise in Gift card Redemption frequency
Manual work

In Sales due to Promotional Gift Cards
Summer Promotion
Increase in AOV
As new promotion channel

Increase in Customer LTV
Online and In-store
Higher Spending on Redemption
As new marketing channel

In Sales due to Gift Card Promotion
Social Media promotion with Heather Storm
Increase in AOV
Increase in Conversion Rate

Increase in Customer LTV
Increase in ARR
Increase in AOV
New Customer Acquisition & Retention channel

Increase in Customer LTV
Increase in ARR
Increase in AOV
New Customer Acquisition & Retention channel

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
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.