Concepts
A short tour of the primitives the API exposes. If you’ve worked with AWS SES the names map 1:1 — sending identities, configuration sets, suppression lists, all here.
The 5 primitives
┌─────────────────────────────────────────────────────────┐
│ Your Splashify Pro account │
│ │
│ ┌───────────────┐ ┌───────────────┐ ┌─────────────┐ │
│ │ Identity │ │ Identity │ │ Identity │ │
│ │ (your domain) │ │ (alt addr) │ │ (3rd domain)│ │
│ └───────┬───────┘ └───────┬───────┘ └──────┬──────┘ │
│ │ verified │ verified │ pending │
│ ┌───────┴──────────────────┴─────────────────┴──────┐ │
│ │ Configuration Sets │ │
│ │ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ "production" │ │ "marketing" │ │ │
│ │ │ ↓ events │ │ ↓ events │ │ │
│ │ │ → webhook A │ │ → webhook B │ │ │
│ │ │ → webhook B │ │ │ │ │
│ │ └──────────────┘ └──────────────┘ │ │
│ └────────────────────────────────────────────────────┘ │
│ ┌────────────────────────────────────────────────────┐ │
│ │ Suppression list (account-wide) │ │
│ │ bounced@example.com angry@example.com ... │ │
│ └────────────────────────────────────────────────────┘ │
│ │
│ Wallet: ₹X.XX Sandbox: ON / OFF │
└─────────────────────────────────────────────────────────┘- Sending identities —
verified domains + email addresses you can send
From:. - Configuration sets — logical groupings of sends that route events to webhook destinations.
- Suppression list — account-wide blocklist. Auto-populated by hard bounces + complaints + unsubscribes.
- Reputation — your account’s bounce + complaint rate. Drives auto-pausing if thresholds breach.
- Sandbox vs production — sandbox = 200/day cap + verified-only recipients. Production = real volume after a quick review.
Hierarchy
- Identity is account-wide. Verifying
acme.comlets you send from any address atacme.com. - Configuration set scopes sends — events from sends inside a config set go to that set’s webhook destinations.
- Suppression list is account-wide by default. Each config set
can opt to also suppress per-config-set on bounces / complaints
via
suppression_options.
Send-time flow
POST /send (with config_set + from + to)
│
▼
1. From-domain on a verified identity? ──── no → 400 FROM_NOT_VERIFIED
│ yes
▼
2. Recipient on suppression list? ──── yes → status=rejected
│ no
▼
3. Wallet balance >= ₹0.01? ──── no → 402 INSUFFICIENT_BALANCE
│ yes (or in sandbox free tier)
▼
4. Daily quota not exceeded? ──── no → 429 SANDBOX_QUOTA_REACHED
│ yes
▼
5. Queue the email for delivery
│
▼
6. Fire "Send" event → webhook destinations
│
▼
7. SMTP attempt → recipient MX
├── 250 OK → "Delivery" event
├── 5xx hard bounce → "Bounce" event + suppress
└── 4xx soft bounce → retry (5min, 30min, 2h)