Kaiten

List vouchers

The organization's vouchers, newest first, with their codes. Requires billing to be enabled for the organization.

GET
/vouchers

Authorization

bearerAuth read:vouchers
AuthorizationBearer <token>

A JWT verified by the proxy in front of this API, or a Kaiten access token (ksh_...) — send either as Authorization: Bearer <token>. The scopes listed on each operation are checked server-side against current stored user assignments or stored service-token permissions, never JWT claims; write:<module> implies read:<module>, and read:* / write:* are wildcards over every module. x-kaiten-scopes lists every scope such a token can carry, including those enforced by a service in front of this API rather than by one of its operations.

In: header

Scope: read:vouchers

Query Parameters

status?string
Value in"DRAFT" | "ACTIVE" | "EXPIRED" | "EXHAUSTED" | "ARCHIVED"
voucherType?string
Value in"PRICE" | "ENTITLEMENT_BOOST"
restrictedCustomerSlug?string
cursor?string

Opaque pagination cursor from a previous response's nextCursor

limit?integer

Maximum number of entries to return (default 50, max 200)

Formatint32
Range1 <= value <= 200

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://app.kaiten.sh/api/vouchers"
{
  "hasMore": true,
  "items": [
    {
      "applicableAddonIds": [
        "string"
      ],
      "applicableAddonPriceIds": [
        "string"
      ],
      "applicableLicenseIds": [
        "string"
      ],
      "applicableLicensePriceIds": [
        "string"
      ],
      "code": "SUMMER-2026-LAUNCH",
      "codeHint": "UNCH",
      "createdAt": "2019-08-24T14:15:22Z",
      "currency": "EUR",
      "description": "string",
      "duration": "ONE_TIME",
      "durationInPeriods": 0,
      "expiresAt": "2019-08-24T14:15:22Z",
      "flagGrants": [
        {
          "flagSlug": "new-dashboard",
          "variant": "on"
        }
      ],
      "grants": [
        {
          "entitlementSlug": "tokens",
          "modifierType": "SET",
          "modifierValue": "2",
          "value": true
        }
      ],
      "id": "string",
      "maxRedemptions": 0,
      "name": "Summer launch",
      "priceAppliesTo": "LICENSE_BASE",
      "priceDiscountType": "PERCENTAGE",
      "priceDiscountValue": "30",
      "redemptionRules": {
        "annualOnly": true,
        "firstTimeOnly": true,
        "minimumSubscriptionAmount": {
          "currency": "EUR",
          "unitAmountDecimal": "2900"
        }
      },
      "redemptionsCount": 0,
      "restrictedCustomerSlug": "string",
      "startsAt": "2019-08-24T14:15:22Z",
      "status": "DRAFT",
      "updatedAt": "2019-08-24T14:15:22Z",
      "voucherType": "PRICE"
    }
  ],
  "nextCursor": "string"
}
{
  "code": "License.NotFound",
  "detail": "license not found",
  "errorId": "3f6b1a2c-7c1e-4d0b-9d5f-2b0a1c4e8d31",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "/api/licenses/enterprise",
  "status": 404,
  "title": "Not Found",
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4"
}
{
  "code": "License.NotFound",
  "detail": "license not found",
  "errorId": "3f6b1a2c-7c1e-4d0b-9d5f-2b0a1c4e8d31",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "/api/licenses/enterprise",
  "status": 404,
  "title": "Not Found",
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4"
}
{
  "code": "License.NotFound",
  "detail": "license not found",
  "errorId": "3f6b1a2c-7c1e-4d0b-9d5f-2b0a1c4e8d31",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "/api/licenses/enterprise",
  "status": 404,
  "title": "Not Found",
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4"
}
{
  "code": "License.NotFound",
  "detail": "license not found",
  "errorId": "3f6b1a2c-7c1e-4d0b-9d5f-2b0a1c4e8d31",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "/api/licenses/enterprise",
  "status": 404,
  "title": "Not Found",
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4"
}
{
  "code": "License.NotFound",
  "detail": "license not found",
  "errorId": "3f6b1a2c-7c1e-4d0b-9d5f-2b0a1c4e8d31",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "/api/licenses/enterprise",
  "status": 404,
  "title": "Not Found",
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4"
}
{
  "code": "License.NotFound",
  "detail": "license not found",
  "errorId": "3f6b1a2c-7c1e-4d0b-9d5f-2b0a1c4e8d31",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "/api/licenses/enterprise",
  "status": 404,
  "title": "Not Found",
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4"
}
{
  "code": "License.NotFound",
  "detail": "license not found",
  "errorId": "3f6b1a2c-7c1e-4d0b-9d5f-2b0a1c4e8d31",
  "errors": [
    {
      "location": "string",
      "message": "string",
      "value": null
    }
  ],
  "instance": "/api/licenses/enterprise",
  "status": 404,
  "title": "Not Found",
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4"
}