QuaiAxe docs

Guides

HPAY: PDF receipts and your account type

This guide shows you how to download a PDF receipt for a payment HPAY has confirmed, and how to tell people who pay you whether your wallet is a business or a personal account.

Who it's for: a shop or a person who wants a receipt to keep or send, and anyone who wants payers to see what kind of account they are paying. Both are Beta.

What you'll need

  • For a receipt: a payment that the Quai node has confirmed with enough confirmations (12 unless you changed the setting on the page). Nothing else. You do not need a wallet to download one.
  • For the account type: a Pelagus or Blip wallet set to Quai Mainnet. Choosing is one free signature. No transaction is sent and no gas is spent.

Download a PDF receipt

  1. Open the receipt page for the payment (hartiibiome.com/hpay/receipt), or a row in the inbox or the Statement.
  2. When the payment is confirmed, press Download receipt (PDF) on the receipt page, or PDF on the row of the inbox or the Statement.
  3. The file is made in your browser and saved to your device. Nothing is uploaded and Hartii stores nothing.

The Statement also has Statement PDF: the payments to an address that the node has confirmed, oldest first, with a total. It lists up to 1,000 payments; choose a shorter period for more.

A payment that is pending, still confirming, failed, not found or not a payment gets no PDF button. The page shows its normal state instead, so a receipt never says more than the chain does.

What the PDF says

It holds only what the chain confirms: the transaction hash, the block and its time, who paid, who was paid, the amount in QUAI, the kind of transfer, the number of confirmations and a link to the transaction on Quaiscan. If you opened the receipt from a payment link, the link's reference and note appear in their own section, marked not checked on the chain. Inbox and Statement rows also show an approximate dollar value when there is an hourly price for that hour, labelled with its source. Every page carries the same footer: Record of an on-chain Quai transaction. Not an invoice, tax document or proof of identity.

What it leaves out on purpose: the payee's business name and account type. Those are profile data the wallet owner can change, so they are never written into a file people keep. The receipt page may show them as Current profile, read when you open it.

Say whether you are a business or a personal account

  1. Open hartiibiome.com/profile and press Connect wallet.
  2. A card asks Is this a business or personal account? Neither answer is pre-selected. Choose one. A business may add a public name of 2 to 48 characters.
  3. Press Save with one signature and approve the message in your wallet. The message names the site, the chain, your wallet, your choice, the name and the version of the data it was made against.
  4. The profile page shows your choice as a badge. Decide later hides the card for this visit; nothing in HPAY waits for it.

A wallet that has not chosen reads Not selected. Nobody is made a personal account for them.

You can change your choice once every 7 days. If it was changed somewhere else since you opened the page, the page tells you and shows the current choice instead of overwriting it.

What people see

  • On the HPAY receipt page of a confirmed payment, under the headline: Current profile: Business: Acme Coffee, Current profile: Personal or Current profile: Not selected.
  • On your profile page, as a badge.
  • Never in a PDF.

The business name is set by the wallet owner and not verified by Hartii. Anyone can type any name, so treat it as a label, not proof of who is behind a wallet. Names that pass for Hartii, Quai or their products, or for roles like "support" or "official", are refused. The Hartii admin wallet has no public name at all.

It costs nothing

The signature only proves the wallet is yours. It cannot move your QUAI or your tokens, works once, for one action, for five minutes, and no transaction is made.

If something goes wrong

What you seeWhat to do
No PDF buttonThe payment is not confirmed yet (it needs the confirmations the page asks for, 12 by default) or is not a payment. Open the receipt again later.
You declined the signatureNothing was saved. Press Save with one signature again.
"You can change your account type again on ..."The 7-day wait has not passed. Nothing changed.
"Your account type changed since you opened this page"Another tab or device changed it. The page now shows the current choice. Choose again if you still want to change it.
"That name is reserved"Pick a different business name.
"Account type storage is unavailable"Try again later. Nothing changed, and HPAY keeps working.

For developers

The service lives on hartiigames.com under /api/account-type. Reading is public. Writing needs a wallet signature.

Method and pathAuthReturns
GET /api/account-type/nonce?wallet=<address>none{ nonce, expiresAt }, valid for 5 minutes, single use
POST /api/account-type/setwallet signature{ ok, wallet, type, businessName, revision, setAt, changeableAt }
GET /api/account-type/<wallet>none{ wallet, type, businessName, revision, setAt, changeableAt }, or { wallet, type: null, revision: 0 } when nothing was chosen

type is "business" or "user". Wallets must be Cyprus-1 Quai-ledger addresses. revision is 0 when there is no choice, 1 for the first choice and goes up by one at each change. To set a choice: ask for a nonce, sign the message below with personal_sign (EIP-191, hex-encoded UTF-8), then POST JSON { "wallet", "type", "businessName"?, "revision", "nonce", "signature" }. revision is the value the GET returned (0 if none) and is part of the signed text. The server rebuilds the message itself, spends the nonce and writes the choice in one database transaction, and refuses a signature made against an older revision with 409 revision_conflict.

text
Hartii account type
Version: 2
Site: hartiigames.com
Chain: Quai Cyprus-1 (chain 9)
Action: set
Wallet: <wallet, lowercase>
Type: <business | user>
Business name: <the cleaned name, or none>
Expected revision: <revision, 0 if none>
Nonce: <nonce>
Expires: <expiresAt, as returned>

Signing proves you own this wallet. It does not send a transaction or cost gas.

Lines end with LF and there is no trailing newline. Errors are { "error", "code" }: 400 (bad_wallet, bad_type, bad_revision, bad_business_name, name_reserved, name_not_public), 401 (bad_nonce, bad_signature), 403 (origin_not_allowed), 409 (revision_conflict), 429 (rate_limited, cooldown with retryAt) and 503 (storage_unavailable: a failed read is never reported as "no choice"). Browser calls are allowed from hartiigames.com, hartiibiome.com and hartiilabs.com.

If your own code asks the wallet to sign, ask once. Fall back to another signing method only when the wallet answered that the method is not supported; a decline, a locked wallet or any other failure ends the attempt.

Quai Network mainnet · chain 9 · Cyprus-1. Figures marked "read on" a date were read from the chain that day; re-read before relying on them.