Consent receipt
MerchantPay
Issued 30/10/2026, 6:14:30 am
Language
What was decided
| Purpose | Decision | Decided |
|---|---|---|
Loan underwriting LOAN_UNDERWRITING | granted | 30/10/2026, 6:14:30 am |
Identity verification (KYC) KYC | granted | 30/10/2026, 6:14:30 am |
Offers and product updates MARKETING | denied | 30/10/2026, 6:14:30 am |
Evidence
- Receipt
- rcp_01a18b720ecd7977b8a0
- Principal reference
- prn_01a18b71310274e7a37e
- Identity assurance at grant
- L1
- Notice version
- v1 (en)
- Notice UUID
- nvu_demo0000000000000001
- Notice content hash
- f7a0e6ae29cea089b4b025d20c611604bd2c4be001dfb1f23ff4c95bb05582c3
- Ledger sequence
- 3
- Ledger hash
- bda6e3fd7f6947219f57d28ec2cd6f23cd6a1a1b30dc19be6693b00efb7923e2
- Signing key
- demo-2026-10
- Payload hash
- e5a534f9fe89ec7c923b701e4a5995a447d84fa388680ddde66f67d975885ae2
Verify this yourself
This receipt is verifiable with no network and no access to ConsentHub. Save the JSON below and download our public key:
consenthub-verify --receipt receipt.json --pubkey consenthub-public.pem # → receipt rcp_01a18b720ecd7977b8a0 — VERIFIED # payload hash : matches # signature : valid
The payload hash is SHA-256 over the RFC 8785 canonical form of the receipt, and the signature is a detached JWS (ES256). A single altered character breaks both.
Receipt JSON
{
"payload": {
"ledger": {
"seq": 3,
"hash": "bda6e3fd7f6947219f57d28ec2cd6f23cd6a1a1b30dc19be6693b00efb7923e2",
"prevHash": "a85738806a4aac8852ae93742c60895fccb13a9bf07ce48542dd0005e2fba067"
},
"notice": {
"uuid": "nvu_demo0000000000000001",
"version": 1,
"language": "en",
"contentHash": "f7a0e6ae29cea089b4b025d20c611604bd2c4be001dfb1f23ff4c95bb05582c3"
},
"schema": "consenthub.receipt/1",
"consents": [
{
"status": "granted",
"consentId": "cns_01a18b720eaa7c61b294",
"decidedAt": "2026-10-30T06:14:30.314Z",
"purposeCode": "LOAN_UNDERWRITING",
"purposeName": "Loan underwriting"
},
{
"status": "granted",
"consentId": "cns_01a18b720ebe7543877b",
"decidedAt": "2026-10-30T06:14:30.334Z",
"purposeCode": "KYC",
"purposeName": "Identity verification (KYC)"
},
{
"status": "denied",
"consentId": "cns_01a18b720ec67cbab81d",
"decidedAt": "2026-10-30T06:14:30.342Z",
"purposeCode": "MARKETING",
"purposeName": "Offers and product updates"
}
],
"issuedAt": "2026-10-30T06:14:30.349Z",
"fiduciary": {
"id": "ten_01a18b52d9ad7f788bf1",
"name": "MerchantPay"
},
"principal": {
"ref": "prn_01a18b71310274e7a37e",
"assuranceLevel": "L1"
},
"receiptId": "rcp_01a18b720ecd7977b8a0"
},
"payloadHash": "e5a534f9fe89ec7c923b701e4a5995a447d84fa388680ddde66f67d975885ae2",
"signature": "eyJhbGciOiJFUzI1NiIsImtpZCI6ImRlbW8tMjAyNi0xMCIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..XhSVzGJLUlJQENYEmj4eWc-avjfRRpf6DwwoOOBDbzkmZPiFm7N5hnH50ij7p78Z_kIqBhfs1DitFZmwt0mWmA",
"kid": "demo-2026-10"
}