---
title: "Deploy WhatsApp Notifications API [Updated Sep'26]"
description: "Self-host WhatsApp order alerts, reminders & OTPs — no Meta approval"
category: "Bots"
url: https://railway.com/deploy/whatsapp-notifications-api
---

# Deploy WhatsApp Notifications API [Updated Sep'26]

Self-host WhatsApp order alerts, reminders & OTPs — no Meta approval

**[Deploy WhatsApp Notifications API [Updated Sep'26] on Railway](https://railway.com/template/whatsapp-notifications-api)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/whatsapp-notifications-api/manifest.json

- **Creator:** SB
- **Category:** Bots
- **Total deploys:** 1

## Template content

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### Redis https://cdn.sanity.io/images/sy1jschh/production/0ce0bfdcfbdbf69662b1116671f97c2dd788b655-157x157.svg

- **Image:** redis:8.2
- **Start command:** `/bin/sh -c "rm -rf $RAILWAY_VOLUME_MOUNT_PATH/lost+found/ && exec docker-entrypoint.sh redis-server --requirepass $REDIS_PASSWORD --save 60 1 --dir $RAILWAY_VOLUME_MOUNT_PATH"`

### Evolution API https://evolutionfoundation.com.br/favicon.png

- **Image:** evoapicloud/evolution-api:v2.3.7
- **Public domain:** Yes

## Documentation

# Deploy and Host Evolution API on Railway

Evolution API turns any WhatsApp number into a programmable notifications channel — send order updates, appointment reminders, alerts, OTPs, and broadcasts to your customers over a simple REST API, with no Meta Business approval and no per-message fees. Built on the Baileys library, it connects a real WhatsApp account over HTTP so your app, backend, or automation fires a message with a single API call. This template deploys Evolution API with PostgreSQL, Redis, and persistent session storage pre-wired and API-key authentication enabled — so you're sending programmatic WhatsApp notifications in minutes.

---

## What This Template Deploys

| Service | Purpose |
| --- | --- |
| **Evolution API** | The WhatsApp REST API, instance manager, and webhook engine |
| **PostgreSQL** | Instances, contacts, message history, and delivery records |
| **Redis** | Instance state and caching for reliable multi-instance sending |

All three connect over Railway's private network. Evolution API exposes a REST endpoint for sending and receiving messages, PostgreSQL stores message and contact data, and Redis keeps instance state fast — secured by an API key from the first boot.

---

## About Hosting

Evolution API is a capable messaging backend, and a few specifics make it a secure, reliable notifications channel — all handled here.

**Send a notification with a single API call.** The core workflow is simple: POST to Evolution API with a number and a message, and it delivers over WhatsApp. Fire order confirmations from your e-commerce backend, appointment reminders from your booking system, alerts from your monitoring stack, or OTPs from your auth flow — any system that can make an HTTP request can send a WhatsApp message, with no SDK required.

**API-key authentication from boot — don't run it open.** Evolution API's endpoints control a WhatsApp account that can send messages to your customers, so an unauthenticated deployment is a real risk. This template sets a strong `AUTHENTICATION_API_KEY` that every request must present in the `apikey` header, so only your systems can send messages. Keep it secret and rotate it if exposed.

**No Meta approval, no per-message fees — and mind account limits.** Because it uses Baileys (a WhatsApp Web connection), Evolution API needs no Meta Business approval and charges nothing per message — a major saving over official providers at notification volume. In return, respect WhatsApp's usage limits: use a dedicated business number (not personal), warm it up gradually, keep content transactional and expected, and pace sending, since aggressive blasting to unengaged numbers risks the account.

**Delivery events over webhooks, on a reliable stack.** Configure a webhook URL and Evolution API streams sent, delivered, and read receipts plus inbound replies in real time, so your system can track notification delivery and handle responses — the basis for two-way flows. This template wires PostgreSQL for durable message and contact history and Redis for instance state, the combination that keeps one or many instances sending reliably. `SERVER_URL` is set to your Railway domain so webhooks and media resolve, and both databases persist across redeploys.

Typical cost: **~$10–15/month** on Railway for the gateway, Postgres, and Redis — flat, regardless of how many notifications you send, versus per-message pricing that scales with volume. Evolution API is free and open source.

---

## How It Compares

| | Evolution API (self-hosted) | Twilio WhatsApp | Meta Cloud API | SMS gateways |
| --- | --- | --- | --- | --- |
| Cost per message | None (flat infra) | Per message | Per conversation | Per SMS |
| Meta approval | Not needed | Needed | Needed | N/A |
| Channel | WhatsApp | WhatsApp | WhatsApp | SMS |
| Two-way / webhooks | Yes | Yes | Yes | Varies |
| Data ownership | Full — your infra | Vendor | Meta | Vendor |
| Self-hostable | Yes | No | No | No |

Twilio and the Meta Cloud API are reliable for notifications but bill per message or conversation, which adds up fast at scale, and both require business approval. SMS gateways reach phones but cost per message and lack WhatsApp's rich formatting and read receipts. Evolution API's edge is unlimited-volume WhatsApp notifications at flat infrastructure cost — order updates, reminders, alerts, and OTPs — self-hosted, on infrastructure you own.

---

## Deploy in Under 5 Minutes

1. Click **Deploy on Railway** — Evolution API, PostgreSQL, and Redis build and wire together (~4 minutes)
2. Confirm `AUTHENTICATION_API_KEY` is set and the databases are connected
3. Create an instance and connect it by scanning the QR code with a dedicated WhatsApp number
4. Set a webhook URL to receive delivery receipts and replies
5. POST a test message from your app, and watch it arrive on WhatsApp

Use a dedicated business number and keep notifications transactional to protect the account.

---

## Common Use Cases

- **Order notifications** — send confirmations, shipping updates, and delivery alerts automatically
- **Appointment reminders** — reduce no-shows with automated WhatsApp reminders from your booking system
- **Monitoring alerts** — push server, uptime, and on-call alerts to a WhatsApp number or group
- **Broadcast messaging** — send announcements and campaigns to your contact list via REST

---

## Configuration

| Variable | Required | Description |
| --- | --- | --- |
| `AUTHENTICATION_API_KEY` | Required | Secures every request via the `apikey` header — set a strong value |
| `DATABASE_URL` | Auto-injected | PostgreSQL connection for durable message and contact data |
| `REDIS_URI` | Auto-injected | Redis connection for instance state and caching |
| `SERVER_URL` | Recommended | Your Railway domain, for correct webhook and media URLs |
| Webhook URL | Optional | Your endpoint to receive delivery receipts and replies |

> **Set a strong API key and keep it secret.** Every request needs `AUTHENTICATION_API_KEY` in the `apikey` header — it controls a WhatsApp account that messages your customers, so protect it. This template generates one for you.

> **Protect the number.** On Baileys, use a dedicated business number, warm it up, keep notifications transactional and expected, and pace sending — aggressive blasting risks the account. Postgres and Redis persist across redeploys.

---

## Dependencies for Evolution API Hosting

- Railway account — ~$10–15/month for the gateway, Postgres, and Redis
- PostgreSQL and Redis (both included and wired)
- A dedicated WhatsApp number (not personal) to connect via QR
- Any system that can make an HTTP request, to send notifications

### Deployment Dependencies

- [Evolution API GitHub Repository](https://github.com/EvolutionAPI/evolution-api)
- [Evolution API Documentation](https://doc.evolution-api.com/)
- [Evolution API Postman Collection](https://doc.evolution-api.com/v2/api-reference/get-information)
- [Railway Private Networking](https://docs.railway.com/guides/private-networking)

### Implementation Details

The template runs the official Evolution API image alongside PostgreSQL and Redis over Railway's private network, with only the API and manager UI exposed. Every request must present `AUTHENTICATION_API_KEY` in the `apikey` header, so the WhatsApp account — which can message your customers — isn't publicly controllable. PostgreSQL stores durable data (instances, contacts, message and delivery history) and Redis holds instance state, supporting reliable notification sending from one or many instances.

Evolution API connects to WhatsApp through the Baileys library (a WhatsApp Web session established by scanning a QR code), which needs no Meta Business approval and charges nothing per message — the basis for cost-effective, high-volume notifications. Because it relies on a WhatsApp Web session, account-safety practices matter: a dedicated business number, gradual warm-up, transactional and expected content, and paced sending, since blasting unengaged numbers risks the account. The official Meta Cloud API can be used instead where formal compliance is required. Delivery, read, and inbound events reach configured webhook URLs in real time, enabling delivery tracking and two-way flows, and `SERVER_URL` is set to the Railway domain so webhooks and media resolve. Data in PostgreSQL and Redis persist and are the components to back up.

---

## Frequently Asked Questions

**How do I send a WhatsApp notification?** POST to Evolution API's send endpoint with a number and message and your `apikey` header — it delivers over WhatsApp. Any system that can make an HTTP request can send, so it drops into an e-commerce backend, booking system, or monitoring stack with no SDK.

**How do I keep my number from getting banned?** Use a dedicated business number (never personal), warm it up gradually, keep notifications transactional and expected by recipients, and pace your sending. Aggressive blasting to unengaged numbers is what risks the account.

**Can it also receive messages?** Yes — inbound messages arrive at your webhook, so beyond one-way notifications you can build confirmations and two-way flows, or connect tools like n8n and Chatwoot for richer automation.

---

## Why Deploy Evolution API on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Evolution API on Railway you get a programmable WhatsApp notifications channel with the hard parts solved — PostgreSQL and Redis wired, API-key authentication enabled, and webhooks ready for delivery tracking. Send order updates, reminders, alerts, and OTPs over WhatsApp with no Meta approval and no per-message fees, self-hosted on infrastructure you own.

## Similar templates

- [Telegram JavaScript Bot](https://railway.com/deploy/5lRkWa) — A template for Telegram bot in JavaScript using grammY
- [Cobalt Tools [Updated Sep ’26]](https://railway.com/deploy/cobalt) — Cobalt Tools [Sep ’26] (Media Downloader, Converter & Automation) Self Host
- [Telegram Gateway](https://railway.com/deploy/railway-telegram-gateway) — Multi-bot Telegram webhook gateway with WebSocket event streaming

Open this page in a browser: https://railway.com/deploy/whatsapp-notifications-api
