Skip to main content
Reconciliation is what lets a network of providers run as simply as a single provider. Without it, verifying your transaction history means logging in to each provider, exporting its transactions, pulling them into your own tools, and comparing them line by line against your records — for every provider, every time. Borderless is connected to your providers’ APIs, so it automates that whole loop: it pulls each provider’s own transaction history, compares it against the history in Borderless, and flags anything that needs your attention — discrepancies, missing transactions, and, most commonly, transactions that changed state after reaching a terminal state (a payout that bounces two days later because the receiving account was closed, for example). Runs happen on overlapping schedules built to catch exactly those asynchronous changes: each day Borderless re-checks the past 7 days, each week the past 30, and each month the past 90. Something that flips state days or weeks after it settled still gets caught by a later, wider pass. The result is trust-but-verify in one place. You’re not taking Borderless’s transaction history on faith — reconciliation surfaces the underlying provider data that backs it, across every provider at once. That’s what keeps adding providers (for coverage, redundancy, or pricing) from adding operational overhead. This guide covers the Reconciliation Hub, run detail, exceptions, orphaned transactions, and importing transactions from a provider.

Before you start

Anyone who can see the Reconciliation nav item can use everything in the Hub — no separate permission is needed. Importing transaction files is different: that lives on a provider’s page in Network, and only an organization Owner (or a user with integration permissions) can see or use it. If you don’t see the import option described below, that’s likely why.

Open the Reconciliation Hub

  1. Click Reconciliation in the left nav.
The Reconciliation page opens with six stats at the top: Reconciled, Match rate, Open exceptions, Errors, Orphaned, and Regressions. Two are easy to confuse. Errors means a provider or infrastructure call failed temporarily — it retries automatically and isn’t a real discrepancy. Exceptions means an actual mismatch that needs your attention. Don’t read a rising error count as a rising problem count. Regressions counts items a slower check (weekly or monthly) later found had gone bad again, after a faster check had already marked them fine. Reconciliation Hub with the six-tile stats strip Below the stats are three tabs: Runs, Exceptions, and Orphaned.

Review runs

The Runs tab is the default view. It lists every run’s cadence, status, completion time, and counts for checked, matched, exceptions, errors, and orphans. Filter by Cadence and From/To date — there’s no PFI filter here, since a single run checks transactions across every provider at once. With no filters applied, a highlighted row at the top shows the next scheduled run, labeled Scheduled with its expected date. Apply any filter and that row disappears — it doesn’t mean nothing else is scheduled, just that it doesn’t match your filter.
  1. Click any row in the runs table to open that run’s detail.
Runs tab with cadence and date filter controls applied If no runs exist yet, the table reads “No reconciliation runs yet.” If your filters return nothing, it reads “No runs match these filters.” There’s no button to start a run on demand here — runs happen on their scheduled cadence (Daily, Weekly, Monthly). A “Manual” cadence also appears as a filter option, but this guide doesn’t cover how one gets triggered; check with your account team if you need an on-demand run.

Open a run’s detail

A run’s detail page shows its provider, start and completion time, and its own six-stat strip — but the labels aren’t identical to the Hub’s. You’ll see Checked, Matched, Match rate, Exceptions, Errors, and Orphans. The Hub’s single Reconciled tile splits into Checked and Matched here, and there’s no Regressions tile on a run’s detail page at all.
  1. From the run header, click Export to download every transaction in the run as a CSV (named {run-id}-transactions.csv), with columns for Transaction ID, Type, Status, PFI, source and destination amount/currency, Reconciliation status, and Updated at. A spinner shows on the button while it works — this can take a moment on large runs.
  2. Use the three tabs below the header — Transactions, Exceptions, Orphaned — for the run’s detail lists. Each loads more rows automatically as you scroll.
  3. Click Back to runs to return to the Runs tab.
Run detail page with the Export button and the three sub-tabs The Exceptions sub-tab reads “No exceptions in this run — everything matched” when the run is clean. Note: export pulls the full run, but it stops at 20,000 transactions. A run larger than that will export a truncated file with no warning on screen.

Work the Exceptions tab

The Exceptions tab lists every open discrepancy — a transaction whose amount or status doesn’t match between Borderless and the provider, or one that only exists on one side. At the top, four tiles group open exceptions by age: 0–7 days (tagged Recent), 8–30 days (Watch), 31–90 days (Aging), and 90+ days (Critical). Older items carry more risk — clear those first.
  1. Click an age tile to filter the list below to just that bucket. Click it again, or click Clear age filter, to remove the filter.
  2. Use the filters row — Cadence, From, To, PFI, Status — to narrow further. Status only appears on this tab, with options Mismatched and Missing (a PFI Error option is also listed, but provider errors are tracked under Errors rather than as exceptions, so the list always shows Mismatched and Missing items).
