---
title: "Edit a price"
description: "Applies to new subs only."
canonical_url: "https://twominutebilling.com/help/developers/api-reference/catalog/edit-a-price"
---
# Edit a price

> Applies to new subs only.

<api-operation method="PATCH" path="/v1/businesses/{biz}/prices/{price}">
<template v-slot:docs="">

## Path parameters

<table>
<thead>
  <tr>
    <th>
      Parameter
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Required
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        biz
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <strong>
        yes
      </strong>
    </td>
    
    <td>
      Business id (biz_…)
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        price
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <strong>
        yes
      </strong>
    </td>
    
    <td>
      The price's id (a slug id, e.g. <code>
        pro-monthly-usd
      </code>
      
      ).
    </td>
  </tr>
</tbody>
</table>

## Headers

<table>
<thead>
  <tr>
    <th>
      Parameter
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Required
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        Idempotency-Key
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Safely retry writes — repeats return the original response. If a write FAILED after it had already taken effect, that failure is what repeats: the key is spent, and a new attempt needs a new key.
    </td>
  </tr>
</tbody>
</table>

## Body

The request body is **required**.

<table>
<thead>
  <tr>
    <th>
      Field
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Required
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        grants_credit
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Credit this price grants. <code>
        {"kind":"pack", …}
      </code>
      
       on a one-time price: each paid invoice line grants <code>
        amount
      </code>
      
       × quantity (paid credit, active once the invoice is paid). <code>
        {"kind":"per_cycle", …}
      </code>
      
       on a recurring price: <code>
        amount
      </code>
      
       × item quantity of promotional credit each period, with optional rollover. Null grants nothing.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        grants_credit.kind
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <strong>
        yes
      </strong>
    </td>
    
    <td>
      The grants credit's kind. One of <code>
        pack
      </code>
      
      , <code>
        per_cycle
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        grants_credit.unit
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <strong>
        yes
      </strong>
    </td>
    
    <td>
      A credit unit id. Null = money.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        grants_credit.amount
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      <strong>
        yes
      </strong>
    </td>
    
    <td>
      In the unit's smallest step (money: minor units).
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        grants_credit.priority
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      The grants credit's priority.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        grants_credit.expires_after
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Packs: the credit expires this many days after the invoice is paid.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        grants_credit.applicability
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Which invoice lines the grant may pay: <code>
        {"kind":"metered"}
      </code>
      
       (every usage line, the default), <code>
        {"kind":"prices","prices":["…"]}
      </code>
      
      , or <code>
        {"kind":"meters","meters":["…"]}
      </code>
      
       (meter keys: the usage lines of every price that bills the meter when the grant draws). A <code>
        metered
      </code>
      
       grant takes the business's <code>
        credit_config.credit_scope
      </code>
      
       when one is set.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        grants_credit.tax_treatment
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Packs: required, or the business default. <code>
        taxed_at_use
      </code>
      
       is money only. One of <code>
        taxed_at_purchase
      </code>
      
      , <code>
        taxed_at_use
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        grants_credit.on_exhausted
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      What happens when the credit is used up, for a business with blocking on. Null = not set here. One of <code>
        block
      </code>
      
      , <code>
        bill
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        grants_credit.rollover
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Per cycle: <code>
        none
      </code>
      
      , or <code>
        carry
      </code>
      
       floor(remaining × percent ÷ 100) units (optionally capped) into a grant that expires <code>
        expire_after_cycles
      </code>
      
       periods later (null = never).
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        grants_credit.reset
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Per cycle: when the credits renew (absent = each term). Each window gets its own grant, which pays only the usage inside that window. Credits do not renew by the hour.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        grants_credit.first_window
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Per cycle, a calendar window that starts before the subscription: grant it in full, prorated, or wait for the first full window. Null = the business setting. One of <code>
        full
      </code>
      
      , <code>
        prorated
      </code>
      
      , <code>
        next_full_window
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        meter
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Bill from this meter's events. Models usage, tiered, volume or package. The usage aggregation is copied from the meter. Fixed after create.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        unit_amount_decimal
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      The default rate: minor units per <code>
        quantity_divisor
      </code>
      
       units. A decimal string with at most 12 decimal places and no exponent, for example <code>
        "0.000125"
      </code>
      
      . "$3 per 1M tokens" is <code>
        "300"
      </code>
      
       with divisor 1000000.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        quantity_divisor
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      The rate is per this many units. Default 1.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        amount_source
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      <code>
        rate
      </code>
      
       (default): quantity × rate. <code>
        event_amount
      </code>
      
      : the sum of the events' <code>
        amount
      </code>
      
      . <code>
        event_cost
      </code>
      
      : the sum of <code>
        cost
      </code>
      
       × (1 + <code>
        markup_percent
      </code>
      
       ÷ 100). <code>
        model_price_list
      </code>
      
      : each combination at the selling rate: a fixed rate in <code>
        rates
      </code>
      
      , else its markup base × (1 + markup ÷ 100); a combination with no base bills <code>
        unit_amount_decimal
      </code>
      
      . <code>
        event_cost_or_list
      </code>
      
      : the events that carry a <code>
        cost
      </code>
      
       bill that cost × (1 + markup ÷ 100), on their own line; the events without one (or with a cost in another currency) bill as <code>
        model_price_list
      </code>
      
      ; a fixed rate for a combination wins over both. The last two: the usage model only, on a sum or count meter with a <code>
        price_list
      </code>
      
       mapping. One of <code>
        rate
      </code>
      
      , <code>
        event_amount
      </code>
      
      , <code>
        event_cost
      </code>
      
      , <code>
        model_price_list
      </code>
      
      , <code>
        event_cost_or_list
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        markup_percent
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      <code>
        event_cost
      </code>
      
      , <code>
        model_price_list
      </code>
      
       and <code>
        event_cost_or_list
      </code>
      
       only: a decimal percent, 0 or more, up to 6 decimal places.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        markup_base
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      <code>
        model_price_list
      </code>
      
       and <code>
        event_cost_or_list
      </code>
      
       only. <code>
        list
      </code>
      
       (default): the model price list, else your cost. <code>
        cost
      </code>
      
      : your cost, else the list. One of <code>
        list
      </code>
      
      , <code>
        cost
      </code>
      
      , <code>
        null
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        rates
      </code>
    </td>
    
    <td>
      <code>
        array of object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      The rate card. A combination that no row names bills at the price's own rate.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        rates.match
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      <strong>
        yes
      </strong>
    </td>
    
    <td>
      Group values over some of the meter's <code>
        group_by
      </code>
      
      . The row naming the most values wins, then the oldest.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        rates.unit_amount_decimal
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Minor units per <code>
        quantity_divisor
      </code>
      
       units. A decimal string with at most 12 decimal places and no exponent, for example <code>
        "0.000125"
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        rates.markup_percent
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      <code>
        model_price_list
      </code>
      
       and <code>
        event_cost_or_list
      </code>
      
       only: percent over the price's markup base (and, for <code>
        event_cost_or_list
      </code>
      
      , over the events' own cost), in place of a fixed rate.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        rates.tiers
      </code>
    </td>
    
    <td>
      <code>
        array of object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Tiers in the price's model: <code>
        up_to
      </code>
      
      , <code>
        unit_amount_decimal
      </code>
      
      , <code>
        flat_amount_minor
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        name
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      The price's name.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        amount_minor
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      The price in minor units, e.g. 2900 = $29.00.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        tiers
      </code>
    </td>
    
    <td>
      <code>
        array of object
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      The price tiers, for a tiered, volume or stairstep price.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        package_size
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Units per package, for a package price.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        free_units
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Units included free before charging starts.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        percentage_bps
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      The percentage in basis points (100 = 1%), for a percentage price.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        minimum_amount_minor
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Minimum spend for one billing period; null removes it. Recurring prices only.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        bill_usage_monthly
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Recurring plan prices with a billing period of 2 months or more only. Applies to new subscriptions.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        commitment_amount_minor
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Minimum commitment for one full billing period; null removes it. Recurring plan prices only. Applies to new subscriptions.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        show_description_in_invoices
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Whether the price's description is printed on invoices.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        show_description_in_quotes
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Whether the price's description is printed on quotes.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        tax_code
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      HSN/SAC for this price. Null falls through to the product’s, then the business default.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        sku
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      The price's SKU.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        accounting_code
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Descriptive metadata — NOT a ledger account reference.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        accounting_category_code
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      The accounting category code for this price.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        is_taxable
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Whether tax applies to this price.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        tax_behavior
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Whether the price includes tax or tax is added on top. One of <code>
        inclusive
      </code>
      
      , <code>
        exclusive
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        active
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      false to archive, true to restore
    </td>
  </tr>
