Never let an invoice slip through
List of overdue invoices from your payment provider
What you will receive
You have 3 overdue invoices
just now
Overdue Invoices 1. Acme Corp - $2,500 (15 days overdue) 2. Widget Inc - $850 (7 days overdue) 3. Tech Co - $1,200 (3 days overdue) Total overdue: $4,550 Send reminders →
How it works
- 1Humrun checks your Stripe account for open invoices
- 2It filters for invoices past their due date
- 3You get a list of overdue invoices to follow up on
You configure
sk_live_...
Your Stripe secret key (starts with sk_)
View Python code
import requests
import os
from datetime import datetime
STRIPE_API_KEY = os.environ.get("STRIPE_API_KEY")
# Fetch open invoices from Stripe
response = requests.get(
"https://api.stripe.com/v1/invoices",
auth=(STRIPE_API_KEY, ""),
params={
"status": "open",
"limit": 100
}
)
data = response.json()
invoices = data.get("data", [])
now = datetime.utcnow()
overdue = []
for inv in invoices:
due_date = inv.get("due_date")
if due_date and due_date < now.timestamp():
days_overdue = (now.timestamp() - due_date) // 86400
overdue.append({
"customer": inv.get("customer_name", inv.get("customer_email", "Unknown")),
"amount": inv["amount_due"] / 100,
"days": int(days_overdue)
})
if overdue:
overdue.sort(key=lambda x: x["days"], reverse=True)
total = sum(inv["amount"] for inv in overdue)
print(f"Overdue Invoices: {len(overdue)}\n")
for inv in overdue:
print(f"• {inv['customer']}: $" + f"{inv['amount']:,.2f} ({inv['days']} days overdue)")
print(f"\nTotal overdue: $" + f"{total:,.2f}")
raise Exception(f"You have {len(overdue)} overdue invoices totaling $" + f"{total:,.2f}")
else:
print("No overdue invoices. All caught up!")Suggested schedule: Every day at 9 AM•Notifications: After every run