---
title: "Archive a price"
description: "Soft — active=false."
canonical_url: "https://twominutebilling.com/help/developers/api-reference/catalog/archive-a-price"
---
# Archive a price

> Soft — active=false.

<api-operation method="DELETE" 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>

## 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 DELETE "$TMBILLING_URL/v1/businesses/biz_XXXXXXXXXXXX01/prices/pro-monthly-usd" \
  -H "Authorization: Bearer $TMBILLING_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"
```

</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.
