products/<gtin>/certifications/ page.
When to use
- A brand owner wants the certifications a product holds on its Closient record, with the details of each certificate, so a shopper or a search filter can rely on them.
- A certificate on file has been renewed, has lapsed, or carries a wrong number or link.
Auth
X-API-Key header or OAuth token. The caller must be a member of the product’s
organization with the contribute role (Editor or Manager). A read-only key is refused with
403; a product another organization owns answers 404, so the API never confirms it
exists.
Flow
- Find the certification — a certification is chosen from Closient’s catalog by its
id. Search the catalog bylabelor exactcode(e.g.USDA_ORGANIC). If it is not in the catalog, report it rather than picking a near match. - List — every certification on the product.
- Create — the body names the catalog entry with
certification_idand may carry the certificate’scertificate_number,issuing_body,valid_from,expiration_date,verification_url,scope,certification_value,audit_date,initial_certification_dateandcertificate_countries; fields are listed in the OpenAPI document at/certifications/api/v1/openapi.json.verification_urlmust be an http(s) address of at most 200 characters. A product can hold each certification once; a second create answers409. - Update —
PATCHonly the fields to change, addressed by the certification’sid(not an assignment id). Sendnullto clear a date. - Delete — removes the certification from the product permanently.
- Read back — every write returns the saved assignment; list again to confirm.
403 for a read-only key, 404 for a product or assignment the caller cannot see,
409 for a duplicate, and 422 for an invalid value.
Notes
Record a certification only when the brand publishes it for this product or holds the certificate. A brand’s agent leavesverification_status alone: whether a certificate has
been checked against the issuing body’s registry is Closient’s to record.
The fields a brand writes on a certification are defined once on the model
(CertificationAssignment.BRAND_EDITABLE_FIELDS); both API schemas are pinned to that set.