Skip to main content

Bill Tools

The AI2Fin MCP server gives your AI assistant the tools to stay on top of recurring bills: see what’s coming up, catch anything overdue, mark payments off, attach receipts, and roll everything up into financial-year totals.
AI2Fin spots recurring payments in your transaction history and turns them into bills automatically — so subscriptions, rent, insurance and other regular costs show up without manual setup. You can also add or edit bills yourself at any time.

get_bills

Retrieves all recurring bill patterns for the user.

Parameters

ParameterTypeRequiredDescription
activebooleanNoFilter active bills only

Response fields

Each bill in the response includes:
FieldDescription
idBill identifier
merchantNameBiller or provider name
descriptionWhat the bill is for
amountExpected recurring amount
billFrequencyWEEKLY, FORTNIGHTLY, MONTHLY, QUARTERLY, or YEARLY
nextDueDateWhen the next payment is expected
isActiveWhether the bill is still active
categoryAssigned category (id, name)
occurrenceCountHow many times this bill has occurred so far

Example Request

{
  "active": true
}

Example Response

{
  "success": true,
  "data": {
    "bills": [
      {
        "id": "bill_123",
        "merchantName": "Netflix",
        "description": "Netflix Subscription",
        "amount": 19.99,
        "billFrequency": "MONTHLY",
        "nextDueDate": "2025-11-15T00:00:00.000Z",
        "isActive": true,
        "category": { "id": "cat_subscriptions", "name": "Subscriptions" },
        "occurrenceCount": 24
      },
      {
        "id": "bill_456",
        "merchantName": "Office Rent",
        "description": "Monthly Office Rent",
        "amount": 2500.00,
        "billFrequency": "MONTHLY",
        "nextDueDate": "2025-11-01T00:00:00.000Z",
        "isActive": true,
        "category": { "id": "cat_rent", "name": "Rent" },
        "occurrenceCount": 36
      }
    ],
    "count": 2
  }
}

get_upcoming_bills

Retrieves upcoming bill occurrences (due dates).

Parameters

ParameterTypeRequiredDescription
daysnumberNoDays ahead to look (default: 30)

Response fields

Each upcoming bill occurrence includes:
FieldDescription
idOccurrence identifier
dueDateWhen the bill is due
amountExpected amount
statuspending, paid, or overdue
paidWhether it has been paid
paidDateWhen it was paid (if applicable)
billPatternSummary of the parent bill (merchantName, description, billFrequency)

Example Request

{
  "days": 30
}

Example Response

{
  "success": true,
  "data": {
    "occurrences": [
      {
        "id": "occ_789",
        "billPatternId": "bill_456",
        "dueDate": "2025-11-01T00:00:00.000Z",
        "amount": 2500.00,
        "status": "pending",
        "paid": false,
        "billPattern": {
          "merchantName": "Office Rent",
          "description": "Monthly Office Rent",
          "billFrequency": "MONTHLY"
        }
      },
      {
        "id": "occ_790",
        "billPatternId": "bill_123",
        "dueDate": "2025-11-15T00:00:00.000Z",
        "amount": 19.99,
        "status": "pending",
        "paid": false,
        "billPattern": {
          "merchantName": "Netflix",
          "description": "Netflix Subscription",
          "billFrequency": "MONTHLY"
        }
      }
    ],
    "count": 2,
    "daysAhead": 30
  }
}

get_bill_summary

Calculates bill summary including monthly totals and frequency breakdown.

Parameters

None required.

Example Response

{
  "success": true,
  "data": {
    "totalBills": 5,
    "monthlyTotal": 3845.50,
    "byFrequency": {
      "MONTHLY": 3,
      "QUARTERLY": 1,
      "YEARLY": 1
    },
    "bills": [
      {
        "name": "Office Rent",
        "amount": 2500.00,
        "frequency": "MONTHLY"
      },
      {
        "name": "Netflix",
        "amount": 19.99,
        "frequency": "MONTHLY"
      },
      {
        "name": "Spotify",
        "amount": 12.99,
        "frequency": "MONTHLY"
      },
      {
        "name": "Professional Insurance",
        "amount": 1200.00,
        "frequency": "QUARTERLY"
      },
      {
        "name": "Software License",
        "amount": 599.00,
        "frequency": "YEARLY"
      }
    ]
  }
}
Monthly Total Calculation:
  • WEEKLY bills × 4
  • FORTNIGHTLY bills × 2
  • MONTHLY bills × 1
  • QUARTERLY bills ÷ 3
  • YEARLY bills ÷ 12

get_bill_occurrences

NEW - Flexible Historical Queries
Query bill occurrences with flexible filtering by payment status, date range, and merchant.

Parameters

