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

# Arquivar versão de preço

> Tira uma versão de circulação. Serve para corrigir um preço criado errado, não para reajustar.

`POST /plans/:id/prices/:priceId/archive`

Faz parte do recurso [Planos e Preços](/pt-BR/subscriptions/plans) — o item, o preço versionado e
os status estão lá.

Marca a versão com `archivedAt` e a tira de vigência (`isCurrent: false`). A resposta é a versão já
arquivada.

<Warning>
  **Arquivar a versão vigente deixa o item sem preço.** Nada é promovido no lugar: o item passa a
  responder com `currentPrice` nulo em [`GET /plans/{id}`](/pt-BR/subscriptions/plans/get), e uma
  assinatura criada nesse estado não encontra o que cobrar.

  Se a intenção é trocar o valor, **crie a versão nova primeiro** — ela desbanca a anterior sozinha,
  e aí não há por que arquivar. Ver
  [Criar versão de preço](/pt-BR/subscriptions/plans/prices-post).
</Warning>

<Note>
  **Isto não é o caminho do reajuste.** Reajustar é publicar uma versão nova; arquivar existe para
  tirar de circulação uma versão criada errada — o valor digitado com um zero a mais, por exemplo.
</Note>

<Note>
  **Quem contratou a versão continua nela.** Arquivar mexe no catálogo, não nos contratos: as
  assinaturas que já cobravam nesse preço seguem cobrando. A versão também continua aparecendo na
  [listagem](/pt-BR/subscriptions/plans/prices), agora com `archivedAt` preenchido.
</Note>

<Note>
  **Arquivar duas vezes responde `409`.** Diferente do plano, em que repetir o arquivamento é
  inofensivo, aqui a segunda chamada é recusada.
</Note>

<Note>
  **O plano no caminho é conferido.** Um `priceId` que existe mas pertence a outro plano responde
  `404`, como se o endereço não existisse. Plano arquivado responde `409`.
</Note>

## Exemplo

```bash theme={null}
curl -X POST https://api.sandbox.z2pay.com/v1/plans/plan_lhutpqeq2ml3stia4vn90xars/prices/price_c8u3fwq1bnz5vhk60msyxrtae/archive \
  -H "x-api-key: SUA_CHAVE_DE_SANDBOX"
```

```json Resposta 200 theme={null}
{
  "id": "price_c8u3fwq1bnz5vhk60msyxrtae",
  "planItemId": "pli_oaimno59ai3uuqwq0ti7gxs0j",
  "planId": "plan_lhutpqeq2ml3stia4vn90xars",
  "billingScheme": "fixed",
  "amount": 11900,
  "currency": "BRL",
  "isCurrent": false,
  "publishedAt": "2026-08-10T16:04:20.000Z",
  "archivedAt": "2026-08-10T16:22:03.000Z",
  "updatedAt": "2026-08-10T16:22:03.000Z"
}
```


## OpenAPI

````yaml openapi/billing.json POST /plans/{id}/prices/{priceId}/archive
openapi: 3.0.3
info:
  title: Z2Pay Billing API
  version: 1.0.0
  description: Cobrança recorrente da Z2Pay — planos, assinaturas e faturas
servers:
  - url: https://api.sandbox.z2pay.com/v1
    description: Sandbox
  - url: https://api.z2pay.com/v1
    description: Produção
security: []
tags:
  - name: Invoices
    description: Faturas emitidas pelas assinaturas
  - name: Plans
    description: Planos de cobrança e versões de preço
  - name: Subscriptions
    description: Assinaturas recorrentes
