Consent receipt

MerchantPay

Issued 30/10/2026, 6:14:30 am

Signature verified
Language

What was decided

PurposeDecisionDecided
Loan underwriting
LOAN_UNDERWRITING
granted30/10/2026, 6:14:30 am
Identity verification (KYC)
KYC
granted30/10/2026, 6:14:30 am
Offers and product updates
MARKETING
denied30/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"
}