---
title: "Update a SignupToken"
method: PUT
path: "/customers/signup-tokens/{signupTokenId}"
tags: ["SignupTokens"]
---

# Update a SignupToken

`PUT /customers/signup-tokens/{signupTokenId}`

Update an existing `SignupToken`. Only fields included in the request body will be changed.

## Request body

- object
  - `membership_type_id` string — The MembershipType this token allows signups as
  - `membership_rate_id` string — The MembershipRate this token allows signups as. This must belong to the same MembershipType as the one provided. If omitted, the default rate of the given type will be used.
  - `start_date` string, date — Optionally, you can specify the date which the membership should start.
  - `end_date` string, date, nullable — Optionally, you can specify the date which the membership should end.
  - `duration` string — Optionally, you can specify the duration of the membership as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations
  - `max_uses` integer, nullable — The maximum number of times this signup token can be used. If null, it can be used an unlimited number of times.
  - `first_name` string — The first name of the customer this token allows signups as.
  - `last_name` string — The last name of the customer this token allows signups as.
  - `email` string, nullable — The email of the customer this token allows signups as.

## Response `200`

The signup token was successfully retrieved or updated.

- object
  - `data` SignupToken, required — A `SignupToken` permits a customer to sign up for a private `MembershipType` or non-default `MembershipRate`. Tokens carry an optional cap on how many times they can be used and can pre-populate customer details such as name and email.
    - `id` string, required — The ID of the signup token.
    - `membership_type_id` string, required — The MembershipType this token allows signups as
    - `membership_rate_id` string, nullable, required — The MembershipRate this token allows signups as. If omitted, the default rate of the given type will be used.
    - `start_date` string, date, nullable, required — The date which the membership should start
    - `end_date` string, date, nullable, required — The date which the membership should end
    - `duration` string — The duration of the membership as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations
    - `max_uses` integer, nullable, required — The maximum number of times this signup token can be used. If null, it can be used an unlimited number of times. When the number of uses reaches the max_uses, it is soft-deleted.
    - `uses` integer, required — The number of times this signup token has been used.
    - `first_name` string, nullable — The first name of the customer this token allows signups as. If omitted, the customer can set a first name.
    - `last_name` string, nullable — The last name of the customer this token allows signups as. If omitted, the customer can set a last name.
    - `email` string, nullable — The email of the customer this token allows signups as. If omitted, the customer can set an email.

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.
- `404` — The resource couldn't be found
- `422` — The request didn't pass validation

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
