Revolut · Schema

Subscription-Cycle

CompanyFintechPaymentsBankingOpen BankingMerchant AcquiringCryptocurrencyCardsConsumer Banking

Properties

Name Type Description
id object
subscription_id object
plan_variation_id object
plan_variation_phase_id object
number object
previous_cycle_id object
state object
start_date object
end_date object
usage_cutoff_date object
order_id object
post_billing_order_id object
trial object
View JSON Schema on GitHub

JSON Schema

revolut-subscription-cycle-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/revolut/main/json-schema/revolut-subscription-cycle-schema.json",
  "title": "Subscription-Cycle",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/revolut-subscriptions-api-openapi.yml#/components/schemas/Subscription-Cycle",
  "type": "object",
  "required": [
    "id",
    "subscription_id",
    "plan_variation_id",
    "number",
    "state"
  ],
  "properties": {
    "id": {
      "$ref": "#/$defs/Subscription-Cycle-Id"
    },
    "subscription_id": {
      "$ref": "#/$defs/Subscription-Id"
    },
    "plan_variation_id": {
      "$ref": "#/$defs/Subscription-Plan-Variation-Id"
    },
    "plan_variation_phase_id": {
      "$ref": "#/$defs/Subscription-Plan-Phase-Id"
    },
    "number": {
      "$ref": "#/$defs/Cycle-Number"
    },
    "previous_cycle_id": {
      "$ref": "#/$defs/Previous-Cycle-Id"
    },
    "state": {
      "$ref": "#/$defs/Subscription-Cycle-State"
    },
    "start_date": {
      "$ref": "#/$defs/Subscription-Cycle-Start-Date"
    },
    "end_date": {
      "$ref": "#/$defs/Subscription-Cycle-End-Date"
    },
    "usage_cutoff_date": {
      "$ref": "#/$defs/Subscription-Cycle-Usage-Cutoff-Date"
    },
    "order_id": {
      "$ref": "#/$defs/Order-Id"
    },
    "post_billing_order_id": {
      "$ref": "#/$defs/Subscription-Cycle-Post-Billing-Order-Id"
    },
    "trial": {
      "$ref": "#/$defs/Subscription-Cycle-Trial"
    }
  },
  "$defs": {
    "Cycle-Number": {
      "type": "integer",
      "minimum": 1,
      "description": "The sequential cycle number within the subscription.\n\nStarts at `1` for the first cycle and increments with each new billing cycle."
    },
    "Order-Id": {
      "type": "string",
      "format": "uuid",
      "description": "Permanent order ID used to retrieve, capture, cancel, or refund an order after authorization."
    },
    "Previous-Cycle-Id": {
      "type": [
        "string",
        "null"
      ],
      "format": "uuid",
      "description": "The unique identifier of the previous billing cycle.\n\nThis field is `null` for the first cycle in a subscription."
    },
    "Subscription-Cycle-End-Date": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time the subscription cycle ends in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."
    },
    "Subscription-Cycle-Id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier for the subscription cycle."
    },
    "Subscription-Cycle-Post-Billing-Order-Id": {
      "type": "string",
      "format": "uuid",
      "description": "The ID of the order created after the cycle's `usage_cutoff_date` to charge usage-based items accumulated during the cycle.\n\n| Scenario | Detail |\n| -------- | ------ |\n| Ongoing subscription | This order also acts as the next cycle's `order_id`, combining usage post-billing for the current cycle with pre-billing for the next. |\n| Last cycle | A standalone finishing order is created to charge all usage from this cycle. |\n| Subscription ended with unpaid cycles | The finishing order consolidates all outstanding usage charges, including any from previous cycles where payment failed. |\n\n:::note\nOnly present for cycles that include usage-based subscription items.\n:::"
    },
    "Subscription-Cycle-Start-Date": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time the subscription cycle starts in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."
    },
    "Subscription-Cycle-State": {
      "type": "string",
      "enum": [
        "pending",
        "active",
        "finished"
      ],
      "description": "The state of the subscription cycle.\n\n| State | Description |\n| ----- | ----------- |\n| `pending` | The cycle has been created but has not yet started. A cycle can enter this state automatically when usage is reported for a future cycle via `POST /api/subscription-usages`. |\n| `active` | The cycle is currently active and in progress. |\n| `finished` | The cycle has completed. |"
    },
    "Subscription-Cycle-Trial": {
      "type": "boolean",
      "description": "Indicates whether this billing cycle occurs during the subscription's trial period.\n\nThis value is automatically calculated by the system based on the cycle's timing relative to the subscription's trial period. Returns `true` if the cycle is within the trial period (before `trial_end_date`), otherwise `false`. \n\nTrial cycles typically have different billing behavior, such as reduced or zero charges.",
      "default": false
    },
    "Subscription-Cycle-Usage-Cutoff-Date": {
      "type": "string",
      "format": "date-time",
      "description": "The deadline for submitting or correcting usage records for this cycle, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.\n\nSet to 12 hours after the cycle's `end_date` by default. After this time, Revolut aggregates all reported usage records and creates the `post_billing_order_id` to initiate the charge.\n\n:::note\nOnly present for cycles that include usage-based subscription items.\n:::"
    },
    "Subscription-Id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier for the subscription."
    },
    "Subscription-Plan-Phase-Id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier for the subscription plan phase."
    },
    "Subscription-Plan-Variation-Id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier for the subscription plan variation."
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/revolut-subscription-cycle"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.