---
title: "Recalculate invoice (voided invoice)"
method: POST
path: "/invoices/{id}/recalculate"
tags: ["Invoices"]
---

# Recalculate invoice (voided invoice)

`POST /invoices/{id}/recalculate`

Starts an async workflow that creates a fresh replacement invoice for a voided SUBSCRIPTION invoice (same billing period). Returns workflow_id and run_id; poll workflow status or GET the new invoice via recalculated_invoice_id after completion.

## Path parameters

- `id` string, required

## Response `202`

Accepted

- ModelsTemporalWorkflowResult
  - `message` string
  - `run_id` string
  - `workflow_id` string

## Other responses

- `400` — Invalid request or invoice already recalculated
- `404` — Invoice not found
- `500` — Server error

---

[API](https://skmtc.net/flexprice/apis/flexprice-api.md) · [All operations](https://skmtc.net/flexprice/apis/flexprice-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/flexprice/flexprice-api/revisions/f0601ed97bd3/schema)
