> ## 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.

# credit_grant.expired

> Evento emitido após expiração de crédito

`credit_grant.expired` é emitido depois que um [CreditGrant](/data-modelling/credit-grant/credit-grant) expira.

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

## Detalhes do Evento

| Propriedade    | Valor                      |
| -------------- | -------------------------- |
| **Tipo**       | `credit_grant.expired`     |
| **Origem**     | Scheduler de crédito       |
| **Publicação** | Após commit do CreditGrant |
| **Quando**     | `status = EXPIRED`.        |

## Handlers

| Handler                             | Responsabilidade             | Dados usados | Execução    |
| ----------------------------------- | ---------------------------- | ------------ | ----------- |
| `send-credit-grant-expired-message` | Avisa o cliente ou operação. | `data`       | Assíncrona. |

## Payload

| Campo  | Tipo          | Descrição                     |
| ------ | ------------- | ----------------------------- |
| `data` | `CreditGrant` | Entidade CreditGrant expirada |

## Regras dos handlers

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

## Exemplo

```json theme={null}
{
  "type": "credit_grant.expired",
  "data": {
    "creditGrantId": "0197f7b0-9a63-720d-b4c7-e17390b3a901",
    "organizationId": "0197a801-1690-7590-b3cf-19599b9be3e4",
    "companyId": "0197a801-6a42-79aa-9e56-d3c85148c0fa",
    "customerId": "0197a7f6-4d36-7c0a-a7cb-54fcb33a3148",
    "grantedByUserId": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
    "code": "CRD-20260704-0001",
    "reason": "Crédito interno concedido pela Company",
    "amount": 5000,
    "availableAmount": 3500,
    "reservedAmount": 0,
    "usedAmount": 1500,
    "startsAt": "2026-07-04T00:00:00.000Z",
    "expiresAt": "2026-07-04T00:00:00.000Z",
    "status": "EXPIRED",
    "canceledAt": null,
    "consumedAt": null,
    "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
    "createdAt": "2026-07-04T14:30:00.000Z",
    "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
    "updatedAt": "2026-07-04T14:45:00.000Z",
    "deletedBy": null,
    "deletedAt": null
  }
}
```
