Skip to main content

Create Refund Ticket

Request a refund for a payment. The refund goes through a review workflow.
POST /v1/actions/refund-ticket/create-ticket
Authentication: API Key

Request Body

FieldTypeRequiredDescription
paymentIdstringYesUUID of the payment to refund
reasonstringYesReason for the refund request
amountintegerNoPartial refund amount in smallest currency unit (omit for full refund)

Example Request

curl -X POST https://waffo-pancake-auth-service.vercel.app/v1/actions/refund-ticket/create-ticket \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY_TOKEN" \
  -d '{
    "paymentId": "payment-uuid",
    "reason": "Product did not meet expectations"
  }'

Success Response

{
  "data": {
    "ticketId": "refund-ticket-uuid",
    "status": "pending",
    "requestedAmount": 2900
  }
}

Refund Ticket Status Values

StatusDescription
pendingRefund request submitted, awaiting review
approvedRefund approved, awaiting processing
rejectedRefund request denied
processingRefund is being processed
succeededRefund completed, funds returned
failedRefund processing failed

Business Rules

  • One-time product refunds must be requested within 7 days of payment
  • Partial refunds cannot exceed the original payment amount
  • Each payment can have multiple refund tickets (for partial refunds)

Refund Workflow

Refund request submitted (pending)
    |
    v
Merchant reviews
    |
    +-- Approve --> processing --> succeeded (funds returned)
    |                         --> failed (retry needed)
    |
    +-- Reject --> rejected
Use GraphQL to query refund tickets and their current status. Filter by storeId, paymentId, or status to find specific tickets.