---
title: "Transfer Loyalty Points"
method: POST
path: "/v1/loyalties/{campaignId}/members/{memberId}/transfers"
tags: ["Loyalties"]
---

# Transfer Loyalty Points

`POST /v1/loyalties/{campaignId}/members/{memberId}/transfers`

Transfer points between different loyalty cards which have holders.

Provide the campaign ID and the loyalty card ID you want the points to be transferred to as path parameters. In the request body, provide the loyalty cards you want the points to be transferred from and the number of points to transfer from each card.

Transfer works only for loyalty cards that have holders, meaning the cards were published to customers.

The transferred points expire according to the target program expiration rules.

## Request body

- LoyaltiesTransferPoints[] — Response body schema for **POST** `v1/loyalties/{campaignId}/members/{memberId}/transfers`.
  - `code` string, required — Unique loyalty card code from which the user wants to transfer loyalty points (source).
  - `points` integer, required — The number of loyalty points that the user wants to transfer to another loyalty card. The number of points cannot be higher than the current balance on the loyalty card (source).
  - `reason` string — Reason for the transfer.
  - `source_id` string, required — The merchant's transaction ID if it is different from the Voucherify transaction ID. It is really useful in case of an integration between multiple systems. It can be a transaction ID from a CRM system, database or 3rd-party service.

## Response `200`

Returns a loyalty card object for the loaded loyalty card, ie. the one that that points were transferred to from the other cards(s).

