Skip to main content

Documentation Index

Fetch the complete documentation index at: https://www.smartretry.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Fetch the full details and current status of any transaction by its transaction_id. Use this endpoint to confirm whether a payment was approved, to monitor retry attempts, or to display order history to your customers.
curl --request GET \
  --url https://api.smartretry.com/v1/payments/status/ABC123/TX8A3F2C \
  --header 'x-api-key: YOUR_API_KEY'
{
  "transaction_id": "TX8A3F2C",
  "type": "sale",
  "amount": 49.99,
  "currency": "USD",
  "authorization_code": "AUTH042",
  "arn": "74491803522700123456789",
  "attempt_number": 1,
  "created_at": "2026-03-31T14:22:10Z",
  "updated_at": "2026-03-31T14:22:13Z",
  "status": {
    "status": "APPROVED",
    "reasonCode": "AUTH.APPROVED",
    "name": "Approved",
    "description": "The transaction was approved by the issuer.",
    "domain": "AUTH"
  },
  "order": {
    "order_id": "OR7B9E1D",
    "merchant_order_id": "order-20260331-001",
    "provider_order_id": "prov-88271",
    "description": "Order #20260331-001",
    "payer": {
      "friendly_id": "PY4A8C2D",
      "first_name": "Jane",
      "last_name": "Doe",
      "email_username": "jane.doe",
      "email_domain": "example.com"
    },
    "payment_instrument": {
      "token": "tok_4111...",
      "payment_method": "cards",
      "card_cardholder_name": "Jane Doe",
      "card_card_last_four_digit": "1111",
      "card_bin": "411111",
      "expiration_date": "2027-12-31T00:00:00Z"
    }
  }
}

Path parameters

terminal_friendly_id
string
required
Your terminal identifier. Exactly 6 characters.
transaction_id
string
required
The SmartRetry transaction ID to look up. Exactly 8 characters. This is the transaction_id returned by the sale, pre-auth, capture, refund, or void response.

Response

transaction_id
string
required
SmartRetry’s unique identifier for this transaction. Exactly 8 characters.
type
string
required
The transaction type. One of: sale, preauth, capture, refund, void, recurring_init, recurring, payout.
amount
number
required
Transaction amount in major currency units (e.g., 49.99).
currency
string
required
Three-letter ISO 4217 currency code.
authorization_code
string
Authorization code assigned by the acquirer upon approval.
arn
string
Acquirer Reference Number (ARN). Use this when communicating with your acquiring bank about a specific transaction.
attempt_number
integer
The retry attempt number for this transaction. 1 means the first attempt; higher values indicate SmartRetry has automatically retried the transaction.
created_at
string
required
ISO 8601 timestamp of when the transaction was created.
updated_at
string
required
ISO 8601 timestamp of when the transaction was last updated.
status
object
required
The current status of the transaction.
order
object
required
Details about the order associated with this transaction.

Status values

The status.status field indicates the current state of the transaction:
ValueDescription
APPROVEDThe transaction was approved by the issuer and funds have been reserved or captured.
PROCESSINGThe transaction is still being processed. Poll again shortly.
DECLINEDThe transaction was declined. Check status.reasonCode for the specific reason.
ERRORAn unexpected error occurred during processing.
CANCELLEDThe transaction was cancelled (e.g., by a void).
UNKNOWNThe status could not be determined. Contact support if this persists.

Status domains

The status.domain field identifies which system was responsible for the status outcome:
DomainDescription
SYSTEMAn internal SmartRetry system error.
VALIDATIONThe request failed validation (e.g., missing or malformed fields).
RISKThe transaction was blocked or flagged by a risk or fraud rule.
ROUTINGThe transaction could not be routed to an available processor.
AUTHThe issuer approved or declined the authorization.
PROCESSORThe acquiring processor returned a result.
PAYMENT_METHODThe issue is specific to the payment method (e.g., unsupported card type).
PAYER_ACCOUNTThe issue is related to the payer’s account (e.g., card expired, account closed).
Use status.domain alongside status.reasonCode to build targeted retry logic or to surface the right error message to your customers - for example, prompting a payer to update their card details when domain is PAYER_ACCOUNT.