Recurly automation · runs daily
List past-due Recurly accounts
Your billing team opens Recurly each morning to see who is behind on payment, then jumps between the accounts list, each subscription and each invoice to learn what is owed and for how long.
Cotlet does it in your own Recurly account with list_subscriptions, list_invoices and get_account, called by your AI agent, an n8n workflow or a script.
Hosted · nothing to install or maintain
Can Recurly do this on its own?
Recurly's API lists subscriptions with state past_due and invoices with state past_due (checked 14 Oct 2026), so the data is there. It leaves you to join subscriptions, invoices and accounts in your own code and run that code on a schedule. Recurly's Zapier app has triggers for new accounts, invoices, subscriptions and transactions, but no trigger that lists what is past due today.
How you do it in Recurly today
- In the Admin Console, open the accounts overview. Recurly lets you filter accounts by status; Past due is a subscription status for subscribers with at least one invoice not paid by its due date.
- Open each account from the result and click the subscription name to see its state and current plan.
- Go to the account's invoices and read which one is unpaid, its due date and its total.
- Copy the account, the invoice number and the amount into the sheet or ticket the team works from.
- Repeat tomorrow: invoices that dunning collected drop out, new ones appear, and the list has to be rebuilt by hand each time.
How to list past-due Recurly accounts
Every morning, list Recurly subscriptions that are past due. For each, show the account, the unpaid invoice and its amount, and sort by the oldest invoice first. - 01
Start from past-due subscriptions
Your agent calls list_subscriptions with state past_due and pages until the list is empty, so a long backlog is read as one batch. Recurly returns active or canceled records here, because past due is a filter, not a stored state.
- 02
Find the unpaid invoice
For each account it calls list_invoices with state past_due and keeps the oldest one per account. An account with two unpaid invoices shows both amounts and counts as one row.
- 03
Add who the customer is
get_account fills in the company name and email, so the row reads as a customer and not as a code. Accounts the agent cannot open are listed with the code only.
- 04
Group by age
The agent sorts by the invoice creation date and splits the list into new this week and older, so you start with the longest-overdue accounts.
- 05
Report, do not collect
This job only reads. Nothing is charged, closed or cancelled, and no customer gets a message.
What you get back
Past-due subscriptions: 7 (checked 08:00)
Oldest first:
- acme-co, Acme Co: invoice 1042, $240.00, created 6 Sep
- bright-lab, Bright Lab: invoice 1077, $99.00, created 21 Sep
- north-yard, North Yard: invoices 1081 and 1090, $198.00 in total
No account has more than two unpaid invoices. Other ways to ask
- Every Monday, list past-due accounts whose unpaid invoice total is over $500.
- List canceled subscriptions that still have a past-due invoice, so I can mark the invoice as failed.
- Show past-due accounts that have a coupon redemption, so I can check if the discount caused the failed payment.
- Send me the list as a table I can paste into a Slack message, but do not contact the customers.
What Recurly allows, and what to know first
- Recurly's accounts dashboard defines Past due as a subscription status for subscribers with at least one invoice that was not paid by its due date.
- A past_due subscription query returns records marked active or canceled, because Recurly stores only the base states pending, active, canceled, expired and future.
- Recurly invoices have exactly one state: open, collected, failed or past_due.
- If a subscription expires outside of dunning, its past-due invoices stay open and in dunning until someone marks them as failed manually.
- Recurly returns lists in pages of 50 by default and 200 at most, with the total in an X-Records header.
Every tool here only reads, so it can run daily from n8n, Make, Zapier or cron without waiting for your OK.
Sources: Recurly Docs: Accounts dashboard · Recurly API reference: List Subscriptions · Recurly API reference: List Invoices · Recurly Docs: Expire/cancel subscription
Call list_subscriptions from a script
curl "https://cotlet.dev/api/v1/recurly/subscriptions?state=past_due&per_page=50" \
-H "Authorization: Bearer $COTLET_API_KEY" {
"subscriptions": [
{
"subscription_id": "44f83d0cbf86d2b8a5b3d3e6c3e8b16f",
"account_code": "acme-co",
"plan_code": "team",
"state": "active",
"quantity": 1,
"unit_amount_in_cents": 24000,
"currency": "USD",
"current_period_ends_at": "2026-11-14T00:00:00Z"
}
],
"total": 1,
"next_cursor": null
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is recurly_read → list_subscriptions. Example data.
Schedule it in n8n, Make, Zapier or cronRecurly tools this automation uses
| Tool | Parameters |
|---|---|
| list_subscriptions | state, per_page, cursor |
| list_invoices | state, per_page, cursor |
| get_account | account_code |
Frequently asked questions
Does the agent try to collect the payment?
No. This job reads subscriptions and invoices only. Recurly's own dunning keeps retrying according to your site settings, and your agent does not change that.
Is it safe to connect Recurly to Cotlet?
Yes. You sign in to Recurly yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Recurly once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.
Give your agent access to Recurly.
Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Recurly.