Checklist

  • GetPortBroadcastReceiver exists, in the root package, manifest-declared, exported
  • <queries> declares the payment app
  • Response handling lives at application scope, not in an Activity
  • A result arriving with no listener attached is held, not dropped
  • Amounts are sent in minor units
  • Pre-auth ceiling is a parameter, not a constant, and enforces SAR 300
  • The scheme from the pre-auth response selects capture and void variants — Visa is not mada
  • Visa partial settlement uses Partial Reversal (27), not Capture
  • Void on Visa/Mastercard uses Reversal (9), not Pre Auth Void (6)
  • rrn, approvalCode and transactionDate are written durably before the nozzle is released
  • Open pre-authorisations are recovered and resolved after a restart
  • The 120 s unknown timeout voids and flags suspect
  • 060 and 061 are treated as approvals
  • A declined pre-auth physically prevents the nozzle being picked up
  • Screen copy matches the certified wording in both languages
  • The amount is shown at every step, and the remaining-amount note appears before and after
  • Amount validation happens before the pre-auth, not as a decline
  • Capture sends the delivered amount, not the authorised one
  • Capture type field is 1 — partial capture is withdrawn
  • Print flag is 0 — the terminal has no printer, the receipt is the QR

← Certification  ·  Contents


Did this page help you?