Properties
| Name | Type | Description |
|---|---|---|
| status | object | |
| contract | object | |
| request | object | |
| resolution | object | |
| result | object | |
| checks | array | |
| coverage | object | |
| next_actions | array | Deterministic guidance derived only from resolution and checks, in fixed code order, no duplicates. Never changes outcome, never selects a UID, never a risk score or payment-safety signal. REQUIRES_DI |
| freshness | object | Keyed by capability. |
| warnings | array | |
| pass_semantics | object | |
| caller_identity_used | object | |
| persisted_request_data | object | |
| disclaimers | object | |
| meta | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/bumit-ai/json-schema/bumit-ai-business-verification-response-schema.json",
"title": "BusinessVerificationResponse",
"x-generated": "2026-11-03",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/_original/bumit-ai-v1-openapi.json#/components/schemas/BusinessVerificationResponse",
"type": "object",
"additionalProperties": false,
"required": [
"status",
"contract",
"request",
"resolution",
"result",
"checks",
"coverage",
"next_actions",
"freshness",
"warnings",
"pass_semantics",
"caller_identity_used",
"persisted_request_data",
"disclaimers"
],
"properties": {
"status": {
"const": "OK"
},
"contract": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"version",
"ruleset_version",
"profile_id",
"profile_version",
"evaluation_context",
"outcome_vocabulary",
"resolution_vocabulary"
],
"properties": {
"id": {
"const": "BUMIT_BUSINESS_VERIFICATION"
},
"version": {
"const": "1.1.0"
},
"ruleset_version": {
"type": "string"
},
"profile_id": {
"type": "string"
},
"profile_version": {
"type": "string"
},
"evaluation_context": {
"type": "string",
"enum": [
"PRODUCTION",
"FIXTURE_TEST"
]
},
"outcome_vocabulary": {
"type": "array",
"items": {
"type": "string",
"enum": [
"VERIFIED",
"NOT_VERIFIED",
"NOT_FOUND",
"AMBIGUOUS",
"REVIEW_REQUIRED",
"UNAVAILABLE",
"UNSUPPORTED",
"NOT_REQUESTED"
]
}
},
"resolution_vocabulary": {
"type": "array",
"items": {
"type": "string",
"enum": [
"RESOLVED",
"NOT_FOUND",
"AMBIGUOUS",
"UNAVAILABLE",
"UNSUPPORTED"
]
}
}
}
},
"request": {
"type": "object",
"additionalProperties": false,
"required": [
"supplied",
"normalized_uid"
],
"properties": {
"supplied": {
"type": "object",
"additionalProperties": false,
"required": [
"uid",
"name",
"address"
],
"properties": {
"uid": {
"type": "boolean"
},
"name": {
"type": "boolean"
},
"address": {
"type": "boolean"
}
}
},
"normalized_uid": {
"type": [
"string",
"null"
]
}
}
},
"resolution": {
"$ref": "#/$defs/BusinessResolution"
},
"result": {
"type": "object",
"additionalProperties": false,
"required": [
"outcome",
"reason_code",
"required_capabilities",
"blocking_capabilities",
"derivation",
"weighted_score_used",
"probabilistic_decision_used",
"fuzzy_matching_used",
"llm_used"
],
"properties": {
"outcome": {
"type": "string",
"enum": [
"VERIFIED",
"NOT_VERIFIED",
"REVIEW_REQUIRED",
"UNAVAILABLE",
"NOT_FOUND",
"AMBIGUOUS",
"UNSUPPORTED"
],
"x-agent-guidance": {
"VERIFIED": "Only the defined BUMIT required checks passed. Does not establish general trustworthiness, safety to transact or complete KYB.",
"NOT_VERIFIED": "One or more required verification conditions failed; see result.blocking_capabilities and checks[].reason_code.",
"REVIEW_REQUIRED": "Treat as neither VERIFIED nor NOT_VERIFIED. Inspect the blocking checks' unresolved or adverse evidence (e.g. a possible sanctions name candidate) before acting.",
"UNAVAILABLE": "Required evidence could not currently support a conclusion. Not a negative result; retrying later may help (see checks[] and freshness).",
"NOT_FOUND": "The business could not be resolved: the UID lookup found no company, or the register name search returned no candidate. Not proof that the business does not exist.",
"AMBIGUOUS": "The name did not identify exactly one company (resolution.reason_code MULTIPLE_EXACT_NAME_MATCHES or NAME_CANDIDATES_REQUIRE_SELECTION). Do not silently select a candidate: inspect resolution.candidates, select the intended legal entity using your available context (or ask the user), then resubmit verifyBusiness with the selected candidate's uid. Candidates are register search results, not verified identities; candidates_truncated=true means more existed.",
"UNSUPPORTED": "The supplied input combination cannot resolve a business (e.g. address only). Supply a UID or a name."
}
},
"reason_code": {
"type": "string",
"enum": [
"SOURCE_NOT_CONFIGURED",
"SOURCE_UNAVAILABLE",
"COMPANY_NOT_FOUND",
"REGISTER_SEARCH_UNAVAILABLE",
"NO_EXACT_NAME_MATCH",
"MULTIPLE_EXACT_NAME_MATCHES",
"NAME_CANDIDATES_REQUIRE_SELECTION",
"CANDIDATE_UID_UNUSABLE",
"ADDRESS_ONLY_RESOLUTION_NOT_SUPPORTED",
"REQUIRED_CHECK_NOT_VERIFIED",
"REQUIRED_CHECK_REVIEW",
"REQUIRED_CHECK_UNAVAILABLE",
"ALL_REQUIRED_CHECKS_VERIFIED"
]
},
"required_capabilities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"REGISTRY_EXISTENCE",
"REGISTER_STATUS",
"NAME_MATCH",
"SANCTIONS_CHECK",
"FINMA_AUTHORISATION_CHECK",
"FINMA_WARNING_CHECK",
"VAT_VERIFY",
"ADDRESS_VERIFY",
"LEI_LOOKUP"
]
}
},
"blocking_capabilities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"REGISTRY_EXISTENCE",
"REGISTER_STATUS",
"NAME_MATCH",
"SANCTIONS_CHECK",
"FINMA_AUTHORISATION_CHECK",
"FINMA_WARNING_CHECK",
"VAT_VERIFY",
"ADDRESS_VERIFY",
"LEI_LOOKUP"
]
}
},
"derivation": {
"const": "DETERMINISTIC_REQUIRED_CHECKS"
},
"weighted_score_used": {
"const": false
},
"probabilistic_decision_used": {
"const": false
},
"fuzzy_matching_used": {
"const": false
},
"llm_used": {
"const": false
}
}
},
"checks": {
"type": "array",
"items": {
"$ref": "#/$defs/BusinessCheck"
}
},
"coverage": {
"$ref": "#/$defs/VerificationCoverage"
},
"next_actions": {
"type": "array",
"description": "Deterministic guidance derived only from resolution and checks, in fixed code order, no duplicates. Never changes outcome, never selects a UID, never a risk score or payment-safety signal. REQUIRES_DISAMBIGUATION: name not resolved to one identity, choose explicitly. RESUBMIT_WITH_UID: candidates carry UIDs, resubmit with the intended uid. SOURCE_UNAVAILABLE_RETRY_LATER: a supported source was unavailable for a required conclusion. CAPABILITY_NOT_SUPPORTED: a requested capability has no production support (retrying will not help). IDENTITY_BINDING_UNVERIFIED: the result does not show the counterparty controls this legal identity. REQUIRED_CHECK_REVIEW: a required check is NOT_VERIFIED or REVIEW_REQUIRED, inspect checks[].",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"code",
"capabilities"
],
"properties": {
"code": {
"type": "string",
"enum": [
"REQUIRES_DISAMBIGUATION",
"RESUBMIT_WITH_UID",
"SOURCE_UNAVAILABLE_RETRY_LATER",
"CAPABILITY_NOT_SUPPORTED",
"IDENTITY_BINDING_UNVERIFIED",
"REQUIRED_CHECK_REVIEW"
]
},
"capabilities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"REGISTRY_EXISTENCE",
"REGISTER_STATUS",
"NAME_MATCH",
"SANCTIONS_CHECK",
"FINMA_AUTHORISATION_CHECK",
"FINMA_WARNING_CHECK",
"VAT_VERIFY",
"ADDRESS_VERIFY",
"LEI_LOOKUP"
]
}
}
}
}
},
"freshness": {
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/Freshness"
},
"description": "Keyed by capability."
},
"warnings": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
},
"pass_semantics": {
"type": "object"
},
"caller_identity_used": {
"const": false
},
"persisted_request_data": {
"const": false
},
"disclaimers": {
"type": "object",
"additionalProperties": false,
"required": [
"zefix",
"seco",
"finma"
],
"properties": {
"zefix": {},
"seco": {},
"finma": {}
}
},
"meta": {
"$ref": "#/$defs/Meta"
}
},
"$defs": {
"BusinessCheck": {
"type": "object",
"additionalProperties": false,
"required": [
"capability",
"requirement",
"outcome",
"reason_code",
"source_state",
"source_reason_codes",
"sources",
"data_basis",
"provenance",
"freshness",
"freshness_mode",
"semantic_boundary"
],
"properties": {
"capability": {
"type": "string",
"enum": [
"REGISTRY_EXISTENCE",
"REGISTER_STATUS",
"NAME_MATCH",
"SANCTIONS_CHECK",
"FINMA_AUTHORISATION_CHECK",
"FINMA_WARNING_CHECK",
"VAT_VERIFY",
"ADDRESS_VERIFY",
"LEI_LOOKUP"
]
},
"requirement": {
"type": "string",
"enum": [
"REQUIRED",
"NOT_REQUIRED"
],
"description": "Only REQUIRED checks determine result.outcome."
},
"outcome": {
"type": "string",
"enum": [
"VERIFIED",
"NOT_VERIFIED",
"NOT_FOUND",
"AMBIGUOUS",
"REVIEW_REQUIRED",
"UNAVAILABLE",
"UNSUPPORTED",
"NOT_REQUESTED"
]
},
"reason_code": {
"type": "string",
"description": "Stable machine code from the underlying layer (see components.schemas.ReasonCode and the layer-specific codes documented on each capability)."
},
"source_state": {
"type": [
"string",
"null"
]
},
"source_reason_codes": {
"type": "array",
"items": {
"type": "string"
}
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"data_basis": {
"type": "string",
"enum": [
"LIVE_SOURCE_CACHE_FIRST",
"PRODUCTION_ACCEPTED_BASELINE",
"SYNTHETIC_FIXTURE",
"NONE"
]
},
"provenance": {
"type": [
"object",
"null"
]
},
"freshness": {
"oneOf": [
{
"$ref": "#/$defs/Freshness"
},
{
"type": "null"
}
]
},
"freshness_mode": {
"type": "string",
"enum": [
"LIVE",
"REGISTER_CACHE",
"STORED_DATASET",
"FIXTURE",
"NONE"
],
"description": "How this check's evidence was obtained. LIVE = successful source call during this request; REGISTER_CACHE = BUMIT's stored register copy; STORED_DATASET = accepted operator-ingested dataset (SECO/FINMA; never a live lookup); FIXTURE = synthetic test data; NONE = no evidence. Projection of data_basis and freshness; never changes outcome."
},
"semantic_boundary": {
"type": "string"
}
}
},
"BusinessResolution": {
"type": "object",
"additionalProperties": false,
"required": [
"outcome",
"method",
"reason_code",
"business",
"candidate_count",
"candidates_truncated",
"candidates"
],
"properties": {
"outcome": {
"type": "string",
"enum": [
"RESOLVED",
"NOT_FOUND",
"AMBIGUOUS",
"UNAVAILABLE",
"UNSUPPORTED"
]
},
"method": {
"type": [
"string",
"null"
],
"enum": [
"UID",
"EXACT_NAME",
"EXACT_NAME_AND_LOCALITY",
null
]
},
"reason_code": {
"type": "string",
"enum": [
"RESOLVED_BY_UID",
"RESOLVED_BY_UNIQUE_EXACT_NAME",
"SOURCE_NOT_CONFIGURED",
"SOURCE_UNAVAILABLE",
"COMPANY_NOT_FOUND",
"REGISTER_SEARCH_UNAVAILABLE",
"NO_EXACT_NAME_MATCH",
"MULTIPLE_EXACT_NAME_MATCHES",
"NAME_CANDIDATES_REQUIRE_SELECTION",
"CANDIDATE_UID_UNUSABLE",
"ADDRESS_ONLY_RESOLUTION_NOT_SUPPORTED"
]
},
"business": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"uid",
"legal_name",
"legal_form",
"legal_status",
"seat",
"canton"
],
"properties": {
"uid": {
"type": [
"string",
"null"
]
},
"legal_name": {
"type": "string"
},
"legal_form": {
"type": [
"string",
"null"
]
},
"legal_status": {
"type": [
"string",
"null"
]
},
"seat": {
"type": [
"string",
"null"
]
},
"canton": {
"type": [
"string",
"null"
]
}
}
},
{
"type": "null"
}
]
},
"candidate_count": {
"type": "integer",
"minimum": 0,
"description": "Number of entries in candidates (after the response bound)."
},
"candidates_truncated": {
"type": "boolean",
"description": "True when the register search returned more distinct candidates than this response carries. Candidates are never claimed to be exhaustive."
},
"candidates": {
"type": "array",
"maxItems": 50,
"description": "AMBIGUOUS company candidates from the commercial-register search, deduplicated by UID and ordered deterministically (uid, legal_name, seat, canton). Discovery only — never auto-selected and not verified; resubmit with a selected uid. match_type is a deterministic label, not a score: EXACT_NAME = legal_name equals the requested name after BUMIT's company-name normalization; RELATED_NAME = returned by register discovery without an exact normalized match.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"uid",
"legal_name",
"seat",
"canton",
"match_type",
"legal_status"
],
"properties": {
"uid": {
"type": [
"string",
"null"
]
},
"legal_name": {
"type": "string"
},
"seat": {
"type": [
"string",
"null"
]
},
"canton": {
"type": [
"string",
"null"
]
},
"match_type": {
"type": "string",
"enum": [
"EXACT_NAME",
"RELATED_NAME"
],
"description": "EXACT_NAME or RELATED_NAME (see candidates). Never a confidence or ranking."
},
"legal_status": {
"type": [
"string",
"null"
],
"enum": [
"ACTIVE",
"BEING_CANCELLED",
"CANCELLED",
null
],
"description": "Status as reported by the commercial register (Zefix) in the search result; null when not reported. Not a BUMIT verification and never used for selection."
}
}
}
}
}
},
"CoverageEntry": {
"type": "object",
"additionalProperties": false,
"required": [
"capability",
"requirement",
"outcome",
"reason_code"
],
"properties": {
"capability": {
"type": "string",
"enum": [
"REGISTRY_EXISTENCE",
"REGISTER_STATUS",
"NAME_MATCH",
"SANCTIONS_CHECK",
"FINMA_AUTHORISATION_CHECK",
"FINMA_WARNING_CHECK",
"VAT_VERIFY",
"ADDRESS_VERIFY",
"LEI_LOOKUP"
]
},
"requirement": {
"type": "string",
"enum": [
"REQUIRED",
"NOT_REQUIRED"
]
},
"outcome": {
"type": "string",
"enum": [
"VERIFIED",
"NOT_VERIFIED",
"NOT_FOUND",
"AMBIGUOUS",
"REVIEW_REQUIRED",
"UNAVAILABLE",
"UNSUPPORTED",
"NOT_REQUESTED"
]
},
"reason_code": {
"type": "string"
}
}
},
"Freshness": {
"type": "object",
"required": [
"observed_at",
"stale",
"served_from_cache",
"source_state",
"upstream_status"
],
"description": "Cached evidence is never reported as LIVE.",
"properties": {
"observed_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"retrieved_at": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "Set only when this response came from a successful upstream call."
},
"source_timestamp": {
"type": [
"string",
"null"
]
},
"age_seconds": {
"type": [
"integer",
"null"
]
},
"max_age_hours": {
"type": [
"integer",
"null"
]
},
"stale": {
"type": "boolean"
},
"served_from_cache": {
"type": "boolean"
},
"source_state": {
"$ref": "#/$defs/SourceState"
},
"upstream_status": {
"$ref": "#/$defs/UpstreamStatus"
},
"reason_code": {
"anyOf": [
{
"$ref": "#/$defs/ReasonCode"
},
{
"type": "null"
}
]
}
}
},
"Meta": {
"type": "object",
"required": [
"service",
"api_version",
"trace_id",
"generated_at"
],
"properties": {
"service": {
"type": "string"
},
"api_version": {
"type": "string"
},
"trace_id": {
"type": "string",
"format": "uuid"
},
"generated_at": {
"type": "string",
"format": "date-time"
}
}
},
"ReasonCode": {
"type": "string",
"enum": [
"INVALID_UID",
"COMPANY_NOT_FOUND",
"SOURCE_NOT_CONFIGURED",
"SOURCE_UNAVAILABLE",
"SOURCE_TIMEOUT",
"SOURCE_RATE_LIMITED",
"STALE_EVIDENCE",
"INSUFFICIENT_EVIDENCE",
"CAPABILITY_NOT_SUPPORTED",
"CAPABILITY_NOT_AVAILABLE",
"AUTHENTICATION_REQUIRED",
"ACCESS_DENIED",
"RATE_LIMITED",
"UPSTREAM_DEGRADED",
"INTERNAL_ERROR",
"BAD_REQUEST",
"PARTIAL_COVERAGE",
"SANCTIONS_NO_DIRECT_MATCH",
"SANCTIONS_POSSIBLE_MATCH",
"SANCTIONS_CONFIRMED_MATCH",
"SANCTIONS_DATA_UNAVAILABLE",
"SANCTIONS_DATA_STALE",
"SANCTIONS_SCHEMA_UNSUPPORTED",
"SANCTIONS_CHECK_INCOMPLETE",
"FINMA_LIST_UID_MATCH",
"FINMA_LIST_UID_NOT_FOUND",
"FINMA_LIST_UID_UNUSABLE",
"FINMA_AUTHORISATION_DATA_UNAVAILABLE",
"FINMA_AUTHORISATION_DATA_STALE",
"FINMA_AUTHORISATION_DATA_INVALID",
"FINMA_AUTHORISATION_CHECK_INCOMPLETE",
"FINMA_WARNING_NO_DIRECT_MATCH",
"FINMA_WARNING_POSSIBLE_MATCH",
"FINMA_WARNING_DATA_UNAVAILABLE",
"FINMA_WARNING_DATA_STALE",
"FINMA_WARNING_DATA_INVALID",
"FINMA_WARNING_CHECK_INCOMPLETE",
"LEI_RECORD_FOUND",
"LEI_RECORD_NOT_FOUND",
"LEI_MULTIPLE_RECORDS",
"LEI_LINKAGE_IDENTIFIER_UNUSABLE",
"LEI_DATA_UNAVAILABLE",
"LEI_DATA_INVALID",
"LEI_DATA_STALE",
"LEI_LOOKUP_INCOMPLETE",
"VAT_ACTIVE_REGISTRATION",
"VAT_INACTIVE_REGISTRATION",
"VAT_NO_REGISTRATION",
"VAT_STATUS_UNRECOGNISED",
"VAT_EVIDENCE_CONTRADICTORY",
"VAT_RECORD_NOT_FOUND",
"VAT_MULTIPLE_SOURCE_RECORDS",
"VAT_SUBJECT_UID_UNUSABLE",
"VAT_DATA_UNAVAILABLE",
"VAT_DATA_INVALID",
"VAT_DATA_STALE",
"VAT_CHECK_INCOMPLETE",
"ADDRESS_OFFICIAL_MATCH",
"ADDRESS_PLANNED_MATCH",
"ADDRESS_OUTDATED_MATCH",
"ADDRESS_NOT_FOUND",
"ADDRESS_MULTIPLE_MATCHES",
"ADDRESS_QUERY_UNUSABLE",
"ADDRESS_STATUS_MISSING",
"ADDRESS_STATUS_UNRECOGNISED",
"ADDRESS_OFFICIAL_FLAG_NOT_SET",
"ADDRESS_EVIDENCE_CONTRADICTORY",
"ADDRESS_DATA_UNAVAILABLE",
"ADDRESS_DATA_INVALID",
"ADDRESS_DATA_STALE",
"ADDRESS_CHECK_INCOMPLETE",
"MANDATORY_CHECK_FAILED",
"MANDATORY_CHECK_REVIEW",
"MANDATORY_CHECK_UNKNOWN",
"VERIFICATION_PROFILE_SATISFIED"
],
"description": "Stable machine-readable reason identifier.",
"x-active": [
"INVALID_UID",
"COMPANY_NOT_FOUND",
"SOURCE_NOT_CONFIGURED",
"SOURCE_UNAVAILABLE",
"SOURCE_TIMEOUT",
"SOURCE_RATE_LIMITED",
"STALE_EVIDENCE",
"INSUFFICIENT_EVIDENCE",
"CAPABILITY_NOT_AVAILABLE",
"AUTHENTICATION_REQUIRED",
"ACCESS_DENIED",
"UPSTREAM_DEGRADED",
"INTERNAL_ERROR",
"BAD_REQUEST",
"PARTIAL_COVERAGE",
"SANCTIONS_NO_DIRECT_MATCH",
"SANCTIONS_POSSIBLE_MATCH",
"SANCTIONS_DATA_UNAVAILABLE",
"SANCTIONS_DATA_STALE",
"SANCTIONS_SCHEMA_UNSUPPORTED",
"SANCTIONS_CHECK_INCOMPLETE",
"FINMA_LIST_UID_MATCH",
"FINMA_LIST_UID_NOT_FOUND",
"FINMA_LIST_UID_UNUSABLE",
"FINMA_AUTHORISATION_DATA_UNAVAILABLE",
"FINMA_AUTHORISATION_DATA_STALE",
"FINMA_AUTHORISATION_DATA_INVALID",
"FINMA_AUTHORISATION_CHECK_INCOMPLETE",
"FINMA_WARNING_NO_DIRECT_MATCH",
"FINMA_WARNING_POSSIBLE_MATCH",
"FINMA_WARNING_DATA_UNAVAILABLE",
"FINMA_WARNING_DATA_STALE",
"FINMA_WARNING_DATA_INVALID",
"FINMA_WARNING_CHECK_INCOMPLETE",
"LEI_RECORD_FOUND",
"LEI_RECORD_NOT_FOUND",
"LEI_MULTIPLE_RECORDS",
"LEI_LINKAGE_IDENTIFIER_UNUSABLE",
"LEI_DATA_UNAVAILABLE",
"LEI_DATA_INVALID",
"LEI_DATA_STALE",
"LEI_LOOKUP_INCOMPLETE",
"VAT_ACTIVE_REGISTRATION",
"VAT_INACTIVE_REGISTRATION",
"VAT_NO_REGISTRATION",
"VAT_STATUS_UNRECOGNISED",
"VAT_EVIDENCE_CONTRADICTORY",
"VAT_RECORD_NOT_FOUND",
"VAT_MULTIPLE_SOURCE_RECORDS",
"VAT_SUBJECT_UID_UNUSABLE",
"VAT_DATA_UNAVAILABLE",
"VAT_DATA_INVALID",
"VAT_DATA_STALE",
"VAT_CHECK_INCOMPLETE",
"ADDRESS_OFFICIAL_MATCH",
"ADDRESS_PLANNED_MATCH",
"ADDRESS_OUTDATED_MATCH",
"ADDRESS_NOT_FOUND",
"ADDRESS_MULTIPLE_MATCHES",
"ADDRESS_QUERY_UNUSABLE",
"ADDRESS_STATUS_MISSING",
"ADDRESS_STATUS_UNRECOGNISED",
"ADDRESS_OFFICIAL_FLAG_NOT_SET",
"ADDRESS_EVIDENCE_CONTRADICTORY",
"ADDRESS_DATA_UNAVAILABLE",
"ADDRESS_DATA_INVALID",
"ADDRESS_DATA_STALE",
"ADDRESS_CHECK_INCOMPLETE",
"MANDATORY_CHECK_FAILED",
"MANDATORY_CHECK_REVIEW",
"MANDATORY_CHECK_UNKNOWN",
"VERIFICATION_PROFILE_SATISFIED"
]
},
"SourceState": {
"type": "string",
"enum": [
"LIVE",
"CACHED",
"STALE",
"DEGRADED",
"UNAVAILABLE"
]
},
"UpstreamStatus": {
"type": "string",
"enum": [
"AVAILABLE",
"NOT_CHECKED",
"DEGRADED",
"UNAVAILABLE",
"NOT_CONFIGURED"
],
"description": "Current upstream condition. NOT_CHECKED means this request was served cache-first and never contacted the source, so no availability claim is made; it is not a failure. Pair it with upstream_checked: false and source_state: CACHED."
},
"VerificationCoverage": {
"type": "object",
"additionalProperties": false,
"required": [
"derivation",
"performed",
"not_performed"
],
"description": "Deterministic projection of `checks` (canonical check order preserved); `checks` remains authoritative. `performed` lists capabilities BUMIT actually evaluated — this does NOT mean the result was favourable (NOT_VERIFIED, NOT_FOUND or REVIEW_REQUIRED are performed checks). `not_performed` lists capabilities that were UNSUPPORTED, UNAVAILABLE or NOT_REQUESTED; each entry keeps its actual outcome and reason_code. Empty lists when the business was not resolved.",
"properties": {
"derivation": {
"const": "PROJECTION_OF_CHECKS"
},
"performed": {
"type": "array",
"items": {
"$ref": "#/$defs/CoverageEntry"
}
},
"not_performed": {
"type": "array",
"items": {
"$ref": "#/$defs/CoverageEntry"
}
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/bumit-ai-business-verification-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.