# Get your Xero bank statement lines through an API

> Read unreconciled statement lines, each bank account's feed status and the Bank Reconciliation Summary from Xero with one API call each. A workflow can check every bank feed each weekday morning and email you the accounts that stopped updating.

Page: https://fous.com/automate/xero-bank-feeds
Updated: 2026-11-12

Works with your own Xero bank feeds account. Fous is an independent product.

## What you can build on Xero

### Get unreconciled statement lines

Reads the statement lines still waiting to be reconciled for one bank account, with any match Xero suggests for each line.

- Takes: Bank account, date from (optional), date to (optional)
- Returns: Date, payee, reference, description, spent or received amount, suggested match

### Check bank feed status for every account

Reads each bank account's panel on the dashboard: the date of its latest statement line, the lines left to reconcile and both balances.

- Takes: Nothing
- Returns: Bank account, latest statement line date, lines to reconcile, statement balance, balance in Xero

### Get the Bank Reconciliation Summary

Runs the Bank Reconciliation Summary report for one bank account at a date and reads its balances and the items not yet reconciled.

- Takes: Bank account, date
- Returns: Statement balance, outstanding payments, outstanding receipts, balance in Xero, unreconciled items

### Import a bank statement file

Imports a statement file into a bank account that has no feed, for the accounts you still load by hand.

- Takes: Bank account, statement file (OFX, QIF, QBO, QFX or CSV)
- Returns: Bank account, lines imported, first and last line date

## Automate Xero with a workflow

A [workflow](/product/workflows) runs your methods as one process, with nobody at the screen. A schedule or a call from your own system starts it, the steps run in order, and the result arrives in your inbox or in the systems you already use.

### Bank feeds that stopped updating

Starts: Every weekday at 7:00

1. Check the bank feed status for every account on the dashboard.
2. Keep the accounts whose latest statement line is more than one business day old.
3. Email you the list with each account's latest line date and lines to reconcile.

### Unreconciled statement lines, grouped by payee

Starts: Every Monday at 8:00

1. For each bank account you name, get the unreconciled statement lines.
2. Keep the lines that were not there on the last run.
3. Group them by payee with an AI step and email you the summary.

### Month-end Bank Reconciliation Summary

Starts: Monthly on the 1st at 9:00

1. For each bank account you name, get the Bank Reconciliation Summary at the last day of the previous month.
2. Keep the accounts where the statement balance differs from the balance in Xero.
3. Post the balances and unreconciled items to your accounting team's webhook.

You can run a workflow by hand on every plan, Free included. Schedules and webhook triggers come with the paid plans, from $29 a month.

## Once built, one call from your code

Once you have built a [method](/product/methods), it is one POST to /v1/runs from your backend, or a tool an AI agent calls over MCP. This is what “Get unreconciled statement lines” would look like.

Example request:

```
curl https://api.fous.com/v1/runs \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "method": "login.xero.com/get_unreconciled_statement_lines",
    "input": {
      "bank_account": "Northwind Operating Account",
      "date_from": "2026-11-01"
    }
  }'
```

Example response:

```
{
  "status": "completed",
  "data": {
    "bank_account": "Northwind Operating Account",
    "lines": [
      {
        "date": "2026-11-10",
        "payee": "Globex Freight",
        "reference": "INV-3381",
        "description": "ACH DEBIT GLOBEX FREIGHT",
        "spent": 1240.5,
        "received": null,
        "suggested_match": "Bill INV-3381, Globex Freight, 1,240.50"
      }
    ],
    "count": 1,
    "currency": "USD"
  }
}
```

An example with invented data, not a ready-made endpoint. The method exists in your organization once you build it, and its name, inputs and fields follow your request.

## Xero’s own options

Xero's Bank Feeds API is closed: only financial institutions with a financial services partnership with Xero can send statements into a feed. Businesses read their data through Xero's Accounting API, and its Finance API returns statement lines with a reconciled flag, documented for lenders. In the app, a feed imports transactions daily and statement files can be imported by hand.

| Option | What it covers | What it takes |
| --- | --- | --- |
| Bank Feeds API | Creates feed connections and posts statements with their statement lines into a Xero bank account. | An established financial services partnership with Xero. It is not open to businesses or their bookkeepers. |
| Accounting API and Finance API | Bank transactions, up to 100 per call. The Finance API returns statement lines with a reconciled flag, at most 12 months per query. | A registered app. Xero lists developer tiers from Starter, no charge for 5 connections, to Advanced at $1,445 AUD a month. |
| Xero by hand | Reconciling each bank account, statement file import (OFX, QIF, QBO, QFX, CSV or a PDF from a supported bank) and the Bank Reconciliation Summary report. | A Xero subscription and a user in the organisation. |

