Payment Processing

QR Payments

An interoperable QR payment system enables seamless transactions by allowing users to scan and pay using any supported banking or wallet app, regardless of the QR code issuer. The system follows open standards to ensure compatibility across financial institutions.

QR Code Generation

Who: Merchant, business, or payment recipient.

How: A QR code is generated containing key payment information:

  • amount
  • merchant_id or recipient_account_id
  • currency
  • reference or description
  • Optional metadata (e.g., expiration time, geolocation)

Types of QR Code solutions:

Static QR: Fixed data, reused for multiple transactions.

Dynamic QR: Unique to each transaction with auto-filled amount and reference.

The API provides endpoints to generate both static and dynamic QR codes with standardized payloads.

Standardized QR Format

Follows EMVCo or local standards (e.g., PIX in Brazil, UPI in India).

Ensures all participating wallets and banks can read, parse, and process the QR uniformly.

Promotes interoperability across institutions and reduces vendor lock-in.

Scan and Initiate Payment

The end-user scans the QR code using any participating app (bank or wallet).

The app parses the QR payload, displays the payment details, and prompts the user to confirm.

Upon confirmation, the app triggers a payment initiation request to Alfred’s backend or a third-party processor.

Payment Routing & Confirmation

Alfred receives the payment request, validates and routes it through the correct payment rail (e.g., bank transfer, wallet-to-wallet, PIX).

Once settled, Alfred then:

  • Confirms the transaction status (success or failure) via webhook or callback.
  • Notifies the merchant/recipient instantly.
  • Generates a receipt or settlement report.