Stamped Customer Actions API

The Customer Actions API from Stamped — 6 operation(s) for customer actions.

OpenAPI Specification

stamped-customer-actions-api-openapi.yml Raw ↑
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