Skip to Content
Gift cards

Gift cards

Issue one closed-loop BreezeGift card per request. The API auto-delivers a claim link to the recipient (email, and WhatsApp when a phone number is provided). Raw gift codes are never returned.

POST /ext/breeze/v1/giftcards/breeze/issue

Limits

RuleValue
Face value₦10,000 – ₦500,000
QuantityAlways 1
WalletDebited for the face value; 402 if balance is insufficient or no wallet is enrolled
Idempotencyrequest_id unique per merchant (409 on replay)

Request

FieldRequiredDescription
request_idYesYour idempotency key
face_valueYesAmount as a string, e.g. "10000"
currencyNoDefaults to NGN
recipient_nameYesName shown on the gift
recipient_emailYesClaim email destination
recipient_phoneNoNigerian MSISDN for WhatsApp delivery
buyer_nameNoSender name (defaults to Breeze)
buyer_emailNoOptional buyer confirmation
gift_messageNoShort message to the recipient

Example

curl -X POST "https://staging-intelligent-70287b6a3284.herokuapp.com/ext/breeze/v1/giftcards/breeze/issue" \ -H "Content-Type: application/json" \ -H "X-Merchant-Key: mk_live_your_key_id" \ -H "X-Merchant-Secret: sk_live_your_secret" \ -d '{ "request_id": "reseller-gift-001", "face_value": "10000", "currency": "NGN", "recipient_name": "Ada Okafor", "recipient_email": "ada@example.com", "recipient_phone": "08031234567", "buyer_name": "Reseller Co", "gift_message": "Enjoy your gift" }'

Success response (201)

{ "data": { "batch_id": 123, "request_id": "reseller-gift-001", "status": "issued", "recipient_email": "ada@example.com", "email_sent": true, "buyer_email_sent": false, "whatsapp_sent": true, "cards": [ { "id": 456, "claim_url": "https://breezegift.com/c/…", "whatsapp_url": "https://wa.me/…", "face_value": "10000", "balance": "10000", "currency": "NGN", "expires_at": "2027-07-28T00:00:00Z", "status": "active" } ] } }

The recipient opens claim_url (or the WhatsApp deep link) to claim and spend the card. Your integration should store request_id, batch_id, and claim_url — not a gift code.

Errors

HTTPMeaning
400Invalid body (face value out of range, missing recipient, etc.)
401Missing or invalid merchant credentials
402Insufficient wallet balance, or wallet not enrolled
409Duplicate request_id for this merchant
503Gift card service unavailable

Check balance before issuing: Wallet balance.

Last updated on