paths:
  /plans/{id}/prices/{priceId}/archive:
    post:
      tags:
        - Plans
      summary: Arquivar uma versão de preço
      description: >-
        Tira a versão de circulação. Serve para corrigir um preço criado errado
        — reajuste se faz criando nova versão, não arquivando a antiga.
      operationId: PlanController_archivePrice
      parameters:
        - name: priceId
          in: path
          required: true
          description: ID da versão de preço a arquivar
          schema:
            type: string
        - name: id
          in: path
          required: true
          description: ID do plano
          schema:
            type: string
      responses:
        '200':
          description: Versão de preço arquivada
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Identificador único do registro.
                  planItemId:
                    type: string
                    description: ID do componente (plan item) ao qual o preço se refere.
                  planId:
                    type: string
                    description: ID do plano ao qual o registro pertence.
                  billingScheme:
                    type: string
                    description: >-
                      Esquema de cobrança do preço: fixed, per_unit, tiered,
                      package ou metered.
                  amount:
                    type: integer
                    description: Valor do preço ou da linha, em centavos.
                  currency:
                    type: string
                    description: 'Moeda no padrão ISO 4217 (ex.: BRL).'
                  recurrence:
                    type: object
                    description: >-
                      Regra de recorrência (intervalo, unidade e âncora do
                      ciclo).
                  trialSpec:
                    type: object
                    nullable: true
                    description: >-
                      Configuração do período de teste (trial) do preço; nula se
                      sem trial.
                  isCurrent:
                    type: boolean
                    description: Indica se esta é a versão de preço atualmente vigente.
                  publishedAt:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Data e hora em que a versão de preço foi publicada (ISO
                      8601).
                  archivedAt:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Data e hora em que a versão de preço foi arquivada; nula
                      se ainda vigente (ISO 8601).
                  createdAt:
                    type: string
                    format: date-time
                    description: Data e hora de criação do registro (ISO 8601).
                  updatedAt:
                    type: string
                    format: date-time
                    description: Data e hora da última atualização do registro (ISO 8601).
              example:
                id: price_l1r8693wk6ksbd9044bwvwu93
                planItemId: pli_oaimno59ai3uuqwq0ti7gxs0j
                planId: plan_lhutpqeq2ml3stia4vn90xars
                billingScheme: fixed
                amount: 9900
                currency: BRL
                recurrence:
                  interval: 1
                  unit: month
                  anchor: subscription_start
                  collectionTiming: prepaid
                trialSpec: null
                isCurrent: false
                publishedAt: '2025-06-29T13:45:30.000Z'
                archivedAt: '2025-06-29T16:30:00.000Z'
                createdAt: '2025-06-29T13:45:30.000Z'
                updatedAt: '2025-06-29T16:30:00.000Z'
        '401':
          description: Chave de API ausente, malformada ou inválida
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Identificador estável do erro. É por ele que você deve
                          ramificar, não pela mensagem.
                      message:
                        type: string
                        description: >-
                          Descrição legível. Pode mudar sem aviso e não deve ser
                          usada em condicional.
              example:
                error:
                  code: UNAUTHORIZED
                  message: Invalid API key
        '404':
          description: Plano ou versão de preço não encontrada
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Identificador estável do erro. É por ele que você deve
                          ramificar, não pela mensagem.
                      message:
                        type: string
                        description: >-
                          Descrição legível. Pode mudar sem aviso e não deve ser
                          usada em condicional.
              example:
                error:
                  code: NOT_FOUND
                  message: Price not found
        '409':
          description: >-
            Já existe uma requisição em andamento com esta Idempotency-Key. A
            API aguarda a primeira concluir por até 5 segundos antes de
            responder assim
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: >-
                      Mensagem do conflito de idempotência. Aqui `error` é
                      texto, não objeto — ramifique pelo status HTTP.
              example:
                error: A request with this idempotency key is already being processed
        '422':
          description: >-
            Idempotency-Key já usada com um corpo diferente. Use uma chave nova
            para uma operação diferente
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: >-
                      Mensagem do conflito de idempotência. Aqui `error` é
                      texto, não objeto — ramifique pelo status HTTP.
              example:
                error: Idempotency key already used with a different request body
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: API Key da Credential (gerada no Backoffice)

````