---
title: "Void native invoice"
method: POST
path: "/invoices/{invoice_id}/void"
tags: ["billing"]
---

# Void native invoice

`POST /invoices/{invoice_id}/void`

## Request

- Base URL: `https://api.schematichq.com`
- URL: `https://api.schematichq.com/invoices/{invoice_id}/void`
- Auth: API key in header `X-Schematic-Api-Key`

## Path parameters

- `invoice_id` string, required

## Response `200`

OK

- object
  - `data` BillingInvoiceDetailResponseData, required
    - `amount_paid` integer, required
    - `amount_remaining` integer, required
    - `collection_state` 'exported' | 'paid' | 'partially_paid' | 'past_due' | 'payment_failed' | 'queued' | 'sent'
    - `collector` 'external' | 'stripe_invoice' | 'stripe_payments'
    - `company_id` string, required
    - `contract_id` string, nullable: Null on a Stripe invoice.
    - `created_at` string, date-time, required
    - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw', required
    - `discount` integer, required: What discounts took off the subtotal, in minor units of the invoice's currency. Zero on an invoice Schematic issued.
    - `document_state` 'credited' | 'draft' | 'finalized' | 'void'
    - `due_at` string, date-time, nullable
    - `external_id` string, nullable: The billing provider's invoice ID. Null on an invoice Schematic issued.
    - `finalized_at` string, date-time, nullable
    - `id` string, required
    - `lines` BillingInvoiceLineResponseData[], required
      - `amount` integer, required: In minor units of the invoice's currency.
      - `charge_ids` string[], required: The charges this line sums.
      - `description` string, nullable: What the line bills for: the product, plan, add-on or credit. Null when the line has no subscription line behind it.
      - `external_id` string, nullable: The billing provider's line ID. Null on an invoice Schematic issued.
      - `id` string, nullable: Null on a Stripe invoice line.
      - `kind` 'adjustment' | 'purchase' | 'reconciliation' | 'subscription' | 'true_up', required
      - `period_end` string, date-time, nullable
      - `period_start` string, date-time, nullable
      - `quantity` integer, nullable
      - `subscription_line_id` string, nullable
      - `taxable` boolean, required
      - `unit_amount` integer, nullable
    - `number` string, nullable
    - `pdf_url` string, nullable: The billing provider's PDF of the invoice. Null on an invoice Schematic issued, which downloads its PDF from this API.
    - `period_end` string, date-time, nullable: Null on a Stripe invoice.
    - `period_start` string, date-time, nullable: Null on a Stripe invoice.
    - `provider_type` 'metronome' | 'orb' | 'schematic' | 'stripe', required
    - `settlements` BillingInvoiceSettlementResponseData[], required
      - `amount` integer, required
      - `collector` 'external' | 'stripe_invoice' | 'stripe_payments', required
      - `id` string, nullable: Null on a payment Stripe recorded.
      - `reference` string, nullable
      - `settled_at` string, date-time, required
    - `status` 'draft' | 'open' | 'paid' | 'uncollectible' | 'void', required
    - `subscription_external_id` string, nullable: The billing provider's subscription ID. Null on an invoice Schematic issued.
    - `subscription_id` string, nullable: The Schematic subscription the invoice's lines bill for. Null on a Stripe invoice, which links its subscription through subscription_external_id.
    - `subtotal` integer, required
    - `tax` integer, required: In minor units of the invoice's currency.
    - `terms` BillingInvoiceTermsResponseData
      - `billing_details` BillingInvoiceBillingDetailsResponseData
        - `address` BillingInvoiceAddressResponseData
          - `city` string, required
          - `country` string, required
          - `line1` string, required
          - `line2` string, required
          - `postal_code` string, required
          - `state` string, required
        - `email` string, nullable
        - `phone` string, nullable
        - `tax_ids` BillingInvoiceTaxIDResponseData[], required
          - `type` 'ae_trn' | 'au_abn' | 'au_arn' | 'br_cnpj' | 'br_cpf' | 'ca_bn' | 'ca_gst_hst' | 'ca_pst_bc' | 'ca_pst_mb' | 'ca_pst_sk' | 'ca_qst' | 'ch_uid' | 'ch_vat' | 'eu_vat' | 'gb_vat' | 'hk_br' | 'id_npwp' | 'il_vat' | 'in_gst' | 'jp_cn' | 'jp_rn' | 'jp_trn' | 'kr_brn' | 'mx_rfc' | 'my_frp' | 'my_itn' | 'my_sst' | 'no_vat' | 'nz_gst' | 'ph_tin' | 'sa_vat' | 'sg_gst' | 'sg_uen' | 'th_vat' | 'tr_tin' | 'tw_vat' | 'us_ein' | 'za_vat', required
          - `value` string, required
      - `collection_method` 'charge_automatically' | 'send_invoice', required
      - `collector` 'external' | 'stripe_invoice' | 'stripe_payments', required
      - `currency` 'aed' | 'afn' | 'all' | 'amd' | 'ang' | 'aoa' | 'ars' | 'aud' | 'awg' | 'azn' | 'bam' | 'bbd' | 'bdt' | 'bif' | 'bmd' | 'bnd' | 'bob' | 'brl' | 'bsd' | 'bwp' | 'byn' | 'bzd' | 'cad' | 'cdf' | 'chf' | 'clp' | 'cny' | 'cop' | 'crc' | 'cve' | 'czk' | 'djf' | 'dkk' | 'dop' | 'dzd' | 'egp' | 'etb' | 'eur' | 'fjd' | 'fkp' | 'gbp' | 'gel' | 'gip' | 'gmd' | 'gnf' | 'gtq' | 'gyd' | 'hkd' | 'hnl' | 'htg' | 'huf' | 'idr' | 'ils' | 'inr' | 'isk' | 'jmd' | 'jpy' | 'kes' | 'kgs' | 'khr' | 'kmf' | 'krw' | 'kyd' | 'kzt' | 'lak' | 'lbp' | 'lkr' | 'lrd' | 'lsl' | 'mad' | 'mdl' | 'mga' | 'mkd' | 'mmk' | 'mnt' | 'mop' | 'mur' | 'mvr' | 'mwk' | 'mxn' | 'myr' | 'mzn' | 'nad' | 'ngn' | 'nio' | 'nok' | 'npr' | 'nzd' | 'pab' | 'pen' | 'pgk' | 'php' | 'pkr' | 'pln' | 'pyg' | 'qar' | 'ron' | 'rsd' | 'rub' | 'rwf' | 'sar' | 'sbd' | 'scr' | 'sek' | 'sgd' | 'shp' | 'sle' | 'sos' | 'srd' | 'std' | 'szl' | 'thb' | 'tjs' | 'top' | 'try' | 'ttd' | 'twd' | 'tzs' | 'uah' | 'ugx' | 'usd' | 'uyu' | 'uzs' | 'vnd' | 'vuv' | 'wst' | 'xaf' | 'xcd' | 'xcg' | 'xof' | 'xpf' | 'yer' | 'zar' | 'zmw'
      - `days_until_due` integer, nullable
      - `payment_gating` 'keep_serving' | 'revoke_after', required
      - `purchase_order` string, nullable
    - `total` integer, required
    - `url` string, nullable: The billing provider's hosted invoice page. Null on an invoice Schematic issued.
  - `params` object, required: Input parameters

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `500`: Server error

