Transacting via Centrapay requires customer and merchant devices to negotiate the creation and fulfillment of Payment Requests. There are multiple payment “flows” a merchant integration can select from to facilitate this negotiation. Which flow is employed will depend on the capabilities of the merchant system.
When a merchant terminal has a customer-facing display it can prompt the customer to pay by showing a QR code.
- Merchant terminal creates a payment request via Centrapay API and shows QR code on customer-facing display.
- Customer device scans the QR code, fetches the payment request details, and completes payment as normal.
- Merchant terminal displays transaction result using the payment request details.
When a merchant terminal is not capable of displaying a customer-facing QR code then the payment request can be negotiated with the customer by scanning a barcode or QR code displayed on the customer’s smart device.
- Customer generates a short-lived Patron Code via Centrapay API and displays it as a barcode on their smart device
- Merchant scans the barcode, optionally retrieves the Patron Code for additional information on the customer and then creates a Payment Request via Centrapay API, with the Patron Code as a parameter.
- Customer device fetches the payment request created with the Patron Code and completes payment as normal.
Variant on Dynamic Patron Code, if you’ve setup long lived static Patron Codes by integrating with Centrapay, then you can use these to pay on behalf of a Customer. The customer may be asked for approval before this goes through.
- The Customer presents their Patron Code barcode.
- Merchant scans the barcode, optionally retrieves the Patron Code for additional information on the Customer and then creates a Payment Request via Centrapay API, with the Patron Code as a parameter.
- Conditionally, the Customer is sent a text message to confirm payment.
- The Customer is sent an email with a summary of the payment.
- Merchant polls Polls for the Payment Request created with the Patron Code checking the status changes to “paid”. Merchant completes payment as normal.
When a merchant terminal is neither capable of displaying nor scanning QR codes or barcodes, such as for unattended vending machines, then a static QR code can be used.
- Customer scans QR code and initiates vending sequence via Centrapay API, with the merchant code as a parameter.
- Merchant vending system initiates payment request via Centrapay API.
- Customer device fetches payment request and completes payment as normal.
- Merchant vending system optionally initiates refund via Centrapay API.