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

# benefit_request.cancelled

> Evento emitido após cancelamento de solicitação de benefício

`benefit_request.cancelled` é emitido depois que um [PassengerBenefitRequest](/data-modelling/benefits/passenger-benefit-request) é cancelado pelo Customer.

Handlers usam este evento para executar efeitos assíncronos fora do fluxo síncrono.

## Detalhes do Evento

| Propriedade    | Valor                                  |
| -------------- | -------------------------------------- |
| **Tipo**       | `benefit_request.cancelled`            |
| **Origem**     | Atualização de PassengerBenefitRequest |
| **Publicação** | Após commit da solicitação             |
| **Quando**     | `status = CANCELED`.                   |

## Payload

| Campo        | Tipo                      | Descrição                                                 |
| ------------ | ------------------------- | --------------------------------------------------------- |
| `identifier` | `UUID`                    | Chave idempotente do evento (`passengerBenefitRequestId`) |
| `data`       | `PassengerBenefitRequest` | Entidade PassengerBenefitRequest cancelada                |

## Regras dos handlers

* Handlers não rodam na transação que publicou a solicitação.
* Falha em handler não desfaz a solicitação.
* Cada handler deve ser idempotente.
* Novos handlers podem ser adicionados sem mudar o fluxo síncrono.

## Exemplo

```json theme={null}
{
  "type": "benefit_request.cancelled",
  "identifier": "0197f712-8a7e-7a53-9d28-51f8f3c77d41",
  "data": {
    "passengerBenefitRequestId": "0197f712-8a7e-7a53-9d28-51f8f3c77d41",
    "customerId": "0197a7f6-4d36-7c0a-a7cb-54fcb33a3148",
    "fareBenefitCategoryId": "0197f710-b826-77f0-a60b-6c62b9fdd301",
    "requestedByUserId": "0197a7f6-2c4d-74ae-b89b-9d36d9c341f2",
    "reviewedByUserId": null,
    "code": "BEN-20260704-0001",
    "notes": "Solicitação de meia passagem estudantil",
    "rejectionReason": null,
    "status": "CANCELED",
    "validFrom": null,
    "validUntil": null,
    "reviewedAt": null,
    "createdBy": "0197a7f6-2c4d-74ae-b89b-9d36d9c341f2",
    "createdAt": "2026-07-04T11:30:00.000Z",
    "updatedBy": "0197a7f6-2c4d-74ae-b89b-9d36d9c341f2",
    "updatedAt": "2026-07-04T12:00:00.000Z",
    "deletedBy": null,
    "deletedAt": null
  }
}
```
