# Update lost card

`PUT /api/configuration/lost-cards/{all}`

- **Products:** Operator (`FOH`)
- **Features:** Front of House Generic Access (`FOHGENERIC`)

HTML version: [Update lost card](https://support.gladstonesoftware.cloud/reference/configuration/update-lost-card)

## Overview

Rewrites an entry in the lost cards register — the record that a card was reported lost, and by whom.
The entry is identified by its `id`, which is the value in the path; only two fields
are writable, the member the card belonged to and the date the loss was raised.

**This is a full replacement of both fields, not a partial update.** Both `memberId` and `raisedDate` are written
on every call and anything you omit is written as null. Send both values every time, even when you
only mean to change one. There is no status, note or resolution field behind this endpoint.

**The identifier in the path is converted to upper case before the entry is looked up.** Identifiers generated by
[Create lost card record](create-lost-card-record.md) are already upper case, but an
entry whose identifier contains lower-case characters cannot be reached by this call.

An identifier that matches no entry returns `404` with the body `Record cannot be found`. When the identifier
is valid but `memberId` names a member who does not exist, the response is also `404`, with the body
`Member {memberId} cannot be found`; the missing-entry check is made first, so read the body to tell the two apart.

On success the response is `204 No Content` and the change is visible on the next read.

## Endpoint

`PUT {base_url}/api/configuration/lost-cards/{all}`

`{base_url}` is the environment URL issued to your integration. See [Authenticating with Gladstone APIs](../../guides/authenticating-with-gladstone-apis.md).

## Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `lostCardId` | string | Yes | The entry's identifier, up to 255 characters, as listed by [Get all lost cards](get-all-lost-cards.md). It is converted to upper case before the lookup, so a stored identifier with lower-case characters will not be found. It identifies the entry rather than changing it: the identifier is not writable. |

## Request body

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `memberId` | integer (int32) | No | The member the lost card belonged to. Written on every call, so omitting it or sending null clears the member from the entry rather than leaving it as it was. Any other value must be an existing member, or the call returns `404`. The reserved values `0` and `-999` are accepted here and saved as given, although [Create lost card record](create-lost-card-record.md) rejects them. |
| `raisedDate` | string (date-time) | No | When the loss was reported, as a date and time. Written on every call, so omitting it or sending null clears the stored date. No range check is applied — a future date is accepted. |

## Sample request

```bash title="cURL"
curl -X PUT '{base_url}/api/configuration/lost-cards/{all}' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true' \
  -H 'Content-Type: application/json' \
  -d '{
  "memberId": 12345,
  "raisedDate": "2026-08-14T19:00:00Z"
}'
```

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `400` | Bad request | The body could not be read — for example a non-numeric `memberId` or an unparseable `raisedDate`. The response body is a validation error object keyed by field name. |
| `404` | Not found | No entry has that identifier, including one with lower-case characters: `Record cannot be found`. |
| `404` | Not found | The entry exists but `memberId` matches no member: `Member {memberId} cannot be found`. Nothing is changed. |
| `409` | Conflict | The update conflicts with an existing entry — body is `The record updating contains a key already in use`. |
| `500` | Internal server error | Any other unexpected server-side failure. No detail is returned. |
