Mindbody · JSON Structure

Public Api V6 Contract Structure

Implementation of the 'Contract' model.

Type: object Properties: 38
FitnessWellnessBeautySchedulingBookingPoint of SaleStudiosSalonsSpasWebhooks

Contract is a JSON Structure definition published by Mindbody, describing 38 properties. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

Id Name Description AssignsMembershipId AssignsMembershipName SoldOnline ContractItems IntroOffer AutopaySchedule NumberOfAutopays AutopayTriggerType ActionUponCompletionOfAutopays ClientsChargedOn ClientsChargedOnSpecificDate DiscountAmount DepositAmount FirstAutopayFree LastAutopayFree ClientTerminateOnline MembershipTypeRestrictions LocationPurchaseRestrictionIds LocationPurchaseRestrictionNames AgreementTerms RequiresElectronicConfirmation AutopayEnabled FirstPaymentAmountSubtotal FirstPaymentAmountTax FirstPaymentAmountTotal RecurringPaymentAmountSubtotal RecurringPaymentAmountTax RecurringPaymentAmountTotal TotalContractAmountSubtotal TotalContractAmountTax TotalContractAmountTotal PromoPaymentAmountSubtotal PromoPaymentAmountTax PromoPaymentAmountTotal NumberOfPromoAutopays

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/mindbody/refs/heads/main/json-structure/public-api-v6-contract-structure.json",
  "name": "Contract",
  "description": "Implementation of the 'Contract' model.",
  "type": "object",
  "properties": {
    "Id": {
      "type": "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": "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": "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": "datetime",
      "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": "double",
      "description": "The calculated discount applied to the items in this contract.",
      "example": 49.99
    },
    "DepositAmount": {
      "type": "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": "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": "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": "double",
      "description": "The amount of tax that the client is to be charged when signing up for the contract.",
      "example": 49.99
    },
    "FirstPaymentAmountTotal": {
      "type": "double",
      "description": "The total amount that the client is to be charged when signing up for the contract.",
      "example": 49.99
    },
    "RecurringPaymentAmountSubtotal": {
      "type": "double",
      "description": "The subtotal amount that the client is to be charged on an ongoing basis.",
      "example": 49.99
    },
    "RecurringPaymentAmountTax": {
      "type": "double",
      "description": "The amount of tax the client is to be charged on an ongoing basis.",
      "example": 49.99
    },
    "RecurringPaymentAmountTotal": {
      "type": "double",
      "description": "The total amount that the client is to be charged on an ongoing basis.",
      "example": 49.99
    },
    "TotalContractAmountSubtotal": {
      "type": "double",
      "description": "The subtotal amount that the client is to be charged over the lifespan of the contract.",
      "example": 49.99
    },
    "TotalContractAmountTax": {
      "type": "double",
      "description": "The total amount of tax the client is to be charged over the lifespan of the contract.",
      "example": 49.99
    },
    "TotalContractAmountTotal": {
      "type": "double",
      "description": "The total amount the client is to be charged over the lifespan of the contract.",
      "example": 49.99
    },
    "PromoPaymentAmountSubtotal": {
      "type": "double",
      "description": "Subtotal promotional period",
      "example": 49.99
    },
    "PromoPaymentAmountTax": {
      "type": "double",
      "description": "Taxes of promotional period",
      "example": 49.99
    },
    "PromoPaymentAmountTotal": {
      "type": "double",
      "description": "Total of promotional period",
      "example": 49.99
    },
    "NumberOfPromoAutopays": {
      "type": "int32",
      "description": "Number of times that the AutoPay runs under the promotional period",
      "example": 1
    }
  }
}