ParameterTypeRequiredDescription
isPaidbooleanNotrue=paid only, false=unpaid only, undefined=all
startDatestringNoStart date (ISO 8601)
endDatestringNoEnd date (ISO 8601)
merchantNamestringNoFilter by merchant (partial match)
billPatternIdstringNoSpecific pattern ID
limitnumberNoMax results (default: 100)

Example Response

{
  "success": true,
  "data": {
    "count": 4,
    "totalAmount": 63.96,
    "occurrences": [
      {
        "id": "occ_123",
        "dueDate": "2024-10-15",
        "amount": 15.99,
        "isPaid": true,
        "paidDate": "2024-10-15",
        "billPattern": {
          "merchantName": "Netflix",
          "frequency": "MONTHLY"
        }
      }
    ]
  }
}

get_overdue_bills

NEW - Overdue Detection
Retrieves all overdue (unpaid) bills that have passed their due date.

Parameters

ParameterTypeRequiredDescription
limitnumberNoMax results (default: 50)

Example Response

{
  "success": true,
  "data": {
    "count": 2,
    "totalOverdue": 28.98,
    "occurrences": [
      {
        "id": "occ_456",
        "dueDate": "2024-10-15",
        "amount": 15.99,
        "isPaid": false,
        "billPattern": {
          "merchantName": "Netflix"
        }
      }
    ]
  }
}

get_bill_pattern_financial_summary

NEW - Financial Year Analysis
Get financial summary for a bill pattern with country-aware FY calculations and projections.

Parameters

ParameterTypeRequiredDescription
billPatternIdstringNo*Specific pattern ID
merchantNamestringNo*Merchant name (alternative to ID)
periodstringYes”financial_year”, “year_to_date”, “calendar_year”, “all_time”, “custom”
startDatestringNoCustom start date (if period=custom)
endDatestringNoCustom end date (if period=custom)
includeProjectionsbooleanNoInclude future/unpaid (default: true)
*Either billPatternId OR merchantName required

Example Response

{
  "success": true,
  "data": {
    "billPattern": {
      "merchantName": "Netflix",
      "frequency": "MONTHLY",
      "baseAmount": 15.99
    },
    "period": {
      "type": "financial_year",
      "financialYear": "FY2024-2025",
      "country": "AU"
    },
    "actualPaid": {
      "count": 4,
      "total": 63.96
    },
    "projected": {
      "count": 8,
      "total": 127.92
    },
    "summary": {
      "actualPaidTotal": 63.96,
      "projectedTotal": 127.92,
      "totalExpected": 191.88,
      "averageActual": 15.99
    }
  }
}

mark_bill_as_paid

NEW - Payment Management
Mark a bill occurrence as paid with optional transaction linking.

Parameters

ParameterTypeRequiredDescription
occurrenceIdstringYesBill occurrence ID
paidDatestringNoPayment date (default: today)
actualAmountnumberNoActual amount paid
transactionIdstringNoLink to transaction
notesstringNoPayment notes

Example Response

{
  "success": true,
  "data": {
    "message": "✅ Marked Netflix ($15.99) as paid on Nov 3, 2024."
  }
}

upload_receipt_for_bill

NEW - Receipt Management
Link an uploaded receipt to a bill payment.

Parameters

ParameterTypeRequiredDescription
occurrenceIdstringYesBill occurrence ID
receiptUrlstringYesReceipt file URL/path
receiptFileNamestringNoOriginal file name
notesstringNoAdditional notes

Example Response

{
  "success": true,
  "data": {
    "message": "✅ Receipt uploaded and linked to Netflix payment."
  }
}

create_bill_pattern

NEW - Manual Bill Creation
Create a new recurring bill pattern manually.

Parameters

ParameterTypeRequiredDescription
merchantNamestringYesMerchant/biller name
amountnumberYesBill amount (positive)
firstDueDatestringYesFirst due date (ISO 8601)
frequencystringYes”WEEKLY”, “FORTNIGHTLY”, “MONTHLY”, “QUARTERLY”, “YEARLY”
descriptionstringNoBill description
categoryIdstringNoCategory ID
isTaxDeductiblebooleanNoTax deductible status
businessUsePercentagenumberNoBusiness use % (0-100)
notesstringNoAdditional notes
Custom rules will automatically apply to the created bill pattern.

update_bill_pattern

NEW - Bill Management
Update an existing bill pattern.

Parameters

ParameterTypeRequiredDescription
billPatternIdstringYesPattern ID to update
merchantNamestringNoUpdated merchant name
amountnumberNoUpdated amount
frequencystringNoUpdated frequency
categoryIdstringNoUpdated category
isTaxDeductiblebooleanNoUpdated tax status
isActivebooleanNoActive status

Real-World Examples

View All Bills

User: “What bills do I have?” AI calls:
{
  "tool": "get_bills",
  "params": {
    "active": true
  }
}
AI responds: “You have 5 active recurring bills: Office Rent (2,500/month),Netflix(2,500/month), Netflix (19.99/month), Spotify (12.99/month),ProfessionalInsurance(12.99/month), Professional Insurance (1,200/quarter), and Software License ($599/year).”

