Skip to content
FreeTicketDocs
Esc
↑↓navigate↵open⌘Jpreview

List a sale's payment attempt history

Minimum role: STAFF. One event per payment movement reported by the gateway (approved, declined, or a later refund), ordered from newest to oldest. It exists to answer “why didn’t this sale go through?” without leaving the API: Sale.status only reflects the final outcome, and from GET /sales/{id} a CANCELLED/ABANDONED sale with confirmedAt: null is indistinguishable from an order that simply expired — see the derived failureReason/paymentStatus/declineCode fields on SaleDetail.

GET/sales/{id}/attempts
Authorization
AuthorizationAPI key · headerrequired

API key prefixed with Bearer . Alternative: the x-api-key header with the raw key. Available scopes: read and write (see /.well-known/oauth-protected-resource).

or
x-api-keyAPI key · headerrequired

Raw API key (without Bearer ), alternative to Authorization.

Path parameters
idstringrequired
Header parameters
X-Workspace-Idstring

Active workspace to operate on. Optional: when omitted, the default workspace of the user who owns the key is used (pickActiveOrg).

Responses
200

OK

dataPaymentAttempt[]required
Show properties
Array of PaymentAttempt
idstringrequired
providerstringrequired
statusstringrequired

Status of the payment event. Usually this is the gateway's RAW status in its own vocabulary (PAID, APPROVED, REJECTED, VOID_APPROVED…). Values prefixed with FT_ come from FreeTicket, not the gateway: currently FT_SALE_APPROVED_POST_CONFIRM, which flags that the gateway re-notified a payment that was already confirmed — this is how Bold reports its refunds, and the sale may remain CONFIRMED while someone verifies the refunded amount.

declineCodestring | nullrequired
Show properties
Any of:
string
string
null
null
declineReasonstring | nullrequired
Show properties
Any of:
string
string
null
null
amountnumber | nullrequired
Show properties
Any of:
number
number
null
null
externalRefstring | nullrequired
Show properties
Any of:
string
string
null
null
createdAtstringrequired
401

Missing or invalid credential.

errorobjectrequired
Show properties
codestringrequired
messagestringrequired
retryablebooleanrequired
detailsany
403

Insufficient role or resource not accessible.

errorobjectrequired
Show properties
codestringrequired
messagestringrequired
retryablebooleanrequired
detailsany
404

Resource does not exist or is out of scope.

errorobjectrequired
Show properties
codestringrequired
messagestringrequired
retryablebooleanrequired
detailsany
422

Request body/parameter validation failed.

errorobjectrequired
Show properties
codestringrequired
messagestringrequired
retryablebooleanrequired
detailsany
Try it
Server
Authorization
Parameters
Request
curl -X GET 'https://admin.appfreeticket.com/api/v1/sales/string/attempts' \
  -H 'Authorization: YOUR_API_KEY'
Response
{
  "data": [
    {
      "id": "string",
      "provider": "string",
      "status": "string",
      "declineCode": "string",
      "declineReason": "string",
      "amount": 0,
      "externalRef": "string",
      "createdAt": "string"
    }
  ]
}