Failed Payment Recovery Agent with OpenCode

A recovery run is four Stripe reads and a short email, repeated once per decline. OpenCode is model-agnostic, so the cost per failure is something you set rather than accept, which matters on the day a large renewal cohort all bills at once. What the agent can reach inside Stripe does not shift with the model you choose.

Loading preview…
Free to start · guided setup

Watch it work before it's live

Run a staged conversation — no account needed. The agent handles it for real while a simulated world answers its tool calls; nothing touches real accounts, and nothing is actually sent.

Payment

Succeeded

Payment failed for Aurora Bakehouse, 89.00 EUR

Lucia Marin · lucia.marin@aurorabakehouse.es

Charge ch_3PkR2xLg on the 89.00 EUR Growth plan failed with decline code expired_card, against invoice in_1PkR2y for the 1 August billing period. Customer since March 2025 with twelve successful payments and no previous failures. The subscription is active and the next automatic retry is in three days. Card on file is a Visa ending 4417 that expired in July.

Set up in minutes

Using this template drops you into a guided setup. It asks exactly this, nothing else:

  1. Connect Stripe

    One sign-in. The agent acts through your account, scoped to what this template uses.

  2. Connect Gmail

    One sign-in. The agent acts through your account, scoped to what this template uses.

  3. Connect Slack

    One sign-in. The agent acts through your account, scoped to what this template uses.

  4. Dunning policy

    How you chase a failed payment - how soon you reach out, the tone, how many attempts before you stop, what happens to the account meanwhile, and which customers are too valuable to email without a person reading it first.

  5. Business context

    What your business sells and what the customer loses while the payment is unpaid, in your own words. The agent explains the situation from this and claims nothing beyond it.

  6. Runs on OpenCode

    Preselected for this page — connect your OpenCode account during setup, or switch to NoClick's built-in models with one click.

  7. Watch it handle a test run

    A staged conversation against a simulated world — then it’s live.

Why OpenCode for this agent

Cost per decline is yours

Choosing the model is what makes it comfortable to run this on every failure rather than only on invoices above some threshold you picked to save money.

Volume days stay flat

A card network wobble or a big annual cohort turns one failure into two hundred. Nothing in the setup changes, only the number of runs.

Before you fork

Does the model choice affect what lands in Slack?

The format does not move, since the instructions fix it at one line per failed charge with the customer, amount, reason and failure count. What can vary is judgment, mainly whether it recognises an account your policy marks as high value and skips the draft. Check that case in Test Run against whichever model you settle on.

Run it with a different agent

Put Failed Payment Recovery Agent to work on OpenCode

Free to start. Guided setup, a test run against staged conversations, and it's live.