Point of sale webhooks
Optional backend confirmation alongside Intent API callbacks. Required for till-point QR integrations (no Intent callback on the till).
This webhook is different from eCommerce webhooks.
When to use
| Pattern | Webhook |
|---|---|
| App-to-app (Intent API) | Optional - Intent callback is primary; webhook for server-side reconciliation |
| Till-point QR | Required - till receives outcome via webhook |
Setup
Contact support with:
- Your HTTPS webhook URL (Peach Payments only allows ports 80 and 443)
- Optional custom request headers (for example, authentication tokens) - Peach Payments configures these on your endpoint
Point of sale webhooks use plain JSON - you do not need to decrypt them.
Success criterion
Apply the same logic as the Intent API response: check transactionType and isApproved on the webhook transaction payload.
| Operation | Success |
|---|---|
| Sale | transactionType is SALE or SALE_WITH_CASHBACK and isApproved == true |
| Refund | transactionType == REFUND and isApproved == true |
| Void | Use void-specific fields on the payload (no isApproved) |
Do not rely on transactionResult alone - always evaluate isApproved together with transactionType.
Key fields
| Field | Use |
|---|---|
transactionId | Peach Payments transaction UUID - refunds or voids |
amount | Amount in minor units |
transaction.posData.merchantTransactionId | Your order reference |
transactionType | SALE, REFUND, and so on |
isApproved | true / false |
Match webhook events to till orders using merchantTransactionId in transaction.posData.
Full payload reference
Contact support for the complete point of sale webhook field list.
Updated 23 days ago
Did this page help you?