# Upload a certificate for a customer

> POST /exemptions/missing-certificates/{customer_id}/upload

Source: https://docs.trykintsugi.com/reference/2026-07-21/upload-a-certificate-for-a-customer

POST /exemptions/missing-certificates/{customer_id}/upload

Upload a certificate for a customer

Upload a certificate on a customer's behalf, as `multipart/form-data` with the file in the `file` part, to cover their uncertified jurisdictions. The file must be a PDF, PNG or JPG and at most 10 MB. Creates one validation job per uncovered exemption and returns 202 with an `uploadSessionId`; poll `GET /exemptions/missing-certificates/{customerId}/upload-status/{uploadSessionId}` for per-jurisdiction results. Scoped to one organization the same way as the list. Returns 404 if the customer has no uncovered exemptions in an organization your credential can access. A free plan is refused with 403 PLAN_UPGRADE_REQUIRED. A paid plan without exemption certificate management is refused with 403 FORBIDDEN.

Category: Exemptions

Path parameters:
customer_id (string, required) - The customer whose uncovered exemptions this upload targets.

Response fields:
uploadSessionId (string, required) - Poll `GET /exemptions/missing-certificates/{customerId}/upload-status/{uploadSessionId}` with this for per-jurisdiction results.
certificateImportIds (string[], required) - One import id per uncovered exemption the upload targets.
status (PublicMissingCertificateStatusEnum) - Always PROCESSING at acceptance; poll the status endpoint for results.
  allowed values: processing, satisfied, rejected

Response statuses: 202, 400, 401, 403, 404, 413, 422

---

Index of every page: https://docs.trykintsugi.com/llms.txt
