Till-point QR integration

Use till-point QR when your POS runs on a separate device from the Peach Payments terminal. The till displays a QR code; the cashier scans it on the terminal; the customer pays on the terminal. Your backend receives the outcome via Point of sale webhooks.

When to use

ScenarioPattern
Till on tablet, PC, or phone; terminal at counterTill-point QR
POS app on same device as Payment AppApp-to-app integration
📘

Ask Peach Payments to enable integrated mode on the terminal. Integrated mode disables stand-alone numpad payments; you should use it for till-point QR deployments.

Sale flow

  1. Your till generates a QR code embedding JSON with the payment details.
  2. The cashier scans the QR on the terminal using the top-right QR button - not the customer-facing scan.
  3. The customer completes payment on the terminal.
  4. Your merchant backend receives a Point of sale webhook.
  5. Evaluate success: transactionType is SALE or SALE_WITH_CASHBACK and isApproved == true.

QR payload (sale)

Embed JSON in the QR code:

{
  "amount": 10000,
  "posData": {
    "merchantTransactionId": "ORDER-12345"
  }
}
FieldRequiredDescription
amountYesAmount in minor units (cents)
posDataNoCustom fields echoed in webhook and Dashboard
posData.merchantTransactionIdRecommendedYour order reference for reconciliation

Additional keys inside posData are permitted; Peach Payments echoes them in the webhook payload.

Refund QR

For refunds (Payment App 2.2.15+, same terminal as original sale), generate a QR with:

{
  "amount": 6000,
  "type": "REFUND",
  "originalTransactionId": "<transactionId from original webhook>"
}
FieldDescription
amountRefund amount in minor units
typeMust be REFUND
originalTransactionIdtransactionId from the original sale webhook

Webhook setup

Till-point QR requires Point of sale webhooks. Contact support with your HTTPS URL and optional custom headers.

Reconciliation

Match till orders to payments using merchantTransactionId in transaction.posData on the webhook payload. See Terminal integration flows for Dashboard and Reconciliation API options.

Next steps

  1. Configure Point of sale webhooks.
  2. Test end-to-end with a UAT terminal - see Test your integration.