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 and creates a Payment Request via Centrapay API, with the patron code as a parameter.
- Customer device uses patron code to fetch the payment request and 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.