---
title: "Reloadgiftcardbynumber"
method: POST
path: "/v2/giftcards/programs/{programId}/cards/reload-by-number"
tags: ["Gift Cards"]
---

# Reloadgiftcardbynumber

`POST /v2/giftcards/programs/{programId}/cards/reload-by-number`

### Reload Gift Card by Card Number

Allows topping up a gift card using the card number instead of the card ID.
This is useful for POS/cashier scenarios where the cashier types or scans
a card number rather than looking up the internal ID.

**Business Rules**:
- Same rules as the standard reload endpoint
- Only ACTIVE cards can be reloaded
- Card must not be expired
- Reload amount: $0.01 - $5,000 per transaction
- Maximum card balance: $10,000

**Request Body**:
- `cardNumber`: The full card number (up to 20 chars)
- `amount`: Amount to add ($0.01 - $5,000)
- `referenceId`: External reference ID for tracking (optional)
- `description`: Transaction description (optional, defaults to "Gift card reload")

**Status Codes**:
- 200: Gift card reloaded successfully
- 400: Cannot reload (inactive, expired, or would exceed max balance)
- 404: Gift card not found

## Path parameters

- `programId` string, required

## Query parameters

- `cardId` string

## Headers

- `X-Eposn-Customer-Token` string, nullable
- `X-Eposn-Merchant-Token` string, nullable

## Request body

- ReloadByCardNumberRequest
  - `cardNumber` string, required
  - `amount` union, required
    - number
    - string
  - `referenceId` string, nullable
  - `description` string, nullable

## Response `200`

Successful Response

- GiftCardResponse
  - `id` string, required
  - `cardNumber` string, required
  - `balance` string, required
  - `initialValue` string, required
  - `status` 'pending' | 'active' | 'suspended' | 'expired' | 'voided' | 'depleted', required — Gift card status enumeration.
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, nullable, required
  - `activatedAt` string, date-time, nullable, required
  - `expiresAt` string, date-time, required
  - `suspendedReason` string, nullable, required
  - `suspendedUntil` string, date-time, nullable, required
  - `suspendedAt` string, date-time, nullable, required
  - `customerId` string, required
  - `customerEmail` string, nullable, required
  - `customerPhone` string, nullable, required
  - `customerName` string, nullable, required
  - `senderName` string, nullable
  - `merchantId` string, required
  - `merchantName` string, nullable
  - `isPhysical` boolean, required
  - `designTemplate` string, nullable, required
  - `customMessage` string, nullable, required
  - `lastFourDigits` string, required
  - `programId` string, required
  - `deliverAt` string, date-time, nullable
  - `delivered` boolean
  - `card` PassCard, required — The customer card object Attributes: serialNumber (str): The serial number of the customer pass passTypeIdentifier (str): The pass type identifier of the customer pass url (str): The shareable URL of the customer pass
    - `serialNumber` string, required
    - `passTypeIdentifier` string, required
    - `url` string, uri, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/loyalty/apis/loyaltydog.md) · [All operations](https://skmtc.net/loyalty/apis/loyaltydog/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/loyalty/loyaltydog/versions/42b7b22af2b6/schema)
