Billing & Credits
PostMTA uses a credit-based pricing model. You purchase credits upfront and spend them as you send. Credits roll over month to month, and you can set up auto-reload to never run out of credit mid-campaign. This page covers everything from purchasing credits to downloading invoices.
Credits Model
Cost Per Thousand Emails
PostMTA pricing is volume-based. The more you send, the lower your effective cost per thousand emails (CPM). Pricing is applied per workspace; there is no per-user or per-domain additional charge.
Pricing Tiers
| Tier | Monthly Commitment | Cost per 1,000 Emails | Included Features |
|---|---|---|---|
| Starter | $0 (pay-as-you-go) | $1.00 | 1 sending domain, shared IP, basic analytics |
| Growth | $79/month | $0.75 | 5 sending domains, 2 dedicated IPs, full analytics, webhooks |
| Enterprise | Custom | Volume negotiated | Unlimited domains, custom IP pool, SLA, dedicated support |
How Credits Are Deducted
Credits are deducted when a message is accepted into the PostMTA delivery pipeline — not when it is delivered. A message that is accepted but later bounces or is suppressed still consumes credits.
Message accepted by PostMTA API --> credit deducted
Message rejected (suppressed) --> no credit deductedScheduled messages consume credits at the time they are accepted for scheduling, not when they are sent.
Credit Calculation
credits_used = ceiling(messages_sent / 1000) * price_per_thousandExample: sending 12,847 messages at $1.00 per 1,000:
ceil(12847 / 1000) = 13 batches
13 * $1.00 = $13.00Partial Batch Rounding
Partial batches are rounded up to the nearest thousand. Sending 501 messages costs the same as sending 1,000. Plan your campaign sizes accordingly to avoid waste from rounding on small sends.
Top-Up via Dashboard
Purchasing Credits
Navigate to /app/credits in the dashboard. Select the credit pack you want to purchase and complete the checkout. Credit packs are available in the following sizes:
| Pack | Credits | Price | Effective CPM |
|---|---|---|---|
| Starter Pack | 1,000 | $1.00 | $1.00 |
| Standard Pack | 10,000 | $9.00 | $0.90 |
| Growth Pack | 50,000 | $40.00 | $0.80 |
| Scale Pack | 250,000 | $175.00 | $0.70 |
| Enterprise Pack | 1,000,000 | $600.00 | $0.60 |
Payment Methods
PostMTA accepts the following payment methods:
- Visa, Mastercard, American Express, Discover (credit/debit)
- PayPal
- Bank transfer (ACH) for Enterprise plans (net-30 terms available)
All credit card transactions are processed through Stripe. PostMTA does not store card details.
Top-Up via API
curl -X POST https://api.postmta.com/v1/credits/topup \
-H "Authorization: Bearer pmta_l...xxxx" \
-H "Content-Type: application/json" \
-d '{
"amount": 10000,
"payment_method_id": "pmt_01HXABC123DEF456",
"pack_id": "pack_standard"
}'Response:
{
"data": {
"transaction_id": "txn_01HXABC123DEF456",
"credits_added": 10000,
"new_balance": 14231,
"amount_charged": 9.00,
"currency": "USD",
"created_at": "2026-07-18T10:00:00Z"
}
}Balance Enquiry
curl https://api.postmta.com/v1/credits/balance \
-H "Authorization: Bearer pmta_l...xxxx"{
"data": {
"workspace_id": "ws_01HXABC123DEF456",
"balance": 14231,
"plan": "Growth",
"credit_limit": null,
"auto_reload_enabled": true,
"auto_reload_threshold": 5000,
"auto_reload_amount": 10000
}
}Auto-Reload
Overview
Auto-reload automatically purchases a credit pack when your balance falls below a configurable threshold. This prevents mid-campaign credit exhaustion, which would cause messages to be rejected with a 429 CREDIT_LIMIT_EXCEEDED response.
Configure Auto-Reload
Set the threshold (minimum balance) and the top-up amount in the dashboard under /app/credits → Auto-Reload, or via the API:
curl -X PUT https://api.postmta.com/v1/credits/auto-reload \
-H "Authorization: Bearer pmta_l...xxxx" \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"threshold": 5000,
"amount": 10000,
"payment_method_id": "pmt_01HXABC123DEF456"
}'Behavior
- Auto-reload triggers when the balance falls at or below the threshold
- The top-up is processed using the stored payment method
- Only one auto-reload purchase fires per billing hour, even if multiple campaigns consume credits rapidly
- If the payment method fails, a notification is sent to workspace Owners and auto-reload is temporarily disabled
Auto-Reload Example
You have a balance of 8,000 credits with a threshold of 5,000 and an auto-reload amount of 10,000. You launch a campaign that consumes 6,000 credits over 2 hours:
Balance at launch: 8,000
After campaign send: 2,000 (below threshold of 5,000)
Auto-reload triggers: 2,000 --> 12,000
Remaining campaign: continues without interruptionCredit Rollover
Overview
Unused credits roll over from month to month indefinitely. There is no expiration on credits for Growth and Enterprise plans. Starter plan credits roll over for up to 12 months from the date of purchase.
Rollover Example
Month 1: Purchase 50,000 credits
Month 1: Send 38,000 credits worth of email
Month 1: Remaining: 12,000 credits
Month 2: 12,000 credits carry forward + purchase 50,000 more
Month 2: Send 45,000 credits worth of email
Month 2: Remaining: 17,000 credits
Month 3: 17,000 credits carry forward...Rollover in Reports
The credits transaction report shows the running balance and distinguishes between purchased credits, rolled-over credits, and credits consumed:
{
"transaction_id": "txn_01HXABC123DEF456",
"type": "credit_purchase",
"amount": 10000,
"balance_after": 14231,
"rollover_credits": 4231,
"purchased_credits": 10000,
"created_at": "2026-07-01T00:00:00Z"
}Invoice Generation
Overview
Invoices are generated on the first of each month for the previous billing period (Month 1 – Month 30). Invoices include all credit purchases, auto-reload transactions, plan fees, and any dedicated IP charges.
Invoice Contents
Each invoice includes:
- Workspace ID and billing address
- Itemised line items: plan fee, credit purchases, IP charges
- Credits consumed in the period
- Credits remaining (running balance)
- Payment method last 4 digits
- Tax (where applicable based on billing address)
- PDF download link
Download Invoice
Navigate to /app/credits → Invoices. Select the billing period and click Download PDF. You can also retrieve invoices programmatically:
curl https://api.postmta.com/v1/credits/invoices \
-H "Authorization: Bearer pmta_l...xxxx"{
"data": [
{
"invoice_id": "inv_01HXABC123DEF456",
"period_start": "2026-06-01",
"period_end": "2026-06-30",
"total_amount": 149.00,
"currency": "USD",
"status": "paid",
"pdf_url": "https://api.postmta.com/v1/credits/invoices/inv_01HXABC123DEF456/pdf",
"created_at": "2026-07-01T00:00:00Z"
}
]
}Receipts for Individual Purchases
Each credit purchase generates its own receipt. Receipts are emailed to workspace Owners and are also accessible via the API:
curl https://api.postmta.com/v1/credits/transactions \
-H "Authorization: Bearer pmta_l...xxxx"{
"data": [
{
"transaction_id": "txn_01HXABC123DEF456",
"type": "credit_purchase",
"amount": 10000,
"amount_charged": 9.00,
"currency": "USD",
"invoice_id": "inv_01HXABC123DEF456",
"created_at": "2026-07-18T10:00:00Z"
}
]
}Plan Tiers
Starter Plan
- Pay-as-you-go (no monthly commitment)
- $1.00 per 1,000 emails
- 1 sending domain
- Shared IP address (warmup not required)
- Basic analytics (sent, delivered, bounced, complained)
- Webhook support (1 endpoint)
- Email support (48-hour response SLA)
Growth Plan
- $79/month base fee
- $0.75 per 1,000 emails (25% discount vs Starter)
- 5 sending domains
- 2 dedicated IP addresses (with warmup support)
- Full analytics: open tracking, click tracking, cohort analysis, RPE
- Webhook support (up to 5 endpoints)
- Auto-reload and credit rollover
- Priority email and chat support (8-hour response SLA)
Enterprise Plan
- Custom monthly commitment and volume pricing
- Unlimited sending domains
- Custom dedicated IP pool (size determined by volume)
- Full analytics with data export and BI integrations
- Unlimited webhook endpoints
- Custom webhooks and event types
- Dedicated account manager and CSM
- 99.9% uptime SLA with service credits
- Custom contract and net-30 billing
Upgrading and Downgrading
You can upgrade your plan at any time. The upgrade takes effect immediately and you are charged a prorated amount for the remainder of the billing period.
Downgrades take effect at the start of the next billing period. You retain access to the current plan's features until the period ends. If your usage requires features not available in the target plan, you will be prompted to adjust usage before the downgrade.
Dedicated IP Pricing
IP Pricing
| Item | Price | Notes |
|---|---|---|
| Additional dedicated IP | $25/month per IP | Applies to Starter and Growth plans |
| IP warmup management | Included | Automatic epoch-based shaping |
| IP rotation | Included | Available on Growth and Enterprise |
| Custom IP pool assignment | Included | Available on Growth and Enterprise |
Shared IPs are included in all plans at no extra charge. Shared IPs are managed collectively by PostMTA; you cannot assign specific recipients or campaigns to a shared IP.
IP Count Recommendation
recommended_ips = ceiling(max_daily_volume / 50000)Example: if your peak daily volume is 150,000 emails:
ceil(150000 / 50000) = 3 IPsCredits Refund Policy
Eligibility
Credits may be refunded under the following conditions:
- You have been charged for credits that were never used (e.g., accidental top-up)
- You are cancelling your workspace and have a remaining balance
- You have been overcharged due to a billing error
Refund Process
Contact support via the dashboard or at hello@netwit.ca. Refund requests are reviewed within 3 business days. Approved refunds are processed to the original payment method within 5-10 business days.
Not Eligible for Refund
- Credits consumed before a refund request is processed
- Credits more than 12 months old (Starter plan)
- Credits used in a campaign that was sent; credits represent value already delivered
- Monthly plan fees (these are for access, not credits)
Workspace Cancellation
To cancel your workspace, navigate to /app/settings → Danger Zone → Cancel Workspace. Cancellation immediately:
- Stops all sending from the workspace
- Disables all API keys
- Schedules all data for deletion per the data retention policy
Any remaining credit balance is refunded within 30 days of cancellation confirmation.
Billing FAQ
What happens if I exceed my plan volume?
PostMTA does not hard-cut off sending when you exceed your plan's volume tier. Growth plan emails beyond the tier threshold are billed at the lower rate automatically. Enterprise customers have a committed volume agreement; overages beyond the commitment are billed at the overage rate specified in the contract.
What happens when my balance reaches zero?
When your balance reaches zero (or negative), PostMTA stops accepting new messages and returns 429 CREDIT_LIMIT_EXCEEDED for all injection attempts. In-flight messages already accepted continue to be delivered. Auto-reload fires if it is configured; otherwise, you must manually purchase credits.
Are taxes included?
Prices shown are in USD and exclude applicable taxes (VAT, GST, sales tax) based on your billing address. Tax is calculated and shown on the invoice before payment.
Is the plan fee prorated on upgrade?
Yes. When you upgrade mid-month, you are charged only for the remaining days in the billing period at the new plan rate, minus any credit already paid for the current period.