Skip to main content
Numeral’s exemption certificate management (ECM) surface covers two related objects:
  • certificate_request — an outstanding ask for an exemption certificate from one of your customers. Trigger one, read its state, cancel it.
  • exemption_certificate — the submitted certificate itself, with per-jurisdiction validity, expiration, and a short-lived download URL.
Both objects carry two related links to the owning entity:
  • customer — the specific Customer record linked to the object. null when no live Customer has been associated yet.
  • linked_buyer — the master buyer entity. Populated whenever the object has a master-buyer reference, even when no Customer record is linked yet. Prefer this field for rendering “who owns this certificate.”
Both surfaces are live-only. Using a sk_test_* key returns TESTMODE_NOT_SUPPORTED.

Certificate Requests

The certificate_request object represents an outstanding ask for an exemption certificate from one of your customers. A request is opened when you (or an integration acting on your behalf) trigger one for a customer; it closes when the customer submits a valid certificate, the request is canceled, or it expires.

Lifecycle

pending and fulfilled are the only non-terminal-on-creation outcomes clients typically observe.

When to read certificate requests

  • Render a customer-facing dashboard of outstanding requests.
  • Reconcile your CRM / sales system with which buyers still owe a cert.
  • Stop a campaign when your sales team no longer needs the exemption (call DELETE /tax/certificate-requests/{id}).

Triggering a certificate request

POST /tax/customers/{customer_id}/certificate-requests opens a new request for an existing customer. Full reference documentation for the trigger endpoint ships in an upcoming release.

Reading a fulfilled request’s certificate

Once status flips to fulfilled, the certificate_id field is populated with the cert_* id of the submitted certificate. Fetch it via GET /tax/certificates/{certificate_id} to read its status, jurisdictions, and download URL.

Example


Exemption Certificates

The exemption_certificate object represents a tax exemption certificate submitted by one of your customers. Use the certificate endpoints to render exemption state in your own UI, sync validity / expiration into your system of record, and offer a download link to the original document.

Public status vocabulary

The status field uses a deliberately narrow public vocabulary — Numeral’s review pipeline runs many internal states that are not surfaced. expiring and expired are kept distinct from invalid so you can differentiate a lapsed but renewable certificate from a revoked or rejected one. A top-level status reflects the certificate as a whole. Each entry in jurisdictions[] carries its own status — a certificate may be active in one jurisdiction and expired in another.

Per-jurisdiction validity

Multi-state certificates expose one entry per covered jurisdiction:
Treat the per-jurisdiction status as authoritative when calculating whether a buyer is exempt in a specific state — the top-level status is a summary view.

Downloading the document

GET /tax/certificates/{certificate_id} returns a pre-signed download_url that expires one hour after issuance. Re-fetch the certificate to mint a fresh URL. download_url is null until the certificate is fully ingested (a processing certificate may have no document attached yet).
Treat download_url as confidential. Anyone with the URL can read the certificate until it expires.

Example