> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tipstack.fun/llms.txt
> Use this file to discover all available pages before exploring further.

# Check Fiat Payment Status — GET /payments/fiat/status

> Check the current status of a fiat payment intent. Returns requires_action, completed, or failed, plus a timestamp when payment has settled.

Check the current status of a fiat payment intent created via [`POST /payments/fiat/intent`](/api/payments/fiat-intent). Use this endpoint to poll for payment confirmation after the supporter has been shown checkout or bank transfer instructions. The response reflects the most up-to-date state, including `completedAt` when the payment has settled.

## Request

**`GET https://tipstack.fun/api/payments/fiat/status`**

<ParamField query="intentId" type="string" required>
  The intent identifier returned by `POST /payments/fiat/intent`. Must be the `fossa_xxx` formatted ID — not a transaction signature.
</ParamField>

## Response

<ResponseField name="success" type="boolean">
  `true` when the intent was found and the status was retrieved successfully.
</ResponseField>

<ResponseField name="intentId" type="string">
  The intent identifier you queried.
</ResponseField>

<ResponseField name="status" type="string">
  Current payment state. One of:

  | Value             | Description                                                                                          |
  | ----------------- | ---------------------------------------------------------------------------------------------------- |
  | `requires_action` | The supporter has not yet completed payment. Checkout or bank transfer instructions are still valid. |
  | `completed`       | Payment settled. The tip has been credited to the creator's fiat wallet and recorded in Tip Stack.   |
  | `failed`          | Payment could not be completed. The supporter should create a new intent to retry.                   |
  | `cancelled`       | The intent was cancelled before payment was attempted.                                               |
</ResponseField>

<ResponseField name="completedAt" type="string | null">
  ISO 8601 timestamp of when the payment was confirmed. `null` while the intent is still pending.
</ResponseField>

## Example request

```bash cURL theme={null}
curl "https://tipstack.fun/api/payments/fiat/status?intentId=fossa_7c3e9a1b2f4d8e0a6c5b"
```

## Example response — pending

```json JSON theme={null}
{
  "success": true,
  "intentId": "fossa_7c3e9a1b2f4d8e0a6c5b",
  "status": "requires_action",
  "completedAt": null
}
```

## Example response — completed

```json JSON theme={null}
{
  "success": true,
  "intentId": "fossa_7c3e9a1b2f4d8e0a6c5b",
  "status": "completed",
  "completedAt": "2025-01-15T14:32:07.000Z"
}
```

<Note>
  This endpoint sets `Cache-Control: no-store` on every response. Do not cache status responses — always fetch fresh data when polling.
</Note>

<Tip>
  Poll this endpoint every 5–10 seconds after the supporter initiates payment. Once `status` is `completed`, stop polling and update your UI to reflect a confirmed tip.
</Tip>
