payment_receipt
Signed receipt for one verdict-governed payment: endpoint, network, asset, max amount, payer, facilitator verdict, settlement id, denial reason, and retry state. retry_state is read from the token's authorizationState, so retrying with the same nonce cannot double-pay. Pass the signed review event and the payment args it bound; optional tx_hash. Refuses unsigned when the verdict does not verify or does not bind those args. The receipt itself checks with verify_proof. Free, no sign-in. Does not move funds. Docs: https://github.com/babyblueviper1/invinoveritas/tree/main/examples/qbtlabs-x402-verdict-gate#payment-receipt-safe-to-retry
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| args | Yes | The payment args that verdict bound. Their hash must match the verdict's action_binding_args_hash. | |
| event | Yes | The signed /review verdict (Nostr event) that governed the payment. | |
| tx_hash | No | Optional 0x + 64 hex settlement transaction. settlement_id is set only when this tx is the payment the verdict bound. | |
| terms_hash | No | Optional sha256 (64 hex, optionally sha256:) of the terms the payment was for. A terms hash bound in the verdict's args takes precedence; a supplied one is labelled not bound. | |
| output_hash | No | Optional sha256 of the delivered result. With it, a settled payment reads paid_output_recorded; without it, paid_no_output_recorded (a possible ghost result: do not pay again for the same job). | |
| resource_url | No | Optional https URL of the resource the payment was for, when the verdict bound no endpoint. | |
| authorization_signature | No | Optional: the payer's 65-byte EIP-3009 signature (hex). The receipt verifies it recovers to the payer over the bound amount, payee, validity window and the verdict's nonce, under the token's on-chain EIP-712 domain. | |
| max_verdict_age_seconds | No | Optional max age of the verdict in seconds (1..86400). Default 120. |