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
View JSON Schema on GitHub

JSON Schema

public-api-v6-contract-schema.json Raw ↑
{
  "$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
    }
  }
}