Two bills for one email.
Courier's pricing page charges Business at $0.005 per send with no volume included, and the email provider underneath charges its own rate. At 50,000 sends that is $250 a month for the routing alone.
Courier orchestrates: you connect an email provider, an SMS provider, push and chat, and it routes each notification by your rules for $0.005 a send. Notix is the provider: a send API with templates and idempotency keys, an SMTP relay, one-time codes by email or SMS, marketing mail on the same suppression list, signed webhooks, and 50,000 emails for $15 a month. Teams that need push, chat and in-app from one call should stay on Courier; teams that were going to run it over a single email API can drop the layer.
Courier's pricing page charges Business at $0.005 per send with no volume included, and the email provider underneath charges its own rate. At 50,000 sends that is $250 a month for the routing alone.
Orchestration earns its keep when messages fan out across push, chat, SMS and email through several vendors. When every message is an email and the occasional SMS, the layer adds a dashboard, a set of rules and a request between your code and the mailbox provider.
Courier does not generate or check one-time codes and has no pre-send deliverability check; both are the provider's job, and the provider is the thing you are also paying for.
Every Courier figure was read from Courier's own pricing page and docs index on 2026-09-13; the date sits under the table. Where a row says a fact is not stated, Courier's pages did not state it and this page does not guess.
| Criterion | Courier | Notix |
|---|---|---|
| Free tier | Developer plan: 10,000 sends a month | 5,000 emails a month, 200 a day, no card, no end date |
| Entry paid plan | Business: $0.005 per send, no per-seat or channel fees | Pro $15 a month |
| Included on that plan | None included; usage-based per send, volume discounts on Enterprise | 50,000 emails, usage past that metered on the same invoice |
| SMTP relay | Not stated in the docs index | Yes, on every plan |
| SDKs | Node, Python, Go, Ruby, Java, PHP, C# (server); React, JavaScript, iOS, Android, React Native, Flutter (client) | TypeScript, Python, Go, PHP |
| Webhooks | Not stated in the docs index | Yes, signed, for email, contact and domain events |
| OTP / verification API | No | Yes, email and SMS codes |
| Deliverability check before sending | No | Yes, a pre-send check API |
| Billing outside USD | Not stated on the pricing page | USD by card; naira and shillings from a prepaid wallet |
| SLA | Enterprise SLA on the Enterprise plan | 99.9% on Pro, credits on the pricing page |
| Prices and limits read from the vendors' own pages: www.courier.com on 2026-09-13. Notix figures are from its own pricing page. | ||
Channels: email, SMS, push, chat and in-app from one send call, routed to the vendors you already have. Client SDKs for React, JavaScript, iOS, Android, React Native and Flutter beside seven server languages. A free plan of 10,000 sends a month, and an SLA on the Enterprise plan. If your product notifies people on more than two channels, Courier is the right tool and this page is not for you.
Both take a JSON request with a template and data, both return an id you can look up, and both expect you to verify a sending domain. Courier's pages do not state whether it signs webhooks or offers SMTP, so those rows are left blank rather than claimed either way.
Notix sends the mail. One bill, one log, one place where a bounce shows up with its SMTP reason.
Against $250 of routing fees at the same volume on Courier Business. Past 50,000, the extra is metered on the same invoice; the pricing page has the per-unit rate.
One call sends a code by email or SMS, one call checks it. Expiry, attempts, rate limits and risk scoring are handled server-side. See OTP email.
Delivery, bounce and complaint events signed with HMAC-SHA256, and smtp.usenotix.dev for anything that already speaks SMTP.
Post the message and get back a verdict, a score and the findings that would block a send.
A prepaid wallet in NGN or KES, topped up locally. Pro is charged from the balance each month; no dollar card needed.
Courier's send call wraps a recipient and a template in a message object; Notix takes the same fields flat. Templates are rebuilt in the Notix editor with the same variables.
// Courier send over its REST API
const response = await fetch("https://api.courier.com/send", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.COURIER_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
message: {
to: { email: "customer@example.com" },
template: "RECEIPT_TEMPLATE_ID",
data: { orderId: "48213" },
},
}),
});
// Courier then routes the message to the email provider you connected.
import { Notix } from "notix-js";
const notix = new Notix(process.env.NOTIX_API_KEY);
const { data, error } = await notix.emails.send(
{
from: "receipts@acme.com",
to: "customer@example.com",
templateId: "tpl_receipt_v4",
variables: { orderId: "48213" },
},
{ idempotencyKey: "order-48213-receipt" },
);
// Notix is the sender: no provider to connect, no routing layer between.
# Courier has no SMTP relay in its docs index; if your app already
# speaks SMTP, point it at Notix directly.
SMTP_HOST=smtp.usenotix.dev
SMTP_PORT=465 # or 587 for STARTTLS
SMTP_USER=notix
SMTP_PASS=<your Notix API key>
Add the SPF, DKIM and DMARC records Notix gives you. They sit beside your current provider's records, so both can send while you switch. The quickstart walks through it.
Recreate each Courier email template in Notix with the same variable names, then replace the send with notix-js and an idempotency key named after the thing you are sending about. Keep Courier for the channels Notix does not carry.
Export bounced and complained addresses from the provider Courier was routing to, save them as a .csv or .txt with one address per line, and upload the file under Suppressions in the dashboard before the first send.
| Emails a month | Courier (routing fee only) | Notix |
|---|---|---|
| 3,000 | Developer, $0 (10,000 sends free) | Free, $0 |
| 50,000 | Business, $0.005 × 50,000 = $250, plus the email provider's own fee | Pro, $15 |
| 100,000 | Business, $500, plus the email provider's own fee | Pro, $15 plus the 50,000 above the allowance, metered on the same invoice |
Courier's figures are the per-send Business rate on its pricing page multiplied out, with nothing included; volume discounts are stated for Enterprise only. The provider Courier routes to is a second bill this table cannot know. Notix overage is at the per-unit rate on the pricing page. Courier prices read on 2026-09-13.
Teams in Nigeria and Kenya fund a prepaid wallet in naira or shillings through local payment methods and Pro is charged from that balance each month, so nobody needs a dollar card that clears international charges. SMS to Nigerian and Kenyan numbers is prepaid from the same wallet with your own sender ID. The local price per email is on the pricing page when you open it from either country.
A free plan with no card, and Pro at $15 a month for 50,000 emails. Only sent volume is metered.
Use casesProduct notifications from templates, batched when they fan out, with delivery events back through webhooks.
AlternativesA Customer.io alternative for the transactional side: a send API with templates and idempotency keys, priced per email rather than per profile.
ProductOTPs, receipts and alerts with idempotency keys, a deliverability pre-check and a shared suppression list.
LearnHMAC-SHA256 over the timestamp and raw body, a five-minute tolerance, replay protection, and the check in four languages.
AlternativesHonest switch pages for the email APIs people move away from, with the vendor's own numbers and read dates.
5,000 emails a month on Free. When you outgrow it, Pro is $15 for 50,000, payable by card or from a naira or shilling wallet.