Adds a person as a cardholder on a KYB-approved business. completion_link is returned while the cardholder’s compliance check is pending or needs action.
Your sandbox client secret. The playground uses it to sign the request in your browser and removes it before the request is sent. Never send your client secret as a header in your own integration.
Successful responses are wrapped in this envelope, and so are errors a handler answers itself (request body and field validation, some not-found and conflict cases, ORG_NOT_ACTIVE): success is false and error carries a code and message. Errors raised by authentication and by the services behind a handler are a Problem instead.
List metadata. Page lists set page, per_page, total and total_pages; offset and cursor lists set limit, offset, has_more and next_cursor. Zero and empty fields are omitted, and metadata is absent when nothing is set.
Set on error envelopes: the request's correlation id (req_ followed by a UUID), the same value as the X-Correlation-ID response header. Quote it to support.
{"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/cards/add-a-corporate-cardholder","slug":"/api-reference/cards/add-a-corporate-cardholder","pageMetadata":{"title":"Add a corporate cardholder","description":"Adds a person as a cardholder on a KYB-approved business. completion_link is returned while the cardholder's compliance check is pending or needs action.","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/cards/kyc/corporate/{customerId}/cardholders","href":"/api-reference/cards/add-a-corporate-cardholder","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Adds a person as a cardholder on a KYB-approved business. completion_link is returned while the cardholder’s compliance check is pending or needs action.\"\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":"Add a corporate cardholder","description":"Adds a person as a cardholder on a KYB-approved business. completion_link is returned while the cardholder's compliance check is pending or needs action.","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/cards/kyc/corporate/{customerId}/cardholders","href":"/api-reference/cards/add-a-corporate-cardholder","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/bitnob/a5987023060b539e/test-playground.js"],"openApiReferenceData":{"operation":{"description":"Adds a person as a cardholder on a KYB-approved business. completion_link is returned while the cardholder's compliance check is pending or needs action.","operationId":"cardsAddCorporateCardholder","parameters":["b5003fde-4771-4b09-9eba-0881ed589ca7"],"requestBody":"0439e3e1-b738-44fa-a343-c842d3236f59","responses":{"200":"0cb0530f-3cd2-44cc-b7d0-ab7737e64522","400":"6cce121f-0ccc-4199-8e0d-a4dff649121e","401":"6582442a-764f-41ed-a16c-5c6b4efefbf1","403":"d922abac-caaf-4bdc-91ff-65471d5ac70d","404":"f0bfa19e-9c73-409c-bc30-45993354e4f3","408":"4d18d324-ddfe-41de-bfa1-1a8ab6bd99d3","409":"7399c47a-12a6-43bc-946e-595f3cdad179","422":"59813c0c-33af-4954-877f-ea345950addf","429":"ec0bf01b-8e63-4f28-b612-d1022ab4d563","500":"c6e31fdf-7ee0-46e0-a966-7b22606e8bf1","503":"7e91c934-a670-4634-94c8-b6faa9eaa8c1"},"summary":"Add a corporate cardholder","tags":["Cards"],"method":"post","type":"path","servers":["c892e9b2-d2ac-4417-bf60-7d0571e9ca1b"],"security":["84531dae-8a2b-463a-9e2c-5e7ca82bedfa"],"path":"/api/cards/kyc/corporate/{customerId}/cardholders","baseUrlOptions":["https://api.bitnob.com"],"title":"Add a corporate cardholder","codeSamples":[],"requestExampleLanguages":["bash","javascript","python","php","go","java"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.cardholder.address.city":"Accra","body.cardholder.address.country":"Ghana","body.cardholder.address.country_code":"GH","body.cardholder.address.line1":"7 Oxford Street","body.cardholder.address.postal_code":"GA-000-0000","body.cardholder.address.region":"Greater Accra","body.cardholder.birth_date":"1992-07-03","body.cardholder.country_of_issue":"GH","body.cardholder.email":"ama.owusu@example.com","body.cardholder.first_name":"Ama","body.cardholder.last_name":"Owusu","body.cardholder.national_id":"GHA-000000000-0","body.cardholder.phone_country_code":"+233","body.cardholder.phone_number":"200000001","body.cardholder.is_terms_of_service_accepted":true}]},"dependencies":{"parameters":{"b5003fde-4771-4b09-9eba-0881ed589ca7":{"description":"Business customer ID","example":"019a3b5c-4f60-7b2c-8d3e-5f6a7b8c9d71","in":"path","name":"customerId","required":true,"schema":{"format":"uuid","type":"string","isRequired":true,"description":"Business customer ID","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"requestBody":{"content":{"application/json":{"example":{"cardholder":{"address":{"city":"Accra","country":"Ghana","country_code":"GH","line1":"7 Oxford Street","postal_code":"GA-000-0000","region":"Greater Accra"},"birth_date":"1992-07-03","country_of_issue":"GH","email":"ama.owusu@example.com","first_name":"Ama","is_terms_of_service_accepted":true,"last_name":"Owusu","national_id":"GHA-000000000-0","phone_country_code":"+233","phone_number":"200000001"}},"schema":{"properties":{"cardholder":{"properties":{"address":{"properties":{"city":{"maxLength":100,"type":"string","description":"City.","isRequired":true,"uniqueKey":"cardholder.address.city","typeLabel":"string"},"country":{"maxLength":100,"type":"string","description":"Country.","isRequired":true,"uniqueKey":"cardholder.address.country","typeLabel":"string"},"country_code":{"description":"ISO 3166-1 alpha-2.","maxLength":2,"minLength":2,"type":"string","isRequired":true,"uniqueKey":"cardholder.address.country_code","typeLabel":"string"},"line1":{"maxLength":200,"type":"string","description":"Address line 1.","isRequired":true,"uniqueKey":"cardholder.address.line1","typeLabel":"string"},"postal_code":{"maxLength":20,"type":"string","description":"Postal code.","isRequired":true,"uniqueKey":"cardholder.address.postal_code","typeLabel":"string"},"region":{"maxLength":100,"type":"string","description":"State or region.","isRequired":true,"uniqueKey":"cardholder.address.region","typeLabel":"string"},"line2":{"maxLength":200,"type":"string","description":"Address line 2.","uniqueKey":"cardholder.address.line2","typeLabel":"string"}},"required":["line1","city","region","postal_code","country","country_code"],"type":"object","isRequired":true,"uniqueKey":"cardholder.address","typeLabel":"object"},"birth_date":{"format":"date","type":"string","description":"Date of birth, YYYY-MM-DD.","isRequired":true,"uniqueKey":"cardholder.birth_date","typeLabel":"string\u003cdate>"},"country_of_issue":{"maxLength":100,"type":"string","description":"Country that issued the identity number.","isRequired":true,"uniqueKey":"cardholder.country_of_issue","typeLabel":"string"},"email":{"format":"email","maxLength":254,"type":"string","description":"Email address.","isRequired":true,"uniqueKey":"cardholder.email","typeLabel":"string\u003cemail>"},"first_name":{"maxLength":100,"type":"string","description":"First name.","isRequired":true,"uniqueKey":"cardholder.first_name","typeLabel":"string"},"last_name":{"maxLength":100,"type":"string","description":"Last name.","isRequired":true,"uniqueKey":"cardholder.last_name","typeLabel":"string"},"national_id":{"maxLength":100,"type":"string","description":"National identity number.","isRequired":true,"uniqueKey":"cardholder.national_id","typeLabel":"string"},"phone_country_code":{"maxLength":6,"type":"string","description":"International dial code, for example +234.","isRequired":true,"uniqueKey":"cardholder.phone_country_code","typeLabel":"string"},"phone_number":{"maxLength":20,"type":"string","description":"Phone number without the dial code.","isRequired":true,"uniqueKey":"cardholder.phone_number","typeLabel":"string"},"is_terms_of_service_accepted":{"description":"Read for the admin, where it must be true (\"terms of service must be accepted\"), and for a cardholder added with POST .../cardholders, where it must be true too. Ignored on representatives and UBOs.","type":"boolean","uniqueKey":"cardholder.is_terms_of_service_accepted","typeLabel":"boolean"},"ownership_percentage":{"maximum":100,"minimum":0,"type":"number","description":"Percentage of the business this person owns.","uniqueKey":"cardholder.ownership_percentage","typeLabel":"number"}},"required":["first_name","last_name","birth_date","national_id","country_of_issue","email","address","phone_country_code","phone_number"],"type":"object","isRequired":true,"uniqueKey":"cardholder","typeLabel":"object"}},"required":["cardholder"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"cardholder":{"address":{"city":"Accra","country":"Ghana","country_code":"GH","line1":"7 Oxford Street","postal_code":"GA-000-0000","region":"Greater Accra"},"birth_date":"1992-07-03","country_of_issue":"GH","email":"ama.owusu@example.com","first_name":"Ama","is_terms_of_service_accepted":true,"last_name":"Owusu","national_id":"GHA-000000000-0","phone_country_code":"+233","phone_number":"200000001"}}}},"exampleType":"examples"}},"required":true,"exampleType":"examples"},"responses":{"0cb0530f-3cd2-44cc-b7d0-ab7737e64522":{"content":{"application/json":{"examples":{"action_required":{"title":"action_required","value":{"data":{"cardholder_customer_id":"019a3b5c-4f60-7b2c-9d3e-5f6a7b8c9d72","completion_link":"https://kyc.sandbox.example.com/s/sbx_c4e1b7a9f203","status":"action_required"},"message":"Corporate cardholder added successfully","success":true,"timestamp":"2026-10-30T09:15:02.481Z"}},"approved":{"title":"approved","value":{"data":{"cardholder_customer_id":"019a3b5c-4f60-7b2c-9d3e-5f6a7b8c9d72","status":"approved"},"message":"Corporate cardholder added successfully","success":true,"timestamp":"2026-10-30T09:15:02.481Z"}}},"schema":{"type":"object","description":"Successful responses are wrapped in this envelope, and so are errors a handler answers itself (request body and field validation, some not-found and conflict cases, ORG_NOT_ACTIVE): success is false and error carries a code and message. Errors raised by authentication and by the services behind a handler are a Problem instead.","required":["success","timestamp"],"properties":{"success":{"description":"true on success","type":"boolean","isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"timestamp":{"description":"When the response was written.","format":"date-time","type":"string","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"data":{"type":"object","description":"The payload; its shape is given per operation. Omitted when there is none.","properties":{"cardholder_customer_id":{"format":"uuid","type":"string","uniqueKey":"data.cardholder_customer_id","typeLabel":"string\u003cuuid>"},"completion_link":{"description":"Hosted page to finish verification while pending or action_required.","type":"string","uniqueKey":"data.completion_link","typeLabel":"string"},"status":{"enum":["approved","pending","action_required","denied"],"type":"string","uniqueKey":"data.status","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data","typeLabel":"object"},"error":{"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"description":"Machine-readable, for example BAD_REQUEST, NOT_FOUND, CONFLICT, ORG_NOT_ACTIVE, RATE_LIMIT_EXCEEDED, SERVICE_UNAVAILABLE, INTERNAL_ERROR.","type":"string","uniqueKey":"error.code","typeLabel":"string"},"details":{"additionalProperties":true,"description":"For field validation, a map of field name to message (\"email\": \"Email must be a valid email address\"); for a body that does not decode, the offending field.","type":"object","uniqueKey":"error.details","typeLabel":"object"}},"required":["message"],"type":"object","uniqueKey":"error","typeLabel":"object"},"message":{"description":"Human-readable summary; omitted when empty.","type":"string","uniqueKey":"message","typeLabel":"string"},"metadata":{"description":"List metadata. Page lists set page, per_page, total and total_pages; offset and cursor lists set limit, offset, has_more and next_cursor. Zero and empty fields are omitted, and metadata is absent when nothing is set.","properties":{"has_more":{"type":"boolean","uniqueKey":"metadata.has_more","typeLabel":"boolean"},"limit":{"type":"integer","uniqueKey":"metadata.limit","typeLabel":"integer"},"next_cursor":{"description":"Opaque; pass as cursor for the next page.","type":"string","uniqueKey":"metadata.next_cursor","typeLabel":"string"},"offset":{"type":"integer","uniqueKey":"metadata.offset","typeLabel":"integer"},"page":{"type":"integer","uniqueKey":"metadata.page","typeLabel":"integer"},"per_page":{"type":"integer","uniqueKey":"metadata.per_page","typeLabel":"integer"},"total":{"type":"integer","uniqueKey":"metadata.total","typeLabel":"integer"},"total_pages":{"type":"integer","uniqueKey":"metadata.total_pages","typeLabel":"integer"}},"type":"object","uniqueKey":"metadata","typeLabel":"object"},"request_id":{"description":"Set on error envelopes: the request's correlation id (req_ followed by a UUID), the same value as the X-Correlation-ID response header. Quote it to support.","type":"string","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"OK","exampleType":"examples"},"6cce121f-0ccc-4199-8e0d-a4dff649121e":{"content":{"application/json":{"examples":{"field_validation":{"title":"field_validation","value":{"error":{"code":"BAD_REQUEST","details":{"birth_date":"Birth date must be a valid date","email":"Email must be a valid email address"},"message":"Validation failed"},"request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f00cc","success":false,"timestamp":"2026-10-30T09:15:02.481Z"}},"invalid_customer_id":{"title":"invalid_customer_id","value":{"error":{"code":"BAD_REQUEST","message":"Invalid Business customer ID, expected a UUID"},"request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f00cb","success":false,"timestamp":"2026-10-30T09:15:02.481Z"}},"kyb_not_approved":{"title":"kyb_not_approved","value":{"code":"VALIDATION_ERROR","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f00ce","detail":"company KYB not approved","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f00ce","status":400,"timestamp":"2026-10-30T09:15:02Z","title":"Validation Error","type":"https://api.bitnob.com/errors/VALIDATION_ERROR"}},"not_corporate":{"title":"not_corporate","value":{"code":"VALIDATION_ERROR","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f00cf","detail":"business is not onboarded to a corporate account","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f00cf","status":400,"timestamp":"2026-10-30T09:15:02Z","title":"Validation Error","type":"https://api.bitnob.com/errors/VALIDATION_ERROR"}},"terms_not_accepted":{"title":"terms_not_accepted","value":{"code":"VALIDATION_ERROR","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f00cd","detail":"cardholder terms of service must be accepted","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f00cd","status":400,"timestamp":"2026-10-30T09:15:02Z","title":"Validation Error","type":"https://api.bitnob.com/errors/VALIDATION_ERROR"}}},"schema":{"oneOf":[{"type":"object","description":"The envelope as an error: success is false, error is set, data is absent.","required":["error","success","timestamp"],"properties":{"error":{"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.error.message","typeLabel":"string"},"code":{"description":"Machine-readable, for example BAD_REQUEST, NOT_FOUND, CONFLICT, ORG_NOT_ACTIVE, RATE_LIMIT_EXCEEDED, SERVICE_UNAVAILABLE, INTERNAL_ERROR.","type":"string","uniqueKey":"oneOf.0.error.code","typeLabel":"string"},"details":{"additionalProperties":true,"description":"For field validation, a map of field name to message (\"email\": \"Email must be a valid email address\"); for a body that does not decode, the offending field.","type":"object","uniqueKey":"oneOf.0.error.details","typeLabel":"object"}},"required":["message"],"type":"object","isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"object"},"success":{"type":"boolean","description":"true on success","const":false,"isRequired":true,"uniqueKey":"oneOf.0.success","typeLabel":"boolean"},"timestamp":{"description":"When the response was written.","format":"date-time","type":"string","isRequired":true,"uniqueKey":"oneOf.0.timestamp","typeLabel":"string\u003cdate-time>"},"data":{"description":"The payload; its shape is given per operation. Omitted when there is none.","uniqueKey":"oneOf.0.data","typeLabel":"any"},"message":{"description":"Human-readable summary; omitted when empty.","type":"string","uniqueKey":"oneOf.0.message","typeLabel":"string"},"metadata":{"description":"List metadata. Page lists set page, per_page, total and total_pages; offset and cursor lists set limit, offset, has_more and next_cursor. Zero and empty fields are omitted, and metadata is absent when nothing is set.","properties":{"has_more":{"type":"boolean","uniqueKey":"oneOf.0.metadata.has_more","typeLabel":"boolean"},"limit":{"type":"integer","uniqueKey":"oneOf.0.metadata.limit","typeLabel":"integer"},"next_cursor":{"description":"Opaque; pass as cursor for the next page.","type":"string","uniqueKey":"oneOf.0.metadata.next_cursor","typeLabel":"string"},"offset":{"type":"integer","uniqueKey":"oneOf.0.metadata.offset","typeLabel":"integer"},"page":{"type":"integer","uniqueKey":"oneOf.0.metadata.page","typeLabel":"integer"},"per_page":{"type":"integer","uniqueKey":"oneOf.0.metadata.per_page","typeLabel":"integer"},"total":{"type":"integer","uniqueKey":"oneOf.0.metadata.total","typeLabel":"integer"},"total_pages":{"type":"integer","uniqueKey":"oneOf.0.metadata.total_pages","typeLabel":"integer"}},"type":"object","uniqueKey":"oneOf.0.metadata","typeLabel":"object"},"request_id":{"description":"Set on error envelopes: the request's correlation id (req_ followed by a UUID), the same value as the X-Correlation-ID response header. Quote it to support.","type":"string","uniqueKey":"oneOf.0.request_id","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"RFC 7807 problem. Returned when authentication fails and for errors raised by the services behind a handler (validation, domain refusals such as FEATURE_NOT_ENABLED or PRECONDITION_FAILED, partner outages); branch on code.","required":["type","title","status","code","timestamp"],"properties":{"code":{"description":"Machine-readable; branch on this, not on the status or the wording. For example VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_NOT_ENABLED, PERSONAL_WORKSPACE_CUSTOMERS, TIER_PRODUCT_LOCKED, NOT_FOUND, DUPLICATE_KEY_ERROR, ALREADY_EXISTS, PRECONDITION_FAILED, INSUFFICIENT_FUNDS, TIER_LIMIT_REACHED, RATE_LIMIT_EXCEEDED, TIMEOUT, SERVICE_UNAVAILABLE, LIMITS_UNAVAILABLE, PLATFORM_PAUSED, INTERNAL_ERROR.","type":"string","isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"string"},"status":{"description":"The HTTP status, repeated.","type":"integer","isRequired":true,"uniqueKey":"oneOf.1.status","typeLabel":"integer"},"timestamp":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"oneOf.1.timestamp","typeLabel":"string\u003cdate-time>"},"title":{"description":"Short summary of the code, for example Validation Error or Feature Not Enabled.","type":"string","isRequired":true,"uniqueKey":"oneOf.1.title","typeLabel":"string"},"type":{"description":"https://api.bitnob.com/errors/{code}","format":"uri","type":"string","isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"string\u003curi>"},"correlation_id":{"description":"The request's correlation id, the same value as the X-Correlation-ID response header.","type":"string","uniqueKey":"oneOf.1.correlation_id","typeLabel":"string"},"detail":{"description":"What went wrong for this request, safe to show; internal and partner failures carry a generic sentence.","type":"string","uniqueKey":"oneOf.1.detail","typeLabel":"string"},"extensions":{"additionalProperties":true,"description":"Code-specific facts, for example feature_key (FEATURE_NOT_ENABLED), field or field_violations (VALIDATION_ERROR), rail, window, limit, used, requested and remaining (TIER_LIMIT_REACHED), scope (PLATFORM_PAUSED).","type":"object","uniqueKey":"oneOf.1.extensions","typeLabel":"object"},"instance":{"type":"string","uniqueKey":"oneOf.1.instance","typeLabel":"string"},"request_id":{"description":"Equal to correlation_id.","type":"string","uniqueKey":"oneOf.1.request_id","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"The path id is not a UUID or the body is invalid (envelope), or the KYC service refused the cardholder or the business (Problem, VALIDATION_ERROR).","headers":{"X-Correlation-ID":{"description":"Generated for every request (any value the client sends is ignored); quote it to support. Errors repeat it as request_id and correlation_id.","example":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","schema":{"type":"string"}}},"exampleType":"examples"},"6582442a-764f-41ed-a16c-5c6b4efefbf1":{"content":{"application/json":{"examples":{"unauthorized_auth_failed":{"title":"unauthorized_auth_failed","description":"Returned when X-Auth-Client, X-Auth-Timestamp, X-Auth-Nonce or X-Auth-Signature is missing, the nonce is not 8 to 128 characters, the signature is not hex, or the timestamp is more than 5 minutes from the server's clock. The detail does not say which; check each.","value":{"code":"UNAUTHORIZED","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"Authentication failed","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":401,"timestamp":"2026-10-30T09:15:02Z","title":"Unauthorized","type":"https://api.bitnob.com/errors/UNAUTHORIZED"}},"unauthorized_invalid_secret":{"title":"unauthorized_invalid_secret","value":{"code":"UNAUTHORIZED","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"Invalid credentials","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":401,"timestamp":"2026-10-30T09:15:02Z","title":"Unauthorized","type":"https://api.bitnob.com/errors/UNAUTHORIZED"}},"unauthorized_invalid_signature":{"title":"unauthorized_invalid_signature","description":"The detail is the identity service's reason when it gives one (an unknown client or a reused nonce reads differently); Invalid signature otherwise.","value":{"code":"UNAUTHORIZED","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"Invalid signature","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":401,"timestamp":"2026-10-30T09:15:02Z","title":"Unauthorized","type":"https://api.bitnob.com/errors/UNAUTHORIZED"}},"unauthorized_locked_out":{"title":"unauthorized_locked_out","value":{"code":"UNAUTHORIZED","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"Too many failed credential checks; retry later","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":401,"timestamp":"2026-10-30T09:15:02Z","title":"Unauthorized","type":"https://api.bitnob.com/errors/UNAUTHORIZED"}}},"schema":{"description":"RFC 7807 problem. Returned when authentication fails and for errors raised by the services behind a handler (validation, domain refusals such as FEATURE_NOT_ENABLED or PRECONDITION_FAILED, partner outages); branch on code.","properties":{"code":{"description":"Machine-readable; branch on this, not on the status or the wording. For example VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_NOT_ENABLED, PERSONAL_WORKSPACE_CUSTOMERS, TIER_PRODUCT_LOCKED, NOT_FOUND, DUPLICATE_KEY_ERROR, ALREADY_EXISTS, PRECONDITION_FAILED, INSUFFICIENT_FUNDS, TIER_LIMIT_REACHED, RATE_LIMIT_EXCEEDED, TIMEOUT, SERVICE_UNAVAILABLE, LIMITS_UNAVAILABLE, PLATFORM_PAUSED, INTERNAL_ERROR.","type":"string","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"status":{"description":"The HTTP status, repeated.","type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"timestamp":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"title":{"description":"Short summary of the code, for example Validation Error or Feature Not Enabled.","type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"description":"https://api.bitnob.com/errors/{code}","format":"uri","type":"string","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"correlation_id":{"description":"The request's correlation id, the same value as the X-Correlation-ID response header.","type":"string","uniqueKey":"correlation_id","typeLabel":"string"},"detail":{"description":"What went wrong for this request, safe to show; internal and partner failures carry a generic sentence.","type":"string","uniqueKey":"detail","typeLabel":"string"},"extensions":{"additionalProperties":true,"description":"Code-specific facts, for example feature_key (FEATURE_NOT_ENABLED), field or field_violations (VALIDATION_ERROR), rail, window, limit, used, requested and remaining (TIER_LIMIT_REACHED), scope (PLATFORM_PAUSED).","type":"object","uniqueKey":"extensions","typeLabel":"object"},"instance":{"type":"string","uniqueKey":"instance","typeLabel":"string"},"request_id":{"description":"Equal to correlation_id.","type":"string","uniqueKey":"request_id","typeLabel":"string"}},"required":["type","title","status","code","timestamp"],"type":"object","uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Authentication failed: a signing header is missing or malformed, the timestamp is more than 5 minutes off, the signature or secret is wrong, or the client is locked out after failed checks (UNAUTHORIZED).","headers":{"X-Correlation-ID":{"description":"Generated for every request (any value the client sends is ignored); quote it to support. Errors repeat it as request_id and correlation_id.","example":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","schema":{"type":"string"}}},"exampleType":"examples"},"d922abac-caaf-4bdc-91ff-65471d5ac70d":{"content":{"application/json":{"examples":{"customer_cards_off":{"title":"customer_cards_off","value":{"code":"FEATURE_NOT_ENABLED","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f0095","detail":"The cards for customers feature is currently not available.","extensions":{"company_id":"019a3b5c-1a2b-7c3d-8e4f-5a6b7c8d9e01","feature_key":"customer_cards"},"request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f0095","status":403,"timestamp":"2026-10-30T09:15:02Z","title":"Feature Not Enabled","type":"https://api.bitnob.com/errors/FEATURE_NOT_ENABLED"}},"ip_not_whitelisted":{"title":"ip_not_whitelisted","value":{"code":"FORBIDDEN","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"IP address not whitelisted","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":403,"timestamp":"2026-10-30T09:15:02Z","title":"Forbidden","type":"https://api.bitnob.com/errors/FORBIDDEN"}},"org_not_active":{"title":"org_not_active","description":"Live keys only; sandbox requests pass.","value":{"error":{"code":"ORG_NOT_ACTIVE","message":"Your organisation is not currently active. Please contact your administrator."},"request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","success":false,"timestamp":"2026-10-30T09:15:02.481Z"}},"org_not_active_live":{"title":"org_not_active_live","description":"Sandbox keys are never refused this way.","value":{"error":{"code":"ORG_NOT_ACTIVE","message":"Your business isn't active yet, so live isn't available. Use your sandbox keys until it's activated."},"request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","success":false,"timestamp":"2026-10-30T09:15:02.481Z"}},"virtual_cards_off":{"title":"virtual_cards_off","value":{"code":"FEATURE_NOT_ENABLED","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f0091","detail":"The virtual cards feature is currently not available.","extensions":{"company_id":"019a3b5c-1a2b-7c3d-8e4f-5a6b7c8d9e01","feature_key":"virtual_cards"},"request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f0091","status":403,"timestamp":"2026-10-30T09:15:02Z","title":"Feature Not Enabled","type":"https://api.bitnob.com/errors/FEATURE_NOT_ENABLED"}}},"schema":{"oneOf":[{"type":"object","description":"The envelope as an error: success is false, error is set, data is absent.","required":["error","success","timestamp"],"properties":{"error":{"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.error.message","typeLabel":"string"},"code":{"description":"Machine-readable, for example BAD_REQUEST, NOT_FOUND, CONFLICT, ORG_NOT_ACTIVE, RATE_LIMIT_EXCEEDED, SERVICE_UNAVAILABLE, INTERNAL_ERROR.","type":"string","uniqueKey":"oneOf.0.error.code","typeLabel":"string"},"details":{"additionalProperties":true,"description":"For field validation, a map of field name to message (\"email\": \"Email must be a valid email address\"); for a body that does not decode, the offending field.","type":"object","uniqueKey":"oneOf.0.error.details","typeLabel":"object"}},"required":["message"],"type":"object","isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"object"},"success":{"type":"boolean","description":"true on success","const":false,"isRequired":true,"uniqueKey":"oneOf.0.success","typeLabel":"boolean"},"timestamp":{"description":"When the response was written.","format":"date-time","type":"string","isRequired":true,"uniqueKey":"oneOf.0.timestamp","typeLabel":"string\u003cdate-time>"},"data":{"description":"The payload; its shape is given per operation. Omitted when there is none.","uniqueKey":"oneOf.0.data","typeLabel":"any"},"message":{"description":"Human-readable summary; omitted when empty.","type":"string","uniqueKey":"oneOf.0.message","typeLabel":"string"},"metadata":{"description":"List metadata. Page lists set page, per_page, total and total_pages; offset and cursor lists set limit, offset, has_more and next_cursor. Zero and empty fields are omitted, and metadata is absent when nothing is set.","properties":{"has_more":{"type":"boolean","uniqueKey":"oneOf.0.metadata.has_more","typeLabel":"boolean"},"limit":{"type":"integer","uniqueKey":"oneOf.0.metadata.limit","typeLabel":"integer"},"next_cursor":{"description":"Opaque; pass as cursor for the next page.","type":"string","uniqueKey":"oneOf.0.metadata.next_cursor","typeLabel":"string"},"offset":{"type":"integer","uniqueKey":"oneOf.0.metadata.offset","typeLabel":"integer"},"page":{"type":"integer","uniqueKey":"oneOf.0.metadata.page","typeLabel":"integer"},"per_page":{"type":"integer","uniqueKey":"oneOf.0.metadata.per_page","typeLabel":"integer"},"total":{"type":"integer","uniqueKey":"oneOf.0.metadata.total","typeLabel":"integer"},"total_pages":{"type":"integer","uniqueKey":"oneOf.0.metadata.total_pages","typeLabel":"integer"}},"type":"object","uniqueKey":"oneOf.0.metadata","typeLabel":"object"},"request_id":{"description":"Set on error envelopes: the request's correlation id (req_ followed by a UUID), the same value as the X-Correlation-ID response header. Quote it to support.","type":"string","uniqueKey":"oneOf.0.request_id","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"RFC 7807 problem. Returned when authentication fails and for errors raised by the services behind a handler (validation, domain refusals such as FEATURE_NOT_ENABLED or PRECONDITION_FAILED, partner outages); branch on code.","required":["type","title","status","code","timestamp"],"properties":{"code":{"description":"Machine-readable; branch on this, not on the status or the wording. For example VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_NOT_ENABLED, PERSONAL_WORKSPACE_CUSTOMERS, TIER_PRODUCT_LOCKED, NOT_FOUND, DUPLICATE_KEY_ERROR, ALREADY_EXISTS, PRECONDITION_FAILED, INSUFFICIENT_FUNDS, TIER_LIMIT_REACHED, RATE_LIMIT_EXCEEDED, TIMEOUT, SERVICE_UNAVAILABLE, LIMITS_UNAVAILABLE, PLATFORM_PAUSED, INTERNAL_ERROR.","type":"string","isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"string"},"status":{"description":"The HTTP status, repeated.","type":"integer","isRequired":true,"uniqueKey":"oneOf.1.status","typeLabel":"integer"},"timestamp":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"oneOf.1.timestamp","typeLabel":"string\u003cdate-time>"},"title":{"description":"Short summary of the code, for example Validation Error or Feature Not Enabled.","type":"string","isRequired":true,"uniqueKey":"oneOf.1.title","typeLabel":"string"},"type":{"description":"https://api.bitnob.com/errors/{code}","format":"uri","type":"string","isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"string\u003curi>"},"correlation_id":{"description":"The request's correlation id, the same value as the X-Correlation-ID response header.","type":"string","uniqueKey":"oneOf.1.correlation_id","typeLabel":"string"},"detail":{"description":"What went wrong for this request, safe to show; internal and partner failures carry a generic sentence.","type":"string","uniqueKey":"oneOf.1.detail","typeLabel":"string"},"extensions":{"additionalProperties":true,"description":"Code-specific facts, for example feature_key (FEATURE_NOT_ENABLED), field or field_violations (VALIDATION_ERROR), rail, window, limit, used, requested and remaining (TIER_LIMIT_REACHED), scope (PLATFORM_PAUSED).","type":"object","uniqueKey":"oneOf.1.extensions","typeLabel":"object"},"instance":{"type":"string","uniqueKey":"oneOf.1.instance","typeLabel":"string"},"request_id":{"description":"Equal to correlation_id.","type":"string","uniqueKey":"oneOf.1.request_id","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"The org is not active (ORG_NOT_ACTIVE), the company does not have virtual cards (FEATURE_NOT_ENABLED), or the customers or customer_cards feature is off (FEATURE_NOT_ENABLED).","headers":{"X-Correlation-ID":{"description":"Generated for every request (any value the client sends is ignored); quote it to support. Errors repeat it as request_id and correlation_id.","example":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","schema":{"type":"string"}}},"exampleType":"examples"},"f0bfa19e-9c73-409c-bc30-45993354e4f3":{"content":{"application/json":{"examples":{"customer_not_found":{"title":"customer_not_found","value":{"code":"NOT_FOUND","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f00d0","detail":"customer with ID '019a3b5c-4f60-7b2c-8d3e-5f6a7b8c9d71' was not found","extensions":{"id":"019a3b5c-4f60-7b2c-8d3e-5f6a7b8c9d71","resource":"customer"},"request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f00d0","status":404,"timestamp":"2026-10-30T09:15:02Z","title":"Resource Not Found","type":"https://api.bitnob.com/errors/NOT_FOUND"}}},"schema":{"description":"RFC 7807 problem. Returned when authentication fails and for errors raised by the services behind a handler (validation, domain refusals such as FEATURE_NOT_ENABLED or PRECONDITION_FAILED, partner outages); branch on code.","properties":{"code":{"description":"Machine-readable; branch on this, not on the status or the wording. For example VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_NOT_ENABLED, PERSONAL_WORKSPACE_CUSTOMERS, TIER_PRODUCT_LOCKED, NOT_FOUND, DUPLICATE_KEY_ERROR, ALREADY_EXISTS, PRECONDITION_FAILED, INSUFFICIENT_FUNDS, TIER_LIMIT_REACHED, RATE_LIMIT_EXCEEDED, TIMEOUT, SERVICE_UNAVAILABLE, LIMITS_UNAVAILABLE, PLATFORM_PAUSED, INTERNAL_ERROR.","type":"string","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"status":{"description":"The HTTP status, repeated.","type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"timestamp":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"title":{"description":"Short summary of the code, for example Validation Error or Feature Not Enabled.","type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"description":"https://api.bitnob.com/errors/{code}","format":"uri","type":"string","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"correlation_id":{"description":"The request's correlation id, the same value as the X-Correlation-ID response header.","type":"string","uniqueKey":"correlation_id","typeLabel":"string"},"detail":{"description":"What went wrong for this request, safe to show; internal and partner failures carry a generic sentence.","type":"string","uniqueKey":"detail","typeLabel":"string"},"extensions":{"additionalProperties":true,"description":"Code-specific facts, for example feature_key (FEATURE_NOT_ENABLED), field or field_violations (VALIDATION_ERROR), rail, window, limit, used, requested and remaining (TIER_LIMIT_REACHED), scope (PLATFORM_PAUSED).","type":"object","uniqueKey":"extensions","typeLabel":"object"},"instance":{"type":"string","uniqueKey":"instance","typeLabel":"string"},"request_id":{"description":"Equal to correlation_id.","type":"string","uniqueKey":"request_id","typeLabel":"string"}},"required":["type","title","status","code","timestamp"],"type":"object","uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"No business customer with this id belongs to your organisation.","headers":{"X-Correlation-ID":{"description":"Generated for every request (any value the client sends is ignored); quote it to support. Errors repeat it as request_id and correlation_id.","example":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","schema":{"type":"string"}}},"exampleType":"examples"},"4d18d324-ddfe-41de-bfa1-1a8ab6bd99d3":{"content":{"application/json":{"examples":{"request_timeout":{"title":"request_timeout","value":{"code":"TIMEOUT","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"The request took too long to complete. Please try again.","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":408,"timestamp":"2026-10-30T09:15:02Z","title":"Request Timeout","type":"https://api.bitnob.com/errors/TIMEOUT"}}},"schema":{"description":"RFC 7807 problem. Returned when authentication fails and for errors raised by the services behind a handler (validation, domain refusals such as FEATURE_NOT_ENABLED or PRECONDITION_FAILED, partner outages); branch on code.","properties":{"code":{"description":"Machine-readable; branch on this, not on the status or the wording. For example VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_NOT_ENABLED, PERSONAL_WORKSPACE_CUSTOMERS, TIER_PRODUCT_LOCKED, NOT_FOUND, DUPLICATE_KEY_ERROR, ALREADY_EXISTS, PRECONDITION_FAILED, INSUFFICIENT_FUNDS, TIER_LIMIT_REACHED, RATE_LIMIT_EXCEEDED, TIMEOUT, SERVICE_UNAVAILABLE, LIMITS_UNAVAILABLE, PLATFORM_PAUSED, INTERNAL_ERROR.","type":"string","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"status":{"description":"The HTTP status, repeated.","type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"timestamp":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"title":{"description":"Short summary of the code, for example Validation Error or Feature Not Enabled.","type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"description":"https://api.bitnob.com/errors/{code}","format":"uri","type":"string","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"correlation_id":{"description":"The request's correlation id, the same value as the X-Correlation-ID response header.","type":"string","uniqueKey":"correlation_id","typeLabel":"string"},"detail":{"description":"What went wrong for this request, safe to show; internal and partner failures carry a generic sentence.","type":"string","uniqueKey":"detail","typeLabel":"string"},"extensions":{"additionalProperties":true,"description":"Code-specific facts, for example feature_key (FEATURE_NOT_ENABLED), field or field_violations (VALIDATION_ERROR), rail, window, limit, used, requested and remaining (TIER_LIMIT_REACHED), scope (PLATFORM_PAUSED).","type":"object","uniqueKey":"extensions","typeLabel":"object"},"instance":{"type":"string","uniqueKey":"instance","typeLabel":"string"},"request_id":{"description":"Equal to correlation_id.","type":"string","uniqueKey":"request_id","typeLabel":"string"}},"required":["type","title","status","code","timestamp"],"type":"object","uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"The request ran past its deadline (TIMEOUT); retry, with the same reference for writes.","headers":{"X-Correlation-ID":{"description":"Generated for every request (any value the client sends is ignored); quote it to support. Errors repeat it as request_id and correlation_id.","example":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","schema":{"type":"string"}}},"exampleType":"examples"},"7399c47a-12a6-43bc-946e-595f3cdad179":{"content":{"application/json":{"examples":{"conflict_envelope":{"title":"conflict_envelope","value":{"error":{"code":"CONFLICT","message":"customer has no email address on file"},"request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","success":false,"timestamp":"2026-10-30T09:15:02.481Z"}},"duplicate_key":{"title":"duplicate_key","value":{"code":"DUPLICATE_KEY_ERROR","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"A resource with the same identifier already exists.","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":409,"timestamp":"2026-10-30T09:15:02Z","title":"Resource Already Exists","type":"https://api.bitnob.com/errors/DUPLICATE_KEY_ERROR"}},"operation_in_progress":{"title":"operation_in_progress","value":{"code":"ALREADY_EXISTS","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"A freeze operation is already in progress, please try again shortly","extensions":{"operation":"freeze"},"request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":409,"timestamp":"2026-10-30T09:15:02Z","title":"Operation In Progress","type":"https://api.bitnob.com/errors/ALREADY_EXISTS"}}},"schema":{"oneOf":[{"type":"object","description":"The envelope as an error: success is false, error is set, data is absent.","required":["error","success","timestamp"],"properties":{"error":{"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.error.message","typeLabel":"string"},"code":{"description":"Machine-readable, for example BAD_REQUEST, NOT_FOUND, CONFLICT, ORG_NOT_ACTIVE, RATE_LIMIT_EXCEEDED, SERVICE_UNAVAILABLE, INTERNAL_ERROR.","type":"string","uniqueKey":"oneOf.0.error.code","typeLabel":"string"},"details":{"additionalProperties":true,"description":"For field validation, a map of field name to message (\"email\": \"Email must be a valid email address\"); for a body that does not decode, the offending field.","type":"object","uniqueKey":"oneOf.0.error.details","typeLabel":"object"}},"required":["message"],"type":"object","isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"object"},"success":{"type":"boolean","description":"true on success","const":false,"isRequired":true,"uniqueKey":"oneOf.0.success","typeLabel":"boolean"},"timestamp":{"description":"When the response was written.","format":"date-time","type":"string","isRequired":true,"uniqueKey":"oneOf.0.timestamp","typeLabel":"string\u003cdate-time>"},"data":{"description":"The payload; its shape is given per operation. Omitted when there is none.","uniqueKey":"oneOf.0.data","typeLabel":"any"},"message":{"description":"Human-readable summary; omitted when empty.","type":"string","uniqueKey":"oneOf.0.message","typeLabel":"string"},"metadata":{"description":"List metadata. Page lists set page, per_page, total and total_pages; offset and cursor lists set limit, offset, has_more and next_cursor. Zero and empty fields are omitted, and metadata is absent when nothing is set.","properties":{"has_more":{"type":"boolean","uniqueKey":"oneOf.0.metadata.has_more","typeLabel":"boolean"},"limit":{"type":"integer","uniqueKey":"oneOf.0.metadata.limit","typeLabel":"integer"},"next_cursor":{"description":"Opaque; pass as cursor for the next page.","type":"string","uniqueKey":"oneOf.0.metadata.next_cursor","typeLabel":"string"},"offset":{"type":"integer","uniqueKey":"oneOf.0.metadata.offset","typeLabel":"integer"},"page":{"type":"integer","uniqueKey":"oneOf.0.metadata.page","typeLabel":"integer"},"per_page":{"type":"integer","uniqueKey":"oneOf.0.metadata.per_page","typeLabel":"integer"},"total":{"type":"integer","uniqueKey":"oneOf.0.metadata.total","typeLabel":"integer"},"total_pages":{"type":"integer","uniqueKey":"oneOf.0.metadata.total_pages","typeLabel":"integer"}},"type":"object","uniqueKey":"oneOf.0.metadata","typeLabel":"object"},"request_id":{"description":"Set on error envelopes: the request's correlation id (req_ followed by a UUID), the same value as the X-Correlation-ID response header. Quote it to support.","type":"string","uniqueKey":"oneOf.0.request_id","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"RFC 7807 problem. Returned when authentication fails and for errors raised by the services behind a handler (validation, domain refusals such as FEATURE_NOT_ENABLED or PRECONDITION_FAILED, partner outages); branch on code.","required":["type","title","status","code","timestamp"],"properties":{"code":{"description":"Machine-readable; branch on this, not on the status or the wording. For example VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_NOT_ENABLED, PERSONAL_WORKSPACE_CUSTOMERS, TIER_PRODUCT_LOCKED, NOT_FOUND, DUPLICATE_KEY_ERROR, ALREADY_EXISTS, PRECONDITION_FAILED, INSUFFICIENT_FUNDS, TIER_LIMIT_REACHED, RATE_LIMIT_EXCEEDED, TIMEOUT, SERVICE_UNAVAILABLE, LIMITS_UNAVAILABLE, PLATFORM_PAUSED, INTERNAL_ERROR.","type":"string","isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"string"},"status":{"description":"The HTTP status, repeated.","type":"integer","isRequired":true,"uniqueKey":"oneOf.1.status","typeLabel":"integer"},"timestamp":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"oneOf.1.timestamp","typeLabel":"string\u003cdate-time>"},"title":{"description":"Short summary of the code, for example Validation Error or Feature Not Enabled.","type":"string","isRequired":true,"uniqueKey":"oneOf.1.title","typeLabel":"string"},"type":{"description":"https://api.bitnob.com/errors/{code}","format":"uri","type":"string","isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"string\u003curi>"},"correlation_id":{"description":"The request's correlation id, the same value as the X-Correlation-ID response header.","type":"string","uniqueKey":"oneOf.1.correlation_id","typeLabel":"string"},"detail":{"description":"What went wrong for this request, safe to show; internal and partner failures carry a generic sentence.","type":"string","uniqueKey":"oneOf.1.detail","typeLabel":"string"},"extensions":{"additionalProperties":true,"description":"Code-specific facts, for example feature_key (FEATURE_NOT_ENABLED), field or field_violations (VALIDATION_ERROR), rail, window, limit, used, requested and remaining (TIER_LIMIT_REACHED), scope (PLATFORM_PAUSED).","type":"object","uniqueKey":"oneOf.1.extensions","typeLabel":"object"},"instance":{"type":"string","uniqueKey":"oneOf.1.instance","typeLabel":"string"},"request_id":{"description":"Equal to correlation_id.","type":"string","uniqueKey":"oneOf.1.request_id","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Conflicts with existing state: a repeated reference (DUPLICATE_KEY_ERROR), the same operation already in progress (ALREADY_EXISTS, retry shortly), or the resource's state (CONFLICT).","headers":{"X-Correlation-ID":{"description":"Generated for every request (any value the client sends is ignored); quote it to support. Errors repeat it as request_id and correlation_id.","example":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","schema":{"type":"string"}}},"exampleType":"examples"},"59813c0c-33af-4954-877f-ea345950addf":{"content":{"application/json":{"examples":{"program_disabled":{"title":"program_disabled","value":{"code":"CARD_STATE_CONFLICT","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f00d1","detail":"card program \"collateral_business\" is not enabled for this company","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f00d1","status":422,"timestamp":"2026-10-30T09:15:02Z","title":"Card Program Disabled","type":"https://api.bitnob.com/errors/CARD_STATE_CONFLICT"}}},"schema":{"description":"RFC 7807 problem. Returned when authentication fails and for errors raised by the services behind a handler (validation, domain refusals such as FEATURE_NOT_ENABLED or PRECONDITION_FAILED, partner outages); branch on code.","properties":{"code":{"description":"Machine-readable; branch on this, not on the status or the wording. For example VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_NOT_ENABLED, PERSONAL_WORKSPACE_CUSTOMERS, TIER_PRODUCT_LOCKED, NOT_FOUND, DUPLICATE_KEY_ERROR, ALREADY_EXISTS, PRECONDITION_FAILED, INSUFFICIENT_FUNDS, TIER_LIMIT_REACHED, RATE_LIMIT_EXCEEDED, TIMEOUT, SERVICE_UNAVAILABLE, LIMITS_UNAVAILABLE, PLATFORM_PAUSED, INTERNAL_ERROR.","type":"string","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"status":{"description":"The HTTP status, repeated.","type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"timestamp":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"title":{"description":"Short summary of the code, for example Validation Error or Feature Not Enabled.","type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"description":"https://api.bitnob.com/errors/{code}","format":"uri","type":"string","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"correlation_id":{"description":"The request's correlation id, the same value as the X-Correlation-ID response header.","type":"string","uniqueKey":"correlation_id","typeLabel":"string"},"detail":{"description":"What went wrong for this request, safe to show; internal and partner failures carry a generic sentence.","type":"string","uniqueKey":"detail","typeLabel":"string"},"extensions":{"additionalProperties":true,"description":"Code-specific facts, for example feature_key (FEATURE_NOT_ENABLED), field or field_violations (VALIDATION_ERROR), rail, window, limit, used, requested and remaining (TIER_LIMIT_REACHED), scope (PLATFORM_PAUSED).","type":"object","uniqueKey":"extensions","typeLabel":"object"},"instance":{"type":"string","uniqueKey":"instance","typeLabel":"string"},"request_id":{"description":"Equal to correlation_id.","type":"string","uniqueKey":"request_id","typeLabel":"string"}},"required":["type","title","status","code","timestamp"],"type":"object","uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"collateral_business is not enabled for this company and the business has no KYB record yet (CARD_STATE_CONFLICT).","headers":{"X-Correlation-ID":{"description":"Generated for every request (any value the client sends is ignored); quote it to support. Errors repeat it as request_id and correlation_id.","example":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","schema":{"type":"string"}}},"exampleType":"examples"},"ec0bf01b-8e63-4f28-b612-d1022ab4d563":{"content":{"application/json":{"examples":{"rate_limited":{"title":"rate_limited","value":{"code":"RATE_LIMIT_EXCEEDED","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"Too many requests. Please try again later.","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":429,"timestamp":"2026-10-30T09:15:02Z","title":"Rate Limit Exceeded","type":"https://api.bitnob.com/errors/RATE_LIMIT_EXCEEDED"}},"rate_limited_envelope":{"title":"rate_limited_envelope","value":{"error":{"code":"RATE_LIMIT_EXCEEDED","message":"a verification link was sent to this customer in the last minute; try again shortly"},"request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","success":false,"timestamp":"2026-10-30T09:15:02.481Z"}}},"schema":{"oneOf":[{"type":"object","description":"The envelope as an error: success is false, error is set, data is absent.","required":["error","success","timestamp"],"properties":{"error":{"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.error.message","typeLabel":"string"},"code":{"description":"Machine-readable, for example BAD_REQUEST, NOT_FOUND, CONFLICT, ORG_NOT_ACTIVE, RATE_LIMIT_EXCEEDED, SERVICE_UNAVAILABLE, INTERNAL_ERROR.","type":"string","uniqueKey":"oneOf.0.error.code","typeLabel":"string"},"details":{"additionalProperties":true,"description":"For field validation, a map of field name to message (\"email\": \"Email must be a valid email address\"); for a body that does not decode, the offending field.","type":"object","uniqueKey":"oneOf.0.error.details","typeLabel":"object"}},"required":["message"],"type":"object","isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"object"},"success":{"type":"boolean","description":"true on success","const":false,"isRequired":true,"uniqueKey":"oneOf.0.success","typeLabel":"boolean"},"timestamp":{"description":"When the response was written.","format":"date-time","type":"string","isRequired":true,"uniqueKey":"oneOf.0.timestamp","typeLabel":"string\u003cdate-time>"},"data":{"description":"The payload; its shape is given per operation. Omitted when there is none.","uniqueKey":"oneOf.0.data","typeLabel":"any"},"message":{"description":"Human-readable summary; omitted when empty.","type":"string","uniqueKey":"oneOf.0.message","typeLabel":"string"},"metadata":{"description":"List metadata. Page lists set page, per_page, total and total_pages; offset and cursor lists set limit, offset, has_more and next_cursor. Zero and empty fields are omitted, and metadata is absent when nothing is set.","properties":{"has_more":{"type":"boolean","uniqueKey":"oneOf.0.metadata.has_more","typeLabel":"boolean"},"limit":{"type":"integer","uniqueKey":"oneOf.0.metadata.limit","typeLabel":"integer"},"next_cursor":{"description":"Opaque; pass as cursor for the next page.","type":"string","uniqueKey":"oneOf.0.metadata.next_cursor","typeLabel":"string"},"offset":{"type":"integer","uniqueKey":"oneOf.0.metadata.offset","typeLabel":"integer"},"page":{"type":"integer","uniqueKey":"oneOf.0.metadata.page","typeLabel":"integer"},"per_page":{"type":"integer","uniqueKey":"oneOf.0.metadata.per_page","typeLabel":"integer"},"total":{"type":"integer","uniqueKey":"oneOf.0.metadata.total","typeLabel":"integer"},"total_pages":{"type":"integer","uniqueKey":"oneOf.0.metadata.total_pages","typeLabel":"integer"}},"type":"object","uniqueKey":"oneOf.0.metadata","typeLabel":"object"},"request_id":{"description":"Set on error envelopes: the request's correlation id (req_ followed by a UUID), the same value as the X-Correlation-ID response header. Quote it to support.","type":"string","uniqueKey":"oneOf.0.request_id","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"RFC 7807 problem. Returned when authentication fails and for errors raised by the services behind a handler (validation, domain refusals such as FEATURE_NOT_ENABLED or PRECONDITION_FAILED, partner outages); branch on code.","required":["type","title","status","code","timestamp"],"properties":{"code":{"description":"Machine-readable; branch on this, not on the status or the wording. For example VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_NOT_ENABLED, PERSONAL_WORKSPACE_CUSTOMERS, TIER_PRODUCT_LOCKED, NOT_FOUND, DUPLICATE_KEY_ERROR, ALREADY_EXISTS, PRECONDITION_FAILED, INSUFFICIENT_FUNDS, TIER_LIMIT_REACHED, RATE_LIMIT_EXCEEDED, TIMEOUT, SERVICE_UNAVAILABLE, LIMITS_UNAVAILABLE, PLATFORM_PAUSED, INTERNAL_ERROR.","type":"string","isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"string"},"status":{"description":"The HTTP status, repeated.","type":"integer","isRequired":true,"uniqueKey":"oneOf.1.status","typeLabel":"integer"},"timestamp":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"oneOf.1.timestamp","typeLabel":"string\u003cdate-time>"},"title":{"description":"Short summary of the code, for example Validation Error or Feature Not Enabled.","type":"string","isRequired":true,"uniqueKey":"oneOf.1.title","typeLabel":"string"},"type":{"description":"https://api.bitnob.com/errors/{code}","format":"uri","type":"string","isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"string\u003curi>"},"correlation_id":{"description":"The request's correlation id, the same value as the X-Correlation-ID response header.","type":"string","uniqueKey":"oneOf.1.correlation_id","typeLabel":"string"},"detail":{"description":"What went wrong for this request, safe to show; internal and partner failures carry a generic sentence.","type":"string","uniqueKey":"oneOf.1.detail","typeLabel":"string"},"extensions":{"additionalProperties":true,"description":"Code-specific facts, for example feature_key (FEATURE_NOT_ENABLED), field or field_violations (VALIDATION_ERROR), rail, window, limit, used, requested and remaining (TIER_LIMIT_REACHED), scope (PLATFORM_PAUSED).","type":"object","uniqueKey":"oneOf.1.extensions","typeLabel":"object"},"instance":{"type":"string","uniqueKey":"oneOf.1.instance","typeLabel":"string"},"request_id":{"description":"Equal to correlation_id.","type":"string","uniqueKey":"oneOf.1.request_id","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Rate limited. The per-IP limiter (500 requests a minute) answers with a Problem and Retry-After; operation-specific throttles answer with the envelope.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","example":1,"schema":{"minimum":0,"type":"integer"}},"X-Correlation-ID":{"description":"Generated for every request (any value the client sends is ignored); quote it to support. Errors repeat it as request_id and correlation_id.","example":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Requests allowed per window by the per-IP limiter (500 a minute).","example":500,"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left in the current window.","example":0,"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Seconds until the window resets.","example":37,"schema":{"type":"integer"}}},"exampleType":"examples"},"c6e31fdf-7ee0-46e0-a966-7b22606e8bf1":{"content":{"application/json":{"examples":{"internal_error":{"title":"internal_error","value":{"code":"INTERNAL_ERROR","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"An internal error occurred. Please try again later.","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":500,"timestamp":"2026-10-30T09:15:02Z","title":"Internal Server Error","type":"https://api.bitnob.com/errors/INTERNAL_ERROR"}},"internal_error_envelope":{"title":"internal_error_envelope","value":{"error":{"code":"INTERNAL_ERROR","message":"Failed to list transactions"},"request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","success":false,"timestamp":"2026-10-30T09:15:02.481Z"}},"internal_error_unhandled":{"title":"internal_error_unhandled","value":{"code":"INTERNAL_ERROR","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"An internal server error occurred","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":500,"timestamp":"2026-10-30T09:15:02Z","title":"Internal Server Error","type":"https://api.bitnob.com/errors/INTERNAL_ERROR"}}},"schema":{"oneOf":[{"type":"object","description":"The envelope as an error: success is false, error is set, data is absent.","required":["error","success","timestamp"],"properties":{"error":{"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.error.message","typeLabel":"string"},"code":{"description":"Machine-readable, for example BAD_REQUEST, NOT_FOUND, CONFLICT, ORG_NOT_ACTIVE, RATE_LIMIT_EXCEEDED, SERVICE_UNAVAILABLE, INTERNAL_ERROR.","type":"string","uniqueKey":"oneOf.0.error.code","typeLabel":"string"},"details":{"additionalProperties":true,"description":"For field validation, a map of field name to message (\"email\": \"Email must be a valid email address\"); for a body that does not decode, the offending field.","type":"object","uniqueKey":"oneOf.0.error.details","typeLabel":"object"}},"required":["message"],"type":"object","isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"object"},"success":{"type":"boolean","description":"true on success","const":false,"isRequired":true,"uniqueKey":"oneOf.0.success","typeLabel":"boolean"},"timestamp":{"description":"When the response was written.","format":"date-time","type":"string","isRequired":true,"uniqueKey":"oneOf.0.timestamp","typeLabel":"string\u003cdate-time>"},"data":{"description":"The payload; its shape is given per operation. Omitted when there is none.","uniqueKey":"oneOf.0.data","typeLabel":"any"},"message":{"description":"Human-readable summary; omitted when empty.","type":"string","uniqueKey":"oneOf.0.message","typeLabel":"string"},"metadata":{"description":"List metadata. Page lists set page, per_page, total and total_pages; offset and cursor lists set limit, offset, has_more and next_cursor. Zero and empty fields are omitted, and metadata is absent when nothing is set.","properties":{"has_more":{"type":"boolean","uniqueKey":"oneOf.0.metadata.has_more","typeLabel":"boolean"},"limit":{"type":"integer","uniqueKey":"oneOf.0.metadata.limit","typeLabel":"integer"},"next_cursor":{"description":"Opaque; pass as cursor for the next page.","type":"string","uniqueKey":"oneOf.0.metadata.next_cursor","typeLabel":"string"},"offset":{"type":"integer","uniqueKey":"oneOf.0.metadata.offset","typeLabel":"integer"},"page":{"type":"integer","uniqueKey":"oneOf.0.metadata.page","typeLabel":"integer"},"per_page":{"type":"integer","uniqueKey":"oneOf.0.metadata.per_page","typeLabel":"integer"},"total":{"type":"integer","uniqueKey":"oneOf.0.metadata.total","typeLabel":"integer"},"total_pages":{"type":"integer","uniqueKey":"oneOf.0.metadata.total_pages","typeLabel":"integer"}},"type":"object","uniqueKey":"oneOf.0.metadata","typeLabel":"object"},"request_id":{"description":"Set on error envelopes: the request's correlation id (req_ followed by a UUID), the same value as the X-Correlation-ID response header. Quote it to support.","type":"string","uniqueKey":"oneOf.0.request_id","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"RFC 7807 problem. Returned when authentication fails and for errors raised by the services behind a handler (validation, domain refusals such as FEATURE_NOT_ENABLED or PRECONDITION_FAILED, partner outages); branch on code.","required":["type","title","status","code","timestamp"],"properties":{"code":{"description":"Machine-readable; branch on this, not on the status or the wording. For example VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_NOT_ENABLED, PERSONAL_WORKSPACE_CUSTOMERS, TIER_PRODUCT_LOCKED, NOT_FOUND, DUPLICATE_KEY_ERROR, ALREADY_EXISTS, PRECONDITION_FAILED, INSUFFICIENT_FUNDS, TIER_LIMIT_REACHED, RATE_LIMIT_EXCEEDED, TIMEOUT, SERVICE_UNAVAILABLE, LIMITS_UNAVAILABLE, PLATFORM_PAUSED, INTERNAL_ERROR.","type":"string","isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"string"},"status":{"description":"The HTTP status, repeated.","type":"integer","isRequired":true,"uniqueKey":"oneOf.1.status","typeLabel":"integer"},"timestamp":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"oneOf.1.timestamp","typeLabel":"string\u003cdate-time>"},"title":{"description":"Short summary of the code, for example Validation Error or Feature Not Enabled.","type":"string","isRequired":true,"uniqueKey":"oneOf.1.title","typeLabel":"string"},"type":{"description":"https://api.bitnob.com/errors/{code}","format":"uri","type":"string","isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"string\u003curi>"},"correlation_id":{"description":"The request's correlation id, the same value as the X-Correlation-ID response header.","type":"string","uniqueKey":"oneOf.1.correlation_id","typeLabel":"string"},"detail":{"description":"What went wrong for this request, safe to show; internal and partner failures carry a generic sentence.","type":"string","uniqueKey":"oneOf.1.detail","typeLabel":"string"},"extensions":{"additionalProperties":true,"description":"Code-specific facts, for example feature_key (FEATURE_NOT_ENABLED), field or field_violations (VALIDATION_ERROR), rail, window, limit, used, requested and remaining (TIER_LIMIT_REACHED), scope (PLATFORM_PAUSED).","type":"object","uniqueKey":"oneOf.1.extensions","typeLabel":"object"},"instance":{"type":"string","uniqueKey":"oneOf.1.instance","typeLabel":"string"},"request_id":{"description":"Equal to correlation_id.","type":"string","uniqueKey":"oneOf.1.request_id","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Something failed on our side; safe to retry idempotent requests (INTERNAL_ERROR).","headers":{"X-Correlation-ID":{"description":"Generated for every request (any value the client sends is ignored); quote it to support. Errors repeat it as request_id and correlation_id.","example":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","schema":{"type":"string"}}},"exampleType":"examples"},"7e91c934-a670-4634-94c8-b6faa9eaa8c1":{"content":{"application/json":{"examples":{"auth_service_busy":{"title":"auth_service_busy","description":"Sent with Retry-After: 1.","value":{"code":"SERVICE_UNAVAILABLE","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"Authentication service is busy, retry shortly","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":503,"timestamp":"2026-10-30T09:15:02Z","title":"Service Unavailable","type":"https://api.bitnob.com/errors/SERVICE_UNAVAILABLE"}},"auth_service_unavailable":{"title":"auth_service_unavailable","description":"Sent with Retry-After: 1. The detail is worded exactly like this today.","value":{"code":"SERVICE_UNAVAILABLE","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"Service Authentication service unavailable is currently unavailable","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":503,"timestamp":"2026-10-30T09:15:02Z","title":"Service Unavailable","type":"https://api.bitnob.com/errors/SERVICE_UNAVAILABLE"}},"limits_unavailable":{"title":"limits_unavailable","value":{"code":"LIMITS_UNAVAILABLE","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"We could not verify your account limits right now. Please try again shortly.","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":503,"timestamp":"2026-10-30T09:15:02Z","title":"Limits Unavailable","type":"https://api.bitnob.com/errors/LIMITS_UNAVAILABLE"}},"platform_paused":{"title":"platform_paused","value":{"code":"PLATFORM_PAUSED","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"Money movement is temporarily paused. Nothing is lost — requests can be retried once the pause lifts.","extensions":{"scope":"asset:BTC"},"request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":503,"timestamp":"2026-10-30T09:15:02Z","title":"Money Movement Paused","type":"https://api.bitnob.com/errors/PLATFORM_PAUSED"}},"partner_unavailable":{"title":"partner_unavailable","value":{"code":"SERVICE_UNAVAILABLE","correlation_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","detail":"Service is temporarily unavailable. Please try again later.","request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","status":503,"timestamp":"2026-10-30T09:15:02Z","title":"Service Unavailable","type":"https://api.bitnob.com/errors/SERVICE_UNAVAILABLE"}},"service_unavailable_envelope":{"title":"service_unavailable_envelope","value":{"error":{"code":"SERVICE_UNAVAILABLE","message":"LNURL payments are temporarily disabled"},"request_id":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","success":false,"timestamp":"2026-10-30T09:15:02.481Z"}}},"schema":{"oneOf":[{"type":"object","description":"The envelope as an error: success is false, error is set, data is absent.","required":["error","success","timestamp"],"properties":{"error":{"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.error.message","typeLabel":"string"},"code":{"description":"Machine-readable, for example BAD_REQUEST, NOT_FOUND, CONFLICT, ORG_NOT_ACTIVE, RATE_LIMIT_EXCEEDED, SERVICE_UNAVAILABLE, INTERNAL_ERROR.","type":"string","uniqueKey":"oneOf.0.error.code","typeLabel":"string"},"details":{"additionalProperties":true,"description":"For field validation, a map of field name to message (\"email\": \"Email must be a valid email address\"); for a body that does not decode, the offending field.","type":"object","uniqueKey":"oneOf.0.error.details","typeLabel":"object"}},"required":["message"],"type":"object","isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"object"},"success":{"type":"boolean","description":"true on success","const":false,"isRequired":true,"uniqueKey":"oneOf.0.success","typeLabel":"boolean"},"timestamp":{"description":"When the response was written.","format":"date-time","type":"string","isRequired":true,"uniqueKey":"oneOf.0.timestamp","typeLabel":"string\u003cdate-time>"},"data":{"description":"The payload; its shape is given per operation. Omitted when there is none.","uniqueKey":"oneOf.0.data","typeLabel":"any"},"message":{"description":"Human-readable summary; omitted when empty.","type":"string","uniqueKey":"oneOf.0.message","typeLabel":"string"},"metadata":{"description":"List metadata. Page lists set page, per_page, total and total_pages; offset and cursor lists set limit, offset, has_more and next_cursor. Zero and empty fields are omitted, and metadata is absent when nothing is set.","properties":{"has_more":{"type":"boolean","uniqueKey":"oneOf.0.metadata.has_more","typeLabel":"boolean"},"limit":{"type":"integer","uniqueKey":"oneOf.0.metadata.limit","typeLabel":"integer"},"next_cursor":{"description":"Opaque; pass as cursor for the next page.","type":"string","uniqueKey":"oneOf.0.metadata.next_cursor","typeLabel":"string"},"offset":{"type":"integer","uniqueKey":"oneOf.0.metadata.offset","typeLabel":"integer"},"page":{"type":"integer","uniqueKey":"oneOf.0.metadata.page","typeLabel":"integer"},"per_page":{"type":"integer","uniqueKey":"oneOf.0.metadata.per_page","typeLabel":"integer"},"total":{"type":"integer","uniqueKey":"oneOf.0.metadata.total","typeLabel":"integer"},"total_pages":{"type":"integer","uniqueKey":"oneOf.0.metadata.total_pages","typeLabel":"integer"}},"type":"object","uniqueKey":"oneOf.0.metadata","typeLabel":"object"},"request_id":{"description":"Set on error envelopes: the request's correlation id (req_ followed by a UUID), the same value as the X-Correlation-ID response header. Quote it to support.","type":"string","uniqueKey":"oneOf.0.request_id","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"RFC 7807 problem. Returned when authentication fails and for errors raised by the services behind a handler (validation, domain refusals such as FEATURE_NOT_ENABLED or PRECONDITION_FAILED, partner outages); branch on code.","required":["type","title","status","code","timestamp"],"properties":{"code":{"description":"Machine-readable; branch on this, not on the status or the wording. For example VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_NOT_ENABLED, PERSONAL_WORKSPACE_CUSTOMERS, TIER_PRODUCT_LOCKED, NOT_FOUND, DUPLICATE_KEY_ERROR, ALREADY_EXISTS, PRECONDITION_FAILED, INSUFFICIENT_FUNDS, TIER_LIMIT_REACHED, RATE_LIMIT_EXCEEDED, TIMEOUT, SERVICE_UNAVAILABLE, LIMITS_UNAVAILABLE, PLATFORM_PAUSED, INTERNAL_ERROR.","type":"string","isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"string"},"status":{"description":"The HTTP status, repeated.","type":"integer","isRequired":true,"uniqueKey":"oneOf.1.status","typeLabel":"integer"},"timestamp":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"oneOf.1.timestamp","typeLabel":"string\u003cdate-time>"},"title":{"description":"Short summary of the code, for example Validation Error or Feature Not Enabled.","type":"string","isRequired":true,"uniqueKey":"oneOf.1.title","typeLabel":"string"},"type":{"description":"https://api.bitnob.com/errors/{code}","format":"uri","type":"string","isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"string\u003curi>"},"correlation_id":{"description":"The request's correlation id, the same value as the X-Correlation-ID response header.","type":"string","uniqueKey":"oneOf.1.correlation_id","typeLabel":"string"},"detail":{"description":"What went wrong for this request, safe to show; internal and partner failures carry a generic sentence.","type":"string","uniqueKey":"oneOf.1.detail","typeLabel":"string"},"extensions":{"additionalProperties":true,"description":"Code-specific facts, for example feature_key (FEATURE_NOT_ENABLED), field or field_violations (VALIDATION_ERROR), rail, window, limit, used, requested and remaining (TIER_LIMIT_REACHED), scope (PLATFORM_PAUSED).","type":"object","uniqueKey":"oneOf.1.extensions","typeLabel":"object"},"instance":{"type":"string","uniqueKey":"oneOf.1.instance","typeLabel":"string"},"request_id":{"description":"Equal to correlation_id.","type":"string","uniqueKey":"oneOf.1.request_id","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Temporarily unavailable; retry later. The identity service could not check the credentials (sent with Retry-After), a partner is down (SERVICE_UNAVAILABLE), the limits check could not run (LIMITS_UNAVAILABLE), or a platform control paused money movement (PLATFORM_PAUSED).","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","example":1,"schema":{"minimum":0,"type":"integer"}},"X-Correlation-ID":{"description":"Generated for every request (any value the client sends is ignored); quote it to support. Errors repeat it as request_id and correlation_id.","example":"req_019a3b5c-7d1e-7f20-8a4b-3c5d6e7f8091","schema":{"type":"string"}}},"exampleType":"examples"}},"security":{"84531dae-8a2b-463a-9e2c-5e7ca82bedfa":{"BitnobClientId":{"type":"apiKey","in":"header","name":"X-Auth-Client","description":"Your workspace client id.\n\nAll calls must include four headers:\n- `X-Auth-Client` — your workspace client id\n- `X-Auth-Timestamp` — Unix seconds\n- `X-Auth-Nonce` — 16-byte random hex\n- `X-Auth-Signature` — hex(HMAC-SHA256(\n `{client_id}:{timestamp}:{nonce}:{raw_body}`,\n client_secret))\n\nThe playground computes the timestamp, nonce and signature for you.\n","scopes":[],"schemeName":"BitnobClientId"},"BitnobClientSecret":{"type":"apiKey","in":"header","name":"X-Playground-Client-Secret","description":"Your sandbox client secret. The playground uses it to sign the request in your browser and removes it before the request is sent. Never send your client secret as a header in your own integration.\n","scopes":[],"schemeName":"BitnobClientSecret"}}},"servers":{"c892e9b2-d2ac-4417-bf60-7d0571e9ca1b":{"description":"Production","url":"https://api.bitnob.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Auth-Client","description":"Your workspace client id.\n\nAll calls must include four headers:\n- `X-Auth-Client` — your workspace client id\n- `X-Auth-Timestamp` — Unix seconds\n- `X-Auth-Nonce` — 16-byte random hex\n- `X-Auth-Signature` — hex(HMAC-SHA256(\n `{client_id}:{timestamp}:{nonce}:{raw_body}`,\n client_secret))\n\nThe playground computes the timestamp, nonce and signature for you.\n","scopes":[],"schemeName":"BitnobClientId"},"schema":{"title":"X-Auth-Client","type":"string","description":"Your workspace client id.\n\nAll calls must include four headers:\n- `X-Auth-Client` — your workspace client id\n- `X-Auth-Timestamp` — Unix seconds\n- `X-Auth-Nonce` — 16-byte random hex\n- `X-Auth-Signature` — hex(HMAC-SHA256(\n `{client_id}:{timestamp}:{nonce}:{raw_body}`,\n client_secret))\n\nThe playground computes the timestamp, nonce and signature for you.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"BitnobClientId","name":"X-Auth-Client"},{"scheme":{"type":"apiKey","in":"header","name":"X-Playground-Client-Secret","description":"Your sandbox client secret. The playground uses it to sign the request in your browser and removes it before the request is sent. Never send your client secret as a header in your own integration.\n","scopes":[],"schemeName":"BitnobClientSecret"},"schema":{"title":"X-Playground-Client-Secret","type":"string","description":"Your sandbox client secret. The playground uses it to sign the request in your browser and removes it before the request is sent. Never send your client secret as a header in your own integration.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"BitnobClientSecret","name":"X-Playground-Client-Secret"}],"title":"BitnobClientId \u0026 BitnobClientSecret"}]},"originalFileLocation":"api-collections/swagger/bitnob-api-v2.openapi.json"},"subdomain":"bitnob","siteName":"Bitnob","title":"Add a corporate cardholder - Bitnob","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T10:20:45.324Z","originalFileLocation":"api-reference/cards/add-a-corporate-cardholder.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=\"Adds a person as a cardholder on a KYB-approved business. completion_link is returned while the cardholder\u0026#x27;s compliance check is pending or needs action.\">\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=\"Add a corporate cardholder - Bitnob\">\u003cmeta data-mint-head property=\"og:description\" content=\"Adds a person as a cardholder on a KYB-approved business. completion_link is returned while the cardholder\u0026#x27;s compliance check is pending or needs action.\">\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/cards/add-a-corporate-cardholder\">\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=Virtual+cards\u0026amp;title=Add+a+corporate+cardholder\u0026amp;description=Adds+a+person+as+a+cardholder+on+a+KYB-approved+business.+completion_link+is+returned+while+the+cardholder%27s+compliance+check+is+pending+or+needs+action.\u0026amp;theme=1bbb91a73b5fc150fde1eea2\u0026amp;signature=eae8b244eb6b1d142c6a98187875e4de541e8d92328a136901ea8c8b2334bc2d\">\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=\"Add a corporate cardholder - Bitnob\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Adds a person as a cardholder on a KYB-approved business. completion_link is returned while the cardholder\u0026#x27;s compliance check is pending or needs action.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://bitnob.mintlify.site/_mintlify/api/og/v2?division=Virtual+cards\u0026amp;title=Add+a+corporate+cardholder\u0026amp;description=Adds+a+person+as+a+cardholder+on+a+KYB-approved+business.+completion_link+is+returned+while+the+cardholder%27s+compliance+check+is+pending+or+needs+action.\u0026amp;theme=1bbb91a73b5fc150fde1eea2\u0026amp;signature=eae8b244eb6b1d142c6a98187875e4de541e8d92328a136901ea8c8b2334bc2d\">\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/cards/add-a-corporate-cardholder\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/cards/add-a-corporate-cardholder.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/cards/add-a-corporate-cardholder#webpage\",\"url\":\"https://www.bitnob.dev/api-reference/cards/add-a-corporate-cardholder\",\"name\":\"Add a corporate cardholder\",\"description\":\"Adds a person as a cardholder on a KYB-approved business. completion_link is returned while the cardholder's compliance check is pending or needs action.\",\"dateModified\":\"2026-11-06T10:20:45.324Z\",\"isPartOf\":{\"@id\":\"https://www.bitnob.dev#website\"},\"breadcrumb\":{\"@id\":\"https://www.bitnob.dev/api-reference/cards/add-a-corporate-cardholder#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.bitnob.dev/api-reference/cards/add-a-corporate-cardholder#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Virtual cards\",\"item\":\"https://www.bitnob.dev/api-reference/cards/create-card\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Add a corporate cardholder\",\"item\":\"https://www.bitnob.dev/api-reference/cards/add-a-corporate-cardholder\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://www.bitnob.dev/api-reference/cards/add-a-corporate-cardholder#apireference\",\"headline\":\"Add a corporate cardholder\",\"name\":\"Add a corporate cardholder\",\"description\":\"Adds a person as a cardholder on a KYB-approved business. completion_link is returned while the cardholder's compliance check is pending or needs action.\",\"url\":\"https://www.bitnob.dev/api-reference/cards/add-a-corporate-cardholder\",\"mainEntityOfPage\":{\"@id\":\"https://www.bitnob.dev/api-reference/cards/add-a-corporate-cardholder#webpage\"},\"dateModified\":\"2026-11-06T10:20:45.324Z\",\"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","groups":[{"group":"Get started","icon":"rocket","expanded":true,"pages":[{"title":"Bitnob Business API authentication and request signing","sidebarTitle":"Authentication","href":"/api-reference/authentication/authentication"},{"title":"Bitnob Business API webhooks","sidebarTitle":"Webhooks","href":"/api-reference/webhooks"},{"title":"Making Bitnob Business API requests","sidebarTitle":"Making requests","href":"/api-reference/authentication/usage-examples"}]},{"group":"Identity","icon":"id-card","expanded":true,"pages":[{"title":"Check your credentials","deprecated":null,"version":null,"sidebarTitle":"Who am i","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/whoami","href":"/api-reference/identity/who-am-i"},{"title":"Check your credentials","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/whoami","href":"/api-reference/authentication/check-your-credentials"}]},{"group":"Balances","icon":"scale-balanced","expanded":true,"pages":[{"title":"List balances","deprecated":null,"version":null,"sidebarTitle":"List balances","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/balances","href":"/api-reference/balances/list-balances"},{"title":"Get a balance by currency","deprecated":null,"version":null,"sidebarTitle":"Get balance by currency","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/balances/{currency}","href":"/api-reference/balances/get-balance-by-currency"}]},{"group":"Customers","icon":"users","expanded":true,"pages":[{"title":"List supported countries","deprecated":null,"version":null,"sidebarTitle":"List countries","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/customers/countries","href":"/api-reference/customers/list-countries"},{"title":"List states for a country","deprecated":null,"version":null,"sidebarTitle":"List states for country","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/customers/countries/{countryCode}/states","href":"/api-reference/customers/list-states-for-country"},{"title":"Create a customer","deprecated":null,"version":null,"sidebarTitle":"Create customer","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/customers","href":"/api-reference/customers/create-customer"},{"title":"List customers","deprecated":null,"version":null,"sidebarTitle":"List customers","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/customers","href":"/api-reference/customers/list-customers"},{"title":"Get a customer","deprecated":null,"version":null,"sidebarTitle":"Get customer","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/customers/{customerId}","href":"/api-reference/customers/get-customer"},{"title":"Update a customer","deprecated":null,"version":null,"sidebarTitle":"Update customer","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json put /api/customers/{customerId}","href":"/api-reference/customers/update-customer"},{"title":"Delete a customer","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json delete /api/customers/{customerId}","href":"/api-reference/customers/delete-a-customer"}]},{"group":"Beneficiaries","icon":"user-check","expanded":true,"pages":[{"title":"Create a beneficiary","deprecated":null,"version":null,"sidebarTitle":"Create beneficiary","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/beneficiaries","href":"/api-reference/beneficiaries/create-beneficiary"},{"title":"List beneficiaries","deprecated":null,"version":null,"sidebarTitle":"List beneficiaries","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/beneficiaries","href":"/api-reference/beneficiaries/list-beneficiaries"},{"title":"Get a beneficiary","deprecated":null,"version":null,"sidebarTitle":"Get beneficiary","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/beneficiaries/{beneficiaryId}","href":"/api-reference/beneficiaries/get-beneficiary"},{"title":"Update a beneficiary","deprecated":null,"version":null,"sidebarTitle":"Update beneficiary","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json put /api/beneficiaries/{beneficiaryId}","href":"/api-reference/beneficiaries/update-beneficiary"},{"title":"Delete a beneficiary","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json delete /api/beneficiaries/{beneficiaryId}","href":"/api-reference/beneficiaries/delete-a-beneficiary"}]},{"group":"Addresses","icon":"location-dot","expanded":true,"pages":[{"title":"Generate a crypto address","deprecated":null,"version":null,"sidebarTitle":"Generate address","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/addresses","href":"/api-reference/addresses/generate-address"},{"title":"List crypto addresses","deprecated":null,"version":null,"sidebarTitle":"List addresses","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/addresses","href":"/api-reference/addresses/list-addresses"},{"title":"Get a crypto address","deprecated":null,"version":null,"sidebarTitle":"Get address by id","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/addresses/{id}","href":"/api-reference/addresses/get-address-by-id"},{"title":"Validate a crypto address","deprecated":null,"version":null,"sidebarTitle":"Validate address","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/addresses/validate","href":"/api-reference/addresses/validate-address"},{"title":"List supported chains","deprecated":null,"version":null,"sidebarTitle":"Supported chains","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/addresses/supported-chains","href":"/api-reference/addresses/supported-chains"}]},{"group":"Lightning","icon":"bolt","expanded":true,"pages":[{"title":"Create an invoice","deprecated":null,"version":null,"sidebarTitle":"Create invoice","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lightning/invoices","href":"/api-reference/lightning/create-invoice"},{"title":"List invoices","deprecated":null,"version":null,"sidebarTitle":"List invoices","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/lightning/invoices","href":"/api-reference/lightning/list-invoices"},{"title":"Get an invoice","deprecated":null,"version":null,"sidebarTitle":"Get invoice","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/lightning/invoices/{id}","href":"/api-reference/lightning/get-invoice"},{"title":"Simulate an invoice payment","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lightning/invoices/{id}/simulate-payment","href":"/api-reference/lightning/simulate-an-invoice-payment"},{"title":"Decode a BOLT11 invoice","deprecated":null,"version":null,"sidebarTitle":"Decode bolt11","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lightning/decode","href":"/api-reference/lightning/decode-bolt11"},{"title":"Preview a payment","deprecated":null,"version":null,"sidebarTitle":"Preview payment","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lightning/preview","href":"/api-reference/lightning/preview-payment"},{"title":"Pay an invoice","deprecated":null,"version":null,"sidebarTitle":"Send payment","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lightning/pay","href":"/api-reference/lightning/send-payment"}]},{"group":"LNURL","icon":"at","expanded":true,"pages":[{"title":"Pay a lightning address or LNURL","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lnurl/pay","href":"/api-reference/lnurl/pay-a-lightning-address-or-lnurl"},{"title":"Resolve a destination","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lnurl/resolve","href":"/api-reference/lnurl/resolve-a-destination"},{"title":"Decode an LNURL","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lnurl/decode","href":"/api-reference/lnurl/decode-an-lnurl"},{"title":"Encode an LNURL","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lnurl/encode","href":"/api-reference/lnurl/encode-an-lnurl"},{"title":"Create a lightning address","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lnurl/addresses","href":"/api-reference/lnurl/create-a-lightning-address"},{"title":"List lightning addresses","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/lnurl/addresses","href":"/api-reference/lnurl/list-lightning-addresses"},{"title":"Get a lightning address","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/lnurl/addresses/{id}","href":"/api-reference/lnurl/get-a-lightning-address"},{"title":"Update a lightning address","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json patch /api/lnurl/addresses/{id}","href":"/api-reference/lnurl/update-a-lightning-address"},{"title":"Delete a lightning address","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json delete /api/lnurl/addresses/{id}","href":"/api-reference/lnurl/delete-a-lightning-address"},{"title":"Register a domain","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lnurl/domains","href":"/api-reference/lnurl/register-a-domain"},{"title":"List domains","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/lnurl/domains","href":"/api-reference/lnurl/list-domains"},{"title":"Get a domain","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/lnurl/domains/{id}","href":"/api-reference/lnurl/get-a-domain"},{"title":"Verify a domain","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lnurl/domains/{id}/verify","href":"/api-reference/lnurl/verify-a-domain"},{"title":"Disable a domain","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lnurl/domains/{id}/disable","href":"/api-reference/lnurl/disable-a-domain"},{"title":"Issue a withdraw link","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lnurl/withdrawals","href":"/api-reference/lnurl/issue-a-withdraw-link"},{"title":"Get a withdraw link","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/lnurl/withdrawals/{id}","href":"/api-reference/lnurl/get-a-withdraw-link"},{"title":"Cancel a withdraw link","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/lnurl/withdrawals/{id}/cancel","href":"/api-reference/lnurl/cancel-a-withdraw-link"}]},{"group":"Nodes","icon":"server","expanded":true,"pages":[{"title":"Proxy a JSON-RPC call to a node","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/nodes","href":"/api-reference/nodes/proxy-a-json-rpc-call-to-a-node"}]},{"group":"Withdrawals","icon":"arrow-up-from-bracket","expanded":true,"pages":[{"title":"Send crypto to an address","deprecated":null,"version":null,"sidebarTitle":"Initiate withdrawal","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/withdrawals","href":"/api-reference/withdrawals/initiate-withdrawal"}]},{"group":"Transfers","icon":"right-left","expanded":true,"pages":[{"title":"Transfer to another organisation","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/transfers/internal","href":"/api-reference/transfers/transfer-to-another-organisation"}]},{"group":"Transactions","icon":"receipt","expanded":true,"pages":[{"title":"List transactions","deprecated":null,"version":null,"sidebarTitle":"List transactions","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/transactions","href":"/api-reference/transactions/list-transactions"},{"title":"Get a transaction","deprecated":null,"version":null,"sidebarTitle":"Get transaction by id","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/transactions/{id}","href":"/api-reference/transactions/get-transaction-by-id"}]},{"group":"Exchange rates","icon":"chart-line","expanded":true,"pages":[{"title":"Get exchange rates","deprecated":null,"version":null,"sidebarTitle":"Get single pair rate","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/exchange-rates","href":"/api-reference/exchange-rates/get-single-pair-rate"},{"title":"Convert an amount","deprecated":null,"version":null,"sidebarTitle":"Convert amount","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/exchange-rates/convert","href":"/api-reference/exchange-rates/convert-amount"},{"title":"Execute a conversion","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/exchange-rates/conversions","href":"/api-reference/exchange-rates/execute-a-conversion"},{"title":"List conversions","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/exchange-rates/conversions","href":"/api-reference/exchange-rates/list-conversions"},{"title":"Get a conversion","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/exchange-rates/conversions/{id}","href":"/api-reference/exchange-rates/get-a-conversion"}]},{"group":"Trading","icon":"arrow-right-arrow-left","expanded":true,"pages":[{"title":"Get trading prices","deprecated":null,"version":null,"sidebarTitle":"List all prices","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/trading/prices","href":"/api-reference/trading/list-all-prices"},{"title":"Request a trade quote","deprecated":null,"version":null,"sidebarTitle":"Create quote","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/trading/quotes","href":"/api-reference/trading/create-quote"},{"title":"Get quote status","deprecated":null,"version":null,"sidebarTitle":"Get quote status","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/trading/quotes/{id}","href":"/api-reference/trading/get-quote-status"},{"title":"Submit a trade order","deprecated":null,"version":null,"sidebarTitle":"Submit order","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/trading/orders","href":"/api-reference/trading/submit-order"},{"title":"List trade orders","deprecated":null,"version":null,"sidebarTitle":"List orders","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/trading/orders","href":"/api-reference/trading/list-orders"},{"title":"Get a trade order","deprecated":null,"version":null,"sidebarTitle":"Get order by id or reference","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/trading/orders/{id}","href":"/api-reference/trading/get-order-by-id-or-reference"},{"title":"Cancel a trade order","deprecated":null,"version":null,"sidebarTitle":"Cancel order","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json delete /api/trading/orders/{id}","href":"/api-reference/trading/cancel-order"}]},{"group":"Payouts","icon":"money-bill-transfer","expanded":true,"pages":[{"title":"Create a payout quote","deprecated":null,"version":null,"sidebarTitle":"Create quote","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/payouts/quotes","href":"/api-reference/payouts/create-quote"},{"title":"Get a payout quote","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/payouts/quotes/{quoteId}","href":"/api-reference/payouts/get-a-payout-quote"},{"title":"Initialize a payout","deprecated":null,"version":null,"sidebarTitle":"Initialize payout","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/payouts/{quoteId}/initialize","href":"/api-reference/payouts/initialize-payout"},{"title":"Finalize a payout","deprecated":null,"version":null,"sidebarTitle":"Finalize payout","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/payouts/{quoteId}/finalize","href":"/api-reference/payouts/finalize-payout"},{"title":"Look up a bank or mobile money account","deprecated":null,"version":null,"sidebarTitle":"Account lookup","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/payouts/account-lookup","href":"/api-reference/payouts/account-lookup"},{"title":"List payout countries","deprecated":null,"version":null,"sidebarTitle":"Supported countries","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/payouts/supported-countries","href":"/api-reference/payouts/supported-countries"},{"title":"Get a country's beneficiary requirements","deprecated":null,"version":null,"sidebarTitle":"Country requirements","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/payouts/supported-countries/{country}","href":"/api-reference/payouts/country-requirements"},{"title":"Get payout limits","deprecated":null,"version":null,"sidebarTitle":"Payout limits","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/payouts/limits","href":"/api-reference/payouts/payout-limits"},{"title":"List banks for a country","deprecated":null,"version":null,"sidebarTitle":"Banks by country","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/payouts/banks/{countryCode}","href":"/api-reference/payouts/banks-by-country"},{"title":"List payouts","deprecated":null,"version":null,"sidebarTitle":"List payouts","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/payouts","href":"/api-reference/payouts/list-payouts"},{"title":"Get a payout","deprecated":null,"version":null,"sidebarTitle":"Get payout","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/payouts/{id}","href":"/api-reference/payouts/get-payout"}]},{"group":"Virtual accounts","icon":"building-columns","expanded":true,"pages":[{"title":"Create a virtual account","deprecated":null,"version":null,"sidebarTitle":"Create virtual account","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/virtual-accounts","href":"/api-reference/virtual-accounts/create-virtual-account"},{"title":"List virtual accounts","deprecated":null,"version":null,"sidebarTitle":"List virtual accounts","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/virtual-accounts","href":"/api-reference/virtual-accounts/list-virtual-accounts"},{"title":"List supported currencies","deprecated":null,"version":null,"sidebarTitle":"Supported currencies","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/virtual-accounts/supported-currencies","href":"/api-reference/virtual-accounts/supported-currencies"},{"title":"Get a virtual account","deprecated":null,"version":null,"sidebarTitle":"Get virtual account","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/virtual-accounts/{id}","href":"/api-reference/virtual-accounts/get-virtual-account"},{"title":"List virtual account transactions","deprecated":null,"version":null,"sidebarTitle":"Get account transactions","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/virtual-accounts/{id}/transactions","href":"/api-reference/virtual-accounts/get-account-transactions"},{"title":"Update a virtual account alias","deprecated":null,"version":null,"sidebarTitle":"Update account alias","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json patch /api/virtual-accounts/{id}/alias","href":"/api-reference/virtual-accounts/update-account-alias"},{"title":"Simulate a deposit (sandbox)","deprecated":null,"version":null,"sidebarTitle":"Simulate deposit sandbox","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/virtual-accounts/{id}/simulate-deposit","href":"/api-reference/virtual-accounts/simulate-deposit-sandbox"}]},{"group":"Virtual cards","icon":"credit-card","expanded":true,"pages":[{"title":"Create a card","deprecated":null,"version":null,"sidebarTitle":"Create card","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/cards","href":"/api-reference/cards/create-card"},{"title":"List cards","deprecated":null,"version":null,"sidebarTitle":"List cards","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/cards","href":"/api-reference/cards/list-cards"},{"title":"List team-member cards","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/cards/team-members","href":"/api-reference/cards/list-team-member-cards"},{"title":"List card transactions","deprecated":null,"version":null,"sidebarTitle":"List all card transactions","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/cards/transactions","href":"/api-reference/cards/list-all-card-transactions"},{"title":"Get a card","deprecated":null,"version":null,"sidebarTitle":"Get card","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/cards/{cardId}","href":"/api-reference/cards/get-card"},{"title":"Terminate a card","deprecated":null,"version":null,"sidebarTitle":"Terminate card","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json delete /api/cards/{cardId}","href":"/api-reference/cards/terminate-card"},{"title":"Reveal card details","deprecated":null,"version":null,"sidebarTitle":"Get secure card details","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/cards/{cardId}/secure","href":"/api-reference/cards/get-secure-card-details"},{"title":"List a card's transactions","deprecated":null,"version":null,"sidebarTitle":"List card transactions by card","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/cards/{cardId}/transactions","href":"/api-reference/cards/list-card-transactions-by-card"},{"title":"Get a card transaction","deprecated":null,"version":null,"sidebarTitle":"Get single card transaction","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/cards/{cardId}/transactions/{transactionId}","href":"/api-reference/cards/get-single-card-transaction"},{"title":"Fund or withdraw from a card","deprecated":null,"version":null,"sidebarTitle":"Fund or withdraw balance","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/cards/{cardId}/balance","href":"/api-reference/cards/fund-or-withdraw-balance"},{"title":"Freeze or unfreeze a card","deprecated":null,"version":null,"sidebarTitle":"Freeze or unfreeze","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/cards/{cardId}/status","href":"/api-reference/cards/freeze-or-unfreeze"},{"title":"Update spending limits","deprecated":null,"version":null,"sidebarTitle":"Update spend limits","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json put /api/cards/{cardId}/spend-limits","href":"/api-reference/cards/update-spend-limits"},{"title":"Update cardholder contact","deprecated":null,"version":null,"sidebarTitle":"Update card contact","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json patch /api/cards/{cardId}/contact","href":"/api-reference/cards/update-card-contact"},{"title":"List card deposit addresses","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/cards/{cardId}/deposit-addresses","href":"/api-reference/cards/list-card-deposit-addresses"},{"title":"Add a card deposit address","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/cards/{cardId}/deposit-addresses","href":"/api-reference/cards/add-a-card-deposit-address"},{"title":"Get card funding details","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/cards/funding-details/{customerId}","href":"/api-reference/cards/get-card-funding-details"},{"title":"Register an encryption key","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/cards/encryption-key","href":"/api-reference/cards/register-an-encryption-key"},{"title":"Simulate a card webhook","deprecated":null,"version":null,"sidebarTitle":"Simulate card webhook sandbox","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/cards/{cardId}/simulate-webhook","href":"/api-reference/cards/simulate-card-webhook-sandbox"},{"title":"Start individual card KYC","deprecated":null,"version":null,"sidebarTitle":"Card kyc","openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/cards/kyc","href":"/api-reference/cards/card-kyc"},{"title":"Get card KYC status","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/cards/kyc/{customerId}","href":"/api-reference/cards/get-card-kyc-status"},{"title":"Find a KYC customer by email","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/cards/kyc/customer","href":"/api-reference/cards/find-a-kyc-customer-by-email"},{"title":"List KYC occupations","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/cards/kyc/occupations","href":"/api-reference/cards/list-kyc-occupations"},{"title":"List KYC industries","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/cards/kyc/industries","href":"/api-reference/cards/list-kyc-industries"},{"title":"Start corporate KYB","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/cards/kyc/corporate","href":"/api-reference/cards/start-corporate-kyb"},{"title":"Get corporate KYB status","description":"Returns the business customer's KYB status, with a reason when action is required or the application was denied.","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json get /api/cards/kyc/corporate/{customerId}","href":"/api-reference/cards/get-corporate-kyb-status"},{"title":"Add a corporate cardholder","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/cards/kyc/corporate/{customerId}/cardholders","href":"/api-reference/cards/add-a-corporate-cardholder"},{"title":"Simulate a card KYC outcome","description":"Sandbox only. Moves a customer's prepaid card KYC to the outcome you choose and sends the KYC webhook.","deprecated":null,"version":null,"openapi":"/api-collections/swagger/bitnob-api-v2.openapi.json post /api/cards/kyc/{customerId}/simulate-webhook","href":"/api-reference/cards/simulate-a-card-kyc-outcome"}]}]},{"tab":"Enterprise API","icon":"wallet","pages":[{"title":"Enterprise API","href":"/docs/platform/authentication"}]},{"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":"Add a corporate cardholder - 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"]}