API Reference

Gift Cards

Configure a business's gift-card settings, sell new gift cards, redeem them against bookings or purchases, and list the cards a business has issued.

Scope and plan

Reads require gift-cards:read, mutations require gift-cards:write. API keys are available on the PRO and ENTERPRISE plans. Hard-deleting issued cards is a destructive operation and is not exposed to API keys.

Get gift-card settings

GET/gift-cards/settings/{businessId}
gift-cards:readPRO plan

Path parameters

NameTypeRequiredDescription
businessIduuidRequiredYour business id.
curl "https://api.salonify.eu/api/v1/gift-cards/settings/b_8f3a" \
  -H "X-API-Key: sk_live_..."
{
  "id": "gcs_11",
  "businessId": "b_8f3a",
  "isEnabled": true,
  "minAmount": 10,
  "maxAmount": 500,
  "expirationMonths": 12,
  "designs": [
    { "id": "d1", "name": "Classic", "imageUrl": "https://cdn.salonify.eu/gc/classic.png" }
  ]
}

Update gift-card settings

PATCH/gift-cards/settings/{businessId}
gift-cards:writePRO plan

Body parameters

NameTypeRequiredDescription
isEnabledbooleanOptionalEnable or disable gift-card sales.
minAmountnumberOptionalMinimum purchase amount (>= 1).
maxAmountnumberOptionalMaximum purchase amount (<= 10000).
expirationMonthsintegerOptionalValidity window in months (1-60).
designsobject[]OptionalArray of { id, name, imageUrl, backgroundColor? }.
curl -X PATCH "https://api.salonify.eu/api/v1/gift-cards/settings/b_8f3a" \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "minAmount": 20, "maxAmount": 300 }'
{ "id": "gcs_11", "businessId": "b_8f3a", "minAmount": 20, "maxAmount": 300, "isEnabled": true }

Sell a gift card

POST/gift-cards/purchase
gift-cards:writePRO plan

Idempotency

Pass an Idempotency-Key header to safely retry a purchase without issuing two cards.

Body parameters

NameTypeRequiredDescription
businessIduuidRequiredYour business id.
amountnumberRequiredFace value (>= 1).
recipientNamestringOptionalRecipient name.
recipientEmailstringOptionalRecipient email for delivery.
personalMessagestringOptionalGift message (max 500).
designIdstringOptionalSelected card design id.
deliveryMethodenumOptionalEMAIL or PRINT.
scheduledDeliveryAtstringOptionalISO date to schedule delivery.
curl -X POST "https://api.salonify.eu/api/v1/gift-cards/purchase" \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a91f..." \
  -d '{
    "businessId": "b_8f3a",
    "amount": 50,
    "recipientName": "Lea",
    "recipientEmail": "[email protected]"
  }'
{
  "id": "gc_77a2",
  "code": "GC-7XK2-9QPM",
  "initialAmount": 50,
  "remainingAmount": 50,
  "recipientName": "Lea",
  "recipientEmail": "[email protected]",
  "isRedeemed": false,
  "expiresAt": "2027-06-22T00:00:00.000Z",
  "createdAt": "2026-06-22T09:00:00.000Z"
}

Redeem a gift card

POST/gift-cards/redeem
gift-cards:writePRO plan

Body parameters

NameTypeRequiredDescription
codestringRequiredThe gift-card code.
amountnumberRequiredAmount to redeem (>= 0.01).
bookingIduuidOptionalAssociate the redemption with a booking.
curl -X POST "https://api.salonify.eu/api/v1/gift-cards/redeem" \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "code": "GC-7XK2-9QPM", "amount": 20 }'
{ "code": "GC-7XK2-9QPM", "redeemed": 20, "remainingAmount": 30 }

List issued gift cards

GET/gift-cards/business/{businessId}
gift-cards:readPRO plan

Path parameters

NameTypeRequiredDescription
businessIduuidRequiredYour business id.
curl "https://api.salonify.eu/api/v1/gift-cards/business/b_8f3a" \
  -H "X-API-Key: sk_live_..."
[
  {
    "id": "gc_77a2",
    "code": "GC-7XK2-9QPM",
    "initialAmount": 50,
    "remainingAmount": 30,
    "isRedeemed": false,
    "expiresAt": "2027-06-22T00:00:00.000Z"
  }
]