Systeme.io logo

Systeme.io automation

Refund a Systeme.io customer and send the refund invoice

A buyer writes in after a launch asking for a refund. You open Sales, find the transaction by email, click Refund, then go back to the same row to send the invoice, and later remember the course access.

Cotlet does it in your own Systeme.io account with list_transactions, get_transaction, refund_transaction and send_invoice, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Official options

Can Systeme.io do this on its own?

Systeme.io's public API and MCP server have no tools for transactions, refunds or invoices (checked 12 Oct 2026); sales reach your code only as the SALE_NEW and SALE_CANCELED webhooks. The MCP server can create automation rules with a Sale canceled trigger and a Revoke access to course action, but nothing outside the dashboard issues the refund or sends the invoice.

By hand

How you do it in Systeme.io today

  1. Open the Sales tab in Systeme.io, click Transactions, type the buyer's address in the Customer email field of the Filter by menu and click Filter.
  2. Click the three-dot menu of the matching transaction, choose Refund and confirm; Systeme.io only refunds the whole transaction.
  3. Open the same three-dot menu again and choose "Send invoice to customer" so the buyer gets the invoice with the negative amount.
  4. If the offer included a course, go to Assets > Courses > Students, click the buyer's email, then under Enrollments click the three dots, choose Dismiss and Confirm.
  5. Every request repeats four screens. The invoice step and the course access are the parts that get forgotten, and a buyer with two sales of the same offer makes it easy to refund the wrong one.

With an agent

How to refund a Systeme.io customer and send the refund invoice

Prompt

Ana (ana@example.com) wants her money back for the Starter course she bought yesterday. Refund it and email her the refund invoice.
  1. 01

    Find the one sale the buyer means

    The agent filters list_transactions by the address the buyer wrote from and a window around the purchase date they give. With two sales of the same offer it picks the one matching the date and amount, and with none it asks you for the email used at checkout instead of guessing.

  2. 02

    Make sure the money is still there

    get_transaction shows whether the sale was already refunded. A refunded sale ends the run with a note, so a buyer who wrote twice never gets two refunds.

  3. 03

    Refuse a partial amount

    When the request asks for half back or a fixed sum, the agent stops and tells you that the dashboard refund is all or nothing. Only a full refund goes ahead, after your OK.

  4. 04

    Handle a failed refund

    If the payment gateway rejects the refund, usually because its balance is too low, the agent reports the gateway message and does not retry or send any invoice.

  5. 05

    Send proof, then flag access

    After a successful refund the agent emails the negative-amount invoice with send_invoice. It then names any course in the refunded offer, so you can dismiss the enrollment or let your own automation rule do it.

What you get back

Example data

ana@example.com: sale tr_20931, Starter course, EUR 97.00 on 11 Oct 2026.
Refunded in full after your OK. Invoice with -97.00 EUR sent to ana@example.com.
Still to do: Ana is enrolled in "Starter course"; dismiss her under Assets > Courses > Students.
lukas@example.com: sale tr_20877 was refunded on 2 Oct, nothing done.
mia@example.com asked for 50% back: not refunded, Systeme.io refunds whole sales only.

Other ways to ask

  • Refund every sale of the "Black Friday bundle" bought by the five addresses in this list and send each one the refund invoice.
  • Check whether tom@example.com was already refunded for Pro membership, and only refund if not.
  • Refund order tr_20944 but do not send the invoice; the client wants it from our accountant.

Before you automate it

What Systeme.io allows, and what to know first

  • Systeme.io supports full refunds only, so a goodwill partial refund cannot be issued from Sales > Transactions.
  • A Systeme.io refund depends on the payment gateway, and the gateway balance must hold enough funds to cover it.
  • After a refund Systeme.io creates an invoice with a negative amount, which you can send to the customer as proof of the refund.
  • Systeme.io sends invoices one at a time from the "Send invoice to customer" action; several invoices go out through Export to PDF and your own email.
  • Dismissing a Systeme.io course enrollment removes access to the content but keeps the buyer in the Students list.

refund_transaction and send_invoice ask for your OK by default. To run it on a schedule without you, switch confirmation off for those tools in your dashboard.

Sources: Systeme.io Help: how to refund your customer · Systeme.io Help: how to send an invoice to a client · Systeme.io Help: how to revoke a student's access to a course · Systeme.io Help: how to use the MCP server

REST

Call refund_transaction from a script

curl

curl https://cotlet.dev/api/v1/systeme-io/refund_transaction \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"transaction_id":"tr_20931"}'

Example response

{
  "transaction_id": "tr_20931",
  "status": "refunded",
  "refunded_amount": 97,
  "currency": "EUR"
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the tool is systeme-io_refund_transaction. Example data.

Schedule it in n8n, Make, Zapier or cron

Tools

Systeme.io tools this automation uses

Cotlet Systeme.io tools used to refund a Systeme.io customer and send the refund invoice
Tool Parameters
list_transactions customer_email, offer, type, from, to, customer_country, customer_type, limit, cursor
get_transaction transaction_id
refund_transaction transaction_id
send_invoice transaction_id
All 13 Systeme.io tools with descriptions

Frequently asked questions

Can Systeme.io remove course access after a refund on its own?

Systeme.io automation rules offer a Sale canceled trigger and a Revoke access to course action. The refund help article does not say whether a dashboard refund fires Sale canceled, so test the rule on one sale before relying on it.

Give your agent access to Systeme.io.

Free 7-day trial with 5,000 credits, no card needed. Cotlet is independent and not affiliated with Systeme.io.