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

# mapping.error.resolved

> Fires when a reported mapping error is resolved or rejected.

`mapping.error.resolved` fires when a mismatch report transitions to a terminal state — either `FIXED` (we agreed and corrected the mapping) or `REJECTED` (we kept the existing mapping). Use it to stop nagging your ops team and to mark the issue closed in your downstream system.

## When it fires

On the state transition from `OPEN` or `IN_PROGRESS` to `FIXED` or `REJECTED`. Subsequent state changes (e.g., reopening) do not re-fire.

## Required plan

Pro and above.

## Recipients

Only the organization that owns the mismatch report (i.e., the one that originally reported the mismatch).

## Payload

```json theme={null} theme={null}
{
  "id": "del_…",
  "eventId": "evt_…",
  "type": "mapping.error.resolved",
  "apiVersion": "2026-06-01",
  "occurredAt": "2026-06-01T12:34:56Z",
  "organizationId": "org_…",
  "data": {
    "reportId": "rep_…",
    "partnerInventoryId": "inv_…",
    "partnerHotelId": "EXP-12345",
    "referenceHotelId": "ref_…",
    "resolution": "FIXED",
    "resolvedAt": "2026-06-01T12:34:56Z"
  }
}
```

## Fields

| Field                     | Type                      | Notes                                               |
| ------------------------- | ------------------------- | --------------------------------------------------- |
| `data.reportId`           | UUID                      | The mismatch report that was resolved.              |
| `data.partnerInventoryId` | UUID \| null              | The inventory the reported mapping belongs to.      |
| `data.partnerHotelId`     | string \| null            | Your hotel identifier from the inventory.           |
| `data.referenceHotelId`   | string \| null            | The reference hotel the mapping was pointing at.    |
| `data.resolution`         | `"FIXED"` \| `"REJECTED"` | How the report was closed.                          |
| `data.resolvedAt`         | ISO timestamp             | When the report transitioned to its terminal state. |

## Example handler (Node)

```ts theme={null} theme={null}
app.post('/hooks/mapping', async (req, res) => {
  if (!verifyWebhook(req.header('X-Webhook-Signature')!, req.rawBody, SECRET)) {
    return res.status(401).end();
  }
  const payload = JSON.parse(req.rawBody.toString());
  if (payload.type !== 'mapping.error.resolved') return res.status(204).end();

  await ops.closeTicketFor(payload.data.reportId, payload.data.resolution);
  res.status(200).end();
});
```
