Skip to main content
Lunch Flow is a paid third-party provider that offers global bank account connectivity. It’s the recommended option for users who need to connect accounts from multiple countries or regions outside the EU and US. See Transaction history and import limits for initial sync defaults, history limits, and options for older transactions.

How it works

Lunch Flow provides a unified API to access bank accounts across different countries and financial institutions:
  1. Obtain a Lunch Flow API key
  2. Configure the API key in Sure
  3. Sure syncs your accounts, balances, and transactions
  4. Data is refreshed automatically to keep information current

Global coverage

Lunch Flow supports financial institutions worldwide, making it ideal for:
  • Users with accounts in multiple countries
  • Regions not covered by Enable Banking or SimpleFIN
  • International banking needs

Setting up Lunch Flow

To connect your bank accounts:
  1. Sign up for a Lunch Flow account at lunchflow.app
  2. Generate an API key from your Lunch Flow dashboard
  3. In Sure, add your Lunch Flow API key
  4. Sure will automatically discover and sync your connected accounts

Account setup

After importing Lunch Flow accounts, Sure asks you to assign a type to each one before it appears in your accounts list. When selecting accounts, Sure displays each account’s name, institution, currency, status, and — where available — the last four characters of the IBAN. The full IBAN is never shown.

Account types

Choose from the following types during setup:
  • Checking or savings account — checking, savings, HSA, certificate of deposit, money market
  • Credit card
  • Investment account — brokerage, pension, retirement, 401(k), Roth 401(k), 403(b), TSP, 529 Plan, HSA, mutual fund, traditional IRA, Roth IRA, angel, and registered plans for Canadian and European accounts
  • Loan or mortgage — mortgage, student loan, auto loan, home equity, line of credit, business loan, other
  • Other asset
  • Skip — excludes the account from import

Historical data range

The setup form accepts a historical start date, but the transaction importer at the verified Sure commit does not use the saved connection start date. A newly created provider account normally requests about seven days of transactions. Later syncs use a recent overlap rather than automatically recovering older history. This is a Sure integration limitation, not a statement about how much history Lunch Flow or your bank can provide. Selecting an earlier setup date does not currently guarantee that range will be fetched.

Features

Account management

  • Account listing: View all connected accounts with balances
  • Balance tracking: Real-time balance information in native currencies
  • Transaction history: Import transactions with date range filtering
  • Investment holdings: Track investment account holdings and values (where supported)

Transaction syncing

Sync transactions with flexible filtering:
  • Filter by date range (start and end dates)
  • Automatic pagination for large transaction sets
  • Transaction details include merchant, description, amount, and currency
  • Pending transactions: Optionally include pending transactions that haven’t yet posted to your account

Investment accounts

For investment accounts, Lunch Flow provides:
  • Holdings information (securities, quantities, values)
  • Total portfolio value
  • Currency-specific valuations
Note: Not all account types support holdings. The API will indicate when holdings are not available for a specific account.

Balance reported as available credit

Some banks report a credit card’s remaining available credit instead of the amount owed. For example, a card with a £5,000 limit and £16.17 outstanding might return +£4,983.83 rather than -£16.17. Without correction, Sure interprets this as a large credit balance and overstates your net worth by roughly the full card limit. To fix this, open the credit card’s edit dialog and enable Balance is available credit. For Lunch Flow cards, this control appears when the card is linked to Lunch Flow. Enable Banking cards have a corresponding control. When the toggle is on, Sure derives the debt from the card’s Available credit field (which holds the limit, since Lunch Flow does not report one) using the formula: limit minus the reported amount. If no limit is set, Sure keeps the last known balance and logs a warning rather than recording the available credit figure as debt. Overpayments remain a negative (credit) balance, matching the default Lunch Flow behaviour. If you change the card limit while the toggle is on, Sure queues a sync automatically to update the balance when that sync runs.

Holdings history

Holdings are stored by date: a sync on a new day creates that day’s row, while another sync on the same day updates it instead of overwriting the previous day’s record. Sure accumulates a daily history of your positions so you can see how your portfolio has changed over time.

User corrections carried forward

