» Subscriptions API Documentation

Subscription (API v2)

This page documents the API v2 endpoints used for subscription workflows, including account creation, payment method management, creating subscription orders, and subscription plan changes (upgrade/downgrade/change), previews, cancellations, and removing scheduled cancellation events.

Subscriptions created or managed via the API may also be visible and editable in the UI. The UI and API operate on the same underlying subscription objects.

Base URL: https://dev-api.exsited.com/

First API Call: Authentication & Prerequisites

Authentication
Subscription endpoints use standard Exsited API authentication. Follow: https://developer.exsited.com/exsited-api-authentication

Prerequisites

  • Your token/credential has sufficient scope/permissions for the required resources.
  • Your integration is authorized to perform standard CRUD operations required by the workflow (e.g., create subscription order, update payment method, retrieve order status, cancel subscription).
  • Use expected headers (typical examples):
    • Authorization: Bearer <token>
    • Content-Type: application/json 

Common Notes

TopicNotes
CurrencyDefault is "AUD" but can be configured
Payment ProcessorCurrently using "Cash" and "Stripe"
DatesFormat is "YYYY-MM-DD"
Family Item IDDefault is "ITEM-0001" (configurable in application.yml)

Subscription Object and Relationships

The Subscription object represents a recurring billing agreement between an account and the platform. It defines how, when, and under what conditions charges are generated over time.

A subscription encapsulates:

The billing cadence (monthly / annual)
The pricing configuration applied to each billing cycle
The lifecycle state governing whether charges are currently being generated
The association to an account or underlying order


Subscriptions are stateful objects. Their behaviour over time is determined not only by their current fields, but also by historical actions such as updates, pauses, cancellations, and renewals.

Data Types & Encoding

string

UTF-8 encoded text.

Also used to represent numeric values where precision or formatting must be preserved.

string (number)

A string containing a numeric value (e.g. "99.99", "1").

Commonly used for:

  • Monetary values
  • Quantities
  • Identifiers originating from systems without reliable numeric types

dates

Format is "YYYY-MM-DD"

number

JSON numeric type.

Used only where integer or floating-point semantics are intentional and safe.

boolean values

Boolean fields may appear in multiple representations:

  • true / false (JSON boolean)
  • "true" / "false" (string-encoded)
  • "True" / "False" (capitalised string)

Integration note: Clients should pay special attention to boolean values.

monetary values

