List vouchers
The organization's vouchers, newest first, with their codes. Requires billing to be enabled for the organization.
Authorization
bearerAuth read:vouchersA 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
"DRAFT" | "ACTIVE" | "EXPIRED" | "EXHAUSTED" | "ARCHIVED""PRICE" | "ENTITLEMENT_BOOST"Opaque pagination cursor from a previous response's nextCursor
Maximum number of entries to return (default 50, max 200)
int321 <= value <= 200Response 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"
}Revoke a redemption
Stops a redemption from applying: a boost ends at once, a discount applies to no further invoice. Invoices already issued are untouched. Emits INSTANCE_VOUCHER_REVOKED. Requires billing to be enabled for the organization.
Create a voucher
Creates a DRAFT voucher: a PRICE discount or an ENTITLEMENT_BOOST. The code is generated when none is given, and returned. Emits VOUCHER_CREATED, without the code. Requires billing to be enabled for the organization.