The table below shows the state transitions you may receive:
state.primary
state.supplement
Meaning
QC
PENDING
Photos submitted, under quality review
QC
REJECTED
Photos failed quality review — a media_rejected event follows with details
QC
APPROVED
Photos passed QC, authentication starting
UNDERWAY
ASSIGNED
Authenticator assigned
COMPLETE
APPROVED
Item is authentic
COMPLETE
REJECTED
Item is not authentic
The most important transition is COMPLETE + APPROVED or COMPLETE + REJECTED — this is the final authentication result. See Service Request States for the full state machine.Using the TypeScript SDK (v0.2.0+), you can check these with isAuthentic(event) and isCounterfeit(event) instead of comparing strings manually. See Handling Webhooks.
Sent when uploaded images fail quality control. Each rejected image includes the side UUID and the rejection reason. Use that UUID when uploading the replacement photo.
{ "event_type": "media_rejected", "sr_uuid": "b16c763b-1723-455d-ba29-164418044886", "reference_id": "YOUR-INTERNAL-ITEM-ID", "sides": [ { "side": "ec883c70-f896-47c9-81b6-8d6ff0b5856a", "reason": "Image is Blurry", "message": "The submitted image is too blurry. Please capture a clearer photo, ensuring minimal motion for better accuracy." }, { "side": "7b2e1c40-6a18-4d3f-9c55-1e8f0a2b4d66", "reason": "Insufficient Lighting", "message": "The lighting in the submitted image is insufficient. Please take a new photo with better lighting for improved visibility." } ], "timestamp": "2026-02-10T12:15:00.000Z"}
Rejection reason. These are human-readable strings from the Legitmark reasons database (e.g. "Image is Blurry", "Insufficient Lighting"). Values may change as new reasons are added.
When you receive a media_rejected event, the service request is QC / REJECTED. Upload a new photo for each entry in sides, using side as the side UUID, then call POST /api/v2/sr/{sr_uuid}/resubmit. That call moves the request back to QC / PENDING.POST /submit applies only while the service request is DRAFT. From QC / REJECTED it returns 400 with Cannot submit: Service request is not in DRAFT state.
Using the TypeScript SDK, needsResubmission(event) returns true for this event type. See Handling Webhooks.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Legitmark","colors":{"primary":"#000000","light":"#ffffff","dark":"#ffffff"},"logo":{"light":"https://cdn.legitmark.com/brand/logos/wordmark-black.svg","dark":"https://cdn.legitmark.com/brand/logos/wordmark-white.svg","href":"https://legitmark.com"},"favicon":"https://mintcdn.com/legitmark/rJtgqPeT6XiAE-FP/favicon-96x96.png?fit=max\u0026auto=format\u0026n=rJtgqPeT6XiAE-FP\u0026q=85\u0026s=ff16211b2157a8b1ba0862796d1c0f06","api":{"params":{"expanded":"all","post":["nullable"]},"playground":{"display":"interactive","proxy":true},"examples":{"defaults":"all","languages":["curl","javascript","python","go"],"prefill":true,"autogenerate":true},"url":"full"},"seo":{"metatags":{"robots":"noindex, nofollow","googlebot":"noindex, nofollow","description":"Legitmark API Platform Documentation - Complete API reference for luxury item authentication and verification services","og:title":"Legitmark API Platform Documentation","og:description":"Complete API reference for luxury item authentication and verification services","og:type":"website","twitter:card":"summary","twitter:title":"Legitmark API Platform Documentation","twitter:description":"Complete API reference for luxury item authentication and verification services"}},"fonts":{"family":"Inter"},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":"api-reference/introduction"},{"language":"cn","href":"cn/api-reference/introduction"},{"language":"ja","href":"ja/api-reference/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"legitmark","hasAudioNarration":false,"actualSubdomain":"legitmark","customDomains":["docs.legitmark.com"],"gitSource":{"type":"github","owner":"legitmark-eng","repo":"legitmark-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6abcf2502d1325c80041be78","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API リファレンス","count":20},{"language":"default","tag":"Taxonomy","count":11},{"language":"en","tag":"Knowledge Base","count":7},{"language":"cn","tag":"知识库","count":7},{"language":"ja","tag":"ナレッジベース","count":7},{"language":"default","tag":"Service Requests","count":6},{"language":"en","tag":"API Reference","count":3},{"language":"en","tag":"Getting Started","count":3},{"language":"en","tag":"Webhook Reference","count":3},{"language":"cn","tag":"API 参考","count":3},{"language":"cn","tag":"入门指南","count":3},{"language":"cn","tag":"Webhook 参考","count":3},{"language":"ja","tag":"API リファレンス","count":3},{"language":"ja","tag":"はじめに","count":3},{"language":"ja","tag":"Webhook リファレンス","count":3},{"language":"default","tag":"Media Management","count":3}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#navbar .logo img{height:24px!important;width:auto!important}.navbar-logo img{height:24px!important;width:auto!important}img[src*=\"wordmark-\"]{height:24px!important;width:auto!important}.dark img[src*=\"wordmark-\"]{height:24px!important;width:auto!important}"}],"page":{"pagePath":"webhook-reference/events","slug":"/webhook-reference/events","pageMetadata":{"title":"Event Types","description":"Detailed payload schemas and field references for every Legitmark webhook event.","sidebarTitle":"Event Types","keywords":["webhook events","state_change","media_rejected","invalidate_sr","payload","schema"],"href":"/webhook-reference/events"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Detailed payload schemas and field references for every Legitmark webhook event.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Expandable,Heading,ResponseField,Table,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Legitmark sends three event types. Every webhook destination receives all events automatically.`}),`\n`,_jsx(Heading,{level:`2`,id:`state_change`,children:`state_change`}),`\n`,_jsx(_components.p,{children:`Sent when a service request transitions to a new state. This is the primary event for tracking authentication progress and results.`}),`\n`,_jsx(Heading,{level:`3`,id:`payload`,children:`Payload`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"event_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"state_change\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sr_uuid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"b16c763b-1723-455d-ba29-164418044886\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"reference_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR-INTERNAL-ITEM-ID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"state\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"primary\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"COMPLETE\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"supplement\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"APPROVED\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"timestamp\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-02-10T12:00:00.000Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`fields`,children:`Fields`}),`\n`,_jsx(ResponseField,{name:`event_type`,type:`string`,required:true,id:`param-event-type`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`\"state_change\"`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`sr_uuid`,type:`string`,required:true,id:`param-sr-uuid`,children:_jsx(_components.p,{children:`Service request UUID.`})}),`\n`,_jsx(ResponseField,{name:`reference_id`,type:`string | null`,id:`param-reference-id`,children:_jsxs(_components.p,{children:[`Your internal item ID — the `,_jsx(_components.code,{children:`external_id`}),` you set when creating the service request.`]})}),`\n`,_jsx(ResponseField,{name:`state`,type:`object`,required:true,id:`param-state`,children:_jsxs(Expandable,{title:`state properties`,children:[_jsx(ResponseField,{name:`primary`,type:`string`,required:true,id:`param-primary`,children:_jsx(_components.p,{children:`Primary state of the service request.`})}),_jsx(ResponseField,{name:`supplement`,type:`string | null`,id:`param-supplement`,children:_jsx(_components.p,{children:`Supplementary state detail providing additional context.`})})]})}),`\n`,_jsx(ResponseField,{name:`timestamp`,type:`string`,required:true,id:`param-timestamp`,children:_jsx(_components.p,{children:`ISO 8601 timestamp of when the state change occurred.`})}),`\n`,_jsx(Heading,{level:`3`,id:`state-transitions`,children:`State Transitions`}),`\n`,_jsx(_components.p,{children:`The table below shows the state transitions you may receive:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.code,{children:`state.primary`})}),_jsx(_components.th,{children:_jsx(_components.code,{children:`state.supplement`})}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`QC`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`PENDING`})}),_jsx(_components.td,{children:`Photos submitted, under quality review`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`QC`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`REJECTED`})}),_jsxs(_components.td,{children:[`Photos failed quality review — a `,_jsx(_components.code,{children:`media_rejected`}),` event follows with details`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`QC`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`APPROVED`})}),_jsx(_components.td,{children:`Photos passed QC, authentication starting`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`UNDERWAY`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ASSIGNED`})}),_jsx(_components.td,{children:`Authenticator assigned`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`COMPLETE`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`APPROVED`})}),_jsx(_components.td,{children:`Item is authentic`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`COMPLETE`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`REJECTED`})}),_jsx(_components.td,{children:`Item is not authentic`})]})]})]}),`\n`,_jsxs(Tip,{children:[_jsxs(_components.p,{children:[`The most important transition is `,_jsx(_components.code,{children:`COMPLETE`}),` + `,_jsx(_components.code,{children:`APPROVED`}),` or `,_jsx(_components.code,{children:`COMPLETE`}),` + `,_jsx(_components.code,{children:`REJECTED`}),` — this is the `,_jsx(_components.strong,{children:`final authentication result`}),`. See `,_jsx(_components.a,{href:`/partner/service-request-states`,children:`Service Request States`}),` for the full state machine.`]}),_jsxs(_components.p,{children:[`Using the TypeScript SDK (`,_jsx(_components.code,{children:`v0.2.0+`}),`), you can check these with `,_jsx(_components.code,{children:`isAuthentic(event)`}),` and `,_jsx(_components.code,{children:`isCounterfeit(event)`}),` instead of comparing strings manually. See `,_jsx(_components.a,{href:`/webhook-reference/handling`,children:`Handling Webhooks`}),`.`]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`media_rejected`,children:`media_rejected`}),`\n`,_jsx(_components.p,{children:`Sent when uploaded images fail quality control. Each rejected image includes the side UUID and the rejection reason. Use that UUID when uploading the replacement photo.`}),`\n`,_jsx(Heading,{level:`3`,id:`payload-2`,children:`Payload`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`18`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`18`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"event_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"media_rejected\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sr_uuid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"b16c763b-1723-455d-ba29-164418044886\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"reference_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR-INTERNAL-ITEM-ID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sides\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"side\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ec883c70-f896-47c9-81b6-8d6ff0b5856a\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"reason\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Image is Blurry\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"The submitted image is too blurry. Please capture a clearer photo, ensuring minimal motion for better accuracy.\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"side\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"7b2e1c40-6a18-4d3f-9c55-1e8f0a2b4d66\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"reason\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Insufficient Lighting\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"The lighting in the submitted image is insufficient. Please take a new photo with better lighting for improved visibility.\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"timestamp\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-02-10T12:15:00.000Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`fields-2`,children:`Fields`}),`\n`,_jsx(ResponseField,{name:`event_type`,type:`string`,required:true,id:`param-event-type-1`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`\"media_rejected\"`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`sr_uuid`,type:`string`,required:true,id:`param-sr-uuid-1`,children:_jsx(_components.p,{children:`Service request UUID.`})}),`\n`,_jsx(ResponseField,{name:`reference_id`,type:`string | null`,id:`param-reference-id-1`,children:_jsx(_components.p,{children:`Your internal item ID.`})}),`\n`,_jsxs(ResponseField,{name:`sides`,type:`array`,required:true,id:`param-sides`,children:[_jsx(_components.p,{children:`Array of rejected images with reasons.`}),_jsxs(Expandable,{title:`sides[] properties`,children:[_jsx(ResponseField,{name:`side`,type:`string`,required:true,id:`param-side`,children:_jsx(_components.p,{children:`Side UUID. This is the same UUID returned for the side on Get SR, and the value to pass when uploading the replacement photo.`})}),_jsx(ResponseField,{name:`reason`,type:`string`,required:true,id:`param-reason`,children:_jsxs(_components.p,{children:[`Rejection reason. These are human-readable strings from the Legitmark reasons database (e.g. `,_jsx(_components.code,{children:`\"Image is Blurry\"`}),`, `,_jsx(_components.code,{children:`\"Insufficient Lighting\"`}),`). Values may change as new reasons are added.`]})}),_jsx(ResponseField,{name:`message`,type:`string`,id:`param-message`,children:_jsx(_components.p,{children:`Extended description with guidance for the user on how to fix the issue.`})})]})]}),`\n`,_jsx(ResponseField,{name:`timestamp`,type:`string`,required:true,id:`param-timestamp-1`,children:_jsx(_components.p,{children:`ISO 8601 timestamp.`})}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`When you receive a `,_jsx(_components.code,{children:`media_rejected`}),` event, the service request is `,_jsx(_components.code,{children:`QC`}),` / `,_jsx(_components.code,{children:`REJECTED`}),`. Upload a new photo for each entry in `,_jsx(_components.code,{children:`sides`}),`, using `,_jsx(_components.code,{children:`side`}),` as the side UUID, then call `,_jsx(_components.a,{href:`/partner/workflow#resubmit-rejected-photos`,children:_jsx(_components.code,{children:`POST /api/v2/sr/{sr_uuid}/resubmit`})}),`. That call moves the request back to `,_jsx(_components.code,{children:`QC`}),` / `,_jsx(_components.code,{children:`PENDING`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`POST /submit`}),` applies only while the service request is `,_jsx(_components.code,{children:`DRAFT`}),`. From `,_jsx(_components.code,{children:`QC`}),` / `,_jsx(_components.code,{children:`REJECTED`}),` it returns `,_jsx(_components.code,{children:`400`}),` with `,_jsx(_components.code,{children:`Cannot submit: Service request is not in DRAFT state`}),`.`]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Using the TypeScript SDK, `,_jsx(_components.code,{children:`needsResubmission(event)`}),` returns `,_jsx(_components.code,{children:`true`}),` for this event type. See `,_jsx(_components.a,{href:`/webhook-reference/handling`,children:`Handling Webhooks`}),`.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`invalidate_sr`,children:`invalidate_sr`}),`\n`,_jsx(_components.p,{children:`Sent when a service request is cancelled.`}),`\n`,_jsx(Heading,{level:`3`,id:`payload-3`,children:`Payload`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"event_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"invalidate_sr\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sr_uuid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"b16c763b-1723-455d-ba29-164418044886\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"reference_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR-INTERNAL-ITEM-ID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"invalidation_reason\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"CANCELLED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Unsupported Product or SKU. The product or SKU provided isn't supported under our current service guidelines.\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"timestamp\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-02-10T14:30:00.000Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`fields-3`,children:`Fields`}),`\n`,_jsx(ResponseField,{name:`event_type`,type:`string`,required:true,id:`param-event-type-2`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`\"invalidate_sr\"`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`sr_uuid`,type:`string`,required:true,id:`param-sr-uuid-2`,children:_jsx(_components.p,{children:`Service request UUID.`})}),`\n`,_jsx(ResponseField,{name:`reference_id`,type:`string | null`,id:`param-reference-id-2`,children:_jsx(_components.p,{children:`Your internal item ID.`})}),`\n`,_jsx(ResponseField,{name:`invalidation_reason`,type:`object`,required:true,id:`param-invalidation-reason`,children:_jsxs(Expandable,{title:`invalidation_reason properties`,children:[_jsx(ResponseField,{name:`code`,type:`string`,required:true,id:`param-code`,children:_jsxs(_components.p,{children:[`Reason code. Currently always `,_jsx(_components.code,{children:`\"CANCELLED\"`}),`. Additional codes may be introduced in the future.`]})}),_jsxs(ResponseField,{name:`message`,type:`string`,required:true,id:`param-message-1`,children:[_jsx(_components.p,{children:`The specific cancellation reason. Common values include:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\"Unsupported Product or SKU. The product or SKU provided isn't supported under our current service guidelines.\"`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\"Unsupported Channel\"`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\"Service Request Inactivity\"`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\"Duplicate Service Request\"`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\"Insufficient Product Information\"`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\"Customer Requested Cancellation\"`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`\"Poor Image Quality or Unusable Media\"`})}),`\n`]}),_jsx(_components.p,{children:`Custom free-text reasons may also appear.`})]})]})}),`\n`,_jsx(ResponseField,{name:`timestamp`,type:`string`,required:true,id:`param-timestamp-2`,children:_jsx(_components.p,{children:`ISO 8601 timestamp.`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Event Types","description":"Detailed payload schemas and field references for every Legitmark webhook event.","sidebarTitle":"Event Types","keywords":["webhook events","state_change","media_rejected","invalidate_sr","payload","schema"],"href":"/webhook-reference/events"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"state_change","slug":"state_change","depth":2,"children":[{"title":"Payload","slug":"payload","depth":3,"children":[]},{"title":"Fields","slug":"fields","depth":3,"children":[]},{"title":"State Transitions","slug":"state-transitions","depth":3,"children":[]}]},{"title":"media_rejected","slug":"media_rejected","depth":2,"children":[{"title":"Payload","slug":"payload-2","depth":3,"children":[]},{"title":"Fields","slug":"fields-2","depth":3,"children":[]}]},{"title":"invalidate_sr","slug":"invalidate_sr","depth":2,"children":[{"title":"Payload","slug":"payload-3","depth":3,"children":[]},{"title":"Fields","slug":"fields-3","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"legitmark","siteName":"Legitmark","title":"Legitmark API Platform Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/webhook-reference/events","matchLevel":0},"cn":{"href":"/cn/webhook-reference/events","matchLevel":1},"ja":{"href":"/ja/webhook-reference/events","matchLevel":1}}},"lastModified":"2026-09-30T11:28:24.245Z","originalFileLocation":"webhook-reference/events.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Detailed payload schemas and field references for every Legitmark webhook event.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Legitmark\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"noindex, nofollow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/legitmark/eEZyLo9Osoli7y-r/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/legitmark/eEZyLo9Osoli7y-r/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/legitmark/eEZyLo9Osoli7y-r/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/legitmark/eEZyLo9Osoli7y-r/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/legitmark/eEZyLo9Osoli7y-r/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/legitmark/eEZyLo9Osoli7y-r/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/legitmark/eEZyLo9Osoli7y-r/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/legitmark/eEZyLo9Osoli7y-r/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/legitmark/eEZyLo9Osoli7y-r/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Legitmark API Platform Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Complete API reference for luxury item authentication and verification services\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Legitmark\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.legitmark.com/webhook-reference/events\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://legitmark.mintlify.site/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Event+Types\u0026amp;description=Detailed+payload+schemas+and+field+references+for+every+Legitmark+webhook+event.\u0026amp;theme=c0dd5c059c10ad502c84cf13\u0026amp;signature=95efdde5eac5d74ebaf2296dc7e225955d54b61c5a909bc9a95d5f39d22dec04\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Legitmark API Platform Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Complete API reference for luxury item authentication and verification services\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://legitmark.mintlify.site/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Event+Types\u0026amp;description=Detailed+payload+schemas+and+field+references+for+every+Legitmark+webhook+event.\u0026amp;theme=c0dd5c059c10ad502c84cf13\u0026amp;signature=95efdde5eac5d74ebaf2296dc7e225955d54b61c5a909bc9a95d5f39d22dec04\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/legitmark/eEZyLo9Osoli7y-r/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Legitmark\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003cmeta data-mint-head name=\"googlebot\" content=\"noindex, nofollow\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.legitmark.com/webhook-reference/events\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/webhook-reference/events.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.legitmark.com/#organization\",\"name\":\"Legitmark\",\"url\":\"https://docs.legitmark.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://cdn.legitmark.com/brand/logos/wordmark-black.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.legitmark.com#website\",\"name\":\"Legitmark\",\"url\":\"https://docs.legitmark.com\",\"publisher\":{\"@id\":\"https://docs.legitmark.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.legitmark.com/webhook-reference/events#webpage\",\"url\":\"https://docs.legitmark.com/webhook-reference/events\",\"name\":\"Event Types\",\"description\":\"Detailed payload schemas and field references for every Legitmark webhook event.\",\"dateModified\":\"2026-09-30T11:28:24.245Z\",\"isPartOf\":{\"@id\":\"https://docs.legitmark.com#website\"}},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.legitmark.com/webhook-reference/events#article\",\"headline\":\"Event Types\",\"name\":\"Event Types\",\"description\":\"Detailed payload schemas and field references for every Legitmark webhook event.\",\"url\":\"https://docs.legitmark.com/webhook-reference/events\",\"mainEntityOfPage\":{\"@id\":\"https://docs.legitmark.com/webhook-reference/events#webpage\"},\"dateModified\":\"2026-09-30T11:28:24.245Z\",\"keywords\":\"webhook events, state_change, media_rejected, invalidate_sr, payload, schema\",\"publisher\":{\"@id\":\"https://docs.legitmark.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.legitmark.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Legitmark\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Legitmark","nav":{"global":null,"languages":[{"language":"en","anchors":[{"anchor":"API Reference","icon":"code","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"anchor":"Webhook Reference","icon":"webhook","pages":[{"title":"Webhooks Introduction","description":"Receive real-time notifications when authentication status changes, images are rejected, or service requests are invalidated.","sidebarTitle":"Introduction","href":"/webhook-reference/introduction"},{"title":"Event Types","sidebarTitle":"Event Types","href":"/webhook-reference/events"},{"title":"Handling Webhooks","description":"Code examples, best practices, and implementation guidance for processing Legitmark webhook events.","sidebarTitle":"Handling \u0026 Best Practices","href":"/webhook-reference/handling"}]},{"anchor":"Knowledge Base","icon":"book-open","pages":[{"title":"Knowledge Base","href":"/partner/getting-started"}]}]},{"language":"cn","pages":[{"title":"cn","href":"/cn/webhook-reference/events"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/webhook-reference/events"}]}]},"basePath":"","title":"Legitmark API Platform Documentation","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}