# Reemitir cobrança

**Área:** Cobranças

Reemite uma cobrança que expirou sem pagamento. Um novo Pix ou boleto é emitido com o mesmo valor, cliente e dados da original e com o novo vencimento. A cobrança expirada continua no histórico, ligada à nova pelos campos `reissuedFromChargeId` e `reissuedToChargeId` (veja **Detalhes da cobrança**).

`POST /v1/charges/:chargeId/reissue`

**Base URL Produção:** `https://api.validapay.com.br`  
**Base URL Sandbox:** `https://sandbox.validapay.com.br`

**Scopes necessários:** `charges/write`

Sem `dueDate`, o novo vencimento é daqui a 7 dias. O prazo para pagar depois do vencimento é o mesmo da cobrança original.

**O que pode ser reemitido**

- **Cobrança avulsa:** Pix ou boleto com `status` `EXPIRED`.
- **Cobrança de assinatura:** só quando a assinatura está `EXPIRED`, encerrada por falta de pagamento. Vale para Pix, boleto e cartão.
- Cada cobrança é reemitida uma vez. Se a nova também expirar, reemita a nova.

**Cobrança de assinatura: a assinatura é reativada**

- Todas as cobranças Pix e boleto expiradas do mesmo ciclo são reemitidas juntas, e `charges` traz cada uma delas.
- O ciclo e a fatura voltam a aguardar pagamento, com o novo vencimento.
- Itens que tinham sido cancelados porque a cobrança expirou voltam para a assinatura e aparecem em `restoredItems`.
- A assinatura volta para `ACTIVE`. Se a cobrança era a do primeiro ciclo, ela volta para `PENDING`: a assinatura ainda aguarda o primeiro pagamento.
- São enviados os webhooks `subscription.reactivated` e `charge.created`, este para cada cobrança nova.

**Cartão:** nenhuma cobrança nova é criada. A fatura é reaberta e a resposta traz `type` `CARD_COLLECTION_REQUIRED` e `checkoutUrl`, o link para o cliente informar outro cartão e pagar.

**Boleto:** o boleto antigo não é cancelado. Um boleto pago no último dia pode compensar em até 3 dias úteis, por isso a resposta traz `warning`. Se o cliente pagar os dois, a devolução de um deles é manual. Enquanto o boleto da assinatura ainda pode ser pago, a reemissão responde `400` com `CHARGE_STILL_PAYABLE`.

A linha digitável do boleto (`payment.boletoUrl`) pode vir `null` e ficar pronta alguns segundos depois. Consulte **Detalhes da cobrança** com o `chargeId` novo.

Cobrança de outra conta responde `404` com `CHARGE_NOT_FOUND`, igual a um ID inexistente.

Case de uso:
_Como lojista, quero reemitir o Pix vencido de um assinante com nova data, para que ele consiga pagar e a assinatura volte a valer._

### Path parameters

| Campo | Obrigatório | Descrição |
|---|---|---|
| `chargeId` | **sim** | ID da cobrança expirada |

### Request body

```json
{
    "dueDate": "2026-11-06" 
}
```

### Campos do body

**Opcionais**

| Campo | Descrição |
|---|---|
| `dueDate` | Novo vencimento (YYYY-MM-DD), hoje ou data futura. Padrão: hoje + 7 dias |

### Resposta 200: 200 Cobrança avulsa

```json
{
  "chargeId": "cha_1793389356699_1vxrggeo4",
  "reissuedFromChargeId": "cha_1790102857277_lgn02g8y3",
  "status": "PENDING",
  "paymentType": "PIX",
  "amount": 100,
  "dueDate": "2026-11-06T00:00:00Z",
  "expiresAt": "2026-12-07T02:59:59.999Z",
  "payment": {
    "transactionId": 4000823176,
    "emvQrCode": "00020101021226930014br.gov.bcb.pix…",
    "dueDate": "2026-11-06"
  }
}
```


### Resposta 200: 200 Assinatura reativada

