# not_found

> Not found

- Status: 404 Not Found
- Returned by: /api/public
- Retry (`retryWhen`): `after_fix`
- Did anything happen? (`outcome`): `none` (It did not happen)
- The request
- Page in the portal: https://developers.rivr.io/errors/not_found
- Try it: `GET https://developers.rivr.io/errors/simulate/not_found` answers with the code's exact wire form; `?succeedAfter=N&attempt=K` gives a 200 once `attempt` passes `N`

## What it means

The resource doesn't exist, or it doesn't belong to the organisation in the call. Rivr doesn't tell the two apart, so nobody can probe for other clinics' orders. In `/api/public`, orders, clinics, subscriptions and onboarding links have codes of their own (`order_not_found`, `merchant_not_found`, `subscription_not_found`, `onboarding_link_not_found`); `not_found` is what remains, for example a payment instruction.

## What your system does

Check the id, and that `Rivr-Organization` is the order's clinic. A read also finds a clinic's order through the chain above it, but a write only applies to the organisation in the header, never to a clinic below it.

## Is it worth retrying?

No, not without changing the call.

`retryWhen`: `after_fix`. Change the request first, as the code's page says: a value, the token, a header or a new key. Then send it.

## Did anything happen?

`outcome`: `none`. **It did not happen.** This call did not do what you asked for and changed nothing else that you can see or that concerns money. Where the code has an `outcomeNote`, it takes precedence.

## Example: /api/public

```http
HTTP/1.1 404 Not Found
Content-Type: application/json

{
  "propertyName": null,
  "message": "The payment instruction was not found.",
  "errorCode": "not_found",
  "code": "not_found",
  "type": "https://developers.rivr.io/errors/not_found"
}
```

The `title`, `detail`, `message` and `error_description` texts are exactly as the API writes them today.
