# Nofy docs > Nofy is Encipher's notification API: Email, WhatsApp, Push and SMS through one handoff. ## Get started - [Introduction](https://nofy.encipher.co.tz/docs/introduction.md): Nofy is Encipher's notification API. Send Email, WhatsApp, Push and SMS through one handoff, then know exactly what happened to every recipient. - [Quickstart](https://nofy.encipher.co.tz/docs/quickstart.md): Send your first notification in about five minutes, from a token to a tracked delivery. - [Authentication](https://nofy.encipher.co.tz/docs/authentication.md): Client-credentials tokens for the API, idempotency keys for safe retries, and single sign-on for the console. ## Sending - [Sending on v2](https://nofy.encipher.co.tz/docs/sending-v2.md): One handoff, any mix of channels. The message shape for SMS, Email, Push and WhatsApp, and how to follow each delivery. - [Tenants & quotas](https://nofy.encipher.co.tz/docs/tenants-quotas.md): Register your customers as tenants, and cap spend per tenant and per client. - [Devices & push](https://nofy.encipher.co.tz/docs/devices.md): Register handsets so pushes can address your user ids, and deactivate them on logout. ## Delivery - [Callbacks](https://nofy.encipher.co.tz/docs/callbacks.md): Signed status posts for every terminal delivery state, how to verify them, and how to reconcile when your endpoint was down. - [Errors & retries](https://nofy.encipher.co.tz/docs/errors.md): What each HTTP error means, how failed deliveries are retried, and which failures raise an alert. ## SDKs - [Python SDK](https://nofy.encipher.co.tz/docs/sdk.md): One client for every endpoint. Tokens, idempotency keys and error types are handled for you. ## Legacy - [Legacy v1 SMS](https://nofy.encipher.co.tz/docs/legacy-v1.md): The original send path. It still sends SMS, but new integrations should use v2. ## API reference - [POST /v2/messages](https://nofy.encipher.co.tz/docs/api/send-message/): Send one handoff across channels - [GET /v2/deliveries](https://nofy.encipher.co.tz/docs/api/list-deliveries/): Reconcile delivery state - [POST /v2/tenants](https://nofy.encipher.co.tz/docs/api/provision-tenant/): Register one of your customers - [POST /v2/devices](https://nofy.encipher.co.tz/docs/api/register-device/): Register or refresh a handset - [DELETE /v2/devices](https://nofy.encipher.co.tz/docs/api/deactivate-devices/): Deactivate one token or a user's fleet - [POST /v1/oauth2/token/](https://nofy.encipher.co.tz/docs/api/create-token/): Mint a client-credentials token - [POST /v1/notification/send/](https://nofy.encipher.co.tz/docs/api/v1-send/): The original send path - [GET /v1/notification/list/](https://nofy.encipher.co.tz/docs/api/v1-list/): Stored v1 notifications - [POST /v1/device/device/register/](https://nofy.encipher.co.tz/docs/api/v1-register-device/): Register a Firebase device (legacy) - [GET /v1/device/device/list/](https://nofy.encipher.co.tz/docs/api/v1-list-devices/): List Firebase devices (legacy)