Docs

Passes

Last updated: 26 Oct 2026

Passes are prepaid punch cards sold by the organization (e.g., "10 x Sauna"). A pass grants a number of units that the customer can redeem against eligible service variants after purchase.

All endpoints are scoped to the organization that owns the API key:

/store/v0

List passes

Retrieve all public passes for the organization.

GET /store/v0/passes

Response

{
  "passes": [
    {
      "public_id": "8b2c3d4e-5f60-4a71-9234-0b1c2d3e4f5a",
      "name": "10 x Sauna",
      "description": "Ten sauna sessions at a discounted price",
      "short_description": "Sauna punch card",
      "unit_count": 10,
      "expires_after_value": 1,
      "expires_after_unit": "years",
      "human_expiration": "Expires after 1 year",
      "thumbnail": null,
      "price": {
        "cents": 100000,
        "currency": "NOK",
        "amount": 1000.0,
        "formatted": "1.000 NOK",
        "abbreviated": "1K NOK"
      },
      "eligibilities": [
        {
          "id": "4a7b8c9d-0e1f-4a2b-9c3d-4e5f6a7b8c9d",
          "name": "Sauna — Long Session"
        }
      ]
    }
  ]
}

Field reference (pass)

FieldTypeNotes
public_idstringPublic identifier
namestringDisplay name
descriptionstring | nullMay contain HTML
short_descriptionstring | nullBrief description
unit_countintegerUnits granted per pass
expires_after_valueinteger | nullTogether with expires_after_unit; null = no expiry
expires_after_unitstring | null"days", "weeks", "months", or "years"
human_expirationstringHuman-readable expiry (e.g., "Expires after 1 year")
thumbnailobject | nullMedia (see Types)
priceobjectMoney (see Types)
eligibilitiesarrayService variants the pass can be redeemed against (see below)

Expiry

When expires_after_value and expires_after_unit are set, each purchased pass expires that long after purchase (e.g., 1 + "years" = one year after the purchase date). When both are null, the pass never expires.

Field reference (eligibility)

Each eligibility describes a service variant the pass can be redeemed against:

FieldTypeNotes
idstringPublic ID of the service variant
namestringDisplay name, including the parent service (e.g. "Sauna — Long Session")

Get pass

Retrieve a single pass by public_id.

GET /store/v0/passes/{public_id}

Path parameters

ParameterTypeDescription
public_idstringPass public identifier

Response

{
  "pass": {
    "public_id": "8b2c3d4e-5f60-4a71-9234-0b1c2d3e4f5a",
    "name": "10 x Sauna"
  }
}

The pass object has the same structure as in the list response (fields omitted above for brevity).

Purchasing a pass

Add a pass to a cart with a pass cart item:

POST /store/v0/carts/{cart_public_id}/items
{
  "cart_item": {
    "type": "pass",
    "attributes": {
      "pass_product_id": "8b2c3d4e-5f60-4a71-9234-0b1c2d3e4f5a",
      "quantity": 1
    }
  }
}

The pass_product_id is the pass public_id from this endpoint.