Square Sandbox refund remains PENDING after RefundPayment and refund webhooks

We are seeing a Square Sandbox refund remain in PENDING. On September 24, 2026 at about 08:08 UTC, our integration requested one full refund of a completed $1.01 USD Sandbox payment. RefundPayment accepted the request and returned PENDING. Subsequent GetPaymentRefund reads still return PENDING. Both refund.created and refund.updated webhooks were received, but neither reported a transition out of PENDING. We have not created a second refund. A comparable $1.01 Sandbox refund completed normally the previous day.

Is this expected Sandbox behavior, and is there a known way to determine whether the refund will eventually become COMPLETED or FAILED? Could the Square team investigate a refund that remains PENDING? We can provide the exact refund/payment IDs privately if needed; please let us know a secure channel. We are avoiding a second refund while the first outcome is unresolved.

This is a known limitation in the Sandbox environment. The sandbox doesn’t reliably process payments or refunds. You can create a production account and test your integration using cash tender there for free before promoting to your real production account.