Square · Schema

Square Subscription

Represents a subscription purchased by a customer. Subscriptions enable sellers to generate recurring revenue by offering scheduled fulfillment of products or services with configurable billing periods, pricing, and discounts.

RestaurantBookingsCatalogCheckoutCustomersDisputesEcommerceFinancial TechnologyGift CardsInventoryInvoicingLaborLocationsLoyaltyMerchantsOrdersPaymentsPoint of SaleRefundsRetailSubscriptionsTeamTerminalWebhooks

Properties

Name Type Description
id string The Square-assigned ID of the subscription.
location_id string The ID of the location associated with the subscription.
plan_variation_id string The ID of the subscribed-to subscription plan variation.
customer_id string The ID of the subscribing customer profile.
start_date string The YYYY-MM-DD-formatted date to start the subscription.
canceled_date string The YYYY-MM-DD-formatted date to cancel the subscription, when the subscription status changes to CANCELED and the subscription billing stops.
charged_through_date string The YYYY-MM-DD-formatted date up to when the subscriber is invoiced for the subscription.
status string The current status of the subscription.
tax_percentage string The tax amount applied when billing the subscription. The percentage is expressed in decimal form, using a '.' as the decimal separator and without a '%' sign. For example, a value of 7.5 corresponds
invoice_ids array The IDs of the invoices created for the subscription, listed in order when the invoices were created (newest invoices appear first).
price_override_money object A custom price which overrides the cost of a subscription plan variation with STATIC pricing.
version integer The version of the object. When updating an object, the version supplied must match the version in the database.
created_at string The timestamp when the subscription was created, in RFC 3339 format.
card_id string The ID of the subscriber's card used to charge for the subscription.
timezone string Timezone that will be used in date calculations for the subscription. Defaults to the timezone of the location based on location_id. Format: the IANA Timezone Database identifier.
source object The origination details of the subscription.
actions array The list of scheduled actions on this subscription.
monthly_billing_anchor_date integer The day of the month on which the subscription will issue invoices and publish orders.
phases array The subscription phases that define the billing schedule.
View JSON Schema on GitHub

JSON Schema

subscription.json Raw ↑
{
  "$id": "https://github.com/api-evangelist/square/blob/main/json-schema/subscription.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Square Subscription",
  "description": "Represents a subscription purchased by a customer. Subscriptions enable sellers to generate recurring revenue by offering scheduled fulfillment of products or services with configurable billing periods, pricing, and discounts.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The Square-assigned ID of the subscription.",
      "maxLength": 255,
      "readOnly": true
    },
    "location_id": {
      "type": "string",
      "description": "The ID of the location associated with the subscription.",
      "readOnly": true
    },
    "plan_variation_id": {
      "type": "string",
      "description": "The ID of the subscribed-to subscription plan variation.",
      "readOnly": true
    },
    "customer_id": {
      "type": "string",
      "description": "The ID of the subscribing customer profile.",
      "readOnly": true
    },
    "start_date": {
      "type": "string",
      "format": "date",
      "description": "The YYYY-MM-DD-formatted date to start the subscription.",
      "readOnly": true
    },
    "canceled_date": {
      "type": "string",
      "format": "date",
      "description": "The YYYY-MM-DD-formatted date to cancel the subscription, when the subscription status changes to CANCELED and the subscription billing stops."
    },
    "charged_through_date": {
      "type": "string",
      "format": "date",
      "description": "The YYYY-MM-DD-formatted date up to when the subscriber is invoiced for the subscription.",
      "readOnly": true
    },
    "status": {
      "type": "string",
      "description": "The current status of the subscription.",
      "enum": ["PENDING", "ACTIVE", "CANCELED", "DEACTIVATED", "PAUSED"],
      "readOnly": true
    },
    "tax_percentage": {
      "type": "string",
      "description": "The tax amount applied when billing the subscription. The percentage is expressed in decimal form, using a '.' as the decimal separator and without a '%' sign. For example, a value of 7.5 corresponds to 7.5%."
    },
    "invoice_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The IDs of the invoices created for the subscription, listed in order when the invoices were created (newest invoices appear first).",
      "readOnly": true
    },
    "price_override_money": {
      "$ref": "money.json",
      "description": "A custom price which overrides the cost of a subscription plan variation with STATIC pricing."
    },
    "version": {
      "type": "integer",
      "format": "int64",
      "description": "The version of the object. When updating an object, the version supplied must match the version in the database."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the subscription was created, in RFC 3339 format.",
      "readOnly": true
    },
    "card_id": {
      "type": "string",
      "description": "The ID of the subscriber's card used to charge for the subscription."
    },
    "timezone": {
      "type": "string",
      "description": "Timezone that will be used in date calculations for the subscription. Defaults to the timezone of the location based on location_id. Format: the IANA Timezone Database identifier.",
      "readOnly": true
    },
    "source": {
      "type": "object",
      "description": "The origination details of the subscription.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name used to identify the place that created the subscription."
        }
      }
    },
    "actions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the scheduled action."
          },
          "type": {
            "type": "string",
            "description": "The type of the action.",
            "enum": ["CANCEL", "PAUSE", "RESUME", "SWAP_PLAN", "CHANGE_BILLING_ANCHOR_DATE"]
          },
          "effective_date": {
            "type": "string",
            "format": "date",
            "description": "The YYYY-MM-DD-formatted date when the action will take effect."
          }
        }
      },
      "description": "The list of scheduled actions on this subscription."
    },
    "monthly_billing_anchor_date": {
      "type": "integer",
      "description": "The day of the month on which the subscription will issue invoices and publish orders.",
      "minimum": 1,
      "maximum": 31
    },
    "phases": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "description": "The Square-assigned ID of the subscription phase."
          },
          "cadence": {
            "type": "string",
            "description": "The billing cadence of the phase.",
            "enum": ["DAILY", "WEEKLY", "EVERY_TWO_WEEKS", "THIRTY_DAYS", "SIXTY_DAYS", "NINETY_DAYS", "MONTHLY", "EVERY_TWO_MONTHS", "QUARTERLY", "EVERY_FOUR_MONTHS", "EVERY_SIX_MONTHS", "ANNUAL", "EVERY_TWO_YEARS"]
          },
          "periods": {
            "type": "integer",
            "description": "The number of periods the phase lasts."
          },
          "recurring_price_money": {
            "$ref": "money.json",
            "description": "The amount billed per period during this phase."
          },
          "ordinal": {
            "type": "integer",
            "format": "int64",
            "description": "The position this phase appears in the sequence of phases."
          }
        }
      },
      "description": "The subscription phases that define the billing schedule."
    }
  }
}