Mindbody · Schema
Contract
Implementation of the 'Contract' model.
FitnessWellnessBeautySchedulingBookingPoint of SaleStudiosSalonsSpasWebhooks
Properties
| Name | Type | Description |
|---|---|---|
| Id | integer | The contract’s ID at the subscriber’s business. |
| Name | string | The name of the contract. |
| Description | string | A description of the contract. |
| AssignsMembershipId | integer | The ID of the membership that was assigned to the client when the client signed up for a contract. |
| AssignsMembershipName | string | The name of the membership that was assigned to the client when the client signed up for this contract. |
| SoldOnline | boolean | When `true`, indicates that this membership is intended to be shown to clients in client experiences. When `false`, this contract should only be shown to staff members. |
| ContractItems | array | Contains information about the items in the contract. |
| IntroOffer | string | Defines whether this contract is treated as an introductory offer. If this is an introductory offer, then clients are always charged a set number of times rather than month to month, using their AutoP |
| AutopaySchedule | object | Contains information about the AutoPay schedule. This parameter is null if `AutopayTriggerType` has a value of `PricingOptionRunsOutOrExpires`. |
| NumberOfAutopays | integer | The number of times that the AutoPay is to be run. This value is null if `FrequencyType` is `MonthToMonth`. |
| AutopayTriggerType | string | Defines whether the AutoPay, if applicable to this contract, runs on a set schedule or when the pricing option runs out or expires. Possible values are: * OnSetSchedule * PricingOptionRunsOutOrExpires |
| ActionUponCompletionOfAutopays | string | The renewal action to be taken when this AutoPay is completed. Possible values are: * ContractExpires * ContractAutomaticallyRenews |
| ClientsChargedOn | string | The value that indicates when clients are charged. Possible values are: * OnSaleDate * FirstOfTheMonth * FifteenthOfTheMonth * LastDayOfTheMonth * FirstOrFifteenthOfTheMonth * FirstOrSixteenthOfTheMon |
| ClientsChargedOnSpecificDate | string | If `ClientsChargedOn` is defined as a specific date, this property holds the value of that date. Otherwise, this property is null. |
| DiscountAmount | number | The calculated discount applied to the items in this contract. |
| DepositAmount | number | The amount of the deposit required for this contract. |
| FirstAutopayFree | boolean | When `true`, indicates that the first payment for the AutoPay is free. |
| LastAutopayFree | boolean | When `true`, indicates that the last payment for the AutoPay is free. |
| ClientTerminateOnline | boolean | When `true`, indicates that the client can terminate this contract on the Internet. |
| MembershipTypeRestrictions | array | Contains information about the memberships that can purchase this contract. If null, then no membership restrictions exist, and anyone can purchase the contract. |
| LocationPurchaseRestrictionIds | array | The IDs of the locations where this contract may be sold. If there are no restrictions, this value is null. |
| LocationPurchaseRestrictionNames | array | Location names where the contract may be purchased. If this value is null, there are no restrictions. |
| AgreementTerms | string | Business-defined terms and conditions for the contract. |
| RequiresElectronicConfirmation | boolean | When `true`, clients who purchase the contract are prompted to agree to the terms of the contract the next time that they log in. |
| AutopayEnabled | boolean | When `true`, this contract establishes an AutoPay on the client’s account. |
| FirstPaymentAmountSubtotal | number | The subtotal of the amount that the client is to be charged when signing up for the contract. |
| FirstPaymentAmountTax | number | The amount of tax that the client is to be charged when signing up for the contract. |
| FirstPaymentAmountTotal | number | The total amount that the client is to be charged when signing up for the contract. |
| RecurringPaymentAmountSubtotal | number | The subtotal amount that the client is to be charged on an ongoing basis. |
| RecurringPaymentAmountTax | number | The amount of tax the client is to be charged on an ongoing basis. |
| RecurringPaymentAmountTotal | number | The total amount that the client is to be charged on an ongoing basis. |
| TotalContractAmountSubtotal | number | The subtotal amount that the client is to be charged over the lifespan of the contract. |
| TotalContractAmountTax | number | The total amount of tax the client is to be charged over the lifespan of the contract. |
| TotalContractAmountTotal | number | The total amount the client is to be charged over the lifespan of the contract. |
| PromoPaymentAmountSubtotal | number | Subtotal promotional period |
| PromoPaymentAmountTax | number | Taxes of promotional period |
| PromoPaymentAmountTotal | number | Total of promotional period |
| NumberOfPromoAutopays | integer | Number of times that the AutoPay runs under the promotional period |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/mindbody/refs/heads/main/json-schema/public-api-v6-contract-schema.json",
"title": "Contract",
"description": "Implementation of the 'Contract' model.",
"type": "object",
"properties": {
"Id": {
"type": "integer",
"format": "int32",
"description": "The contract\u2019s ID at the subscriber\u2019s business.",
"example": 123456
},
"Name": {
"type": "string",
"description": "The name of the contract.",
"example": "Sunset Yoga Studio"
},
"Description": {
"type": "string",
"description": "A description of the contract.",
"example": "Example note for Mindbody Public API."
},
"AssignsMembershipId": {
"type": "integer",
"format": "int32",
"description": "The ID of the membership that was assigned to the client when the client signed up for a contract.",
"example": 123456
},
"AssignsMembershipName": {
"type": "string",
"description": "The name of the membership that was assigned to the client when the client signed up for this contract.",
"example": "example-value"
},
"SoldOnline": {
"type": "boolean",
"description": "When `true`, indicates that this membership is intended to be shown to clients in client experiences.<br /> When `false`, this contract should only be shown to staff members.",
"example": true
},
"ContractItems": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ContractItem"
},
"description": "Contains information about the items in the contract.",
"example": [
{}
]
},
"IntroOffer": {
"type": "string",
"description": "Defines whether this contract is treated as an introductory offer. If this is an introductory offer, then clients are always charged a set number of times rather than month to month, using their AutoPays. Possible values are: * None * NewConsumer * NewAndReturningConsumer",
"example": "example-value"
},
"AutopaySchedule": {
"$ref": "#/components/schemas/AutopaySchedule",
"description": "Contains information about the AutoPay schedule. This parameter is null if `AutopayTriggerType` has a value of `PricingOptionRunsOutOrExpires`."
},
"NumberOfAutopays": {
"type": "integer",
"format": "int32",
"description": "The number of times that the AutoPay is to be run. This value is null if `FrequencyType` is `MonthToMonth`.",
"example": 1
},
"AutopayTriggerType": {
"type": "string",
"description": "Defines whether the AutoPay, if applicable to this contract, runs on a set schedule or when the pricing option runs out or expires. Possible values are: * OnSetSchedule * PricingOptionRunsOutOrExpires",
"example": "example-value"
},
"ActionUponCompletionOfAutopays": {
"type": "string",
"description": "The renewal action to be taken when this AutoPay is completed. Possible values are: * ContractExpires * ContractAutomaticallyRenews",
"example": "example-value"
},
"ClientsChargedOn": {
"type": "string",
"description": "The value that indicates when clients are charged. Possible values are: * OnSaleDate * FirstOfTheMonth * FifteenthOfTheMonth * LastDayOfTheMonth * FirstOrFifteenthOfTheMonth * FirstOrSixteenthOfTheMonth * FifteenthOrEndOfTheMonth * SpecificDate",
"example": "example-value"
},
"ClientsChargedOnSpecificDate": {
"type": "string",
"format": "date-time",
"description": "If `ClientsChargedOn` is defined as a specific date, this property holds the value of that date. Otherwise, this property is null.",
"example": "2026-05-28T14:30:00Z"
},
"DiscountAmount": {
"type": "number",
"format": "double",
"description": "The calculated discount applied to the items in this contract.",
"example": 49.99
},
"DepositAmount": {
"type": "number",
"format": "double",
"description": "The amount of the deposit required for this contract.",
"example": 49.99
},
"FirstAutopayFree": {
"type": "boolean",
"description": "When `true`, indicates that the first payment for the AutoPay is free.",
"example": true
},
"LastAutopayFree": {
"type": "boolean",
"description": "When `true`, indicates that the last payment for the AutoPay is free.",
"example": true
},
"ClientTerminateOnline": {
"type": "boolean",
"description": "When `true`, indicates that the client can terminate this contract on the Internet.",
"example": true
},
"MembershipTypeRestrictions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MembershipTypeRestriction"
},
"description": "Contains information about the memberships that can purchase this contract. If null, then no membership restrictions exist, and anyone can purchase the contract.",
"example": [
{}
]
},
"LocationPurchaseRestrictionIds": {
"type": "array",
"items": {
"type": "integer",
"format": "int32"
},
"description": "The IDs of the locations where this contract may be sold. If there are no restrictions, this value is null.",
"example": [
1
]
},
"LocationPurchaseRestrictionNames": {
"type": "array",
"items": {
"type": "string"
},
"description": "Location names where the contract may be purchased. If this value is null, there are no restrictions.",
"example": [
"example-value"
]
},
"AgreementTerms": {
"type": "string",
"description": "Business-defined terms and conditions for the contract.",
"example": "example-value"
},
"RequiresElectronicConfirmation": {
"type": "boolean",
"description": "When `true`, clients who purchase the contract are prompted to agree to the terms of the contract the next time that they log in.",
"example": true
},
"AutopayEnabled": {
"type": "boolean",
"description": "When `true`, this contract establishes an AutoPay on the client\u2019s account.",
"example": true
},
"FirstPaymentAmountSubtotal": {
"type": "number",
"format": "double",
"description": "The subtotal of the amount that the client is to be charged when signing up for the contract.",
"example": 49.99
},
"FirstPaymentAmountTax": {
"type": "number",
"format": "double",
"description": "The amount of tax that the client is to be charged when signing up for the contract.",
"example": 49.99
},
"FirstPaymentAmountTotal": {
"type": "number",
"format": "double",
"description": "The total amount that the client is to be charged when signing up for the contract.",
"example": 49.99
},
"RecurringPaymentAmountSubtotal": {
"type": "number",
"format": "double",
"description": "The subtotal amount that the client is to be charged on an ongoing basis.",
"example": 49.99
},
"RecurringPaymentAmountTax": {
"type": "number",
"format": "double",
"description": "The amount of tax the client is to be charged on an ongoing basis.",
"example": 49.99
},
"RecurringPaymentAmountTotal": {
"type": "number",
"format": "double",
"description": "The total amount that the client is to be charged on an ongoing basis.",
"example": 49.99
},
"TotalContractAmountSubtotal": {
"type": "number",
"format": "double",
"description": "The subtotal amount that the client is to be charged over the lifespan of the contract.",
"example": 49.99
},
"TotalContractAmountTax": {
"type": "number",
"format": "double",
"description": "The total amount of tax the client is to be charged over the lifespan of the contract.",
"example": 49.99
},
"TotalContractAmountTotal": {
"type": "number",
"format": "double",
"description": "The total amount the client is to be charged over the lifespan of the contract.",
"example": 49.99
},
"PromoPaymentAmountSubtotal": {
"type": "number",
"format": "double",
"description": "Subtotal promotional period",
"example": 49.99
},
"PromoPaymentAmountTax": {
"type": "number",
"format": "double",
"description": "Taxes of promotional period",
"example": 49.99
},
"PromoPaymentAmountTotal": {
"type": "number",
"format": "double",
"description": "Total of promotional period",
"example": 49.99
},
"NumberOfPromoAutopays": {
"type": "integer",
"format": "int32",
"description": "Number of times that the AutoPay runs under the promotional period",
"example": 1
}
}
}