{
"type": "https://api.drophub.example/problems/authentication-required",
"title": "Authentication required",
"status": 401,
"detail": "Authentication is required for this resource.",
"instance": "/api/v2/external/shipments/018f2d8a-1f00-7000-8000-000000000206",
"code": "AUTHENTICATION_REQUIRED",
"timestamp": "2026-08-22T18:30:00Z",
"correlationId": "018f2d8a-1f00-7000-8000-000000000207",
"requestId": "018f2d8a-1f00-7000-8000-000000000208"
}
{
"type": "https://api.drophub.example/problems/access-denied",
"title": "Access denied",
"status": 403,
"detail": "Access to this resource is denied.",
"instance": "/api/v2/external/shipments/018f2d8a-1f00-7000-8000-000000000206",
"code": "ACCESS_DENIED",
"timestamp": "2026-08-22T18:30:00Z",
"correlationId": "018f2d8a-1f00-7000-8000-000000000207",
"requestId": "018f2d8a-1f00-7000-8000-000000000208"
}
{
"type": "https://api.drophub.example/problems/access-denied",
"title": "Access denied",
"status": 403,
"detail": "Access to this resource is denied.",
"instance": "/api/v2/external/shipments/018f2d8a-1f00-7000-8000-000000000206",
"code": "ACCESS_DENIED",
"timestamp": "2026-08-22T18:30:00Z",
"correlationId": "018f2d8a-1f00-7000-8000-000000000207",
"requestId": "018f2d8a-1f00-7000-8000-000000000208"
}
{
"type": "https://api.drophub.example/problems/access-denied",
"title": "Access denied",
"status": 403,
"detail": "Access to this resource is denied.",
"instance": "/api/v2/external/shipments/018f2d8a-1f00-7000-8000-000000000206",
"code": "ACCESS_DENIED",
"timestamp": "2026-08-22T18:30:00Z",
"correlationId": "018f2d8a-1f00-7000-8000-000000000207",
"requestId": "018f2d8a-1f00-7000-8000-000000000208"
}
Sandbox
Keep the next sandbox shipment before the driver-offer boundary
Sandbox deployment only. Idempotently arms one tenant-bound hold. The next shipment consumes it atomically and remains PENDING_APPROVAL with no driver offer, allowing the merchant cancellation boundary to be exercised deterministically.
POST
/
api
/
v2
/
external
/
sandbox
/
dispatch-holds
Keep the next sandbox shipment before the driver-offer boundary
{"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":"api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary","slug":"/api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary","pageMetadata":{"title":"Keep the next sandbox shipment before the driver-offer boundary","description":"Sandbox deployment only. Idempotently arms one tenant-bound hold. The next shipment consumes it atomically and remains PENDING_APPROVAL with no driver offer, allowing the merchant cancellation boundary to be exercised deterministically.","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","autogeneratedByOpenApi":true},"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: \"Sandbox deployment only. Idempotently arms one tenant-bound hold. The next shipment consumes it atomically and remains PENDING_APPROVAL with no driver offer, allowing the merchant cancellation boundary to be exercised deterministically.\"\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Keep the next sandbox shipment before the driver-offer boundary","description":"Sandbox deployment only. Idempotently arms one tenant-bound hold. The next shipment consumes it atomically and remains PENDING_APPROVAL with no driver offer, allowing the merchant cancellation boundary to be exercised deterministically.","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","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Sandbox"],"operationId":"holdNextExternalMerchantSandboxDispatch","summary":"Keep the next sandbox shipment before the driver-offer boundary","description":"Sandbox deployment only. Idempotently arms one tenant-bound hold. The next shipment consumes it atomically and remains PENDING_APPROVAL with no driver offer, allowing the merchant cancellation boundary to be exercised deterministically.","security":["1133cf92-2317-4893-b77f-7b6da719fcac"],"responses":{"200":"0589c40d-1828-43a2-a4d9-f24d98ddc781","401":"892e0d96-17c5-4323-aa8d-24a81f72acc5","403":"c8b65278-30f9-4cdc-8bfc-6796bbd2eb91","404":"abbf18ba-8b6b-4c53-acee-62f1018c0fae","409":"e9785977-8b9c-4334-aaad-ddbc75e1c193"},"method":"post","type":"path","servers":["75971e53-b119-43d6-8592-4776264cb4c7","ab621a2f-9f82-4625-8803-7357fcdb35eb"],"path":"/api/v2/external/sandbox/dispatch-holds","baseUrlOptions":["https://api-test.drop-hub.com","https://api.drop-hub.com"],"title":"Keep the next sandbox shipment before the driver-offer boundary","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"responses":{"0589c40d-1828-43a2-a4d9-f24d98ddc781":{"description":"Readiness with nextShipmentDispatchHeld set to true","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["generation","canCreateShipment","nextShipmentDispatchHeld","branchCode","pickupLocationCode","pickup","delivery","destinationCityCode","sandboxDriverPhone","prerequisites"],"properties":{"generation":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"generation","typeLabel":"integer"},"canCreateShipment":{"type":"boolean","isRequired":true,"uniqueKey":"canCreateShipment","typeLabel":"boolean"},"nextShipmentDispatchHeld":{"type":"boolean","description":"True when the next sandbox shipment will remain before any driver offer; consumed atomically by that creation.","isRequired":true,"uniqueKey":"nextShipmentDispatchHeld","typeLabel":"boolean"},"branchCode":{"type":"string","const":"SANDBOX_BRANCH","isRequired":true,"uniqueKey":"branchCode","typeLabel":"string"},"pickupLocationCode":{"type":"string","const":"SANDBOX_PICKUP","isRequired":true,"uniqueKey":"pickupLocationCode","typeLabel":"string"},"pickup":{"type":"object","additionalProperties":false,"required":["latitude","longitude"],"properties":{"latitude":{"type":"number","minimum":-90,"maximum":90,"multipleOf":0.000001,"isRequired":true,"uniqueKey":"pickup.latitude","typeLabel":"number"},"longitude":{"type":"number","minimum":-180,"maximum":180,"multipleOf":0.000001,"isRequired":true,"uniqueKey":"pickup.longitude","typeLabel":"number"}},"isRequired":true,"uniqueKey":"pickup","typeLabel":"object"},"delivery":{"type":"object","additionalProperties":false,"required":["latitude","longitude"],"properties":{"latitude":{"type":"number","minimum":-90,"maximum":90,"multipleOf":0.000001,"isRequired":true,"uniqueKey":"delivery.latitude","typeLabel":"number"},"longitude":{"type":"number","minimum":-180,"maximum":180,"multipleOf":0.000001,"isRequired":true,"uniqueKey":"delivery.longitude","typeLabel":"number"}},"isRequired":true,"uniqueKey":"delivery","typeLabel":"object"},"destinationCityCode":{"type":"string","const":"SANDBOX_RUH","description":"Derived fixture coverage context; shipment requests need only coordinates.","isRequired":true,"uniqueKey":"destinationCityCode","typeLabel":"string"},"sandboxDriverPhone":{"type":"string","pattern":"^05[0-9]{8}$","description":"Sandbox-only driver OTP identity used to progress the real canonical driver lifecycle.","isRequired":true,"uniqueKey":"sandboxDriverPhone","typeLabel":"string"},"prerequisites":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["prerequisite","ready"],"properties":{"prerequisite":{"type":"string","enum":["merchant","branch","pickupLocation","coverage","commercialTerms","eligibleCarrier","dispatchableDriver","freshCanonicalLocation","routingCoordinates"],"isRequired":true,"uniqueKey":"prerequisites.items.[INDEX].prerequisite","typeLabel":"enum\u003cstring>"},"ready":{"type":"boolean","isRequired":true,"uniqueKey":"prerequisites.items.[INDEX].ready","typeLabel":"boolean"}},"uniqueKey":"prerequisites.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"prerequisites","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"generation":2,"canCreateShipment":true,"nextShipmentDispatchHeld":true,"branchCode":"SANDBOX_BRANCH","pickupLocationCode":"SANDBOX_PICKUP","pickup":{"latitude":0,"longitude":0},"delivery":{"latitude":0,"longitude":0},"destinationCityCode":"SANDBOX_RUH","sandboxDriverPhone":"\u003cstring>","prerequisites":[{"prerequisite":"merchant","ready":true}]}}},"exampleType":"generated"}},"exampleType":"generated"},"892e0d96-17c5-4323-aa8d-24a81f72acc5":{"description":"Authentication failed without account, token, or tenant enumeration.","headers":{"WWW-Authenticate":{"description":"Bearer challenge for an unauthenticated or invalid-token request.","schema":{"type":"string","example":"Bearer"}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details with stable DropHub extensions","additionalProperties":true,"required":["type","title","status","code","timestamp","correlationId","requestId"],"properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","maxLength":128,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","format":"int32","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"code":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"timestamp":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"correlationId":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"correlationId","typeLabel":"string\u003cuuid>"},"requestId":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"requestId","typeLabel":"string\u003cuuid>"},"detail":{"type":"string","maxLength":512,"uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"violations":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["field","code","message"],"properties":{"field":{"type":"string","maxLength":128,"isRequired":true,"uniqueKey":"violations.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","maxLength":64,"isRequired":true,"uniqueKey":"violations.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","maxLength":256,"isRequired":true,"uniqueKey":"violations.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"violations.items.[INDEX]","typeLabel":"object"},"uniqueKey":"violations","typeLabel":"object[]"}},"example":{"type":"https://api.drophub.example/problems/access-denied","title":"Access denied","status":403,"detail":"Access to this resource is denied.","instance":"/api/v2/external/shipments/018f2d8a-1f00-7000-8000-000000000206","code":"ACCESS_DENIED","timestamp":"2026-08-22T18:30:00Z","correlationId":"018f2d8a-1f00-7000-8000-000000000207","requestId":"018f2d8a-1f00-7000-8000-000000000208"},"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://api.drophub.example/problems/authentication-required","title":"Authentication required","status":401,"detail":"Authentication is required for this resource.","instance":"/api/v2/external/shipments/018f2d8a-1f00-7000-8000-000000000206","code":"AUTHENTICATION_REQUIRED","timestamp":"2026-08-22T18:30:00Z","correlationId":"018f2d8a-1f00-7000-8000-000000000207","requestId":"018f2d8a-1f00-7000-8000-000000000208"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.drophub.example/problems/authentication-required","title":"Authentication required","status":401,"detail":"Authentication is required for this resource.","instance":"/api/v2/external/shipments/018f2d8a-1f00-7000-8000-000000000206","code":"AUTHENTICATION_REQUIRED","timestamp":"2026-08-22T18:30:00Z","correlationId":"018f2d8a-1f00-7000-8000-000000000207","requestId":"018f2d8a-1f00-7000-8000-000000000208"}}},"exampleType":"examples"}},"exampleType":"examples"},"c8b65278-30f9-4cdc-8bfc-6796bbd2eb91":{"description":"Access denied without exposing internal policy or resource ownership. No operation requires a second factor or a fresher live session.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details with stable DropHub extensions","additionalProperties":true,"required":["type","title","status","code","timestamp","correlationId","requestId"],"properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","maxLength":128,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","format":"int32","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"code":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"timestamp":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"correlationId":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"correlationId","typeLabel":"string\u003cuuid>"},"requestId":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"requestId","typeLabel":"string\u003cuuid>"},"detail":{"type":"string","maxLength":512,"uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"violations":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["field","code","message"],"properties":{"field":{"type":"string","maxLength":128,"isRequired":true,"uniqueKey":"violations.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","maxLength":64,"isRequired":true,"uniqueKey":"violations.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","maxLength":256,"isRequired":true,"uniqueKey":"violations.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"violations.items.[INDEX]","typeLabel":"object"},"uniqueKey":"violations","typeLabel":"object[]"}},"example":{"type":"https://api.drophub.example/problems/access-denied","title":"Access denied","status":403,"detail":"Access to this resource is denied.","instance":"/api/v2/external/shipments/018f2d8a-1f00-7000-8000-000000000206","code":"ACCESS_DENIED","timestamp":"2026-08-22T18:30:00Z","correlationId":"018f2d8a-1f00-7000-8000-000000000207","requestId":"018f2d8a-1f00-7000-8000-000000000208"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.drophub.example/problems/access-denied","title":"Access denied","status":403,"detail":"Access to this resource is denied.","instance":"/api/v2/external/shipments/018f2d8a-1f00-7000-8000-000000000206","code":"ACCESS_DENIED","timestamp":"2026-08-22T18:30:00Z","correlationId":"018f2d8a-1f00-7000-8000-000000000207","requestId":"018f2d8a-1f00-7000-8000-000000000208"}}},"exampleType":"generated"}},"exampleType":"generated"},"abbf18ba-8b6b-4c53-acee-62f1018c0fae":{"description":"Resource not found; existence is hidden across authorization boundaries.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details with stable DropHub extensions","additionalProperties":true,"required":["type","title","status","code","timestamp","correlationId","requestId"],"properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","maxLength":128,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","format":"int32","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"code":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"timestamp":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"correlationId":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"correlationId","typeLabel":"string\u003cuuid>"},"requestId":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"requestId","typeLabel":"string\u003cuuid>"},"detail":{"type":"string","maxLength":512,"uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"violations":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["field","code","message"],"properties":{"field":{"type":"string","maxLength":128,"isRequired":true,"uniqueKey":"violations.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","maxLength":64,"isRequired":true,"uniqueKey":"violations.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","maxLength":256,"isRequired":true,"uniqueKey":"violations.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"violations.items.[INDEX]","typeLabel":"object"},"uniqueKey":"violations","typeLabel":"object[]"}},"example":{"type":"https://api.drophub.example/problems/access-denied","title":"Access denied","status":403,"detail":"Access to this resource is denied.","instance":"/api/v2/external/shipments/018f2d8a-1f00-7000-8000-000000000206","code":"ACCESS_DENIED","timestamp":"2026-08-22T18:30:00Z","correlationId":"018f2d8a-1f00-7000-8000-000000000207","requestId":"018f2d8a-1f00-7000-8000-000000000208"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.drophub.example/problems/access-denied","title":"Access denied","status":403,"detail":"Access to this resource is denied.","instance":"/api/v2/external/shipments/018f2d8a-1f00-7000-8000-000000000206","code":"ACCESS_DENIED","timestamp":"2026-08-22T18:30:00Z","correlationId":"018f2d8a-1f00-7000-8000-000000000207","requestId":"018f2d8a-1f00-7000-8000-000000000208"}}},"exampleType":"generated"}},"exampleType":"generated"},"e9785977-8b9c-4334-aaad-ddbc75e1c193":{"description":"Current state prevents the requested transition.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details with stable DropHub extensions","additionalProperties":true,"required":["type","title","status","code","timestamp","correlationId","requestId"],"properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","maxLength":128,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","format":"int32","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"code":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"timestamp":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"correlationId":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"correlationId","typeLabel":"string\u003cuuid>"},"requestId":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"requestId","typeLabel":"string\u003cuuid>"},"detail":{"type":"string","maxLength":512,"uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"violations":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["field","code","message"],"properties":{"field":{"type":"string","maxLength":128,"isRequired":true,"uniqueKey":"violations.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","maxLength":64,"isRequired":true,"uniqueKey":"violations.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","maxLength":256,"isRequired":true,"uniqueKey":"violations.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"violations.items.[INDEX]","typeLabel":"object"},"uniqueKey":"violations","typeLabel":"object[]"}},"example":{"type":"https://api.drophub.example/problems/access-denied","title":"Access denied","status":403,"detail":"Access to this resource is denied.","instance":"/api/v2/external/shipments/018f2d8a-1f00-7000-8000-000000000206","code":"ACCESS_DENIED","timestamp":"2026-08-22T18:30:00Z","correlationId":"018f2d8a-1f00-7000-8000-000000000207","requestId":"018f2d8a-1f00-7000-8000-000000000208"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://api.drophub.example/problems/access-denied","title":"Access denied","status":403,"detail":"Access to this resource is denied.","instance":"/api/v2/external/shipments/018f2d8a-1f00-7000-8000-000000000206","code":"ACCESS_DENIED","timestamp":"2026-08-22T18:30:00Z","correlationId":"018f2d8a-1f00-7000-8000-000000000207","requestId":"018f2d8a-1f00-7000-8000-000000000208"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"1133cf92-2317-4893-b77f-7b6da719fcac":{"oauthClientCredentials":{"type":"oauth2","description":"OAuth 2.0 client-credentials flow for external machine-to-machine integrations.","flows":{"clientCredentials":{"tokenUrl":"/api/v2/oauth/token","scopes":{"quotes:write":"Calculate shipment quotes without creating shipments","shipments:read":"Read Merchant-owned shipments","shipments:write":"Create and cancel Merchant-owned shipments","tracking:read":"Read merchant-owned shipment tracking projections","webhooks:manage":"Configure and rotate the merchant's single signed shipment webhook"}}},"scopes":["shipments:write"],"schemeName":"oauthClientCredentials"}}},"servers":{"75971e53-b119-43d6-8592-4776264cb4c7":{"url":"https://api-test.drop-hub.com","description":"Sandbox. Isolated data and credentials."},"ab621a2f-9f82-4625-8803-7357fcdb35eb":{"url":"https://api.drop-hub.com","description":"Production. Production credentials only."}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"oauth2","description":"OAuth 2.0 client-credentials flow for external machine-to-machine integrations.","flows":{"clientCredentials":{"tokenUrl":"/api/v2/oauth/token","scopes":{"quotes:write":"Calculate shipment quotes without creating shipments","shipments:read":"Read Merchant-owned shipments","shipments:write":"Create and cancel Merchant-owned shipments","tracking:read":"Read merchant-owned shipment tracking projections","webhooks:manage":"Configure and rotate the merchant's single signed shipment webhook"}}},"scopes":["shipments:write"],"schemeName":"oauthClientCredentials"},"schema":{"title":"OAuth2 Auth","type":"string","isRequired":true,"description":"OAuth 2.0 client-credentials flow for external machine-to-machine integrations.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"oauthClientCredentials","name":"Authorization"}],"title":"oauthClientCredentials"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"drophub","siteName":"DropHub External API","title":"Keep the next sandbox shipment before the driver-offer boundary - DropHub External API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-31T18:46:07.584Z","originalFileLocation":"api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary.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=\"Sandbox deployment only. Idempotently arms one tenant-bound hold. The next shipment consumes it atomically and remains PENDING_APPROVAL with no driver offer, allowing the merchant cancellation boundary to be exercised deterministically.\">\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=\"Keep the next sandbox shipment before the driver-offer boundary - DropHub External API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Sandbox deployment only. Idempotently arms one tenant-bound hold. The next shipment consumes it atomically and remains PENDING_APPROVAL with no driver offer, allowing the merchant cancellation boundary to be exercised deterministically.\">\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/api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary\">\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=Sandbox\u0026amp;title=Keep+the+next+sandbox+shipment+before+the+driver-offer+boundary\u0026amp;description=Sandbox+deployment+only.+Idempotently+arms+one+tenant-bound+hold.+The+next+shipment+consumes+it+atomically+and+remains+PENDING_APPROVAL+with+no+driver+offer%2C+al\u0026amp;theme=5002099e9da6e761d875299b\u0026amp;signature=d5df63bb6f4233f88ebd538f2a5b9707047eb05dd7d22b81b39a73ff86475af4\">\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=\"Keep the next sandbox shipment before the driver-offer boundary - DropHub External API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Sandbox deployment only. Idempotently arms one tenant-bound hold. The next shipment consumes it atomically and remains PENDING_APPROVAL with no driver offer, allowing the merchant cancellation boundary to be exercised deterministically.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://drophub.mintlify.app/_mintlify/api/og/v2?division=Sandbox\u0026amp;title=Keep+the+next+sandbox+shipment+before+the+driver-offer+boundary\u0026amp;description=Sandbox+deployment+only.+Idempotently+arms+one+tenant-bound+hold.+The+next+shipment+consumes+it+atomically+and+remains+PENDING_APPROVAL+with+no+driver+offer%2C+al\u0026amp;theme=5002099e9da6e761d875299b\u0026amp;signature=d5df63bb6f4233f88ebd538f2a5b9707047eb05dd7d22b81b39a73ff86475af4\">\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/api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary.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/api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary#webpage\",\"url\":\"https://docs.drop-hub.com/api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary\",\"name\":\"Keep the next sandbox shipment before the driver-offer boundary\",\"description\":\"Sandbox deployment only. Idempotently arms one tenant-bound hold. The next shipment consumes it atomically and remains PENDING_APPROVAL with no driver offer, allowing the merchant cancellation boundary to be exercised deterministically.\",\"dateModified\":\"2026-10-31T18:46:07.584Z\",\"isPartOf\":{\"@id\":\"https://docs.drop-hub.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.drop-hub.com/api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.drop-hub.com/api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API reference\",\"item\":\"https://docs.drop-hub.com/api-reference/authentication/oauth-20-client-credentials-token-issuance-for-machine-integrations\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sandbox\",\"item\":\"https://docs.drop-hub.com/api-reference/sandbox/idempotently-provision-this-merchants-complete-sandbox-fixture\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Keep the next sandbox shipment before the driver-offer boundary\",\"item\":\"https://docs.drop-hub.com/api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.drop-hub.com/api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary#apireference\",\"headline\":\"Keep the next sandbox shipment before the driver-offer boundary\",\"name\":\"Keep the next sandbox shipment before the driver-offer boundary\",\"description\":\"Sandbox deployment only. Idempotently arms one tenant-bound hold. The next shipment consumes it atomically and remains PENDING_APPROVAL with no driver offer, allowing the merchant cancellation boundary to be exercised deterministically.\",\"url\":\"https://docs.drop-hub.com/api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary\",\"mainEntityOfPage\":{\"@id\":\"https://docs.drop-hub.com/api-reference/sandbox/keep-the-next-sandbox-shipment-before-the-driver-offer-boundary#webpage\"},\"dateModified\":\"2026-10-31T18:46:07.584Z\",\"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","href":"/environments"},{"title":"Sandbox","href":"/sandbox"}]},{"group":"Authentication","pages":[{"title":"Authentication","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","description":"Explicitly revokes this tenant's public tracking links and webhook endpoints, repairs its fixture prerequisites, increments the generation, and preserves canonical immutable shipment history. Shared/global platform configuration and other tenants are untouched.","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","description":"Sandbox deployments only (404 SANDBOX_ONLY elsewhere). The disposable driver that accepted this shipment reports it undeliverable through the real driver operation, so the shipment moves to FAILED with the given reason and the shipment.failed webhook is sent. Every other sandbox step (assignment, pickup, delivery with photo proof) is performed automatically by the sandbox driver. 409 SANDBOX_DRIVER_NOT_CARRYING_SHIPMENT until a sandbox driver has accepted the shipment, and once it is delivered, failed or cancelled.","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":"Keep the next sandbox shipment before the driver-offer boundary - DropHub External API","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}