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.
/sales/{id}/attemptsAuthorizationAPI key · headerrequiredAPI 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).
x-api-keyAPI key · headerrequiredRaw API key (without Bearer ), alternative to Authorization.
idstringrequiredX-Workspace-IdstringActive workspace to operate on. Optional: when omitted, the default workspace of the user who owns the key is used (pickActiveOrg).
OK
dataPaymentAttempt[]requiredShow propertiesHide properties
PaymentAttemptidstringrequiredproviderstringrequiredstatusstringrequiredStatus 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 | nullrequiredShow propertiesHide properties
stringnulldeclineReasonstring | nullrequiredShow propertiesHide properties
stringnullamountnumber | nullrequiredShow propertiesHide properties
numbernullexternalRefstring | nullrequiredShow propertiesHide properties
stringnullcreatedAtstringrequiredMissing or invalid credential.
errorobjectrequiredShow propertiesHide properties
codestringrequiredmessagestringrequiredretryablebooleanrequireddetailsanyInsufficient role or resource not accessible.
errorobjectrequiredShow propertiesHide properties
codestringrequiredmessagestringrequiredretryablebooleanrequireddetailsanyResource does not exist or is out of scope.
errorobjectrequiredShow propertiesHide properties
codestringrequiredmessagestringrequiredretryablebooleanrequireddetailsanyRequest body/parameter validation failed.
errorobjectrequiredShow propertiesHide properties
codestringrequiredmessagestringrequiredretryablebooleanrequireddetailsany