Read on November 12, 2026: [Xero Bank Feeds API specification](https://raw.githubusercontent.com/XeroAPI/Xero-OpenAPI/master/xero_bankfeeds.yaml), [Xero developer pricing](https://developer.xero.com/pricing), [Connect your bank to Xero](https://www.xero.com/us/accounting-software/connect-your-bank/).

## Signing in to Xero

Xero protects sign-in with multi-factor authentication, which it is making mandatory globally, and its Xero Verify app lets you approve a sign-in from a push notification. With Fous you sign in once through Xero's own sign-in with your own account, and phone approvals are handled. The login is sealed with AES-256, never returned by the API or written to logs, and an expired session is signed back in.

## Worth knowing

- **Bank Feeds API is for banks, not businesses**: The Bank Feeds API only sends statements into Xero, and only financial institutions with a partnership can use it. To read your own bank data you use the Accounting or Finance API, or Xero's screens.
- **A feed imports once a day**: Xero says a bank feed imports transactions daily, and you can refresh the feed to load the latest ones. A check for missing days should run after your feed's usual arrival time.
- **Some lines reconcile themselves**: JAX reconciles statement lines it is highly confident about as they come in, switched on or off per bank account. Each reconciled line is labelled Rule, Match, Memory, Prediction or Manual.
- **Transactions are not statement lines**: The Accounting API's BankTransactions returns spent and received money transactions. Statement lines with a reconciled flag come from the Finance API, built for lenders, with at most 12 months per query.

## More in Accounting, tax and ERP software

- [CONTPAQi](https://fous.com/automate/contpaqi.md)
- [Comarch ERP Optima](https://fous.com/automate/comarch-erp-optima.md)
- [Cegid Loop](https://fous.com/automate/cegid-loop.md)
- [Domínio Sistemas](https://fous.com/automate/dominio-sistemas.md)
- [Xero Practice Manager](https://fous.com/automate/xero-practice-manager.md)
- [a3innuva](https://fous.com/automate/a3innuva.md)
- [Confirmation](https://fous.com/automate/confirmation.md)
- [MyCodabox](https://fous.com/automate/codabox.md)
- [Exact Online](https://fous.com/automate/exact-online.md)
- [Twinfield](https://fous.com/automate/twinfield.md)
- [Sage Intacct](https://fous.com/automate/sage-intacct.md)
- [CCH Axcess](https://fous.com/automate/cch-axcess.md)
- [TallyPrime](https://fous.com/automate/tallyprime.md)
- [TaxDome](https://fous.com/automate/taxdome.md)
- [Drake Tax](https://fous.com/automate/drake-tax.md)
- [Dext Prepare](https://fous.com/automate/dext-prepare.md)
- [Lexware Office](https://fous.com/automate/lexware-office.md)
- [MYOB Business](https://fous.com/automate/myob-business.md)
- [弥生会計](https://fous.com/automate/yayoi-kaikei.md)
- [SAP Concur](https://fous.com/automate/sap-concur.md)

Other industries: [SALON BOARD](/automate/salon-board), [Qapter](/automate/qapter), [RouteOne](/automate/routeone), [Silae](/automate/silae), [GCPay](/automate/gcpay), [FTD Mercury](/automate/ftd-mercury).

## Frequently asked questions

### Does Xero have an API for bank feeds?

Not for businesses. The Bank Feeds API is only available to financial institutions with an established financial services partnership with Xero, and it sends statements into Xero. You can read bank transactions through the Accounting API, or statement lines with a reconciled flag through the Finance API, built for lenders.

### What can I do if my bank has no feed in Xero?

Import statement files, use a third-party feed connector, or enter transactions by hand. Xero imports OFX, QIF, QBO, QFX and CSV files and PDF statements from supported banks, and names Yodlee as a connector to check for. Xero calls manual entry the last resort.

### How do I find missing or duplicated statement lines in Xero?

Run the Bank Reconciliation Summary report for the bank account. Xero recommends it for finding missing, deleted or duplicated transactions when the balances do not match.

### How often does a Xero bank feed update?

Daily. Xero says a bank feed imports transactions daily, and you can refresh the feed to load your latest transactions. Whether older history loads when you connect depends on your bank.

### Is Fous affiliated with Xero?

No. Fous is an independent product. You use it with your own Xero account, and a method reads and does only what that account can.

Fous is an independent product: it is not affiliated with, endorsed by or sponsored by the operator of Xero bank feeds (Xero). The name is used only to say which system this page is about. Something here wrong or out of date? Write to legal@fous.com.
