Creates a new policy in draft status. Drafts are not enforced — they can be edited freely before activation. To activate, see POST /v1/policies//activate (coming in a future release). The Idempotency-Key header is required. Omitting category defaults to “access”.
Unique key (1-255 printable ASCII chars) used to safely retry write operations. Same key + body returns the cached response; same key + different body returns 409.
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Bitnob","description":"Bitnob is a financial infrastructure API for bitcoin, stablecoins, and local currency rails across Africa. Guides, API reference, and courses.","colors":{"primary":"#00A57F","light":"#00E4AF","dark":"#00795D"},"logo":{"light":"https://mintcdn.com/bitnob/1gUqO4UxgycXihsV/logo/light.svg?fit=max\u0026auto=format\u0026n=1gUqO4UxgycXihsV\u0026q=85\u0026s=d85bd0bfb85b47fa764bc1ff421b8ce8","dark":"https://mintcdn.com/bitnob/1gUqO4UxgycXihsV/logo/dark.svg?fit=max\u0026auto=format\u0026n=1gUqO4UxgycXihsV\u0026q=85\u0026s=e86a2938d369b4849b355e94a9aa39d4"},"favicon":"https://mintcdn.com/bitnob/_7Z9zBKHf2nvKkWh/favicon.svg?fit=max\u0026auto=format\u0026n=_7Z9zBKHf2nvKkWh\u0026q=85\u0026s=f807ad45c796566ee843893b0bc3345d","api":{"params":{"expanded":"closed"},"playground":{"display":"interactive"},"examples":{"languages":["curl","javascript","python","php","go","java"],"prefill":true}},"navbar":{"links":[{"href":"https://status.bitnob.com","label":"Status"},{"href":"https://app.bitnob.com","label":"Dashboard"}],"primary":{"type":"button","label":"Get Started","href":"https://bitnob.com"}},"footer":{"socials":{"x":"https://x.com/bitnob","github":"https://github.com/bitnob","website":"https://bitnob.com"}},"search":{"prompt":"Ask a question or search the Bitnob docs"},"seo":{"metatags":{"og:site_name":"Bitnob Docs","twitter:card":"summary_large_image","twitter:site":"@bitnob","twitter:creator":"@bitnob"},"organization":{"id":"https://bitnob.com/#organization","name":"Bitnob","url":"https://bitnob.com/","logo":"https://bitnob.com/bitnob-logo.png","sameAs":["https://x.com/bitnob","https://twitter.com/Bitnob_Official","https://linkedin.com/company/bitnob","https://github.com/bitnob","https://instagram.com/Bitnob","https://youtube.com/@bitnob","https://facebook.com/bitnob","https://tiktok.com/@bitnob"]},"indexing":"navigable"},"contextual":{"options":["copy","view","assistant","download-pdf","download-spec","chatgpt","claude","perplexity","grok","devin","windsurf","cursor","vscode","mcp","add-mcp","devin-mcp"],"display":"header"},"thumbnails":{"appearance":"dark","background":"https://mintcdn.com/bitnob/6uym4cOVBRGACTcE/images/og-background.png?fit=max\u0026auto=format\u0026n=6uym4cOVBRGACTcE\u0026q=85\u0026s=05d6033949a75937f6e325be7eb98d83"},"markdown":{"schema":true,"instructions":["Bitnob API requests authenticate with an `X-Auth-Client` API key header against https://api.bitnob.com.","Always use the sandbox environment for testing. Never put live API keys in sample code.","Money amounts are integers in the smallest unit of the currency (satoshis for BTC, cents for fiat). Never use floats.","Every state-changing request takes a client-supplied `reference` and must be treated as idempotent on retry.","Quotes expire. Re-quote rather than reusing a stale quote id."]},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"bitnob","hasAudioNarration":false,"actualSubdomain":"bitnob","customDomains":["www.bitnob.dev"],"gitSource":{"type":"github","owner":"bitnob","repo":"stealthdocs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6aecadec07fe6b5b8129a2aa","collectionId":"a203871d-299d-4c5c-a71a-ab8b1036668b","liveDeploymentHistoryId":"6aecadec07fe6b5b8129a2aa","schemaVersion":"v3"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aeda9e8f8ed849a5c7d8668","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"Docs","count":117},{"language":"default","tag":"Business API","count":110},{"language":"default","tag":"Learn","count":106},{"language":"default","tag":"Enterprise API","count":89},{"language":"default","tag":"Bitnob Business","count":82},{"language":"default","tag":"Courses","count":82},{"language":"default","tag":"Card issuing","count":44},{"language":"default","tag":"Guides","count":43},{"language":"default","tag":"Get started","count":35},{"language":"default","tag":"Bitnob Enterprise","count":35}]},"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":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"playground.css","content":".pg-shell{--pg-bg:rgb(var(--background-light));--pg-fg:rgb(var(--gray-900));--pg-muted:rgb(var(--gray-500));--pg-border:rgb(var(--gray-200));--pg-field-bg:rgb(var(--background-light));--pg-field-border:rgb(var(--gray-300));--pg-placeholder:rgb(var(--gray-400));--pg-hover:rgb(var(--gray-50));--pg-primary:rgb(var(--primary));color-scheme:light;margin:1.5rem 0;border:1px solid var(--pg-border);border-radius:0.875rem;background:var(--pg-bg);overflow:hidden}.dark .pg-shell{--pg-bg:rgb(var(--gray-900));--pg-fg:rgb(var(--gray-100));--pg-muted:rgb(var(--gray-400));--pg-border:rgb(var(--gray-800));--pg-field-bg:rgb(var(--background-dark));--pg-field-border:rgb(var(--gray-800));--pg-placeholder:rgb(var(--gray-500));--pg-hover:rgb(var(--gray-800));--pg-primary:rgb(var(--primary-light));color-scheme:dark}.pg-header{padding:1rem 1.25rem;border-bottom:1px solid var(--pg-border)}.pg-title{font-size:1rem;font-weight:600;color:var(--pg-fg)}.pg-subtitle{margin-top:0.125rem;font-size:0.875rem;color:var(--pg-muted)}.pg-body{padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.pg-label{display:block;font-size:0.875rem;font-weight:500;color:var(--pg-fg);margin-bottom:0.375rem}.pg-input,.pg-select,.pg-textarea{width:100%;border-radius:0.5rem;border:1px solid var(--pg-field-border);background:var(--pg-field-bg);color:var(--pg-fg);padding:0.5rem 0.75rem;font-size:0.875rem;line-height:1.5}.pg-input,.pg-textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.pg-textarea{resize:vertical}.pg-input::placeholder,.pg-textarea::placeholder{color:var(--pg-placeholder)}.pg-input:focus,.pg-select:focus,.pg-textarea:focus{outline:none;border-color:var(--pg-primary);box-shadow:0 0 0 2px rgb(var(--primary)/0.35)}.pg-row{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem}.pg-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width:640px){.pg-grid{grid-template-columns:2fr 1fr}}.pg-btn-primary,.pg-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:0.375rem;height:2.25rem;border-radius:0.75rem;padding:0 0.75rem;font-size:0.875rem;font-weight:500;cursor:pointer;transition:opacity .15s,background-color .15s}.pg-btn-primary{background:rgb(var(--primary));color:#fff;border:1px solid transparent}.pg-btn-primary:hover{opacity:.8}.pg-btn-secondary{background:var(--pg-bg);color:var(--pg-fg);border:1px solid var(--pg-border)}.pg-btn-secondary:hover{background:var(--pg-hover)}.pg-btn-primary:disabled,.pg-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.pg-meta{font-size:0.75rem;color:var(--pg-muted)}.pg-check{display:inline-flex;align-items:center;gap:0.5rem;font-size:0.875rem;color:var(--pg-fg)}.pg-note{border-radius:0.5rem;padding:0.5rem 0.75rem;font-size:0.875rem;border:1px solid}.pg-error{border-color:rgb(254 202 202);background:rgb(254 242 242);color:rgb(185 28 28)}.dark .pg-error{border-color:rgb(127 29 29);background:rgb(69 10 10);color:rgb(252 165 165)}.pg-ok{border-color:rgb(167 243 208);background:rgb(236 253 245);color:rgb(4 120 87)}.dark .pg-ok{border-color:rgb(6 78 59);background:rgb(2 44 34);color:rgb(110 231 183)}.pg-warn{border-color:rgb(253 230 138);background:rgb(255 251 235);color:rgb(180 83 9)}.dark .pg-warn{border-color:rgb(120 53 15);background:rgb(69 26 3);color:rgb(253 230 138)}.pg-grid2{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width:640px){.pg-grid2{grid-template-columns:1fr 1fr}}.pg-grid3{display:grid;grid-template-columns:1fr;gap:0.75rem}@media (min-width:640px){.pg-grid3{grid-template-columns:repeat(3,1fr)}}.pg-between{margin-top:0.5rem;display:flex;align-items:center;justify-content:space-between}.pg-end{margin-top:0.5rem;display:flex;align-items:center;justify-content:flex-end}.pg-wrap{display:flex;flex-wrap:wrap;gap:0.5rem 1rem;padding-top:0.375rem}.pg-strong{font-weight:500;margin-bottom:0.25rem}.pg-file{display:block;width:100%;font-size:0.875rem;color:var(--pg-fg)}.pg-file::file-selector-button{margin-right:0.75rem;height:2.25rem;border-radius:0.75rem;border:0;padding:0 0.75rem;font-size:0.875rem;font-weight:500;color:#fff;background:rgb(var(--primary));cursor:pointer}.pg-checklabel{display:flex;align-items:center;gap:0.5rem;font-size:0.875rem;color:var(--pg-fg);cursor:pointer}.pg-checklabel-tight{display:flex;align-items:center;gap:0.375rem;font-size:0.875rem;color:var(--pg-fg);cursor:pointer}.pg-inline-label{font-size:0.875rem;font-weight:500;color:var(--pg-fg)}.pg-endpad{display:flex;align-items:flex-end;padding-bottom:0.5rem}.pg-tablewrap{overflow-x:auto;border-radius:0.5rem;border:1px solid var(--pg-border)}.pg-table{width:100%;font-size:0.875rem;border-collapse:collapse}.pg-table th{border-bottom:1px solid var(--pg-border);text-align:left;color:var(--pg-muted);font-weight:500;padding:0.5rem 0.75rem}.pg-table td{padding:0.5rem 0.75rem;color:var(--pg-fg)}.pg-table tr+tr td{border-top:1px solid var(--pg-border)}.pg-result-row{display:flex;justify-content:space-between;gap:1rem;font-size:0.875rem;padding:0.25rem 0}.pg-result-key{color:var(--pg-muted)}.pg-result-val{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--pg-fg);word-break:break-all}"}],"page":{"pagePath":"api-reference/platform/policies/create-draft-policy","slug":"/api-reference/platform/policies/create-draft-policy","pageMetadata":{"title":"Create draft policy","description":"Creates a new policy in `draft` status. Drafts are not enforced — they can be edited freely before activation. To activate, see POST /v1/policies/{id}/activate (coming in a future release). The `Idempotency-Key` header is required. Omitting `category` defaults to \"access\".","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /policies","href":"/api-reference/platform/policies/create-draft-policy","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Creates a new policy in \", _jsx(_components.code, {\n children: \"draft\"\n }), \" status. Drafts are not enforced — they can be edited freely before activation. To activate, see POST /v1/policies/\", \"/activate (coming in a future release). The \", _jsx(_components.code, {\n children: \"Idempotency-Key\"\n }), \" header is required. Omitting \", _jsx(_components.code, {\n children: \"category\"\n }), \" defaults to “access”.\"]\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":"Create draft policy","description":"Creates a new policy in `draft` status. Drafts are not enforced — they can be edited freely before activation. To activate, see POST /v1/policies/{id}/activate (coming in a future release). The `Idempotency-Key` header is required. Omitting `category` defaults to \"access\".","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /policies","href":"/api-reference/platform/policies/create-draft-policy","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/bitnob/a5987023060b539e/test-playground.js"],"openApiReferenceData":{"operation":{"description":"Creates a new policy in `draft` status. Drafts are not enforced — they can be edited freely before activation. To activate, see POST /v1/policies/{id}/activate (coming in a future release). The `Idempotency-Key` header is required. Omitting `category` defaults to \"access\".","operationId":"postPolicies","parameters":["42c4dd13-0dc9-4ff8-b920-4af69fca0001","9a496781-592b-4415-9bfa-030ecbe4ece8"],"requestBody":"d0f391e5-2035-4efa-bbe3-0196b357ea92","responses":{"201":"53b9a46c-05ab-45df-820a-87f8825abdfd","400":"39eadc8e-8ef9-4e74-bb49-fe9887656bcc","401":"ec7bf724-3b7a-44a6-8bd1-b068d182a37d","403":"111c9327-6bc2-41f4-b064-010da6c630e9","409":"f7d554ad-4faa-44b6-be71-b34973c6d02c","429":"16c8a06b-0ad8-4dc5-bf25-3b857d0432da","500":"66e31012-e419-4d9f-8b94-4fd9f55397a9"},"security":["03f81cc4-6014-41dd-b211-cebf405cf431"],"summary":"Create draft policy","tags":["Policies"],"method":"post","type":"path","servers":["86022967-0a92-4be6-88af-26a950f3ce7c"],"path":"/policies","baseUrlOptions":["https://api.platform.bitnob.com"],"title":"Create draft policy","codeSamples":[],"requestExampleLanguages":["bash","javascript","python","php","go","java"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.name":"High-value transfer review","body.category":"approvals","body.description":"Require approval for transfers above $10k","body.rules.items.0.action_type":"require_approval","body.rules.items.0.name":"Block large transfers","body.rules.items.0.action_config.items.0":"\u003cstring>","body.rules.items.0.conditions.items.0.field":"amount_usd","body.rules.items.0.conditions.items.0.operator":"greater_than","body.rules.items.0.conditions.items.0.max":"500","body.rules.items.0.conditions.items.0.min":"100","body.rules.items.0.conditions.items.0.value":"10000","body.rules.items.0.description":"\u003cstring>","body.rules.items.0.order":123}]},"dependencies":{"parameters":{"42c4dd13-0dc9-4ff8-b920-4af69fca0001":{"description":"API version (defaults to the latest supported version if omitted).","in":"header","name":"API-Version","required":false,"schema":{"default":"v1","enum":["v1"],"type":"string","isRequired":false,"description":"API version (defaults to the latest supported version if omitted).","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"9a496781-592b-4415-9bfa-030ecbe4ece8":{"description":"Unique key (1-255 printable ASCII chars) used to safely retry write operations. Same key + body returns the cached response; same key + different body returns 409.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string","isRequired":true,"description":"Unique key (1-255 printable ASCII chars) used to safely retry write operations. Same key + body returns the cached response; same key + different body returns 409.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"schema":{"properties":{"name":{"description":"Human-readable name of the policy (2–100 characters).","example":"High-value transfer review","maxLength":100,"minLength":2,"type":"string","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"category":{"description":"Policy category controlling how it is evaluated; defaults to \"access\" when omitted.","enum":["access","whitelist","limits","approvals","velocity","compliance","quorum"],"example":"approvals","type":"string","uniqueKey":"category","typeLabel":"enum\u003cstring>"},"description":{"description":"Optional free-text summary of the policy's intent.","example":"Require approval for transfers above $10k","maxLength":1000,"type":"string","uniqueKey":"description","typeLabel":"string"},"rules":{"description":"Optional list of inline rules; rules can also be added later via the rule endpoints.","items":{"properties":{"action_type":{"description":"Action taken when the rule matches: allow, block, require_approval, alert, or delay.","enum":["allow","block","require_approval","alert","delay"],"example":"require_approval","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].action_type","typeLabel":"enum\u003cstring>"},"name":{"description":"Human-readable name of the rule (2–255 characters).","example":"Block large transfers","maxLength":255,"minLength":2,"type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].name","typeLabel":"string"},"action_config":{"description":"Type-specific configuration for the action; shape depends on action_type.","items":{"type":"string","uniqueKey":"rules.items.[INDEX].action_config.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"rules.items.[INDEX].action_config","typeLabel":"string[]"},"conditions":{"description":"Conditions that must all match for the rule to apply; optional on a draft, required when activating.","items":{"properties":{"field":{"description":"The request attribute the condition compares against; validated against the backend's allowlist of fields.","example":"amount_usd","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX].field","typeLabel":"string"},"operator":{"description":"Comparison operator applied to the field.","enum":["equal","not_equal","greater_than","less_than","greater_than_or_equal","less_than_or_equal","between","not_between","in","not_in","contains"],"example":"greater_than","type":"string","isRequired":true,"uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX].operator","typeLabel":"enum\u003cstring>"},"max":{"description":"Range upper bound, used with between/not_between operators.","example":"500","uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX].max","typeLabel":"any"},"min":{"description":"Range lower bound, used with between/not_between operators.","example":"100","uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX].min","typeLabel":"any"},"value":{"description":"Scalar comparison value, used with single-operand operators.","example":"10000","uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX].value","typeLabel":"any"},"values":{"description":"Set of values, used with in/not_in operators.","example":"[\"BTC\",\"ETH\"]","items":{"oneOf":[{}],"uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX].values.items.[INDEX]","typeLabel":"any"},"type":"array","uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX].values","typeLabel":"any[]"}},"required":["field","operator"],"type":"object","uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"rules.items.[INDEX].conditions","typeLabel":"object[]"},"description":{"description":"Optional free-text summary of the rule's intent.","maxLength":1000,"type":"string","uniqueKey":"rules.items.[INDEX].description","typeLabel":"string"},"order":{"description":"Position of the rule in the policy's first-match-wins evaluation order; appended in creation order when omitted.","type":"integer","uniqueKey":"rules.items.[INDEX].order","typeLabel":"integer"}},"required":["name","action_type"],"type":"object","uniqueKey":"rules.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"rules","typeLabel":"object[]"}},"required":["name"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"High-value transfer review","category":"approvals","description":"Require approval for transfers above $10k","rules":[{"action_type":"require_approval","name":"Block large transfers","action_config":["\u003cstring>"],"conditions":[{"field":"amount_usd","operator":"greater_than","max":"500","min":"100","value":"10000","values":"[\"BTC\",\"ETH\"]"}],"description":"\u003cstring>","order":123}]}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"53b9a46c-05ab-45df-820a-87f8825abdfd":{"content":{"application/json":{"example":{"category":"approvals","created_at":"2026-05-16T10:30:00Z","created_by":"3f1a2b3c-4d5e-6f7a-8b9c-0d1e2f3a4b5c","created_by_name":"Jane Doe","description":"Require approval for transfers above $10k","id":"a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d","is_active":false,"is_template":false,"name":"High-value transfer review","object":"policy","priority":100,"rule_count":2,"rules":[{"action_type":"require_approval","conditions":[{"field":"amount_usd","max":"500","min":"100","operator":"greater_than","value":"10000","values":"[\"BTC\",\"ETH\"]"}],"created_at":"2026-05-16T10:30:00Z","id":"7c9e6679-7425-40de-944b-e07fc1f90ae7","name":"Block large transfers","object":"rule","order":1,"priority":50,"updated_at":"2026-05-16T10:30:00Z"}],"status":"draft","template_id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","updated_at":"2026-05-16T10:30:00Z"},"schema":{"properties":{"category":{"description":"Policy category controlling how it is evaluated: access, whitelist, limits, approvals, velocity, compliance, or quorum.","example":"approvals","type":"string","uniqueKey":"category","typeLabel":"string"},"created_at":{"description":"Timestamp when the policy was created.","example":"2026-05-16T10:30:00Z","format":"date-time","type":"string","uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"created_by":{"description":"Identifier of the user who created the policy.","example":"3f1a2b3c-4d5e-6f7a-8b9c-0d1e2f3a4b5c","type":"string","uniqueKey":"created_by","typeLabel":"string"},"created_by_name":{"description":"Display name of the user who created the policy.","example":"Jane Doe","type":"string","uniqueKey":"created_by_name","typeLabel":"string"},"description":{"description":"Optional free-text summary of the policy's intent.","example":"Require approval for transfers above $10k","type":"string","uniqueKey":"description","typeLabel":"string"},"id":{"description":"Unique identifier of the policy.","example":"a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d","type":"string","uniqueKey":"id","typeLabel":"string"},"is_active":{"deprecated":true,"description":"Deprecated: derived from status (true when status is \"enforced\"). Read status instead.","example":false,"type":"boolean","uniqueKey":"is_active","typeLabel":"boolean"},"is_template":{"description":"Whether this policy is a reusable template.","example":false,"type":"boolean","uniqueKey":"is_template","typeLabel":"boolean"},"name":{"description":"Human-readable name of the policy.","example":"High-value transfer review","type":"string","uniqueKey":"name","typeLabel":"string"},"object":{"description":"Object type discriminator; always \"policy\".","example":"policy","type":"string","uniqueKey":"object","typeLabel":"string"},"priority":{"description":"Evaluation priority of the policy relative to other policies.","example":100,"type":"integer","uniqueKey":"priority","typeLabel":"integer"},"rule_count":{"description":"Number of rules contained in the policy.","example":2,"type":"integer","uniqueKey":"rule_count","typeLabel":"integer"},"rules":{"description":"The policy's rules, when expanded.","items":{"properties":{"action_config":{"description":"Type-specific configuration for the action; shape depends on action_type.","uniqueKey":"rules.items.[INDEX].action_config","typeLabel":"any"},"action_type":{"description":"Action taken when the rule matches: allow, block, require_approval, alert, or delay.","example":"require_approval","type":"string","uniqueKey":"rules.items.[INDEX].action_type","typeLabel":"string"},"conditions":{"description":"Conditions that must all match for the rule to apply.","items":{"properties":{"field":{"description":"The request attribute the condition compares against.","example":"amount_usd","type":"string","uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX].field","typeLabel":"string"},"max":{"description":"Range upper bound for between/not_between operators.","example":"500","uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX].max","typeLabel":"any"},"min":{"description":"Range lower bound for between/not_between operators.","example":"100","uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX].min","typeLabel":"any"},"operator":{"description":"Comparison operator applied to the field.","example":"greater_than","type":"string","uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX].operator","typeLabel":"string"},"value":{"description":"Scalar comparison value for single-operand operators.","example":"10000","uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX].value","typeLabel":"any"},"values":{"description":"Set of allowed (or disallowed) values for in/not_in operators.","example":"[\"BTC\",\"ETH\"]","items":{"oneOf":[{}],"uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX].values.items.[INDEX]","typeLabel":"any"},"type":"array","uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX].values","typeLabel":"any[]"}},"type":"object","uniqueKey":"rules.items.[INDEX].conditions.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"rules.items.[INDEX].conditions","typeLabel":"object[]"},"created_at":{"description":"Timestamp when the rule was created.","example":"2026-05-16T10:30:00Z","format":"date-time","type":"string","uniqueKey":"rules.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"description":{"description":"Optional free-text summary of the rule's intent.","type":"string","uniqueKey":"rules.items.[INDEX].description","typeLabel":"string"},"id":{"description":"Unique identifier of the rule.","example":"7c9e6679-7425-40de-944b-e07fc1f90ae7","type":"string","uniqueKey":"rules.items.[INDEX].id","typeLabel":"string"},"name":{"description":"Human-readable name of the rule.","example":"Block large transfers","type":"string","uniqueKey":"rules.items.[INDEX].name","typeLabel":"string"},"object":{"description":"Object type discriminator; always \"rule\".","example":"rule","type":"string","uniqueKey":"rules.items.[INDEX].object","typeLabel":"string"},"order":{"description":"Position of the rule in the policy's first-match-wins evaluation order.","example":1,"type":"integer","uniqueKey":"rules.items.[INDEX].order","typeLabel":"integer"},"priority":{"description":"Evaluation priority of the rule.","example":50,"type":"integer","uniqueKey":"rules.items.[INDEX].priority","typeLabel":"integer"},"updated_at":{"description":"Timestamp when the rule was last updated.","example":"2026-05-16T10:30:00Z","format":"date-time","type":"string","uniqueKey":"rules.items.[INDEX].updated_at","typeLabel":"string\u003cdate-time>"}},"type":"object","uniqueKey":"rules.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"rules","typeLabel":"object[]"},"status":{"description":"Canonical lifecycle status: draft, enforced, or archived.","example":"draft","type":"string","uniqueKey":"status","typeLabel":"string"},"template_id":{"description":"Identifier of the template this policy was created from, if any.","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","type":"string","uniqueKey":"template_id","typeLabel":"string"},"updated_at":{"description":"Timestamp when the policy was last updated.","example":"2026-05-16T10:30:00Z","format":"date-time","type":"string","uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"category":"approvals","created_at":"2026-05-16T10:30:00Z","created_by":"3f1a2b3c-4d5e-6f7a-8b9c-0d1e2f3a4b5c","created_by_name":"Jane Doe","description":"Require approval for transfers above $10k","id":"a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d","is_active":false,"is_template":false,"name":"High-value transfer review","object":"policy","priority":100,"rule_count":2,"rules":[{"action_type":"require_approval","conditions":[{"field":"amount_usd","max":"500","min":"100","operator":"greater_than","value":"10000","values":"[\"BTC\",\"ETH\"]"}],"created_at":"2026-05-16T10:30:00Z","id":"7c9e6679-7425-40de-944b-e07fc1f90ae7","name":"Block large transfers","object":"rule","order":1,"priority":50,"updated_at":"2026-05-16T10:30:00Z"}],"status":"draft","template_id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","updated_at":"2026-05-16T10:30:00Z"}}},"exampleType":"examples"}},"description":"Created","headers":{"Idempotent-Replayed":{"description":"True when this response was replayed from an earlier request with the same Idempotency-Key.","schema":{"type":"boolean"}},"X-RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) at which the rate-limit window resets.","schema":{"type":"integer"}},"X-RateLimit-Scope":{"description":"Scope the rate limit was applied at: key for authenticated API traffic, or ip for unauthenticated/failed-auth traffic. RPC proxy traffic is limited separately (per second, per organization) and is not bucketed here.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id for this request; quote it in support requests.","schema":{"type":"string"}}},"exampleType":"examples"},"39eadc8e-8ef9-4e74-bb49-fe9887656bcc":{"content":{"application/json":{"schema":{"description":"Standard error envelope.","properties":{"error":{"properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"details":{"additionalProperties":true,"type":"object","uniqueKey":"error.details","typeLabel":"object"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"param":{"type":"string","uniqueKey":"error.param","typeLabel":"string"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"}},"type":"object","uniqueKey":"error","typeLabel":"object"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","details":{},"message":"\u003cstring>","param":"\u003cstring>","request_id":"\u003cstring>","type":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"Invalid request","exampleType":"generated"},"ec7bf724-3b7a-44a6-8bd1-b068d182a37d":{"content":{"application/json":{"schema":{"description":"Standard error envelope.","properties":{"error":{"properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"details":{"additionalProperties":true,"type":"object","uniqueKey":"error.details","typeLabel":"object"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"param":{"type":"string","uniqueKey":"error.param","typeLabel":"string"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"}},"type":"object","uniqueKey":"error","typeLabel":"object"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","details":{},"message":"\u003cstring>","param":"\u003cstring>","request_id":"\u003cstring>","type":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"Authentication required","exampleType":"generated"},"111c9327-6bc2-41f4-b064-010da6c630e9":{"content":{"application/json":{"schema":{"description":"Standard error envelope.","properties":{"error":{"properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"details":{"additionalProperties":true,"type":"object","uniqueKey":"error.details","typeLabel":"object"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"param":{"type":"string","uniqueKey":"error.param","typeLabel":"string"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"}},"type":"object","uniqueKey":"error","typeLabel":"object"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","details":{},"message":"\u003cstring>","param":"\u003cstring>","request_id":"\u003cstring>","type":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"Insufficient permissions","exampleType":"generated"},"f7d554ad-4faa-44b6-be71-b34973c6d02c":{"content":{"application/json":{"schema":{"description":"Standard error envelope.","properties":{"error":{"properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"details":{"additionalProperties":true,"type":"object","uniqueKey":"error.details","typeLabel":"object"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"param":{"type":"string","uniqueKey":"error.param","typeLabel":"string"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"}},"type":"object","uniqueKey":"error","typeLabel":"object"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","details":{},"message":"\u003cstring>","param":"\u003cstring>","request_id":"\u003cstring>","type":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"Conflict","exampleType":"generated"},"16c8a06b-0ad8-4dc5-bf25-3b857d0432da":{"content":{"application/json":{"schema":{"description":"Standard error envelope.","properties":{"error":{"properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"details":{"additionalProperties":true,"type":"object","uniqueKey":"error.details","typeLabel":"object"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"param":{"type":"string","uniqueKey":"error.param","typeLabel":"string"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"}},"type":"object","uniqueKey":"error","typeLabel":"object"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","details":{},"message":"\u003cstring>","param":"\u003cstring>","request_id":"\u003cstring>","type":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"Rate limit exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"exampleType":"generated"},"66e31012-e419-4d9f-8b94-4fd9f55397a9":{"content":{"application/json":{"schema":{"description":"Standard error envelope.","properties":{"error":{"properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"details":{"additionalProperties":true,"type":"object","uniqueKey":"error.details","typeLabel":"object"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"param":{"type":"string","uniqueKey":"error.param","typeLabel":"string"},"request_id":{"type":"string","uniqueKey":"error.request_id","typeLabel":"string"},"type":{"type":"string","uniqueKey":"error.type","typeLabel":"string"}},"type":"object","uniqueKey":"error","typeLabel":"object"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","details":{},"message":"\u003cstring>","param":"\u003cstring>","request_id":"\u003cstring>","type":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"Internal server error","exampleType":"generated"}},"security":{"03f81cc4-6014-41dd-b211-cebf405cf431":{"ApiKeyAuth":{"in":"header","name":"X-API-Key","type":"apiKey","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"86022967-0a92-4be6-88af-26a950f3ce7c":{"description":"Production","url":"https://api.platform.bitnob.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"in":"header","name":"X-API-Key","type":"apiKey","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"X-API-Key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"X-API-Key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"api-collections/swagger/bitnob-platform.openapi.json"},"subdomain":"bitnob","siteName":"Bitnob","title":"Create draft policy - Bitnob","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T15:31:36.554Z","originalFileLocation":"api-reference/platform/policies/create-draft-policy.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=\"Creates a new policy in draft status. Drafts are not enforced — they can be edited freely before activation. To activate, see POST /v1/policies/{id}/activate (coming in a future release). The Idempotency-Key header is required. Omitting category defaults to \u0026quot;access\u0026quot;.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Bitnob\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/bitnob/eBFTVQiF9mXbjiUl/_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/bitnob/eBFTVQiF9mXbjiUl/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/bitnob/eBFTVQiF9mXbjiUl/_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/bitnob/eBFTVQiF9mXbjiUl/_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/bitnob/eBFTVQiF9mXbjiUl/_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/bitnob/eBFTVQiF9mXbjiUl/_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/bitnob/eBFTVQiF9mXbjiUl/_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/bitnob/eBFTVQiF9mXbjiUl/_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/bitnob/eBFTVQiF9mXbjiUl/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create draft policy - Bitnob\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a new policy in draft status. Drafts are not enforced — they can be edited freely before activation. To activate, see POST /v1/policies/{id}/activate (coming in a future release). The Idempotency-Key header is required. Omitting category defaults to \u0026quot;access\u0026quot;.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Bitnob Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.bitnob.dev/api-reference/platform/policies/create-draft-policy\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://bitnob.mintlify.site/_mintlify/api/og/v2?division=Policies\u0026amp;title=Create+draft+policy\u0026amp;description=Creates+a+new+policy+in+%60draft%60+status.+Drafts+are+not+enforced+%E2%80%94+they+can+be+edited+freely+before+activation.+To+activate%2C+see+POST+%2Fv1%2Fpolicies%2F%7Bid%7D%2Factivate+\u0026amp;theme=1bbb91a73b5fc150fde1eea2\u0026amp;signature=e1b72a16c905ef4388c53bf475aaef583a0ca3ee902838bea19354ab6caacae7\">\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=\"Create draft policy - Bitnob\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a new policy in draft status. Drafts are not enforced — they can be edited freely before activation. To activate, see POST /v1/policies/{id}/activate (coming in a future release). The Idempotency-Key header is required. Omitting category defaults to \u0026quot;access\u0026quot;.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://bitnob.mintlify.site/_mintlify/api/og/v2?division=Policies\u0026amp;title=Create+draft+policy\u0026amp;description=Creates+a+new+policy+in+%60draft%60+status.+Drafts+are+not+enforced+%E2%80%94+they+can+be+edited+freely+before+activation.+To+activate%2C+see+POST+%2Fv1%2Fpolicies%2F%7Bid%7D%2Factivate+\u0026amp;theme=1bbb91a73b5fc150fde1eea2\u0026amp;signature=e1b72a16c905ef4388c53bf475aaef583a0ca3ee902838bea19354ab6caacae7\">\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/bitnob/eBFTVQiF9mXbjiUl/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Bitnob\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00A57F\">\u003cmeta data-mint-head name=\"twitter:creator\" content=\"@bitnob\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.bitnob.dev/api-reference/platform/policies/create-draft-policy\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/platform/policies/create-draft-policy.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://bitnob.com/#organization\",\"name\":\"Bitnob\",\"url\":\"https://bitnob.com/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://bitnob.com/bitnob-logo.png\"},\"sameAs\":[\"https://x.com/bitnob\",\"https://twitter.com/Bitnob_Official\",\"https://linkedin.com/company/bitnob\",\"https://github.com/bitnob\",\"https://instagram.com/Bitnob\",\"https://youtube.com/@bitnob\",\"https://facebook.com/bitnob\",\"https://tiktok.com/@bitnob\"]},{\"@type\":\"WebSite\",\"@id\":\"https://www.bitnob.dev#website\",\"name\":\"Bitnob\",\"url\":\"https://www.bitnob.dev\",\"publisher\":{\"@id\":\"https://bitnob.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.bitnob.dev/api-reference/platform/policies/create-draft-policy#webpage\",\"url\":\"https://www.bitnob.dev/api-reference/platform/policies/create-draft-policy\",\"name\":\"Create draft policy\",\"description\":\"Creates a new policy in draft status. Drafts are not enforced — they can be edited freely before activation. To activate, see POST /v1/policies/{id}/activate (coming in a future release). The Idempotency-Key header is required. Omitting category defaults to \\\"access\\\".\",\"dateModified\":\"2026-11-05T15:31:36.554Z\",\"isPartOf\":{\"@id\":\"https://www.bitnob.dev#website\"},\"breadcrumb\":{\"@id\":\"https://www.bitnob.dev/api-reference/platform/policies/create-draft-policy#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.bitnob.dev/api-reference/platform/policies/create-draft-policy#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Policies\",\"item\":\"https://www.bitnob.dev/api-reference/platform/policies/list-policies\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create draft policy\",\"item\":\"https://www.bitnob.dev/api-reference/platform/policies/create-draft-policy\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://www.bitnob.dev/api-reference/platform/policies/create-draft-policy#apireference\",\"headline\":\"Create draft policy\",\"name\":\"Create draft policy\",\"description\":\"Creates a new policy in draft status. Drafts are not enforced — they can be edited freely before activation. To activate, see POST /v1/policies/{id}/activate (coming in a future release). The Idempotency-Key header is required. Omitting category defaults to \\\"access\\\".\",\"url\":\"https://www.bitnob.dev/api-reference/platform/policies/create-draft-policy\",\"mainEntityOfPage\":{\"@id\":\"https://www.bitnob.dev/api-reference/platform/policies/create-draft-policy#webpage\"},\"dateModified\":\"2026-11-05T15:31:36.554Z\",\"publisher\":{\"@id\":\"https://bitnob.com/#organization\"},\"isPartOf\":{\"@id\":\"https://www.bitnob.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Bitnob\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Bitnob","nav":{"global":null,"tabs":[{"tab":"Home","icon":"house","pages":[{"title":"Home","href":""}]},{"tab":"Docs","icon":"book-open","dropdowns":[{"dropdown":"Bitnob Business","icon":"bolt","description":"Payouts, cards, trading, and virtual accounts.","groups":[{"group":"Get started","icon":"rocket","expanded":true,"pages":[{"title":"Introduction to the Bitnob APIs","sidebarTitle":"Introduction","href":"/docs/getting-started/overview"},{"title":"Set up your account","href":"/docs/getting-started/account-setup"},{"title":"Bitnob Business API quickstart","sidebarTitle":"Quickstart","href":"/docs/getting-started/quickstart"},{"group":"Concepts","pages":[{"title":"Core concepts and architecture","href":"/docs/getting-started/core-concepts-and-architecture"},{"title":"Currencies and amounts","href":"/docs/getting-started/core-concepts-and-architecture/currencies-and-amounts"},{"title":"Fees and limits by product","sidebarTitle":"Fees and limits","href":"/docs/getting-started/fees-and-limits"},{"title":"Which KYC endpoint to use","sidebarTitle":"Which KYC endpoint","href":"/docs/getting-started/which-kyc-endpoint"}]},{"group":"Build reliably","pages":[{"title":"API keys and credential security","href":"/docs/getting-started/api-best-practices/api-keys-and-credentials"},{"title":"Idempotency and references","href":"/docs/getting-started/api-best-practices/idempotency-and-reference-integrity"},{"title":"Webhooks and event handling","href":"/docs/getting-started/api-best-practices/webhook-best-practices"},{"title":"Errors and retries","href":"/docs/getting-started/api-best-practices/errors-and-retries"},{"title":"Quote lifecycle and expiry","href":"/docs/getting-started/api-best-practices/quote-expiry-and-transaction-windows"},{"title":"Test in sandbox","href":"/docs/getting-started/api-best-practices/simulating-flows-and-testing-in-sandbox"},{"title":"Observability, logging, and traceability","href":"/docs/getting-started/api-best-practices/observability-logging-and-traceability"}]}]},{"group":"Bitcoin","icon":"bitcoin","pages":[{"title":"Bitcoin and Lightning on Bitnob","sidebarTitle":"Overview","href":"/docs/bitcoin/overview"},{"group":"Concepts","pages":[{"title":"LNURL and Lightning addresses","href":"/docs/bitcoin/lnurl-and-lightning-addresses"}]},{"group":"Get started","pages":[{"title":"Send bitcoin on-chain or over Lightning","href":"/docs/bitcoin/send-bitcoin"}]},{"group":"Guides","pages":[{"title":"Issue addresses and Lightning invoices","href":"/docs/bitcoin/issuing-bitcoin-addresses-and-lightning-invoices"},{"title":"Test Lightning payments in sandbox","sidebarTitle":"Test Lightning in sandbox","href":"/docs/bitcoin/test-lightning-in-sandbox"}]},{"group":"Reference","pages":[{"title":"Confirmations and webhook events","href":"/docs/bitcoin/confirmations-and-webhook-events"}]}]},{"group":"Stablecoins","icon":"coins","pages":[{"title":"Stablecoins on Bitnob","sidebarTitle":"Overview","href":"/docs/stablecoins/overview"},{"group":"Concepts","pages":[{"title":"How stablecoins work on Bitnob","href":"/docs/stablecoins/key-concepts"},{"title":"Why multiple chains","href":"/docs/stablecoins/why-support-stablecoins-on-multiple-chains"}]},{"group":"Get started","pages":[{"title":"Accept USDT and settle in naira","href":"/docs/stablecoins/accept-usdt-and-settle-in-naira"}]},{"group":"Guides","pages":[{"title":"Set up for stablecoins","href":"/docs/stablecoins/getting-started-with-stablecoins"},{"title":"Issue deposit addresses","href":"/docs/stablecoins/issuing-stablecoin-addresses"},{"title":"Receive deposits","href":"/docs/stablecoins/receiving-stablecoin-deposits"},{"title":"Send stablecoins","href":"/docs/stablecoins/sending-stablecoins"},{"title":"Transfer between wallets","href":"/docs/stablecoins/internal-wallet-to-wallet-transfers"},{"title":"Receive stablecoin webhooks","href":"/docs/stablecoins/webhooks"},{"title":"Handle transfer failures","href":"/docs/stablecoins/error-handling-and-failure-scenarios"},{"title":"Reconcile balances","href":"/docs/stablecoins/stablecoin-reconciliation-and-ledger-integrity-guide"}]},{"group":"Reference","pages":[{"title":"Stablecoin address webhook events","sidebarTitle":"Address webhook events","href":"/docs/stablecoins/address-webhook-events"},{"title":"Withdrawal webhook events","sidebarTitle":"Withdrawal webhook events","href":"/docs/stablecoins/withdrawal-webhook-events"},{"title":"Supported stablecoin chains and tokens","sidebarTitle":"Supported chains","href":"/docs/stablecoins/supported-chains"}]}]},{"group":"Trading","icon":"arrow-right-arrow-left","pages":[{"title":"Trading and currency conversion","sidebarTitle":"Overview","href":"/docs/trading/overview"},{"group":"Concepts","pages":[{"title":"How trading works","href":"/docs/trading/how-trading-works"}]},{"group":"Get started","pages":[{"title":"Swap bitcoin to USDT","href":"/docs/trading/swap-bitcoin-to-usdt"}]},{"group":"Guides","pages":[{"title":"Create a quote","href":"/docs/trading/create-quote"},{"title":"Execute a trade","href":"/docs/trading/execute-trade"},{"title":"Track orders and history","href":"/docs/trading/trade-status-and-history"},{"title":"Receive trade webhooks","href":"/docs/trading/trade-webhooks"},{"title":"Handle trading failures","href":"/docs/trading/error-handling-patterns"}]},{"group":"Reference","pages":[{"title":"Trade statuses and webhook events","sidebarTitle":"Statuses and webhook events","href":"/docs/trading/statuses-and-webhook-events"}]}]},{"group":"Payouts","icon":"money-bill-transfer","pages":[{"title":"Payouts to bank accounts and mobile money","sidebarTitle":"Overview","href":"/docs/payouts/overview"},{"group":"Concepts","pages":[{"title":"How payouts settle","href":"/docs/payouts/settlement-models"},{"title":"The payout lifecycle","href":"/docs/payouts/payouts-lifecycle"}]},{"group":"Get started","pages":[{"title":"Send your first payout","href":"/docs/payouts/send-your-first-payout"}]},{"group":"Guides","pages":[{"title":"Validate a beneficiary","href":"/docs/payouts/validate-a-beneficiary"},{"title":"Send a SWIFT payout","href":"/docs/payouts/swift-payout"},{"title":"Receive payout webhooks","href":"/docs/payouts/webhook-payout"},{"title":"Handle payout failures","href":"/docs/payouts/error-handling"},{"title":"Payouts API integration guide","href":"/api-reference/payouts/usage-example"},{"title":"The Trip timeline","href":"/docs/payouts/understanding-trip-timeline"},{"title":"Payout incident postmortem template","href":"/docs/payouts/payout-incident-postmortem"},{"title":"Troubleshooting: payout stuck in pending","href":"/docs/payouts/troubleshoot-payout-stuck"},{"title":"Troubleshooting: webhooks not received","href":"/docs/payouts/troubleshoot-webhooks-not-received"}]},{"group":"Reference","pages":[{"title":"Payout statuses and webhook events","sidebarTitle":"Statuses and webhook events","href":"/docs/payouts/statuses-and-webhook-events"},{"title":"Payout webhook events","sidebarTitle":"Webhook events","href":"/docs/payouts/webhook-events"},{"title":"Supported currencies and rails","href":"/docs/payouts/supported-currencies"},{"group":"Corridors","pages":[{"title":"Corridor behavior","href":"/docs/payouts/corridor-specific-behavior"},{"title":"Nigeria","href":"/docs/payouts/corridor-specific-behavior/nigeria-payout"},{"title":"Ghana","href":"/docs/payouts/corridor-specific-behavior/ghana-payout"},{"title":"Kenya","href":"/docs/payouts/corridor-specific-behavior/kenya-payout"}]},{"title":"Payout glossary","sidebarTitle":"Glossary","href":"/docs/payouts/glossary-terms"}]}]},{"group":"Card issuing","icon":"credit-card","pages":[{"title":"Virtual card issuing on Bitnob","sidebarTitle":"Overview","href":"/docs/card-issuing/overview"},{"group":"Concepts","pages":[{"title":"How card issuance works","href":"/docs/card-issuing/card-issuance"}]},{"group":"Get started","pages":[{"title":"Issue your first card","href":"/docs/card-issuing/issue-your-first-card"}]},{"group":"Guides","pages":[{"title":"Verify cardholders with Card KYC","sidebarTitle":"Card KYC","href":"/docs/card-issuing/card-kyc"},{"title":"Fund a card","href":"/docs/card-issuing/card-funding"},{"title":"Freeze, unfreeze, or terminate a card","href":"/docs/card-issuing/card-status-management"},{"title":"Set card spending limits","sidebarTitle":"Set spending limits","href":"/docs/card-issuing/spending-limits"},{"title":"Monitor card transactions","href":"/docs/card-issuing/transaction-monitoring"},{"title":"Receive card webhooks","href":"/docs/card-issuing/receive-card-webhooks"},{"title":"Decrypt card secured details","sidebarTitle":"Decrypt card details","href":"/docs/card-issuing/decrypt-card-details"}]},{"group":"Reference","pages":[{"title":"Webhook events","href":"/docs/card-issuing/webhooks"},{"title":"Virtual card webhook events","sidebarTitle":"Webhook payloads","href":"/docs/card-issuing/webhook-payloads"},{"title":"Fees and decline rules","href":"/docs/card-issuing/card-fees"},{"title":"Virtual card glossary","sidebarTitle":"Glossary","href":"/docs/card-issuing/virtual-card-glossary"}]}]},{"group":"Virtual accounts","icon":"building-columns","pages":[{"title":"NGN virtual accounts on Bitnob","sidebarTitle":"Overview","href":"/docs/virtual-accounts/overview"},{"group":"Get started","pages":[{"title":"Set up NGN virtual accounts","sidebarTitle":"Set up virtual accounts","href":"/docs/virtual-accounts/set-up-virtual-accounts"},{"title":"Virtual account deposit webhook","sidebarTitle":"Deposit webhook","href":"/docs/virtual-accounts/deposit-webhook"}]}]}]},{"dropdown":"Bitnob Enterprise","icon":"wallet","description":"Policy-governed wallets.","groups":[{"group":"Get started","icon":"rocket","expanded":true,"pages":[{"title":"Bitnob Enterprise API overview","sidebarTitle":"Introduction","href":"/docs/platform/overview"},{"title":"Set up your Bitnob Enterprise account","sidebarTitle":"Set up your account","href":"/docs/platform/account-setup"},{"title":"Bitnob Enterprise API quickstart","sidebarTitle":"Quickstart","href":"/docs/platform/quickstart"},{"group":"Concepts","pages":[{"title":"Bitnob Enterprise core concepts","sidebarTitle":"Core concepts","href":"/docs/platform/core-concepts"}]},{"group":"Build reliably","pages":[{"title":"Bitnob Enterprise API best practices","sidebarTitle":"Best practices","href":"/docs/platform/best-practices"}]}]},{"group":"Policies","icon":"shield-check","pages":[{"title":"Transaction policies on Bitnob Enterprise","sidebarTitle":"Overview","href":"/docs/platform/policies/overview"},{"group":"Concepts","pages":[{"title":"How Bitnob Enterprise evaluates policy rules","sidebarTitle":"How evaluation works","href":"/docs/platform/policies/how-policy-evaluation-works"},{"title":"Policy lifecycle and quorum approval","sidebarTitle":"Lifecycle and quorum","href":"/docs/platform/policies/policy-lifecycle-and-quorum"}]},{"group":"Get started","pages":[{"title":"Write and activate your first Enterprise policy","sidebarTitle":"Write your first policy","href":"/docs/platform/policies/write-and-activate-your-first-policy"}]},{"group":"Guides","pages":[{"title":"Require approval for high-value transfers","sidebarTitle":"Require approval","href":"/docs/platform/policies/require-approval-for-high-value-transfers"},{"title":"Delay large transfers with a policy time lock","sidebarTitle":"Add a time lock","href":"/docs/platform/policies/delay-large-transfers-with-a-time-lock"},{"title":"Test policy rules with dry-run evaluation","sidebarTitle":"Test with dry runs","href":"/docs/platform/policies/test-rules-with-dry-run-evaluation"},{"title":"Change an enforced Bitnob Enterprise policy","sidebarTitle":"Change a live policy","href":"/docs/platform/policies/change-an-enforced-policy"},{"title":"Handle transactions held or rejected by policy","sidebarTitle":"Handle held transactions","href":"/docs/platform/policies/handle-held-and-rejected-transactions"}]},{"group":"Reference","pages":[{"title":"Bitnob Enterprise policy rule reference","sidebarTitle":"Rule reference","href":"/docs/platform/policies/rule-reference"},{"title":"Policy statuses, errors, and webhook events","sidebarTitle":"Statuses and events","href":"/docs/platform/policies/statuses-and-webhook-events"}]}]},{"group":"Gas sponsorship","icon":"gas-pump","pages":[{"title":"Gas sponsorship on Bitnob Enterprise","sidebarTitle":"Overview","href":"/docs/platform/gas-sponsorship/overview"},{"group":"Concepts","pages":[{"title":"How Bitnob Enterprise gas stations work","sidebarTitle":"How gas stations work","href":"/docs/platform/gas-sponsorship/how-gas-stations-work"},{"title":"How Bitnob sponsored transfers work","sidebarTitle":"How sponsored transfers work","href":"/docs/platform/gas-sponsorship/how-sponsored-transfers-work"},{"title":"What users sign for a sponsored transfer, by chain","sidebarTitle":"Signing by chain","href":"/docs/platform/gas-sponsorship/signing-by-chain"}]},{"group":"Get started","pages":[{"title":"Set up a gas station for your Enterprise wallets","sidebarTitle":"Set up a gas station","href":"/docs/platform/gas-sponsorship/set-up-a-gas-station"},{"title":"Send your first sponsored transfer on Solana","sidebarTitle":"Send your first transfer","href":"/docs/platform/gas-sponsorship/send-your-first-sponsored-transfer"}]},{"group":"Guides","pages":[{"title":"Sign sponsored transfers on EVM chains","sidebarTitle":"Sign on EVM chains","href":"/docs/platform/gas-sponsorship/sign-on-evm-chains"},{"title":"Sign sponsored USDT transfers on Tron","sidebarTitle":"Sign on Tron","href":"/docs/platform/gas-sponsorship/sign-on-tron"},{"title":"Charge your own fee on sponsored transfers","sidebarTitle":"Charge a partner fee","href":"/docs/platform/gas-sponsorship/charge-a-partner-fee"},{"title":"Sweep a full stablecoin balance with gross mode","sidebarTitle":"Sweep a full balance","href":"/docs/platform/gas-sponsorship/sweep-a-full-balance"},{"title":"Handle sponsored transfer failures and expiry","sidebarTitle":"Handle failures","href":"/docs/platform/gas-sponsorship/handle-failures-and-expiry"}]},{"group":"Reference","pages":[{"title":"Gas station fields, health, and webhook events","sidebarTitle":"Gas station reference","href":"/docs/platform/gas-sponsorship/gas-station-reference"},{"title":"Sponsored transfer statuses, errors, and tracking","sidebarTitle":"Sponsored transfer statuses","href":"/docs/platform/gas-sponsorship/statuses-errors-and-events"}]}]},{"group":"Bitcoin","icon":"bitcoin","pages":[{"group":"Concepts","pages":[{"title":"Custody models","href":"/docs/bitcoin/custody-models"},{"title":"UTXO management","href":"/docs/bitcoin/utxo-management-introduction"},{"title":"Fees and confirmation strategy","href":"/docs/bitcoin/fee-market-and-transaction-strategies"}]},{"group":"Guides","pages":[{"title":"Run business-managed custody","href":"/docs/bitcoin/business-managed-non-custodial-bitcoin-wallets"},{"title":"Build self-custodial wallets","href":"/docs/bitcoin/user-managed-self-custodial-wallets"}]}]},{"group":"Use cases","icon":"briefcase","pages":[{"title":"Exchange integration guide","href":"/docs/platform/exchange-integration-guide"}]}]}]},{"tab":"Business API","icon":"code","pages":[{"title":"Business API","href":"/api-reference/authentication/authentication"}]},{"tab":"Enterprise API","icon":"wallet","groups":[{"group":"Get started","icon":"rocket","expanded":true,"pages":[{"title":"Bitnob Enterprise API authentication","sidebarTitle":"Authentication","href":"/docs/platform/authentication"},{"title":"Making Bitnob Enterprise API requests","sidebarTitle":"Making requests","href":"/docs/platform/making-requests"},{"title":"Bitnob Enterprise API webhooks","sidebarTitle":"Webhooks","href":"/docs/platform/webhooks"}]},{"group":"Meta","icon":"circle-info","expanded":true,"pages":[{"title":"Get API key info","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /me","href":"/api-reference/platform/meta/get-api-key-info"}]},{"group":"Assets","icon":"cubes","expanded":true,"pages":[{"title":"List assets","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /assets","href":"/api-reference/platform/assets/list-assets"},{"title":"List chains","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /assets/chains","href":"/api-reference/platform/assets/list-chains"},{"title":"Get asset","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /assets/{id}","href":"/api-reference/platform/assets/get-asset"}]},{"group":"Vaults","icon":"vault","expanded":true,"pages":[{"title":"List vaults","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /vaults","href":"/api-reference/platform/vaults/list-vaults"},{"title":"Get vault","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /vaults/{id}","href":"/api-reference/platform/vaults/get-vault"}]},{"group":"Wallets","icon":"layer-group","expanded":true,"pages":[{"title":"List wallets","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /wallets","href":"/api-reference/platform/wallets/list-wallets"},{"title":"Create wallet","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /wallets","href":"/api-reference/platform/wallets/create-wallet"},{"title":"Get wallet","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /wallets/{id}","href":"/api-reference/platform/wallets/get-wallet"},{"title":"Update wallet","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json patch /wallets/{id}","href":"/api-reference/platform/wallets/update-wallet"},{"title":"List wallet addresses","deprecated":null,"version":null,"sidebarTitle":"List addresses","openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /wallets/{id}/addresses","href":"/api-reference/platform/wallets/list-addresses"},{"title":"Create address","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /wallets/{id}/addresses","href":"/api-reference/platform/wallets/create-address"},{"title":"Get address","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /wallets/{id}/addresses/{address_id}","href":"/api-reference/platform/wallets/get-address"},{"title":"List wallet balances","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /wallets/{id}/balances","href":"/api-reference/platform/wallets/list-wallet-balances"},{"title":"List signing audit logs","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /wallets/sign-logs","href":"/api-reference/platform/wallets/list-signing-audit-logs"},{"title":"Get wallet asset balance","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /wallets/{id}/balances/{asset_id}","href":"/api-reference/platform/wallets/get-wallet-asset-balance"},{"title":"Sign payload","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /wallets/{id}/sign","href":"/api-reference/platform/wallets/sign-payload"},{"title":"List wallet UTXOs","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /wallets/{id}/utxos","href":"/api-reference/platform/wallets/list-wallet-utxos"}]},{"group":"Transactions","icon":"receipt","expanded":true,"pages":[{"title":"List transactions across wallets","deprecated":null,"version":null,"sidebarTitle":"List transactions","openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /transactions","href":"/api-reference/platform/transactions/list-transactions"},{"title":"Create transaction","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /transactions","href":"/api-reference/platform/transactions/create-transaction"},{"title":"Get transaction","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /transactions/{id}","href":"/api-reference/platform/transactions/get-transaction"},{"title":"Estimate transaction fee","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /transactions/estimate-fee","href":"/api-reference/platform/transactions/estimate-transaction-fee"}]},{"group":"Gas stations","icon":"gas-pump","expanded":true,"pages":[{"title":"List gas stations","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /gasstations","href":"/api-reference/platform/gasstations/list-gas-stations"},{"title":"Create gas station","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /gasstations","href":"/api-reference/platform/gasstations/create-gas-station"},{"title":"Get gas station","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /gasstations/{id}","href":"/api-reference/platform/gasstations/get-gas-station"},{"title":"Update gas station","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json patch /gasstations/{id}","href":"/api-reference/platform/gasstations/update-gas-station"},{"title":"Refill gas station","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /gasstations/{id}/refill","href":"/api-reference/platform/gasstations/refill-gas-station"},{"title":"Sponsor and broadcast external Tron transaction","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /gasstations/{id}/sponsor-broadcast","href":"/api-reference/platform/gasstations/sponsor-and-broadcast-external-tron-transaction"}]},{"group":"Sponsored transfers","pages":[{"title":"List sponsored transfers","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /sponsored-transfers","href":"/api-reference/platform/sponsored-transfers/list-sponsored-transfers"},{"title":"Create sponsored transfer (quote)","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /sponsored-transfers","href":"/api-reference/platform/sponsored-transfers/create-sponsored-transfer-quote"},{"title":"Get sponsored transfer","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /sponsored-transfers/{id}","href":"/api-reference/platform/sponsored-transfers/get-sponsored-transfer"},{"title":"Submit signature(s)","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /sponsored-transfers/{id}/submit","href":"/api-reference/platform/sponsored-transfers/submit-signatures"}]},{"group":"Consolidation","pages":[{"title":"Delete consolidation rule","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json delete /consolidation/rules/{id}","href":"/api-reference/platform/meta/delete-consolidation-rule"},{"title":"Get consolidation rule","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /consolidation/rules/{id}","href":"/api-reference/platform/meta/get-consolidation-rule"},{"title":"Update consolidation rule","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json patch /consolidation/rules/{id}","href":"/api-reference/platform/meta/update-consolidation-rule"},{"title":"Disable consolidation rule","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /consolidation/rules/{id}/disable","href":"/api-reference/platform/meta/disable-consolidation-rule"},{"title":"Enable consolidation rule","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /consolidation/rules/{id}/enable","href":"/api-reference/platform/meta/enable-consolidation-rule"},{"title":"Run consolidation rule now","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /consolidation/rules/{id}/run","href":"/api-reference/platform/meta/run-consolidation-rule-now"},{"title":"List consolidation runs for a rule","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /consolidation/rules/{id}/runs","href":"/api-reference/platform/meta/list-consolidation-runs-for-a-rule"},{"title":"Get consolidation run","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /consolidation/runs/{id}","href":"/api-reference/platform/meta/get-consolidation-run"},{"title":"List sweeps for a consolidation run","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /consolidation/runs/{id}/sweeps","href":"/api-reference/platform/meta/list-sweeps-for-a-consolidation-run"},{"title":"List consolidation rules for a vault","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /vaults/{vault_id}/consolidation/rules","href":"/api-reference/platform/meta/list-consolidation-rules-for-a-vault"},{"title":"Create consolidation rule","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /vaults/{vault_id}/consolidation/rules","href":"/api-reference/platform/meta/create-consolidation-rule"}]},{"group":"Policies","pages":[{"title":"List policies","description":"Returns a paginated list of policies for the organization. Quorum policies are excluded and available via GET /v1/policies/quorum. Supports cursor-based pagination and filters for status and name search.\n\n**Pagination**: Uses opaque cursor pagination. The cursor is base64-encoded and opaque — do not construct or inspect it. On the first request omit `cursor` / `starting_after`. When `has_more` is true, pass the `next_cursor` value from the response as `starting_after` on the next request. Continue until `has_more` is false.\n\n**`limit`**: Page size (default 20, max 100). Capped at the server maximum silently.\n\n**`has_more`**: True when more results exist after this page; call again with the cursor from the response.","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /policies","href":"/api-reference/platform/policies/list-policies"},{"title":"Create draft policy","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /policies","href":"/api-reference/platform/policies/create-draft-policy"},{"title":"Dry-run policy evaluation","description":"Runs the policy engine against a synthetic transaction request and returns the decision without any side effects. No approval requests are created, no audit log entries are written, and no transactions are inserted.\n\nUse this endpoint to preview how the active policy would respond to a given request before committing to it — for example, when configuring automation rules or testing policy changes.\n\nAll request fields are optional. Omitting a field means 'not applicable' for that condition axis. When no active policy exists the verdict is 'no_match' with Allowed=true.\n\nThe response includes a `trace` field containing a per-rule evaluation trace when the evaluator supports it. Each entry records whether the rule matched and, if not, which condition failed first.","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /policies/evaluate","href":"/api-reference/platform/policies/dry-run-policy-evaluation"},{"title":"Get quorum policy","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /policies/quorum","href":"/api-reference/platform/policies/get-quorum-policy"},{"title":"Get policy schema","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /policies/schema","href":"/api-reference/platform/policies/get-policy-schema"},{"title":"Validate in-flight rule array","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /policies/validate","href":"/api-reference/platform/policies/validate-in-flight-rule-array"},{"title":"Delete draft policy","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json delete /policies/{id}","href":"/api-reference/platform/policies/delete-draft-policy"},{"title":"Get policy","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /policies/{id}","href":"/api-reference/platform/policies/get-policy"},{"title":"Update draft policy","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json put /policies/{id}","href":"/api-reference/platform/policies/update-draft-policy"},{"title":"Activate policy","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /policies/{id}/activate","href":"/api-reference/platform/policies/activate-policy"},{"title":"Get policy audit log","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /policies/{id}/audit","href":"/api-reference/platform/policies/get-policy-audit-log"},{"title":"Add rule to draft policy","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /policies/{id}/rules","href":"/api-reference/platform/policies/add-rule-to-draft-policy"},{"title":"Remove rule from draft policy","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json delete /policies/{id}/rules/{rule_id}","href":"/api-reference/platform/policies/remove-rule-from-draft-policy"},{"title":"Update rule on draft policy","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json put /policies/{id}/rules/{rule_id}","href":"/api-reference/platform/policies/update-rule-on-draft-policy"},{"title":"Validate stored draft policy","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /policies/{id}/validate","href":"/api-reference/platform/policies/validate-stored-draft-policy"}]},{"group":"KYT","pages":[{"title":"List KYT categories","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /kyt/categories","href":"/api-reference/platform/kytcategories/list-kyt-categories"},{"title":"List risk profiles","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /kyt/risk-profiles","href":"/api-reference/platform/kytrisk-profiles/list-risk-profiles"},{"title":"Create risk profile","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /kyt/risk-profiles","href":"/api-reference/platform/kytrisk-profiles/create-risk-profile"},{"title":"Get the default risk profile","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /kyt/risk-profiles/default","href":"/api-reference/platform/kytrisk-profiles/get-the-default-risk-profile"},{"title":"Get risk profile","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /kyt/risk-profiles/{id}","href":"/api-reference/platform/kytrisk-profiles/get-risk-profile"},{"title":"Update risk profile","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json put /kyt/risk-profiles/{id}","href":"/api-reference/platform/kytrisk-profiles/update-risk-profile"}]},{"group":"Insights","pages":[{"title":"Estimate network fees","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /insights/estimate-network-fees","href":"/api-reference/platform/insightsestimate-network-fees/estimate-network-fees"}]},{"group":"Users","pages":[{"title":"List approver candidates","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /users/approver-candidates","href":"/api-reference/platform/users/list-approver-candidates"}]},{"group":"Subscriptions","icon":"bell","expanded":true,"pages":[{"title":"List subscriptions","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /subscriptions","href":"/api-reference/platform/subscriptions/list-subscriptions"},{"title":"Create subscription","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /subscriptions","href":"/api-reference/platform/subscriptions/create-subscription"},{"title":"List subscription delivery events","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /subscriptions/events","href":"/api-reference/platform/subscriptions/list-subscription-delivery-events"},{"title":"Get subscription delivery event","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /subscriptions/events/{id}","href":"/api-reference/platform/subscriptions/get-subscription-delivery-event"},{"title":"Retry subscription delivery","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /subscriptions/events/{id}/retry","href":"/api-reference/platform/subscriptions/retry-subscription-delivery"},{"title":"Delete subscription","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json delete /subscriptions/{id}","href":"/api-reference/platform/subscriptions/delete-subscription"},{"title":"Get subscription","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /subscriptions/{id}","href":"/api-reference/platform/subscriptions/get-subscription"},{"title":"Update subscription","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json patch /subscriptions/{id}","href":"/api-reference/platform/subscriptions/update-subscription"},{"title":"Rotate subscription signing secret","deprecated":null,"version":null,"sidebarTitle":"Rotate signing secret","openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /subscriptions/{id}/rotate-secret","href":"/api-reference/platform/subscriptions/rotate-signing-secret"}]},{"group":"Webhooks","icon":"satellite-dish","expanded":true,"pages":[{"title":"List webhooks","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /webhooks","href":"/api-reference/platform/webhooks/list-webhooks"},{"title":"Create webhook","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /webhooks","href":"/api-reference/platform/webhooks/create-webhook"},{"title":"List webhook delivery events","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /webhooks/events","href":"/api-reference/platform/webhooks/list-webhook-delivery-events"},{"title":"Get webhook delivery event","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /webhooks/events/{id}","href":"/api-reference/platform/webhooks/get-webhook-delivery-event"},{"title":"Retry webhook delivery","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /webhooks/events/{id}/retry","href":"/api-reference/platform/webhooks/retry-webhook-delivery"},{"title":"Delete webhook","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json delete /webhooks/{id}","href":"/api-reference/platform/webhooks/delete-webhook"},{"title":"Get webhook","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /webhooks/{id}","href":"/api-reference/platform/webhooks/get-webhook"},{"title":"Update webhook","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json patch /webhooks/{id}","href":"/api-reference/platform/webhooks/update-webhook"},{"title":"Rotate webhook signing secret","deprecated":null,"version":null,"sidebarTitle":"Rotate signing secret","openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /webhooks/{id}/rotate-secret","href":"/api-reference/platform/webhooks/rotate-signing-secret"},{"title":"List supported event types","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json get /webhooks/event-types","href":"/api-reference/platform/webhooks/list-supported-event-types"}]},{"group":"RPC","icon":"network-wired","expanded":true,"pages":[{"title":"Execute RPC call","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-platform.openapi.json post /rpc/{chain_network}","href":"/api-reference/platform/rpc/execute-rpc-call"}]}]},{"tab":"Playground","icon":"flask","pages":[{"title":"Playground","href":"/docs/playground/overview"}]},{"tab":"Learn","icon":"graduation-cap","pages":[{"title":"Learn","href":"/learn/overview"}]},{"tab":"Changelog","icon":"clock-rotate-left","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Create draft policy - Bitnob","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Myd8dsju.js","utils-C2HkQgW0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-8rSppmTv.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B6MjiCFm.js","snippetPresets-DwrSAONL.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-1-a5UQKQ.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C541m7wZ.js","shallow-CWELCZ77.js","getApiPlaygroundDisplay-CTo5Zn03.js","CodeSnippet-D--dzvnl.js","CodeSnippets-DM3cXEDh.js","Page-CxAy5y67.js","getPastedJson-C-VECgcL.js","icon-BPq2-Mg3.js","MethodPill-D9J5cUHd.js","DuplicateIcon-BqHaxUnD.js","createIcon-CIbcZHp9.js","DynamicMarkdown-BKiHAm_d.js","SectionHeading-DstQXt3H.js","axios-vUo_bRtp.js","Markdown-CpxgzsKA.js","clsx-C5EfhVm0.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CJ9Oly2E.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Mk6P3qvh.js"]}