🎁 Gift Cards

Send a wish, not a wire

Wallet-backed gift cards with QR codes, personal messages, and instant redemption β€” for every AfriLink user across Africa. No card networks. No delays. Just real balance, shared instantly.

Get your @handle to start β†’ View API docs
Instant

Redemption speed

4

Card design themes

100

Bulk cards at once

54

Countries supported

How it works

Three steps. No friction. Real money, delivered as a gift.

01

Choose amount & design

Pick any amount from your wallet balance. Add a personal message (up to 160 characters) and choose from four card designs β€” Default, Birthday, Business, or Celebration.

02

Share code or QR

Every card gets a unique AFL-XXXX-XXXX-XXXX-XXXX code and a HMAC-signed QR. Share via WhatsApp, Telegram, or any channel β€” the code is the gift.

03

Recipient redeems instantly

The recipient enters the code or scans the QR in their AfriLink wallet. Balance is credited atomically β€” no processing delay, no partial states, no failed redemptions.

Everything you need in a gift card

πŸ’° Wallet-backed

Every card is backed by real AfriLink wallet balance. The issuer's wallet is debited atomically when the card is created β€” no IOUs, no float, no reconciliation risk.

πŸ“· QR Ready

Every card ships with a HMAC-SHA256-signed QR payload. Recipients scan from the AfriLink wallet camera or any QR reader β€” redemption completes in one tap.

πŸ‘₯ All user types

Individuals, merchants, and agents can all issue and redeem gift cards. Cross-type redemption is fully supported β€” an agent-issued card can be redeemed by any consumer.

πŸ”’ Secure by design

Card codes are stored as SHA-256 hashes only β€” the plaintext never touches our database. A full DB dump cannot reconstruct a single code. Double-spend is prevented by SELECT FOR UPDATE.

πŸ’Œ Personal message

Attach up to 160 characters of personal message to any card. The message is revealed only when the recipient redeems β€” not visible to anyone who intercepts the code.

πŸ”„ Cross-type redemption

Gift cards are universal within AfriLink. A merchant can redeem an individual-issued card. An agent can redeem a merchant-issued card. The balance always lands correctly.

πŸ” PIN protection

Optionally set a 4-digit PIN at issue time. The PIN is stored as a bcrypt hash β€” even AfriLink cannot recover it. The recipient must enter the PIN to redeem.

⏳ Expiry control

Cards default to a 12-month expiry. Issuers can choose between 1 and 24 months. An automated daily sweep expires overdue cards and triggers a refund back to the issuer's wallet.

Built for security

πŸ” Hash-only storage

Gift card codes are generated with 256 bits of entropy from crypto.randomBytes(32) and immediately hashed with SHA-256. Only the hash reaches the database. If the entire database were leaked, not a single card code could be reconstructed.

List views show only the first 8 characters of each code as a prefix β€” enough to identify a card, never enough to redeem it.

βš›οΈ Atomic transactions

Card issuance and redemption both run inside database transactions. The wallet debit and card creation happen together β€” if either fails, neither is committed. The same applies to redemption: status update and wallet credit are atomic.

A UNIQUE constraint on the code hash means two concurrent redemption attempts physically cannot both succeed.

πŸ›‘οΈ Rate limiting & KYC tiers

Issuance is rate-limited to 10 cards per wallet per 24 hours (configurable in admin settings). Card value is capped by the sender's KYC tier β€” Tier 0 up to $50, Tier 1 up to $500, Tier 2 up to $5,000, Tier 3 unlimited.

HMAC-SHA256 signing in every QR payload means a scanned code that fails signature verification is rejected before any database lookup runs.

For merchants: bulk gift card programs

πŸ—‚οΈ Issue up to 100 at once

Merchants can batch-issue up to 100 gift cards in a single API call. Ideal for promotions, loyalty rewards, and employee gifting programs β€” all deducted from the merchant wallet in one atomic operation.

πŸ”— @handle locking

Lock a card to a specific AfriLink @handle. Only that exact user can redeem it β€” useful for targeted loyalty rewards or VIP customer gifting where you want to prevent resale or transfer.

πŸ“Š Redemption tracking

The merchant dashboard shows every card issued: status (active, redeemed, expired, cancelled), redemption date, and redeemer type. Filter by date range, design, or status. Export data for your records.

🌍 WhatsApp & Telegram share

Every issued card generates a one-tap WhatsApp and Telegram share link. Your customers receive the card in the messaging app they already use β€” no app download required to receive the gift.

Start sending gifts today

You need an AfriLink @handle to issue or redeem gift cards. Claim yours in under two minutes β€” no bank account required.

Get your @handle to start β†’ View API docs