Skip to main content
POST /api/actions/refund-ticket/resubmit-ticket Authentication: Merchant API Key (server-to-server). Resubmit reuses the request shape of Create Refund Ticket, plus a ticketId to identify the ticket being revised. The originating paymentId is bound to the existing ticket and cannot be changed.

Request body

FieldTypeRequiredDescription
ticketIdstringYesShort ID of the refund ticket being revised, e.g. TKT_3bVzrkD0FJjFdZNLk8Ualx
reasonstringYesFree-text reason for the revised request
requestedAmount.amountstringYesRevised refund amount (display format, must be > 0 and ≤ payment.amount)
requestedAmount.currencystringYesISO 4217 code, must match the payment currency
The refundTicketMerchantExternalId written at create time is immutable across resubmits — it cannot be changed once the ticket exists.

Success response (200)

{
  "data": {
    "ticket": {
      "id": "TKT_3bVzrkD0FJjFdZNLk8Ualx",
      "status": "pending",
      "subjectId": "PAY_6eYCunG3IMmIgcQOnaXdoA",
      "versionNumber": 2,
      "refundTicketMerchantExternalId": "REF-2026-00891"
    }
  }
}
A new ticket version is appended; versionNumber increments. The ticket re-enters the review queue (pending for buyer-initiated, processing for merchant-initiated).

Errors

Retry policy: Never retry 4xx — fix the request and resubmit. Retry 5xx with exponential backoff (start 5s, max 3 attempts).
Statuserrors[0].messageWhat it meansRecommended handling
400Missing required field: ticketIdticketId not providedAdd ticketId, resubmit
400Expected format: TKT_xxx, got "..."ticketId Short ID could not be decodedFix ticketId format, resubmit
400Invalid requestedAmount.amount formatAmount string could not be parsedUse a display string like "10.50"
401UnauthorizedInvalid API Key signatureVerify auth headers
403Submitter is not the original ticket ownerThe caller didn’t create this ticketOnly the original submitter can resubmit
404Ticket not foundTicket doesn’t exist or doesn’t belong to the callerVerify ticketId
409Ticket status is X, only rejected/failed can be resubmittedTicket is not in a resubmittable stateWait for rejected / failed, or open a new ticket
409Requested amount exceeds payment amountRevised amount > payment.amountFix the amount
500Internal server errorUnexpected server-side failureRetry with exponential backoff (start 5s, max 3 attempts)