{"items":[{"type":"link","label":"Webhooks Specification","link":"/connect/webhooks/versions/2025.1/openapi","routeSlug":"/connect/webhooks/versions/2025.1/openapi","content":{"contentType":"overview","meta":{"name":"Webhooks Specification"},"children":[{"nodeType":"container","panels":[{"title":"Download OpenAPI description","titleTranslationKey":"download.description.title","children":[{"kind":"download","label":"openapi.json","url":"/_bundle/connect/webhooks/versions/2025.1/openapi.json?download"},{"kind":"download","label":"openapi.yaml","url":"/_bundle/connect/webhooks/versions/2025.1/openapi.yaml?download"}]},{"title":"Overview","titleTranslationKey":"info.title","children":[]},{"title":"Languages","titleTranslationKey":"languages.title","children":[{"kind":"languages","options":[{"key":"curl","title":"curl","lang":"curl"},{"key":"javascript","title":"JavaScript","lang":"JavaScript"},{"key":"node","title":"Node.js","lang":"Node.js"},{"key":"python","title":"Python","lang":"Python"},{"key":"java","title":"Java","lang":"Java"},{"key":"csharp","title":"C#","lang":"C#"},{"key":"php","title":"PHP","lang":"PHP"},{"key":"go","title":"Go","lang":"Go"},{"key":"ruby","title":"Ruby","lang":"Ruby"},{"key":"r","title":"R","lang":"R"},{"key":"payload","title":"Payload","lang":"Payload"}]}]}],"children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"header","level":1,"label":"Webhooks Specification (2025.1)","showPageActions":true},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":"This specification covers the webhook events available on the Scurri platform.\nEach definition includes a description of when an event is triggered and the payload that will be sent to the configured endpoint.\n\nWebhooks can be configured and managed on the Scurri UI."}],"sectionId":"/connect/webhooks/versions/2025.1/openapi"}],"sectionId":"/connect/webhooks/versions/2025.1/openapi"}]}]}},{"type":"group","label":"Consignments","link":"/connect/webhooks/versions/2025.1/openapi/consignments","routeSlug":"/connect/webhooks/versions/2025.1/openapi/consignments","items":[{"label":"Proof of Delivery","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":true,"type":"link","link":"/connect/webhooks/versions/2025.1/openapi/consignments/proof_of_delivery_update","routeSlug":"/connect/webhooks/versions/2025.1/openapi/consignments/proof_of_delivery_update","metadata":{"seo":{"title":"Proof of Delivery","description":"Triggered when Scurri retrieves a Proof of Delivery document from a carrier. The payload includes a direct link to retrieve the file, and extra consignment related information."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"proof_of_delivery_update","name":"Proof of Delivery","isWebhook":true,"pointer":"/paths/ProofOfDelivery/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Proof of Delivery","isWebhook":true,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Triggered when Scurri retrieves a Proof of Delivery document from a carrier. \nThe payload includes a direct link to retrieve the file, and extra consignment related information.\n"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ProofOfDeliveryResponse"}},"schemaId":"components/schemas/ProofOfDeliveryResponse","pointer":"/paths/ProofOfDelivery/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"webhook","method":"POST","path":"ProofOfDelivery","servers":[{"url":"/"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[],"requestBody":{"application/json":{"schemaId":"components/schemas/ProofOfDeliveryResponse"}},"responseCodes":["200"],"pointer":"ProofOfDelivery","href":"consignments/proof_of_delivery_update","openApiOperationId":"proof_of_delivery_update","summary":"Proof of Delivery"},"isWebhook":true,"hideReplay":false,"schemaId":"components/schemas/ProofOfDeliveryResponse","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ProofOfDeliveryResponse"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Return a 200 response to acknowledge receipt of the webhook."}],"pointer":"/paths/ProofOfDelivery/post/responses"}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/consignments/proof_of_delivery_update"}],"panels":[]}]},"httpPath":"ProofOfDelivery"}],"content":{"contentType":"group","meta":{"name":"Consignments"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Consignments","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Receive webhook notifications for supported consignment events, so your system can react in real time."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Currently, the following event is supported:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Proof of Delivery (POD): Triggered when Scurri successfully retrieves a proof of delivery document from a carrier."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Please refer to the sections below for detailed payload specifications."},"children":[]}]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Webhooks","titleTranslationKey":"webhooks","items":[{"title":"ProofOfDelivery","summary":"Proof of Delivery","prefix":{"name":"post","color":"post"},"badges":[],"link":"/consignments/proof_of_delivery_update","deprecated":false}]}]}]}]}},{"type":"group","label":"Tracking","link":"/connect/webhooks/versions/2025.1/openapi/tracking","routeSlug":"/connect/webhooks/versions/2025.1/openapi/tracking","items":[{"label":"Tracking Update","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":true,"type":"link","link":"/connect/webhooks/versions/2025.1/openapi/tracking/tracking_update","routeSlug":"/connect/webhooks/versions/2025.1/openapi/tracking/tracking_update","metadata":{"seo":{"title":"Tracking Update","description":"A webhook that is triggered when one or more tracking updates are received from the carrier."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"tracking_update","name":"Tracking Update","isWebhook":true,"pointer":"/paths/TrackingUpdate/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Tracking Update","isWebhook":true,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"A webhook that is triggered when one or more tracking updates are received from the carrier.\n"},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ReceivedTrackingUpdates"}},"schemaId":"components/schemas/ReceivedTrackingUpdates","pointer":"/paths/TrackingUpdate/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"webhook","method":"POST","path":"TrackingUpdate","servers":[{"url":"/"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[],"requestBody":{"application/json":{"schemaId":"components/schemas/ReceivedTrackingUpdates"}},"responseCodes":["200"],"pointer":"TrackingUpdate","href":"tracking/tracking_update","openApiOperationId":"tracking_update","summary":"Tracking Update"},"isWebhook":true,"hideReplay":false,"schemaId":"components/schemas/ReceivedTrackingUpdates","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/ReceivedTrackingUpdates"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Return a 200 response to acknowledge receipt of the webhook."}],"pointer":"/paths/TrackingUpdate/post/responses"}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/tracking/tracking_update"}],"panels":[]}]},"httpPath":"TrackingUpdate"}],"content":{"contentType":"group","meta":{"name":"Tracking"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Tracking","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Receive webhook notifications for supported tracking events, so your system can react in real time."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Currently, the following event is supported:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Tracking Update: Triggered when Scurri processes tracking updates received from carriers."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Please refer to the sections below for detailed payload specifications."},"children":[]}]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Webhooks","titleTranslationKey":"webhooks","items":[{"title":"TrackingUpdate","summary":"Tracking Update","prefix":{"name":"post","color":"post"},"badges":[],"link":"/tracking/tracking_update","deprecated":false}]}]}]}]}}],"store":{"schemaStore":{"components/schemas/WebhookStandardFields":{"id":"components/schemas/WebhookStandardFields","kind":"json-schema","title":"WebhookStandardFields","data":{"required":["event_type","event_id","payload_version"],"type":"object","properties":{"event_type":{"type":"string","description":"The type of event that triggered the webhook.","maxLength":255,"example":"proof_of_delivery"},"event_id":{"type":"string","description":"A unique identifier for the event.","example":"AB12C3"},"payload_version":{"type":"string","example":"2025.1","maxLength":10,"description":"The version of the payload schema."}}}},"components/schemas/ProofOfDeliveryResponse":{"id":"components/schemas/ProofOfDeliveryResponse","kind":"json-schema","title":"ProofOfDeliveryResponse","data":{"allOf":[{"$ref":"#/components/schemas/WebhookStandardFields"},{"type":"object","properties":{"payload":{"$ref":"#/components/schemas/ProofOfDeliveryDocuments"}}}]}},"components/schemas/ProofOfDeliveryDocuments":{"id":"components/schemas/ProofOfDeliveryDocuments","kind":"json-schema","title":"ProofOfDeliveryDocuments","data":{"type":"array","items":{"$ref":"#/components/schemas/ProofOfDeliveryDocument"}}},"components/schemas/ProofOfDeliveryDocument":{"id":"components/schemas/ProofOfDeliveryDocument","kind":"json-schema","title":"ProofOfDeliveryDocument","data":{"type":"object","description":"Proof of delivery document details (image or signature). Always linked to a consignment; linked to a package if supported by the carrier.","required":["document_id","document_url","file_type","proof_of_delivery_type","consignment_identifier","order_number","carrier","service_id"],"properties":{"document_id":{"type":"string","description":"The unique identifier for the proof of delivery document.","example":"AB12C3"},"document_url":{"type":"string","format":"uri","description":"A temporary URL to retrieve the proof of delivery document. Expires after 72 hours.","example":"https://example.com/storage/document-with-unique-name.pdf?signature=sample-signature"},"file_type":{"type":"string","description":"The file type of the proof of delivery document.","enum":["image/jpeg","image/png","application/pdf","image/svg+xml"],"example":"image/jpeg"},"proof_of_delivery_type":{"type":"string","description":"The type of proof of delivery (e.g., image, signature).","maxLength":9,"enum":["image","signature"],"example":"signature"},"consignment_identifier":{"type":"string","description":"The identifier of the consignment.","example":"2154321","maxLength":255},"order_number":{"type":"string","description":"The order number of the consignment.","example":"order-12345","maxLength":255},"package_tracking_number":{"type":"string","description":"The tracking number for the package. Optional; only populated if provided by the carrier alongside the proof of delivery.","example":"JD014600003281234567","maxLength":50},"package_reference":{"type":"string","description":"The reference for the package.","example":"ref-12345","maxLength":255},"carrier":{"type":"string","description":"The name of the carrier who shipped the consignment.","example":"DHL","maxLength":64},"service_id":{"type":"string","description":"Service identifier (e.g., carrier and service name).","maxLength":128,"example":"Generic Carrier|Next Day"}}}},"components/schemas/Event":{"id":"components/schemas/Event","kind":"json-schema","title":"Event","data":{"type":"object","required":["timestamp","status"],"properties":{"status":{"type":"string","maxLength":25,"description":"The status Scurri assigns to the tracking event.","example":"DELIVERED"},"description":{"type":"string","maxLength":500,"description":"A description of the tracking event.","example":"The package was delivered to the recipient."},"timestamp":{"type":"string","description":"The timestamp when the tracking event occurred.","example":"2025-10-01T14:30:00"},"carrier_code":{"type":"string","maxLength":50,"description":"The event code provided by the carrier.","example":"EVD"},"location":{"type":"string","maxLength":255,"description":"The location where the event took place.","example":"London"}}}},"components/schemas/Events":{"id":"components/schemas/Events","kind":"json-schema","title":"Events","data":{"type":"array","items":{"$ref":"#/components/schemas/Event"}}},"components/schemas/TrackingUpdate":{"id":"components/schemas/TrackingUpdate","kind":"json-schema","title":"TrackingUpdate","data":{"type":"object","required":["tracking_number","consignment_identifier","consignment_number","order_number","id","carrier","events"],"properties":{"tracking_number":{"type":"string","description":"The tracking number of the package the tracking update is associated with.","maxLength":50,"example":"JD014600003281234567"},"consignment_identifier":{"type":"string","maxLength":255,"description":"The identifier of the consignment.","example":"ab12345"},"consignment_number":{"type":"string","maxLength":255,"description":"The consignment number of the consignment.","example":"000000000008108293"},"order_number":{"type":"string","description":"The order number of the consignment.","example":"order-12345"},"id":{"type":"integer","description":"The internal parcel identifier from our tracking system.","example":1234567890},"carrier":{"type":"string","maxLength":50,"description":"The name of the carrier who provided this tracking update.","example":"DHL"},"events":{"$ref":"#/components/schemas/Events"}}}},"components/schemas/TrackingUpdates":{"id":"components/schemas/TrackingUpdates","kind":"json-schema","title":"TrackingUpdates","data":{"type":"array","items":{"$ref":"#/components/schemas/TrackingUpdate"}}},"components/schemas/ReceivedTrackingUpdates":{"id":"components/schemas/ReceivedTrackingUpdates","kind":"json-schema","title":"ReceivedTrackingUpdates","data":{"allOf":[{"$ref":"#/components/schemas/WebhookStandardFields"},{"type":"object","properties":{"event_type":{"type":"string","description":"The type of event that triggered the webhook.","maxLength":255,"example":"tracking_update"},"carrier_slug":{"type":"string","maxLength":50,"description":"The slug of the carrier that provided the tracking update.","example":"dhl"},"count":{"type":"integer","description":"The number of packages (tracking updates) in the response.","example":1},"trackings":{"$ref":"#/components/schemas/TrackingUpdates"}}}]}}},"exampleStore":{},"securitySchemeStore":{},"specType":"openapi"},"options":{"schemasExpansionLevel":2,"mockServer":{"off":true},"disableRouter":true,"downloadUrls":[{"url":"/_bundle/connect/webhooks/versions/2025.1/openapi.json?download"},{"url":"/_bundle/connect/webhooks/versions/2025.1/openapi.yaml?download"}],"excludeFromSearch":false,"replayFeatures":{"graphql":false},"specType":"openapi","markdocOptions":{"tags":{},"nodes":{},"components":{}},"metadata":{"title":"Webhooks Specification","description":"This specification covers the webhook events available on the Scurri platform.\nEach definition includes a description of when an event is triggered and the payload that will be sent to the configured endpoint.\n\nWebhooks can be configured and managed on the Scurri UI.\n"}},"baseSlug":"/connect/webhooks/versions/2025.1/openapi","routesMapping":{}}