Monetary values are:

  • Represented as strings
  • Accompanied by a three letter ISO currency code

    Example:

    {
    "amount":"99.99",
    "currency":"AUD"
    }

    Supported Currencies & Payment Processors

    Current processors referenced in this flow include "Cash" and "Stripe".

    Endpoints Reference

    Quick Start Workflows

    Create a subscription
    Standard flow:

    1. Create or identify the customer account
    2. Add a payment method (set default if required)
    3. Create subscription order
    4. Retrieve the order to confirm status and package

    Express flow: Use the express order creation endpoint to create; account, payment method and subscription order all at once.

    Modify subscription (recommended flow)

    1. Retrieve current subscription
    2. Retrieve target package details (package_details.rank)
    3. Preview pricing / contract adjustment (recommended)
    4. Apply change:
      1. Upgrade: rank increases
      2. Downgrade: rank decreases
      3. Change: same rank or any different package
    5. Retrieve order to confirm

    Cancel subscription

    1. Cancel subscription
    2. Retrieve order to confirm status

    Remove Scheduled Event

    1. Retrieve subscription order
    2. Remove scheduled event (cancellation or other future change)
    3. Retrieve order to confirm removal

    The removal endpoint can remove any scheduled event (something with an event_uuid), not only cancellation events.

    Subscription Plan Alteration Behaviour (Upgrade, Downgrade & Change

    Plan changes are classified using the rank of each package in the subscription type. Rank is defined inside package_details for a subscription package.

    To view rank (and other package metadata like name/status), retrieve the item:

    {{base_url}}/api/v2/items/ITEM-XXXX

    Then read:

    item.package_details

    Classification rules

    • Upgrade: moving from a lower rank → higher rank
      Example: rank 1 → 3 is an upgrade.
    • Downgrade: moving from a higher rank → lower rank
      Example: rank 3 → 1 is a downgrade.
    • Change: switching to any alternate package, including same-rank changes.
      Example: rank 2 → 2 (different package, same rank) is still a Change.

    Recommendation
    Where available, use the Preview endpoints before applying upgrades/downgrades/changes to confirm pricing and contract adjustments.

    Endpoints

    Express Order Creation (/express)

    POST
    https://dev-api.exsited.com/api/v2/express
    Try It Out
    Purpose

    Creates an account and an order within a single request. Includes an account object and an embedded order object in the request body.

    Use Case

    Create a new customer account and place an order for that customer in one API call (instead of creating the account first, then creating the order).

    Path Parameters

    No path parameters required for this endpoint.

    Request Body Parameters

    Account Field Names

    Names Type Description
    account Object Account payload container.
    account.name String Account name (example: "John Doe").
    account.email_address String Account email address (example: "john.doe@example.com").
    account.currency String Account currency code (example: "AUD").

    Account Addresses Names

    Names Type Description
    account.addresses Array List of address records associated with the account.
    account.addresses[] Object Address record entry.
    account.addresses[].address_line_1 String Primary street address line (example: "123 Main Street").
    account.addresses[].address_line_2 String Secondary address line (example: "Suite 100").
    account.addresses[].post_code String (Number) Postal code encoded as a string (example: "2000").
    account.addresses[].city String City/locality (example: "Sydney").
    account.addresses[].state String State/region (example: "NSW").
    account.addresses[].country String Country name (example: "Australia").
    account.addresses[].isDefaultBilling Boolean Whether this address is the default billing address.
    account.addresses[].isDefaultShipping Boolean Whether this address is the default shipping address.

    Other Field Names

    Names Type Description
    account.order Object Embedded order payload.
    account.order.allow_contract String Enables contract logic for this order.
    account.order.price_tax_inclusive String Whether price values include tax.

    Contract Properties Names

    NamesTypeDescription
    account.order.contract_propertiesObjectContract properties container.
    account.order.contract_properties.require_customer_acceptanceStringWhether contract requires customer acceptance.
    account.order.contract_properties.requires_payment_methodStringWhether contract requires a payment method.
    account.order.contract_properties.initial_contract_termStringInitial contract term (example: "10 Year").
    account.order.contract_properties.renew_automaticallyStringWhether the contract renews automatically.
    account.order.contract_properties.auto_renewal_termStringRenewal term applied on auto-renew (example: "1 Week").
    account.order.contract_properties.allow_early_terminationStringWhether early termination is allowed.
    account.order.contract_properties.early_termination_minimum_periodStringMinimum period before early termination is allowed (example: "1 Day").
    account.order.contract_properties.apply_early_termination_chargeStringWhether early termination charge applies.
    account.order.contract_properties.allow_postponementStringWhether postponement is allowed.
    account.order.contract_properties.maximum_duration_per_postponementStringMaximum duration allowed per postponement (example: "1 Day").
    account.order.contract_properties.maximum_postponement_countIntegerMaximum number of postponements allowed.
    account.order.contract_properties.allow_trialStringWhether trial is allowed.
    account.order.contract_properties.start_contract_after_trial_endsStringWhether contract starts after trial ends.
    account.order.contract_properties.trial_periodStringTrial period length (example: "1 day").
    account.order.contract_properties.allow_downgradeStringWhether downgrade is allowed.
    account.order.contract_properties.period_before_downgradeStringPeriod before downgrade is allowed (example: "1 Day").
    account.order.contract_properties.allow_downgrade_chargeStringWhether downgrade charge applies.
    account.order.contract_properties.downgrade_charge_typeStringDowngrade charge type (example: "Fixed").
    account.order.contract_properties.downgrade_charge_fixedNumberFixed downgrade charge amount (example: 1.0).
    account.order.contract_properties.allow_upgradeStringWhether upgrade is allowed.

    Order Properties

    NamesTypeDescription
    account.order.propertiesObjectOrder properties container.
    account.order.properties.billing_periodStringBilling period for the order (example: "1 Month").

    Order Lines

    Names Type Description
    account.order.lines Array List of order lines.
    account.order.lines[] Object Order line entry.
    account.order.lines[].item_id String Item identifier.
    account.order.lines[].item_order_quantity Integer Quantity of the item ordered.
    account.order.lines[].package_name String Package name label.

    Item Price Snapshot

    Names Type Description
    account.order.lines[].item_price_snapshot Object Item price snapshot container.
    account.order.lines[].item_price_snapshot.pricing_rule Object Pricing rule container.
    account.order.lines[].item_price_snapshot.pricing_rule.price Number Item unit price.

    Invoice Payment

    Names Type Description
    account.order.invoice Object Invoice container.
    account.order.invoice.payment Object Payment container.
    account.order.invoice.payment.payment_applied Array Payments applied to the invoice.
    account.order.invoice.payment.payment_applied[] Object Payment application entry.
    account.order.invoice.payment.payment_applied[].processor String Payment processor (example: "cash").
    account.order.invoice.payment.payment_applied[].amount Number Amount applied.
    Request Body
    {
      "account": {
        "name": "John Doe",
        "email_address": "john.doe@example.com",
        "currency": "AUD",
        "accounting_code": {
            "account_receivable": "Account Receivable"
        },
        "addresses": [
          {
            "address_line_1": "123 Main Street",
            "address_line_2": "Suite 100",
            "post_code": "2000",
            "city": "Sydney",
            "state": "NSW",
            "country": "Australia",
            "isDefaultBilling": true,
            "isDefaultShipping": false
          }
        ],
        "order": {
          "allow_contract": "True",
          "price_tax_inclusive": "true",
          "contract_properties": {
            "require_customer_acceptance": false,
            "requires_payment_method": false,
            "initial_contract_term": "10 Year",
            "renew_automatically": true,
            "auto_renewal_term": "1 Week",
            "allow_early_termination": true,
            "early_termination_minimum_period": "1 Day",
            "apply_early_termination_charge": false,
            "allow_postponement": true,
            "maximum_duration_per_postponement": "1 Day",
            "maximum_postponement_count": 1,
            "allow_trial": false,
            "start_contract_after_trial_ends": true,
            "trial_period": "1 day",
            "allow_downgrade": true,
            "period_before_downgrade": "1 Day",
            "allow_downgrade_charge": false,
            "downgrade_charge_type": "Fixed",
            "downgrade_charge_fixed": 1.0,
            "allow_upgrade": true
          },
          "properties": {
            "billing_period": "1 Month"
          },
          "lines": [
            {
              "item_id": "ITEM-0001",
              "item_order_quantity": 1,
              "package_name": "Premium_Plan",
              "item_price_snapshot": {
                "pricing_rule": {
                  "price": "29.99"
                }
              }
            }
          ],
          "invoice": {
            "payment": {
              "payment_applied": [
                {
                  "processor": "Cash",
                  "amount": "29.99"
                }
              ]
            }
          }
        }
      }
    }
    Request Example Via Existing Account
    {
      "account": {
        "id": "ACC-12345",
        "order": {
          /* same order object as above */
        }
      }
    }
    Response Body and Return

    Returns an order object for the newly created subscription order, including identifiers, status, customer/account context, pricing, and line details.

    {
      "order": {
        "status": "ACTIVE",
        "id": "ORD-******-****",
        "pre_order": "false",
        "quote_order": "false",
        "quote_converted": "false",
        "order_type": "REGULAR",
        "name": "Example - API Subscription Test",
        "display_name": "Example - API Subscription Test",
        "description": "",
        "referral_account": "",
        "customer_purchase_order_id": "",
        "shipping_profile": {},
        "shipping_cost": "0.000000",
        "discount_profile": null,
        "origin": "",
        "custom_forms": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "Default for Order"
        },
        "currency": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "AUD",
          "link": "https://dev-api.exsited.com/api/v1/currencies/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        "time_zone": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "Australia/Sydney",
          "link": "https://dev-api.exsited.com/api/v1/time_zones/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        "invoice_note": "",
        "billing_start_date": "ORDER_START_DATE",
        "order_start_date": "2026-02-02T00:00:00Z",
        "next_billing_from_date": "2026-03-02 00:00:00.000000",
        "next_billing_from_date_utc": "2026-03-01T13:00:00Z",
        "price_tax_inclusive": "true",
        "billing_address": {},
        "shipping_address": {},
        "created_by": "API User",
        "created_on": "2026-02-02T01:43:25Z",
        "last_updated_by": "",
        "last_updated_on": "",
        "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "version": "1",
        "account_id": "******",
        "account_name": "John Doe",
        "allow_contract": "true",
        "contract_properties": {
          "require_customer_acceptance": "false",
          "requires_payment_method": "false",
          "initial_contract_term": "10 Year",
          "renew_automatically": "true",
          "auto_renewal_ends_on": "",
          "auto_renewal_term": "1 Week",
          "auto_renewal_require_customer_acceptance": "false",
          "allow_early_termination": "true",
          "early_termination_minimum_period": "1 Day",
          "apply_early_termination_charge": "false",
          "early_termination_charge_type": "Fixed",
          "termination_fixed_charge": "",
          "termination_accounting_code": "",
          "allow_postponement": "true",
          "maximum_duration_per_postponement": "1 Day",
          "maximum_postponement_count": "1",
          "allow_trial": "false",
          "allow_downgrade": "true",
          "period_before_downgrade": "1 Day",
          "allow_downgrade_charge": "false",
          "downgrade_charge_type": "Fixed",
          "downgrade_charge_fixed": "",
          "allow_upgrade": "true",
          "termination_notice_period": ""
        },
        "custom_attributes": [],
        "custom_objects": [],
        "currency_id": "1",
        "properties": {
          "communication_profile": "",
          "invoice_mode": "AUTOMATIC",
          "invoice_term": "Billing Start Date",
          "billing_period": "1 Month",
          "consolidate_invoice": "false",
          "payment_processor": "Cash",
          "payment_mode": "MANUAL",
          "payment_term": "Net 30",
          "payment_term_alignment": "BILLING_DATE",
          "fulfillment_mode": "MANUAL",
          "fulfillment_term": "Immediately",
          "proforma_properties": {
            "acceptance_required": "false",
            "payment_required": "false",
            "acceptance_term": "",
            "acceptance_date": "",
            "terms_and_conditions": ""
          }
        },
        "invoice_id": "INV-******-****",
        "lines": [
          {
            "item_serial_or_batch_number": "N/A",
            "charge_item_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "item_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "item_id": "ITEM-****",
            "item_name": "API Subscription Test - Premium Package",
            "item_order_quantity": "1.000000",
            "shipping_cost": "0.00",
            "item_invoice_note": "",
            "item_description": "",
            "item_type": "FAMILY",
            "item_charge_type": "RECURRING",
            "item_custom_attributes": [],
            "item_properties": {
              "billing_mode": "IN_ADVANCE",
              "charging_period": "Same as billing period",
              "charging_start_date": "SUBSCRIPTION_START_DATE",
              "fixed_start_date": "",
              "charging_and_billing_alignment": "false",
              "pro_rata_partial_charging_period": "true",
              "pro_rata_partial_pricing_period": "false",
              "pro_rata_partial_unit": "false"
            },
            "item_price_snapshot": {
              "pricing_rule": {
                "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                "version": "1",
                "price_type": "PER_UNIT_PRICING",
                "price": "20.000000",
                "uom": "",
                "price_period": "",
                "pricing_schedule": "",
                "pricing_level": "",
                "pricing_method": "0.000000",
                "warehouse": "BareHouse"
              }
            },
            "item_sale_tax_configuration": {
              "sale_price_is_based_on": "",
              "tax_code": {
                "uuid": "",
                "code": "",
                "rate": "",
                "link": ""
              }
            },
            "isTaxExemptWhenSold": "false",
            "item_price_tax": {
              "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
              "code": "No Tax",
              "rate": 0,
              "link": "https://dev-api.exsited.com/api/v3/settings/taxes/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
            },
            "item_accounting_code": {
              "sales_revenue": ""
            },
            "version": "1",
            "expected_delivery_date": "",
            "package_name": "Premium Package",
            "purchase_order_id": "",
            "purchase_invoice_id": "",
            "discount": 0,
            "newTaxCodeSet": null,
            "total": "20",
            "subtotal": "20",
            "tax": "0"
          }
        ],
        "total": "20",
        "subtotal": "20",
        "tax": "0",
        "kpis": {
          "start_date": "",
          "estimated_total": 0,
          "total_revenue": 0,
          "monthly_recurring_revenue": 0,
          "total_collected": 0,
          "total_outstanding": 0,
          "total_due": 0,
          "last_invoice_issue_date": "",
          "last_invoice_total": 0,
          "total_invoice": 0,
          "next_invoice_issueDate": "",
          "last_reactivated_on": "",
          "last_cancelled_on": "",
          "last_changed_on": "",
          "last_deleted_on": ""
        },
        "line_items": [],
        "activity_logs": [
          {
            "activity": "API User created Order ORD-******-****"
          }
        ]
      }
    }

    Create Account (/accounts)

    POST
    https://dev-api.exsited.com/api/v2/accounts
    Try It Out
    Purpose

    Create an account without creating an order.

    Use Case

    Use this endpoint when you need to create an account first (separately), before creating any orders for it.

    Path Parameters

    There are no path parameters for this endpoint.

    Request Body Parameters

    Account

    Names Type Description
    account Object Account payload.
    account.name String Account name.
    account.email_address String Account email address.
    Request Body
    {
      "account": {
        "name": "Jane Smith",
        "email_address": "jane.smith@example.com",
        "accounting_code": {
            "account_receivable": "Account Receivable"
        }
      }
    }
    Response Body and Return

    Returns an account object containing the created account’s identifiers, status, contact fields (e.g., email), and related metadata.

    {
      "account": {
        "status": "ACTIVE",
        "id": "******",
        "name": "Jane Smith",
        "display_name": "Jane Smith",
        "description": "",
        "parent_account": "",
        "invoice_parent_account": "false",
        "type": "CUSTOMER",
        "email_address": "jane.smith@example.com",
        "user_team": {},
        "image_uri": "",
        "group": {},
        "custom_forms": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "Default for Account"
        },
        "currency": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "AUD",
          "link": "https://dev-api.exsited.com/api/v2/currencies/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        "time_zone": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "Australia/Sydney",
          "link": "https://dev-api.exsited.com/api/v2/time_zones/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        "grant_portal_access": "false",
        "tax": {},
        "accounting_code": {
          "account_receivable": "Account Receivable"
        },
        "pricing_level": {},
        "communication_preference": "",
        "addresses": [],
        "website": "",
        "linkedin": "",
        "twitter": "",
        "facebook": "",
        "kpis": {},
        "created_by": "API User",
        "created_on": "2026-02-02T08:11:24Z",
        "last_updated_by": "",
        "last_updated_on": "",
        "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "version": "1",
        "custom_attributes": [],
        "custom_objects": [],
        "billing_preferences": {
          "communication_profile": "<Default Communication Profile>",
          "invoice_mode": "Automatic",
          "invoice_term": "Billing Start Date",
          "billing_period": "1 Month",
          "billing_start_date": "Order Start Date",
          "billing_start_day_of_month": "1st of The Month",
          "charging_and_billing_alignment": "No",
          "payment_processor": "<Default Payment Processor>",
          "payment_mode": "Manual",
          "payment_term": "Net 30",
          "payment_term_alignment": "Billing Date"
        },
        "contacts": [],
        "payment_methods": [
          {
            "processor_type": "OTHER",
            "status": "",
            "default": "false",
            "processor": {},
            "reference": "",
            "payment_count": "",
            "last_used_on": "",
            "created_by": "",
            "created_on": "",
            "last_updated_by": "",
            "last_updated_on": "",
            "uuid": "",
            "version": "",
            "use_for_specified_orders": "false",
            "specified_orders": ""
          }
        ],
        "discount_profiles": [],
        "activity_logs": []
      }
    }

    Add Payment Method (accounts/{accountId}/payment-methods)

    POST
    https://dev-api.exsited.com/api/v2/accounts/{accountId}/payment-methods
    Try It Out
    Purpose

    Adds a payment method to an existing account.

    Use Case

    Add a payment method to an account so it can be used for billing.

    Path Parameters
    Name Type Description
    accountId String Account identifier (example format: ACC-12345).
    Request Body Parameters

    Account

    Names Type Description
    account Object Account payload container.

    Payment Method

    Names Type Description
    account.payment_method Object Payment method payload associated with the account.
    account.payment_method.processor_type String Processor type identifier (example: DIRECT_CREDIT).
    account.payment_method.default JSON Boolean Indicates whether this payment method is marked as the default.
    account.payment_method.payment_processor String Payment processor name (example: Stripe).
    account.payment_method.card_type String Card type associated with the payment method (example: Visa).
    account.payment_method.token String Token value representing the payment method in the processor system (example: tok_visa_12345).
    account.payment_method.reference String Reference identifier associated with the payment method (example: Visa_789456).
    Request Body
    {
      "account": {
        "payment_method": {
          "processor_type": "DIRECT_CREDIT",
          "default": true,
          "payment_processor": "Stripe",
          "card_type": "Visa",
          "token": "tok_visa_12345",
          "reference": "Visa_789456"
        }
      }
    }
    Response Body and Return

    Returns an account.payment_method object showing the stored payment method (processor info, card type, masked number, expiry, token/reference) and whether it’s the default.

    {
      "account": {
        "payment_method": {
          "processor_type": "DIRECT_CREDIT",
          "status": "ACTIVE",
          "default": "true",
          "processor": {
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "name": "Stripe - AUD",
            "link": "https://dev-api.exsited.com/api/v2/payment_processors/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
          },
          "card_type": "VISA",
          "token": "************",
          "card_number": "****",
          "expiry_month": "**",
          "expiry_year": "**",
          "card_cvv": "***",
          "name_on_card": "",
          "reference": "Visa_**********",
          "payment_count": "0",
          "last_used_on": "",
          "last_used_result": "",
          "error_count_since_last_success": "",
          "created_by": "API User",
          "created_on": "2026-02-02T02:53:32Z",
          "last_updated_by": "",
          "last_updated_on": "",
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "version": "1",
          "use_for_specified_orders": "false",
          "specified_orders": ""
        },
        "id": "******",
        "activity_logs": [
          {
            "activity": "API User added payment method for Account ******"
          }
        ]
      }
    }

    Update Default Payment Method (/accounts/{accountId}/payment-methods/{cardRef})

    PATCH
    https://dev-api.exsited.com/api/v2/accounts/{accountId}/payment-methods/{cardRef}
    Try It Out
    Purpose

    Updates a payment method record for an account. Uses accountId and cardRef in the path. Example request updates default and includes reference.

    Use Case

    Update the default payment method configuration for an existing account payment method.

    Path Parameters
    Name Type Description
    accountId String Account identifier.
    cardRef String Payment method reference in the path (example: "Visa_789456").
    Sample URL

    "/.../v2/accounts/ACC-12345/payment-methods/Visa_789456"

    Request Body Parameters

    Account

    Names Type Description
    account Object Container for payment method updates.

    Payment Method

    Names Type Description
    account.payment_method Object Payment method update payload.
    account.payment_method.default String (JSON Boolean) Example shows "true".
    account.payment_method.reference String Example: "Visa_789456".
    Request Body
    {
      "account": {
        "payment_method": {
          "default": "true",
          "reference": "Visa_789456"
        }
      }
    }
    Response Body and Return

    Returns an updated account.payment_method object, reflecting the new default payment method selection and its stored details.

    {
      "account": {
        "payment_method": {
          "processor_type": "DIRECT_CREDIT",
          "status": "ACTIVE",
          "default": "true",
          "processor": {
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "name": "Stripe - AUD",
            "link": "https://dev-api.exsited.com/api/v2/payment_processors/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
          },
          "card_type": "VISA",
          "token": "************",
          "card_number": "****",
          "expiry_month": "**",
          "expiry_year": "**",
          "card_cvv": "***",
          "name_on_card": "",
          "reference": "Visa_**********",
          "payment_count": "0",
          "last_used_on": "",
          "last_used_result": "",
          "error_count_since_last_success": "",
          "created_by": "API User",
          "created_on": "2026-02-02T02:53:32Z",
          "last_updated_by": "API User",
          "last_updated_on": "2026-02-02T03:15:00Z",
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "version": "2",
          "use_for_specified_orders": "false",
          "specified_orders": ""
        },
        "id": "******"
      }
    }

    Delete Payment Method (/accounts/{accountId}/payment-methods/{paymentRef})

    DELETE
    https://dev-api.exsited.com/api/v2/accounts/{accountId}/payment-methods/{paymentRef}
    Try It Out
    Purpose

    Deletes a payment method for a given account.

    Use Case

    Remove a stored payment method from an account.

    Path Parameters
    Name Type Description
    accountId String Account identifier.
    paymentRef String Payment method reference (example: Visa_789456).
    Sample URL

    "/.../v2/accounts/ACC-12345/payment-methods/Visa_789456"

    Request Body Parameters

    No request body parameters are required for this endpoint.

    Request Body

    No request body is required for this endpoint.

    Response Body and Return

    Successful responses are denoted with a "204 No Content" HTTP code. There is no response body for this endpoint.

    Create Subscription Order (/orders)

    POST
    https://dev-api.exsited.com/api/v2/orders
    Try It Out
    Purpose

    Creates a subscription-based order for an existing account.

    Use Case

    Create a new subscription order for an account that already exists, including contract configuration, order lines, and billing details.

    Path Parameters
    Name Type Description
    accountId String Account identifier the subscription order will be created under.
    Request Body Parameters

    Order

    Names Type Description
    order Object Subscription order payload container.
    order.allow_contract String Enables contract functionality.
    order.price_tax_inclusive String Indicates whether prices include tax.

    Contract Properties

    Names Type Description
    order.contract_properties Object Subscription contract configuration container.
    order.contract_properties.require_customer_acceptance String Indicates whether customer acceptance is required.
    order.contract_properties.requires_payment_method String Indicates whether a payment method is required.
    order.contract_properties.initial_contract_term String Initial subscription contract duration (example: P1Y).
    order.contract_properties.renew_automatically String Indicates whether the contract auto-renews.
    order.contract_properties.auto_renewal_term String Auto-renewal term duration (example: P1Y).
    order.contract_properties.allow_trial String Indicates whether a trial period is enabled.
    order.contract_properties.trial_period String Trial duration (example: P1M).

    Order Properties

    Names Type Description
    order.properties Object Order-level properties container.
    order.properties.billing_period String Billing period interval (example: P1M).

    Order Lines

    Names Type Description
    order.lines Array Collection of order line items.
    order.lines[] Object Individual order line.
    order.lines[].item_id String Item identifier.
    order.lines[].item_order_quantity Integer Quantity ordered.
    order.lines[].package_name String Package name label.

    Item Price Snapshot

    Names Type Description
    order.lines[].item_price_snapshot Object Snapshot of item pricing at order time.
    order.lines[].item_price_snapshot.pricing_rule Object Pricing rule container.
    order.lines[].item_price_snapshot.pricing_rule.price Number Item unit price.
    Request Body
    {
      "order": {
        "allow_contract": "true",
        "price_tax_inclusive": "true",
        "contract_properties": {
          "require_customer_acceptance": "true",
          "requires_payment_method": "true",
          "initial_contract_term": "P1Y",
          "renew_automatically": "true",
          "auto_renewal_term": "P1Y",
          "allow_trial": "true",
          "trial_period": "P1M"
        },
        "properties": {
          "billing_period": "P1M"
        },
        "lines": [
          {
            "item_id": "ITEM-12345",
            "item_order_quantity": 1,
            "package_name": "Base Plan",
            "item_price_snapshot": {
              "pricing_rule": {
                "price": 99.99
              }
            }
          }
        ]
      }
    }
    
    Response Body and Return

    Returns an order object representing the created subscription order, including status/IDs plus the full order snapshot (lines, totals, currency, etc.).

    {
      "order": {
        "status": "ACTIVE",
        "id": "ORD-******-****",
        "pre_order": "false",
        "quote_order": "false",
        "quote_converted": "false",
        "order_type": "REGULAR",
        "name": "Jane Smith - API Subscription Test",
        "display_name": "Jane Smith - API Subscription Test",
        "description": "",
        "referral_account": "",
        "customer_purchase_order_id": "",
        "shipping_profile": {},
        "shipping_cost": "0.000000",
        "discount_profile": null,
        "origin": "",
        "custom_forms": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "Default for Order"
        },
        "currency": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "AUD",
          "link": "https://dev-api.exsited.com/api/v1/currencies/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        "time_zone": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "Australia/Sydney",
          "link": "https://dev-api.exsited.com/api/v1/time_zones/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        "invoice_note": "",
        "billing_start_date": "ORDER_START_DATE",
        "order_start_date": "2026-02-02T00:00:00Z",
        "next_billing_from_date": "2026-03-02 00:00:00.000000",
        "next_billing_from_date_utc": "2026-03-01T13:00:00Z",
        "price_tax_inclusive": "false",
        "billing_address": {},
        "shipping_address": {},
        "created_by": "API User",
        "created_on": "2026-02-02T08:16:25Z",
        "last_updated_by": "",
        "last_updated_on": "",
        "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "version": "1",
        "account_id": "******",
        "account_name": "Jane Smith",
        "allow_contract": "false",
        "custom_attributes": [],
        "custom_objects": [],
        "currency_id": "1",
        "properties": {
          "communication_profile": "",
          "invoice_mode": "AUTOMATIC",
          "invoice_term": "Billing Start Date",
          "billing_period": "1 Month",
          "consolidate_invoice": "false",
          "payment_processor": "Cash",
          "payment_mode": "MANUAL",
          "payment_term": "Net 30",
          "payment_term_alignment": "BILLING_DATE",
          "fulfillment_mode": "MANUAL",
          "fulfillment_term": "Immediately",
          "proforma_properties": {
            "acceptance_required": "false",
            "payment_required": "false",
            "acceptance_term": "",
            "acceptance_date": "",
            "terms_and_conditions": ""
          }
        },
        "invoice_id": "INV-******-****",
        "lines": [
          {
            "item_serial_or_batch_number": "N/A",
            "charge_item_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "item_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "item_id": "ITEM-****",
            "item_name": "API Subscription Test - Premium Package",
            "item_order_quantity": "1.000000",
            "shipping_cost": "0.00",
            "item_invoice_note": "",
            "item_description": "",
            "item_type": "FAMILY",
            "item_charge_type": "RECURRING",
            "item_custom_attributes": [],
            "item_properties": {
              "billing_mode": "IN_ADVANCE",
              "charging_period": "Same as billing period",
              "charging_start_date": "SUBSCRIPTION_START_DATE",
              "fixed_start_date": "",
              "charging_and_billing_alignment": "false",
              "pro_rata_partial_charging_period": "true",
              "pro_rata_partial_pricing_period": "false",
              "pro_rata_partial_unit": "false"
            },
            "item_price_snapshot": {
              "pricing_rule": {
                "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                "version": "1",
                "price_type": "PER_UNIT_PRICING",
                "price": "100.000000",
                "uom": "",
                "price_period": "",
                "pricing_schedule": "",
                "pricing_level": "",
                "pricing_method": "0.000000",
                "warehouse": "BareHouse"
              }
            },
            "item_sale_tax_configuration": {
              "sale_price_is_based_on": "",
              "tax_code": {
                "uuid": "",
                "code": "",
                "rate": "",
                "link": ""
              }
            },
            "isTaxExemptWhenSold": "false",
            "item_price_tax": {
              "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
              "code": "No Tax",
              "rate": 0,
              "link": "https://dev-api.exsited.com/api/v3/settings/taxes/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
            },
            "item_accounting_code": {
              "sales_revenue": ""
            },
            "version": "1",
            "expected_delivery_date": "",
            "package_name": "Premium Package",
            "purchase_order_id": "",
            "purchase_invoice_id": "",
            "discount": 0,
            "newTaxCodeSet": null,
            "total": "100",
            "subtotal": "100",
            "tax": "0"
          }
        ],
        "total": "100",
        "subtotal": "100",
        "tax": "0",
        "kpis": {
          "start_date": "",
          "estimated_total": 0,
          "total_revenue": 0,
          "monthly_recurring_revenue": 0,
          "total_collected": 0,
          "total_outstanding": 0,
          "total_due": 0,
          "last_invoice_issue_date": "",
          "last_invoice_total": 0,
          "total_invoice": 0,
          "next_invoice_issueDate": "",
          "last_reactivated_on": "",
          "last_cancelled_on": "",
          "last_changed_on": "",
          "last_deleted_on": ""
        },
        "line_items": [],
        "activity_logs": [
          {
            "activity": "API User created Order ORD-******-****"
          }
        ]
      }
    }

    Upgrade Subscription Endpoint (/orders/{orderId}/upgrade)

    POST
    https://dev-api.exsited.com/api/v2/orders/{orderId}/upgrade
    Try It Out
    Purpose

    Applies an upgrade action against an existing order.

    Use Case

    Upgrade an existing subscription order by submitting the new line item details and an effective date.

    Path Parameters
    Name Type Description
    orderId String Unique order identifier.
    Request Body Parameters

    Upgrade Request Fields

    Names Type Description
    effective_date String Date on which the changes described in this request take effect (example: "2026-01-15" ).
    lines Array Collection of line entries representing items affected by this request.
    payment_information Object Payment information container associated with this operation.

    Upgrade Line Fields

    Names Type Description
    lines[] Object Individual line entry.
    lines[].item_uuid String Unique identifier of the item being referenced (example: "ITEM-UUID-123" ).
    lines[].charge_item_uuid String Unique identifier of the charge item associated with the subscription plan variant (example: "CHARGE-UUID-456" ).
    lines[].package_name String Package or plan name associated with the line entry (example: "Enterprise_Plan" ).
    lines[].item_quantity String (Number) Quantity value encoded as a numeric string (example: "1" ).
    lines[].item_price_snapshot Object Price snapshot container applied to this line entry.

    Upgrade Line Price Snapshot Fields

    Names Type Description
    lines[].item_price_snapshot.pricing_rule Object Pricing rule container used to derive the snapshot price.
    lines[].item_price_snapshot.pricing_rule.price String (Number) Price value encoded as a numeric string (example: "99.99" ).

    Payment Information Fields

    Names Type Description
    payment_information.payment_processor String Payment processor identifier used for this operation (example: "Cash" ).
    payment_information.amount String (Number) Payment amount encoded as a numeric string (example: "99.99" ).
    Request Body
    {
      "effective_date": "2026-01-15",
      "lines": [
        {
          "item_uuid": "ITEM-UUID-123",
          "charge_item_uuid": "CHARGE-UUID-456",
          "package_name": "Enterprise_Plan",
          "item_quantity": "1",
          "item_price_snapshot": {
            "pricing_rule": {
              "price": "99.99"
            }
          }
        }
      ],
      "payment_information": {
        "payment_processor": "Cash",
        "amount": "99.99"
      }
    }
    Return Body and Return

    Returns an operation (e.g., "UPGRADE") plus the updated order object after the upgrade is applied (or scheduled, if applicable).

    {
      "operation": "UPGRADE",
      "order": {
        "status": "ACTIVE",
        "id": "ORD-******-****",
        "pre_order": "false",
        "quote_order": "false",
        "quote_converted": "false",
        "order_type": "REGULAR",
        "name": "Example - API Subscription Test",
        "display_name": "Example - API Subscription Test",
        "description": "",
        "referral_account": "",
        "customer_purchase_order_id": "",
        "shipping_profile": {},
        "shipping_cost": "0.000000",
        "discount_profile": null,
        "origin": "",
        "custom_forms": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "Default for Order"
        },
        "currency": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "AUD",
          "link": "https://dev-api.exsited.com/api/v1/currencies/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        "time_zone": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "Australia/Sydney",
          "link": "https://dev-api.exsited.com/api/v1/time_zones/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        "invoice_note": "",
        "billing_start_date": "ORDER_START_DATE",
        "order_start_date": "2026-02-02T00:00:00Z",
        "next_billing_from_date": "2026-03-02 00:00:00.000000",
        "next_billing_from_date_utc": "2026-03-01T13:00:00Z",
        "price_tax_inclusive": "true",
        "billing_address": {},
        "shipping_address": {},
        "created_by": "API User",
        "created_on": "2026-02-02T01:43:25Z",
        "last_updated_by": "API User",
        "last_updated_on": "2026-02-02T07:31:57Z",
        "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "version": "2",
        "account_id": "******",
        "account_name": "John Doe",
        "allow_contract": "true",
        "contract_properties": {
          "require_customer_acceptance": "false",
          "requires_payment_method": "false",
          "initial_contract_term": "10 Year",
          "renew_automatically": "true",
          "auto_renewal_ends_on": "",
          "auto_renewal_term": "1 Week",
          "auto_renewal_require_customer_acceptance": "false",
          "allow_early_termination": "true",
          "early_termination_minimum_period": "1 Day",
          "apply_early_termination_charge": "false",
          "early_termination_charge_type": "Fixed",
          "termination_fixed_charge": "",
          "termination_accounting_code": "",
          "allow_postponement": "true",
          "maximum_duration_per_postponement": "1 Day",
          "maximum_postponement_count": "1",
          "allow_trial": "false",
          "allow_downgrade": "true",
          "period_before_downgrade": "1 Day",
          "allow_downgrade_charge": "false",
          "downgrade_charge_type": "Fixed",
          "downgrade_charge_fixed": "",
          "allow_upgrade": "true",
          "termination_notice_period": ""
        },
        "custom_attributes": [],
        "custom_objects": [],
        "currency_id": "1",
        "properties": {
          "communication_profile": "",
          "invoice_mode": "AUTOMATIC",
          "invoice_term": "Billing Start Date",
          "billing_period": "1 Month",
          "consolidate_invoice": "false",
          "payment_processor": "Cash",
          "payment_mode": "MANUAL",
          "payment_term": "Net 30",
          "payment_term_alignment": "BILLING_DATE",
          "fulfillment_mode": "MANUAL",
          "fulfillment_term": "Immediately",
          "proforma_properties": {
            "acceptance_required": "false",
            "payment_required": "false",
            "acceptance_term": "",
            "acceptance_date": "",
            "terms_and_conditions": ""
          }
        },
        "invoice_id": "INV-******-****",
        "lines": [
          {
            "item_serial_or_batch_number": "N/A",
            "charge_item_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "item_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "item_id": "ITEM-****",
            "item_name": "API Subscription Test - Saver Package",
            "item_order_quantity": "1.000000",
            "shipping_cost": "0.00",
            "item_invoice_note": "",
            "item_description": "",
            "item_type": "FAMILY",
            "item_charge_type": "RECURRING",
            "item_custom_attributes": [],
            "item_properties": {
              "billing_mode": "IN_ADVANCE",
              "charging_period": "Same as billing period",
              "charging_start_date": "SUBSCRIPTION_START_DATE",
              "fixed_start_date": "",
              "charging_and_billing_alignment": "false",
              "pro_rata_partial_charging_period": "false",
              "pro_rata_partial_pricing_period": "false",
              "pro_rata_partial_unit": "false"
            },
            "item_price_snapshot": {
              "pricing_rule": {
                "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                "version": "1",
                "price_type": "PER_UNIT_PRICING",
                "price": "20.000000",
                "uom": "",
                "price_period": "",
                "pricing_schedule": "",
                "pricing_level": "",
                "pricing_method": "0.000000",
                "warehouse": "BareHouse"
              }
            },
            "item_sale_tax_configuration": {
              "sale_price_is_based_on": "",
              "tax_code": {
                "uuid": "",
                "code": "",
                "rate": "",
                "link": ""
              }
            },
            "isTaxExemptWhenSold": "false",
            "item_price_tax": {
              "uuid": "",
              "code": "",
              "rate": "",
              "link": ""
            },
            "item_accounting_code": {
              "sales_revenue": ""
            },
            "version": "1",
            "expected_delivery_date": "",
            "package_name": "Saver Package",
            "purchase_order_id": "",
            "purchase_invoice_id": "",
            "discount": 0,
            "newTaxCodeSet": null,
            "total": "20",
            "subtotal": "20",
            "tax": "0"
          }
        ],
        "total": "20",
        "subtotal": "20",
        "tax": "0",
        "kpis": {
          "start_date": "",
          "estimated_total": 0,
          "total_revenue": 0,
          "monthly_recurring_revenue": 0,
          "total_collected": 0,
          "total_outstanding": 0,
          "total_due": 0,
          "last_invoice_issue_date": "",
          "last_invoice_total": 0,
          "total_invoice": 0,
          "next_invoice_issueDate": "",
          "last_reactivated_on": "",
          "last_cancelled_on": "",
          "last_changed_on": "",
          "last_deleted_on": ""
        },
        "line_items": []
      },
      "activity_logs": [
        {
          "activity": "API User upgraded contract of Order ORD-******-****"
        }
      ]
    }

    Preview Upgrade Pricing (/orders/{orderId}/upgrade/preview)

    POST
    https://dev-api.exsited.com/api/v2/orders/{orderId}/upgrade/preview
    Try It Out
    Purpose

    Calculates a preview of upgrade pricing prior to applying an upgrade.

    Use Case
      Preview the pricing impact of an upgrade before applying it.
    Path Parameters
    Name Type Description
    orderId String Unique order identifier.
    Request Body Parameters

    Upgrade Request Fields

    Names Type Description
    effective_date String Date on which the changes described in this request take effect (example: "2026-01-15").
    lines Array Collection of line entries representing items affected by this request.
    payment_information Object Payment information container associated with the request.

    Upgrade Line Fields

    Names Type Description
    lines[] Object Individual line entry.
    lines[].item_uuid String Unique identifier of the item being referenced (example: "ITEM-UUID-123").
    lines[].charge_item_uuid String Unique identifier of the charge item associated with the line (example: "CHARGE-UUID-456").
    lines[].package_name String Package or plan name associated with the line (example: "Enterprise_Plan").
    lines[].item_quantity String (Number) Quantity value encoded as a numeric string (example: "1").
    lines[].item_price_snapshot Object Price snapshot container applied to this line at the time of the request.

    Upgrade Line Price Snapshot Fields

    Names Type Description
    lines[].item_price_snapshot.pricing_rule Object Pricing rule container used to derive the snapshot price.
    lines[].item_price_snapshot.pricing_rule.price String (Number) Price value encoded as a numeric string (example: "99.99").

    Payment Information Fields

    Names Type Description
    payment_information.payment_processor String Payment processor identifier used for this operation (example: "Cash").
    payment_information.amount String (Number) Payment amount encoded as a numeric string (example: "99.99").
    Request Body
    {
      "effective_date": "2026-01-15",
      "lines": [
        {
          "item_uuid": "ITEM-UUID-123",
          "charge_item_uuid": "CHARGE-UUID-456",
          "package_name": "Enterprise_Plan",
          "item_quantity": "1",
          "item_price_snapshot": {
            "pricing_rule": {
              "price": "99.99"
            }
          }
        }
      ],
      "payment_information": {
        "payment_processor": "Cash",
        "amount": "99.99"
      }
    }
    Response Body and Return

    Returns an operation and a preview totals breakdown (subtotal/tax/discount/shipping/old vs new totals, total due, currency), plus activity_logs.

    {
      "operation": "UPGRADE",
      "preview": {
        "subTotal": "20",
        "taxTotal": "0",
        "discountTotal": "0",
        "shippingTotal": "0",
        "oldTotal": "20",
        "total": "20",
        "totalChanged": "0",
        "totalDue": "0",
        "currency": "AUD"
      },
      "activity_logs": []
    }

    Preview Contract Adjustment (/{orderId}/contract-adjustment/preview)

    POST
    https://dev-api.exsited.com/api/v2/{orderId}/contract-adjustment/preview
    Try It Out
    Purpose

    Calculates a preview for a contract adjustment.

    Use Case
      Use this endpoint to preview the pricing impact of a contract adjustment for an existing order, using an effective date and one or more line items.
    Path Parameters
    Name Type Description
    orderId String Order identifier.
    Request Body Parameters

    Root fields

    Names Type Description
    effective_date String Date on which the changes described in this request take effect (example: "2026-01-16").
    lines Array Collection of line entries representing items affected by this request.
    payment_information Object Payment information container associated with the request.

    Lines fields

    Names Type Description
    lines[] Object Individual line entry.
    lines[].item_uuid String Unique identifier of the item being referenced (example: "ITEM-UUID-123").
    lines[].charge_item_uuid String Unique identifier of the charge item associated with the line (example: "CHARGE-UUID-456").
    lines[].package_name String Package or plan name associated with the line (example: "Pro_Plan").
    lines[].quantity String (Number) Quantity value encoded as a numeric string (example: "1").
    lines[].item_price_snapshot Object Price snapshot container applied to this line at the time of the request.

    Item price snapshot fields

    Names Type Description
    lines[].item_price_snapshot.pricing_rule Object Pricing rule container used to derive the snapshot price.
    lines[].item_price_snapshot.pricing_rule.price String (Number) Price value encoded as a numeric string (example: "79.99").

    Payment information fields

    Names Type Description
    payment_information.payment_processor String Payment processor identifier used for this operation (example: "Cash").
    payment_information.amount String (Number) Payment amount encoded as a numeric string (example: "79.99").
    Request Body
    {
      "effective_date": "2026-01-16",
      "lines": [
        {
          "item_uuid": "ITEM-UUID-123",
          "charge_item_uuid": "CHARGE-UUID-456",
          "package_name": "Pro_Plan",
          "quantity": "1",
          "item_price_snapshot": {
            "pricing_rule": {
              "price": "79.99"
            }
          }
        }
      ],
      "payment_information": {
        "payment_processor": "Cash",
        "amount": "79.99"
      }
    }
    Response Body and Return

    Returns an operation and a preview totals breakdown showing the projected pricing impact (old/new totals and due amounts), plus activity_logs.

    {
        "operation": "DOWNGRADE",
        "preview": {
            "subTotal": "40",
            "taxTotal": "0",
            "discountTotal": "0",
            "shippingTotal": "0",
            "oldTotal": "20",
            "total": "40",
            "totalChanged": "20",
            "totalDue": "20",
            "currency": "AUD"
        },
        "activity_logs": []
    }

    Downgrade Subscription (/orders/{orderId}/downgrade)

    POST
    https://dev-api.exsited.com/api/v2/orders/{orderId}/downgrade
    Try It Out
    Purpose

    Applies a downgrade action against an existing order. A “lower tier” is determined by a pre-defined priority order set when the subscription plan variants themselves were made.

    Use Case

    Downgrade an existing subscription order by submitting the new line item details and an effective date.

    Path Parameters
    Name Type Description
    orderId String Order identifier.
    Request Body Parameters

    Root fields

    Names Type Description
    effective_date String Date on which the changes described in this request take effect (example: "2026-02-01").
    lines Array Collection of line entries representing items affected by this request.

    Lines fields

    Names Type Description
    lines[] Object Individual line entry.
    lines[].item_uuid String Unique identifier of the item being referenced (example: "ITEM-UUID-123").
    lines[].charge_item_uuid String Unique identifier of the charge item associated with the line (example: "CHARGE-UUID-456").
    lines[].package_name String Package or plan name associated with the line (example: "Basic_Plan").
    lines[].quantity String (Number) Quantity value encoded as a numeric string (example: "1").
    lines[].item_price_snapshot Object Price snapshot container applied to this line at the time of the request.

    Item price snapshot fields

    Names Type Description
    lines[].item_price_snapshot.pricing_rule Object Pricing rule container used to derive the snapshot price.
    lines[].item_price_snapshot.pricing_rule.price String (Number) Price value encoded as a numeric string (example: "19.99").
    Request Body
    {
      "effective_date": "2026-02-01",
      "lines": [
        {
          "item_uuid": "ITEM-UUID-123",
          "charge_item_uuid": "CHARGE-UUID-456",
          "package_name": "Basic_Plan",
          "quantity": "1",
          "item_price_snapshot": {
            "pricing_rule": {
              "price": "19.99"
            }
          }
        }
      ]
    }
    Response Body and Return

    Returns an event_uuid for the scheduled/created change, an operation (e.g., "DOWNGRADE"), and the affected order object snapshot.

    {
      "event_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "operation": "DOWNGRADE",
      "order": {
        "status": "ACTIVE",
        "id": "ORD-******-****",
        "pre_order": "false",
        "quote_order": "false",
        "quote_converted": "false",
        "order_type": "REGULAR",
        "name": "Example - API Subscription Test",
        "display_name": "Example - API Subscription Test",
        "description": "",
        "referral_account": "",
        "customer_purchase_order_id": "",
        "shipping_profile": {},
        "shipping_cost": "0.000000",
        "discount_profile": null,
        "origin": "",
        "custom_forms": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "Default for Order"
        },
        "currency": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "AUD",
          "link": "https://dev-api.exsited.com/api/v1/currencies/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        "time_zone": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "Australia/Sydney",
          "link": "https://dev-api.exsited.com/api/v1/time_zones/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        "invoice_note": "",
        "billing_start_date": "ORDER_START_DATE",
        "order_start_date": "2026-02-02T00:00:00Z",
        "next_billing_from_date": "2026-03-02 00:00:00.000000",
        "next_billing_from_date_utc": "2026-03-01T13:00:00Z",
        "price_tax_inclusive": "true",
        "billing_address": {},
        "shipping_address": {},
        "created_by": "API User",
        "created_on": "2026-02-02T01:43:25Z",
        "last_updated_by": "API User",
        "last_updated_on": "2026-02-02T07:31:57Z",
        "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "version": "2",
        "account_id": "******",
        "account_name": "John Doe",
        "allow_contract": "true",
        "contract_properties": {
          "require_customer_acceptance": "false",
          "requires_payment_method": "false",
          "initial_contract_term": "10 Year",
          "renew_automatically": "true",
          "auto_renewal_ends_on": "",
          "auto_renewal_term": "1 Week",
          "auto_renewal_require_customer_acceptance": "false",
          "allow_early_termination": "true",
          "early_termination_minimum_period": "1 Day",
          "apply_early_termination_charge": "false",
          "early_termination_charge_type": "Fixed",
          "termination_fixed_charge": "",
          "termination_accounting_code": "",
          "allow_postponement": "true",
          "maximum_duration_per_postponement": "1 Day",
          "maximum_postponement_count": "1",
          "allow_trial": "false",
          "allow_downgrade": "true",
          "period_before_downgrade": "1 Day",
          "allow_downgrade_charge": "false",
          "downgrade_charge_type": "Fixed",
          "downgrade_charge_fixed": "",
          "allow_upgrade": "true",
          "termination_notice_period": ""
        },
        "custom_attributes": [],
        "custom_objects": [],
        "currency_id": "1",
        "properties": {
          "communication_profile": "",
          "invoice_mode": "AUTOMATIC",
          "invoice_term": "Billing Start Date",
          "billing_period": "1 Month",
          "consolidate_invoice": "false",
          "payment_processor": "Cash",
          "payment_mode": "MANUAL",
          "payment_term": "Net 30",
          "payment_term_alignment": "BILLING_DATE",
          "fulfillment_mode": "MANUAL",
          "fulfillment_term": "Immediately",
          "proforma_properties": {
            "acceptance_required": "false",
            "payment_required": "false",
            "acceptance_term": "",
            "acceptance_date": "",
            "terms_and_conditions": ""
          }
        },
        "invoice_id": "INV-******-****",
        "lines": [
          {
            "item_serial_or_batch_number": "N/A",
            "charge_item_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "item_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "item_id": "ITEM-****",
            "item_name": "API Subscription Test - Saver Package",
            "item_order_quantity": "1.000000",
            "shipping_cost": "0.00",
            "item_invoice_note": "",
            "item_description": "",
            "item_type": "FAMILY",
            "item_charge_type": "RECURRING",
            "item_custom_attributes": [],
            "item_properties": {
              "billing_mode": "IN_ADVANCE",
              "charging_period": "Same as billing period",
              "charging_start_date": "SUBSCRIPTION_START_DATE",
              "fixed_start_date": "",
              "charging_and_billing_alignment": "false",
              "pro_rata_partial_charging_period": "false",
              "pro_rata_partial_pricing_period": "false",
              "pro_rata_partial_unit": "false"
            },
            "item_price_snapshot": {
              "pricing_rule": {
                "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                "version": "1",
                "price_type": "PER_UNIT_PRICING",
                "price": "20.000000",
                "uom": "",
                "price_period": "",
                "pricing_schedule": "",
                "pricing_level": "",
                "pricing_method": "0.000000",
                "warehouse": "BareHouse"
              }
            },
            "item_sale_tax_configuration": {
              "sale_price_is_based_on": "",
              "tax_code": {
                "uuid": "",
                "code": "",
                "rate": "",
                "link": ""
              }
            },
            "isTaxExemptWhenSold": "false",
            "item_price_tax": {
              "uuid": "",
              "code": "",
              "rate": "",
              "link": ""
            },
            "item_accounting_code": {
              "sales_revenue": ""
            },
            "version": "1",
            "expected_delivery_date": "",
            "package_name": "Saver Package",
            "purchase_order_id": "",
            "purchase_invoice_id": "",
            "discount": 0,
            "newTaxCodeSet": null,
            "total": "20",
            "subtotal": "20",
            "tax": "0"
          }
        ],
        "total": "20",
        "subtotal": "20",
        "tax": "0",
        "kpis": {
          "start_date": "",
          "estimated_total": 0,
          "total_revenue": 0,
          "monthly_recurring_revenue": 0,
          "total_collected": 0,
          "total_outstanding": 0,
          "total_due": 0,
          "last_invoice_issue_date": "",
          "last_invoice_total": 0,
          "total_invoice": 0,
          "next_invoice_issueDate": "",
          "last_reactivated_on": "",
          "last_cancelled_on": "",
          "last_changed_on": "",
          "last_deleted_on": ""
        },
        "line_items": []
      },
      "activity_logs": []
    }

    Change Subscription Plan (/orders/{orderId}/change)

    POST
    https://dev-api.exsited.com/api/v2/orders/{orderId}/change
    Try It Out
    Purpose

    Changes the subscription plan configuration for an existing order by applying one or more line-level changes on an effective date.

    Use Case

    Use this endpoint when you need to change an existing subscription plan for an order (for example, switching the plan variant represented by a line), effective from a specific date, while providing the updated pricing snapshot and any associated payment information.

    Path Parameters
    Name Type Description
    orderId String Order identifier.
    Request Body Parameters

    Root fields

    Names Type Description
    effective_date String Date on which the changes described in this request take effect (example: 2026-01-20).
    lines Array Collection of line entries representing items affected by this request.
    properties Object Properties container associated with this request.
    payment_information Object Payment information container associated with the request.

    Lines fields

    Names Type Description
    lines[] Object Individual line entry.
    lines[].op String Operation to apply to the referenced item (example: change).
    lines[].uuid String Unique identifier of the charge or item being modified (example: CHARGE-UUID-456).
    lines[].item_order_quantity String (Number) Quantity value encoded as a numeric string (example: 1).
    lines[].item_price_snapshot Object Price snapshot container applied to this line at the time of the request.

    Item price snapshot fields

    Names Type Description
    lines[].item_price_snapshot.pricing_rule Object Pricing rule container used to derive the snapshot price.
    lines[].item_price_snapshot.pricing_rule.price String (Number) Price value encoded as a numeric string (example: 59.99).

    Properties fields

    Names Type Description
    properties.billing_period String Billing period value applied to the request (example: 1 Month).
    properties.consolidate_invoice String (JSON Boolean) Invoice consolidation flag encoded as a string (example: false).

    Payment information fields

    Names Type Description
    payment_information.payment_processor String Payment processor identifier used for this operation (example: Cash).
    payment_information.amount String (Number) Payment amount encoded as a numeric string (example: 59.99).
    Request Body
    {
      "effective_date": "2026-01-20",
      "lines": [
        {
          "op": "change",
          "uuid": "CHARGE-UUID-456",
          "item_order_quantity": "1",
          "item_price_snapshot": {
            "pricing_rule": {
              "price": "59.99"
            }
          }
        }
      ],
      "properties": {
        "billing_period": "1 Month",
        "consolidate_invoice": "false"
      },
      "payment_information": {
        "payment_processor": "Cash",
        "amount": "59.99"
      }
    }
    Response Body and Return

    Returns an event_uuid (for the scheduled plan change) plus the updated/current order object snapshot.

    {
      "event_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "order": {
        "status": "ACTIVE",
        "id": "ORD-******-****",
        "pre_order": "false",
        "quote_order": "false",
        "quote_converted": "false",
        "order_type": "REGULAR",
        "name": "Jane Smith - API Subscription Test",
        "display_name": "Jane Smith - API Subscription Test",
        "description": "",
        "referral_account": "",
        "customer_purchase_order_id": "",
        "shipping_profile": {},
        "shipping_cost": "0.000000",
        "discount_profile": null,
        "origin": "",
        "custom_forms": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "Default for Order"
        },
        "currency": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "AUD",
          "link": "https://dev-api.exsited.com/api/v1/currencies/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        "time_zone": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "Australia/Sydney",
          "link": "https://dev-api.exsited.com/api/v1/time_zones/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        "invoice_note": "",
        "billing_start_date": "ORDER_START_DATE",
        "order_start_date": "2026-02-02T00:00:00Z",
        "next_billing_from_date": "2026-03-02 00:00:00.000000",
        "next_billing_from_date_utc": "2026-03-01T13:00:00Z",
        "price_tax_inclusive": "false",
        "billing_address": {},
        "shipping_address": {},
        "created_by": "API User",
        "created_on": "2026-02-02T08:16:25Z",
        "last_updated_by": "",
        "last_updated_on": "",
        "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "version": "1",
        "account_id": "******",
        "account_name": "Jane Smith",
        "allow_contract": "false",
        "custom_attributes": [],
        "custom_objects": [],
        "currency_id": "1",
        "properties": {
          "communication_profile": "",
          "invoice_mode": "AUTOMATIC",
          "invoice_term": "Billing Start Date",
          "billing_period": "1 Month",
          "consolidate_invoice": "false",
          "payment_processor": "Cash",
          "payment_mode": "MANUAL",
          "payment_term": "Net 30",
          "payment_term_alignment": "BILLING_DATE",
          "fulfillment_mode": "MANUAL",
          "fulfillment_term": "Immediately",
          "proforma_properties": {
            "acceptance_required": "false",
            "payment_required": "false",
            "acceptance_term": "",
            "acceptance_date": "",
            "terms_and_conditions": ""
          }
        },
        "invoice_id": "INV-******-****",
        "lines": [
          {
            "item_serial_or_batch_number": "N/A",
            "charge_item_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "item_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "item_id": "ITEM-****",
            "item_name": "API Subscription Test - Premium Package",
            "item_order_quantity": "1.000000",
            "shipping_cost": "0.00",
            "item_invoice_note": "",
            "item_description": "",
            "item_type": "FAMILY",
            "item_charge_type": "RECURRING",
            "item_custom_attributes": [],
            "item_properties": {
              "billing_mode": "IN_ADVANCE",
              "charging_period": "Same as billing period",
              "charging_start_date": "SUBSCRIPTION_START_DATE",
              "fixed_start_date": "",
              "charging_and_billing_alignment": "false",
              "pro_rata_partial_charging_period": "true",
              "pro_rata_partial_pricing_period": "false",
              "pro_rata_partial_unit": "false"
            },
            "item_price_snapshot": {
              "pricing_rule": {
                "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                "version": "1",
                "price_type": "PER_UNIT_PRICING",
                "price": "100.000000",
                "uom": "",
                "price_period": "",
                "pricing_schedule": "",
                "pricing_level": "",
                "pricing_method": "0.000000",
                "warehouse": "BareHouse"
              }
            },
            "item_sale_tax_configuration": {
              "sale_price_is_based_on": "",
              "tax_code": {
                "uuid": "",
                "code": "",
                "rate": "",
                "link": ""
              }
            },
            "isTaxExemptWhenSold": "false",
            "item_price_tax": {
              "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
              "code": "No Tax",
              "rate": 0,
              "link": "https://dev-api.exsited.com/api/v3/settings/taxes/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
            },
            "item_accounting_code": {
              "sales_revenue": ""
            },
            "version": "1",
            "expected_delivery_date": "",
            "package_name": "Premium Package",
            "purchase_order_id": "",
            "purchase_invoice_id": "",
            "discount": 0,
            "newTaxCodeSet": null,
            "total": "100",
            "subtotal": "100",
            "tax": "0"
          }
        ],
        "total": "100",
        "subtotal": "100",
        "tax": "0",
        "kpis": {
          "start_date": "",
          "estimated_total": 0,
          "total_revenue": 0,
          "monthly_recurring_revenue": 0,
          "total_collected": 0,
          "total_outstanding": 0,
          "total_due": 0,
          "last_invoice_issue_date": "",
          "last_invoice_total": 0,
          "total_invoice": 0,
          "next_invoice_issueDate": "",
          "last_reactivated_on": "",
          "last_cancelled_on": "",
          "last_changed_on": "",
          "last_deleted_on": ""
        },
        "line_items": []
      },
      "activity_logs": []
    }

    Cancel Subscription (/orders/{orderId}/cancel)

    POST
    https://dev-api.exsited.com/api/v2/orders/{orderId}/cancel
    Try It Out
    Purpose

    Cancels a subscription associated with an existing order.

    Use Case

    Use this endpoint to cancel a subscription for an existing order. The request includes an effective date for when the cancellation should take place, using date format YYYY-MM-DD.

    Path Parameters
    Name Type Description
    orderId String Order identifier.
    Request Body Parameters

    Order

    Names Type Description
    order Object Container for cancellation payload.
    order.effective_date String Cancellation effective date in YYYY-MM-DD (example: 2026-02-28).
    Request Body
    {
      "order": {
        "effective_date": "2026-02-28"
      }
    }
    Response Body and Return

    Returns an event_uuid for the scheduled cancellation and the corresponding order object snapshot (status/IDs and related order fields).

    {
      "event_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "order": {
        "status": "ACTIVE",
        "id": "ORD-******-****",
        "pre_order": "false",
        "quote_order": "false",
        "quote_converted": "false",
        "order_type": "REGULAR",
        "name": "Example - API Subscription Test",
        "display_name": "Example - API Subscription Test",
        "description": "",
        "referral_account": "",
        "customer_purchase_order_id": "",
        "shipping_profile": {},
        "shipping_cost": "0.000000",
        "discount_profile": null,
        "origin": "",
        "custom_forms": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "Default for Order"
        },
        "currency": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "AUD",
          "link": "https://dev-api.exsited.com/api/v1/currencies/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        "time_zone": {
          "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "Australia/Sydney",
          "link": "https://dev-api.exsited.com/api/v1/time_zones/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        "invoice_note": "",
        "billing_start_date": "ORDER_START_DATE",
        "order_start_date": "2026-02-02T00:00:00Z",
        "next_billing_from_date": "2026-03-02 00:00:00.000000",
        "next_billing_from_date_utc": "2026-03-01T13:00:00Z",
        "price_tax_inclusive": "true",
        "billing_address": {},
        "shipping_address": {},
        "created_by": "API User",
        "created_on": "2026-02-02T01:43:25Z",
        "last_updated_by": "API User",
        "last_updated_on": "2026-02-02T07:31:57Z",
        "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "version": "2",
        "account_id": "******",
        "account_name": "John Doe",
        "allow_contract": "true",
        "contract_properties": {
          "require_customer_acceptance": "false",
          "requires_payment_method": "false",
          "initial_contract_term": "10 Year",
          "renew_automatically": "true",
          "auto_renewal_ends_on": "",
          "auto_renewal_term": "1 Week",
          "auto_renewal_require_customer_acceptance": "false",
          "allow_early_termination": "true",
          "early_termination_minimum_period": "1 Day",
          "apply_early_termination_charge": "false",
          "early_termination_charge_type": "Fixed",
          "termination_fixed_charge": "",
          "termination_accounting_code": "",
          "allow_postponement": "true",
          "maximum_duration_per_postponement": "1 Day",
          "maximum_postponement_count": "1",
          "allow_trial": "false",
          "allow_downgrade": "true",
          "period_before_downgrade": "1 Day",
          "allow_downgrade_charge": "false",
          "downgrade_charge_type": "Fixed",
          "downgrade_charge_fixed": "",
          "allow_upgrade": "true",
          "termination_notice_period": ""
        },
        "custom_attributes": [],
        "custom_objects": [],
        "currency_id": "1",
        "properties": {
          "communication_profile": "",
          "invoice_mode": "AUTOMATIC",
          "invoice_term": "Billing Start Date",
          "billing_period": "1 Month",
          "consolidate_invoice": "false",
          "payment_processor": "Cash",
          "payment_mode": "MANUAL",
          "payment_term": "Net 30",
          "payment_term_alignment": "BILLING_DATE",
          "fulfillment_mode": "MANUAL",
          "fulfillment_term": "Immediately",
          "proforma_properties": {
            "acceptance_required": "false",
            "payment_required": "false",
            "acceptance_term": "",
            "acceptance_date": "",
            "terms_and_conditions": ""
          }
        },
        "invoice_id": "INV-******-****",
        "lines": [
          {
            "item_serial_or_batch_number": "N/A",
            "charge_item_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "item_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "item_id": "ITEM-****",
            "item_name": "API Subscription Test - Saver Package",
            "item_order_quantity": "1.000000",
            "shipping_cost": "0.00",
            "item_invoice_note": "",
            "item_description": "",
            "item_type": "FAMILY",
            "item_charge_type": "RECURRING",
            "item_custom_attributes": [],
            "item_properties": {
              "billing_mode": "IN_ADVANCE",
              "charging_period": "Same as billing period",
              "charging_start_date": "SUBSCRIPTION_START_DATE",
              "fixed_start_date": "",
              "charging_and_billing_alignment": "false",
              "pro_rata_partial_charging_period": "false",
              "pro_rata_partial_pricing_period": "false",
              "pro_rata_partial_unit": "false"
            },
            "item_price_snapshot": {
              "pricing_rule": {
                "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                "version": "1",
                "price_type": "PER_UNIT_PRICING",
                "price": "20.000000",
                "uom": "",
                "price_period": "",
                "pricing_schedule": "",
                "pricing_level": "",
                "pricing_method": "0.000000",
                "warehouse": "BareHouse"
              }
            },
            "item_sale_tax_configuration": {
              "sale_price_is_based_on": "",
              "tax_code": {
                "uuid": "",
                "code": "",
                "rate": "",
                "link": ""
              }
            },
            "isTaxExemptWhenSold": "false",
            "item_price_tax": {
              "uuid": "",
              "code": "",
              "rate": "",
              "link": ""
            },
            "item_accounting_code": {
              "sales_revenue": ""
            },
            "version": "1",
            "expected_delivery_date": "",
            "package_name": "Saver Package",
            "purchase_order_id": "",
            "purchase_invoice_id": "",
            "discount": 0,
            "newTaxCodeSet": null,
            "total": "20",
            "subtotal": "20",
            "tax": "0"
          }
        ],
        "total": "20",
        "subtotal": "20",
        "tax": "0",
        "kpis": {
          "start_date": "",
          "estimated_total": 0,
          "total_revenue": 0,
          "monthly_recurring_revenue": 0,
          "total_collected": 0,
          "total_outstanding": 0,
          "total_due": 0,
          "last_invoice_issue_date": "",
          "last_invoice_total": 0,
          "total_invoice": 0,
          "next_invoice_issueDate": "",
          "last_reactivated_on": "",
          "last_cancelled_on": "",
          "last_changed_on": "",
          "last_deleted_on": ""
        },
        "line_items": []
      },
      "activity_logs": []
    }

    Remove Scheduled Event (/events/{uuid}/remove)

    POST
    https://dev-api.exsited.com/api/v2/events/{uuid}/remove
    Try It Out
    Purpose

    Remove a scheduled, future event for a subscription or order by its event UUID.

    This endpoint is used when a scheduled event needs to be removed (unscheduled) before it takes effect.

    Use Case
    • Remove a previously scheduled subscription cancellation before it takes effect
    • Cancel a scheduled contract downgrade or upgrade
    • Undo a future plan or pricing change
    • Clean up or correct erroneously scheduled events during testing or automation workflows
    Path Parameters
    Name Type Description
    uuid String Event UUID.
    Request Body Parameters

    No data is required for the request body.

    Request Body

    No body is required.

    Response Body and Return

    Returns an event object describing the scheduled event that’s being removed (uuid, name/type, created/scheduled/executed dates, resource info, execution status).

    {
      "event": {
        "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "parent_event": "",
        "event_name": "Contract Downgrade",
        "created_on": "2026-02-02",
        "scheduled_to_execute_on": "",
        "executed_on": "2026-02-02",
        "resource_type": "saleOrderContractDowngrade",
        "resource_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "execution_status": "SCHEDULED"
      }
    }

    Deprecations & Changelog

    Documentation Last Updated: 30 January 2026

    API Version: v2

    There are currently no deprecated functions for the subscription module.

    Looking to build next big project?

    With our robust set of tools and resources, you can create custom solutions that integrate seamlessly with our system and take your business to the next level.

    Join Our Partner Program