Module: PaynowQR

Defined in:
lib/paynow_qr.rb,
lib/paynow_qr/crc16.rb,
lib/paynow_qr/errors.rb,
lib/paynow_qr/version.rb,
lib/paynow_qr/generator.rb

Overview

PaynowQR generates EMVCo-compliant Singapore PayNow QR payloads.

Examples:

PaynowQR.generate(
  proxy_type: :uen,
  proxy_value: "201234567A",
  amount: 10.00,
  company: "ACME PTE LTD",
  reference: "INV-001"
)
# => "00020101021126..."

Defined Under Namespace

Modules: CRC16 Classes: ArgumentError, Error, Generator

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.generate(**opts) ⇒ String

Convenience wrapper around PaynowQR::Generator#payload.

Parameters:

  • proxy_type (Symbol, String)

    :mobile, :uen, or raw numeric code

  • proxy_value (String)

    mobile number (e.g. “+6591234567”) or UEN

  • amount (Numeric, String, nil)

    transaction amount in SGD. nil = any amount.

  • editable (Boolean)

    if true, amount field is omitted and QR is dynamic

  • company (String)

    merchant name (max 25 chars per EMVCo)

  • expiry (Date, Time, String, nil)

    “YYYYMMDD” or Date-like. Default: today + 1 year.

  • reference (String, nil)

    bill reference number

Returns:

  • (String)

    the EMVCo QR payload



24
25
26
# File 'lib/paynow_qr.rb', line 24

def self.generate(**opts)
  Generator.new(**opts).payload
end