Submit Tier for Approval

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

Submit Tier for Approval

Submits a DRAFT tier for approval, transitioning it from DRAFT to PENDING_APPROVAL. A reviewer then approves or rejects it with Approve or Reject Tier. Submitted tiers appear in the reviewer's queue at List Pending Tier Approvals.

Example request

curl -X POST "https://eu.intouch.capillarytech.com/v3/tiers/6a2121936497e74ec3517ad8/submit" \
  -H "Authorization: Basic <base64-encoded-credentials>"

Prerequisites

  • Authentication: Basic auth or OAuth token with loyalty program management permissions.
  • The tier must be in DRAFT status with a serialNumber assigned.
  • The program must have SLAB_UPGRADE and SLAB_DOWNGRADE strategies configured.

Path parameters

FieldTypeRequiredDescription
tierIdstringRequiredThe objectId of the draft tier, from the Create Tier response.

Example response

{
  "data": {
    "objectId": "6a2aab5cb1f2f8016a6598bb",
    "tierUniqueId": "ut-973-010",
    "orgId": 100737,
    "programId": 973,
    "status": "PENDING_APPROVAL",
    "parentId": null,
    "version": 1,
    "slabId": null,
    "name": "Super Platinum",
    "description": "Premium tier for top spenders — updated",
    "color": "#E5E4E2",
    "serialNumber": 10,
    "eligibility": {
      "kpiType": "CURRENT_POINTS",
      "threshold": 100000,
      "upgradeType": "LAZY"
    },
    "validity": {
      "periodType": "SLAB_UPGRADE",
      "periodValue": 12,
      "renewal": {
        "criteriaType": "Same as eligibility"
      },
      "unit": "NUM_MONTHS"
    },
    "downgrade": null,
    "engineConfig": null,
    "meta": {
      "createdBy": "75237721",
      "createdAt": "2026-06-11T12:34:36Z",
      "updatedBy": "75237721",
      "updatedAt": "2026-06-11T12:36:22Z"
    },
    "comments": null
  },
  "errors": null,
  "warnings": null
}
{
  "data": {
    "objectId": "6a2aab5cb1f2f8016a6598bb",
    "tierUniqueId": "ut-973-010",
    "orgId": 100737,
    "programId": 973,
    "status": "DRAFT",
    "parentId": null,
    "version": 1,
    "slabId": null,
    "name": "Super Platinum",
    "description": "Premium tier for top spenders — updated",
    "color": "#E5E4E2",
    "serialNumber": 10,
    "eligibility": {
      "kpiType": "CURRENT_POINTS",
      "threshold": 100000,
      "upgradeType": "LAZY"
    },
    "validity": {
      "periodType": "SLAB_UPGRADE",
      "periodValue": 12,
      "renewal": {
        "criteriaType": "Same as eligibility"
      },
      "unit": "NUM_MONTHS"
    },
    "downgrade": null,
    "engineConfig": null,
    "meta": {
      "createdBy": "75237721",
      "createdAt": "2026-06-11T12:34:36Z",
      "updatedBy": "75237721",
      "updatedAt": "2026-06-11T12:41:05Z",
      "rejectedBy": "75237721",
      "rejectedAt": "2026-06-11T12:41:05Z",
      "rejectionComment": "Reviewed and approved for Q2 launch"
    },
    "comments": "Reviewed and approved for Q2 launch"
  },
  "errors": null,
  "warnings": null
}

Response parameters

FieldTypeDescription
dataobjectObject containing the full tier record.
.objectIdstringUnique ID of this tier record. Use it with Approve or Reject Tier.
.tierUniqueIdstringUnique ID assigned to a tier created through this API, returned by Create Tier.
.orgIdintegerOrg ID derived from the auth token.
.programIdintegerLoyalty program ID the tier belongs to.
.statusenumCurrent stage of the tier lifecycle. Always PENDING_APPROVAL after a successful submit. Possible values: DRAFT, PENDING_APPROVAL, REJECTED, ACTIVE, DELETED, SNAPSHOT, PUBLISH_FAILED.
.parentIdstringID of the published tier this draft was created from. null for new tiers.
.versionintegerVersion number of the tier. Increments each time the tier is updated.
.slabIdintegerUnique ID of the published tier. null until the tier is approved and published.
.namestringTier name.
.descriptionstringTier description.
.colorstringDisplay color in hex format.
.serialNumberintegerTier position in the program's tier ladder.
.eligibilityobjectObject containing the conditions a customer must meet to enter this tier.
.validityobjectObject containing the validity and renewal configuration, as sent in Create Tier.
.downgradeobjectObject containing the tier's downgrade settings. null until the tier is approved.
.engineConfigobjectObject containing internal system configuration used after the tier is published. Always null until then; you can ignore this field.
.metaobjectObject containing details of who created, updated, approved, or rejected the tier, and when.
..createdBystringUser or till ID of the person who created the tier.
..createdAttimestampDate and time when the tier was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ), returned in the server time zone.
..updatedBystringUser or till ID of the person who last updated the tier.
..updatedAttimestampDate and time when the tier was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ), returned in the server time zone.
..approvedBystringUser ID of the reviewer who approved the tier.
..approvedAttimestampDate and time when the tier was approved, in ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ), returned in the server time zone.
..rejectedBystringUser ID of the reviewer who rejected the tier.
..rejectedAttimestampDate and time when the tier was rejected, in ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ), returned in the server time zone.
..rejectionCommentstringReviewer's comment on rejection.
.commentsstringReviewer's note from the most recent approval action. null until reviewed.
errorsarrayError list. null on success.
warningsarrayWarning list. null on success.

Error & warning codes

CodeError numberTypeDescription
TIER.NOT_FOUND9056ErrorNo tier matches the given tierId. HTTP 404.
TIER.SUBMISSION_SERIAL_MISSING9040ErrorThe tier has no serialNumber assigned. HTTP 400.
TIER.PROGRAM_DOWNGRADE_STRATEGY_NOT_CONFIGURED9052ErrorThe program has no SLAB_DOWNGRADE strategy. Configure Tier Advanced Settings first. HTTP 400.
TIER.PROGRAM_UPGRADE_STRATEGY_NOT_CONFIGURED9053ErrorThe program has no SLAB_UPGRADE strategy. Configure Tier Advanced Settings first. HTTP 400.
TIER_SUBMIT_REQUIRES_DRAFTErrorThe tier is not in DRAFT status. Only DRAFT tiers can be submitted. HTTP 409.

Note: Conflict errors (HTTP 409) return the generic error number 999999 with a descriptive message on the wire.


Path Params
string
required
Headers
string
string
Responses

400

Validation error: see the error table in the doc page

404

Tier not found (error 9056)

409

Status conflict: only DRAFT tiers can be submitted

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