## Changes

> 230 revisions in range; 1 not diffed.

- **2026-10-21** `67a1a6df05fe`: 1 info
  - added the optional property `data/terms/allOf[subschema #1: BillingInvoiceTermsResponseData]/billing_details` to the response with the `200` status
- **2026-10-21** `58d1145d1ddd`: 4 breaking, 4 info
  - the response property `data/lines/items/id` became nullable for the status `200`
  - the response property `data/settlements/items/id` became nullable for the status `200`
  - the response property `data/lines/items/id` became optional for the status `200`
  - the response property `data/settlements/items/id` became optional for the status `200`
  - …4 more
- **2026-10-20** `e92a4ba2fbb0`: 9 breaking, 11 info
  - the response property `data/contract_id` became nullable for the status `200`
  - the response property `data/document_state` became nullable for the status `200`
  - the response property `data/period_end` became nullable for the status `200`
  - the response property `data/period_start` became nullable for the status `200`
  - …16 more
- **2026-10-12** `6a825174a24f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/schematichq/apis/schematic-api/changes/invoices/:invoice_id/void/post.md)

---

[API](https://skmtc.dev/schematichq/apis/schematic-api.md) - [All operations](https://skmtc.dev/schematichq/apis/schematic-api/llms.txt) - [OpenAPI document](https://skmtc.dev/schematichq/apis/schematic-api/revisions/64cb7e17c236?raw)
