AI sends personalized payment reminders with amounts, due dates, and direct payment links before bills come due. Fully automated.
Customers miss payments because they simply forget. Life gets busy, due dates slip, and before they know it, they're hit with late fees, service interruptions, or credit impacts. This creates unnecessary friction and costs for both parties. The solution is simple but hard to execute at scale: send the right reminder at the right time to the right person.
MultiMail's AI agent sends proactive payment reminders before due dates for recurring bills, subscriptions, and loan payments. Each reminder includes the specific amount, due date, payment methods, and a direct payment link. Autonomous oversight handles high-volume, templated reminders without delay — because timely reminders with verified billing data are low-risk.
Your AI agent runs daily to identify upcoming payments — subscriptions, loan installments, or service fees — that are due within the configured reminder window.
The agent checks which customers have upcoming payments that haven't been processed yet, filtering out those who have already paid or are set up for auto-pay.
Each reminder includes the customer's specific amount, due date, available payment methods, and a direct payment link. The email is sent immediately under autonomous oversight.
The agent tracks which reminders were sent and follows up if payment hasn't been received by the due date, escalating to billing-reminders or invoice-follow-up workflows.
import requests
from datetime import datetime, timedelta
API = "https://api.multimail.dev/v1"
HEADERS = {"Authorization": "Bearer mm_live_xxx"}
def send_payment_reminders(payments: list):
today = datetime.utcnow().date()
reminder_window = today + timedelta(days=3)
for payment in payments:
if payment["status"] == "paid" or payment["auto_pay"]:
continue
if today <= payment["due_date"] <= reminder_window:
days_until = (payment["due_date"] - today).days
body = (
f"Hi {payment[&"cm">#039;customer_name']},\n\n"
f"This is a friendly reminder that your "
f"{payment[&"cm">#039;description']} payment of "
f"${payment[&"cm">#039;amount']:.2f} is due "
f"{&"cm">#039;tomorrow' if days_until == 1 else f'in {days_until} days'} "
f"on {payment[&"cm">#039;due_date']}.\n\n"
f"Pay now: {payment[&"cm">#039;payment_url']}\n\n"
f"Payment methods: {&"cm">#039;, '.join(payment['methods'])}\n\n"
f"If you&"cm">#039;ve already submitted payment, "
f"please disregard this reminder."
)
requests.post(
f"{API}/send",
headers=HEADERS,
json={
"from": "[email protected]",
"to": payment["customer_email"],
"subject": f"Payment of ${payment[&"cm">#039;amount']:.2f} due {payment['due_date']}",
"text_body": body
}
)Identify upcoming payments and send proactive reminder emails.
import requests
from datetime import datetime
API = "https://api.multimail.dev/v1"
HEADERS = {"Authorization": "Bearer mm_live_xxx"}
def follow_up_missed_payments(payments: list):
today = datetime.utcnow().date()
for payment in payments:
if payment["status"] == "paid":
continue
days_overdue = (today - payment["due_date"]).days
if days_overdue == 1:
body = (
f"Hi {payment[&"cm">#039;customer_name']},\n\n"
f"Your {payment[&"cm">#039;description']} payment of "
f"${payment[&"cm">#039;amount']:.2f} was due yesterday. "
f"To avoid any service interruption, please "
f"submit your payment as soon as possible.\n\n"
f"Pay now: {payment[&"cm">#039;payment_url']}\n\n"
f"Having trouble? Reply to this email for help."
)
requests.post(
f"{API}/send",
headers=HEADERS,
json={
"from": "[email protected]",
"to": payment["customer_email"],
"subject": f"Past due: ${payment[&"cm">#039;amount']:.2f} payment",
"text_body": body
}
)Follow up on payments that weren't received by the due date.
"cm">// Using MultiMail MCP tools for payment reminders
async function sendPaymentReminders(payments: Payment[]) {
const today = new Date();
for (const payment of payments) {
if (payment.status === "paid" || payment.autoPay) continue;
const daysUntil = daysBetween(today, payment.dueDate);
if (daysUntil < 0 || daysUntil > 3) continue;
await mcp.send_email({
to: payment.customerEmail,
subject: `Payment of $${payment.amount.toFixed(2)} due ${payment.dueDate}`,
text_body: [
`Hi ${payment.customerName},`,
``,
`Your ${payment.description} payment of $${payment.amount.toFixed(2)}`,
`is due ${daysUntil === 1 ? "tomorrow" : `in ${daysUntil} days`}.`,
``,
`Pay now: ${payment.paymentUrl}`,
``,
`If you've already paid, please disregard this reminder.`
].join("\n")
});
await mcp.add_contact({
email: payment.customerEmail,
metadata: { last_reminder: today.toISOString() }
});
}
}Send payment reminders using MultiMail MCP tools.
Proactive reminders before the due date are the single most effective way to reduce late payments. Customers who are reminded on time pay on time.
Every reminder includes a one-click payment link, reducing friction between reminder and payment. The fewer steps between 'I should pay this' and 'done,' the better.
The agent skips customers with auto-pay enabled or those who have already paid, preventing unnecessary reminders that annoy reliable payers.
Pre-due reminders are informational, not collection notices. The agent's messaging stays within appropriate bounds for payment reminders, escalating to the collection-notices use case when legally required.
Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a 38-tool MCP server. Formally verified in Lean 4.