Properties
| Name | Type | Description |
|---|---|---|
| protocol_version | string | |
| bundle_id | string | |
| org_id | string | |
| version | string | |
| effective_from | string | |
| effective_to | string | |
| rules | array | |
| allowed_transitions | array | Which states a decision type's target may move between, checked before any rule. For a decision of `decision_type`, the move from the state at the fact path `from` (typically `agent_safe.precondition. |
| metadata | object | |
| signature | object | |
| commerce_preflight | object | |
| commerce_history | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/decionis-com/json-schema/decionis-com-policy-bundle-schema.json",
"title": "PolicyBundle",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/_original/decionis-com-well-known-openapi.json#/components/schemas/PolicyBundle",
"type": "object",
"required": [
"protocol_version",
"bundle_id",
"org_id",
"version",
"effective_from",
"rules"
],
"properties": {
"protocol_version": {
"type": "string",
"pattern": "^1\\.[0-9]+(\\.[0-9]+)?$"
},
"bundle_id": {
"type": "string",
"format": "uuid"
},
"org_id": {
"type": "string"
},
"version": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"effective_from": {
"type": "string",
"format": "date-time"
},
"effective_to": {
"type": "string",
"format": "date-time"
},
"rules": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/PolicyRule"
}
},
"allowed_transitions": {
"type": "array",
"maxItems": 50,
"description": "Which states a decision type's target may move between, checked before any rule. For a decision of `decision_type`, the move from the state at the fact path `from` (typically `agent_safe.precondition.state`) to the state at `to` must be one of `allowed`, exactly as written, or the evaluation resolves `transition_not_allowed` and the outcome is REJECT. No value at `to` asks for no state, and `to` equal to `from` is no transition. A `from` or `to` that is not a string fails safe to ESCALATE as `missing_required_signals`. A bundle declaring any is signed for the edge as `core_abi: 8`.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"transition_id",
"decision_type",
"from",
"to",
"allowed"
],
"properties": {
"transition_id": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"decision_type": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"from": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"to": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"allowed": {
"type": "array",
"minItems": 1,
"maxItems": 200,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"from",
"to"
],
"properties": {
"from": {
"type": "string",
"maxLength": 200
},
"to": {
"type": "string",
"maxLength": 200
}
}
}
},
"rationale": {
"type": "string",
"maxLength": 4000
}
}
}
},
"metadata": {
"type": "object",
"properties": {
"author": {
"type": "string"
},
"source": {
"type": "string"
},
"change_ticket": {
"type": "string"
},
"signal_admission": {
"$ref": "#/$defs/SemanticSignalAdmissionPolicy"
}
},
"additionalProperties": false
},
"signature": {
"type": "object",
"properties": {
"algo": {
"type": "string"
},
"digest": {
"type": "string"
},
"signed_at": {
"type": "string",
"format": "date-time"
},
"signed_by": {
"type": "string"
}
},
"additionalProperties": false
},
"commerce_preflight": {
"type": "object",
"properties": {
"version": {
"type": "string",
"const": "commerce-preflight-v2"
},
"max_fact_age_seconds": {
"type": "integer",
"minimum": 1,
"maximum": 86400
},
"allowed_sources": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:/-]*$"
},
"minItems": 1,
"maxItems": 100
},
"checks": {
"type": "object",
"properties": {
"P01": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"floor_percent": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"required": [
"enabled",
"floor_percent"
],
"additionalProperties": false
}
]
},
"P02": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"tolerance_percent": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"required": [
"enabled",
"tolerance_percent"
],
"additionalProperties": false
}
]
},
"P03": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"minimum_available": {
"type": "integer",
"minimum": 0,
"maximum": 1000000000
}
},
"required": [
"enabled",
"minimum_available"
],
"additionalProperties": false
}
]
},
"P04": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"mode": {
"type": "string",
"enum": [
"allow",
"block"
]
},
"countries": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Z]{2}$"
},
"maxItems": 250
}
},
"required": [
"enabled",
"mode",
"countries"
],
"additionalProperties": false
}
]
},
"P05": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"max_concurrent_discounts": {
"type": "integer",
"minimum": 0,
"maximum": 32
}
},
"required": [
"enabled",
"max_concurrent_discounts"
],
"additionalProperties": false
}
]
},
"P06": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"tolerance_percent": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"required": [
"enabled",
"tolerance_percent"
],
"additionalProperties": false
}
]
},
"P07": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"max_redemptions": {
"type": "integer",
"minimum": 1,
"maximum": 1000000000
},
"new_account_age_days": {
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"enabled",
"max_redemptions",
"new_account_age_days"
],
"additionalProperties": false
}
]
},
"P08": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
}
},
"required": [
"enabled"
],
"additionalProperties": false
}
]
},
"P09": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"amount": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$"
}
},
"required": [
"enabled",
"amount",
"currency"
],
"additionalProperties": false
}
]
},
"P10": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"max_prior_refunds": {
"type": "integer",
"minimum": 0,
"maximum": 1000000000
}
},
"required": [
"enabled",
"max_prior_refunds"
],
"additionalProperties": false
}
]
},
"P11": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"return_window_days": {
"type": "integer",
"minimum": 0,
"maximum": 3650
}
},
"required": [
"enabled",
"return_window_days"
],
"additionalProperties": false
}
]
},
"P12": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"unattended_limit": {
"type": "object",
"properties": {
"amount": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$"
}
},
"required": [
"amount",
"currency"
],
"additionalProperties": false
}
},
"required": [
"enabled",
"unattended_limit"
],
"additionalProperties": false
}
]
},
"P13": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
}
},
"required": [
"enabled"
],
"additionalProperties": false
}
]
},
"P14": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"window_days": {
"type": "integer",
"minimum": 0,
"maximum": 3650
}
},
"required": [
"enabled",
"window_days"
],
"additionalProperties": false
}
]
},
"P15": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"floor": {
"type": "object",
"properties": {
"amount": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$"
}
},
"required": [
"amount",
"currency"
],
"additionalProperties": false
}
},
"required": [
"enabled",
"floor"
],
"additionalProperties": false
}
]
},
"P16": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"minimum_annualized_yield_percent": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"required": [
"enabled",
"minimum_annualized_yield_percent"
],
"additionalProperties": false
}
]
}
},
"additionalProperties": false
}
},
"required": [
"version",
"max_fact_age_seconds",
"allowed_sources",
"checks"
],
"additionalProperties": false
},
"commerce_history": {
"type": "object",
"properties": {
"version": {
"type": "string",
"const": "commerce-marketplace-history-policy-v1"
},
"price_reference": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "recorded_order_original_price"
},
"max_markdown_percent": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"required": [
"kind",
"max_markdown_percent"
],
"additionalProperties": false
}
},
"required": [
"version",
"price_reference"
],
"additionalProperties": false
}
},
"additionalProperties": false,
"$defs": {
"AuthorityResolutionPolicy": {
"type": "object",
"additionalProperties": false,
"required": [
"quorum",
"delegation",
"fallback_role_ids"
],
"properties": {
"quorum": {
"type": "integer",
"const": 1
},
"delegation": {
"type": "string",
"enum": [
"DISALLOWED",
"REQUIREMENT_REFRESH"
]
},
"fallback_role_ids": {
"type": "array",
"maxItems": 10,
"uniqueItems": true,
"items": {
"type": "string",
"pattern": "^[A-Z][A-Z0-9_]{1,63}$"
}
}
}
},
"AuthoritySelector": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"role_id"
],
"properties": {
"kind": {
"type": "string",
"const": "ROLE"
},
"role_id": {
"type": "string",
"pattern": "^[A-Z][A-Z0-9_]{1,63}$"
},
"principal_id": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Optional exact-human narrowing for managed role selection. The selected principal must still hold the trusted human role."
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"principal_id"
],
"properties": {
"kind": {
"type": "string",
"const": "PRINCIPAL"
},
"principal_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"role_id": {
"type": "string",
"pattern": "^[A-Z][A-Z0-9_]{1,63}$",
"description": "Trusted effective human approval role. Optional for DIRECT requirements and required when orchestration.mode is MANAGED."
}
}
}
]
},
"AuthorityVerificationRequirements": {
"type": "object",
"additionalProperties": false,
"required": [
"level",
"methods",
"hardware_pki_required",
"disallow_virtual_cameras"
],
"properties": {
"level": {
"type": "string",
"enum": [
"STANDARD",
"HIGH_CONFIDENCE"
]
},
"methods": {
"type": "array",
"minItems": 1,
"maxItems": 3,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"WEBAUTHN",
"MOBILE_DEVICE",
"ACTIVE_LIVENESS",
"CARD_TAP"
]
},
"description": "WEBAUTHN, MOBILE_DEVICE and ACTIVE_LIVENESS are ceremonies Decionis Presence runs. CARD_TAP is the cardholder tapping the physical card on their own phone inside the issuer's app, proved by a third-party presence provider named in `provider`; a requirement never mixes the two kinds."
},
"hardware_pki_required": {
"type": "boolean"
},
"disallow_virtual_cameras": {
"type": "boolean"
},
"mobile_device_policy": {
"type": "string",
"enum": [
"WEB_OR_JIT_DEVICE",
"MANAGED_DEVICE_REQUIRED"
]
},
"trusted_ip_regions": {
"type": "array",
"minItems": 1,
"maxItems": 100,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
"provider": {
"type": "string",
"pattern": "^[a-z][a-z0-9_.:-]{0,63}$",
"description": "Who proves the person. Absent, or `decionis`, Decionis Presence runs the ceremony. Any other id names a presence provider from the directory (GET /v1/presence-providers) that the organisation admitted; its signed presence attestation (`evidence.humanApproval` of provider `attestation`, `presence.method` `card_tap`) is the proof. `presence` is reserved and refused."
}
}
},
"PolicyRule": {
"type": "object",
"required": [
"rule_id",
"name",
"decision_domain",
"when",
"then",
"priority",
"enabled"
],
"properties": {
"rule_id": {
"type": "string"
},
"name": {
"type": "string"
},
"decision_domain": {
"type": "string"
},
"when": {
"type": "object",
"additionalProperties": true
},
"then": {
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"type": "string",
"enum": [
"REQUIRE_REVIEW",
"AUTO_APPROVE",
"AUTO_REJECT",
"ESCALATE",
"REQUEST_INFO"
]
},
"severity": {
"type": "string",
"enum": [
"routine",
"elevated",
"urgent"
]
},
"assignee_role": {
"type": "string"
},
"sla_minutes": {
"type": "integer",
"minimum": 1
},
"authority": {
"type": "object",
"additionalProperties": false,
"required": [
"reason_codes",
"selector",
"verification_requirements",
"resolution",
"expires_in_seconds"
],
"properties": {
"reason_codes": {
"type": "array",
"minItems": 1,
"maxItems": 20,
"uniqueItems": true,
"items": {
"type": "string",
"pattern": "^[A-Z][A-Z0-9_]{1,119}$"
}
},
"selector": {
"$ref": "#/$defs/AuthoritySelector"
},
"verification_requirements": {
"$ref": "#/$defs/AuthorityVerificationRequirements"
},
"resolution": {
"$ref": "#/$defs/AuthorityResolutionPolicy"
},
"expires_in_seconds": {
"type": "integer",
"minimum": 60,
"maximum": 3600
}
}
}
},
"additionalProperties": false
},
"priority": {
"type": "integer"
},
"enabled": {
"type": "boolean"
},
"rationale": {
"type": "string"
}
},
"additionalProperties": false
},
"SemanticSignalAdmissionPolicy": {
"type": "object",
"additionalProperties": false,
"description": "Deterministic trust gate for typed semantic evidence.",
"properties": {
"allowed_producers": {
"type": "array",
"maxItems": 100,
"uniqueItems": true,
"items": {
"type": "string"
}
},
"allowed_detector_versions": {
"type": "array",
"maxItems": 100,
"uniqueItems": true,
"items": {
"type": "string"
}
},
"require_evidence_digest": {
"type": "boolean"
},
"minimum_confidence_basis_points": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"required_signal_paths": {
"type": "array",
"maxItems": 50,
"uniqueItems": true,
"items": {
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://artifacts.apis.io/decionis-com/json-schema/decionis-com-policy-bundle-schema.json
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/decionis-com-policy-bundle"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.