Business Rules
- Refunds must be requested within 14 days of the original payment success
- Refund amount can be partial (any value
> 0and≤ payment.amount), but must use the same currency as the payment - The original payment must already be fully confirmed by the PSP — calling refund immediately after a payment webhook arrives may transiently fail; retry after a few seconds
- A payment that already has a pending or succeeded refund cannot have another refund ticket created at the same time
- When the merchant submits the refund (server-to-server via API Key), the ticket is auto-approved and goes straight to processing — no manual review step
Refund Ticket Status Values
Business identifiers — link your records to Waffo
You can attach an optional business-side identifier (max 128 characters) at two creation points; on the wire each one carries its own flat key so a single payload can hold both without ambiguity:
End-to-end propagation (the same flat dual-key names are used everywhere — request bodies, webhook payloads, and GraphQL types):
Endpoints
Create Refund Ticket
Request a refund for a succeeded payment. Supports full and partial refunds.
Resubmit Refund Ticket
Revise and resubmit a rejected or failed refund ticket.