Skip to main content
POST
Create a pay rate policy

Authorizations

Authorization
string
header
required

Organization-scoped bearer credential: a customer API key (1club_sk_live_...) or an MCP OAuth access token.

Headers

Idempotency-Key
string

Retry-safe key; a repeat of the same request replays the first response

Maximum string length: 255

Body

application/json

Fields accepted when creating a pay rate policy. instructorIds must be present: an empty list is the organization default and applies to every coach without a policy of their own, so it has to be asked for rather than fallen into. The other coverage lists mean "everything" when omitted.

name
string
required
Maximum string length: 255
earnings
object
required

What the coach earns, and for what unit of work. kind decides which of the rate fields apply and which are rejected: an individual policy takes perSession and sessionRevenuePercentage, a class policy takes perClass, perBooking and classRevenuePercentage. At least one of the applicable rates must be greater than zero, and kind cannot be changed once the policy exists.

instructorIds
integer[]
required

Coaches this policy covers. An empty list makes it the organization default, applying to every coach with no policy of their own.

requirePaidBooking
boolean
default:false

When true, attendance that was never paid for earns the coach nothing.

classTypeIds
integer[]

Class types it covers, from GET /v1/platform/class-types. Empty covers every class type. Rejected on an individual policy, which has no classes to scope.

entranceScopes
object[]

How the attendee got in. Empty covers every route in.

Response

Pay rate policy created

A rule for what the club pays a coach. Not an instructor's hourlyRate, which is what a member pays for an hour of their time. Each coverage list means "everything" when empty: no instructors makes it the organization default, no classTypes covers every class type, no entranceScopes covers every way in.

policyId
string<uuid>
name
string
kind
enum<string>
Available options:
individual,
class
earnings
object

What the coach earns, and for what unit of work. kind decides which of the rate fields apply and which are rejected: an individual policy takes perSession and sessionRevenuePercentage, a class policy takes perClass, perBooking and classRevenuePercentage. At least one of the applicable rates must be greater than zero, and kind cannot be changed once the policy exists.

requirePaidBooking
boolean
instructors
object[]

Coaches this policy covers. Empty means every coach with no policy of their own.

classTypes
object[]

Class types it covers. Empty means every class type.

entranceScopes
object[]

How the attendee got in. Empty means every route in.

createdAt
string<date-time>
updatedAt
string<date-time>