Skip to content

QR

ZATCA QR payload generation and accessors.

Access QR

QR payload

Read the base64 TLV payload from a signed invoice.

SignedInvoice::qr_code(&self) -> &str
SignedInvoice.qr() -> str
FfiResult_FfiString fatoora_signed_invoice_qr(FfiSignedInvoice* signed);

Args

  • signed: signed invoice handle.

Returns

  • string: base64 TLV payload.

Errors

Errors

  • QrCodeError covers missing fields, TLV length overflow, or XML extraction failures.

Behavior

Behavior

  • QR payloads use TLV tags 1-5 for seller + totals, and tags 6-9 for hash/signature data when present.
  • The base64-encoded payload must be 700 characters or fewer.

See also: QR Guide