> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chargefy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete a Price

> Remove ou desativa um preço.

Remove um `price` quando ele nunca foi usado. Se o preço já estiver
referenciado por histórico financeiro, checkout ou assinatura, a Chargefy
desativa o preço automaticamente com `is_active=false` e retorna o objeto
completo atualizado em vez do shape curto de remoção.

## Delete ou arquivamento: como decidimos

Você sempre chama a mesma rota, e a Chargefy escolhe o caminho seguro por você:

* **Nunca foi usado** → o preço é removido de verdade. A resposta traz
  `deleted: true`.
* **Já teve venda, checkout ou assinatura** → o preço é **arquivado**
  (`is_active=false`) em vez de apagado. A resposta traz o objeto completo
  com `is_active: false`.

Fazemos assim para **nunca quebrar o histórico**. Cobranças e assinaturas que
já usaram aquele preço precisam continuar apontando para ele; apagar deixaria
faturas e relatórios sem referência. Arquivar tira o preço de novos checkouts e
assinaturas sem afetar nada que já foi cobrado.

<Tip>
  É por isso que, para mudar de valor, você cria um preço novo e arquiva o
  antigo (`is_active=false`) — em vez de editar o valor. Assim as assinaturas
  ativas seguem no preço antigo e as novas pegam o novo, sem perder o histórico.
</Tip>

## Autenticação

A API key da própria organização atua diretamente. A API key de plataforma exige o
header `Organization: <organization_id>` apontando para uma organização
conectada ativa.

## Parâmetros de caminho

<ParamField path="id" type="string" required>
  ID do preço (`price_*`).
</ParamField>

<RequestExample>
  ```bash cURL theme={}
  curl -X DELETE "https://api.chargefy.io/v1/prices/price_123" \
    -H "Authorization: Bearer {{API_KEY}}"
  ```
</RequestExample>

## Resposta

`200 OK` com um destes dois shapes:

**Quando a row pôde ser removida** — objeto curto de remoção:

| Campo     | Tipo      | Observação           |
| --------- | --------- | -------------------- |
| `id`      | `string`  | ID do preço removido |
| `object`  | `string`  | Sempre `"price"`     |
| `deleted` | `boolean` | Sempre `true`        |

<ResponseExample>
  ```json 200 (deleted) theme={}
  {
    "id": "price_123",
    "object": "price",
    "deleted": true
  }
  ```

  ```json 200 (deactivated) theme={}
  {
    "id": "price_123",
    "object": "price",
    "created_at": "2026-05-16T14:09:27Z",
    "currency": "brl",
    "is_active": false,
    "livemode": true,
    "metadata": {},
    "name": "Mensal",
    "product": "prod_123",
    "recurring": {
      "interval": "month",
      "interval_count": 1,
      "trial_period_days": null,
      "usage_type": "licensed"
    },
    "tax_behavior": "unspecified",
    "type": "recurring",
    "unit_amount": 9990,
    "updated_at": "2026-05-16T15:02:10Z"
  }
  ```
</ResponseExample>

**Quando o preço precisava permanecer auditável** — mesmo shape de
[`GET /v1/prices/:id`](/api-reference/prices/get#resposta) com
`is_active=false`.

## Erros comuns

| Status | `code`             | Quando ocorre                      |
| ------ | ------------------ | ---------------------------------- |
| `404`  | `resource_missing` | Preço não existe nesta organização |

## Webhook

Quando o preço é desativado em vez de removido, dispara
[`price.updated`](/api-reference/webhooks/price.updated) com
`previous_attributes.is_active = true`.
