Update Promotion Status

Updates the status of a loyalty promotion to manage its lifecycle. Supports submitting a promotion for approval, withdrawing it from review, pausing or resuming an active promotion, and stopping a promotion permanently.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Updates the status of a loyalty promotion to manage its lifecycle. Use this endpoint to submit a promotion for approval, withdraw it from review, pause or resume an active promotion, or stop a promotion permanently.

Supported transitions

existingStatuspromotionStatusOutcome
DRAFTPENDING_APPROVALSubmits the promotion for checker review
PENDING_APPROVALREVOKEWithdraws the promotion from review, reverting it to DRAFT
ACTIVEPAUSEPauses the promotion
ACTIVESTOPStops the promotion permanently
PAUSEDRESUMEResumes the promotion, returning it to ACTIVE
PAUSEDSTOPStops the promotion permanently
📘

Note

STOPPED is a terminal state — no further transitions are possible. To move a promotion from PENDING_APPROVAL to ACTIVE, use the Review Loyalty Promotion endpoint.

Example requests

curl --location --request PUT 'https://eu.api.capillarytech.com/v3/requests/PROMOTION/{promotionId}/status?existingStatus=DRAFT' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <token>' \
--data '{
    "promotionStatus": "PENDING_APPROVAL"
}'
curl --location --request PUT 'https://eu.api.capillarytech.com/v3/requests/PROMOTION/{promotionId}/status?existingStatus=PENDING_APPROVAL' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <token>' \
--data '{
    "promotionStatus": "REVOKE"
}'
curl --location --request PUT 'https://eu.api.capillarytech.com/v3/requests/PROMOTION/{promotionId}/status?existingStatus=ACTIVE' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <token>' \
--data '{
    "promotionStatus": "PAUSE"
}'
curl --location --request PUT 'https://eu.api.capillarytech.com/v3/requests/PROMOTION/{promotionId}/status?existingStatus=ACTIVE' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <token>' \
--data '{
    "promotionStatus": "STOP"
}'
curl --location --request PUT 'https://eu.api.capillarytech.com/v3/requests/PROMOTION/{promotionId}/status?existingStatus=PAUSED' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <token>' \
--data '{
    "promotionStatus": "RESUME"
}'
curl --location --request PUT 'https://eu.api.capillarytech.com/v3/requests/PROMOTION/{promotionId}/status?existingStatus=PAUSED' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <token>' \
--data '{
    "promotionStatus": "STOP"
}'

Prerequisites

  • Authentication: Basic or OAuth authentication.
  • The promotion must exist and be in the status specified by existingStatus.

Path parameters

FieldTypeRequiredDescription
promotionIdstringYesThe unique identifier of the promotion to update. Example: 19551632ee4c4107aba369486036f993

Query parameters

FieldTypeRequiredDescription
existingStatusstringYesThe current status of the promotion. Supported values: DRAFT, PENDING_APPROVAL, ACTIVE, PAUSED. The request fails if the promotion's actual status does not match this value.

Request body parameters

FieldTypeRequiredDescription
promotionStatusstringYesThe target status for the promotion. Supported values: PENDING_APPROVAL (use with existingStatus=DRAFT), REVOKE (use with existingStatus=PENDING_APPROVAL), PAUSE (use with existingStatus=ACTIVE), RESUME (use with existingStatus=PAUSED), STOP (use with existingStatus=ACTIVE or PAUSED).

Response

A successful request returns the updated promotion object with metadata.status reflecting the new status.

Error codes

Error CodeDescription
310191Promotion not found, or the promotion's actual status does not match the value passed in existingStatus. Verify the promotionId and confirm the promotion is in the expected status. Note: this error returns with HTTP status 200, not 404.
300009promotionStatus is required. Include a valid promotionStatus value in the request body.
300008Invalid promotionStatus value. Supported values are: PENDING_APPROVAL, REVOKE, RESUME, PAUSE, STOP.
400Invalid existingStatus value. Supported values are: DRAFT, PENDING_APPROVAL, ACTIVE, PAUSED.
Path Params
string
required

The unique identifier of the promotion to update.

Query Params
string
enum
required

The current status of the promotion. The request fails if the promotion's actual status does not match this value.

Allowed:
Body Params

Promotion status transition details.

string
enum
required

The target status for the promotion. Valid values depend on existingStatus: PENDING_APPROVAL (from DRAFT), REVOKE (from PENDING_APPROVAL), PAUSE (from ACTIVE), STOP (from ACTIVE or PAUSED), RESUME (from PAUSED).

Allowed:
Headers
string
required

Basic or OAuth authentication credentials.

Responses

400

Bad request. Returned when promotionStatus is missing or invalid, or existingStatus is not a supported value.

401

Unauthorized. Invalid or missing authentication credentials.

Language
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json