Ardaro Purchase Document Review
Was dieses MCP kann
Extracts receipt data, matches invoices to purchase orders, and identifies discrepancies across purchase documents.
Tools
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract_version', 'input', 'existing_fingerprints'], 'properties': {'input': {'oneOf': [{'type': 'object', 'required': ['kind', 'text'], 'properties': {'kind': {'const': 'text', 'description': 'Selects receipt text input; supply the text property.'}, 'text': {'type': 'string', 'maxLength': 20000, 'minLength': 1, 'description': 'OCR or receipt text for one document, up to 20,000 characters. Exclude payment-card data, credentials, customer-record payloads, and financial posting instructions.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'analysis'], 'properties': {'kind': {'const': 'structured', 'description': 'Selects structured receipt input; supply the analysis property.'}, 'analysis': {'type': 'object', 'properties': {'tax': {'oneOf': [{'type': 'string', 'maxLength': 32, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 32, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Total tax amount printed on the receipt, in the receipt currency. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'total': {'oneOf': [{'type': 'string', 'maxLength': 32, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 32, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Final receipt total, in the receipt currency. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'vendor': {'oneOf': [{'type': 'string', 'maxLength': 160, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 160, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Merchant or supplier name printed on the receipt. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'currency': {'oneOf': [{'type': 'string', 'maxLength': 3, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 3, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Three-letter currency code shown on the receipt, for example USD. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'subtotal': {'oneOf': [{'type': 'string', 'maxLength': 32, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 32, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Receipt subtotal before tax, in the receipt currency. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'properties': {'amount': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Extended amount printed for this line item, in the receipt currency. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'quantity': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Quantity purchased for this line item. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'unit_price': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Price per unit for this line item, in the receipt currency. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'description': {'oneOf': [{'type': 'string', 'maxLength': 240, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 240, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Item description printed on the receipt. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'product_code': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Product identifier or SKU printed for this line item. Supply the extracted value directly or wrap it with optional extraction confidence.'}}, 'minProperties': 1, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Extracted receipt line items, limited to 100 entries; omit unavailable item fields.'}, 'purchase_date': {'oneOf': [{'type': 'string', 'maxLength': 10, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 10, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Purchase date as extracted; YYYY-MM-DD is recommended. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'purchase_order': {'oneOf': [{'type': 'string', 'maxLength': 160, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 160, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Purchase-order reference printed on the receipt; this does not select or link an Ardaro job. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'receipt_reference': {'oneOf': [{'type': 'string', 'maxLength': 160, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 160, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Receipt, invoice, or transaction reference printed on the document. Supply the extracted value directly or wrap it with optional extraction confidence.'}}, 'description': 'Provider-neutral receipt extraction using only the listed fields. Omit fields that were not extracted.', 'minProperties': 1, 'additionalProperties': False}}, 'additionalProperties': False}], 'description': 'One receipt supplied as bounded OCR text or a provider-neutral structured extraction. Choose exactly one input kind.'}, 'contract_version': {'const': 'ardaro.agent-receipt-intelligence.request.v1', 'description': 'Required request contract identifier; send this exact version string.'}, 'existing_fingerprints': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'maxItems': 10000, 'description': 'Receipt fingerprints already known to the caller for duplicate comparison. Supply lowercase 64-character SHA-256 hex strings, or an empty array when none are available; at most 10,000 entries.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'anyOf': [{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract_version', 'service', 'version', 'status', 'engine', 'receipt', 'confidence', 'duplicate_check', 'duplicate_fingerprint', 'arithmetic_verified', 'arithmetic_consistency', 'warnings', 'warning_groups', 'identities', 'result', 'metering', 'policy'], 'properties': {'engine': {'type': 'object'}, 'policy': {'type': 'object'}, 'result': {'type': 'object', 'required': ['extracted_facts', 'inferred_suggestions', 'unavailable_fields', 'validation', 'provenance'], 'properties': {'provenance': {'type': 'object'}, 'validation': {'type': 'object'}, 'extracted_facts': {'type': 'object', 'required': ['line_items'], 'properties': {'vendor': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'product_code', 'quantity', 'unit_price', 'amount'], 'properties': {'amount': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'quantity': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'unit_price': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'description': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'product_code': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, 'maxItems': 100}, 'totals.tax': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'totals.total': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'purchase_date': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'purchase_order': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'totals.currency': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 3, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'totals.subtotal': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'receipt_reference': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'unavailable_fields': {'type': 'array', 'items': {'enum': ['purchase order reference', 'purchase_date', 'receipt or invoice number', 'totals.currency', 'totals.subtotal', 'totals.tax', 'totals.total', 'vendor']}, 'uniqueItems': True}, 'inferred_suggestions': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'value'], 'properties': {'field': {'enum': ['vendor', 'purchase_date', 'purchase_order', 'receipt_reference', 'totals.subtotal', 'totals.tax', 'totals.total', 'totals.currency']}, 'value': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'maxItems': 8}}, 'description': 'Sole authoritative structured analysis object. Its recursively key-sorted, compact UTF-8 JSON bytes are SHA-256 hashed under ardaro.recursive-key-sort-compact-json-utf8-sha256.v1 and published as analysis_result_identity.', 'additionalProperties': False}, 'status': {'const': 'review_required'}, 'receipt': {'type': 'object', 'required': ['vendor', 'purchase_date', 'totals', 'line_items'], 'properties': {'totals': {'type': 'object', 'required': ['subtotal', 'tax', 'total', 'currency'], 'properties': {'tax': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'total': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'currency': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 3, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'subtotal': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, 'vendor': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'product_code', 'quantity', 'unit_price', 'amount'], 'properties': {'amount': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'quantity': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'unit_price': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'description': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'product_code': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, 'maxItems': 100}, 'purchase_date': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'purchase_order': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'receipt_reference': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'description': 'Non-authoritative compatibility projection generated from result under ardaro.result-receipt-projection.v1. Consumers MUST use result for structured receipt values and reject a response when this projection diverges.', 'additionalProperties': False}, 'service': {'const': 'ardaro.receipt_intelligence'}, 'version': {'const': '1.0.0'}, 'metering': {'type': 'object'}, 'warnings': {'type': 'array', 'items': {'type': 'object'}, 'maxItems': 64}, 'confidence': {'type': 'object'}, 'identities': {'type': 'object', 'required': ['request_identity', 'document_fingerprint', 'analysis_result_identity'], 'properties': {'request_identity': {'type': 'string', 'pattern': '^req_[0-9a-f]{64}$'}, 'document_fingerprint': {'type': ['string', 'null'], 'pattern': '^[0-9a-f]{64}$'}, 'analysis_result_identity': {'type': 'string', 'pattern': '^res_[0-9a-f]{64}$'}}, 'additionalProperties': False}, 'warning_groups': {'type': 'object'}, 'duplicate_check': {'type': 'object'}, 'contract_version': {'const': 'ardaro.agent-receipt-intelligence.response.v1'}, 'payment_identity': {'type': 'object', 'required': ['protocol', 'reference', 'replayed'], 'properties': {'protocol': {'const': 'x402-v2'}, 'replayed': {'type': 'boolean'}, 'reference': {'type': 'string', 'pattern': '^pay_[0-9a-f]{64}$'}}, 'additionalProperties': False}, 'arithmetic_verified': {'type': ['boolean', 'null']}, 'duplicate_fingerprint': {'type': ['string', 'null'], 'pattern': '^[0-9a-f]{64}$'}, 'arithmetic_consistency': {'enum': ['verified', 'mismatch', 'unavailable']}}, 'description': 'Receipt Intelligence v1 response. result is authoritative; receipt is a derived compatibility projection that MUST match result.', 'additionalProperties': False, 'x-ardaro-receipt-compatibility-path': '$.receipt', 'x-ardaro-receipt-projection-profile': 'ardaro.result-receipt-projection.v1', 'x-ardaro-authoritative-analysis-path': '$.result', 'x-ardaro-analysis-result-identity-profile': 'ardaro.recursive-key-sort-compact-json-utf8-sha256.v1'}, {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['accepts'], 'properties': {'error': {'type': ['string', 'null']}, 'accepts': {'type': 'array', 'items': {'type': 'object', 'required': ['scheme', 'network', 'asset', 'amount', 'payTo', 'maxTimeoutSeconds'], 'properties': {'asset': {'type': 'string'}, 'extra': {'type': 'object', 'additionalProperties': True}, 'payTo': {'type': 'string'}, 'amount': {'type': 'string'}, 'scheme': {'type': 'string'}, 'network': {'type': 'string'}, 'maxTimeoutSeconds': {'type': 'integer'}}}}, 'resource': {'oneOf': [{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string'}, 'tags': {'oneOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'iconUrl': {'type': ['string', 'null']}, 'mimeType': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'serviceName': {'type': ['string', 'null']}}}, {'type': 'null'}]}, 'extensions': {'oneOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}]}, 'x402Version': {'type': 'integer', 'const': 2, 'default': 2}}}, {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract_version', 'status', 'error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'service_code', 'message', 'retryable', 'remediation'], 'properties': {'code': {'type': 'string', 'maxLength': 80}, 'message': {'type': 'string', 'maxLength': 280}, 'retryable': {'type': 'boolean'}, 'remediation': {'type': 'string', 'maxLength': 280}, 'service_code': {'enum': ['ARDARO_ARITHMETIC_MISMATCH', 'ARDARO_DOCUMENT_TOO_LARGE', 'ARDARO_DUPLICATE_SUSPECTED', 'ARDARO_EXTRACTION_LOW_CONFIDENCE', 'ARDARO_IDEMPOTENCY_CONFLICT', 'ARDARO_INPUT_UNSUPPORTED', 'ARDARO_PAYMENT_INVALID', 'ARDARO_PAYMENT_RECONCILIATION_REQUIRED', 'ARDARO_PAYMENT_REQUIRED', 'ARDARO_RATE_LIMITED', 'ARDARO_SERVICE_UNAVAILABLE']}}, 'additionalProperties': False}, 'status': {'const': 'error'}, 'contract_version': {'const': 'ardaro.agent-receipt-intelligence.response.v1'}}, 'additionalProperties': False}, {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract_version', 'status', 'service', 'error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'message': {'const': 'Service is not ready.'}}, 'additionalProperties': False}, 'status': {'const': 'not_ready'}, 'service': {'const': 'ardaro-receipt-intelligence'}, 'contract_version': {'const': 'ardaro.agent-receipt-intelligence.response.v1'}}, 'additionalProperties': False}, {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['error'], 'properties': {'error': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'status': {'const': 'error'}, 'message': {'type': 'string'}}, 'additionalProperties': False}], '$schema': 'https://json-schema.org/draft/2020-12/schema'}
Eingabeschema
{'type': 'object', 'required': ['service'], 'properties': {'service': {'enum': ['receipt', 'invoice', 'reconciliation'], 'type': 'string', 'description': 'receipt: extraction checks; invoice: paid invoice-to-PO quantity allocation; reconciliation: free three-document discrepancy checks without allocation. Choose one service; examples do not process caller documents.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['service', 'details'], 'properties': {'details': {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['example_version', 'synthetic_only', 'paid_processing_performed', 'input_description', 'request', 'expected_response', 'limits'], 'properties': {'limits': {'type': 'object', 'required': ['max_existing_fingerprints', 'max_line_items', 'max_pages', 'max_request_bytes', 'max_text_characters', 'normal_latency_target_ms', 'request_timeout_ms'], 'properties': {'max_pages': {'type': 'integer', 'minimum': 1}, 'max_line_items': {'type': 'integer', 'minimum': 1}, 'max_request_bytes': {'type': 'integer', 'minimum': 1}, 'request_timeout_ms': {'type': 'integer', 'minimum': 1}, 'max_text_characters': {'type': 'integer', 'minimum': 1}, 'normal_latency_target_ms': {'type': 'integer', 'minimum': 1}, 'max_existing_fingerprints': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}, 'request': {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract_version', 'input', 'existing_fingerprints'], 'properties': {'input': {'oneOf': [{'type': 'object', 'required': ['kind', 'text'], 'properties': {'kind': {'const': 'text', 'description': 'Selects receipt text input; supply the text property.'}, 'text': {'type': 'string', 'maxLength': 20000, 'minLength': 1, 'description': 'OCR or receipt text for one document, up to 20,000 characters. Exclude payment-card data, credentials, customer-record payloads, and financial posting instructions.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'analysis'], 'properties': {'kind': {'const': 'structured', 'description': 'Selects structured receipt input; supply the analysis property.'}, 'analysis': {'type': 'object', 'properties': {'tax': {'oneOf': [{'type': 'string', 'maxLength': 32, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 32, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Total tax amount printed on the receipt, in the receipt currency. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'total': {'oneOf': [{'type': 'string', 'maxLength': 32, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 32, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Final receipt total, in the receipt currency. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'vendor': {'oneOf': [{'type': 'string', 'maxLength': 160, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 160, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Merchant or supplier name printed on the receipt. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'currency': {'oneOf': [{'type': 'string', 'maxLength': 3, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 3, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Three-letter currency code shown on the receipt, for example USD. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'subtotal': {'oneOf': [{'type': 'string', 'maxLength': 32, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 32, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Receipt subtotal before tax, in the receipt currency. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'properties': {'amount': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Extended amount printed for this line item, in the receipt currency. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'quantity': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Quantity purchased for this line item. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'unit_price': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Price per unit for this line item, in the receipt currency. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'description': {'oneOf': [{'type': 'string', 'maxLength': 240, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 240, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Item description printed on the receipt. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'product_code': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 80, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Product identifier or SKU printed for this line item. Supply the extracted value directly or wrap it with optional extraction confidence.'}}, 'minProperties': 1, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Extracted receipt line items, limited to 100 entries; omit unavailable item fields.'}, 'purchase_date': {'oneOf': [{'type': 'string', 'maxLength': 10, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 10, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Purchase date as extracted; YYYY-MM-DD is recommended. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'purchase_order': {'oneOf': [{'type': 'string', 'maxLength': 160, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 160, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Purchase-order reference printed on the receipt; this does not select or link an Ardaro job. Supply the extracted value directly or wrap it with optional extraction confidence.'}, 'receipt_reference': {'oneOf': [{'type': 'string', 'maxLength': 160, 'minLength': 1}, {'type': 'number'}, {'type': 'object', 'required': ['value'], 'properties': {'value': {'oneOf': [{'type': 'string', 'maxLength': 160, 'minLength': 1}, {'type': 'number'}], 'description': 'The extracted field value, supplied as text or a number before receipt normalization.'}, 'confidence': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Optional caller-supplied extraction confidence: 0 to 1 is a fraction; values greater than 1 are percentages up to 100. A value of 1 means full confidence.'}}, 'additionalProperties': False}], 'description': 'Receipt, invoice, or transaction reference printed on the document. Supply the extracted value directly or wrap it with optional extraction confidence.'}}, 'description': 'Provider-neutral receipt extraction using only the listed fields. Omit fields that were not extracted.', 'minProperties': 1, 'additionalProperties': False}}, 'additionalProperties': False}], 'description': 'One receipt supplied as bounded OCR text or a provider-neutral structured extraction. Choose exactly one input kind.'}, 'contract_version': {'const': 'ardaro.agent-receipt-intelligence.request.v1', 'description': 'Required request contract identifier; send this exact version string.'}, 'existing_fingerprints': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'maxItems': 10000, 'description': 'Receipt fingerprints already known to the caller for duplicate comparison. Supply lowercase 64-character SHA-256 hex strings, or an empty array when none are available; at most 10,000 entries.'}}, 'additionalProperties': False}, 'synthetic_only': {'const': True}, 'example_version': {'const': 'ardaro.receipt-intelligence.example.v1'}, 'expected_response': {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract_version', 'service', 'version', 'status', 'engine', 'receipt', 'confidence', 'duplicate_check', 'duplicate_fingerprint', 'arithmetic_verified', 'arithmetic_consistency', 'warnings', 'warning_groups', 'identities', 'result', 'metering', 'policy'], 'properties': {'engine': {'type': 'object'}, 'policy': {'type': 'object'}, 'result': {'type': 'object', 'required': ['extracted_facts', 'inferred_suggestions', 'unavailable_fields', 'validation', 'provenance'], 'properties': {'provenance': {'type': 'object'}, 'validation': {'type': 'object'}, 'extracted_facts': {'type': 'object', 'required': ['line_items'], 'properties': {'vendor': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'product_code', 'quantity', 'unit_price', 'amount'], 'properties': {'amount': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'quantity': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'unit_price': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'description': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'product_code': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, 'maxItems': 100}, 'totals.tax': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'totals.total': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'purchase_date': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'purchase_order': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'totals.currency': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 3, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'totals.subtotal': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'receipt_reference': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'unavailable_fields': {'type': 'array', 'items': {'enum': ['purchase order reference', 'purchase_date', 'receipt or invoice number', 'totals.currency', 'totals.subtotal', 'totals.tax', 'totals.total', 'vendor']}, 'uniqueItems': True}, 'inferred_suggestions': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'value'], 'properties': {'field': {'enum': ['vendor', 'purchase_date', 'purchase_order', 'receipt_reference', 'totals.subtotal', 'totals.tax', 'totals.total', 'totals.currency']}, 'value': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'maxItems': 8}}, 'description': 'Sole authoritative structured analysis object. Its recursively key-sorted, compact UTF-8 JSON bytes are SHA-256 hashed under ardaro.recursive-key-sort-compact-json-utf8-sha256.v1 and published as analysis_result_identity.', 'additionalProperties': False}, 'status': {'const': 'review_required'}, 'receipt': {'type': 'object', 'required': ['vendor', 'purchase_date', 'totals', 'line_items'], 'properties': {'totals': {'type': 'object', 'required': ['subtotal', 'tax', 'total', 'currency'], 'properties': {'tax': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'total': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'currency': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 3, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'subtotal': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, 'vendor': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'product_code', 'quantity', 'unit_price', 'amount'], 'properties': {'amount': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'quantity': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'unit_price': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'description': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'product_code': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, 'maxItems': 100}, 'purchase_date': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}]}, 'purchase_order': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'receipt_reference': {'type': 'object', 'required': ['value', 'confidence', 'source'], 'properties': {'value': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'source': {'enum': ['structured_summary', 'structured_line_item', 'provider_neutral', 'text_fallback', 'inferred']}, 'confidence': {'type': 'object', 'required': ['score', 'level'], 'properties': {'level': {'enum': ['high', 'medium', 'low']}, 'score': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'description': 'Non-authoritative compatibility projection generated from result under ardaro.result-receipt-projection.v1. Consumers MUST use result for structured receipt values and reject a response when this projection diverges.', 'additionalProperties': False}, 'service': {'const': 'ardaro.receipt_intelligence'}, 'version': {'const': '1.0.0'}, 'metering': {'type': 'object'}, 'warnings': {'type': 'array', 'items': {'type': 'object'}, 'maxItems': 64}, 'confidence': {'type': 'object'}, 'identities': {'type': 'object', 'required': ['request_identity', 'document_fingerprint', 'analysis_result_identity'], 'properties': {'request_identity': {'type': 'string', 'pattern': '^req_[0-9a-f]{64}$'}, 'document_fingerprint': {'type': ['string', 'null'], 'pattern': '^[0-9a-f]{64}$'}, 'analysis_result_identity': {'type': 'string', 'pattern': '^res_[0-9a-f]{64}$'}}, 'additionalProperties': False}, 'warning_groups': {'type': 'object'}, 'duplicate_check': {'type': 'object'}, 'contract_version': {'const': 'ardaro.agent-receipt-intelligence.response.v1'}, 'payment_identity': {'type': 'object', 'required': ['protocol', 'reference', 'replayed'], 'properties': {'protocol': {'const': 'x402-v2'}, 'replayed': {'type': 'boolean'}, 'reference': {'type': 'string', 'pattern': '^pay_[0-9a-f]{64}$'}}, 'additionalProperties': False}, 'arithmetic_verified': {'type': ['boolean', 'null']}, 'duplicate_fingerprint': {'type': ['string', 'null'], 'pattern': '^[0-9a-f]{64}$'}, 'arithmetic_consistency': {'enum': ['verified', 'mismatch', 'unavailable']}}, 'description': 'Receipt Intelligence v1 response. result is authoritative; receipt is a derived compatibility projection that MUST match result.', 'additionalProperties': False, 'x-ardaro-receipt-compatibility-path': '$.receipt', 'x-ardaro-receipt-projection-profile': 'ardaro.result-receipt-projection.v1', 'x-ardaro-authoritative-analysis-path': '$.result', 'x-ardaro-analysis-result-identity-profile': 'ardaro.recursive-key-sort-compact-json-utf8-sha256.v1'}, 'input_description': {'type': 'string'}, 'paid_processing_performed': {'const': False}}, 'additionalProperties': False}, 'service': {'const': 'receipt'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['service', 'details'], 'properties': {'details': {'type': 'object', 'required': ['example_version', 'synthetic_only', 'request', 'response', 'policy'], 'properties': {'policy': {'type': 'object', 'required': ['human_review_required', 'financial_posting_supported', 'payment_required'], 'properties': {'payment_required': {'const': False}, 'human_review_required': {'const': True}, 'financial_posting_supported': {'const': False}}, 'additionalProperties': False}, 'request': {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract_version', 'invoice', 'purchase_order'], 'properties': {'invoice': {'oneOf': [{'type': 'object', 'required': ['currency', 'line_items', 'purchase_order_reference', 'reference', 'supplier_id'], 'properties': {'tax': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})$', 'maxLength': 26}, 'total': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})$', 'maxLength': 26}, 'currency': {'enum': ['JPY'], 'type': 'string'}, 'subtotal': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})$', 'maxLength': 26}, 'reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'line_id', 'quantity', 'unit', 'unit_price'], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})$', 'maxLength': 26}, 'line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'quantity': {'not': {'pattern': '\\n'}, 'type': 'string', 'allOf': [{'not': {'pattern': '^0(?:\\.0+)?$'}}], 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'po_line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'unit_price': {'not': {'pattern': '\\n'}, 'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'description': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'product_code': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'supplier_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'purchase_order_reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['currency', 'line_items', 'purchase_order_reference', 'reference', 'supplier_id'], 'properties': {'tax': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,2})?$', 'maxLength': 29}, 'total': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,2})?$', 'maxLength': 29}, 'currency': {'enum': ['USD', 'EUR', 'GBP', 'CAD', 'AUD', 'MXN'], 'type': 'string'}, 'subtotal': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,2})?$', 'maxLength': 29}, 'reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'line_id', 'quantity', 'unit', 'unit_price'], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,2})?$', 'maxLength': 29}, 'line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'quantity': {'not': {'pattern': '\\n'}, 'type': 'string', 'allOf': [{'not': {'pattern': '^0(?:\\.0+)?$'}}], 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'po_line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'unit_price': {'not': {'pattern': '\\n'}, 'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'description': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'product_code': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'supplier_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'purchase_order_reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}]}, 'purchase_order': {'oneOf': [{'type': 'object', 'required': ['currency', 'line_items', 'reference', 'supplier_id'], 'properties': {'currency': {'enum': ['JPY'], 'type': 'string'}, 'reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'line_id', 'quantity', 'unit', 'unit_price'], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})$', 'maxLength': 26}, 'line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'quantity': {'not': {'pattern': '\\n'}, 'type': 'string', 'allOf': [{'not': {'pattern': '^0(?:\\.0+)?$'}}], 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'unit_price': {'not': {'pattern': '\\n'}, 'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'description': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'product_code': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'supplier_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['currency', 'line_items', 'reference', 'supplier_id'], 'properties': {'currency': {'enum': ['USD', 'EUR', 'GBP', 'CAD', 'AUD', 'MXN'], 'type': 'string'}, 'reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'line_id', 'quantity', 'unit', 'unit_price'], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,2})?$', 'maxLength': 29}, 'line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'quantity': {'not': {'pattern': '\\n'}, 'type': 'string', 'allOf': [{'not': {'pattern': '^0(?:\\.0+)?$'}}], 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'unit_price': {'not': {'pattern': '\\n'}, 'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'description': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'product_code': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'supplier_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}]}, 'contract_version': {'const': 'ardaro.agent-invoice-matching.request.v1'}}, 'description': 'One invoice and one purchase order with caller-supplied opaque supplier identifiers. Runtime validation additionally rejects duplicate line IDs, padded/control-bearing strings, sensitive card or credential data, and requests over 262144 UTF-8 JSON bytes. All numeric inputs are decimal strings; missing optional arithmetic evidence requires review.', 'additionalProperties': False}, 'response': {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract_version', 'status', 'result', 'identities'], 'properties': {'result': {'type': 'object', 'required': ['summary', 'document_checks', 'comparison_rows', 'purchase_order_line_summary', 'discrepancies', 'arithmetic', 'policy'], 'properties': {'policy': {'type': 'object', 'required': ['human_review_required', 'stateless', 'raw_documents_retained', 'financial_posting_supported', 'financial_posting_performed', 'payment_approval_supported', 'delivery_verification_supported', 'model_calls', 'identity_purpose', 'matching_rule', 'quantity_scope', 'arithmetic_scope', 'supplier_scope', 'decision_scope'], 'properties': {'stateless': {'const': True}, 'model_calls': {'const': 0}, 'matching_rule': {'const': 'explicit_po_line_id_else_unique_case_sensitive_product_code'}, 'decision_scope': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'quantity_scope': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'supplier_scope': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'arithmetic_scope': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'identity_purpose': {'const': 'deterministic_result_comparison_only'}, 'human_review_required': {'const': True}, 'raw_documents_retained': {'const': False}, 'payment_approval_supported': {'const': False}, 'financial_posting_performed': {'const': False}, 'financial_posting_supported': {'const': False}, 'delivery_verification_supported': {'const': False}}, 'additionalProperties': False}, 'summary': {'type': 'object', 'required': ['outcome', 'invoice_line_count', 'purchase_order_line_count', 'matched_invoice_line_count', 'unmatched_invoice_line_count', 'discrepancy_count', 'unknown_check_count', 'human_review_required', 'delivery_verified', 'payment_approved'], 'properties': {'outcome': {'enum': ['no_discrepancies', 'review_required']}, 'payment_approved': {'const': False}, 'delivery_verified': {'const': False}, 'discrepancy_count': {'type': 'integer', 'maximum': 1000, 'minimum': 0}, 'invoice_line_count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'unknown_check_count': {'type': 'integer', 'maximum': 1000, 'minimum': 0}, 'human_review_required': {'const': True}, 'purchase_order_line_count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'matched_invoice_line_count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'unmatched_invoice_line_count': {'type': 'integer', 'maximum': 100, 'minimum': 0}}, 'additionalProperties': False}, 'arithmetic': {'type': 'object', 'required': ['rounding_mode', 'rounding_scope', 'invoice_currency_scale', 'purchase_order_currency_scale', 'invoice_line_amount_sum', 'invoice_supplied_line_amount_sum', 'invoice_subtotal', 'invoice_tax', 'invoice_total', 'computed_invoice_total', 'invoice_subtotal_status', 'invoice_total_status'], 'properties': {'invoice_tax': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'invoice_total': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'rounding_mode': {'const': 'ROUND_HALF_UP'}, 'rounding_scope': {'const': 'each_line_then_sum'}, 'invoice_subtotal': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'invoice_total_status': {'enum': ['consistent', 'mismatch', 'unavailable']}, 'computed_invoice_total': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'invoice_currency_scale': {'enum': [0, 2]}, 'invoice_line_amount_sum': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, 'invoice_subtotal_status': {'enum': ['consistent', 'mismatch', 'unavailable']}, 'purchase_order_currency_scale': {'enum': [0, 2]}, 'invoice_supplied_line_amount_sum': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}}, 'additionalProperties': False}, 'discrepancies': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'severity', 'message', 'sources'], 'properties': {'code': {'enum': ['currency_mismatch', 'supplier_mismatch', 'purchase_order_reference_mismatch', 'invoice_line_amount_unavailable', 'purchase_order_line_amount_unavailable', 'invoice_line_arithmetic_mismatch', 'purchase_order_line_arithmetic_mismatch', 'referenced_purchase_order_line_missing', 'ambiguous_product_code', 'unmatchable_invoice_line', 'unit_mismatch', 'product_code_mismatch', 'unit_price_mismatch', 'quantity_exceeds_purchase_order', 'invoice_subtotal_unavailable', 'invoice_tax_unavailable', 'invoice_total_unavailable', 'invoice_subtotal_mismatch', 'invoice_supplied_line_sum_mismatch', 'invoice_total_mismatch'], 'type': 'string'}, 'message': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'sources': {'type': 'array', 'items': {'type': 'string', 'pattern': '^/(?:invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100, 'minLength': 1}, 'maxItems': 101, 'minItems': 1}, 'severity': {'enum': ['error', 'warning']}}, 'additionalProperties': False}, 'maxItems': 1000, 'minItems': 0}, 'comparison_rows': {'type': 'array', 'items': {'type': 'object', 'required': ['invoice_line_id', 'invoice_source', 'purchase_order_line_id', 'purchase_order_source', 'match_method', 'allocation_status', 'invoice_quantity', 'purchase_order_quantity', 'invoice_unit', 'purchase_order_unit', 'invoice_unit_price', 'purchase_order_unit_price', 'invoice_currency', 'purchase_order_currency', 'unit_price_difference', 'invoice_amount', 'computed_invoice_amount', 'line_arithmetic_status', 'discrepancy_codes', 'outcome'], 'properties': {'outcome': {'enum': ['no_discrepancies', 'review_required']}, 'invoice_unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'match_method': {'enum': ['unmatched', 'explicit_po_line_id', 'exact_product_code']}, 'invoice_amount': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'invoice_source': {'type': 'string', 'pattern': '^/(?:invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100, 'minLength': 1}, 'invoice_line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'invoice_currency': {'enum': ['USD', 'EUR', 'GBP', 'CAD', 'AUD', 'MXN', 'JPY']}, 'invoice_quantity': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, 'allocation_status': {'enum': ['allocated', 'not_comparable', 'unmatched']}, 'discrepancy_codes': {'type': 'array', 'items': {'enum': ['currency_mismatch', 'supplier_mismatch', 'purchase_order_reference_mismatch', 'invoice_line_amount_unavailable', 'purchase_order_line_amount_unavailable', 'invoice_line_arithmetic_mismatch', 'purchase_order_line_arithmetic_mismatch', 'referenced_purchase_order_line_missing', 'ambiguous_product_code', 'unmatchable_invoice_line', 'unit_mismatch', 'product_code_mismatch', 'unit_price_mismatch', 'quantity_exceeds_purchase_order', 'invoice_subtotal_unavailable', 'invoice_tax_unavailable', 'invoice_total_unavailable', 'invoice_subtotal_mismatch', 'invoice_supplied_line_sum_mismatch', 'invoice_total_mismatch'], 'type': 'string'}, 'maxItems': 20, 'minItems': 0, 'uniqueItems': True}, 'invoice_unit_price': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, 'purchase_order_unit': {'anyOf': [{'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, {'type': 'null'}]}, 'purchase_order_source': {'anyOf': [{'type': 'string', 'pattern': '^/(?:invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100, 'minLength': 1}, {'type': 'null'}]}, 'unit_price_difference': {'anyOf': [{'type': 'string', 'pattern': '^-?(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 42}, {'type': 'null'}]}, 'line_arithmetic_status': {'enum': ['consistent', 'mismatch', 'unavailable']}, 'purchase_order_line_id': {'anyOf': [{'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, {'type': 'null'}]}, 'computed_invoice_amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, 'purchase_order_currency': {'enum': ['USD', 'EUR', 'GBP', 'CAD', 'AUD', 'MXN', 'JPY']}, 'purchase_order_quantity': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'purchase_order_unit_price': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'document_checks': {'type': 'object', 'required': ['currency_matches', 'supplier_matches', 'purchase_order_reference_matches'], 'properties': {'currency_matches': {'type': 'boolean'}, 'supplier_matches': {'type': 'boolean'}, 'purchase_order_reference_matches': {'type': 'boolean'}}, 'additionalProperties': False}, 'purchase_order_line_summary': {'type': 'array', 'items': {'type': 'object', 'required': ['purchase_order_line_id', 'purchase_order_source', 'allocated_invoice_sources', 'ordered_quantity', 'allocated_quantity', 'uninvoiced_quantity', 'overbilled_quantity', 'unit', 'status', 'supplied_amount', 'computed_amount', 'line_arithmetic_status'], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'status': {'enum': ['not_comparable', 'not_invoiced', 'overbilled', 'fully_invoiced', 'partially_invoiced']}, 'computed_amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, 'supplied_amount': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'ordered_quantity': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, 'allocated_quantity': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'overbilled_quantity': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'uninvoiced_quantity': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'purchase_order_source': {'type': 'string', 'pattern': '^/(?:invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100, 'minLength': 1}, 'line_arithmetic_status': {'enum': ['consistent', 'mismatch', 'unavailable']}, 'purchase_order_line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'allocated_invoice_sources': {'type': 'array', 'items': {'type': 'string', 'pattern': '^/(?:invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100, 'minLength': 1}, 'maxItems': 100, 'minItems': 0}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}}, 'additionalProperties': False}, 'status': {'const': 'review_required'}, 'identities': {'type': 'object', 'required': ['analysis_result_identity'], 'properties': {'analysis_result_identity': {'type': 'string', 'pattern': '^res_[0-9a-f]{64}$'}}, 'additionalProperties': False}, 'contract_version': {'const': 'ardaro.agent-invoice-matching.response.v1'}}, 'additionalProperties': False}, 'synthetic_only': {'const': True}, 'example_version': {'const': 'ardaro.invoice-matching.example.v1'}}, 'additionalProperties': False}, 'service': {'const': 'invoice'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['service', 'details'], 'properties': {'details': {'type': 'object', 'required': ['request', 'response'], 'properties': {'request': {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': [], 'properties': {'invoice': {'type': 'object', 'required': [], 'properties': {'tax': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'total': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'currency': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'subtotal': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': [], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'quantity': {'not': {'pattern': '\\n'}, 'type': 'string', 'allOf': [{'not': {'pattern': '^0(?:\\.0+)?$'}}], 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'po_line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'unit_price': {'not': {'pattern': '\\n'}, 'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'description': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'product_code': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100}, 'supplier_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'purchase_order_reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'description': 'Caller-supplied structured data. Use opaque supplier IDs and decimal strings; omit unknown fields. Receipt kind describes the source document, not verified delivery. Field names align with invoice matching; receipt extraction output must be mapped explicitly.', 'additionalProperties': False}, 'receipt': {'type': 'object', 'required': [], 'properties': {'tax': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'kind': {'enum': ['expense_receipt', 'delivery_receipt']}, 'total': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'currency': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'subtotal': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': [], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'quantity': {'not': {'pattern': '\\n'}, 'type': 'string', 'allOf': [{'not': {'pattern': '^0(?:\\.0+)?$'}}], 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'unit_price': {'not': {'pattern': '\\n'}, 'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'description': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'product_code': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'invoice_line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100}, 'supplier_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'invoice_reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'purchase_order_reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'description': 'Caller-supplied structured data. Use opaque supplier IDs and decimal strings; omit unknown fields. Receipt kind describes the source document, not verified delivery. Field names align with invoice matching; receipt extraction output must be mapped explicitly.', 'additionalProperties': False}, 'purchase_order': {'type': 'object', 'required': [], 'properties': {'tax': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'total': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'currency': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'subtotal': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': [], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'quantity': {'not': {'pattern': '\\n'}, 'type': 'string', 'allOf': [{'not': {'pattern': '^0(?:\\.0+)?$'}}], 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'unit_price': {'not': {'pattern': '\\n'}, 'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'description': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'product_code': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100}, 'supplier_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'description': 'Caller-supplied structured data. Use opaque supplier IDs and decimal strings; omit unknown fields. Receipt kind describes the source document, not verified delivery. Field names align with invoice matching; receipt extraction output must be mapped explicitly.', 'additionalProperties': False}}, 'description': "Free comparison of one receipt, invoice and purchase order supplied in this request. Missing documents or fields produce needs_review. Maximum 100 lines per document and 196608 UTF-8 JSON bytes. No images, URLs, credentials, account access, or paid tool calls. Money amounts must use the supported currency's minor-unit precision; runtime also rejects sensitive data, padded strings and control characters.", 'additionalProperties': False}, 'response': {'type': 'object', 'oneOf': [{'type': 'object', 'required': ['contract_version', 'human_review_required', 'payment_approved', 'delivery_verified', 'financial_posting_performed', 'provenance', 'policy', 'status', 'result_identity', 'document_summary', 'comparisons', 'discrepancies'], 'properties': {'policy': {'const': {'model_calls': 0, 'matching_rule': 'explicit line reference, else unique exact case-sensitive product code, else unique NFKC/casefold/whitespace-normalized description when both product codes are absent; never fuzzy or semantic', 'receipt_scope': 'An expense receipt is not evidence of delivery. A delivery_receipt label is caller-supplied and does not authenticate delivery.', 'decision_scope': 'No discrepancies means the supported checks found none in supplied data. It is not payment authorization, accounting approval or supplier verification.', 'quantity_scope': 'Differences concern only these three supplied documents. Partial receipts, partial invoicing, prior invoices, returns and delivery events are not inferred.', 'paid_tool_calls': 0, 'retention_scope': "This function retains no documents or results; caller and transport retention are outside this function's guarantees.", 'arithmetic_scope': 'Exact decimal comparisons with per-line ROUND_HALF_UP at supported currency precision. No tax applicability, discounts, freight or currency conversion is inferred.', 'payment_required': False, 'document_storage_performed': False}}, 'status': {'enum': ['no_discrepancies', 'needs_review']}, 'provenance': {'const': {'source': 'caller_supplied_documents_only', 'source_pointer_root': 'original_arguments', 'external_data_fetched': False, 'document_authenticity_verified': False}}, 'comparisons': {'type': 'array', 'items': {'type': 'object', 'required': ['pair', 'status', 'document_identity_comparable', 'rows'], 'properties': {'pair': {'enum': ['receipt_to_invoice', 'invoice_to_purchase_order']}, 'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'target', 'candidate_targets', 'match_method', 'comparison_performed', 'status', 'quantity_difference', 'unit_price_difference', 'amount_difference'], 'properties': {'source': {'type': 'string', 'pattern': '^/(?:receipt|invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100}, 'status': {'enum': ['no_discrepancies', 'needs_review']}, 'target': {'anyOf': [{'type': 'string', 'pattern': '^/(?:receipt|invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100}, {'type': 'null'}]}, 'match_method': {'enum': ['unmatched', 'explicit_line_reference', 'exact_product_code', 'normalized_description']}, 'amount_difference': {'type': ['string', 'null'], 'pattern': '^-?(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 50}, 'candidate_targets': {'type': 'array', 'items': {'type': 'string', 'pattern': '^/(?:receipt|invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100}, 'maxItems': 100}, 'quantity_difference': {'type': ['string', 'null'], 'pattern': '^-?(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 50}, 'comparison_performed': {'type': 'boolean'}, 'unit_price_difference': {'type': ['string', 'null'], 'pattern': '^-?(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 50}}, 'additionalProperties': False}, 'maxItems': 100}, 'status': {'enum': ['no_discrepancies', 'needs_review']}, 'document_identity_comparable': {'type': 'boolean'}}, 'additionalProperties': False}, 'maxItems': 2, 'minItems': 2}, 'discrepancies': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'scope', 'severity', 'sources'], 'properties': {'code': {'type': 'string', 'pattern': '^[a-z_]+$', 'maxLength': 80}, 'scope': {'enum': ['receipt', 'invoice', 'purchase_order', 'receipt_to_invoice', 'invoice_to_purchase_order']}, 'sources': {'type': 'array', 'items': {'type': 'string', 'pattern': '^/(?:receipt|invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100}, 'maxItems': 101}, 'severity': {'enum': ['unknown', 'discrepancy']}}, 'additionalProperties': False}, 'maxItems': 6000}, 'result_identity': {'type': 'string', 'pattern': '^res_[0-9a-f]{64}$'}, 'contract_version': {'const': 'ardaro.purchase-document-reconciliation.response.v1'}, 'document_summary': {'type': 'array', 'items': {'type': 'object', 'required': ['document', 'present', 'line_count', 'currency_supported', 'currency_minor_units'], 'properties': {'present': {'type': 'boolean'}, 'document': {'enum': ['receipt', 'invoice', 'purchase_order']}, 'line_count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'currency_supported': {'type': 'boolean'}, 'currency_minor_units': {'enum': [0, 2, None]}}, 'additionalProperties': False}, 'maxItems': 3, 'minItems': 3}, 'payment_approved': {'const': False}, 'delivery_verified': {'const': False}, 'human_review_required': {'const': True}, 'financial_posting_performed': {'const': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['contract_version', 'status', 'error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string', 'maxLength': 80}, 'message': {'type': 'string', 'maxLength': 300}}, 'additionalProperties': False}, 'status': {'const': 'error'}, 'contract_version': {'const': 'ardaro.purchase-document-reconciliation.response.v1'}}, 'additionalProperties': False}], '$schema': 'https://json-schema.org/draft/2020-12/schema'}}}, 'service': {'const': 'reconciliation'}}, 'additionalProperties': False}]}
Eingabeschema
{'type': 'object', 'required': ['service'], 'properties': {'service': {'enum': ['receipt', 'invoice', 'reconciliation'], 'type': 'string', 'description': 'receipt: extraction checks; invoice: paid invoice-to-PO quantity allocation; reconciliation: free three-document discrepancy checks without allocation. Choose one service; examples do not process caller documents.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['service', 'details'], 'properties': {'details': {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['availability', 'limits', 'paid_processing_performed', 'payment_authorized', 'policy', 'price', 'retention', 'service_id', 'status_version', 'supported_input_types'], 'properties': {'price': {'type': 'object', 'required': ['model', 'amount', 'currency', 'display', 'network', 'failed_input_validation_charged', 'same_payment_identifier_replay_requires_new_payment', 'successful_response_loss_retry_policy'], 'properties': {'model': {'const': 'fixed_per_accepted_request'}, 'amount': {'type': 'string', 'pattern': '^[0-9]+\\.[0-9]{2}$'}, 'display': {'type': 'string', 'pattern': '^\\$[0-9]+\\.[0-9]{2}$'}, 'network': {'type': 'string'}, 'currency': {'const': 'USDC'}, 'failed_input_validation_charged': {'const': False}, 'successful_response_loss_retry_policy': {'type': 'string'}, 'same_payment_identifier_replay_requires_new_payment': {'const': False}}, 'additionalProperties': False}, 'limits': {'type': 'object', 'required': ['max_existing_fingerprints', 'max_line_items', 'max_pages', 'max_request_bytes', 'max_text_characters', 'normal_latency_target_ms', 'request_timeout_ms'], 'properties': {'max_pages': {'type': 'integer', 'minimum': 1}, 'max_line_items': {'type': 'integer', 'minimum': 1}, 'max_request_bytes': {'type': 'integer', 'minimum': 1}, 'request_timeout_ms': {'type': 'integer', 'minimum': 1}, 'max_text_characters': {'type': 'integer', 'minimum': 1}, 'normal_latency_target_ms': {'type': 'integer', 'minimum': 1}, 'max_existing_fingerprints': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}, 'policy': {'type': 'object', 'required': ['advisory_only', 'human_review_required', 'financial_mutation_supported', 'ardaro_saas_tenant_access'], 'properties': {'advisory_only': {'const': True}, 'human_review_required': {'const': True}, 'ardaro_saas_tenant_access': {'const': False}, 'financial_mutation_supported': {'const': False}}, 'additionalProperties': False}, 'retention': {'type': 'object', 'required': ['default_retention_seconds', 'deletion_behavior', 'durable_recovery_supported', 'extracted_results_retained', 'payment_metadata_retention_seconds', 'raw_documents_retained', 'raw_receipt_images_retained', 'storage_scope', 'used_for_model_training'], 'properties': {'storage_scope': {'type': 'string'}, 'deletion_behavior': {'type': 'string'}, 'raw_documents_retained': {'const': False}, 'used_for_model_training': {'const': False}, 'default_retention_seconds': {'type': 'integer', 'minimum': 1}, 'durable_recovery_supported': {'type': 'boolean'}, 'extracted_results_retained': {'type': 'boolean'}, 'raw_receipt_images_retained': {'const': False}, 'payment_metadata_retention_seconds': {'type': 'integer', 'minimum': 86400}}, 'additionalProperties': False}, 'service_id': {'const': 'ardaro.receipt_intelligence'}, 'availability': {'type': 'object', 'required': ['ready', 'reason', 'source'], 'properties': {'ready': {'type': 'boolean', 'description': 'Whether the launch gate and cached dependencies currently allow paid processing.'}, 'reason': {'enum': ['ready', 'launch_gate_closed', 'dependency_unavailable', 'not_configured'], 'description': 'Coarse public readiness reason; contains no internal error details.'}, 'source': {'const': 'cached_runtime_readiness'}}, 'description': 'Cached runtime readiness, not a fresh external probe or settlement proof.', 'additionalProperties': False}, 'status_version': {'const': 'ardaro.receipt-intelligence.service-status.v1'}, 'payment_authorized': {'const': False}, 'supported_input_types': {'type': 'array', 'items': {'type': 'object', 'required': ['mime_type', 'input_kind', 'description'], 'properties': {'mime_type': {'type': 'string'}, 'input_kind': {'enum': ['text', 'structured']}, 'description': {'type': 'string'}}, 'additionalProperties': False}, 'minItems': 1}, 'paid_processing_performed': {'const': False}}, 'additionalProperties': False}, 'service': {'const': 'receipt'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['service', 'details'], 'properties': {'details': {'type': 'object', 'allOf': [{'if': {'properties': {'ready': {'const': True}}}, 'else': {'properties': {'reason': {'enum': ['launch_gated', 'dependency_unavailable']}}}, 'then': {'properties': {'reason': {'const': 'ready'}}}}], 'required': ['status_version', 'service_id', 'ready', 'reason', 'price', 'limits', 'retention', 'policy', 'settlement_proven', 'endpoints'], 'properties': {'price': {'type': 'object', 'required': ['model', 'amount', 'amount_atomic', 'currency', 'network', 'display', 'failed_input_validation_charged', 'same_payment_identifier_replay_requires_new_payment', 'successful_response_loss_retry_policy'], 'properties': {'model': {'const': 'fixed_per_accepted_request'}, 'amount': {'const': '0.50'}, 'display': {'const': '$0.50'}, 'network': {'enum': ['eip155:8453', 'eip155:84532']}, 'currency': {'const': 'USDC'}, 'amount_atomic': {'const': '500000'}, 'failed_input_validation_charged': {'const': False}, 'successful_response_loss_retry_policy': {'const': 'Retry only the identical signed payment, payment identifier and request. Never create a new signature for an unknown outcome.'}, 'same_payment_identifier_replay_requires_new_payment': {'const': False}}, 'additionalProperties': False}, 'ready': {'type': 'boolean'}, 'limits': {'type': 'object', 'required': ['max_request_bytes', 'max_invoice_line_items', 'max_purchase_order_line_items', 'max_response_bytes', 'max_mcp_response_bytes', 'supported_currencies'], 'properties': {'max_request_bytes': {'const': 262144}, 'max_response_bytes': {'const': 1048576}, 'supported_currencies': {'const': ['AUD', 'CAD', 'EUR', 'GBP', 'JPY', 'MXN', 'USD']}, 'max_invoice_line_items': {'const': 100}, 'max_mcp_response_bytes': {'const': 2097152}, 'max_purchase_order_line_items': {'const': 100}}, 'additionalProperties': False}, 'policy': {'type': 'object', 'required': ['advisory_only', 'human_review_required', 'financial_mutation_supported', 'ardaro_saas_tenant_access', 'ocr_supported', 'delivery_verification_supported', 'prior_invoice_reconciliation_supported', 'tax_validation_supported', 'document_authentication_supported'], 'properties': {'advisory_only': {'const': True}, 'ocr_supported': {'const': False}, 'human_review_required': {'const': True}, 'tax_validation_supported': {'const': False}, 'ardaro_saas_tenant_access': {'const': False}, 'financial_mutation_supported': {'const': False}, 'delivery_verification_supported': {'const': False}, 'document_authentication_supported': {'const': False}, 'prior_invoice_reconciliation_supported': {'const': False}}, 'additionalProperties': False}, 'reason': {'enum': ['ready', 'launch_gated', 'dependency_unavailable']}, 'endpoints': {'type': 'object', 'required': ['analyze', 'mcp', 'example', 'status'], 'properties': {'mcp': {'not': {'pattern': '\\n'}, 'type': 'string', 'format': 'uri', 'pattern': '^https?://[^/?#]+/mcp$', 'maxLength': 600, 'minLength': 1}, 'status': {'not': {'pattern': '\\n'}, 'type': 'string', 'format': 'uri', 'pattern': '^https?://[^/?#]+/agent-services/invoice-matching/status$', 'maxLength': 600, 'minLength': 1}, 'analyze': {'not': {'pattern': '\\n'}, 'type': 'string', 'format': 'uri', 'pattern': '^https?://[^/?#]+/v1/invoice-matching/analyze$', 'maxLength': 600, 'minLength': 1}, 'example': {'not': {'pattern': '\\n'}, 'type': 'string', 'format': 'uri', 'pattern': '^https?://[^/?#]+/agent-services/invoice-matching/example$', 'maxLength': 600, 'minLength': 1}}, 'additionalProperties': False}, 'retention': {'type': 'object', 'required': ['raw_documents_persisted', 'in_process_result_cache_seconds', 'payment_metadata_retention_seconds', 'sales_accounting'], 'properties': {'sales_accounting': {'const': 'Content-free pseudonymous invoice sales are accounted for separately from receipt sales.'}, 'raw_documents_persisted': {'const': False}, 'in_process_result_cache_seconds': {'type': 'integer', 'maximum': 86400, 'minimum': 1}, 'payment_metadata_retention_seconds': {'type': 'integer', 'maximum': 315360000, 'minimum': 86400}}, 'additionalProperties': False}, 'service_id': {'const': 'ardaro.invoice_matching'}, 'status_version': {'const': 'ardaro.invoice-matching.service-status.v1'}, 'settlement_proven': {'const': False}}, 'additionalProperties': False}, 'service': {'const': 'invoice'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['service', 'details'], 'properties': {'details': {'type': 'object', 'required': ['ready', 'price', 'input', 'retention', 'human_review_required', 'financial_posting_performed'], 'properties': {'input': {'type': 'string'}, 'price': {'const': 'free'}, 'ready': {'const': True}, 'retention': {'type': 'string'}, 'human_review_required': {'const': True}, 'financial_posting_performed': {'const': False}}, 'additionalProperties': False}, 'service': {'const': 'reconciliation'}}, 'additionalProperties': False}]}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract_version', 'invoice', 'purchase_order'], 'properties': {'invoice': {'oneOf': [{'type': 'object', 'required': ['currency', 'line_items', 'purchase_order_reference', 'reference', 'supplier_id'], 'properties': {'tax': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})$', 'maxLength': 26}, 'total': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})$', 'maxLength': 26}, 'currency': {'enum': ['JPY'], 'type': 'string'}, 'subtotal': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})$', 'maxLength': 26}, 'reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'line_id', 'quantity', 'unit', 'unit_price'], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})$', 'maxLength': 26}, 'line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'quantity': {'not': {'pattern': '\\n'}, 'type': 'string', 'allOf': [{'not': {'pattern': '^0(?:\\.0+)?$'}}], 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'po_line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'unit_price': {'not': {'pattern': '\\n'}, 'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'description': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'product_code': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'supplier_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'purchase_order_reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['currency', 'line_items', 'purchase_order_reference', 'reference', 'supplier_id'], 'properties': {'tax': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,2})?$', 'maxLength': 29}, 'total': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,2})?$', 'maxLength': 29}, 'currency': {'enum': ['USD', 'EUR', 'GBP', 'CAD', 'AUD', 'MXN'], 'type': 'string'}, 'subtotal': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,2})?$', 'maxLength': 29}, 'reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'line_id', 'quantity', 'unit', 'unit_price'], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,2})?$', 'maxLength': 29}, 'line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'quantity': {'not': {'pattern': '\\n'}, 'type': 'string', 'allOf': [{'not': {'pattern': '^0(?:\\.0+)?$'}}], 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'po_line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'unit_price': {'not': {'pattern': '\\n'}, 'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'description': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'product_code': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'supplier_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'purchase_order_reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}]}, 'purchase_order': {'oneOf': [{'type': 'object', 'required': ['currency', 'line_items', 'reference', 'supplier_id'], 'properties': {'currency': {'enum': ['JPY'], 'type': 'string'}, 'reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'line_id', 'quantity', 'unit', 'unit_price'], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})$', 'maxLength': 26}, 'line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'quantity': {'not': {'pattern': '\\n'}, 'type': 'string', 'allOf': [{'not': {'pattern': '^0(?:\\.0+)?$'}}], 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'unit_price': {'not': {'pattern': '\\n'}, 'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'description': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'product_code': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'supplier_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['currency', 'line_items', 'reference', 'supplier_id'], 'properties': {'currency': {'enum': ['USD', 'EUR', 'GBP', 'CAD', 'AUD', 'MXN'], 'type': 'string'}, 'reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'line_id', 'quantity', 'unit', 'unit_price'], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,2})?$', 'maxLength': 29}, 'line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'quantity': {'not': {'pattern': '\\n'}, 'type': 'string', 'allOf': [{'not': {'pattern': '^0(?:\\.0+)?$'}}], 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'unit_price': {'not': {'pattern': '\\n'}, 'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'description': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'product_code': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'supplier_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}]}, 'contract_version': {'const': 'ardaro.agent-invoice-matching.request.v1'}}, 'description': 'One invoice and one purchase order with caller-supplied opaque supplier identifiers. Runtime validation additionally rejects duplicate line IDs, padded/control-bearing strings, sensitive card or credential data, and requests over 262144 UTF-8 JSON bytes. All numeric inputs are decimal strings; missing optional arithmetic evidence requires review.', 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'anyOf': [{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract_version', 'status', 'result', 'identities'], 'properties': {'result': {'type': 'object', 'required': ['summary', 'document_checks', 'comparison_rows', 'purchase_order_line_summary', 'discrepancies', 'arithmetic', 'policy'], 'properties': {'policy': {'type': 'object', 'required': ['human_review_required', 'stateless', 'raw_documents_retained', 'financial_posting_supported', 'financial_posting_performed', 'payment_approval_supported', 'delivery_verification_supported', 'model_calls', 'identity_purpose', 'matching_rule', 'quantity_scope', 'arithmetic_scope', 'supplier_scope', 'decision_scope'], 'properties': {'stateless': {'const': True}, 'model_calls': {'const': 0}, 'matching_rule': {'const': 'explicit_po_line_id_else_unique_case_sensitive_product_code'}, 'decision_scope': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'quantity_scope': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'supplier_scope': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'arithmetic_scope': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'identity_purpose': {'const': 'deterministic_result_comparison_only'}, 'human_review_required': {'const': True}, 'raw_documents_retained': {'const': False}, 'payment_approval_supported': {'const': False}, 'financial_posting_performed': {'const': False}, 'financial_posting_supported': {'const': False}, 'delivery_verification_supported': {'const': False}}, 'additionalProperties': False}, 'summary': {'type': 'object', 'required': ['outcome', 'invoice_line_count', 'purchase_order_line_count', 'matched_invoice_line_count', 'unmatched_invoice_line_count', 'discrepancy_count', 'unknown_check_count', 'human_review_required', 'delivery_verified', 'payment_approved'], 'properties': {'outcome': {'enum': ['no_discrepancies', 'review_required']}, 'payment_approved': {'const': False}, 'delivery_verified': {'const': False}, 'discrepancy_count': {'type': 'integer', 'maximum': 1000, 'minimum': 0}, 'invoice_line_count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'unknown_check_count': {'type': 'integer', 'maximum': 1000, 'minimum': 0}, 'human_review_required': {'const': True}, 'purchase_order_line_count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'matched_invoice_line_count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'unmatched_invoice_line_count': {'type': 'integer', 'maximum': 100, 'minimum': 0}}, 'additionalProperties': False}, 'arithmetic': {'type': 'object', 'required': ['rounding_mode', 'rounding_scope', 'invoice_currency_scale', 'purchase_order_currency_scale', 'invoice_line_amount_sum', 'invoice_supplied_line_amount_sum', 'invoice_subtotal', 'invoice_tax', 'invoice_total', 'computed_invoice_total', 'invoice_subtotal_status', 'invoice_total_status'], 'properties': {'invoice_tax': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'invoice_total': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'rounding_mode': {'const': 'ROUND_HALF_UP'}, 'rounding_scope': {'const': 'each_line_then_sum'}, 'invoice_subtotal': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'invoice_total_status': {'enum': ['consistent', 'mismatch', 'unavailable']}, 'computed_invoice_total': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'invoice_currency_scale': {'enum': [0, 2]}, 'invoice_line_amount_sum': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, 'invoice_subtotal_status': {'enum': ['consistent', 'mismatch', 'unavailable']}, 'purchase_order_currency_scale': {'enum': [0, 2]}, 'invoice_supplied_line_amount_sum': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}}, 'additionalProperties': False}, 'discrepancies': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'severity', 'message', 'sources'], 'properties': {'code': {'enum': ['currency_mismatch', 'supplier_mismatch', 'purchase_order_reference_mismatch', 'invoice_line_amount_unavailable', 'purchase_order_line_amount_unavailable', 'invoice_line_arithmetic_mismatch', 'purchase_order_line_arithmetic_mismatch', 'referenced_purchase_order_line_missing', 'ambiguous_product_code', 'unmatchable_invoice_line', 'unit_mismatch', 'product_code_mismatch', 'unit_price_mismatch', 'quantity_exceeds_purchase_order', 'invoice_subtotal_unavailable', 'invoice_tax_unavailable', 'invoice_total_unavailable', 'invoice_subtotal_mismatch', 'invoice_supplied_line_sum_mismatch', 'invoice_total_mismatch'], 'type': 'string'}, 'message': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'sources': {'type': 'array', 'items': {'type': 'string', 'pattern': '^/(?:invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100, 'minLength': 1}, 'maxItems': 101, 'minItems': 1}, 'severity': {'enum': ['error', 'warning']}}, 'additionalProperties': False}, 'maxItems': 1000, 'minItems': 0}, 'comparison_rows': {'type': 'array', 'items': {'type': 'object', 'required': ['invoice_line_id', 'invoice_source', 'purchase_order_line_id', 'purchase_order_source', 'match_method', 'allocation_status', 'invoice_quantity', 'purchase_order_quantity', 'invoice_unit', 'purchase_order_unit', 'invoice_unit_price', 'purchase_order_unit_price', 'invoice_currency', 'purchase_order_currency', 'unit_price_difference', 'invoice_amount', 'computed_invoice_amount', 'line_arithmetic_status', 'discrepancy_codes', 'outcome'], 'properties': {'outcome': {'enum': ['no_discrepancies', 'review_required']}, 'invoice_unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'match_method': {'enum': ['unmatched', 'explicit_po_line_id', 'exact_product_code']}, 'invoice_amount': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'invoice_source': {'type': 'string', 'pattern': '^/(?:invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100, 'minLength': 1}, 'invoice_line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'invoice_currency': {'enum': ['USD', 'EUR', 'GBP', 'CAD', 'AUD', 'MXN', 'JPY']}, 'invoice_quantity': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, 'allocation_status': {'enum': ['allocated', 'not_comparable', 'unmatched']}, 'discrepancy_codes': {'type': 'array', 'items': {'enum': ['currency_mismatch', 'supplier_mismatch', 'purchase_order_reference_mismatch', 'invoice_line_amount_unavailable', 'purchase_order_line_amount_unavailable', 'invoice_line_arithmetic_mismatch', 'purchase_order_line_arithmetic_mismatch', 'referenced_purchase_order_line_missing', 'ambiguous_product_code', 'unmatchable_invoice_line', 'unit_mismatch', 'product_code_mismatch', 'unit_price_mismatch', 'quantity_exceeds_purchase_order', 'invoice_subtotal_unavailable', 'invoice_tax_unavailable', 'invoice_total_unavailable', 'invoice_subtotal_mismatch', 'invoice_supplied_line_sum_mismatch', 'invoice_total_mismatch'], 'type': 'string'}, 'maxItems': 20, 'minItems': 0, 'uniqueItems': True}, 'invoice_unit_price': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, 'purchase_order_unit': {'anyOf': [{'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, {'type': 'null'}]}, 'purchase_order_source': {'anyOf': [{'type': 'string', 'pattern': '^/(?:invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100, 'minLength': 1}, {'type': 'null'}]}, 'unit_price_difference': {'anyOf': [{'type': 'string', 'pattern': '^-?(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 42}, {'type': 'null'}]}, 'line_arithmetic_status': {'enum': ['consistent', 'mismatch', 'unavailable']}, 'purchase_order_line_id': {'anyOf': [{'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, {'type': 'null'}]}, 'computed_invoice_amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, 'purchase_order_currency': {'enum': ['USD', 'EUR', 'GBP', 'CAD', 'AUD', 'MXN', 'JPY']}, 'purchase_order_quantity': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'purchase_order_unit_price': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'document_checks': {'type': 'object', 'required': ['currency_matches', 'supplier_matches', 'purchase_order_reference_matches'], 'properties': {'currency_matches': {'type': 'boolean'}, 'supplier_matches': {'type': 'boolean'}, 'purchase_order_reference_matches': {'type': 'boolean'}}, 'additionalProperties': False}, 'purchase_order_line_summary': {'type': 'array', 'items': {'type': 'object', 'required': ['purchase_order_line_id', 'purchase_order_source', 'allocated_invoice_sources', 'ordered_quantity', 'allocated_quantity', 'uninvoiced_quantity', 'overbilled_quantity', 'unit', 'status', 'supplied_amount', 'computed_amount', 'line_arithmetic_status'], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'status': {'enum': ['not_comparable', 'not_invoiced', 'overbilled', 'fully_invoiced', 'partially_invoiced']}, 'computed_amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, 'supplied_amount': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'ordered_quantity': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, 'allocated_quantity': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'overbilled_quantity': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'uninvoiced_quantity': {'anyOf': [{'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 42}, {'type': 'null'}]}, 'purchase_order_source': {'type': 'string', 'pattern': '^/(?:invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100, 'minLength': 1}, 'line_arithmetic_status': {'enum': ['consistent', 'mismatch', 'unavailable']}, 'purchase_order_line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'allocated_invoice_sources': {'type': 'array', 'items': {'type': 'string', 'pattern': '^/(?:invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100, 'minLength': 1}, 'maxItems': 100, 'minItems': 0}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}}, 'additionalProperties': False}, 'status': {'const': 'review_required'}, 'identities': {'type': 'object', 'required': ['analysis_result_identity'], 'properties': {'payment_identity': {'type': 'object', 'required': ['protocol', 'reference', 'replayed'], 'properties': {'protocol': {'const': 'x402-v2'}, 'replayed': {'type': 'boolean'}, 'reference': {'type': 'string', 'pattern': '^pay_[0-9a-f]{64}$'}}, 'additionalProperties': False}, 'analysis_result_identity': {'type': 'string', 'pattern': '^res_[0-9a-f]{64}$'}}, 'additionalProperties': False}, 'contract_version': {'const': 'ardaro.agent-invoice-matching.response.v1'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['contract_version', 'status', 'error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string', 'maxLength': 100}, 'message': {'type': 'string', 'maxLength': 300}}, 'additionalProperties': False}, 'status': {'const': 'error'}, 'contract_version': {'const': 'ardaro.agent-invoice-matching.response.v1'}}, 'additionalProperties': False}, {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract_version', 'status', 'error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'service_code', 'message', 'retryable', 'remediation'], 'properties': {'code': {'type': 'string', 'maxLength': 80}, 'message': {'type': 'string', 'maxLength': 280}, 'retryable': {'type': 'boolean'}, 'remediation': {'type': 'string', 'maxLength': 280}, 'service_code': {'enum': ['ARDARO_ARITHMETIC_MISMATCH', 'ARDARO_DOCUMENT_TOO_LARGE', 'ARDARO_DUPLICATE_SUSPECTED', 'ARDARO_EXTRACTION_LOW_CONFIDENCE', 'ARDARO_IDEMPOTENCY_CONFLICT', 'ARDARO_INPUT_UNSUPPORTED', 'ARDARO_PAYMENT_INVALID', 'ARDARO_PAYMENT_RECONCILIATION_REQUIRED', 'ARDARO_PAYMENT_REQUIRED', 'ARDARO_RATE_LIMITED', 'ARDARO_SERVICE_UNAVAILABLE']}}, 'additionalProperties': False}, 'status': {'const': 'error'}, 'contract_version': {'const': 'ardaro.agent-receipt-intelligence.response.v1'}}, 'additionalProperties': False}, {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract_version', 'status', 'service', 'error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'message': {'const': 'Service is not ready.'}}, 'additionalProperties': False}, 'status': {'const': 'not_ready'}, 'service': {'const': 'ardaro-receipt-intelligence'}, 'contract_version': {'const': 'ardaro.agent-receipt-intelligence.response.v1'}}, 'additionalProperties': False}, {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['accepts'], 'properties': {'error': {'type': ['string', 'null']}, 'accepts': {'type': 'array', 'items': {'type': 'object', 'required': ['scheme', 'network', 'asset', 'amount', 'payTo', 'maxTimeoutSeconds'], 'properties': {'asset': {'type': 'string'}, 'extra': {'type': 'object', 'additionalProperties': True}, 'payTo': {'type': 'string'}, 'amount': {'type': 'string'}, 'scheme': {'type': 'string'}, 'network': {'type': 'string'}, 'maxTimeoutSeconds': {'type': 'integer'}}}}, 'resource': {'oneOf': [{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string'}, 'tags': {'oneOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'iconUrl': {'type': ['string', 'null']}, 'mimeType': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'serviceName': {'type': ['string', 'null']}}}, {'type': 'null'}]}, 'extensions': {'oneOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}]}, 'x402Version': {'type': 'integer', 'const': 2, 'default': 2}}}, {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['error'], 'properties': {'error': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'status': {'const': 'error'}, 'message': {'type': 'string'}}, 'additionalProperties': False}]}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': [], 'properties': {'invoice': {'type': 'object', 'required': [], 'properties': {'tax': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'total': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'currency': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'subtotal': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': [], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'quantity': {'not': {'pattern': '\\n'}, 'type': 'string', 'allOf': [{'not': {'pattern': '^0(?:\\.0+)?$'}}], 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'po_line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'unit_price': {'not': {'pattern': '\\n'}, 'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'description': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'product_code': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100}, 'supplier_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'purchase_order_reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'description': 'Caller-supplied structured data. Use opaque supplier IDs and decimal strings; omit unknown fields. Receipt kind describes the source document, not verified delivery. Field names align with invoice matching; receipt extraction output must be mapped explicitly.', 'additionalProperties': False}, 'receipt': {'type': 'object', 'required': [], 'properties': {'tax': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'kind': {'enum': ['expense_receipt', 'delivery_receipt']}, 'total': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'currency': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'subtotal': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': [], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'quantity': {'not': {'pattern': '\\n'}, 'type': 'string', 'allOf': [{'not': {'pattern': '^0(?:\\.0+)?$'}}], 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'unit_price': {'not': {'pattern': '\\n'}, 'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'description': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'product_code': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'invoice_line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100}, 'supplier_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'invoice_reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'purchase_order_reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'description': 'Caller-supplied structured data. Use opaque supplier IDs and decimal strings; omit unknown fields. Receipt kind describes the source document, not verified delivery. Field names align with invoice matching; receipt extraction output must be mapped explicitly.', 'additionalProperties': False}, 'purchase_order': {'type': 'object', 'required': [], 'properties': {'tax': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'total': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'currency': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'subtotal': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'reference': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': [], 'properties': {'unit': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 32, 'minLength': 1}, 'amount': {'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,25})(?:\\.[0-9]{1,6})?$', 'maxLength': 33}, 'line_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}, 'quantity': {'not': {'pattern': '\\n'}, 'type': 'string', 'allOf': [{'not': {'pattern': '^0(?:\\.0+)?$'}}], 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'unit_price': {'not': {'pattern': '\\n'}, 'type': 'string', 'pattern': '^(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,6})?$', 'maxLength': 19}, 'description': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'product_code': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100}, 'supplier_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]*$', 'maxLength': 80, 'minLength': 1}}, 'description': 'Caller-supplied structured data. Use opaque supplier IDs and decimal strings; omit unknown fields. Receipt kind describes the source document, not verified delivery. Field names align with invoice matching; receipt extraction output must be mapped explicitly.', 'additionalProperties': False}}, 'description': "Free comparison of one receipt, invoice and purchase order supplied in this request. Missing documents or fields produce needs_review. Maximum 100 lines per document and 196608 UTF-8 JSON bytes. No images, URLs, credentials, account access, or paid tool calls. Money amounts must use the supported currency's minor-unit precision; runtime also rejects sensitive data, padded strings and control characters.", 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['contract_version', 'human_review_required', 'payment_approved', 'delivery_verified', 'financial_posting_performed', 'provenance', 'policy', 'status', 'result_identity', 'document_summary', 'comparisons', 'discrepancies'], 'properties': {'policy': {'const': {'model_calls': 0, 'matching_rule': 'explicit line reference, else unique exact case-sensitive product code, else unique NFKC/casefold/whitespace-normalized description when both product codes are absent; never fuzzy or semantic', 'receipt_scope': 'An expense receipt is not evidence of delivery. A delivery_receipt label is caller-supplied and does not authenticate delivery.', 'decision_scope': 'No discrepancies means the supported checks found none in supplied data. It is not payment authorization, accounting approval or supplier verification.', 'quantity_scope': 'Differences concern only these three supplied documents. Partial receipts, partial invoicing, prior invoices, returns and delivery events are not inferred.', 'paid_tool_calls': 0, 'retention_scope': "This function retains no documents or results; caller and transport retention are outside this function's guarantees.", 'arithmetic_scope': 'Exact decimal comparisons with per-line ROUND_HALF_UP at supported currency precision. No tax applicability, discounts, freight or currency conversion is inferred.', 'payment_required': False, 'document_storage_performed': False}}, 'status': {'enum': ['no_discrepancies', 'needs_review']}, 'provenance': {'const': {'source': 'caller_supplied_documents_only', 'source_pointer_root': 'original_arguments', 'external_data_fetched': False, 'document_authenticity_verified': False}}, 'comparisons': {'type': 'array', 'items': {'type': 'object', 'required': ['pair', 'status', 'document_identity_comparable', 'rows'], 'properties': {'pair': {'enum': ['receipt_to_invoice', 'invoice_to_purchase_order']}, 'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'target', 'candidate_targets', 'match_method', 'comparison_performed', 'status', 'quantity_difference', 'unit_price_difference', 'amount_difference'], 'properties': {'source': {'type': 'string', 'pattern': '^/(?:receipt|invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100}, 'status': {'enum': ['no_discrepancies', 'needs_review']}, 'target': {'anyOf': [{'type': 'string', 'pattern': '^/(?:receipt|invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100}, {'type': 'null'}]}, 'match_method': {'enum': ['unmatched', 'explicit_line_reference', 'exact_product_code', 'normalized_description']}, 'amount_difference': {'type': ['string', 'null'], 'pattern': '^-?(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 50}, 'candidate_targets': {'type': 'array', 'items': {'type': 'string', 'pattern': '^/(?:receipt|invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100}, 'maxItems': 100}, 'quantity_difference': {'type': ['string', 'null'], 'pattern': '^-?(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 50}, 'comparison_performed': {'type': 'boolean'}, 'unit_price_difference': {'type': ['string', 'null'], 'pattern': '^-?(?:0|[1-9][0-9]{0,27})(?:\\.[0-9]{1,12})?$', 'maxLength': 50}}, 'additionalProperties': False}, 'maxItems': 100}, 'status': {'enum': ['no_discrepancies', 'needs_review']}, 'document_identity_comparable': {'type': 'boolean'}}, 'additionalProperties': False}, 'maxItems': 2, 'minItems': 2}, 'discrepancies': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'scope', 'severity', 'sources'], 'properties': {'code': {'type': 'string', 'pattern': '^[a-z_]+$', 'maxLength': 80}, 'scope': {'enum': ['receipt', 'invoice', 'purchase_order', 'receipt_to_invoice', 'invoice_to_purchase_order']}, 'sources': {'type': 'array', 'items': {'type': 'string', 'pattern': '^/(?:receipt|invoice|purchase_order)(?:/[A-Za-z0-9_]+)*$', 'maxLength': 100}, 'maxItems': 101}, 'severity': {'enum': ['unknown', 'discrepancy']}}, 'additionalProperties': False}, 'maxItems': 6000}, 'result_identity': {'type': 'string', 'pattern': '^res_[0-9a-f]{64}$'}, 'contract_version': {'const': 'ardaro.purchase-document-reconciliation.response.v1'}, 'document_summary': {'type': 'array', 'items': {'type': 'object', 'required': ['document', 'present', 'line_count', 'currency_supported', 'currency_minor_units'], 'properties': {'present': {'type': 'boolean'}, 'document': {'enum': ['receipt', 'invoice', 'purchase_order']}, 'line_count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'currency_supported': {'type': 'boolean'}, 'currency_minor_units': {'enum': [0, 2, None]}}, 'additionalProperties': False}, 'maxItems': 3, 'minItems': 3}, 'payment_approved': {'const': False}, 'delivery_verified': {'const': False}, 'human_review_required': {'const': True}, 'financial_posting_performed': {'const': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['contract_version', 'status', 'error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string', 'maxLength': 80}, 'message': {'type': 'string', 'maxLength': 300}}, 'additionalProperties': False}, 'status': {'const': 'error'}, 'contract_version': {'const': 'ardaro.purchase-document-reconciliation.response.v1'}}, 'additionalProperties': False}], '$schema': 'https://json-schema.org/draft/2020-12/schema'}
Letzte Tool-Änderungen
Ähnliche MCP-Server
Lovie Company Formation
Supports company formation and business administration with bank accounts, cards, invoicing, bookkeeping, accounting periods, and…
Stratalize Finance
Provides financial, macroeconomic, banking, credit, commodities, M&A, ESG, labor, and regulatory benchmarks for analysis and plan…
Red by Big Red Cloud
Connects to Big Red Cloud accounting for customers, suppliers, products, invoices, purchases, payments, receipts, journals, quote…
GestãoClick
Connects to the GestãoClick ERP to manage customers, suppliers, products, sales, service orders, budgets, and financial records.
Superlógica Condomínios
Connects to a condominium ERP for billing, collections, agreements, expenses, bank movements, statements, files, communications, …
FalaZuki Finance BR
Provides Brazil-focused financial calculations and rules for investments, credit, taxes, payroll, labor costs, debt, budgeting, a…
XBOSS
Accesses Korean tax, social insurance, payroll, cash receipt, e-tax invoice, and certificate filing services.
Sirenic
Provides European company registry, financial, procurement, sanctions, regulatory, insolvency, ownership, and ongoing due-diligen…