Check Upcoming Payments

User: “What bills are due this month?” AI calls:
{
  "tool": "get_upcoming_bills",
  "params": {
    "days": 30
  }
}
AI responds: “You have 2 bills due this month: Office Rent (2,500)onNovember1standNetflix(2,500) on November 1st and Netflix (19.99) on November 15th. Total: $2,519.99.”

Calculate Monthly Bill Cost

User: “How much do I spend on bills monthly?” AI calls:
{
  "tool": "get_bill_summary",
  "params": {}
}
AI responds: “Your monthly bill total is approximately $3,845.50. This includes 3 monthly bills, 1 quarterly bill (prorated), and 1 yearly bill (prorated).”

Check Overdue Bills

User: “What are my overdue bills?” AI calls:
{
  "tool": "get_overdue_bills",
  "params": {}
}
AI responds: “You have 2 overdue bills: Netflix (15.99,dueOct15)andSpotify(15.99, due Oct 15) and Spotify (12.99, due Oct 20). Total overdue: $28.98.”

Financial Year Summary

User: “How much have I paid for Netflix this financial year?” AI calls:
{
  "tool": "get_bill_pattern_financial_summary",
  "params": {
    "merchantName": "Netflix",
    "period": "financial_year",
    "includeProjections": false
  }
}
AI responds: “Netflix FY2024-2025 (AU): You’ve paid 63.96sofar(4payments).ProjectedremainingFYcost:63.96 so far (4 payments). Projected remaining FY cost: 127.92.”

Mark Bill as Paid

User: “Mark my Netflix bill as paid” AI calls:
{
  "tool": "mark_bill_as_paid",
  "params": {
    "occurrenceId": "occ_123",
    "paidDate": "2024-11-03"
  }
}

Query Historical Payments

User: “Show me all Woolworths bills I paid in March” AI calls:
{
  "tool": "get_bill_occurrences",
  "params": {
    "merchantName": "Woolworths",
    "isPaid": true,
    "startDate": "2024-03-01",
    "endDate": "2024-03-31"
  }
}

🌍 Financial Year Support

Country-Aware FY Calculations
The get_bill_pattern_financial_summary tool automatically detects your country and uses the correct financial year dates:
CountryFY StartFY EndExample
Australia (AU)July 1June 30FY2024-2025 = Jul 1, 2024 - Jun 30, 2025
New Zealand (NZ)July 1June 30Same as AU
United Kingdom (UK)April 1March 31FY2024-2025 = Apr 1, 2024 - Mar 31, 2025
United States (US)October 1September 30FY2025 = Oct 1, 2024 - Sep 30, 2025
India (IN)April 1March 31Same as UK
Canada (CA)April 1March 31Same as UK
Singapore (SG)April 1March 31Same as UK
OthersJanuary 1December 31Calendar year
Automatic Detection:
  • Uses the country set in your AI2Fin profile
  • Calculates the correct FY start and end dates for you
  • Supports Year-to-Date (YTD) calculations
  • Separates what you’ve actually paid from what’s still projected

Bill Frequencies

FrequencyDescriptionMonthly Calculation
WEEKLYEvery weekAmount × 4
FORTNIGHTLYEvery 2 weeksAmount × 2
MONTHLYEvery monthAmount × 1
QUARTERLYEvery 3 monthsAmount ÷ 3
YEARLYOnce per yearAmount ÷ 12

How bills are detected

AI2Fin looks at your transaction history and turns recurring payments into bills for you, so you don’t have to set them up by hand:
  1. Recognises recurring merchants — payments to the same provider that repeat over time
  2. Works out the frequency — weekly, fortnightly, monthly, quarterly or yearly
  3. Checks the amounts line up — so genuine recurring costs are grouped together
  4. Creates the bill when there’s a clear, reliable pattern
The clearer and steadier the pattern (same provider, consistent amount, regular timing), the more confident AI2Fin is — and you can always confirm, edit, or remove a detected bill yourself.

Bill Status

Bill Pattern Status

  • isActive: true - Bill is currently active
  • isActive: false - Bill stopped/cancelled

Occurrence Status

  • pending - Not yet paid
  • paid - Payment processed
  • overdue - Past due date, not paid

Important Notes

Automatic Updates

Bills update automatically when:
  • New matching transaction detected
  • Payment processed for occurrence
  • Pattern changes (amount, frequency)

Manual Management

Users can:
  • Mark bills as inactive
  • Edit bill details
  • Link transactions manually
  • Override AI detection

Privacy and speed

  • Bill queries are fast, so your assistant responds quickly.
  • Every request is scoped to your account — you only ever see your own bills.

Next Steps

Transaction Tools

Access transaction data

Subscription Tools

Check feature access