GoodPay Payment Flow
Preface
In this page, we explore a series of payment flows built using the GoodPay. These flows illustrate how financial institutions and customers interact using GoodPay in a real-world instant payment scenario.
The examples focus on the UK's Faster Payments Service (FPS) as the underlying payment rail. While FPS is used as the implementation example, the flows are applicable across other instant payment systems that meet GoodPay's compliance criteria.
Actors
Below is a list of actors used consistently across the flows:
- GoodPay Participant Bank A — a fully integrated GoodPay-compliant financial institution.
- GoodPay Participant Bank B — another institution using the GoodPay Standard.
- Non-GoodPay Participant Bank C — a traditional bank not integrated with GoodPay.
- Pixie — a retail customer of Participant Bank A.
- Pookie — a retail customer of Participant Bank B.
- Nova — a retail customer of Bank C (non-participant).
- PetStore — a business customer of Participant Bank A.
- FPS — the Faster Payments Service used to settle transactions.
- GoodPay — the global identifier registry and protocol layer that powers the standard.
Actor Overview
Onboarding customer to GoodPay
In this flow, Pixie, a new retail customer, opens an account with Participant Bank A. Bank A, being a GoodPay participant, proceeds to register Pixie's identifier with GoodPay using her FPS account details.
The identifier registered is: gbp://pixie.orange.cat@banka.gb
Send via Phone Number/Email
In this flow, Pixie wants to send £10 to Pookie using just Pookie’s phone number or email. Pixie inputs the amount and selects the contact on her smartphone.
Bank A (Pixie’s bank) performs a lookup on GoodPay to resolve the phone number to Pookie’s payment details. It then sends the funds using FPS to Bank B (Pookie’s bank). Pookie receives the payment instantly.
Receive via QR Code
Between GoodPay participants
In this flow, Pixie wants to receive £10 from Pookie. She generates a QR Code in her mobile banking app containing her GoodIdentifier and the amount to be received.
Pookie scans the QR Code, reviews the payment request, and approves it with biometric authentication. Her bank (Bank B) processes the payment using FPS, and the funds are instantly transferred to Pixie’s account at Bank A.
Between GoodPay participants and non-participants
In this flow, Pixie (a customer of a GoodPay participant) wants to receive £10 from Nova (a customer of a non-participant bank).
Pixie generates a QR Code using her GoodIdentifier and desired amount. Nova scans this code, which opens the Pixie's banks PISP page if present, if not it will open GoodPay's fallback PISP webpage. There, Nova selects her bank (Bank C). The webpage then performs a GoodPay lookup to fetch Pixie’s FPS account details using the GoodIdentifier.
The page then triggers an OpenBanking payment flow, which opens Nova’s banking app (Bank C) with prefilled payment details. Bank C completes the FPS payment to Pixie’s bank (Bank A), and Pixie receives the funds.
Receive via NFC
Between GoodPay participants
In this scenario, Pookie purchases Catnip worth £3.50 from the PetStore, a business customer of Bank A.
The PetStore initiates a request for £3.50 using their Bank A app or GoodPay Merchant app, which generates a GoodURL and updates the NFC tag or GoodPay terminal.
Pookie taps her phone on the terminal. The phone reads the GoodURLℹ️ from the NFC tag and passes it to her banking app (Bank B). Bank B performs a GoodPay lookup using the merchant’s identifier, confirms the details with Pookie, and—upon biometric approval—sends the payment over FPS to Bank A. The PetStore receives the funds instantly.
Between GoodPay Participants and Non-Participants
In this scenario, Nova, a customer of a non-participant bank (Bank C), purchases Catnip worth £3.50 from the PetStore, a business customer of Bank A.
The PetStore enters the amount in their Bank A or GoodPay Merchant app, which generates a GoodURL and updates the passive NFC tag or if they have a GoodPay terminal it auto-updates.
Nova taps her phone on the NFC tag. Her phone opens the GoodURL, which points to either:
- Bank A’s PISP webpage, if supported, or
- GoodPay’s fallback PISP interface, otherwise
There, Nova selects her bank (Bank C). The webpage performs a GoodPay lookup for the PetStore’s payment details using the identifier. Then it launches OpenBanking flow in Nova’s banking app to complete the FPS payment. The PetStore receives the money instantly.