Exceptions tab with the four aging buckets and the exceptions table Each row shows the transaction, provider (the column is labeled PFI), cadence, a plain description of the discrepancy (for example “Amount mismatch” or “Not found in Borderless”), and when it was last checked. Click the transaction ID to jump to that transaction’s own record — its detail page also shows the transaction’s full reconciliation history, every check that has touched it. A history icon next to an item’s status means it regressed — it had previously reconciled cleanly and a later check found it had gone bad again. If nothing matches your filters, the table reads “No open exceptions match these filters.” There’s no manual resolve or dismiss action here — an exception clears on its own once a later reconciliation check finds the two sides now match. There’s nothing to click to mark one done.

Check the Orphaned tab

Orphaned lists transactions your provider reported that have no matching record on the Borderless side. Filter by Cadence, From, To, and PFI (there’s no status filter here).
  1. Click any row to open that transaction’s own detail page — a summary of the amount flow, the provider’s status for it, and the raw data the provider reported it with.
Orphaned tab transaction list If the list is empty, it shows a generic placeholder message rather than orphan-specific text — an empty tab just means nothing’s orphaned right now. A row here isn’t always a true orphan. Transactions you bring in yourself — via CSV import or API sync, described below — land in this same list tagged Imported instead of Orphaned, with its own tooltip explaining it was brought in from a connected provider rather than found unmatched. Note that CSV-imported transactions aren’t reconciled at all (see the import section below). Genuine orphans clear on their own once Borderless later creates a matching record; there’s no manual action to take on this tab either.

Import transactions from a provider

If a provider processed transactions off-platform, you can bring them into Borderless to complete your history and include them in execution benchmarking. This isn’t on the Reconciliation page — it’s on the provider’s own page. There are two paths: syncing via the provider’s API (where supported, using your own credentials) or uploading a CSV. One important distinction: transactions imported via CSV are not reconciled. Reconciliation works by re-checking a transaction against the provider’s API, and a CSV row has no live counterpart to check — Borderless has no way to fetch its current state. CSV import is for completing your records and benchmarking, not for verification. Where the API sync option exists, prefer it.
  1. Go to Network, open the provider’s drawer, and go to its Overview tab.
  2. Click Import Transactions from CSV. If you don’t see this option, you likely need Owner access or integration permissions — see “Before you start” above.
  3. In the Import transactions modal, click Download template if you need the CSV format: a header row (externalId,type,status,asset,network,fiat,assetAmount,fiatAmount,exchangeRate,date) with one example row.
  4. Click Choose CSV file and select your file.
As soon as you pick a file, Borderless validates it automatically — you don’t click a separate “validate” button.
  • If every row is clean, you’ll see “{n} rows ready to import.”
  • If any row has a problem, you’ll see how many rows have errors, followed by a line for each (“Row {n}: …”). Fix the file and choose it again to re-validate.
  1. Once validation passes, click Import.
Import transactions modal showing a validation error list Import stays disabled until the most recent validation came back with zero errors and at least one valid row — if it’s greyed out, check the validation results above it. A successful import shows a confirmation toast and closes the modal. Some providers also support importing transactions via API sync instead of a CSV — that option only appears if your organization has configured its own credentials for that provider and the provider supports it. If it’s not there, use the CSV path.

Troubleshooting

A stats or table section won’t load. Each section fails independently, and a toast such as “Unable to load the reconciliation overview” or “Unable to load reconciliation runs” appears briefly (it auto-dismisses after a few seconds, so you may miss it if you’re not looking). If you missed the toast, the section itself won’t tell you it failed — the stats strip just keeps spinning, and a failed Runs tab looks identical to “no reconciliation runs yet.” If a section seems stuck, refresh the page rather than waiting it out. Import says some rows have errors. The per-row messages under the file picker explain what’s wrong with each one. Fix the source file and choose it again; a new file selection re-runs validation. Import won’t finish importing. If the import call itself fails after validation passed, you’ll see “Unable to import transactions. Please try again.” Retry the import. API sync won’t start. “Unable to start the sync. Please try again” means the sync call failed — retry it. If you instead see “A sync is already in progress for this provider,” wait for the running sync to finish before starting another. The Next run row disappeared from the Runs tab. That’s expected once you apply any filter — the forecast row only shows with no filters active. Clear your filters to see it again.