---
title: "Catalog"
description: "What you sell, in three layers."
canonical_url: "https://twominutebilling.com/help/developers/api-reference/catalog"
---
# Catalog

> What you sell, in three layers.

What you sell, in three layers. A **product** is the thing (a plan, an add-on, a one-off charge); a **price** is an amount in one currency on one billing period; a **product group** organises products for reporting. A subscription is always bought at a price, never at a product, which is what lets the same plan cost different amounts in different currencies.

**Editing a price does not reprice anybody.** A change applies to new subscriptions only — existing ones keep the price they were sold at until you change them explicitly. Archiving is soft throughout and never touches a subscription already using the item; it only stops the item being chosen again.

Coupons live here too, either as a single reusable code or as a **coupon set** of bulk unique single-use codes.

## Endpoints

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

<tbody>
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/list-every-add-on-s-and-charge-s-applicable-plan">
        <code>
          /v1/businesses/{biz}/applicable_plans
        </code>
      </a>
    </td>
    
    <td>
      List every add-on's and charge's applicable plans
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/list-coupon-codes-across-every-set">
        <code>
          /v1/businesses/{biz}/coupon_codes
        </code>
      </a>
    </td>
    
    <td>
      List coupon codes across every set
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/get-a-coupon-code">
        <code>
          /v1/businesses/{biz}/coupon_codes/{code}
        </code>
      </a>
    </td>
    
    <td>
      Get a coupon code
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/archive-a-single-coupon-set-code">
        <code>
          /v1/businesses/{biz}/coupon_codes/{code}/archive
        </code>
      </a>
    </td>
    
    <td>
      Archive a single coupon-set code
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/list-coupon-sets">
        <code>
          /v1/businesses/{biz}/coupon_sets
        </code>
      </a>
    </td>
    
    <td>
      List coupon sets
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/create-a-coupon-set">
        <code>
          /v1/businesses/{biz}/coupon_sets
        </code>
      </a>
    </td>
    
    <td>
      Create a coupon set
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/get-a-coupon-set">
        <code>
          /v1/businesses/{biz}/coupon_sets/{set}
        </code>
      </a>
    </td>
    
    <td>
      Get a coupon set
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        PATCH
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/rename-a-coupon-set-replace-its-metadata">
        <code>
          /v1/businesses/{biz}/coupon_sets/{set}
        </code>
      </a>
    </td>
    
    <td>
      Rename a coupon set / replace its metadata
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/archive-a-coupon-set">
        <code>
          /v1/businesses/{biz}/coupon_sets/{set}
        </code>
      </a>
    </td>
    
    <td>
      Archive a coupon set
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/list-the-codes-in-a-coupon-set">
        <code>
          /v1/businesses/{biz}/coupon_sets/{set}/codes
        </code>
      </a>
    </td>
    
    <td>
      List the codes in a coupon set
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/add-codes-to-a-coupon-set">
        <code>
          /v1/businesses/{biz}/coupon_sets/{set}/codes
        </code>
      </a>
    </td>
    
    <td>
      Add codes to a coupon set
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/delete-all-unused">
        <code>
          /v1/businesses/{biz}/coupon_sets/{set}/unused_codes
        </code>
      </a>
    </td>
    
    <td>
      Delete all unused (not-redeemed) codes in a set
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/list-coupons">
        <code>
          /v1/businesses/{biz}/coupons
        </code>
      </a>
    </td>
    
    <td>
      List coupons
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/create-a-coupon">
        <code>
          /v1/businesses/{biz}/coupons
        </code>
      </a>
    </td>
    
    <td>
      Create a coupon
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/get-a-coupon">
        <code>
          /v1/businesses/{biz}/coupons/{cpn}
        </code>
      </a>
    </td>
    
    <td>
      Get a coupon
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        PATCH
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/edit-a-coupon">
        <code>
          /v1/businesses/{biz}/coupons/{cpn}
        </code>
      </a>
    </td>
    
    <td>
      Edit a coupon (name, validity, item constraints) / archive-restore
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/archive-a-coupon">
        <code>
          /v1/businesses/{biz}/coupons/{cpn}
        </code>
      </a>
    </td>
    
    <td>
      Archive a coupon
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/list-a-coupon-s-redemptions">
        <code>
          /v1/businesses/{biz}/coupons/{cpn}/redemptions
        </code>
      </a>
    </td>
    
    <td>
      List a coupon's redemptions, newest first
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/redemption-count-and-discount-given-by-a-coupon">
        <code>
          /v1/businesses/{biz}/coupons/{cpn}/stats
        </code>
      </a>
    </td>
    
    <td>
      Redemption count and discount given by a coupon
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/list-every-plan-specific-add-on-price-in-the-bus">
        <code>
          /v1/businesses/{biz}/differential_prices
        </code>
      </a>
    </td>
    
    <td>
      List every plan-specific add-on price in the business
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/get-a-differential-price">
        <code>
          /v1/businesses/{biz}/differential_prices/{id}
        </code>
      </a>
    </td>
    
    <td>
      Get a differential price
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/delete-a-differential-price">
        <code>
          /v1/businesses/{biz}/differential_prices/{id}
        </code>
      </a>
    </td>
    
    <td>
      Delete a differential price
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/list-prices">
        <code>
          /v1/businesses/{biz}/prices
        </code>
      </a>
    </td>
    
    <td>
      List prices
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/create-a-price">
        <code>
          /v1/businesses/{biz}/prices
        </code>
      </a>
    </td>
    
    <td>
      Create a price
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/get-a-price-by-id">
        <code>
          /v1/businesses/{biz}/prices/{price}
        </code>
      </a>
    </td>
    
    <td>
      Get a price by id
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        PATCH
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/edit-a-price">
        <code>
          /v1/businesses/{biz}/prices/{price}
        </code>
      </a>
    </td>
    
    <td>
      Edit a price
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/archive-a-price">
        <code>
          /v1/businesses/{biz}/prices/{price}
        </code>
      </a>
    </td>
    
    <td>
      Archive a price
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/list-the-add-ons-and-charges-applicable-to-a-pla">
        <code>
          /v1/businesses/{biz}/prices/{price}/applicable_addons
        </code>
      </a>
    </td>
    
    <td>
      List the add-ons and charges applicable to a plan price's plan
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/active-subscriptions-and-mrr-on-a-price">
        <code>
          /v1/businesses/{biz}/prices/{price}/stats
        </code>
      </a>
    </td>
    
    <td>
      Active subscriptions and MRR on a price
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/list-product-groups">
        <code>
          /v1/businesses/{biz}/product_groups
        </code>
      </a>
    </td>
    
    <td>
      List product groups
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/create-a-product-group">
        <code>
          /v1/businesses/{biz}/product_groups
        </code>
      </a>
    </td>
    
    <td>
      Create a product group
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/get-a-product-group">
        <code>
          /v1/businesses/{biz}/product_groups/{grp}
        </code>
      </a>
    </td>
    
    <td>
      Get a product group
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        PATCH
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/edit-a-product-group">
        <code>
          /v1/businesses/{biz}/product_groups/{grp}
        </code>
      </a>
    </td>
    
    <td>
      Edit a product group
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/archive-a-product-group">
        <code>
          /v1/businesses/{biz}/product_groups/{grp}
        </code>
      </a>
    </td>
    
    <td>
      Archive a product group
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/active-subscriptions-and-mrr-across-a-product-gr">
        <code>
          /v1/businesses/{biz}/product_groups/{grp}/stats
        </code>
      </a>
    </td>
    
    <td>
      Active subscriptions and MRR across a product group, and per product
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/list-products">
        <code>
          /v1/businesses/{biz}/products
        </code>
      </a>
    </td>
    
    <td>
      List products
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/create-a-product">
        <code>
          /v1/businesses/{biz}/products
        </code>
      </a>
    </td>
    
    <td>
      Create a product
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/get-a-product-by-id">
        <code>
          /v1/businesses/{biz}/products/{prod}
        </code>
      </a>
    </td>
    
    <td>
      Get a product by id
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        PATCH
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/edit-a-product">
        <code>
          /v1/businesses/{biz}/products/{prod}
        </code>
      </a>
    </td>
    
    <td>
      Edit a product
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/archive-a-product">
        <code>
          /v1/businesses/{biz}/products/{prod}
        </code>
      </a>
    </td>
    
    <td>
      Archive a product
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/list-the-plans-an-item-is-attached-to">
        <code>
          /v1/businesses/{biz}/products/{prod}/applicable_plans
        </code>
      </a>
    </td>
    
    <td>
      List the plans an item is attached to
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        PUT
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/set-the-plans-an-item-is-attached-to">
        <code>
          /v1/businesses/{biz}/products/{prod}/applicable_plans
        </code>
      </a>
    </td>
    
    <td>
      Set the plans an item is attached to
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/get-one-add-on-or-charge-plan-applicability">
        <code>
          /v1/businesses/{biz}/products/{prod}/applicable_plans/{plan}
        </code>
      </a>
    </td>
    
    <td>
      Get one add-on or charge ↔ plan applicability
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/remove-one-explicit-attachment">
        <code>
          /v1/businesses/{biz}/products/{prod}/applicable_plans/{plan}
        </code>
      </a>
    </td>
    
    <td>
      Remove one explicit attachment
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/list-an-add-on-s-differential">
        <code>
          /v1/businesses/{biz}/products/{prod}/differential_prices
        </code>
      </a>
    </td>
    
    <td>
      List an add-on's differential (per-plan) prices
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        PUT
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/set-an-add-on-s-differential-price-for-one-plan">
        <code>
          /v1/businesses/{biz}/products/{prod}/differential_prices
        </code>
      </a>
    </td>
    
    <td>
      Set an add-on's differential price for one plan
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        POST
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/set-a-product-s-image">
        <code>
          /v1/businesses/{biz}/products/{prod}/image
        </code>
      </a>
    </td>
    
    <td>
      Set a product's image
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        DELETE
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/remove-a-product-s-image">
        <code>
          /v1/businesses/{biz}/products/{prod}/image
        </code>
      </a>
    </td>
    
    <td>
      Remove a product's image
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        GET
      </code>
    </td>
    
    <td>
      <a href="https://twominutebilling.com/help/developers/api-reference/catalog/active-subscriptions-and-mrr-on-a-product">
        <code>
          /v1/businesses/{biz}/products/{prod}/stats
        </code>
      </a>
    </td>
    
    <td>
      Active subscriptions and MRR on a product
    </td>
  </tr>
</tbody>
</table>


## Sitemap

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