Skip to main content
POST
/
v2
/
giftcards
/
programs
/
{programId}
/
cards
/
bulk
Issue multiple gift cards
curl --request POST \
  --url https://api.loyalty.dog/v2/giftcards/programs/{programId}/cards/bulk \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "initialValue": 5000.005,
  "isPhysical": false,
  "designTemplate": "<string>",
  "expiresAt": "2023-11-07T05:31:56Z",
  "count": 2,
  "recipients": [
    {
      "customerEmail": "[email protected]",
      "customerPhone": "<string>",
      "customerName": "<string>",
      "senderName": "<string>",
      "customMessage": "<string>"
    }
  ]
}
'
{
  "issuedCount": 123,
  "cards": [
    {
      "id": "<string>",
      "cardNumber": "<string>",
      "lastFourDigits": "<string>"
    }
  ],
  "csvDownloadUrl": "<string>",
  "failedCount": 123
}

Authorizations

Authorization
string
header
required

JWT access token obtained from POST /v2/token.

Headers

idempotency-key
string | null
X-Eposn-Customer-Token
string | null
X-Eposn-Merchant-Token
string | null

Path Parameters

programId
string | null
required
Required string length: 24
Pattern: ^[0-9a-f]{24}$
Example:

"5eb7cf5a86d9755df3a6c593"

Query Parameters

cardId
string | null
Required string length: 24
Pattern: ^[0-9a-f]{24}$
Example:

"5eb7cf5a86d9755df3a6c593"

Body

application/json
initialValue
required
Required range: 0.01 <= x <= 10000
isPhysical
boolean
default:false
designTemplate
string | null
Maximum string length: 100
expiresAt
string<date-time> | null
count
integer | null
Required range: x >= 1
recipients
BulkIssueRecipient · object[] | null

Response

Successful Response

issuedCount
integer
required
cards
BulkIssuedCardSummary · object[]
required
csvDownloadUrl
string | null
failedCount
integer | null