UK Invoice & Payee Verification
RunOnProof answers this one bounded UK business question and returns the evidence, limits and next machine action with the answer. A successful HTTP response is not automatically permission to proceed.
gb.solution.invoice_payee_verification.v1 · POST /v1/gb/solutions/invoice-payee-verification · 0.09 USDC per settled delivery
Problem it solves
Verify UK invoice-company consistency and a time-bound payee-binding control in one call before payment. Use when the invoice and payee are already known. It does not prove invoice authenticity or bank-account ownership.
When to use
- verify invoice and payee in the UK
- preflight a UK supplier payment
When not to use
- invoice authenticity guarantees
- bank-account ownership proof
Coverage and limitations
LIMITED. UK_COMPANIES_HOUSE, INDEPENDENT_PAYEE_BINDING_EVIDENCE, CALLER_INVOICE_FIELDS within Companies House registered UK entities and the exact declared caller-evidence boundary.
- Verify UK invoice-company consistency and a time-bound payee-binding control in one call before payment. Use when the invoice and payee are already known. It does not prove invoice authenticity or bank-account ownership.
- No omitted source, field or population may be inferred.
- An HTTP 200 response may still require review, retry or stop.
Freshness. Read valid_as_of, valid_until, each evidence timestamp and source_health on every response. Expired or stale mandatory evidence cannot support continuation.
Source provenance
Sources: UK_COMPANIES_HOUSE INDEPENDENT_PAYEE_BINDING_EVIDENCE CALLER_INVOICE_FIELDS
Every source observation carries its source ID and URL, source version/timestamp, retrieval time, parser version, raw SHA-256 digest, freshness and scoped claims. Caller/provider evidence remains labelled as an attestation.
Failure and attention states
A required source that is unavailable, stale, disabled or schema-broken produces RETRY or NO_DECISION with HOLD and no settled delivery. Partial or ambiguous evidence produces REVIEW/HOLD. It never becomes a clean finding.
Decisions or lifecycle states: APPROVE CONDITIONAL REVIEW BLOCK RETRY NO_DECISION
Representative reason codes: CURRENT_EVIDENCE_WITHIN_DECLARED_COVERAGE LIMITED_COVERAGE SOURCE_UNAVAILABLE SOURCE_STALE SOURCE_SCHEMA_BREAK EVIDENCE_INSUFFICIENT
A person must review REVIEW, HOLD, RETRY, NO_DECISION, LIMITED/conditional results, every HTTP 402 quote before payment, and any consequential action required by the caller's policy. BLOCK/DENY means stop.
x402 and price
The live economic path is allowlisted at 0.09 USDC on Base. A request without Payment-Signature receives HTTP 402 with a body-bound quote. Do not sign or retry automatically; invalid input, source failure and undelivered decisions are not charged.
Input fields
invoice payee idempotency_key
Complete request example
{
"invoice": {
"company_number": "00006400",
"invoice_company_name": "THE GIRLS' DAY SCHOOL TRUST"
},
"payee": {
"company_number": "00006400",
"payee_fingerprint": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"binding_evidence": {
"type": "CUSTOMER_CONFIRMATION",
"verified_at": "2026-08-11T12:00:00Z",
"valid_until": "2030-08-11T12:00:00Z",
"reference": "buyer-held-control-example"
}
},
"idempotency_key": "bazaar_gb_solution_invoice_payee_verification_v1"
}
Complete response example
Live evidence, health, coverage, decision, reason codes, validity and payment state prevail.
{
"schema_version": "1.0.0",
"product_or_solution": "gb.solution.invoice_payee_verification.v1",
"request_id": "gbreq_documentation_example",
"execution_id": "gbexec_documentationexample",
"delivery_id": "gbdel_documentationexample",
"replayed": false,
"decision": "CONDITIONAL",
"authorization": "ALLOW_WITH_CONDITIONS",
"machine_action": "CONTINUE_WITH_DECLARED_CONDITIONS",
"policy": {
"id": "GB_INVOICE_PAYEE_V1",
"version": "1.0.0",
"checksum": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"reason_codes": [
"LIMITED_COVERAGE",
"HUMAN_CONTROL_BOUND"
],
"conditions": [
"USE_ONLY_WITHIN_DECLARED_COVERAGE"
],
"required_information": [],
"coverage": {
"country": "GB",
"jurisdiction": "UNITED_KINGDOM",
"population": "COMPANIES_HOUSE_REGISTERED_ENTITIES",
"supported": true,
"limitations": [
"Source-scoped UK evidence only"
]
},
"source_health": {
"UK_COMPANIES_HOUSE": "HEALTHY",
"INDEPENDENT_PAYEE_BINDING_EVIDENCE": "HEALTHY",
"CALLER_INVOICE_FIELDS": "HEALTHY"
},
"evidence": [
{
"evidence_id": "ev_docs_1",
"source_id": "UK_COMPANIES_HOUSE",
"source_url": "https://find-and-update.company-information.service.gov.uk/",
"source_version": "documentation-example-1.0.0",
"source_timestamp": "2030-01-02T11:55:00.000Z",
"retrieved_at": "2030-01-02T12:00:00.000Z",
"parser_version": "documented-contract-1.0.0",
"raw_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"freshness": "FRESH",
"claims": [
"Illustrative source-scoped claim; inspect the live response"
]
},
{
"evidence_id": "ev_docs_2",
"source_id": "INDEPENDENT_PAYEE_BINDING_EVIDENCE",
"source_url": "urn:runonproof:evidence:caller-payee-binding",
"source_version": "documentation-example-1.0.0",
"source_timestamp": "2030-01-02T11:55:00.000Z",
"retrieved_at": "2030-01-02T12:00:00.000Z",
"parser_version": "documented-contract-1.0.0",
"raw_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"freshness": "FRESH",
"claims": [
"Illustrative source-scoped claim; inspect the live response"
]
},
{
"evidence_id": "ev_docs_3",
"source_id": "CALLER_INVOICE_FIELDS",
"source_url": "urn:runonproof:evidence:caller-invoice-fields",
"source_version": "documentation-example-1.0.0",
"source_timestamp": "2030-01-02T11:55:00.000Z",
"retrieved_at": "2030-01-02T12:00:00.000Z",
"parser_version": "documented-contract-1.0.0",
"raw_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"freshness": "FRESH",
"claims": [
"Illustrative source-scoped claim; inspect the live response"
]
}
],
"valid_as_of": "2030-01-02T12:00:00.000Z",
"valid_until": "2030-01-02T13:00:00.000Z",
"limitations": [
"This example is illustrative; live evidence, coverage, health and reason codes prevail.",
"Does not provide invoice authenticity guarantees.",
"Does not provide bank-account ownership proof."
],
"economic_activity": {
"charged": true,
"quote_created": true,
"settlement_created": true
},
"payment": {
"protocol": "x402",
"payment_status": "SETTLED",
"charged_price_usd": 0.09,
"network": "eip155:8453",
"asset": "USDC",
"persistence_status": "PERSISTED"
},
"result": {
"components": [
{
"id": "gb.invoice.company.match.v1",
"decision": "CONDITIONAL",
"authorization": "ALLOW_WITH_CONDITIONS"
},
{
"id": "gb.business_payee.match.v1",
"decision": "CONDITIONAL",
"authorization": "ALLOW_WITH_CONDITIONS"
}
]
}
}
Idempotency, replay and security
Idempotency. Use one stable body idempotency_key and the identical Idempotency-Key header. Reusing the key with a different payload or digest returns 409 and never creates a second charge.
Replay. GET /v1/gb/executions/{executionId} returns the persisted semantic delivery with zero live source calls, signing, settlement or additional charge.
Security and privacy. Send opaque payee fingerprints and non-secret evidence references only. Never send raw bank details, wallet keys, payment secrets or credentials. Evidence and responses retain only the minimum source-scoped material required for audit.
Relationship to the UK V1 core
- Composes gb.invoice.company.match.v1, gb.business_payee.match.v1.
- A committed result may contribute scoped claims to company.capability.passport.v1.
Copyable quickstart
curl -i -sS -X POST https://api.runonproof.com/v1/gb/solutions/invoice-payee-verification \
+ -H 'Content-Type: application/json' \
+ -H 'Idempotency-Key: bazaar_gb_solution_invoice_payee_verification_v1' \
+ -H 'X-CDO-Request-Body-Digest: sha256:7c083f445845317a829d7a821c2d3346eed32ab5bf3b41b65e32a6f56e1d6d0c' \
+ --data '{"invoice":{"company_number":"00006400","invoice_company_name":"THE GIRLS' DAY SCHOOL TRUST"},"payee":{"company_number":"00006400","payee_fingerprint":"sha256:1111111111111111111111111111111111111111111111111111111111111111","binding_evidence":{"type":"CUSTOMER_CONFIRMATION","verified_at":"2026-08-11T12:00:00Z","valid_until":"2030-08-11T12:00:00Z","reference":"buyer-held-control-example"}},"idempotency_key":"bazaar_gb_solution_invoice_payee_verification_v1"}'OpenAPI reference → · UK country pack → · UK manifest → · Company Capability Passport →