# Create lost card record

`POST /api/configuration/lost-cards`

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

HTML version: [Create lost card record](https://support.gladstonesoftware.cloud/reference/configuration/create-lost-card-record)

## Overview

Adds an entry to the lost cards register for a member, recording that the member reported a card, smartband or keyfob lost. Gladstone generates the new entry's identifier for you; you cannot supply one.

**The request carries no card number, so the entry does not record which card was lost.** It records only the member and the date you send, and the member's card stays on their record. Entries created this way therefore cannot be used to block a particular card number.

The response is `201 Created` with an **empty body** and no `Location` header, so the generated identifier is not returned. To find it, list the register with [Get all lost cards](get-all-lost-cards.md) and match on `memberId` and `raisedDate`. Generated identifiers are upper-case GUIDs, for example `3F2504E0-4F89-11D3-9A0C-0305E82C3301`, and are what you pass as the path segment to [Get lost card by ID](get-lost-card-by-id.md), [Update lost card](update-lost-card.md) and [Delete lost card record](delete-lost-card-record.md).

**This call is not idempotent.** Every successful call creates a new entry, so retrying after a timeout can leave two entries for the same report. Check the register before you retry.

## Endpoint

`POST {base_url}/api/configuration/lost-cards`

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

## Request body

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `memberId` | integer (int32) | No | The member who reported the loss. Must be an existing member: an id that matches no member returns `404`. `0` and `-999` are reserved values and are rejected with `400`. Omit it, or send `null`, to create an entry with no member attached. |
| `raisedDate` | string (date-time) | No | When the loss was reported, for use as an audit and reporting timestamp. Optional — omit it, or send `null`, and it is left null; there is no fallback to the current time, and the separate creation timestamp recorded automatically is not returned by any lost-card endpoint. Send the value in UTC: it is converted into the tenant's configured time zone when saved and back to UTC when a `GET` reads it, so a value sent without that assumption comes back shifted. |

## Sample request

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

## Errors

A successful call returns `201 Created` with an empty body.

| Status | Meaning | When |
|--------|---------|------|
| `400` | Validation failed | The body is absent or unparseable, or a value is of the wrong type — a non-numeric `memberId`, or a `raisedDate` that is not a valid date-time. The body is a validation problem document (`application/problem+json`, RFC 7807) with an `errors` map keyed by field name. |
| `400` | Reserved member id | `memberId` is `0` or `-999`. The body is `The given member Id is not valid. [MemberId: {memberId}]` and nothing is created. |
| `404` | Member not found | `memberId` does not match an existing member. The body is `Member {memberId} cannot be found` and nothing is created. |
| `500` | Internal server error | Any other unexpected server-side failure. The body is empty and nothing is created. |
