# `MPP.Telemetry`
[🔗](https://github.com/ZenHive/mpp/blob/v0.10.0/lib/mpp/telemetry.ex#L1)

Server-side payment observability via standard `:telemetry` events.

Mirrors the reference SDK payment-event-hooks surface
(`challenge.created`, `payment.failed`, `payment.success`) as Elixir
telemetry events at challenge, verification, and receipt boundaries.

Payloads are safe to log — no raw credentials or payment proof appear in
metadata; only challenge IDs, method/intent names, charge amounts, and
high-level error or receipt outcomes.

## Events

  * `[:mpp, :challenge]` — challenge issued (402 response / retry)
  * `[:mpp, :verify, :start]` — credential verification began
  * `[:mpp, :verify, :ok]` — verification succeeded
  * `[:mpp, :verify, :fail]` — verification failed
  * `[:mpp, :receipt]` — receipt produced after successful verification

Measurements on `[:mpp, :verify, :ok]` and `[:mpp, :verify, :fail]` include
`:duration` (native monotonic time from start to outcome).

# `metadata`

```elixir
@type metadata() :: map()
```

# `monotonic_time`

```elixir
@type monotonic_time() :: integer()
```

---

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