---
title: "Subscriptions"
description: "The engine owns subscription state."
canonical_url: "https://twominutebilling.com/help/developers/api-reference/subscriptions"
---
# Subscriptions

> The engine owns subscription state.

The engine owns subscription state. A gateway charges and refunds; what a subscription IS, when it renews and what it costs is decided here, so nothing changes underneath you when a provider does.

**Every money-moving operation has an estimate that does not move money.** `estimate`, `cancel_estimate`, `reactivate_estimate`, `renewal_estimate` and `subscription_estimate` return the exact proration, tax and credit the real call would produce. Show one to a customer before you charge them.

Two ways to change items, and picking the wrong one is the usual mistake. `change` applies a **delta** — these items added, those removed. `update_for_items` reconciles against a **desired final set** and removes anything absent from it. A delta sent to the second endpoint deletes everything you did not mention.

Anything dated can be scheduled instead of applied: cancel, pause, resume and change all take a future date, and a pending schedule can be listed and withdrawn before it fires.

## Endpoints

<table>
<thead>
  <tr>
    <th>
      Method
    </th>
    
    <th>
      Endpoint
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/mint-a-hosted-checkout-session">
        <code>
          /v1/businesses/{biz}/checkout_sessions
        </code>
      </a>
    </td>
    
    <td>
      Mint a hosted-checkout session
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/retrieve-a-hosted-checkout-session">
        <code>
          /v1/businesses/{biz}/checkout_sessions/{id}
        </code>
      </a>
    </td>
    
    <td>
      Retrieve a hosted-checkout session
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/revoke-a-hosted-checkout-session">
        <code>
          /v1/businesses/{biz}/checkout_sessions/{id}/revoke
        </code>
      </a>
    </td>
    
    <td>
      Revoke a hosted-checkout session
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/estimate-a-new-subscription-s-first-invoice">
        <code>
          /v1/businesses/{biz}/customers/{cus}/subscription_estimate
        </code>
      </a>
    </td>
    
    <td>
      Estimate a new subscription's first invoice
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/create-a-subscription">
        <code>
          /v1/businesses/{biz}/customers/{cus}/subscriptions
        </code>
      </a>
    </td>
    
    <td>
      Create a subscription
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/cancel-a-pending-scheduled-change">
        <code>
          /v1/businesses/{biz}/scheduled_changes/{sch}
        </code>
      </a>
    </td>
    
    <td>
      Cancel a pending scheduled change
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/list-subscriptions">
        <code>
          /v1/businesses/{biz}/subscriptions
        </code>
      </a>
    </td>
    
    <td>
      List subscriptions
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/get-a-subscription-with-its-items">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}
        </code>
      </a>
    </td>
    
    <td>
      Get a subscription with its items, customer, and active discount
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        PATCH
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/update-collection-commercial-settings">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}
        </code>
      </a>
    </td>
    
    <td>
      Update collection/commercial settings
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/delete-a-subscription">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}
        </code>
      </a>
    </td>
    
    <td>
      Delete a subscription
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/cancel-a-subscription">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/cancel
        </code>
      </a>
    </td>
    
    <td>
      Cancel a subscription
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/estimate-a-cancellation-s-money-effects">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/cancel_estimate
        </code>
      </a>
    </td>
    
    <td>
      Estimate a cancellation’s money effects
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/change-items">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/change
        </code>
      </a>
    </td>
    
    <td>
      Change items
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/change-the-current-term-end-boundary">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/change_term_end
        </code>
      </a>
    </td>
    
    <td>
      Change the current term end boundary
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/add-an-ad-hoc-charge">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/charges
        </code>
      </a>
    </td>
    
    <td>
      Add an ad-hoc charge
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/get-the-minimum-commitment-for-the-current-term">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/commitment
        </code>
      </a>
    </td>
    
    <td>
      Get the minimum commitment for the current term
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/set-or-remove-the-minimum-commitment">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/commitment
        </code>
      </a>
    </td>
    
    <td>
      Set or remove the minimum commitment
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/retrieve-usage-so-far-in-the-current-billing-win">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/current_usage
        </code>
      </a>
    </td>
    
    <td>
      Retrieve usage so far in the current billing window
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/apply-a-coupon-to-a-subscription">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/discount
        </code>
      </a>
    </td>
    
    <td>
      Apply a coupon to a subscription
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/remove-the-active-discount">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/discount
        </code>
      </a>
    </td>
    
    <td>
      Remove the active discount
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/edit-an-in-trial-subscription-s-trial-end-date">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/edit_trial_end
        </code>
      </a>
    </td>
    
    <td>
      Edit an in-trial subscription's trial end date, or end the trial immediately
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/estimate-a-change">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/estimate
        </code>
      </a>
    </td>
    
    <td>
      Estimate a change, add and/or removal
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/add-an-item-add-on">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/items
        </code>
      </a>
    </td>
    
    <td>
      Add an item/add-on
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        PATCH
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/set-a-customer-s-selling-price-on-an-item">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/items/{item}
        </code>
      </a>
    </td>
    
    <td>
      Set a customer's selling price on an item
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/remove-an-item">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/items/{item}
        </code>
      </a>
    </td>
    
    <td>
      Remove an item
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/apply-a-manual-discount">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/manual_discount
        </code>
      </a>
    </td>
    
    <td>
      Apply a manual discount (percent or fixed amount) to a subscription, without a coupon object
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/one-time-charge-lines-billed-on-a-subscription">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/one_time_charges
        </code>
      </a>
    </td>
    
    <td>
      One-time charge lines billed on a subscription
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/pause-a-subscription">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/pause
        </code>
      </a>
    </td>
    
    <td>
      Pause a subscription
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/reactivate">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/reactivate
        </code>
      </a>
    </td>
    
    <td>
      Reactivate (clear pending cancel, or restart a canceled sub)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/estimate-a-reactivation-s-first-invoice">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/reactivate_estimate
        </code>
      </a>
    </td>
    
    <td>
      Estimate a reactivation's first invoice
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/remove-a-scheduled-cancellation">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/remove_scheduled_cancellation
        </code>
      </a>
    </td>
    
    <td>
      Remove a scheduled cancellation
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/dry-run-estimate-of-the-next-renewal-invoice">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/renewal_estimate
        </code>
      </a>
    </td>
    
    <td>
      Dry-run estimate of the next renewal invoice
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/list-renewal-skips">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/renewal_skips
        </code>
      </a>
    </td>
    
    <td>
      List renewal skips
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/resume-a-paused-subscription">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/resume
        </code>
      </a>
    </td>
    
    <td>
      Resume a paused subscription
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/schedule-a-future-dated-cancel-pause-resume-chan">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/schedule
        </code>
      </a>
    </td>
    
    <td>
      Schedule a future-dated cancel/pause/resume/change
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/list-scheduled-changes">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/scheduled_changes
        </code>
      </a>
    </td>
    
    <td>
      List scheduled changes
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/skip-an-upcoming-renewal">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/skip_renewal
        </code>
      </a>
    </td>
    
    <td>
      Skip an upcoming renewal
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/trigger-an-on-demand-attached-item-charge-now">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/trigger_charge
        </code>
      </a>
    </td>
    
    <td>
      Trigger an on-demand attached item charge now
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/list-unbilled">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/unbilled_charges
        </code>
      </a>
    </td>
    
    <td>
      List unbilled (deferred) charges
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/undo-a-skipped-renewal">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/unskip_renewal
        </code>
      </a>
    </td>
    
    <td>
      Undo a skipped renewal
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/list-upcoming-renewals">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/upcoming_renewals
        </code>
      </a>
    </td>
    
    <td>
      List upcoming renewals
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/reconcile-a-subscription-against-a-desired-item">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/update_for_items
        </code>
      </a>
    </td>
    
    <td>
      Reconcile a subscription against a DESIRED item list
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/record-a-metered-usage-event">
        <code>
          /v1/businesses/{biz}/subscriptions/{sub}/usage
        </code>
      </a>
    </td>
    
    <td>
      Record a metered usage event
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/exact-counts-for-several-filter-sets-in-one-requ">
        <code>
          /v1/businesses/{biz}/subscriptions/count
        </code>
      </a>
    </td>
    
    <td>
      Exact counts for several filter sets in one request
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/list-unbilled-charges-across-the-business">
        <code>
          /v1/businesses/{biz}/unbilled_charges
        </code>
      </a>
    </td>
    
    <td>
      List unbilled charges across the business
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/delete-a-pending-unbilled-charge">
        <code>
          /v1/businesses/{biz}/unbilled_charges/{id}
        </code>
      </a>
    </td>
    
    <td>
      Delete a pending unbilled charge
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/invoice-pending-unbilled-charges-now">
        <code>
          /v1/businesses/{biz}/unbilled_charges/invoice_now
        </code>
      </a>
    </td>
    
    <td>
      Invoice pending unbilled charges now
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/preview-invoice-now">
        <code>
          /v1/businesses/{biz}/unbilled_charges/invoice_now_estimate
        </code>
      </a>
    </td>
    
    <td>
      Preview invoice_now
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/list-usage-records">
        <code>
          /v1/businesses/{biz}/usages
        </code>
      </a>
    </td>
    
    <td>
      List usage records
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/retrieve-a-usage-record">
        <code>
          /v1/businesses/{biz}/usages/{id}
        </code>
      </a>
    </td>
    
    <td>
      Retrieve a usage record
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/subscriptions/delete-a-usage-record-not-yet-billed">
        <code>
          /v1/businesses/{biz}/usages/{id}
        </code>
      </a>
    </td>
    
    <td>
      Delete a usage record not yet billed
    </td>
  </tr>
</tbody>
</table>


## Sitemap

See the full [sitemap](https://twominutebilling.com/sitemap.md) for all pages.
