# STORE_CLOSED

# STORE_CLOSED

The store is not accepting orders at the time of the request — either outside posted hours, manually closed by the operator, or under a temporary capacity hold.

## Summary

| Field | Value |
|---|---|
| HTTP status | `400` |
| `errorCategory` | `availability` |
| `retryable` | `false` |

## When This Fires

- **`POST /v1/marketfront/orders/validate`** — pre-flight rejects an order that targets a closed store.
- **`POST /v1/marketfront/orders/place`** — store transitioned to closed between validation and placement (TOCTOU). Provider is the authority at place-order; pre-flight is a UX hint, not a correctness gate.

## Recommended Action

Do not retry the same store immediately. Instead:

1. Re-call store availability (`GET /v1/marketfront/stores/{storeId}` or re-run discovery for the user's address) to confirm current open hours.
2. Surface a "closed" affordance to the user with the next-open time if available.
3. Offer alternative stores from a fresh discovery call.

A retry is only appropriate after the store's next-open time, and even then a fresh availability check should precede order submission.

## Example

```json
{
  "type": "https://developer.gett-tech.com/errors/STORE_CLOSED",
  "title": "Bad request",
  "status": 400,
  "detail": "The store is no longer accepting orders.",
  "instance": "/v1/marketfront/orders/validate",
  "requestId": "req_abc123",
  "timestamp": "2026-04-27T14:30:00.000Z",
  "errorCode": "STORE_CLOSED",
  "errorCategory": "availability",
  "retryable": false
}
```
