TracePass
Regulatory assistant

Update compliance profile

Merges the provided fields into the stored compliance profile and returns the updated profile with `updatedAt`. Fields not included in the request are left unchanged. Set a field to `null` to remove it. Validated fields: `role` (`manufacturer`, `importer`, `distributor`, `authorised_representative`, `fulfilment_service_provider`), `ownBrand` (boolean), `categories` (array of template category keys), `markets` (array of ISO-3166-1 alpha-2 codes or `EU`), `products` (array of `{name, category, facts}`, at most 50), `sizeBand` (`sme` or `large`), `salesChannels` (array of `own_shop`, `marketplace`, `retail`, `b2b`, `fulfilment`), `dataSystems` (string, at most 200 chars). An invalid value returns 400 `invalid_input`.

PATCH/api/v1/company/compliance-profile
Download OpenAPI 3.1
PATCH/api/v1/company/compliance-profile

Update compliance profile

Merges the provided fields into the stored compliance profile and returns the updated profile with `updatedAt`. Fields not included in the request are left unchanged. Set a field to `null` to remove it. Validated fields: `role` (`manufacturer`, `importer`, `distributor`, `authorised_representative`, `fulfilment_service_provider`), `ownBrand` (boolean), `categories` (array of template category keys), `markets` (array of ISO-3166-1 alpha-2 codes or `EU`), `products` (array of `{name, category, facts}`, at most 50), `sizeBand` (`sme` or `large`), `salesChannels` (array of `own_shop`, `marketplace`, `retail`, `b2b`, `fulfilment`), `dataSystems` (string, at most 200 chars). An invalid value returns 400 `invalid_input`.

Auth: an API key or OAuth with `passports:write`. For OAuth principals, the user must have the `admin` or `owner` role (same rule as the dashboard compliance-profile page). API keys are not role-gated. Counts no scope answer (this is a profile write, not a regulatory query).

Headers

  • Authorizationrequired

    string

    `Bearer <token>` — either a `tp_` API key (Developer → API Keys; simplest, for server-to-server) or an OAuth 2.0 access token (Developer → OAuth Apps; for user-authorized apps, scoped + revocable). The Authentication page has the full OAuth flow and scope list.

    e.g. Bearer tp_REDACTED_xxxxxxxxxxxx

Body fields

  • role

    string

    Company's role in the supply chain — `manufacturer`, `importer`, `distributor`, `authorised_representative`, or `fulfilment_service_provider`.

    e.g. manufacturer

  • categories

    string[]

    Array of template category keys the company deals with.

  • markets

    string[]

    ISO-3166-1 alpha-2 country codes or `EU` for all EU markets.

  • sizeBand

    string

    Company size — `sme` or `large`.

    e.g. sme

Request

curl -sS https://app.tracepass.eu/api/v1/company/compliance-profile \
  -X PATCH \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"role":"manufacturer","categories":["battery"],"markets":["EU"],"sizeBand":"sme"}'

Response

{
  "complianceProfile": {
    "role": "manufacturer",
    "categories": ["battery"],
    "markets": ["EU"],
    "sizeBand": "sme"
  },
  "updatedAt": "2026-10-11T19:01:12.152Z"
}