Square Webhooks
PaymentsSquare sends webhook events for payment completions, refunds, disputes, and inventory updates across in-person and online channels.
Webhook Events
5 event types
payment.completedPayment was completed
payment.updatedPayment was updated
refund.createdRefund was initiated
dispute.createdA dispute was opened
order.createdA new order was created
Signature Verification
x-square-hmacsha256-signatureHMAC-SHA256 of URL + body using signature key
Sample Payload
payment.completed
{
"merchant_id": "MERCHANT123",
"type": "payment.completed",
"event_id": "ev_abcdef123456",
"created_at": "2026-04-11T10:00:00Z",
"data": {
"type": "payment",
"id": "py_abcdef123456",
"object": {
"payment": {
"id": "py_abcdef123456",
"status": "COMPLETED",
"amount_money": {
"amount": 2500,
"currency": "USD"
}
}
}
}
}Send a Sample Square Payload
Pick an event, enter your endpoint URL (or localhost), and fire a realistic Square payload with one click — no Square account needed.
Test Sender
Loading samples…
Capture & Inspect Square Webhooks Live
Get a free public HTTPS endpoint below, point Square at it, and watch events arrive in real time. Use the forwarding rule to relay them straight to your local server.
See it work in real time
Click below to get a live webhook URL instantly. Paste it anywhere — Stripe, GitHub, Postman — and watch events arrive right here.
Expires in 1 hour · No account needed
Forward Square webhooks to localhost
- Click Create live endpoint above to get a public HTTPS URL
- Paste the URL into Square's webhook settings
- In the Forwarding tab, add a rule: target =
http://localhost:3000/webhooks/square - Fire a test event from Square — it arrives in the inspector and hits your local handler simultaneously
Ready to test your Square webhook handler?
Free HTTPS endpoint with forwarding, retry, and event replay. No install, no CLI, no deploy.
Create Free Account