Verify Protocol Receipt
paybond_verify_protocol_receipt_v1Verify signed protocol-v2 authorization or settlement receipt offline using Ed25519. Validates structure, message digest, and signature to confirm authenticity.
Instructions
Use this when you already have a signed protocol-v2 authorization or settlement receipt JSON object and need offline Ed25519 verification (structure, message digest, and signature) through the gateway. Do not use this to verify AgentMandateV1 envelopes—call paybond_verify_agent_mandate_v1—or to check a Harbor capability token before spend—call paybond_verify_capability or paybond_authorize_agent_spend. To load a settlement receipt by intent UUID first, call paybond_get_settlement_receipt_v1 then pass its body here. Read-only and side-effect free: success returns valid=true with kind, receipt_id, tenant_id, and the normalized receipt; unsupported kind, malformed JSON, digest mismatch, or bad signature fail with a gateway error (typically HTTP 400).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| receipt | Yes | Complete signed protocol receipt object posted as the verify request body (not a receipt_id string). Discriminate on kind: paybond.protocol_authorization_receipt_v1 requires schema_version=1, receipt_version="1", receipt_id, issued_at, status (authorized), intent_id, tenant_id, verifier_id, transport_binding, mandate_digest_sha256_hex, imported_mandate_signing_public_key_ed25519_hex, authorization, agent, allowed_actions, allowed_tools, spend_ceiling, settlement, constraint, expires_at, nonce, human_presence_mode, plus signing_algorithm=ed25519-sha256-json-v1, message_digest_sha256_hex, signing_public_key_ed25519_hex, and ed25519_signature_hex. paybond.protocol_settlement_receipt_v1 requires schema_version=1, receipt_version="1", receipt_id, issued_at, intent_id, tenant_id, verifier_id, transport_binding, authorization_receipt_id, mandate_digest_sha256_hex, harbor_state, settlement_rail, settlement_mode, principal_did, payee_did, currency, amount_cents, terminal_observed_at, optional predicate_passed, and the same Ed25519 signing fields. Obtain receipts from mandate import, paybond_get_settlement_receipt_v1, audit export, or partner handoff—do not invent digests or signatures. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Verified receipt kind echoed from the normalized receipt. One of paybond.protocol_authorization_receipt_v1 or paybond.protocol_settlement_receipt_v1. | |
| valid | No | True when the gateway accepted the receipt structure and Ed25519 signature. Example: true. | |
| receipt | No | Normalized verified receipt object matching the input kind (authorization or settlement fields plus signing material). | |
| tenant_id | No | Tenant id embedded in the verified receipt (not invented by the caller). | |
| receipt_id | No | Canonical receipt identifier from the verified receipt. |