Personal data¶
Gerege never introduces a person to your system by name. You know a person only by a pseudonymous id, and (in a mini app) only what the person agreed to share.
1. How you know a person¶
Mini app (app) |
Merchant (qr, redirect, terminal) |
|
|---|---|---|
| Id | sub = user_ref = u_ + 32 hex |
user_ref = u_ + 32 hex |
| How it is made | HMAC(the app's salt, the person's id) — stable for your app, unlinkable across apps (pairwise) | New and random for every payment — on every claim (new again if a claim lapses and someone else takes it) |
| When | from launch (the token's user) |
null until claimed, then in the intent and the webhooks |
| Why | the person opened your app and consented | the person gave you no consent: a machine that could link one buyer's purchases would be tracking a person it was never introduced to |
A merchant that needs to recognise returning customers (membership, points) does it with its own sign-in and the
person's own consent — not with Gerege's user_ref.
2. What never arrives¶
- The person's name, national id number, date of birth, age (only the decision of
min_ageis enforced —403 age_restricted). - Accounts, account numbers, balances, banks.
- A phone number — to a mini app with the
profile.phonescope only, when the person agreed and verified it by SMS (E.164). Never to a merchant. - An e-mail — to a mini app with the
profile.emailscope only, when the person agreed. Never to a merchant. - The platform's internal user id.
- In the public
/payviews: the description, reference, metadata, who claimed — nothing (onlyclaimed: true|false).
A name (given_name) is «удахгүй»; when it comes, it comes with the person's consent only.
3. What the person sees¶
| Field | On the payment sheet | In notifications | In the public /pay |
|---|---|---|---|
| The app's name and icon (registry, review) | ✓ | ✓ | ✓ |
The terminal's label, location; the sub-merchant's display_name |
✓ (before Face ID) | — | terminal ✓ |
| Amount | ✓ | ✓ | ✓ |
description (yours, 1–80) |
✓ | never | — |
reference, metadata |
— | — | — |
description is a short order label («Order #1001»), not a product category: no tobacco or alcohol names. App-
written text under the platform's title would be a phishing channel — so notifications carry only the amount and the
app's approved name.
4. Your duties¶
- Keep
user_ref, intents and webhook data under your own privacy policy (privacy_urlis required at registration and must answer 200). - What the person gives you themselves (a delivery address, a phone) is yours to answer for; say in your policy whether you store it beside Gerege's id.
- When a person disconnects your mini app (
consent.revoked), close thatuser_ref's session. - Age-restricted goods: the intent's
min_age(13–21) — Gerege checks the age and decides; neither the age nor the national id reaches you. Your own check at the machine (an eID QR, say) stays your responsibility.