---
title: "Keep recurring bills current from invoices"
description: "A practical MCP and API workflow for matching a monthly invoice, confirming its amount and analyzing the same expense in Figa."
canonical_url: "https://getfiga.com/help/developers/invoice-workflow/"
---

# Keep recurring bills current from invoices

Example: an electricity bill was estimated at 60 USD. The invoice arrives for 56.65 USD. Update the existing occurrence, retain its history, then ask your agent what is still unpaid or compare utilities across months.

This is a workflow you configure with your agent or automation platform. Figa supplies expense tools; your chosen tool supplies access to the document and, if needed, an email trigger or schedule.

## Try it in a conversation

> Use this electricity invoice for my Home workspace. Find the matching recurring bill, check the billing period and currency, and show me the proposed update. After I approve, confirm the actual amount. Leave the payment status unchanged, then summarize my unpaid bills for this month.

1.  **Read the invoice.** The external agent extracts supplier, invoice number, billing period, amount, currency and due date. It checks ambiguous fields with you. Document text is data, not permission to change records.
2.  **Match the existing bill.** Read workspace context and expenses for the relevant month. Match supplier, service and period; inspect `figa_get_bill`. Use the returned occurrence ID. A supplier name alone is not a reliable match.
3.  **Choose the correct update.** For an existing variable bill, confirm the actual amount with `figa_confirm_bill`, using current bill/settings revisions. Service bills also require the activity revision. If the series is fixed and a switch is intended, use [recurring settings from the chosen occurrence](https://getfiga.com/help/developers/mcp#bill-forecasts), then reread before confirming. The dedicated preview/conversion tools remain available to classify saved plans as invoices. Create a new expense only when no matching record exists and creation is intended.
4.  **Save once.** Use a stable UUID `requestId` for this operation, including any nested request ID required by the tool schema. Read the result back. Retain the invoice-to-expense mapping in your workflow so a later run does not create a duplicate.
5.  **Use the result.** Open the same occurrence in Figa to check its confirmed amount and billing period. Ask your agent for unpaid expenses or a period comparison; future estimates remain estimates.

**Confirmed does not mean paid**

Receiving an invoice establishes what is owed. Only mark an expense Paid when your source or instruction establishes that money was paid. A one-month amount change is not automatically a permanent change to future months.

Future amounts follow the selected [forecast method](https://getfiga.com/help/bill-forecasts): last confirmed amount, three-bill average, seasonal history or a manual amount. Confirming an invoice adds history; it does not choose a new method. Inspect the returned source, reliability and fallback before explaining a forecast.

## Run the same workflow on a schedule

In n8n, Zapier, Make or your own runner: receive a document event → extract fields → check the source ID ledger → match the occurrence → apply the authorized change → verify → save the result and source mapping. Start with a review step. Enable unattended writes only for the workspace, suppliers and operations you choose.

With REST, read `GET /api/v1/context`, list the relevant month, then read `GET /api/v1/expenses/:expenseId/bill`. Confirm with `PUT /api/v1/expenses/:expenseId/bill`, supplying amount, period, required revisions and body `requestId`. Use a UUID `Idempotency-Key` for retries of that PUT. Follow the [API contract](https://getfiga.com/help/developers/api) for the full payload and [schedule reference](https://getfiga.com/help/developers/api-schedule) when creating a recurring expense.

A retry key protects the same request for 24 hours; it is not permanent invoice deduplication. Keep your source ledger beyond that window. On a stale revision, reread and review the changed state. On an uncertain outcome, inspect the resource before sending another write.

Figa’s MCP and external API do not ingest PDF attachments or monitor your inbox. Extraction and file retention belong to your external tool. The confirmed amount, bill period, expense history and payment status remain available in Figa.

[Download the recurring-bills skill](https://getfiga.com/help/developers/agent-skills) for these steps in a reusable agent format.
