Register an HTTPS endpoint to receive signed event notifications when a workflow reaches a
terminal state. Halliday delivers each event as an HTTP POST to your registered url, so the
endpoint must accept POST requests. On success the response includes a signing_secret that
is only ever returned on creation and rotation — store it immediately, because it cannot be
retrieved again from the list endpoint.
Authenticate with a secret API key that has webhook access. Publishable keys cannot manage webhooks.
Event type a webhook can subscribe to. WORKFLOW_COMPLETED fires when a workflow's status
becomes COMPLETE; WORKFLOW_FAILED fires when it becomes FAILED.
Optional custom HTTP header that Halliday attaches to every delivery to your receiver URL, so your
endpoint can authenticate inbound deliveries in addition to verifying X-Halliday-Signature. The
value is write-only — it is never returned by any endpoint; the list endpoint echoes only the
header name as auth_header_name.
Optional. Provide your own HMAC-SHA256 signing secret instead of letting Halliday generate
one. Omit this to receive a generated signing_secret in the response.
Example:
"my-own-signing-secret"
Response
Webhook registered successfully
A registered webhook including its signing secret. Returned only on creation and rotation.
HMAC-SHA256 signing secret. Store it now — it is never returned again from the list endpoint.
Example:
"a1b2c3…"
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Halliday","colors":{"primary":"#DDA2FF","light":"#DDA2FF","dark":"#DDA2FF"},"logo":{"light":"https://mintcdn.com/halliday/hq55KYeh-6LQtBNf/public/img/HallidayLogo_Color.png?fit=max\u0026auto=format\u0026n=hq55KYeh-6LQtBNf\u0026q=85\u0026s=486868ed309a361db91db1034289ee57","dark":"https://mintcdn.com/halliday/hq55KYeh-6LQtBNf/public/img/HallidayLogo_White.png?fit=max\u0026auto=format\u0026n=hq55KYeh-6LQtBNf\u0026q=85\u0026s=9ad14e1dc685e47fa07a382b14667a14"},"favicon":"https://mintcdn.com/halliday/hq55KYeh-6LQtBNf/public/favicon.ico?fit=max\u0026auto=format\u0026n=hq55KYeh-6LQtBNf\u0026q=85\u0026s=90797886eb509d21e8d5403d4e9ffc0a","navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Book a Sales Call","href":"https://calendly.com/dante-halliday/30min"}},"footer":{"socials":{"x":"https://x.com/HallidayHQ","linkedin":"https://www.linkedin.com/company/halliday"}},"contextual":{"options":["chatgpt","claude","copy","view"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://blog.halliday.xyz/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"halliday","hasAudioNarration":false,"actualSubdomain":"halliday","customDomains":["docs.halliday.xyz"],"gitSource":{"type":"github","owner":"hallidayinc","repo":"hallidaydocs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ada78fcbe8cb2c2b49b4c5b","collectionId":"6e9a0df0-e728-4cab-826e-5bb2eee2585b","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ada78fcbe8cb2c2b49b4c5b"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ada78fcbe8cb2c2b49b4c5b","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"Guides","count":24},{"language":"default","tag":"API Reference","count":22},{"language":"default","tag":"Payments","count":10},{"language":"default","tag":"Concepts \u0026 Info","count":6},{"language":"default","tag":"SDK Integrations","count":6},{"language":"default","tag":"Webhooks","count":6},{"language":"default","tag":"API Integrations","count":5},{"language":"default","tag":"Example Apps","count":4},{"language":"default","tag":"Assets","count":3},{"language":"default","tag":"Frequently Asked Questions","count":1}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"editor-agent-model-picker","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"#topbar-cta-button>a>div>span{margin:0}#topbar-cta-button>a>div>svg{display:none}"}],"page":{"pagePath":"api-reference/webhooks/register-a-webhook","slug":"/api-reference/webhooks/register-a-webhook","pageMetadata":{"title":"Register a webhook","description":"Register an HTTPS endpoint to receive signed event notifications when a workflow reaches a\nterminal state. Halliday delivers each event as an HTTP `POST` to your registered `url`, so the\nendpoint must accept `POST` requests. On success the response includes a `signing_secret` that\nis **only ever returned on creation and rotation** — store it immediately, because it cannot be\nretrieved again from the list endpoint.\n\nAuthenticate with a secret API key that has webhook access. Publishable keys cannot manage webhooks.\n","deprecated":null,"version":null,"openapi":"/public/openapi.yaml post /orgs/webhooks","href":"/api-reference/webhooks/register-a-webhook","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Register an HTTPS endpoint to receive signed event notifications when a workflow reaches a\\nterminal state. Halliday delivers each event as an HTTP \", _jsx(_components.code, {\n children: \"POST\"\n }), \" to your registered \", _jsx(_components.code, {\n children: \"url\"\n }), \", so the\\nendpoint must accept \", _jsx(_components.code, {\n children: \"POST\"\n }), \" requests. On success the response includes a \", _jsx(_components.code, {\n children: \"signing_secret\"\n }), \" that\\nis \", _jsx(_components.strong, {\n children: \"only ever returned on creation and rotation\"\n }), \" — store it immediately, because it cannot be\\nretrieved again from the list endpoint.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Authenticate with a secret API key that has webhook access. Publishable keys cannot manage webhooks.\"\n })]\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":"Register a webhook","description":"Register an HTTPS endpoint to receive signed event notifications when a workflow reaches a\nterminal state. Halliday delivers each event as an HTTP `POST` to your registered `url`, so the\nendpoint must accept `POST` requests. On success the response includes a `signing_secret` that\nis **only ever returned on creation and rotation** — store it immediately, because it cannot be\nretrieved again from the list endpoint.\n\nAuthenticate with a secret API key that has webhook access. Publishable keys cannot manage webhooks.\n","deprecated":null,"version":null,"openapi":"/public/openapi.yaml post /orgs/webhooks","href":"/api-reference/webhooks/register-a-webhook","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Register a webhook","description":"Register an HTTPS endpoint to receive signed event notifications when a workflow reaches a\nterminal state. Halliday delivers each event as an HTTP `POST` to your registered `url`, so the\nendpoint must accept `POST` requests. On success the response includes a `signing_secret` that\nis **only ever returned on creation and rotation** — store it immediately, because it cannot be\nretrieved again from the list endpoint.\n\nAuthenticate with a secret API key that has webhook access. Publishable keys cannot manage webhooks.\n","operationId":"registerWebhook","tags":["Webhooks"],"requestBody":"1dedad15-b125-4f9d-9c64-a931f7a104e1","responses":{"200":"1e2f1bd0-6ae2-4e3f-b5e7-7f5424fe1575","400":"61cde2c0-48c6-4d8c-85ba-c69b488b056b","401":"a9a7506b-4eef-442e-bfdb-471462abbec8","403":"b6a2fbbd-0ba7-494d-9247-e2127990a3d8"},"method":"post","type":"path","servers":["b724eecd-a4ed-42fa-9a0c-8ff6407a392e"],"security":["05a97edf-e9d6-4de7-bdbe-ae97d91998f6"],"path":"/orgs/webhooks","baseUrlOptions":["https://v2.prod.halliday.xyz"],"title":"Register a webhook","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url","label","event_types"],"properties":{"url":{"type":"string","format":"uri","description":"Receiver URL. Must be HTTPS on port 443. Private/reserved IP addresses are rejected (SSRF protection).\n","example":"https://api.yourapp.com/halliday/webhooks","isRequired":true,"uniqueKey":"url","typeLabel":"string\u003curi>"},"label":{"type":"string","description":"Human-readable identifier, unique per org. Used to address the webhook on update, rotate, and delete.\n","example":"prod-workflows","isRequired":true,"uniqueKey":"label","typeLabel":"string"},"event_types":{"type":"array","minItems":1,"description":"At least one event type to subscribe to.","items":{"type":"string","description":"Event type a webhook can subscribe to. `WORKFLOW_COMPLETED` fires when a workflow's status\nbecomes `COMPLETE`; `WORKFLOW_FAILED` fires when it becomes `FAILED`.\n","enum":["WORKFLOW_COMPLETED","WORKFLOW_FAILED"],"uniqueKey":"event_types.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["WORKFLOW_COMPLETED","WORKFLOW_FAILED"],"isRequired":true,"uniqueKey":"event_types","typeLabel":"enum\u003cstring>[]"},"auth_header":{"type":"object","description":"Optional custom HTTP header that Halliday attaches to every delivery to your receiver URL, so your\nendpoint can authenticate inbound deliveries in addition to verifying `X-Halliday-Signature`. The\n`value` is write-only — it is never returned by any endpoint; the list endpoint echoes only the\nheader name as `auth_header_name`.\n","required":["name","value"],"properties":{"name":{"type":"string","description":"Header name Halliday sends on each delivery.","example":"X-Webhook-Token","isRequired":true,"uniqueKey":"auth_header.name","typeLabel":"string"},"value":{"type":"string","description":"Header value. Write-only — never returned.","example":"a-shared-secret-token","isRequired":true,"uniqueKey":"auth_header.value","typeLabel":"string"}},"uniqueKey":"auth_header","typeLabel":"object"},"signing_secret":{"type":"string","description":"Optional. Provide your own HMAC-SHA256 signing secret instead of letting Halliday generate\none. Omit this to receive a generated `signing_secret` in the response.\n","example":"my-own-signing-secret","uniqueKey":"signing_secret","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"url":"https://api.yourapp.com/halliday/webhooks","label":"prod-workflows","event_types":["WORKFLOW_COMPLETED","WORKFLOW_FAILED"],"auth_header":{"name":"X-Webhook-Token","value":"a-shared-secret-token"}},"examples":{"Example":{"title":"Example","value":{"url":"https://api.yourapp.com/halliday/webhooks","label":"prod-workflows","event_types":["WORKFLOW_COMPLETED","WORKFLOW_FAILED"],"auth_header":{"name":"X-Webhook-Token","value":"a-shared-secret-token"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"1e2f1bd0-6ae2-4e3f-b5e7-7f5424fe1575":{"description":"Webhook registered successfully","content":{"application/json":{"schema":{"type":"object","description":"A registered webhook including its signing secret. Returned only on creation and rotation.\n","required":["id","label","url","signing_secret"],"properties":{"id":{"type":"string","example":"4f2c…","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"label":{"type":"string","example":"prod-workflows","isRequired":true,"uniqueKey":"label","typeLabel":"string"},"url":{"type":"string","format":"uri","example":"https://api.yourapp.com/halliday/webhooks","isRequired":true,"uniqueKey":"url","typeLabel":"string\u003curi>"},"signing_secret":{"type":"string","description":"HMAC-SHA256 signing secret. Store it now — it is never returned again from the list endpoint.\n","example":"a1b2c3…","isRequired":true,"uniqueKey":"signing_secret","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"id":"4f2c…","label":"prod-workflows","url":"https://api.yourapp.com/halliday/webhooks","signing_secret":"a1b2c3…"},"examples":{"Example":{"title":"Example","value":{"id":"4f2c…","label":"prod-workflows","url":"https://api.yourapp.com/halliday/webhooks","signing_secret":"a1b2c3…"}}},"exampleType":"examples"}},"exampleType":"examples"},"61cde2c0-48c6-4d8c-85ba-c69b488b056b":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","description":"Returned when a request body fails schema validation. `errors` contains one entry per\nvalidation issue.\n","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","path","message"],"properties":{"code":{"type":"string","description":"Validation issue code (for example `invalid_type`).","example":"invalid_type","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"path":{"type":"array","description":"Path to the offending field in the request body.","items":{"oneOf":[{"type":"string","uniqueKey":"errors.items.[INDEX].path.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"errors.items.[INDEX].path.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"errors.items.[INDEX].path.items.[INDEX]","typeLabel":"string | integer"},"example":["label"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].path","typeLabel":"(string | integer)[]"},"message":{"type":"string","example":"Invalid input: expected string, received undefined","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"expected":{"type":"string","description":"Expected type. Present on type-mismatch issues.","example":"string","uniqueKey":"errors.items.[INDEX].expected","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"errors":[{"code":"invalid_type","expected":"string","path":["label"],"message":"Invalid input: expected string, received undefined"}]},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"invalid_type","expected":"string","path":["label"],"message":"Invalid input: expected string, received undefined"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"a9a7506b-4eef-442e-bfdb-471462abbec8":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"oneOf":[{"type":"object","required":["kind","asset","given","limits","source","message","reason"],"properties":{"kind":{"type":"string","enum":["amount"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.0.kind","typeLabel":"enum\u003cstring>"},"asset":{"type":"string","description":"Identifier in the token format (\"chain:address\") or fiat currency code (\"USD\")","example":"ethereum:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.0.asset","typeLabel":"string"},"given":{"type":"string","description":"A decimal amount string.","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.0.given","typeLabel":"string"},"limits":{"type":"object","properties":{"min":{"type":"string","description":"Minimum amount as a decimal string.","uniqueKey":"errors.items.[INDEX].oneOf.0.limits.min","typeLabel":"string"},"max":{"type":"string","description":"Maximum amount as a decimal string.","uniqueKey":"errors.items.[INDEX].oneOf.0.limits.max","typeLabel":"string"}},"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.0.limits","typeLabel":"object"},"source":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.0.source","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.0.message","typeLabel":"string"},"reason":{"type":"string","enum":["TOO_LOW","TOO_HIGH","UNEXPECTEDLY_LOW","UNEXPECTEDLY_HIGH","NO_VALID_AMOUNT","UNKNOWN"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.0.reason","typeLabel":"enum\u003cstring>"},"downstream_limits":{"type":"object","properties":{"min":{"type":"string","description":"Minimum amount as a decimal string.","uniqueKey":"errors.items.[INDEX].oneOf.0.downstream_limits.min","typeLabel":"string"},"max":{"type":"string","description":"Maximum amount as a decimal string.","uniqueKey":"errors.items.[INDEX].oneOf.0.downstream_limits.max","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.0.downstream_limits","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","token","balance"],"properties":{"kind":{"type":"string","enum":["funding"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.1.kind","typeLabel":"enum\u003cstring>"},"token":{"type":"string","description":"Token identifier in the format \"chain:address\"","pattern":"^[a-z]+:0x[a-fA-F0-9]+$","example":"ethereum:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.1.token","typeLabel":"string"},"balance":{"type":"object","required":["#"],"properties":{"#":{"type":"string","description":"Balance amount as a decimal string.","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.1.balance.#","typeLabel":"string"}},"description":"Current token balance at the funding address.","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.1.balance","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","message","mitigation"],"properties":{"kind":{"type":"string","enum":["owner"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.2.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.2.message","typeLabel":"string"},"mitigation":{"type":"string","enum":["change","verify"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.2.mitigation","typeLabel":"enum\u003cstring>"}},"uniqueKey":"errors.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["geolocation"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.3.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.3.message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["provider"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.4.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.4.message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["payin_method"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.5.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.5.message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["other"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.6.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.6.message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.6","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["unknown"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.7.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.7.message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.7","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["org_configuration"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.8.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.8.message","typeLabel":"string"},"rev_share_pct":{"type":"string","uniqueKey":"errors.items.[INDEX].oneOf.8.rev_share_pct","typeLabel":"string"},"total_pct":{"type":"string","uniqueKey":"errors.items.[INDEX].oneOf.8.total_pct","typeLabel":"string"},"threshold":{"type":"string","uniqueKey":"errors.items.[INDEX].oneOf.8.threshold","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.8","typeLabel":"object"},{"type":"object","description":"Funds are held at a deposit address associated with the owner and are not being processed.","required":["kind","token","balance","classification","severity","payment_gist","withdraw_from"],"properties":{"kind":{"type":"string","enum":["parked_fund"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.kind","typeLabel":"enum\u003cstring>"},"token":{"type":"string","description":"Token identifier in the format \"chain:address\"","pattern":"^[a-z]+:0x[a-fA-F0-9]+$","example":"ethereum:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.token","typeLabel":"string"},"balance":{"type":"object","required":["#"],"properties":{"#":{"type":"string","description":"Integer amount in the token's smallest unit, serialized as a string.","example":"25500000","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.balance.#","typeLabel":"string"}},"description":"Token balance parked at the address, as an integer in the token's smallest unit. The `{\"#\": \"...\"}`\nwrapper is how the API serializes integers too large for a JSON number. Divide by the token's\n`decimals` from `GET /assets` to display it, for example `{\"#\": \"25500000\"}` is 25.5 USDC.\nNote that `POST /payments/balances` reports the same funds as a plain decimal string (`\"25.5\"`).\n","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.balance","typeLabel":"object"},"classification":{"type":"string","enum":["MISSENT","STUCK","UNDERFUNDED","STALLED","EXTRA","SLIPPED","DELAYED"],"description":"Why the funds are parked.","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.classification","typeLabel":"enum\u003cstring>"},"severity":{"type":"string","enum":["HIGH","LOW"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.severity","typeLabel":"enum\u003cstring>"},"payment_gist":{"oneOf":[{"type":"object","description":"Summary of the payment the funds were intended for, or null.","required":["op","destination_address","destination_token"],"properties":{"op":{"type":"string","enum":["buy"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.payment_gist.oneOf.0.op","typeLabel":"enum\u003cstring>"},"destination_address":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.payment_gist.oneOf.0.destination_address","typeLabel":"string"},"destination_token":{"type":"string","description":"Token identifier in the format \"chain:address\"","pattern":"^[a-z]+:0x[a-fA-F0-9]+$","example":"ethereum:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.payment_gist.oneOf.0.destination_token","typeLabel":"string"}},"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.payment_gist.oneOf.0","typeLabel":"object"},{"type":"null","description":"Summary of the payment the funds were intended for, or null.","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.payment_gist.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.payment_gist","typeLabel":"object | null"},"withdraw_from":{"oneOf":[{"type":"object","description":"Where the parked funds can be withdrawn from, or null if they cannot be withdrawn through the API.","required":["withdraw_type","payment_id","withdraw_account"],"properties":{"withdraw_type":{"type":"string","enum":["PAYMENT"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.0.withdraw_type","typeLabel":"enum\u003cstring>"},"payment_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.0.payment_id","typeLabel":"string\u003cuuid>"},"withdraw_account":{"type":"string","enum":["INTENT","SPW","RDW"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.0.withdraw_account","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.0","typeLabel":"object"},{"type":"object","description":"Where the parked funds can be withdrawn from, or null if they cannot be withdrawn through the API.","required":["withdraw_type","rdw_address"],"properties":{"withdraw_type":{"type":"string","enum":["EXTRA_RDW_BALANCE"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.1.withdraw_type","typeLabel":"enum\u003cstring>"},"rdw_address":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.1.rdw_address","typeLabel":"string"}},"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.1","typeLabel":"object"},{"type":"null","description":"Where the parked funds can be withdrawn from, or null if they cannot be withdrawn through the API.","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.2","typeLabel":"null"}],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from","typeLabel":"object · object · null"}},"uniqueKey":"errors.items.[INDEX].oneOf.9","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["destination"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.10.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.10.message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.10","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["payout_method"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.11.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.11.message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.11","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["kyc"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.12.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.12.message","typeLabel":"string"},"provider_id":{"type":"string","uniqueKey":"errors.items.[INDEX].oneOf.12.provider_id","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.12","typeLabel":"object"}],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"description":"Error response for known errors","uniqueKey":"","typeLabel":"object"},"example":{"errors":[{"kind":"other","message":"Invalid API key"}]},"examples":{"Example":{"title":"Example","value":{"errors":[{"kind":"other","message":"Invalid API key"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"b6a2fbbd-0ba7-494d-9247-e2127990a3d8":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"oneOf":[{"type":"object","required":["kind","asset","given","limits","source","message","reason"],"properties":{"kind":{"type":"string","enum":["amount"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.0.kind","typeLabel":"enum\u003cstring>"},"asset":{"type":"string","description":"Identifier in the token format (\"chain:address\") or fiat currency code (\"USD\")","example":"ethereum:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.0.asset","typeLabel":"string"},"given":{"type":"string","description":"A decimal amount string.","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.0.given","typeLabel":"string"},"limits":{"type":"object","properties":{"min":{"type":"string","description":"Minimum amount as a decimal string.","uniqueKey":"errors.items.[INDEX].oneOf.0.limits.min","typeLabel":"string"},"max":{"type":"string","description":"Maximum amount as a decimal string.","uniqueKey":"errors.items.[INDEX].oneOf.0.limits.max","typeLabel":"string"}},"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.0.limits","typeLabel":"object"},"source":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.0.source","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.0.message","typeLabel":"string"},"reason":{"type":"string","enum":["TOO_LOW","TOO_HIGH","UNEXPECTEDLY_LOW","UNEXPECTEDLY_HIGH","NO_VALID_AMOUNT","UNKNOWN"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.0.reason","typeLabel":"enum\u003cstring>"},"downstream_limits":{"type":"object","properties":{"min":{"type":"string","description":"Minimum amount as a decimal string.","uniqueKey":"errors.items.[INDEX].oneOf.0.downstream_limits.min","typeLabel":"string"},"max":{"type":"string","description":"Maximum amount as a decimal string.","uniqueKey":"errors.items.[INDEX].oneOf.0.downstream_limits.max","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.0.downstream_limits","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","token","balance"],"properties":{"kind":{"type":"string","enum":["funding"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.1.kind","typeLabel":"enum\u003cstring>"},"token":{"type":"string","description":"Token identifier in the format \"chain:address\"","pattern":"^[a-z]+:0x[a-fA-F0-9]+$","example":"ethereum:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.1.token","typeLabel":"string"},"balance":{"type":"object","required":["#"],"properties":{"#":{"type":"string","description":"Balance amount as a decimal string.","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.1.balance.#","typeLabel":"string"}},"description":"Current token balance at the funding address.","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.1.balance","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","message","mitigation"],"properties":{"kind":{"type":"string","enum":["owner"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.2.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.2.message","typeLabel":"string"},"mitigation":{"type":"string","enum":["change","verify"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.2.mitigation","typeLabel":"enum\u003cstring>"}},"uniqueKey":"errors.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["geolocation"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.3.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.3.message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["provider"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.4.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.4.message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["payin_method"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.5.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.5.message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["other"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.6.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.6.message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.6","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["unknown"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.7.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.7.message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.7","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["org_configuration"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.8.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.8.message","typeLabel":"string"},"rev_share_pct":{"type":"string","uniqueKey":"errors.items.[INDEX].oneOf.8.rev_share_pct","typeLabel":"string"},"total_pct":{"type":"string","uniqueKey":"errors.items.[INDEX].oneOf.8.total_pct","typeLabel":"string"},"threshold":{"type":"string","uniqueKey":"errors.items.[INDEX].oneOf.8.threshold","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.8","typeLabel":"object"},{"type":"object","description":"Funds are held at a deposit address associated with the owner and are not being processed.","required":["kind","token","balance","classification","severity","payment_gist","withdraw_from"],"properties":{"kind":{"type":"string","enum":["parked_fund"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.kind","typeLabel":"enum\u003cstring>"},"token":{"type":"string","description":"Token identifier in the format \"chain:address\"","pattern":"^[a-z]+:0x[a-fA-F0-9]+$","example":"ethereum:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.token","typeLabel":"string"},"balance":{"type":"object","required":["#"],"properties":{"#":{"type":"string","description":"Integer amount in the token's smallest unit, serialized as a string.","example":"25500000","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.balance.#","typeLabel":"string"}},"description":"Token balance parked at the address, as an integer in the token's smallest unit. The `{\"#\": \"...\"}`\nwrapper is how the API serializes integers too large for a JSON number. Divide by the token's\n`decimals` from `GET /assets` to display it, for example `{\"#\": \"25500000\"}` is 25.5 USDC.\nNote that `POST /payments/balances` reports the same funds as a plain decimal string (`\"25.5\"`).\n","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.balance","typeLabel":"object"},"classification":{"type":"string","enum":["MISSENT","STUCK","UNDERFUNDED","STALLED","EXTRA","SLIPPED","DELAYED"],"description":"Why the funds are parked.","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.classification","typeLabel":"enum\u003cstring>"},"severity":{"type":"string","enum":["HIGH","LOW"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.severity","typeLabel":"enum\u003cstring>"},"payment_gist":{"oneOf":[{"type":"object","description":"Summary of the payment the funds were intended for, or null.","required":["op","destination_address","destination_token"],"properties":{"op":{"type":"string","enum":["buy"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.payment_gist.oneOf.0.op","typeLabel":"enum\u003cstring>"},"destination_address":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.payment_gist.oneOf.0.destination_address","typeLabel":"string"},"destination_token":{"type":"string","description":"Token identifier in the format \"chain:address\"","pattern":"^[a-z]+:0x[a-fA-F0-9]+$","example":"ethereum:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.payment_gist.oneOf.0.destination_token","typeLabel":"string"}},"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.payment_gist.oneOf.0","typeLabel":"object"},{"type":"null","description":"Summary of the payment the funds were intended for, or null.","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.payment_gist.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.payment_gist","typeLabel":"object | null"},"withdraw_from":{"oneOf":[{"type":"object","description":"Where the parked funds can be withdrawn from, or null if they cannot be withdrawn through the API.","required":["withdraw_type","payment_id","withdraw_account"],"properties":{"withdraw_type":{"type":"string","enum":["PAYMENT"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.0.withdraw_type","typeLabel":"enum\u003cstring>"},"payment_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.0.payment_id","typeLabel":"string\u003cuuid>"},"withdraw_account":{"type":"string","enum":["INTENT","SPW","RDW"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.0.withdraw_account","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.0","typeLabel":"object"},{"type":"object","description":"Where the parked funds can be withdrawn from, or null if they cannot be withdrawn through the API.","required":["withdraw_type","rdw_address"],"properties":{"withdraw_type":{"type":"string","enum":["EXTRA_RDW_BALANCE"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.1.withdraw_type","typeLabel":"enum\u003cstring>"},"rdw_address":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.1.rdw_address","typeLabel":"string"}},"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.1","typeLabel":"object"},{"type":"null","description":"Where the parked funds can be withdrawn from, or null if they cannot be withdrawn through the API.","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from.oneOf.2","typeLabel":"null"}],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.9.withdraw_from","typeLabel":"object · object · null"}},"uniqueKey":"errors.items.[INDEX].oneOf.9","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["destination"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.10.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.10.message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.10","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["payout_method"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.11.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.11.message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.11","typeLabel":"object"},{"type":"object","required":["kind","message"],"properties":{"kind":{"type":"string","enum":["kyc"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.12.kind","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].oneOf.12.message","typeLabel":"string"},"provider_id":{"type":"string","uniqueKey":"errors.items.[INDEX].oneOf.12.provider_id","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX].oneOf.12","typeLabel":"object"}],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"description":"Error response for known errors","uniqueKey":"","typeLabel":"object"},"example":{"errors":[{"kind":"other","message":"Publishable keys cannot manage webhooks"}]},"examples":{"Example":{"title":"Example","value":{"errors":[{"kind":"other","message":"Publishable keys cannot manage webhooks"}]}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"05a97edf-e9d6-4de7-bdbe-ae97d91998f6":{"ApiKeyAuth":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"b724eecd-a4ed-42fa-9a0c-8ff6407a392e":{"url":"https://v2.prod.halliday.xyz","description":"Base domain"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API_KEY","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"ApiKeyAuth","name":"Authorization"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"public/openapi.yaml"},"subdomain":"halliday","siteName":"Halliday","title":"Register a webhook - Halliday","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-22T20:58:42.695Z","originalFileLocation":"api-reference/webhooks/register-a-webhook.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=\"Register an HTTPS endpoint to receive signed event notifications when a workflow reaches a terminal state. Halliday delivers each event as an HTTP POST to your registered url, so the endpoint must accept POST requests. On success the response includes a signing_secret that is only ever returned on creation and rotation — store it immediately, because it cannot be retrieved again from the list endpoint. Authenticate with a secret API key that has webhook access. Publishable keys cannot manage webhooks.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Halliday\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/halliday/_TQmu18IvjSU-Uvs/_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/halliday/_TQmu18IvjSU-Uvs/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/halliday/_TQmu18IvjSU-Uvs/_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/halliday/_TQmu18IvjSU-Uvs/_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/halliday/_TQmu18IvjSU-Uvs/_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/halliday/_TQmu18IvjSU-Uvs/_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/halliday/_TQmu18IvjSU-Uvs/_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/halliday/_TQmu18IvjSU-Uvs/_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/halliday/_TQmu18IvjSU-Uvs/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Register a webhook - Halliday\">\u003cmeta data-mint-head property=\"og:description\" content=\"Register an HTTPS endpoint to receive signed event notifications when a workflow reaches a terminal state. Halliday delivers each event as an HTTP POST to your registered url, so the endpoint must accept POST requests. On success the response includes a signing_secret that is only ever returned on creation and rotation — store it immediately, because it cannot be retrieved again from the list endpoint. Authenticate with a secret API key that has webhook access. Publishable keys cannot manage webhooks.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Halliday\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.halliday.xyz/api-reference/webhooks/register-a-webhook\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://halliday.mintlify.app/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Register+a+webhook\u0026amp;description=Register+an+HTTPS+endpoint+to+receive+signed+event+notifications+when+a+workflow+reaches+a%0Aterminal+state.+Halliday+delivers+each+event+as+an+HTTP+%60POST%60+to+you\u0026amp;theme=e9b080815c8cb7f41ee5a38d\u0026amp;signature=a3265a440624859969000c1e603ebca34b66257b8010cc7ee29a33b60c3cd699\">\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=\"Register a webhook - Halliday\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Register an HTTPS endpoint to receive signed event notifications when a workflow reaches a terminal state. Halliday delivers each event as an HTTP POST to your registered url, so the endpoint must accept POST requests. On success the response includes a signing_secret that is only ever returned on creation and rotation — store it immediately, because it cannot be retrieved again from the list endpoint. Authenticate with a secret API key that has webhook access. Publishable keys cannot manage webhooks.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://halliday.mintlify.app/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Register+a+webhook\u0026amp;description=Register+an+HTTPS+endpoint+to+receive+signed+event+notifications+when+a+workflow+reaches+a%0Aterminal+state.+Halliday+delivers+each+event+as+an+HTTP+%60POST%60+to+you\u0026amp;theme=e9b080815c8cb7f41ee5a38d\u0026amp;signature=a3265a440624859969000c1e603ebca34b66257b8010cc7ee29a33b60c3cd699\">\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/halliday/_TQmu18IvjSU-Uvs/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Halliday\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#DDA2FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.halliday.xyz/api-reference/webhooks/register-a-webhook\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/webhooks/register-a-webhook.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.halliday.xyz/#organization\",\"name\":\"Halliday\",\"url\":\"https://docs.halliday.xyz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/halliday/hq55KYeh-6LQtBNf/public/img/HallidayLogo_Color.png?fit=max\u0026auto=format\u0026n=hq55KYeh-6LQtBNf\u0026q=85\u0026s=486868ed309a361db91db1034289ee57\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.halliday.xyz#website\",\"name\":\"Halliday\",\"url\":\"https://docs.halliday.xyz\",\"publisher\":{\"@id\":\"https://docs.halliday.xyz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.halliday.xyz/api-reference/webhooks/register-a-webhook#webpage\",\"url\":\"https://docs.halliday.xyz/api-reference/webhooks/register-a-webhook\",\"name\":\"Register a webhook\",\"description\":\"Register an HTTPS endpoint to receive signed event notifications when a workflow reaches a terminal state. Halliday delivers each event as an HTTP POST to your registered url, so the endpoint must accept POST requests. On success the response includes a signing_secret that is only ever returned on creation and rotation — store it immediately, because it cannot be retrieved again from the list endpoint. Authenticate with a secret API key that has webhook access. Publishable keys cannot manage webhooks.\",\"dateModified\":\"2026-10-22T20:58:42.695Z\",\"isPartOf\":{\"@id\":\"https://docs.halliday.xyz#website\"},\"breadcrumb\":{\"@id\":\"https://docs.halliday.xyz/api-reference/webhooks/register-a-webhook#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.halliday.xyz/api-reference/webhooks/register-a-webhook#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Webhooks\",\"item\":\"https://docs.halliday.xyz/api-reference/webhooks/list-webhooks\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Register a webhook\",\"item\":\"https://docs.halliday.xyz/api-reference/webhooks/register-a-webhook\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.halliday.xyz/api-reference/webhooks/register-a-webhook#apireference\",\"headline\":\"Register a webhook\",\"name\":\"Register a webhook\",\"description\":\"Register an HTTPS endpoint to receive signed event notifications when a workflow reaches a terminal state. Halliday delivers each event as an HTTP POST to your registered url, so the endpoint must accept POST requests. On success the response includes a signing_secret that is only ever returned on creation and rotation — store it immediately, because it cannot be retrieved again from the list endpoint. Authenticate with a secret API key that has webhook access. Publishable keys cannot manage webhooks.\",\"url\":\"https://docs.halliday.xyz/api-reference/webhooks/register-a-webhook\",\"mainEntityOfPage\":{\"@id\":\"https://docs.halliday.xyz/api-reference/webhooks/register-a-webhook#webpage\"},\"dateModified\":\"2026-10-22T20:58:42.695Z\",\"publisher\":{\"@id\":\"https://docs.halliday.xyz/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.halliday.xyz#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Halliday\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Halliday","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://blog.halliday.xyz/"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/pages/home"}]},{"tab":"API Reference","groups":[{"group":"Chains","pages":[{"title":"Get supported chains","deprecated":null,"version":null,"openapi":"/public/openapi.yaml get /chains","href":"/api-reference/chains/get-supported-chains"}]},{"group":"Assets","pages":[{"title":"Get asset details","deprecated":null,"version":null,"openapi":"/public/openapi.yaml get /assets","href":"/api-reference/assets/get-asset-details"},{"title":"Get available input assets for a given output asset","deprecated":null,"version":null,"openapi":"/public/openapi.yaml get /assets/available-inputs","href":"/api-reference/assets/get-available-input-assets-for-a-given-output-asset"},{"title":"Get available output assets for a given input asset","deprecated":null,"version":null,"openapi":"/public/openapi.yaml get /assets/available-outputs","href":"/api-reference/assets/get-available-output-assets-for-a-given-input-asset"}]},{"group":"Geolocation","pages":[{"title":"Get geolocation for an IP address","deprecated":null,"version":null,"openapi":"/public/openapi.yaml get /geolocation","href":"/api-reference/geolocation/get-geolocation-for-an-ip-address"}]},{"group":"Prices","pages":[{"title":"Get token prices","deprecated":null,"version":null,"openapi":"/public/openapi.yaml post /prices","href":"/api-reference/prices/get-token-prices"}]},{"group":"Payments","pages":[{"title":"Get payment status","deprecated":null,"version":null,"openapi":"/public/openapi.yaml get /payments","href":"/api-reference/payments/get-payment-status"},{"title":"Get payment history","deprecated":null,"version":null,"openapi":"/public/openapi.yaml get /payments/history","href":"/api-reference/payments/get-payment-history"},{"title":"Get available payment methods","deprecated":null,"version":null,"openapi":"/public/openapi.yaml get /payments/methods","href":"/api-reference/payments/get-available-payment-methods"},{"title":"Get payment quotes","deprecated":null,"version":null,"openapi":"/public/openapi.yaml post /payments/quotes","href":"/api-reference/payments/get-payment-quotes"},{"title":"Confirm a payment","deprecated":null,"version":null,"openapi":"/public/openapi.yaml post /payments/confirm","href":"/api-reference/payments/confirm-a-payment"},{"title":"Return funds to owner or retry payment","deprecated":null,"version":null,"openapi":"/public/openapi.yaml post /payments/withdraw","href":"/api-reference/payments/return-funds-to-owner-or-retry-payment"},{"title":"Confirm withdrawal request","deprecated":null,"version":null,"openapi":"/public/openapi.yaml post /payments/withdraw/confirm","href":"/api-reference/payments/confirm-withdrawal-request"},{"title":"Get withdrawal status","deprecated":null,"version":null,"openapi":"/public/openapi.yaml get /payments/withdraw/status","href":"/api-reference/payments/get-withdrawal-status"},{"title":"Get wallet balances","deprecated":null,"version":null,"openapi":"/public/openapi.yaml post /payments/balances","href":"/api-reference/payments/get-wallet-balances"},{"title":"Get issues for an owner address","deprecated":null,"version":null,"openapi":"/public/openapi.yaml post /payments/issues","href":"/api-reference/payments/get-issues-for-an-owner-address"}]},{"group":"Webhooks","pages":[{"title":"List webhooks","description":"List the webhooks registered for your org. The signing secret is never included in this response.\n","deprecated":null,"version":null,"openapi":"/public/openapi.yaml get /orgs/webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Register a webhook","deprecated":null,"version":null,"openapi":"/public/openapi.yaml post /orgs/webhooks","href":"/api-reference/webhooks/register-a-webhook"},{"title":"Delete a webhook","description":"Delete a registered webhook, identified by its `label`.\n","deprecated":null,"version":null,"openapi":"/public/openapi.yaml delete /orgs/webhooks","href":"/api-reference/webhooks/delete-a-webhook"},{"title":"Update a webhook","deprecated":null,"version":null,"openapi":"/public/openapi.yaml patch /orgs/webhooks","href":"/api-reference/webhooks/update-a-webhook"},{"title":"Rotate the signing secret","deprecated":null,"version":null,"openapi":"/public/openapi.yaml post /orgs/webhooks/rotate-secret","href":"/api-reference/webhooks/rotate-the-signing-secret"},{"title":"Workflow status changed","version":null,"deprecated":null,"openapi":"/public/openapi.yaml webhook workflowStatusChanged","href":"/api-reference/webhooks/workflow-status-changed"}]}]}]},"title":"Register a webhook - Halliday","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-rfhihCWU.js","utils-BmH1XFxk.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BcNsxPKB.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BAES3tkd.js","snippetPresets-DCMQBKLP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D6l_bzE9.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BOktbnNh.js","shallow-BCs8SgM7.js","getApiPlaygroundDisplay-DEmW5bJB.js","CodeSnippet-CpZOpB9C.js","CodeSnippets-BOBDqibl.js","Page-D5fEM6aW.js","getPastedJson-DH2JBvmr.js","icon-BBJH-kKh.js","MethodPill-D2Sd5NLC.js","DuplicateIcon-CGgfL2qN.js","createIcon-BKudBBzi.js","DynamicMarkdown-85clUA0i.js","SectionHeading-D0JiMgDx.js","axios-vUo_bRtp.js","Markdown-Cfiy0xZO.js","clsx-rL8ZCCw4.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-aeztFa9U.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BywkCr5C.js"]}