# `AttestoPhoenix.CIBAPing.Req`
[🔗](https://github.com/XukuLLC/attesto_phoenix/blob/v2.1.0/lib/attesto_phoenix/ciba_ping/req.ex#L2)

Default `AttestoPhoenix.CIBAPing` deliverer, built on `Req`.

POSTs `{"auth_req_id": ...}` as `application/json` to the client's registered
`backchannel_client_notification_endpoint` with
`Authorization: Bearer <client_notification_token>` (OpenID Connect CIBA Core
1.0 §10.2). Redirects and retries are disabled and the timeout is short:
notification delivery is best-effort and must never let a slow or hostile
client stall the OP - the tokens are already available at the token endpoint,
and a client that misses the ping falls back to polling.

A 2xx (200/204) is success; anything else (a non-2xx status - including the
401/403 the suite's non-retry module returns, or a 3xx that must NOT be
followed - or a transport error) is reported so the caller can log it and
move on.

`Req` is an optional dependency. A host that enables CIBA ping mode with the
default deliverer must have `:req` available; one that supplies its own
`ciba_ping_http_client: ...` does not.

---

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