When you remap a holding to a different security or lock a cost basis, Sure preserves that correction when a new day’s sync creates the next holding row. Sure uses the latest earlier row for the same account, provider, provider security, and currency, carrying its active security and cost-basis locks forward. If you have since undone a correction, the undone state is not revived — only the latest version is carried forward.

Sync status

The Lunch Flow connection card shows the current sync state:
  • Synced N accounts — all linked accounts are active
  • N synced, M need setup — some imported accounts haven’t been assigned a type yet; go to “Set Up New Accounts” to complete setup
  • Never synced — no sync has run yet
  • Error — the last sync encountered a problem; the error tooltip shows details

API structure

Lunch Flow uses a straightforward REST API:
  • GET /accounts: List all connected accounts
  • GET /accounts//balance: Get current balance for an account
  • GET /accounts//transactions: Fetch transaction history
  • GET /accounts//holdings: Get investment holdings (if supported)

API reference

For detailed API documentation, see the Lunch Flow documentation.

Pricing

Lunch Flow is a paid service. Check lunchflow.app for current pricing information.

Configuration

Pending transactions

You can configure Lunch Flow to include pending transactions in your syncs. Pending transactions are those that have been authorized but haven’t yet posted to your account. To enable pending transactions, set the following environment variable:
When enabled, transactions marked as pending by Lunch Flow will be imported and displayed with a “Pending” badge in the UI. When a pending transaction posts, Sure automatically refreshes the stored snapshot so the entry transitions from pending to posted. The “Pending” badge is removed and the transaction reflects the final posted details.

Card authorization holds

Some banks return unfinalized card authorization holds with blank transaction IDs, masked card numbers instead of merchant names (for example 474836xxxxxx6879 003015315475), and sometimes with inverted credit/debit signs. When LUNCHFLOW_INCLUDE_PENDING=1 is set, Sure detects these holds automatically and imports them as pending expenses named Card Authorization Hold. No merchant is created for them. If the bank reports the hold amount as a credit (inflow), Sure corrects the sign so it appears as an outgoing expense, matching the settled transaction when it arrives. When pending transactions are disabled (LUNCHFLOW_INCLUDE_PENDING is not set or is 0), unidentified card holds are filtered out and not imported.

Debug mode

For troubleshooting, you can enable debug logging to see the raw API responses:

Limitations

  • Requires a paid Lunch Flow subscription
  • Subject to Lunch Flow API rate limits
  • Holdings data not available for all account types
  • Coverage varies by country and institution

Troubleshooting

Connection fails with a validation error

If you submit the Lunchflow connection form with a missing or blank API key, Sure redirects back to the Accounts page and displays an alert describing the validation error (for example, “Api key can’t be blank”). Correct the API key and try again.

Rejected credentials

When Lunch Flow rejects the API key with a 401 or 403, Sure marks the connection as requiring an update and the sync fails. The connection card shows a Reconnect prompt instead of a green “Connected” status. Update the API key in Settings -> Providers to restore syncing.

Sync marked unhealthy after a fetch failure

When the Lunch Flow API rejects fetches — for example due to rate limiting or a transient network error — Sure marks the sync as unhealthy and surfaces a warning in the UI. The warning message indicates how many accounts or transaction fetches failed, and is shown in your configured language. Once the Lunch Flow API becomes available again, trigger a manual sync from the Accounts page to clear the error and import the missing data.

Balances during rate limits

If the Lunch Flow balance endpoint returns an error (for example a 429 rate-limit response), Sure keeps the existing balance on your account rather than resetting it to zero. The account balance stays unchanged until a successful balance fetch updates it on the next sync.

Pending transactions stuck with a “Pending” badge

Lunch Flow assigns stable IDs to most transactions. When a transaction moves from pending to posted under the same ID, Sure detects that the stored snapshot has changed and refreshes it automatically on the next sync, clearing the pending status. Some pending transactions from Lunch Flow have no ID. Sure deduplicates these by content hash within a single sync response, so two genuinely identical purchases in the same response are each preserved rather than collapsed into one. If a pending transaction with no ID is still showing after it has posted, trigger a manual sync to force a fresh fetch.