```json
{
  "subscriptionId": "sub_1786116225961_dcsm8gcbd",
  "status": "ACTIVE",
  "cycleNumber": 2,
  "dueDate": "2026-11-06",
  "invoiceId": "inv_1787886170440_p1ytajkof",
  "charges": [
    {
      "chargeId": "cha_1793389487033_lqbdqsxci",
      "reissuedFromChargeId": "cha_1787886170448_9czoxnbg9",
      "status": "AWAITING_PAYMENT",
      "paymentType": "BOLETO",
      "amount": 100,
      "dueDate": "2026-11-06",
      "expiresAt": "2026-12-07T02:59:59.999Z",
      "payment": {
        "transactionId": "9b22cd56-ca19-47f6-b19e-08908158ae9c",
        "dueDate": "2026-11-06",
        "boletoUrl": "34191090081225054789529988600002216220000001000"
      },
      "warning": "Um boleto pago no último dia ainda pode compensar em até 3 dias úteis. Se o cliente pagar o antigo e o novo, o estorno de um deles é manual."
    }
  ],
  "restoredItems": []
}
```


### Resposta 200: 200 Assinatura no cartão

```json
{
  "subscriptionId": "sub_1790434949828_avjk2oaco",
  "status": "PENDING",
  "cycleNumber": 1,
  "dueDate": "2026-11-06",
  "invoiceId": "inv_1790434950984_drr8jcm8h",
  "type": "CARD_COLLECTION_REQUIRED",
  "checkoutUrl": "https://app.validapay.com.br/fatura/inv_1790434950984_drr8jcm8h"
}
```


### Resposta 400: 400 Data inválida

```json
{
  "error": {
    "message": "dueDate deve ser hoje ou uma data futura",
    "code": "INVALID_DATA",
    "details": [
      {
        "code": "custom",
        "message": "dueDate deve ser hoje ou uma data futura",
        "path": [
          "dueDate"
        ]
      }
    ],
    "timestamp": "2026-10-30T19:42:41.000Z"
  }
}
```


### Resposta 400: 400 Cobrança não reemitível

```json
{
  "error": {
    "message": "Só é possível reemitir cobrança PIX ou boleto expirada, ou cartão de assinatura encerrada por falta de pagamento",
    "code": "CHARGE_NOT_REISSUABLE",
    "details": null,
    "timestamp": "2026-10-30T19:42:41.000Z"
  }
}
```


### Resposta 400: 400 Assinatura não expirada

```json
{
  "error": {
    "message": "A assinatura desta cobrança não está expirada; para mudar o vencimento use a troca de vencimento da assinatura",
    "code": "SUBSCRIPTION_NOT_EXPIRED",
    "details": null,
    "timestamp": "2026-10-30T19:42:41.000Z"
  }
}
```


### Resposta 400: 400 Ciclo não encerrado

```json
{
  "error": {
    "message": "O ciclo desta cobrança não foi encerrado por falta de pagamento",
    "code": "CYCLE_NOT_REACTIVATABLE",
    "details": null,
    "timestamp": "2026-10-30T19:42:41.000Z"
  }
}
```


### Resposta 400: 400 Boleto ainda pagável

```json
{
  "error": {
    "message": "Esta cobrança ainda pode ser paga até 30/10/2026; reemita depois disso",
    "code": "CHARGE_STILL_PAYABLE",
    "details": null,
    "timestamp": "2026-10-30T19:42:41.000Z"
  }
}
```


### Resposta 404: 404

```json
{
  "error": {
    "message": "Cobrança não encontrada",
    "code": "CHARGE_NOT_FOUND",
    "details": null,
    "timestamp": "2026-10-30T19:42:41.000Z"
  }
}
```


### Resposta 409: 409 Já reemitida

```json
{
  "error": {
    "message": "Esta cobrança já foi reemitida ou está sendo reemitida",
    "code": "CHARGE_ALREADY_REISSUED",
    "details": null,
    "timestamp": "2026-10-30T19:42:41.000Z"
  }
}
```


---

Página: https://docs.validapay.com.br/referencia/post-reemitir-cobranca  
Contrato OpenAPI: https://docs.validapay.com.br/openapi.json