---
title: "Remove points from customer account"
method: POST
path: "/api/external/remove-points"
tags: ["Points & Earn Rules"]
---

# Remove points from customer account

`POST /api/external/remove-points`

## Headers

- `X-API-Key` string, required

## Request body

- CustomerAddPointsLoyaltyRequestVM — Request containing customer ID/email, points to add, and optional description
  - `customerEmail` string, nullable — Customer's email address. Alternative to customerId for identifying the customer. Provide either customerId OR customerEmail, not both. Must be a valid email address that exists in your Shopify store. Email matching is case-insensitive. Example: customer@example.com
  - `customerId` integer, nullable — Shopify customer ID (numeric). Identifies which customer receives the points. Provide either customerId OR customerEmail, not both. Customer must be enrolled in the loyalty program. Example: 67890
  - `earnRuleId` integer, nullable — Optional: ID of an earn rule to associate with this point addition. Used for categorization and reporting purposes only. Does not affect point calculation - points parameter takes precedence. Helps group similar types of point additions in reports. Example: 10
  - `note` string, nullable — Optional but strongly recommended: Description of why points are being added. This note appears in the customer's transaction history and admin logs. Best practices: - Be specific about the reason - Include reference numbers (order ID, ticket ID, etc.) - Use consistent formatting for easier reporting Examples: - "Birthday bonus - January 2025" - "Compensation for delayed shipping - Order #1234" - "Referral bonus from external campaign" - "Migration - transferred from old system" - "Manual adjustment per support ticket #567"
  - `points` number, double, required — Number of points to add to the customer's account. Must be a positive number. Points are added to availablePoints immediately (not pending). Decimal values are supported for fractional points. Example: 50.0

## Response `200`

Points successfully removed from customer account

- CustomerLoyaltyResponseVM
  - `achievableTierId` integer
  - `availablePoints` number, double
  - `createAt` string, date-time
  - `creditedPoints` number, double
  - `currentVipTier` string
  - `customerStatus` 'ACTIVE' | 'INACTIVE' | 'EXCLUDED' | 'EXCLUDED_BY_CUSTOMER'
  - `dob` string, date
  - `expiringPointsAmount` number, double
  - `pendingPoints` number, double
  - `pointsExpireAt` string, date-time
  - `referralLink` string
  - `referredCompleted` integer
  - `rewardedForCreatingAccount` boolean
  - `rewardedForFacebook` boolean
  - `rewardedForInstagram` boolean
  - `rewardedForNewsLetter` boolean
  - `rewardedForPinterest` boolean
  - `rewardedForSharingOnFacebook` boolean
  - `rewardedForSharingOnX` boolean
  - `rewardedForSms` boolean
  - `rewardedForTiktok` boolean
  - `rewardedForTwitter` boolean
  - `rewardedForYoutube` boolean
  - `rewards` CustomerReward[]
    - `amount` number, double
    - `createAt` string, date-time, required
    - `customerId` integer, required
    - `description` string
    - `discountCode` string, required
    - `discountCodeId` string
    - `expireDate` string, date-time
    - `id` integer
    - `lastExpiryReminderSentDate` string, date-time
    - `orderId` integer
    - `orderName` string
    - `pointRedeemRuleId` integer
    - `pointTransactionId` integer
    - `productData` string
    - `rewardType` 'STORE_CREDIT' | 'DISCOUNT_CODE' | 'POINTS'
    - `shop` string, required
    - `status` 'USED' | 'UNUSED' | 'REFUNDED' | 'EXPIRED' | 'SUBSCRIPTION_ACTIVE' | 'CANCELED', required
    - `usageCount` integer
    - `usedAt` string, date-time
    - `variantId` integer
  - `spentAmount` number, double
  - `storeCreditBalance` number, double
  - `storeCreditCurrency` string
  - `vipTierExpiredAt` string, date-time
  - `vipTierSpentAmount` number, double

## Other responses

- `400` — Invalid request — missing customer info or points
- `401` — Unauthorized - Invalid or missing X-API-Key

---

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