# `Worldpay.CustomerEventService`
[🔗](https://github.com/iamkanishka/worldpay/blob/v1.0.0/lib/worldpay/access/token_services.ex#L63)

Worldpay **Customer Event Service API** — lifecycle events for provisioned NPTs.

This API delivers webhook events when network tokens change state:
- Token created
- Token updated (e.g. card reissued, new expiry)
- Token deleted / expired

These events are separate from payment lifecycle events (see `Worldpay.Webhooks`).

## Setup

Register your Customer Event Service endpoint URL with your Worldpay
Implementation Manager. Events are delivered as JSON webhooks.

## Event types

| Type | Description |
|---|---|
| `token_created` | New NPT provisioned |
| `token_updated` | NPT details changed (account updater) |
| `token_suspended` | NPT temporarily suspended |
| `token_resumed` | NPT re-activated |
| `token_deleted` | NPT permanently deleted |
| `token_expired` | NPT expiry reached |

# `ces_event`

```elixir
@type ces_event() :: %{
  type: atom(),
  network_token_id: String.t() | nil,
  payment_account_reference: String.t() | nil,
  card_last4: String.t() | nil,
  card_expiry: map() | nil,
  scheme: String.t() | nil,
  raw: map()
}
```

# `parse`

```elixir
@spec parse(String.t() | %{required(String.t()) =&gt; term()}) :: {:ok, ces_event()}
```

Parse an incoming Customer Event Service webhook body.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
