---
title: "Cancel Certificate Request"
method: DELETE
path: "/tax/certificate-requests/{request_id}"
---

# Cancel Certificate Request

`DELETE /tax/certificate-requests/{request_id}`

Cancel a pending certificate request. Terminal and idempotent — canceling an already-canceled request returns `200` with the same body. Canceling a fulfilled request returns `409` with `REQUEST_ALREADY_FULFILLED`. Live-only.

## Path parameters

- `request_id` string, required

## Headers

- `X-API-Version` '2026-03-01', required

## Response `200`

Canceled certificate request

- CertificateRequestResponse — A single certificate request.
  - `id` string, required — The ID of the certificate request
  - `object` string, required — The type of object: `tax.certificate_request`
  - `status` 'pending' | 'fulfilled' | 'canceled' | 'invalid', required — Public lifecycle state of a certificate request. The internal status enum is narrower in the public vocabulary on purpose — `processing` collapses to `pending`, `failed` collapses to `invalid`.
  - `customer` CustomerLink, required — The customer this object is linked to. `id` is the Numeral `cust_*` id; `reference_customer_id` is the value you supplied when the customer was created (may be null); `name` is the customer's display name (falls back to the linked master buyer's legal name when the customer record has no name of its own).
    - `id` string, required
    - `reference_customer_id` string, nullable, required
    - `name` string, nullable, required — Display name for the linked customer. Populated from `Customer.name`; falls back to the master buyer's `legal_name` if the customer record has no name of its own. `null` only when neither is set.
  - `linked_buyer` LinkedBuyer, required — The master buyer entity that owns this certificate or request. Distinct from `customer` (which is a specific `Customer` record) — `linked_buyer` is populated whenever the object has a master-buyer reference, even when no `Customer` record has been linked yet. Clients rendering "who owns this cert" should prefer this field.
    - `id` string, required — Stable numeric id of the master buyer.
    - `legal_name` string, nullable, required
  - `certificate_id` string, nullable, required — Populated only when `status === "fulfilled"`. The `cert_*` id of the submitted certificate.
  - `certificate_type_id` string, nullable, required — Stable identifier of the requested certificate type, e.g. `US-CA-CDTFA-230`.
  - `jurisdictions` string[], required — Jurisdiction identifiers covered by the request.
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `expires_at` string, date-time, nullable, required — When the request will auto-expire if not fulfilled. `null` if the request does not auto-expire.
  - `livemode` true, required — Always `true` — these endpoints are live-only.

## Other responses

- `400` — Unexpected error
- `409` — REQUEST_ALREADY_FULFILLED or REQUEST_INVALID — the request is in a terminal state and cannot be canceled

---

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