</tbody>
</table>

## Response

<table>
<thead>
  <tr>
    <th>
      Field
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        grants_credit
      </code>
    </td>
    
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      Credit this price grants. <code>
        {"kind":"pack", …}
      </code>
      
       on a one-time price: each paid invoice line grants <code>
        amount
      </code>
      
       × quantity (paid credit, active once the invoice is paid). <code>
        {"kind":"per_cycle", …}
      </code>
      
       on a recurring price: <code>
        amount
      </code>
      
       × item quantity of promotional credit each period, with optional rollover. Null grants nothing.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        meter
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Bill from this meter's events. Models usage, tiered, volume or package. The usage aggregation is copied from the meter. Fixed after create.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        unit_amount_decimal
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The default rate: minor units per <code>
        quantity_divisor
      </code>
      
       units. A decimal string with at most 12 decimal places and no exponent, for example <code>
        "0.000125"
      </code>
      
      . "$3 per 1M tokens" is <code>
        "300"
      </code>
      
       with divisor 1000000.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        quantity_divisor
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      The rate is per this many units. Default 1.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        amount_source
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <code>
        rate
      </code>
      
       (default): quantity × rate. <code>
        event_amount
      </code>
      
      : the sum of the events' <code>
        amount
      </code>
      
      . <code>
        event_cost
      </code>
      
      : the sum of <code>
        cost
      </code>
      
       × (1 + <code>
        markup_percent
      </code>
      
       ÷ 100). <code>
        model_price_list
      </code>
      
      : each combination at the selling rate: a fixed rate in <code>
        rates
      </code>
      
      , else its markup base × (1 + markup ÷ 100); a combination with no base bills <code>
        unit_amount_decimal
      </code>
      
      . <code>
        event_cost_or_list
      </code>
      
      : the events that carry a <code>
        cost
      </code>
      
       bill that cost × (1 + markup ÷ 100), on their own line; the events without one (or with a cost in another currency) bill as <code>
        model_price_list
      </code>
      
      ; a fixed rate for a combination wins over both. The last two: the usage model only, on a sum or count meter with a <code>
        price_list
      </code>
      
       mapping. One of <code>
        rate
      </code>
      
      , <code>
        event_amount
      </code>
      
      , <code>
        event_cost
      </code>
      
      , <code>
        model_price_list
      </code>
      
      , <code>
        event_cost_or_list
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        markup_percent
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <code>
        event_cost
      </code>
      
      , <code>
        model_price_list
      </code>
      
       and <code>
        event_cost_or_list
      </code>
      
       only: a decimal percent, 0 or more, up to 6 decimal places.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        markup_base
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <code>
        model_price_list
      </code>
      
       and <code>
        event_cost_or_list
      </code>
      
       only. <code>
        list
      </code>
      
       (default): the model price list, else your cost. <code>
        cost
      </code>
      
      : your cost, else the list. One of <code>
        list
      </code>
      
      , <code>
        cost
      </code>
      
      , <code>
        null
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        rates
      </code>
    </td>
    
    <td>
      <code>
        array of object
      </code>
    </td>
    
    <td>
      The rate card. A combination that no row names bills at the price's own rate.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The object type.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        id
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The price's id (<code>
        pro-monthly-usd
      </code>
      
      ).
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        product
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The product this price belongs to (a slug id, e.g. <code>
        pro
      </code>
      
      ).
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        name
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The price's name.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        model
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The pricing model.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        type
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Whether the price recurs or is charged once.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        currency
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The price's currency (ISO-4217 code).
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        amount_minor
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      The amount in minor units (integer), e.g. 2900 = $29.00.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        minimum_amount_minor
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      Minimum spend for one billing period, or null.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        bill_usage_monthly
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      New subscriptions on this price invoice metered usage every month.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        commitment_amount_minor
      </code>
    </td>
    
    <td>
      <code>
        integer
      </code>
    </td>
    
    <td>
      Minimum commitment for one full billing period, or null.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        interval
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The billing interval of a recurring price.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        usage_aggregation
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      How usage in a period is combined, or null for a fixed price.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        usage_recurring
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      The measured level carries into later periods.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        usage_time_unit
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The unit of a weighted_sum quantity, or null. One of <code>
        hour
      </code>
      
      , <code>
        day
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        metered
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      The price bills measured usage in arrears, not a fixed quantity.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        is_taxable
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      Whether tax applies to this price.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        tax_behavior
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Whether the price includes tax or tax is added on top.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        show_description_in_invoices
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      Whether the price's description is printed on invoices.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        show_description_in_quotes
      </code>
    </td>
    
    <td>
      <code>
        boolean
      </code>
    </td>
    
    <td>
      Stored and round-tripped; no quote renderer exists yet to honour it.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        tax_code
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      HSN/SAC for this price (India GST). Null falls through to the product’s, then the business default_tax_code.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        sku
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      SKU. Descriptive metadata — the engine reads it nowhere.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        accounting_code
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Accounting code (“Account Name”). Descriptive metadata — NOT a ledger account reference.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        accounting_category_code
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Accounting category code (“Class”). Descriptive metadata.
    </td>
  </tr>
