Transfer Gift Card Balance

Transfers the balance from an existing gift card to a newly generated gift card. During the transfer, the source card is validated using the card number and passcode, and the specified amount is moved to the new card. Optionally, the source card can be deactivated after the transfer by enabling the isDeleteSourceCard flag. The API returns the newly created card details, transaction status, and transfer information upon successful completion.

Headers
  • x-applicationSource
    Type: string
    required

    A custom HTTP header that accepts a free-form string value. It is used to identify the application making the API request. For example, if Punchh invokes the API, the value could be "punchh".

  • X-LocationId
    Type: string
    required

    The unique location identifier for the store or business location processing the transaction.

  • Content-Type
    Type: string
    required

    The media type of the request body. Must be set to application/json.

  • Authorization
    Type: string
    required

    Bearer token for API authorization. Send in the format: Bearer ACCESS_TOKEN_GOES_HERE.

Body·
application/json

Request details to transfer the balance from an existing gift card to a newly generated gift card.

  • fromCardNumber
    Type: string
    max length:  
    30
    Pattern: ^\d+$
    required

    The card number from which the balance will be transferred.

  • referenceNumber
    Type: string
    min length:  
    1
    max length:  
    40
    Pattern: ^[0-9]+$
    required

    A unique reference number for the transaction.

  • transactionDateTimeUTC
    Type: string Format: date-time
    required

    The transaction date and time in UTC format.

  • userId
    Type: string
    required

    The unique identifier of the user requesting the balance transfer.

  • amount
    Type: number Format: double

    Amount to be transferred from one card to another. Pattern: ^\d+(\.\d{0,2})?$ (up to 2 decimal places).

  • channel
    Type: string · enum
    values
    • None
    • POS
    • Kiosk
  • fromGiftCardNumPassCode
    Type: string | null

    The passcode associated with the source gift card, used to validate the card during the transfer.

  • isDeleteSourceCard
    Type: boolean

    When enabled, the source card is deactivated after a successful balance transfer. Ignored when the source is not a saved card for the user.

  • paymentSource
    Type: string · enum
    values
    • ScanToPay
    • Online
    • None
  • transactionDateTimeLocal
    Type: string | null Format: date-time

    The transaction date and time in local format.

Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/giftcard/v1/balanceTransfer
curl https://SERVER_NAME_GOES_HERE.partech.com/giftcard/v1/balanceTransfer \
  --request POST \
  --header 'x-applicationSource: ' \
  --header 'X-LocationId: ' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer ACCESS_TOKEN_GOES_HERE' \
  --data '{
  "userId": "USER_ID_GOES_HERE",
  "fromCardNumber": "FROM_GIFT_CARD_NUMBER_GOES_HERE",
  "fromGiftCardNumPassCode": "FROM_GIFT_CARD_PASSCODE_GOES_HERE",
  "referenceNumber": "258",
  "amount": 1000,
  "transactionDateTimeUTC": "2026-03-06T11:28:29.7471985Z",
  "transactionDateTimeLocal": "2026-03-06T11:28:29.747",
  "isDeleteSourceCard": false,
  "paymentSource": "ScanToPay",
  "channel": null
}'
{
  "parPayTransactionId": "TRANSACTION_ID_GOES_HERE",
  "newCardNumber": "6035718880040240052",
  "newCardPasscode": "NEW_CARD_PASSCODE_GOES_HERE",
  "amount": 1000,
  "status": "Success",
  "statusMessage": "APPROVAL",
  "transactionDateTimeUTC": "2026-03-06T11:28:29.7472946Z"
}