Set up a test account in one call and drive shipments through every outcome.
These controls exist only on https://api-test.drop-hub.com with sandbox credentials. In production they answer 404 SANDBOX_ONLY. They require shipments:write (a shipments:read-only token gets 403).A sandbox driver accepts, collects, and delivers each shipment on its own — a delivery takes a few minutes.
curl -X POST "$BASE_URL/api/v2/external/sandbox/bootstrap" -H "Authorization: Bearer $ACCESS_TOKEN"
Creates the sandbox branch, the pickup location SANDBOX_PICKUP, coverage, pricing, and a sandbox driver. Safe to repeat. GET /api/v2/external/sandbox/readiness returns the same object without changing anything:
The sandbox driver reports a failed delivery from the drop-off point. The shipment must be carried by the sandbox driver (picked up or out for delivery); otherwise 409 SANDBOX_DRIVER_NOT_CARRYING_SHIPMENT. The result is FAILED, a shipment.failed event, and a DELIVERY_FAILED incident. Read the shipment for failureReasonCode — the response to this call currently leaves it null.
curl -X POST "$BASE_URL/api/v2/external/sandbox/reset" -H "Authorization: Bearer $ACCESS_TOKEN"
Clears the sandbox state and increments generation.
Reset currently fails with 500 while a webhook is configured. Pause your webhook rather than relying on reset until this is fixed.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"DropHub External API","colors":{"primary":"#F0630F","light":"#F0630F","dark":"#D95609"},"logo":{"light":"https://mintcdn.com/drophub/qYk8Wm8U0QVU5HCy/images/logo.png?fit=max\u0026auto=format\u0026n=qYk8Wm8U0QVU5HCy\u0026q=85\u0026s=826b10e7d04c91ac183ed0c95172b175","dark":"https://mintcdn.com/drophub/qYk8Wm8U0QVU5HCy/images/logo.png?fit=max\u0026auto=format\u0026n=qYk8Wm8U0QVU5HCy\u0026q=85\u0026s=826b10e7d04c91ac183ed0c95172b175"},"favicon":{"light":"https://mintcdn.com/drophub/qYk8Wm8U0QVU5HCy/images/favicon.png?fit=max\u0026auto=format\u0026n=qYk8Wm8U0QVU5HCy\u0026q=85\u0026s=6d3f7b6ccb71216f430060104028f185","dark":"https://mintcdn.com/drophub/qYk8Wm8U0QVU5HCy/images/favicon.png?fit=max\u0026auto=format\u0026n=qYk8Wm8U0QVU5HCy\u0026q=85\u0026s=6d3f7b6ccb71216f430060104028f185"},"api":{"openapi":"openapi.yaml"},"navbar":{"links":[{"href":"mailto:hi@mintlify.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.mintlify.com"}},"footer":{"socials":{"x":"https://x.com/mintlify","github":"https://github.com/mintlify","linkedin":"https://linkedin.com/company/mintlify"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"drophub","hasAudioNarration":false,"actualSubdomain":"drophub","customDomains":["docs.drop-hub.com"],"gitSource":{"type":"github","owner":"abdualziz-techsea","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6a900253862b58b209399b2f","collectionId":"34b5af8c-ab9d-460f-a755-912fd58eb088","liveDeploymentHistoryId":"6a900253862b58b209399b2f","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae6376bf0613c360e9966b0","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API reference","count":11},{"language":"default","tag":"External Webhooks","count":5},{"language":"default","tag":"Shipments","count":3},{"language":"default","tag":"Getting Started","count":3},{"language":"default","tag":"External Shipments","count":3},{"language":"default","tag":"Authentication","count":2},{"language":"default","tag":"Request semantics","count":2},{"language":"default","tag":"External Tracking","count":2},{"language":"default","tag":"Events","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"sandbox","slug":"/sandbox","pageMetadata":{"title":"Sandbox","description":"Set up a test account in one call and drive shipments through every outcome.","href":"/sandbox"},"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: \"Set up a test account in one call and drive shipments through every outcome.\"\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={code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`These controls exist only on `,_jsx(_components.code,{children:`https://api-test.drop-hub.com`}),` with sandbox credentials. In production they answer `,_jsx(_components.code,{children:`404 SANDBOX_ONLY`}),`. They require `,_jsx(_components.code,{children:`shipments:write`}),` (a `,_jsx(_components.code,{children:`shipments:read`}),`-only token gets `,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsx(_components.p,{children:`A sandbox driver accepts, collects, and delivers each shipment on its own — a delivery takes a few minutes.`}),`\n`,_jsx(Heading,{level:`2`,id:`bootstrap`,children:`Bootstrap`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/api/v2/external/sandbox/bootstrap\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ACCESS_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Creates the sandbox branch, the pickup location `,_jsx(_components.code,{children:`SANDBOX_PICKUP`}),`, coverage, pricing, and a sandbox driver. Safe to repeat. `,_jsx(_components.code,{children:`GET /api/v2/external/sandbox/readiness`}),` returns the same object without changing anything:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`12`,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:`12`,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:` \"generation\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_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:` \"canCreateShipment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_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:` \"nextShipmentDispatchHeld\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_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:` \"branchCode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SANDBOX_BRANCH\"`}),_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:` \"pickupLocationCode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SANDBOX_PICKUP\"`}),_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:` \"pickup\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"latitude\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`24.713600`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"longitude\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`46.675300`}),_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:` \"delivery\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"latitude\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`24.774265`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"longitude\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`46.738586`}),_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:` \"destinationCityCode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"RUH\"`}),_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:` \"sandboxDriverPhone\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},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:` \"prerequisites\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [ { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"prerequisite\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"merchant\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"ready\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }, `}),_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},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`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`delivery`}),` is a destination that works out of the box.`]}),`\n`,_jsx(Heading,{level:`2`,id:`hold-the-next-dispatch`,children:`Hold the next dispatch`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/api/v2/external/sandbox/dispatch-holds\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ACCESS_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The next shipment you create stays `,_jsx(_components.code,{children:`CREATED`}),`, so you can test changes and cancellation before a driver accepts.`]}),`\n`,_jsx(Heading,{level:`2`,id:`fail-a-delivery`,children:`Fail a delivery`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/api/v2/external/sandbox/shipments/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$SHIPMENT_ID`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/delivery-failures\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ACCESS_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"reason\":\"CUSTOMER_UNAVAILABLE\"}'`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The sandbox driver reports a failed delivery from the drop-off point. The shipment must be carried by the sandbox driver (picked up or out for delivery); otherwise `,_jsx(_components.code,{children:`409 SANDBOX_DRIVER_NOT_CARRYING_SHIPMENT`}),`. The result is `,_jsx(_components.code,{children:`FAILED`}),`, a `,_jsx(_components.code,{children:`shipment.failed`}),` event, and a `,_jsx(_components.code,{children:`DELIVERY_FAILED`}),` incident. Read the shipment for `,_jsx(_components.code,{children:`failureReasonCode`}),` — the response to this call currently leaves it `,_jsx(_components.code,{children:`null`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`reset`,children:`Reset`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/api/v2/external/sandbox/reset\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ACCESS_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Clears the sandbox state and increments `,_jsx(_components.code,{children:`generation`}),`.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Reset currently fails with `,_jsx(_components.code,{children:`500`}),` while a webhook is configured. Pause your webhook rather than relying on reset until this is fixed.`]})})]})}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":"Sandbox","description":"Set up a test account in one call and drive shipments through every outcome.","href":"/sandbox"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Bootstrap","slug":"bootstrap","depth":2,"children":[]},{"title":"Hold the next dispatch","slug":"hold-the-next-dispatch","depth":2,"children":[]},{"title":"Fail a delivery","slug":"fail-a-delivery","depth":2,"children":[]},{"title":"Reset","slug":"reset","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"drophub","siteName":"DropHub External API","title":"Sandbox - DropHub External API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-31T18:46:08.678Z","originalFileLocation":"sandbox.mdx"},"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=\"Set up a test account in one call and drive shipments through every outcome.\">\u003cmeta data-mint-head name=\"application-name\" content=\"DropHub External API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/drophub/-u0AZn-QTgeIsg7H/_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/drophub/-u0AZn-QTgeIsg7H/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/drophub/-u0AZn-QTgeIsg7H/_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/drophub/-u0AZn-QTgeIsg7H/_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/drophub/-u0AZn-QTgeIsg7H/_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/drophub/-u0AZn-QTgeIsg7H/_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/drophub/-u0AZn-QTgeIsg7H/_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/drophub/-u0AZn-QTgeIsg7H/_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/drophub/-u0AZn-QTgeIsg7H/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Sandbox - DropHub External API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Set up a test account in one call and drive shipments through every outcome.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"DropHub External API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.drop-hub.com/sandbox\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://drophub.mintlify.app/_mintlify/api/og/v2?division=Getting+Started\u0026amp;title=Sandbox\u0026amp;description=Set+up+a+test+account+in+one+call+and+drive+shipments+through+every+outcome.\u0026amp;theme=5002099e9da6e761d875299b\u0026amp;signature=2bcc172f5c62a66cd96bda68f59f8db96a0b2c81ef7ee470543d3e71496c5365\">\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=\"Sandbox - DropHub External API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Set up a test account in one call and drive shipments through every outcome.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://drophub.mintlify.app/_mintlify/api/og/v2?division=Getting+Started\u0026amp;title=Sandbox\u0026amp;description=Set+up+a+test+account+in+one+call+and+drive+shipments+through+every+outcome.\u0026amp;theme=5002099e9da6e761d875299b\u0026amp;signature=2bcc172f5c62a66cd96bda68f59f8db96a0b2c81ef7ee470543d3e71496c5365\">\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/drophub/-u0AZn-QTgeIsg7H/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"DropHub External API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#F0630F\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.drop-hub.com/sandbox\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/sandbox.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.drop-hub.com/#organization\",\"name\":\"DropHub External API\",\"url\":\"https://docs.drop-hub.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/drophub/qYk8Wm8U0QVU5HCy/images/logo.png?fit=max\u0026auto=format\u0026n=qYk8Wm8U0QVU5HCy\u0026q=85\u0026s=826b10e7d04c91ac183ed0c95172b175\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.drop-hub.com#website\",\"name\":\"DropHub External API\",\"url\":\"https://docs.drop-hub.com\",\"publisher\":{\"@id\":\"https://docs.drop-hub.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.drop-hub.com/sandbox#webpage\",\"url\":\"https://docs.drop-hub.com/sandbox\",\"name\":\"Sandbox\",\"description\":\"Set up a test account in one call and drive shipments through every outcome.\",\"dateModified\":\"2026-10-31T18:46:08.678Z\",\"isPartOf\":{\"@id\":\"https://docs.drop-hub.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.drop-hub.com/sandbox#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.drop-hub.com/sandbox#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Getting Started\",\"item\":\"https://docs.drop-hub.com/quickstart\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sandbox\",\"item\":\"https://docs.drop-hub.com/sandbox\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.drop-hub.com/sandbox#article\",\"headline\":\"Sandbox\",\"name\":\"Sandbox\",\"description\":\"Set up a test account in one call and drive shipments through every outcome.\",\"url\":\"https://docs.drop-hub.com/sandbox\",\"mainEntityOfPage\":{\"@id\":\"https://docs.drop-hub.com/sandbox#webpage\"},\"dateModified\":\"2026-10-31T18:46:08.678Z\",\"publisher\":{\"@id\":\"https://docs.drop-hub.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.drop-hub.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"DropHub External API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"DropHub External API","nav":{"global":null,"groups":[{"group":"Getting Started","pages":[{"title":"Quickstart","href":"/quickstart"},{"title":"DropHub External API","sidebarTitle":"Overview","href":"/overview"},{"title":"Environments","description":"Two deployments, two sets of credentials, one contract.","href":"/environments"},{"title":"Sandbox","href":"/sandbox"}]},{"group":"Authentication","pages":[{"title":"Authentication","description":"OAuth 2.0 client credentials, scopes, and how tokens behave.","href":"/authentication"}]},{"group":"Shipments","pages":[{"title":"Shipments","href":"/shipments"},{"title":"Locations, quotes, and availability","href":"/availability"},{"title":"Tracking","href":"/tracking"},{"title":"Cancellation","href":"/cancellation"}]},{"group":"Events","pages":[{"title":"Webhooks","href":"/webhooks"}]},{"group":"Request semantics","pages":[{"title":"Idempotency and ETags","href":"/idempotency-and-etags"},{"title":"Errors","href":"/errors"}]},{"group":"API reference","pages":[{"group":"Authentication","pages":[{"title":"OAuth 2.0 client-credentials token issuance for machine integrations","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/v2/oauth/token","href":"/api-reference/authentication/oauth-20-client-credentials-token-issuance-for-machine-integrations"},{"title":"Public OAuth token verification keys (RFC 7517)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/oauth/jwks.json","href":"/api-reference/authentication/public-oauth-token-verification-keys-rfc-7517"}]},{"group":"Sandbox","pages":[{"title":"Idempotently provision this merchant's complete sandbox fixture","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/v2/external/sandbox/bootstrap","href":"/api-reference/sandbox/idempotently-provision-this-merchants-complete-sandbox-fixture"},{"title":"Read this merchant's sandbox readiness checklist","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/external/sandbox/readiness","href":"/api-reference/sandbox/read-this-merchants-sandbox-readiness-checklist"},{"title":"Reset only the calling merchant's sandbox integration fixtures","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/v2/external/sandbox/reset","href":"/api-reference/sandbox/reset-only-the-calling-merchants-sandbox-integration-fixtures"},{"title":"Keep the next sandbox shipment before the driver-offer boundary","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/v2/external/sandbox/dispatch-holds","href":"/api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary"},{"title":"Have the sandbox driver report a delivery as failed","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/v2/external/sandbox/shipments/{shipmentId}/delivery-failures","href":"/api-reference/sandbox/have-the-sandbox-driver-report-a-delivery-as-failed"}]},{"group":"External Shipments","pages":[{"title":"Quote a merchant delivery fee that is honoured for 15 minutes","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/v2/external/quotes","href":"/api-reference/external-shipments/quote-a-merchant-delivery-fee-that-is-honoured-for-15-minutes"},{"title":"Create one shipment from a merchant reference and two location pins","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/v2/external/shipments","href":"/api-reference/external-shipments/create-one-shipment-from-a-merchant-reference-and-two-location-pins"},{"title":"Check current pickup, merchant coverage and carrier availability","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/v2/external/serviceability","href":"/api-reference/external-shipments/check-current-pickup-merchant-coverage-and-carrier-availability"},{"title":"Read one merchant-owned shipment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/external/shipments/{shipmentId}","href":"/api-reference/external-shipments/read-one-merchant-owned-shipment"},{"title":"Change the destination or recipient of an own Direct API shipment","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/v2/external/shipments/{shipmentId}","href":"/api-reference/external-shipments/change-the-destination-or-recipient-of-an-own-direct-api-shipment"},{"title":"Loss, damage and failed-delivery incidents of an owned shipment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/external/shipments/{shipmentId}/incidents","href":"/api-reference/external-shipments/loss-damage-and-failed-delivery-incidents-of-an-owned-shipment"},{"title":"Read one evidence file attached to an incident of an owned shipment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/external/shipments/{shipmentId}/incidents/evidence/{assetId}","href":"/api-reference/external-shipments/read-one-evidence-file-attached-to-an-incident-of-an-owned-shipment"},{"title":"Where DropHub's delivery companies deliver, combined","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/external/coverage/areas","href":"/api-reference/external-shipments/where-drophubs-delivery-companies-deliver-combined"},{"title":"List the merchant's pickup locations and their collection hours","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/external/pickup-locations","href":"/api-reference/external-shipments/list-the-merchants-pickup-locations-and-their-collection-hours"},{"title":"Cancel before physical pickup","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/v2/external/shipments/{shipmentId}/cancel","href":"/api-reference/external-shipments/cancel-before-physical-pickup"},{"title":"Read protected proof metadata for an owned shipment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/external/shipments/{shipmentId}/proof","href":"/api-reference/external-shipments/read-protected-proof-metadata-for-an-owned-shipment"},{"title":"Read one protected proof asset for an owned shipment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/external/shipments/{shipmentId}/proof/{stage}/content","href":"/api-reference/external-shipments/read-one-protected-proof-asset-for-an-owned-shipment"}]},{"group":"External Tracking","pages":[{"title":"Read partner-safe shipment progress and available driver location","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/external/shipments/{shipmentId}/tracking","href":"/api-reference/external-tracking/read-partner-safe-shipment-progress-and-available-driver-location"},{"title":"Read customer-safe progress through a time-bound bearer link","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/public/tracking/{code}","href":"/api-reference/external-tracking/read-customer-safe-progress-through-a-time-bound-bearer-link"},{"title":"Read customer-safe progress through the waybill number printed on the label","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/public/tracking/waybills/{shipmentNumber}","href":"/api-reference/external-tracking/read-customer-safe-progress-through-the-waybill-number-printed-on-the-label"}]},{"group":"External Webhooks","pages":[{"title":"Read the merchant's webhook configuration","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/external/webhook","href":"/api-reference/external-webhooks/read-the-merchants-webhook-configuration"},{"title":"Configure the merchant's single shipment webhook","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/v2/external/webhook","href":"/api-reference/external-webhooks/configure-the-merchants-single-shipment-webhook"},{"title":"Remove the merchant's webhook configuration","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/v2/external/webhook","href":"/api-reference/external-webhooks/remove-the-merchants-webhook-configuration"},{"title":"Change callback URL, events, or pause state","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/v2/external/webhook","href":"/api-reference/external-webhooks/change-callback-url-events-or-pause-state"},{"title":"Rotate the HMAC secret with a 24-hour overlap","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/v2/external/webhook/secret-rotations","href":"/api-reference/external-webhooks/rotate-the-hmac-secret-with-a-24-hour-overlap"}]}]}]},"basePath":"","title":"Sandbox - DropHub External API","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}