</tbody>
</table>

## Status codes

<table>
<thead>
  <tr>
    <th>
      Status
    </th>
    
    <th>
      Meaning
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        200
      </code>
    </td>
    
    <td>
      Success
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        404
      </code>
    </td>
    
    <td>
      No such price
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        409
      </code>
    </td>
    
    <td>
      Idempotency-Key conflict — the key is already in flight, or was reused with a different request payload.
    </td>
  </tr>
</tbody>
</table>
</template>

<template v-slot:request="">

```bash [Request]
curl -X PATCH "$TMBILLING_URL/v1/businesses/biz_XXXXXXXXXXXX01/prices/pro-monthly-usd" \
  -H "Authorization: Bearer $TMBILLING_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Pro monthly",
    "amount_minor": 2900
  }'
```

</template>

<template v-slot:response="">
<code-group>

```json [200 OK]
{
  "grants_credit": {
    "kind": "pack",
    "unit": "seat",
    "amount": 2900,
    "priority": 1,
    "expires_after": {
      "days": 14
    },
    "applicability": {
      "kind": "metered"
    },
    "tax_treatment": "taxed_at_purchase",
    "on_exhausted": "block",
    "rollover": {
      "mode": "none",
      "percent": 10,
      "cap": 1,
      "expire_after_cycles": 1
    },
    "reset": {
      "every": "hour"
    },
    "first_window": "full"
  },
  "meter": "ai_tokens",
  "unit_amount_decimal": "300",
  "quantity_divisor": 1000000,
  "amount_source": "rate",
  "markup_percent": "20",
  "markup_base": "list",
  "rates": [
    {
      "match": {
        "model": "large-v2",
        "token_type": "output"
      }
    }
  ],
  "object": "price",
  "id": "pro-monthly-usd",
  "product": "pro",
  "name": "Pro monthly",
  "model": "flat",
  "type": "recurring",
  "currency": "USD",
  "amount_minor": 2900,
  "minimum_amount_minor": 2900,
  "bill_usage_monthly": false,
  "commitment_amount_minor": 2900,
  "interval": "month",
  "usage_aggregation": "Usage aggregation",
  "usage_recurring": false,
  "usage_time_unit": "hour",
  "metered": false,
  "is_taxable": false,
  "tax_behavior": "exclusive",
  "show_description_in_invoices": false,
  "show_description_in_quotes": false,
  "tax_code": "998314",
  "sku": "PRO-M",
  "accounting_code": "welcome-10",
  "accounting_category_code": "welcome-10"
}
```

```json [404 Not Found]
{
  "error": {
    "type": "invalid_request_error",
    "message": "No such price"
  }
}
```

```json [409 Conflict]
{
  "error": {
    "type": "idempotency_error",
    "message": "Idempotency-Key conflict — the key is already in flight, or was reused with a different request payload."
  }
}
```

</code-group>
</template>
</api-operation>


## Sitemap

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