---
title: "Check Points Transfer Eligibility"
method: POST
path: "/points/isTransferable"
---

# Check Points Transfer Eligibility

`POST /points/isTransferable`

Checks if specific points of a customer can be transferred to another customer.

## Request body

- object
  - `programId` integer — Program ID from which points has to be transferred. Applicable for multi-program orgs.
  - `groupProgramTransfer` boolean — Pass `true` to check group points transfer details.
  - `notes` string — Information to store for the current transfer activity.
  - `pointsTobeTransferred` integer, required — Number of points to be transferred.
  - `fromCustomerIdentifier` object — Details of source customer - customer that wants to transfer points.
    - `type` string, required — Type of the identifier used. Values: MOBILE, EMAIL, EXTERNALID, CARDNUMBER, CARDEXTERNALID, ID.
    - `value` string, required — Value of the specified identifier type.
  - `toCustomerIdentifier` object — Customer or group to which the points needs to be transferred.
    - `type` string — Type of the identifier used. Values: MOBILE, EMAIL, EXTERNALID, CARDNUMBER, CARDEXTERNALID, ID.
    - `value` string — Value of the specified identifierType.
  - `issueOtp` boolean — When set to `true`- It sends an OTP to the sender (fromCustomer) when points are transferable. This OTP can be used to authenticate the transfer. When set to `false`: No OTP will be generated or sent. The points transfer can still proceed without OTP verification. OTP is not mandatory for points transfer. It can be used for security purposes.

## Response `200`

200

- object
  - `data` object[]
    - `pointsTobeTransferred` integer
    - `transferFrom` object
      - `id` integer
      - `profiles` object[]
        - `firstName` string
        - `lastName` string
        - `attribution` object
          - `createDate` string
          - `createdBy` object
            - `id` integer
            - `code` string
            - `name` string
            - `type` string
            - `referenceId` integer
            - `default` boolean
          - `modifiedBy` object
            - `id` integer
            - `code` string
            - `name` string
            - `type` string
            - `referenceId` integer
            - `default` boolean
          - `modifiedDate` string
        - `fields` object
        - `allFields` object
        - `identifiers` object[]
          - `type` string
          - `value` string
        - `commChannels` object[]
          - `type` string
          - `value` string
          - `primary` boolean
          - `verified` boolean
          - `meta` object
            - `residence` boolean
            - `office` boolean
          - `attributes` object
        - `source` string
        - `userId` integer
        - `accountId` string
        - `conflictingProfileList` unknown[]
          - unknown
        - `autoUpdateTime` string
        - `identifiersAll` object[]
          - `type` string
          - `value` string
      - `loyaltyInfo` object
        - `loyaltyType` string
        - `attributionV2` object
          - `createDate` string
          - `createdBy` object
            - `id` integer
            - `code` string
            - `name` string
            - `type` string
            - `referenceId` integer
            - `default` boolean
          - `modifiedBy` object
            - `id` integer
            - `code` string
            - `name` string
            - `type` string
            - `referenceId` integer
            - `default` boolean
          - `modifiedDate` string
        - `lifetimePurchases` integer
      - `segments` object
      - `extendedFields` object
    - `transferTo` object
      - `id` integer
      - `profiles` object[]
        - `firstName` string
        - `lastName` string
        - `attribution` object
          - `createDate` string
          - `createdBy` object
            - `id` integer
            - `code` string
            - `name` string
            - `type` string
            - `referenceId` integer
            - `default` boolean
          - `modifiedBy` object
            - `id` integer
            - `code` string
            - `name` string
            - `type` string
            - `referenceId` integer
            - `default` boolean
          - `modifiedDate` string
        - `fields` object
        - `allFields` object
        - `identifiers` object[]
          - `type` string
          - `value` string
        - `commChannels` object[]
          - `type` string
          - `value` string
          - `primary` boolean
          - `verified` boolean
          - `meta` object
            - `residence` boolean
            - `office` boolean
          - `attributes` object
        - `source` string
        - `userId` integer
        - `accountId` string
        - `conflictingProfileList` unknown[]
          - unknown
        - `autoUpdateTime` string
        - `identifiersAll` object[]
          - `type` string
          - `value` string
      - `loyaltyInfo` object
        - `loyaltyType` string
        - `attributionV2` object
          - `createDate` string
          - `createdBy` object
            - `id` integer
            - `code` string
            - `name` string
            - `type` string
            - `referenceId` integer
            - `default` boolean
          - `modifiedBy` object
            - `id` integer
            - `code` string
            - `name` string
            - `type` string
            - `referenceId` integer
            - `default` boolean
          - `modifiedDate` string
        - `lifetimePurchases` integer
      - `segments` object
      - `extendedFields` object
    - `transferrable` boolean
  - `warnings` unknown[]
    - unknown
  - `errors` unknown[]
    - unknown

## Other responses

- `400` — 400

---

[API](https://skmtc.net/capillarytech/apis/sample-api.md) · [All operations](https://skmtc.net/capillarytech/apis/sample-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/capillarytech/sample-api/revisions/de241f2ed9b3/schema)
