{
"type": "https://docs.etherfuse.com/ramp/v2/errors/invalid-request",
"title": "Invalid request",
"status": 400,
"detail": "dateOfBirth must be a date in YYYY-MM-DD format; country 'MX' is not a recognized ISO 3166-1 alpha-3 country code (e.g. MEX); address.city is required",
"instance": "tag:etherfuse.com,2026-08-28:R2-70010/9b2f4c1e-5a6b-4c7d-8e9f-0a1b2c3d4e5f"
}
{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}
{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}
{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}
{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}
KYC
Submit verification data
First call in the KYC API flow. Nothing else is accepted before it: country is what routes the customer to their country’s requirements.
Answers 202, not 200. We validate the request before we answer and record it with the verification provider after. A 202 means accepted, not satisfied. Read the result from the kycUpdated webhook or GET /organization/{organizationId}/kyc?requirements=true.
Submitting again overwrites what was sent before, and never moves the customer’s review status on its own. Personal organizations only.
{
"type": "https://docs.etherfuse.com/ramp/v2/errors/invalid-request",
"title": "Invalid request",
"status": 400,
"detail": "dateOfBirth must be a date in YYYY-MM-DD format; country 'MX' is not a recognized ISO 3166-1 alpha-3 country code (e.g. MEX); address.city is required",
"instance": "tag:etherfuse.com,2026-08-28:R2-70010/9b2f4c1e-5a6b-4c7d-8e9f-0a1b2c3d4e5f"
}
{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}
{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}
{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}
{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}
The customer's country, as an ISO 3166-1 alpha-3 code. Alpha-2 codes and country names are rejected. This is the one country field for the customer (there is no separate nationality), and its value routes them to their country's requirements.
inProgress: the customer started but has not submitted everything.
submitted: submitted and waiting for review.
approved: cleared.
denied: rejected, or a previous approval was revoked.
Available options:
notStarted,
inProgress,
submitted,
approved,
denied
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Etherfuse API","colors":{"primary":"#141414","light":"#E4FF3F","dark":"#141414"},"logo":{"light":"https://mintcdn.com/etherfuse/XRSchVFGUgreQatD/img/logo-black.svg?fit=max\u0026auto=format\u0026n=XRSchVFGUgreQatD\u0026q=85\u0026s=92cf84eca27df4a19f7b032da398d110","dark":"https://mintcdn.com/etherfuse/XRSchVFGUgreQatD/img/logo-white.svg?fit=max\u0026auto=format\u0026n=XRSchVFGUgreQatD\u0026q=85\u0026s=7c87780c9a248347ffe6357ccf6762ed","href":"https://etherfuse.com"},"favicon":"https://mintcdn.com/etherfuse/pF4txuzXWQE790kS/img/favicon.png?fit=max\u0026auto=format\u0026n=pF4txuzXWQE790kS\u0026q=85\u0026s=ac74be5f7f4605e75bc961be0c6e5ff9","api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","javascript","python"],"autogenerate":true}},"navbar":{"links":[{"href":"https://cal.com/team/etherfuse/api-overview?overlayCalendar=true","label":"Book a demo"},{"href":"https://app.etherfuse.com","label":"App"}],"primary":{"type":"button","label":"Get sandbox keys","href":"https://sandbox.etherfuse.com/sign-in?returnTo=%2Faccount%2Fmanage"}},"footer":{"links":[{"items":[{"label":"Website","href":"https://etherfuse.com"},{"label":"App","href":"https://app.etherfuse.com"},{"label":"Book a demo","href":"https://cal.com/team/etherfuse/api-overview?overlayCalendar=true"}]}]},"fonts":{"family":"Figtree"},"integrations":{"posthog":{"apiKey":"phc_vJEpZk4aZr9PxdPqapjg8ZKWFybTTmDvAxZNg88LTuPu","apiHost":"https://us.i.posthog.com"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"etherfuse","hasAudioNarration":false,"actualSubdomain":"etherfuse","customDomains":["docs.etherfuse.com"],"gitSource":{"type":"github","owner":"etherfuse","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae547dfd382909612c83cf7","collectionId":"eee1a3e5-d040-4b45-980d-cc540ca77f29","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae547dfd382909612c83cf7"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae547dfd382909612c83cf7","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"API Reference","count":151},{"language":"default","tag":"Ramp API","count":72},{"language":"default","tag":"Guides","count":65},{"language":"default","tag":"KYC","count":20},{"language":"default","tag":"Lookup API","count":18},{"language":"default","tag":"Orders","count":17},{"language":"default","tag":"Organizations","count":16},{"language":"default","tag":"User Authentication","count":12},{"language":"default","tag":"Blockchains","count":12},{"language":"default","tag":"Integration Guides","count":12}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"global.css","content":"body{scrollbar-gutter:stable}.sandbox-playground-cta{display:block;margin:1rem 0 1.25rem;padding:1rem 1.25rem;border-radius:.75rem;border:1px solid #141414;background-color:#e4ff3f;color:#141414!important;text-decoration:none;transition:background-color .15s ease,box-shadow .15s ease}.sandbox-playground-cta:hover{background-color:#d8f32f;box-shadow:0 2px 8px rgba(20,20,20,.12);color:#141414!important}.sandbox-playground-cta__body,.sandbox-playground-cta__detail,.sandbox-playground-cta__title{color:inherit!important}.dark .sandbox-playground-cta{border-color:#e4ff3f;background-color:#e4ff3f;color:#141414!important}.dark .sandbox-playground-cta:hover{background-color:#d8f32f;color:#141414!important}.sandbox-playground-cta__title{display:block;font-size:1rem;font-weight:600;margin-bottom:.35rem}.sandbox-playground-cta__body{display:block;font-size:.95rem;line-height:1.45;font-weight:500}.sandbox-playground-cta__detail{display:block;margin-top:.35rem;font-size:.85rem;line-height:1.45;opacity:.85}"}],"page":{"pagePath":"v2/api-reference/kyc/submit-verification-data","slug":"/v2/api-reference/kyc/submit-verification-data","pageMetadata":{"title":"Submit verification data","openapi":"openapi-v2.json POST /organization/{organizationId}/verification","description":"First call in the [KYC API](/v2/guides/kyc-api) flow. Nothing else is accepted before it: `country` is what routes the customer to their country's requirements.\n\n**Answers `202`, not `200`.** We validate the request before we answer and record it with the verification provider after. A `202` means accepted, not satisfied. Read the result from the `kycUpdated` webhook or [`GET /organization/{organizationId}/kyc?requirements=true`](/v2/api-reference/kyc/get-kyc-status).\n\nSubmitting again overwrites what was sent before, and never moves the customer's review status on its own. Personal organizations only.","href":"/v2/api-reference/kyc/submit-verification-data"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"First call in the \", _jsx(_components.a, {\n href: \"/v2/guides/kyc-api\",\n children: \"KYC API\"\n }), \" flow. Nothing else is accepted before it: \", _jsx(_components.code, {\n children: \"country\"\n }), \" is what routes the customer to their country’s requirements.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsxs(_components.strong, {\n children: [\"Answers \", _jsx(_components.code, {\n children: \"202\"\n }), \", not \", _jsx(_components.code, {\n children: \"200\"\n }), \".\"]\n }), \" We validate the request before we answer and record it with the verification provider after. A \", _jsx(_components.code, {\n children: \"202\"\n }), \" means accepted, not satisfied. Read the result from the \", _jsx(_components.code, {\n children: \"kycUpdated\"\n }), \" webhook or \", _jsx(_components.a, {\n href: \"/v2/api-reference/kyc/get-kyc-status\",\n children: _jsx(_components.code, {\n children: \"GET /organization/{organizationId}/kyc?requirements=true\"\n })\n }), \".\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Submitting again overwrites what was sent before, and never moves the customer’s review status on its own. Personal organizations only.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Submit verification data","openapi":"openapi-v2.json POST /organization/{organizationId}/verification","description":"First call in the [KYC API](/v2/guides/kyc-api) flow. Nothing else is accepted before it: `country` is what routes the customer to their country's requirements.\n\n**Answers `202`, not `200`.** We validate the request before we answer and record it with the verification provider after. A `202` means accepted, not satisfied. Read the result from the `kycUpdated` webhook or [`GET /organization/{organizationId}/kyc?requirements=true`](/v2/api-reference/kyc/get-kyc-status).\n\nSubmitting again overwrites what was sent before, and never moves the customer's review status on its own. Personal organizations only.","href":"/v2/api-reference/kyc/submit-verification-data"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["KYC"],"summary":"Submit verification data","description":"First call in the [KYC API](/v2/guides/kyc-api) flow. Nothing else is accepted before it: `country` is what routes the customer to their country's requirements.\n\n**Answers `202`, not `200`.** We validate the request before we answer and record it with the verification provider after. A `202` means accepted, not satisfied. Read the result from the `kycUpdated` webhook or [`GET /organization/{organizationId}/kyc?requirements=true`](/v2/api-reference/kyc/get-kyc-status).\n\nSubmitting again overwrites what was sent before, and never moves the customer's review status on its own. Personal organizations only.","operationId":"v2SubmitVerification","parameters":["2b6aa21b-1174-4833-8d55-d7464656e523"],"requestBody":"b5303e5a-23c1-4602-aeb1-9e4daf2c240d","responses":{"202":"c5c37f11-31f2-4a4b-b4c4-087b89b32f35","400":"b7e6e287-c602-4e67-9092-2555e8bc677e","401":"7b3d4a87-5416-4575-8254-7842af7d8f44","404":"6267be40-39cc-42fe-8136-d1c242ff7573","409":"f942597a-179f-4071-a153-5bd5229e31c8","500":"2e430e1b-6c02-4f4e-ab06-c034fe06d350"},"method":"post","type":"path","servers":["58ef8c25-fe99-4a3a-b3d6-63ae68d90d12"],"security":["e2afb556-03f4-4063-920b-822ee6d2cce7"],"path":"/organization/{organizationId}/verification","baseUrlOptions":["https://api.sand.etherfuse.com"],"title":"Submit verification data","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"2b6aa21b-1174-4833-8d55-d7464656e523":{"name":"organizationId","in":"path","required":true,"description":"The organization this call acts for: your API key's organization or one of its customer organizations. Any other id returns `404` `not-found`.","schema":{"type":"string","format":"uuid","isRequired":true,"description":"The organization this call acts for: your API key's organization or one of its customer organizations. Any other id returns `404` `not-found`.","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Personal data a partner submits on the customer's behalf. A Mexican customer (`country: \"MEX\"`) needs a CURP and RFC to complete verification.","required":["firstName","lastName","dateOfBirth","taxId","country","address"],"properties":{"firstName":{"type":"string","isRequired":true,"uniqueKey":"firstName","typeLabel":"string"},"lastName":{"type":"string","isRequired":true,"uniqueKey":"lastName","typeLabel":"string"},"dateOfBirth":{"type":"string","description":"`YYYY-MM-DD`. Any other format is a 400.","example":"1990-01-01","isRequired":true,"uniqueKey":"dateOfBirth","typeLabel":"string"},"taxId":{"type":"string","description":"The customer's tax identification number. The RFC for a Mexican customer.","example":"XAXX010101000","isRequired":true,"uniqueKey":"taxId","typeLabel":"string"},"country":{"type":"string","description":"The customer's country, as an ISO 3166-1 alpha-3 code. Alpha-2 codes and country names are rejected. This is the one country field for the customer (there is no separate nationality), and its value routes them to their country's requirements.","example":"MEX","isRequired":true,"uniqueKey":"country","typeLabel":"string"},"address":{"type":"object","description":"The customer's residential address. Required, and it must match the identity document you upload; the provider cross-checks the two.","required":["street","city","country"],"properties":{"street":{"type":"string","example":"Av. Reforma 100","isRequired":true,"uniqueKey":"address.street","typeLabel":"string"},"city":{"type":"string","example":"Ciudad de Mexico","isRequired":true,"uniqueKey":"address.city","typeLabel":"string"},"country":{"type":"string","description":"ISO 3166-1 alpha-3.","example":"MEX","isRequired":true,"uniqueKey":"address.country","typeLabel":"string"},"region":{"oneOf":[{"type":"string","description":"State or province.","example":"CDMX","uniqueKey":"address.region.oneOf.0","typeLabel":"string"},{"type":"null","description":"State or province.","example":"CDMX","uniqueKey":"address.region.oneOf.1","typeLabel":"null"}],"uniqueKey":"address.region","typeLabel":"string | null"},"postalCode":{"oneOf":[{"type":"string","description":"Optional, because some countries issue none. Send it when the country has one.","example":"06600","uniqueKey":"address.postalCode.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional, because some countries issue none. Send it when the country has one.","example":"06600","uniqueKey":"address.postalCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"address.postalCode","typeLabel":"string | null"},"buildingNumber":{"oneOf":[{"type":"string","uniqueKey":"address.buildingNumber.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"address.buildingNumber.oneOf.1","typeLabel":"null"}],"uniqueKey":"address.buildingNumber","typeLabel":"string | null"},"flatNumber":{"oneOf":[{"type":"string","uniqueKey":"address.flatNumber.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"address.flatNumber.oneOf.1","typeLabel":"null"}],"uniqueKey":"address.flatNumber","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"address","typeLabel":"object"},"additionalInfo":{"type":"object","description":"Information beyond the standard personal data, which some verifications ask for.","properties":{"curp":{"oneOf":[{"type":"string","minLength":18,"maxLength":18,"pattern":"^[A-Za-z0-9]{18}$","description":"The customer's CURP. A Mexican customer (`country: \"MEX\"`) needs one to complete verification. Send it here, or the customer enters it in the [`/idv` launch](/v2/guides/kyc-websdk).","example":"XEXX010101HNEXXXA4","uniqueKey":"additionalInfo.curp.oneOf.0","typeLabel":"string"},{"type":"null","minLength":18,"maxLength":18,"pattern":"^[A-Za-z0-9]{18}$","description":"The customer's CURP. A Mexican customer (`country: \"MEX\"`) needs one to complete verification. Send it here, or the customer enters it in the [`/idv` launch](/v2/guides/kyc-websdk).","example":"XEXX010101HNEXXXA4","uniqueKey":"additionalInfo.curp.oneOf.1","typeLabel":"null"}],"uniqueKey":"additionalInfo.curp","typeLabel":"string | null"}},"uniqueKey":"additionalInfo","typeLabel":"object"}},"example":{"firstName":"Ana","lastName":"Ejemplo","dateOfBirth":"1990-01-01","taxId":"XAXX010101000","additionalInfo":{"curp":"XEXX010101HNEXXXA4"},"country":"MEX","address":{"street":"Av. Reforma 100","city":"Ciudad de Mexico","region":"CDMX","postalCode":"06600","country":"MEX"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"firstName":"Ana","lastName":"Ejemplo","dateOfBirth":"1990-01-01","taxId":"XAXX010101000","additionalInfo":{"curp":"XEXX010101HNEXXXA4"},"country":"MEX","address":{"street":"Av. Reforma 100","city":"Ciudad de Mexico","region":"CDMX","postalCode":"06600","country":"MEX"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"c5c37f11-31f2-4a4b-b4c4-087b89b32f35":{"description":"Accepted and being applied. The customer's current verification status is returned.","content":{"application/json":{"schema":{"type":"object","description":"Where the customer's verification stands after a write. `status` is the same value `GET /organization/{organizationId}/kyc` reports.","required":["organizationId","status"],"properties":{"organizationId":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"organizationId","typeLabel":"string\u003cuuid>"},"status":{"type":"string","enum":["notStarted","inProgress","submitted","approved","denied"],"description":"- `notStarted`: verification has not started.\n- `inProgress`: the customer started but has not submitted everything.\n- `submitted`: submitted and waiting for review.\n- `approved`: cleared.\n- `denied`: rejected, or a previous approval was revoked.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"}},"example":{"organizationId":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","status":"inProgress"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"organizationId":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","status":"inProgress"}}},"exampleType":"generated"}},"exampleType":"generated"},"b7e6e287-c602-4e67-9092-2555e8bc677e":{"description":"`invalid-request`: validation failed. `detail` lists every missing or invalid field at once, including a `country` that is not ISO 3166-1 alpha-3. Also returned for a business organization, which verifies through [KYB](/v2/guides/kyb).","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. Every v2 error uses this body with content type `application/problem+json`. `errors` is present only on `validation-error`. `required` and `missing` are present only on `registration-info-required`.","required":["type","title","status","detail","instance"],"properties":{"type":{"type":"string","format":"uri","description":"`https://docs.etherfuse.com/ramp/v2/errors/` followed by the problem slug, for example `https://docs.etherfuse.com/ramp/v2/errors/quote-expired`. Switch on this value.","example":"https://docs.etherfuse.com/ramp/v2/errors/quote-expired","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Short summary of the problem type.","example":"Quote expired","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code.","example":400,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Human-readable explanation of this occurrence. Do not parse it.","example":"quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"Unique identifier for this occurrence. Quote it to support.","example":"tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"errors":{"type":"array","description":"Present on `validation-error`. One entry per invalid field.","items":{"type":"object","required":["pointer","detail"],"properties":{"pointer":{"type":"string","description":"JSON Pointer to the field in the request, for example `#/accountDetails/clabe`.","example":"#/accountDetails/clabe","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"detail":{"type":"string","description":"What is wrong with the field.","example":"This field is required.","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"},"required":{"type":"array","description":"Present on `registration-info-required`. Every registration field the route requires, as JSON Pointers into the request, for example `#/registrationInfo/taxId`.","items":{"type":"string","uniqueKey":"required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"required","typeLabel":"string[]"},"missing":{"type":"array","description":"Present on `registration-info-required`. The required fields you must still send, as JSON Pointers into the request.","items":{"type":"string","uniqueKey":"missing.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missing","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://docs.etherfuse.com/ramp/v2/errors/invalid-request","title":"Invalid request","status":400,"detail":"dateOfBirth must be a date in YYYY-MM-DD format; country 'MX' is not a recognized ISO 3166-1 alpha-3 country code (e.g. MEX); address.city is required","instance":"tag:etherfuse.com,2026-08-28:R2-70010/9b2f4c1e-5a6b-4c7d-8e9f-0a1b2c3d4e5f"},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.etherfuse.com/ramp/v2/errors/invalid-request","title":"Invalid request","status":400,"detail":"dateOfBirth must be a date in YYYY-MM-DD format; country 'MX' is not a recognized ISO 3166-1 alpha-3 country code (e.g. MEX); address.city is required","instance":"tag:etherfuse.com,2026-08-28:R2-70010/9b2f4c1e-5a6b-4c7d-8e9f-0a1b2c3d4e5f"}}},"exampleType":"examples"}},"exampleType":"examples"},"7b3d4a87-5416-4575-8254-7842af7d8f44":{"description":"`unauthorized`: the `Authorization` header is missing, not ASCII, or does not hold a valid API key.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. Every v2 error uses this body with content type `application/problem+json`. `errors` is present only on `validation-error`. `required` and `missing` are present only on `registration-info-required`.","required":["type","title","status","detail","instance"],"properties":{"type":{"type":"string","format":"uri","description":"`https://docs.etherfuse.com/ramp/v2/errors/` followed by the problem slug, for example `https://docs.etherfuse.com/ramp/v2/errors/quote-expired`. Switch on this value.","example":"https://docs.etherfuse.com/ramp/v2/errors/quote-expired","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Short summary of the problem type.","example":"Quote expired","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code.","example":400,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Human-readable explanation of this occurrence. Do not parse it.","example":"quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"Unique identifier for this occurrence. Quote it to support.","example":"tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"errors":{"type":"array","description":"Present on `validation-error`. One entry per invalid field.","items":{"type":"object","required":["pointer","detail"],"properties":{"pointer":{"type":"string","description":"JSON Pointer to the field in the request, for example `#/accountDetails/clabe`.","example":"#/accountDetails/clabe","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"detail":{"type":"string","description":"What is wrong with the field.","example":"This field is required.","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"},"required":{"type":"array","description":"Present on `registration-info-required`. Every registration field the route requires, as JSON Pointers into the request, for example `#/registrationInfo/taxId`.","items":{"type":"string","uniqueKey":"required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"required","typeLabel":"string[]"},"missing":{"type":"array","description":"Present on `registration-info-required`. The required fields you must still send, as JSON Pointers into the request.","items":{"type":"string","uniqueKey":"missing.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missing","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.etherfuse.com/ramp/v2/errors/quote-expired","title":"Quote expired","status":400,"detail":"quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist","instance":"tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d","errors":[{"pointer":"#/accountDetails/clabe","detail":"This field is required."}],"required":["\u003cstring>"],"missing":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"6267be40-39cc-42fe-8136-d1c242ff7573":{"description":"`not-found`: your API key cannot act for this organization.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. Every v2 error uses this body with content type `application/problem+json`. `errors` is present only on `validation-error`. `required` and `missing` are present only on `registration-info-required`.","required":["type","title","status","detail","instance"],"properties":{"type":{"type":"string","format":"uri","description":"`https://docs.etherfuse.com/ramp/v2/errors/` followed by the problem slug, for example `https://docs.etherfuse.com/ramp/v2/errors/quote-expired`. Switch on this value.","example":"https://docs.etherfuse.com/ramp/v2/errors/quote-expired","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Short summary of the problem type.","example":"Quote expired","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code.","example":400,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Human-readable explanation of this occurrence. Do not parse it.","example":"quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"Unique identifier for this occurrence. Quote it to support.","example":"tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"errors":{"type":"array","description":"Present on `validation-error`. One entry per invalid field.","items":{"type":"object","required":["pointer","detail"],"properties":{"pointer":{"type":"string","description":"JSON Pointer to the field in the request, for example `#/accountDetails/clabe`.","example":"#/accountDetails/clabe","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"detail":{"type":"string","description":"What is wrong with the field.","example":"This field is required.","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"},"required":{"type":"array","description":"Present on `registration-info-required`. Every registration field the route requires, as JSON Pointers into the request, for example `#/registrationInfo/taxId`.","items":{"type":"string","uniqueKey":"required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"required","typeLabel":"string[]"},"missing":{"type":"array","description":"Present on `registration-info-required`. The required fields you must still send, as JSON Pointers into the request.","items":{"type":"string","uniqueKey":"missing.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missing","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.etherfuse.com/ramp/v2/errors/quote-expired","title":"Quote expired","status":400,"detail":"quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist","instance":"tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d","errors":[{"pointer":"#/accountDetails/clabe","detail":"This field is required."}],"required":["\u003cstring>"],"missing":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"f942597a-179f-4071-a153-5bd5229e31c8":{"description":"`conflict`: this customer's verification is already approved or denied and cannot be modified. A denied customer resubmits in the hosted step, not over the API.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. Every v2 error uses this body with content type `application/problem+json`. `errors` is present only on `validation-error`. `required` and `missing` are present only on `registration-info-required`.","required":["type","title","status","detail","instance"],"properties":{"type":{"type":"string","format":"uri","description":"`https://docs.etherfuse.com/ramp/v2/errors/` followed by the problem slug, for example `https://docs.etherfuse.com/ramp/v2/errors/quote-expired`. Switch on this value.","example":"https://docs.etherfuse.com/ramp/v2/errors/quote-expired","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Short summary of the problem type.","example":"Quote expired","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code.","example":400,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Human-readable explanation of this occurrence. Do not parse it.","example":"quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"Unique identifier for this occurrence. Quote it to support.","example":"tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"errors":{"type":"array","description":"Present on `validation-error`. One entry per invalid field.","items":{"type":"object","required":["pointer","detail"],"properties":{"pointer":{"type":"string","description":"JSON Pointer to the field in the request, for example `#/accountDetails/clabe`.","example":"#/accountDetails/clabe","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"detail":{"type":"string","description":"What is wrong with the field.","example":"This field is required.","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"},"required":{"type":"array","description":"Present on `registration-info-required`. Every registration field the route requires, as JSON Pointers into the request, for example `#/registrationInfo/taxId`.","items":{"type":"string","uniqueKey":"required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"required","typeLabel":"string[]"},"missing":{"type":"array","description":"Present on `registration-info-required`. The required fields you must still send, as JSON Pointers into the request.","items":{"type":"string","uniqueKey":"missing.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missing","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.etherfuse.com/ramp/v2/errors/quote-expired","title":"Quote expired","status":400,"detail":"quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist","instance":"tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d","errors":[{"pointer":"#/accountDetails/clabe","detail":"This field is required."}],"required":["\u003cstring>"],"missing":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"2e430e1b-6c02-4f4e-ab06-c034fe06d350":{"description":"`internal-error`: an unexpected error on our side. Retry with backoff, and quote `instance` to support if it persists.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. Every v2 error uses this body with content type `application/problem+json`. `errors` is present only on `validation-error`. `required` and `missing` are present only on `registration-info-required`.","required":["type","title","status","detail","instance"],"properties":{"type":{"type":"string","format":"uri","description":"`https://docs.etherfuse.com/ramp/v2/errors/` followed by the problem slug, for example `https://docs.etherfuse.com/ramp/v2/errors/quote-expired`. Switch on this value.","example":"https://docs.etherfuse.com/ramp/v2/errors/quote-expired","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Short summary of the problem type.","example":"Quote expired","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code.","example":400,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Human-readable explanation of this occurrence. Do not parse it.","example":"quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"Unique identifier for this occurrence. Quote it to support.","example":"tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d","isRequired":true,"uniqueKey":"instance","typeLabel":"string"},"errors":{"type":"array","description":"Present on `validation-error`. One entry per invalid field.","items":{"type":"object","required":["pointer","detail"],"properties":{"pointer":{"type":"string","description":"JSON Pointer to the field in the request, for example `#/accountDetails/clabe`.","example":"#/accountDetails/clabe","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"detail":{"type":"string","description":"What is wrong with the field.","example":"This field is required.","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"},"required":{"type":"array","description":"Present on `registration-info-required`. Every registration field the route requires, as JSON Pointers into the request, for example `#/registrationInfo/taxId`.","items":{"type":"string","uniqueKey":"required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"required","typeLabel":"string[]"},"missing":{"type":"array","description":"Present on `registration-info-required`. The required fields you must still send, as JSON Pointers into the request.","items":{"type":"string","uniqueKey":"missing.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missing","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.etherfuse.com/ramp/v2/errors/quote-expired","title":"Quote expired","status":400,"detail":"quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist","instance":"tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d","errors":[{"pointer":"#/accountDetails/clabe","detail":"This field is required."}],"required":["\u003cstring>"],"missing":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"e2afb556-03f4-4063-920b-822ee6d2cce7":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key sent in the Authorization header, with no `Bearer` prefix.","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"58ef8c25-fe99-4a3a-b3d6-63ae68d90d12":{"url":"https://api.sand.etherfuse.com","description":"Sandbox"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","description":"API key sent in the Authorization header, with no `Bearer` prefix.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"Authorization","type":"string","description":"API key sent in the Authorization header, with no `Bearer` prefix.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"Authorization"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi-v2.json"},"subdomain":"etherfuse","siteName":"Etherfuse API","title":"Submit verification data - Etherfuse API","navMaps":{"firstHrefInVersion":{"v2 (beta)":{"href":"/v2/api-reference/kyc/submit-verification-data","matchLevel":0},"v1 (legacy)":{"href":"/api-reference/kyc/submit-verification-data","matchLevel":1}},"firstHrefInLanguage":{}},"lastModified":"2026-10-14T23:35:07.628Z","originalFileLocation":"v2/api-reference/kyc/submit-verification-data.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=\"First call in the KYC API flow. Nothing else is accepted before it: country is what routes the customer to their country\u0026#x27;s requirements. Answers 202, not 200. We validate the request before we answer and record it with the verification provider after. A 202 means accepted, not satisfied. Read the result from the kycUpdated webhook or GET /organization/{organizationId}/kyc?requirements=true. Submitting again overwrites what was sent before, and never moves the customer\u0026#x27;s review status on its own. Personal organizations only.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Etherfuse API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/etherfuse/2PYR-_ECBzhTGa_z/_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/etherfuse/2PYR-_ECBzhTGa_z/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/etherfuse/2PYR-_ECBzhTGa_z/_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/etherfuse/2PYR-_ECBzhTGa_z/_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/etherfuse/2PYR-_ECBzhTGa_z/_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/etherfuse/2PYR-_ECBzhTGa_z/_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/etherfuse/2PYR-_ECBzhTGa_z/_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/etherfuse/2PYR-_ECBzhTGa_z/_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/etherfuse/2PYR-_ECBzhTGa_z/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Submit verification data - Etherfuse API\">\u003cmeta data-mint-head property=\"og:description\" content=\"First call in the KYC API flow. Nothing else is accepted before it: country is what routes the customer to their country\u0026#x27;s requirements. Answers 202, not 200. We validate the request before we answer and record it with the verification provider after. A 202 means accepted, not satisfied. Read the result from the kycUpdated webhook or GET /organization/{organizationId}/kyc?requirements=true. Submitting again overwrites what was sent before, and never moves the customer\u0026#x27;s review status on its own. Personal organizations only.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Etherfuse API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.etherfuse.com/v2/api-reference/kyc/submit-verification-data\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://etherfuse.mintlify.app/_mintlify/api/og/v2?division=KYC\u0026amp;title=Submit+verification+data\u0026amp;description=First+call+in+the+%5BKYC+API%5D%28%2Fv2%2Fguides%2Fkyc-api%29+flow.+Nothing+else+is+accepted+before+it%3A+%60country%60+is+what+routes+the+customer+to+their+country%27s+requirements.\u0026amp;theme=a63046a1b6875a84019a21bc\u0026amp;signature=ca0d75a1992ec73884486aa1bc186740d3342b0fa81a2c73dccace351fc5050c\">\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=\"Submit verification data - Etherfuse API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"First call in the KYC API flow. Nothing else is accepted before it: country is what routes the customer to their country\u0026#x27;s requirements. Answers 202, not 200. We validate the request before we answer and record it with the verification provider after. A 202 means accepted, not satisfied. Read the result from the kycUpdated webhook or GET /organization/{organizationId}/kyc?requirements=true. Submitting again overwrites what was sent before, and never moves the customer\u0026#x27;s review status on its own. Personal organizations only.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://etherfuse.mintlify.app/_mintlify/api/og/v2?division=KYC\u0026amp;title=Submit+verification+data\u0026amp;description=First+call+in+the+%5BKYC+API%5D%28%2Fv2%2Fguides%2Fkyc-api%29+flow.+Nothing+else+is+accepted+before+it%3A+%60country%60+is+what+routes+the+customer+to+their+country%27s+requirements.\u0026amp;theme=a63046a1b6875a84019a21bc\u0026amp;signature=ca0d75a1992ec73884486aa1bc186740d3342b0fa81a2c73dccace351fc5050c\">\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/etherfuse/2PYR-_ECBzhTGa_z/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Etherfuse API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#141414\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.etherfuse.com/v2/api-reference/kyc/submit-verification-data\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v2/api-reference/kyc/submit-verification-data.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.etherfuse.com/#organization\",\"name\":\"Etherfuse API\",\"url\":\"https://docs.etherfuse.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/etherfuse/XRSchVFGUgreQatD/img/logo-black.svg?fit=max\u0026auto=format\u0026n=XRSchVFGUgreQatD\u0026q=85\u0026s=92cf84eca27df4a19f7b032da398d110\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.etherfuse.com#website\",\"name\":\"Etherfuse API\",\"url\":\"https://docs.etherfuse.com\",\"publisher\":{\"@id\":\"https://docs.etherfuse.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.etherfuse.com/v2/api-reference/kyc/submit-verification-data#webpage\",\"url\":\"https://docs.etherfuse.com/v2/api-reference/kyc/submit-verification-data\",\"name\":\"Submit verification data\",\"description\":\"First call in the KYC API flow. Nothing else is accepted before it: country is what routes the customer to their country's requirements. Answers 202, not 200. We validate the request before we answer and record it with the verification provider after. A 202 means accepted, not satisfied. Read the result from the kycUpdated webhook or GET /organization/{organizationId}/kyc?requirements=true. Submitting again overwrites what was sent before, and never moves the customer's review status on its own. Personal organizations only.\",\"dateModified\":\"2026-10-14T23:35:07.628Z\",\"isPartOf\":{\"@id\":\"https://docs.etherfuse.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.etherfuse.com/v2/api-reference/kyc/submit-verification-data#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.etherfuse.com/v2/api-reference/kyc/submit-verification-data#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"KYC\",\"item\":\"https://docs.etherfuse.com/v2/api-reference/kyc/get-kyc-status\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Submit verification data\",\"item\":\"https://docs.etherfuse.com/v2/api-reference/kyc/submit-verification-data\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.etherfuse.com/v2/api-reference/kyc/submit-verification-data#apireference\",\"headline\":\"Submit verification data\",\"name\":\"Submit verification data\",\"description\":\"First call in the KYC API flow. Nothing else is accepted before it: country is what routes the customer to their country's requirements. Answers 202, not 200. We validate the request before we answer and record it with the verification provider after. A 202 means accepted, not satisfied. Read the result from the kycUpdated webhook or GET /organization/{organizationId}/kyc?requirements=true. Submitting again overwrites what was sent before, and never moves the customer's review status on its own. Personal organizations only.\",\"url\":\"https://docs.etherfuse.com/v2/api-reference/kyc/submit-verification-data\",\"mainEntityOfPage\":{\"@id\":\"https://docs.etherfuse.com/v2/api-reference/kyc/submit-verification-data#webpage\"},\"dateModified\":\"2026-10-14T23:35:07.628Z\",\"publisher\":{\"@id\":\"https://docs.etherfuse.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.etherfuse.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Etherfuse API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Etherfuse API","nav":{"global":null,"versions":[{"version":"v2 (beta)","default":true,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/v2"}]},{"tab":"API Reference","pages":[{"title":"Introduction","href":"/v2/api-reference/introduction"},{"title":"API Authentication","href":"/v2/authentication"},{"title":"Errors","href":"/v2/errors"},{"title":"Pagination","href":"/v2/pagination"},{"title":"Idempotency","href":"/v2/idempotency"},{"group":"User Authentication","icon":"key","pages":[{"openapi":"openapi-v2.json POST /auth/launch","title":"Launch a user into the app","href":"/v2/api-reference/authentication/launch-a-user-into-the-app"},{"openapi":"openapi-v2.json GET /auth/launch","title":"Launch a user via postMessage","href":"/v2/api-reference/authentication/launch-a-user-via-postmessage"},{"title":"Exchange a partner JWT","openapi":"openapi-v2.json POST /auth/token","href":"/v2/api-reference/authentication/exchange-a-partner-jwt"}]},{"group":"Payment Accounts","icon":"building-columns","pages":[{"title":"Register payment account","openapi":"openapi-v2.json POST /organization/{organizationId}/payment_account","href":"/v2/api-reference/payment-accounts/register-payment-account"},{"title":"Get registration requirements","openapi":"openapi-v2.json GET /organization/{organizationId}/payment_account/requirements","href":"/v2/api-reference/payment-accounts/get-registration-requirements"},{"title":"Get payment account","openapi":"openapi-v2.json GET /organization/{organizationId}/payment_account/{id}","href":"/v2/api-reference/payment-accounts/get-payment-account"},{"title":"Update payment account","openapi":"openapi-v2.json PATCH /organization/{organizationId}/payment_account/{id}","href":"/v2/api-reference/payment-accounts/update-payment-account"},{"title":"List payment accounts","openapi":"openapi-v2.json GET /organization/{organizationId}/payment_accounts","href":"/v2/api-reference/payment-accounts/list-payment-accounts"}]},{"group":"Quotes","icon":"tag","pages":[{"title":"Create quote","openapi":"openapi-v2.json POST /organization/{organizationId}/quote","href":"/v2/api-reference/quotes/create-quote"}]},{"group":"Orders","icon":"receipt","pages":[{"title":"Create order","openapi":"openapi-v2.json POST /organization/{organizationId}/order","href":"/v2/api-reference/orders/create-order"},{"title":"Get order","openapi":"openapi-v2.json GET /organization/{organizationId}/order/{id}","href":"/v2/api-reference/orders/get-order"},{"title":"List orders","openapi":"openapi-v2.json GET /orders","href":"/v2/api-reference/orders/list-orders"},{"title":"Cancel order","openapi":"openapi-v2.json POST /organization/{organizationId}/order/{id}/cancel","href":"/v2/api-reference/orders/cancel-order"},{"title":"Refresh funding instructions","openapi":"openapi-v2.json POST /organization/{organizationId}/order/{id}/funding_instructions/refresh","href":"/v2/api-reference/orders/refresh-funding-instructions"},{"title":"Prepare claim","openapi":"openapi-v2.json POST /organization/{organizationId}/order/{id}/claim","href":"/v2/api-reference/orders/prepare-claim"},{"title":"Submit authorization","openapi":"openapi-v2.json POST /organization/{organizationId}/order/{id}/authorization","href":"/v2/api-reference/orders/submit-authorization"}]},{"group":"Webhook Subscriptions","icon":"bell","pages":[{"title":"Create webhook subscription","openapi":"openapi-v2.json POST /webhook_subscription","href":"/v2/api-reference/webhook-subscriptions/create-webhook-subscription"},{"title":"Get webhook subscription","openapi":"openapi-v2.json GET /webhook_subscription/{id}","href":"/v2/api-reference/webhook-subscriptions/get-webhook-subscription"},{"title":"Delete webhook subscription","openapi":"openapi-v2.json DELETE /webhook_subscription/{id}","href":"/v2/api-reference/webhook-subscriptions/delete-webhook-subscription"},{"title":"List webhook subscriptions","openapi":"openapi-v2.json GET /webhook_subscriptions","href":"/v2/api-reference/webhook-subscriptions/list-webhook-subscriptions"}]},{"group":"Webhook Events","icon":"tower-broadcast","pages":[{"title":"orderUpdated","openapi":"openapi-v2.json webhook orderUpdated","href":"/v2/api-reference/webhook-events/orderupdated"},{"title":"paymentAccountUpdated","openapi":"openapi-v2.json webhook paymentAccountUpdated","href":"/v2/api-reference/webhook-events/paymentaccountupdated"},{"title":"kycUpdated","openapi":"openapi-v2.json webhook kycUpdated","href":"/v2/api-reference/webhooks/kycupdated"},{"title":"kybUpdated","openapi":"openapi-v2.json webhook kybUpdated","href":"/v2/api-reference/webhook-events/kybupdated"}]},{"group":"Organizations","icon":"building","pages":[{"title":"Get your organization","openapi":"openapi-v2.json GET /me","href":"/v2/api-reference/organizations/get-me"},{"title":"Set your default partner fee","openapi":"openapi-v2.json PATCH /me","href":"/v2/api-reference/organizations/update-me"},{"title":"List customer organizations","openapi":"openapi-v2.json GET /organizations","href":"/v2/api-reference/organizations/list-organizations"},{"title":"Create customer organization","openapi":"openapi-v2.json POST /organization","href":"/v2/api-reference/organizations/create-organization"},{"title":"Get organization","openapi":"openapi-v2.json GET /organization/{organizationId}","href":"/v2/api-reference/organizations/get-organization"},{"title":"Rename organization","openapi":"openapi-v2.json PATCH /organization/{organizationId}","href":"/v2/api-reference/organizations/update-organization"}]},{"group":"Members","icon":"users","pages":[{"title":"Add organization member","openapi":"openapi-v2.json POST /organization/{organizationId}/member","href":"/v2/api-reference/members/add-organization-member"},{"title":"List organization members","openapi":"openapi-v2.json GET /organization/{organizationId}/members","href":"/v2/api-reference/members/list-organization-members"},{"title":"Remove organization member","openapi":"openapi-v2.json DELETE /organization/{organizationId}/member/{memberId}","href":"/v2/api-reference/members/remove-organization-member"},{"title":"Revoke organization invite","openapi":"openapi-v2.json DELETE /organization/{organizationId}/member_invite/{email}","href":"/v2/api-reference/members/revoke-organization-invite"},{"title":"List a member's organizations","openapi":"openapi-v2.json GET /member/{memberId}/organizations","href":"/v2/api-reference/members/list-member-organizations"}]},{"group":"KYC","icon":"id-card","pages":[{"title":"Get KYC status","openapi":"openapi-v2.json GET /organization/{organizationId}/kyc","description":"Returns the organization's KYC status. The overall `status` uses the same logic as orders, so `approved` is the only value that lets the customer transact. Submission details such as rejection reasons and timestamps are visible only to the partner that submitted the data.\n\n## The requirements breakdown\n\nPass `?requirements=true` to add a `requirements` array describing, step by step, what this customer's verification still needs. Each entry carries a `type`, a `status`, and a `requiresLaunch` flag, which separates \"I still owe data over the API\" from \"it is time to launch the customer\". It is opt-in because it calls the verification provider; without it the response leaves `requirements` out.\n\nThe breakdown covers personal verification only. Requesting it for a business organization returns `400` `invalid-request`; track a business with [`GET /organization/{organizationId}/kyb`](/v2/api-reference/kyb/get-kyb-status) instead.\n\n`requirements` is left out until the customer has been routed to their country's requirements. After that the list holds the customer's current stage, plus requirements already satisfied. It never lists a later stage's requirements, so it grows as they advance: `proofOfAddress` appears only when the identity document carried no address, and `customerAgreement` appears last. Send only what is listed as `pending` or `actionRequired`; a requirement sent before it is listed is accepted and then refused in the background. Read the list again after every `kycUpdated`; no single response is the full list. See [Requirements unlock in stages](/v2/guides/onboarding#requirements-unlock-in-stages).\n\n## Prefer the webhook\n\nSubscribe to `kycUpdated` to learn that something changed. Read this endpoint on demand, or after that webhook when you need to know what is outstanding. With `?requirements=true` it calls the verification provider every time, so do not poll it tightly. See [Tracking verification status](/v2/guides/onboarding#tracking-verification-status).","href":"/v2/api-reference/kyc/get-kyc-status"},{"title":"Submit verification data","openapi":"openapi-v2.json POST /organization/{organizationId}/verification","href":"/v2/api-reference/kyc/submit-verification-data"},{"title":"Upload verification documents","openapi":"openapi-v2.json POST /organization/{organizationId}/verification/documents","description":"Upload the customer's documents as `multipart/form-data`. Send at least one of `id_front`, `id_back`, or `proof_of_address`.\n\n**Submit the customer's personal data first.** Until [`POST /organization/{organizationId}/verification`](/v2/api-reference/kyc/submit-verification-data) has run the customer has no stages to upload against, so this answers `409`.\n\n**Answers `202`, not `200`.** We read and check every part before we answer, and send the upload to the verification provider after. Watch [`GET /organization/{organizationId}/kyc?requirements=true`](/v2/api-reference/kyc/get-kyc-status) for the requirement to go satisfied.\n\n**Upload what the current stage asks for.** Send a document once its requirement is listed. The exception is `proof_of_address`: you may send it with the identity document, before its own stage, as long as the identity stage has not been submitted yet. After that, wait for `proofOfAddress` to be listed. See [Requirements unlock in stages](/v2/guides/onboarding#requirements-unlock-in-stages).","href":"/v2/api-reference/kyc/upload-verification-documents"},{"title":"Submit a verification questionnaire","openapi":"openapi-v2.json POST /organization/{organizationId}/verification/questionnaire","href":"/v2/api-reference/kyc/submit-a-verification-questionnaire"},{"title":"Import a verified session","openapi":"openapi-v2.json POST /organization/{organizationId}/verification/import","href":"/v2/api-reference/kyc/import-a-verified-session"},{"title":"List occupation categories","openapi":"openapi-v2.json GET /verification/occupations","href":"/v2/api-reference/kyc/list-occupation-categories"}]},{"group":"KYB","icon":"briefcase","pages":[{"title":"Get KYB status","openapi":"openapi-v2.json GET /organization/{organizationId}/kyb","href":"/v2/api-reference/kyb/get-kyb-status"}]},{"group":"Assets","icon":"coins","pages":[{"title":"List supported assets","openapi":"openapi-v2.json GET /supported_assets","href":"/v2/api-reference/assets/list-supported-assets"},{"title":"Get payment account balances","openapi":"openapi-v2.json GET /organization/{organizationId}/payment_account/{id}/balances","href":"/v2/api-reference/assets/get-payment-account-balances"}]},{"group":"Statements","icon":"file-invoice-dollar","pages":[{"title":"List partner statements","openapi":"openapi-v2.json GET /partner_statements","href":"/v2/api-reference/statements/list-partner-statements"},{"title":"Download statement CSV","openapi":"openapi-v2.json GET /partner_statement/{year}-{month}/csv","href":"/v2/api-reference/statements/download-statement-csv"},{"title":"Download statement PDF","openapi":"openapi-v2.json GET /partner_statement/{year}-{month}/pdf","href":"/v2/api-reference/statements/download-statement-pdf"}]},{"group":"Sandbox","icon":"flask","pages":[{"title":"Simulate fiat received","openapi":"openapi-v2.json POST /organization/{organizationId}/order/{id}/fiat_received","href":"/v2/api-reference/sandbox/simulate-fiat-received"}]},{"group":"Lookup API","icon":"magnifying-glass","pages":[{"title":"List exchange rates","openapi":"openapi-v2.json GET /lookup/exchange_rate","href":"/v2/api-reference/lookup/list-exchange-rates"},{"title":"Get exchange rate","openapi":"openapi-v2.json GET /lookup/exchange_rate/usd_to_{currency}","href":"/v2/api-reference/lookup/get-exchange-rate"},{"title":"List stablebonds","openapi":"openapi-v2.json GET /lookup/stablebonds","href":"/v2/api-reference/lookup/list-stablebonds"},{"title":"Get stablebond","openapi":"openapi-v2.json GET /lookup/stablebond/{identifier}","href":"/v2/api-reference/lookup/get-stablebond"},{"title":"List token costs","openapi":"openapi-v2.json GET /lookup/tokens/cost","href":"/v2/api-reference/lookup/list-token-costs"},{"title":"Get token cost","openapi":"openapi-v2.json GET /lookup/tokens/cost/{identifier}","href":"/v2/api-reference/lookup/get-token-cost"},{"title":"List country codes","openapi":"openapi-v2.json GET /lookup/country-codes","href":"/v2/api-reference/lookup/list-country-codes"},{"title":"List restricted countries","openapi":"openapi-v2.json GET /lookup/restricted-countries","href":"/v2/api-reference/lookup/list-restricted-countries"}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},{"version":"v1 (legacy)","pages":[{"title":"v1 (legacy)","href":"/api-reference/kyc/submit-verification-data"}]}]},"basePath":"","title":"Submit verification data - Etherfuse API","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","Page-Buji1S4J.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}