{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/Subscription",
"title": "Subscription",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "This is the unique identifier for the subscription."
},
"createdAt": {
"format": "date-time",
"type": "string",
"description": "This is the timestamp when the subscription was created."
},
"updatedAt": {
"format": "date-time",
"type": "string",
"description": "This is the timestamp when the subscription was last updated."
},
"type": {
"type": "string",
"description": "This is the type / tier of the subscription.",
"enum": [
"pay-as-you-go",
"enterprise",
"agency",
"startup",
"growth",
"scale"
]
},
"status": {
"type": "string",
"description": "This is the status of the subscription. Past due subscriptions are subscriptions\nwith past due payments.",
"enum": [
"active",
"frozen"
]
},
"credits": {
"type": "string",
"description": "This is the number of credits the subscription currently has.\n\nNote: This is a string to avoid floating point precision issues."
},
"concurrencyCounter": {
"type": "number",
"description": "This is the total number of active calls (concurrency) across all orgs under this subscription.",
"minimum": 1
},
"concurrencyLimitIncluded": {
"type": "number",
"description": "This is the default concurrency limit for the subscription.",
"minimum": 1
},
"phoneNumbersCounter": {
"type": "number",
"description": "This is the number of free phone numbers the subscription has",
"minimum": 1
},
"phoneNumbersIncluded": {
"type": "number",
"description": "This is the maximum number of free phone numbers the subscription can have",
"minimum": 1
},
"concurrencyLimitPurchased": {
"type": "number",
"description": "This is the purchased add-on concurrency limit for the subscription.",
"minimum": 1
},
"monthlyChargeScheduleId": {
"type": "number",
"description": "This is the ID of the monthly job that charges for subscription add ons and phone numbers."
},
"monthlyCreditCheckScheduleId": {
"type": "number",
"description": "This is the ID of the monthly job that checks whether the credit balance of the subscription\nis sufficient for the monthly charge."
},
"stripeCustomerId": {
"type": "string",
"description": "This is the Stripe customer ID."
},
"stripePaymentMethodId": {
"type": "string",
"description": "This is the Stripe payment ID."
},
"slackSupportEnabled": {
"type": "boolean",
"description": "If this flag is true, then the user has purchased slack support."
},
"slackChannelId": {
"type": "string",
"description": "If this subscription has a slack support subscription, the slack channel's ID will be stored here."
},
"hipaaEnabled": {
"type": "boolean",
"description": "This is the HIPAA enabled flag for the subscription. It determines whether orgs under this\nsubscription have the option to enable HIPAA compliance."
},
"zdrEnabled": {
"type": "boolean",
"description": "This is the ZDR enabled flag for the subscription. It determines whether orgs under this\nsubscription have the option to enable ZDR."
},
"dataRetentionEnabled": {
"type": "boolean",
"description": "This is the data retention enabled flag for the subscription. It determines whether orgs under this\nsubscription have the option to enable data retention."
},
"hipaaCommonPaperAgreementId": {
"type": "string",
"description": "This is the ID for the Common Paper agreement outlining the HIPAA contract."
},
"stripePaymentMethodFingerprint": {
"type": "string",
"description": "This is the Stripe fingerprint of the payment method (card). It allows us\nto detect users who try to abuse our system through multiple sign-ups."
},
"stripeCustomerEmail": {
"type": "string",
"description": "This is the customer's email on Stripe."
},
"referredByEmail": {
"type": "string",
"description": "This is the email of the referrer for the subscription."
},
"autoReloadPlan": {
"description": "This is the auto reload plan configured for the subscription.",
"allOf": [
{
"$ref": "#/components/schemas/AutoReloadPlan"
}
]
},
"minutesIncluded": {
"type": "number",
"description": "The number of minutes included in the subscription.",
"minimum": 0
},
"minutesUsed": {
"type": "number",
"description": "The number of minutes used in the subscription.",
"minimum": 0
},
"minutesUsedNextResetAt": {
"format": "date-time",
"type": "string",
"description": "This is the timestamp at which the number of monthly free minutes is scheduled to reset at."
},
"minutesOverageCost": {
"type": "number",
"description": "The per minute charge on minutes that exceed the included minutes. Enterprise only."
},
"providersIncluded": {
"description": "The list of providers included in the subscription. Enterprise only.",
"type": "array",
"items": {
"type": "string"
}
},
"outboundCallsDailyLimit": {
"type": "number",
"description": "The maximum number of outbound calls this subscription may make in a day. Resets every night.",
"minimum": 1
},
"outboundCallsCounter": {
"type": "number",
"description": "The current number of outbound calls the subscription has made in the current day.",
"minimum": 1
},
"outboundCallsCounterNextResetAt": {
"format": "date-time",
"type": "string",
"description": "This is the timestamp at which the outbound calls counter is scheduled to reset at."
},
"couponIds": {
"description": "This is the IDs of the coupons applicable to this subscription.",
"type": "array",
"items": {
"type": "string"
}
},
"couponUsageLeft": {
"type": "string",
"description": "This is the number of credits left obtained from a coupon."
},
"invoicePlan": {
"description": "This is the invoice plan for the subscription.",
"allOf": [
{
"$ref": "#/components/schemas/InvoicePlan"
}
]
},
"pciEnabled": {
"type": "boolean",
"description": "This is the PCI enabled flag for the subscription. It determines whether orgs under this\nsubscription have the option to enable PCI compliance."
},
"pciCommonPaperAgreementId": {
"type": "string",
"description": "This is the ID for the Common Paper agreement outlining the PCI contract."
},
"callRetentionDays": {
"type": "number",
"description": "This is the call retention days for the subscription."
},
"chatRetentionDays": {
"type": "number",
"description": "This is the chat retention days for the subscription."
},
"minutesIncludedResetFrequency": {
"type": "string",
"description": "This is the minutes_included reset frequency for the subscription.",
"enum": [
"monthly",
"annually"
]
},
"rbacEnabled": {
"type": "boolean",
"description": "This is the Role Based Access Control (RBAC) enabled flag for the subscription."
},
"platformFee": {
"type": "number",
"description": "This is the platform fee for the subscription."
}
},
"required": [
"id",
"createdAt",
"updatedAt",
"type",
"status",
"credits",
"concurrencyCounter",
"concurrencyLimitIncluded",
"concurrencyLimitPurchased"
]
}