- LoyaltiesMembersTransfersCreateResponseBody — Response body schema for **POST** `v1/loyalties/{campaignId}/members/{memberId}/transfers`.
  - `id` string, required — Assigned by the Voucherify API, identifies the voucher.
  - `code` string, required — A code that identifies a voucher. Pattern can use all letters of the English alphabet, Arabic numerals, and special characters.
  - `campaign` string — A unique campaign name, identifies the voucher's parent campaign.
  - `campaign_id` string — Assigned by the Voucherify API, identifies the voucher's parent campaign.
  - `category` string, nullable, required — Tag defining the category that this voucher belongs to. Useful when listing vouchers using the List Vouchers endpoint.
  - `category_id` string, nullable, required — Unique category ID assigned by Voucherify.
  - `categories` Category[]
    - `id` string, required — Unique category ID assigned by Voucherify.
    - `name` string, required — Category name.
    - `hierarchy` integer, required — Category hierarchy. Categories with lower hierarchy are processed before categories with higher hierarchy value.
    - `object` 'category', required — The type of the object represented by the JSON. This object stores information about the category.
    - `created_at` string, date-time, required — Timestamp representing the date and time when the category was created. The value is shown in the ISO 8601 format.
    - `updated_at` string, date-time — Timestamp representing the date and time when the category was updated. The value is shown in the ISO 8601 format.
  - `type` 'LOYALTY_CARD', required — Defines the type of the voucher.
  - `loyalty_card` object, required — Object representing loyalty card parameters. Child attributes are present only if type is LOYALTY_CARD.
    - `points` integer, required — Total number of points added to the loyalty card over its lifespan.
    - `balance` integer, required — Points available for reward redemption. This is calculated as follows: `balance` = `points` - `expired_points` - `subtracted_points` - `redemption.redeemed_points`.
    - `next_expiration_date` string — The next closest date when the next set of points are due to expire.
    - `next_expiration_points` integer — The amount of points that are set to expire next.
    - `pending_points` integer — Shows the number of pending points that will be added to the loyalty card when they are activated automatically or manually.
    - `expired_points` integer — Shows the total number of expired points over the lifetime of the loyalty card.
    - `subtracted_points` integer — Shows the total number of subtracted points over the lifetime of the loyalty card.
  - `start_date` string, date-time, nullable, required — Activation timestamp defines when the code starts to be active in ISO 8601 format. Voucher is inactive before this date.
  - `expiration_date` string, date-time, nullable, required — Expiration timestamp defines when the code expires in ISO 8601 format. Voucher is inactive after this date.
  - `validity_timeframe` ValidityTimeframe, required — Set recurrent time periods when the earning rule is valid. For example, valid for 1 hour every other day.`start_date` **required** when including the `validity_timeframe`.
    - `duration` string — Defines the amount of time an earning rule will be active in ISO 8601 format. For example, an earning rule with a `duration` of `PT1H` will be valid for a duration of one hour.
    - `interval` string — Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, an earning rule with an `interval` of `P2D` will be valid every other day.
  - `validity_day_of_week` integer[], required — Integer array corresponding to the particular days of the week in which the voucher is valid. - `0` Sunday - `1` Monday - `2` Tuesday - `3` Wednesday - `4` Thursday - `5` Friday - `6` Saturday
  - `validity_hours` ValidityHours — Determines the hours of validity, e.g. to create a happy hours scenario.
    - `daily` object[] — Defines the recurring period(s) when the resource is active. The periods should not overlap.
      - `start_time` string, time — Defines the starting hour of validity in the HH:mm format. The resource is *inactive before* this time.
      - `days_of_week` integer[] — Integer array corresponding to the particular days of the week in which the resource is valid. - `0` Sunday - `1` Monday - `2` Tuesday - `3` Wednesday - `4` Thursday - `5` Friday - `6` Saturday
      - `expiration_time` string, time — Defines the ending hour of validity in the HH:mm format. The resource is *inactive after* this time.
  - `publish` object — This object stores a summary of publish events: an events counter and an endpoint which can be called to return details of each event. A publication is required for loyalty cards and referral codes. This object gets updated whenever a voucher has been published. Publication means assigning a code to a particular customer. Typically, a publication is made by distributing your codes to your customers, e.g. through Export to MailChimp or publish voucher API method.
    - `object` 'list', required — The type of the object represented is by default list. To get this list, you need to make a call to the endpoint returned in the url attribute.
    - `count` integer — Publication events counter.
    - `entries` string[]
    - `url` string — The endpoint where this list of publications can be accessed using a **GET** method. /v1/vouchers/{voucher_code}/publications
  - `redemption` object — Stores a summary of redemptions that have been applied to the voucher.
    - `quantity` integer, nullable, required — How many times a voucher can be redeemed. A null value means unlimited.
    - `redeemed_points` integer — Total loyalty points redeemed.
    - `redeemed_quantity` integer — How many times a voucher has already been redeemed.
    - `object` 'list' — The type of the object represented is by default list. To get this list, you need to make a call to the endpoint returned in the url attribute.
    - `url` string — The endpoint where this list of redemptions can be accessed using a **GET** method. /v1/vouchers/{voucher_code}/redemptions
  - `active` string, required — A flag to toggle the voucher on or off. You can disable a voucher even though it's within the active period defined by the start_date and expiration_date. - `true` indicates an active voucher - `false` indicates an inactive voucher
  - `additional_info` string, nullable, required — An optional field to keep any extra textual information about the code such as a code description and details.
  - `metadata` object, required — The metadata object stores all custom attributes assigned to the code. A set of key/value pairs that you can attach to a voucher object. It can be useful for storing additional information about the voucher in a structured format.
  - `assets` object — Stores links to images of QR and barcode that correspond to an encrypted voucher code.
    - `qr` object — Stores Quick Response (QR) representation of encrypted code.
      - `id` string — Encrypted voucher code ID.
      - `url` string — URL to QR code *Optional:* Attach query parameters to base URL to customize the image of the encrypted voucher code. - `size`: integer value from `1` to `100` - `format`: string, either `png` (default) or `svg`
    - `barcode` object — Stores barcode representation of encrypted code.
      - `id` string — Encrypted voucher code ID.
      - `url` string — URL to barcode *Optional:* Attach query parameters to base URL to customize the image of the encrypted voucher code. - `size`: integer value from `1` to `100` - `format`: string, either `png` (default) or `svg`
  - `is_referral_code` boolean, required — Flag indicating whether this voucher is a referral code; `true` for campaign type `REFERRAL_PROGRAM`.
  - `holder_id` string — Unique customer identifier of the redeemable holder. It equals to the customer ID assigned by Voucherify.
  - `updated_at` string, date-time — Timestamp representing the date and time when the voucher was last updated in ISO 8601 format.
  - `created_at` string, date-time, required

---

[API](https://skmtc.net/voucherifyio/apis/voucherify-api-async-actions.md) · [All operations](https://skmtc.net/voucherifyio/apis/voucherify-api-async-actions/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/voucherifyio/voucherify-api-async-actions/revisions/4982266e0494/schema)
