Stamped Customer Actions API
The Customer Actions API from Stamped — 6 operation(s) for customer actions.
The Customer Actions API from Stamped — 6 operation(s) for customer actions.
openapi: 3.1.0
info:
title: Loyalty Operations Customer Actions API
version: 3.0.0
x-provenance:
generated: '2026-07-21'
method: searched
source: https://developers.stamped.io/reference/ (embedded OpenAPI per operation)
description: Stamped V3 Loyalty Operations API. Harvested by API Evangelist from the per-operation OpenAPI definitions published at https://developers.stamped.io/reference/.
servers:
- url: https://stamped.io
security:
- StampedApiKeyAuth: []
tags:
- name: Customer Actions
paths:
/api/v3/loyalty/shops/{shopId}/customers/{customerId}/adjust-points:
post:
tags:
- Customer Actions
summary: Adjust Points
operationId: adjust-points
parameters:
- in: path
name: shopId
schema:
type: string
required: true
description: The unique identifier of the shop.
- in: path
name: customerId
schema:
type: string
required: true
description: The unique identifier of the customer.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
points:
type: number
description: The amount of points to add or subtract from the customer.
reason:
type: string
description: The reason that the customer's points are being adjusted.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ActivityResponse'
'400':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
/api/v3/loyalty/shops/{shopId}/customers/{customerId}/adjust-vip-tier:
post:
tags:
- Customer Actions
summary: Adjust VIP Tier
operationId: loyalty-adjust-vip-tier
parameters:
- in: path
name: shopId
schema:
type: string
required: true
description: The unique identifier of the shop.
- in: path
name: customerId
schema:
type: string
required: true
description: The unique identifier of the customer.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
tierName:
type: string
description: The name of the tier (exact match).
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ActivityResponse'
'400':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
/api/v3/loyalty/shops/{shopId}/activities:
post:
tags:
- Customer Actions
summary: Create custom activity
operationId: loyalty-custom-activity
parameters:
- in: path
name: shopId
schema:
type: string
required: true
description: The unique identifier of the shop.
- in: query
name: email
schema:
type: string
description: The customer's email.
- in: query
name: campaignId
schema:
type: string
description: The Id of the custom activity rule being triggered.
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
customerId:
type: string
ruleId:
type: string
activityId:
type: string
pointsAdded:
type: number
'400':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
/api/v3/loyalty/shops/{shopId}/customers/{customerId}/redeem-reward/{rewardId}:
post:
tags:
- Customer Actions
summary: Redeem Reward
operationId: loyalty-redeem-reward
parameters:
- in: path
name: shopId
schema:
type: string
required: true
description: The unique identifier of the shop.
- in: path
name: customerId
schema:
type: string
required: true
description: The unique identifier of the customer.
- in: path
name: rewardId
schema:
type: string
required: true
description: The API Reward Rule Id.
- in: query
name: points
schema:
type: string
description: The amount of points used to redeem (if applicable).
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ActivityResponse'
'400':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
/api/v3/loyalty/shops/{shopId}/customers/{customerId}/trigger-activity:
post:
tags:
- Customer Actions
summary: Trigger Activity
operationId: loyalty-trigger-activity
parameters:
- in: path
name: shopId
schema:
type: string
required: true
description: The unique identifier of the shop.
- in: path
name: customerId
schema:
type: string
required: true
description: The unique identifier of the customer.
- in: query
name: ruleId
schema:
type: string
description: The unique identifier of the rule.
- in: query
name: title
schema:
type: string
description: The title of the rule.
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
customerId:
type: string
ruleId:
type: string
activityId:
type: string
pointsAdded:
type: number
'400':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
/api/v3/loyalty/shops/{shopId}/customers/{customerId}/void-coupon/{couponCode}:
post:
tags:
- Customer Actions
summary: Void Coupon
operationId: loyalty-void-coupon
parameters:
- in: path
name: shopId
schema:
type: string
required: true
description: The unique identifier of the shop.
- in: path
name: customerId
schema:
type: string
required: true
description: The unique identifier of the customer.
- in: path
name: couponCode
schema:
type: string
required: true
description: The coupon code of the coupon that is to be voided.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RewardResponse'
'400':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
components:
schemas:
ActivityResponse:
type: object
properties:
activityId:
type: string
customerId:
type: string
dateCreated:
type: string
rule:
type: object
properties:
category:
type: string
type:
type: string
title:
type: string
description:
type: string
activity:
type: object
properties:
pointsDebit:
type: number
pointsCredit:
type: number
event:
type: string
orderId:
type: string
orderBreakdown:
type: object
properties:
totalSpent:
type: number
totalSpentWithExclusions:
type: number
totalShipping:
type: number
totalTax:
type: number
totalDiscount:
type: number
totalRefunded:
type: number
ErrorMessage:
type: object
properties:
message:
type: string
RewardResponse:
type: object
properties:
rewardId:
type: string
activityId:
type: string
customerId:
type: string
status:
type: string
title:
type: string
description:
type: string
couponCode:
type: string
category:
type: string
type:
type: string
value:
type: string
dateCreated:
type: string
dateOfExpiry:
type: string
securitySchemes:
StampedApiKeyAuth:
type: apiKey
in: header
name: stamped-api-key