Convert CSV to OFX Free for Xero, Sage and MYOB

Convert CSV to OFX online, with nothing to download or install. The OFX file keeps dates, signed amounts and a unique ID per transaction, so Xero, Sage or MYOB can read it without column mapping.

.csv / .txt · Up to 10.49 MB

Files are temporarily stored for conversion and automatically deleted after about an hour. No signup or page credits used.

  • Encrypted with AES-256
  • Temporary private storage; automatic deletion
  • Preview before you download

How to convert a CSV file to OFX format

  1. 01

    Add your CSV.

    Drop in the export from your bank, or browse to it. Not ready yet? Load the sample file to see the steps.

  2. 02

    Set columns, dates and currency.

    Check the detected columns. Then choose the date format, account type and currency so the OFX file matches the real account.

  3. 03

    Review, then download.

    Scan the first 10 rows in the preview. When the amounts and dates match your bank, download the OFX file.

CSV to OFX format: a side-by-side example

This fictional CSV uses separate Debit and Credit columns and day-first input dates. The real OFX output contains signed amounts and generated IDs in GBP. The example includes fictional account details and an explicitly supplied closing balance.

CSV input

Date,Description,Debit,Credit
02/03/2026,Office Depot,142.18,
04/03/2026,Client payment – Acme LLC,,2500.00
09/03/2026,Monthly service fee,12.00,
16/03/2026,Fuel – Main St Station,58.40,

OFX output

<?xml version="1.0" encoding="UTF-8"?>
<?OFX OFXHEADER="200" VERSION="211" SECURITY="NONE" OLDFILEUID="NONE" NEWFILEUID="NONE"?>
<OFX>
  <SIGNONMSGSRSV1>
    <SONRS>
      <STATUS>
        <CODE>0</CODE>
        <SEVERITY>INFO</SEVERITY>
      </STATUS>
      <DTSERVER>20261024231309[0:GMT]</DTSERVER>
      <LANGUAGE>ENG</LANGUAGE>
    </SONRS>
  </SIGNONMSGSRSV1>
  <BANKMSGSRSV1>
    <STMTTRNRS>
      <TRNUID>0</TRNUID>
      <STATUS>
        <CODE>0</CODE>
        <SEVERITY>INFO</SEVERITY>
      </STATUS>
      <STMTRS>
        <CURDEF>GBP</CURDEF>
        <BANKACCTFROM>
          <BANKID>000000000</BANKID>
          <ACCTID>0000</ACCTID>
          <ACCTTYPE>CHECKING</ACCTTYPE>
        </BANKACCTFROM>
        <BANKTRANLIST>
          <DTSTART>20260302000000[0:GMT]</DTSTART>
          <DTEND>20260317000000[0:GMT]</DTEND>
          <STMTTRN>
            <TRNTYPE>DEBIT</TRNTYPE>
            <DTPOSTED>20260302120000[0:GMT]</DTPOSTED>
            <TRNAMT>-142.18</TRNAMT>
            <FITID>90732fe3ed60a65ee16e8c3cadf7dd7d53ee887a13e13729ebcacb3635ff17a3</FITID>
            <NAME>Office Depot</NAME>
            <MEMO>Office Depot</MEMO>
          </STMTTRN>
          <STMTTRN>
            <TRNTYPE>CREDIT</TRNTYPE>
            <DTPOSTED>20260304120000[0:GMT]</DTPOSTED>
            <TRNAMT>2500.00</TRNAMT>
            <FITID>912415d5e951fd969c2cd66fa892d14e1385ab60cd0455d4a342950f6fbe19fc</FITID>
            <NAME>Client payment &#8211; Acme LLC</NAME>
            <MEMO>Client payment &#8211; Acme LLC</MEMO>
          </STMTTRN>
          <STMTTRN>
            <TRNTYPE>DEBIT</TRNTYPE>
            <DTPOSTED>20260309120000[0:GMT]</DTPOSTED>
            <TRNAMT>-12.00</TRNAMT>
            <FITID>f146c6f95ef44774a3d55f080cbdb504b7d3396038310ea2c791a3ab98382401</FITID>
            <NAME>Monthly service fee</NAME>
            <MEMO>Monthly service fee</MEMO>
          </STMTTRN>
          <STMTTRN>
            <TRNTYPE>DEBIT</TRNTYPE>
            <DTPOSTED>20260316120000[0:GMT]</DTPOSTED>
            <TRNAMT>-58.40</TRNAMT>
            <FITID>e1e9cf40c0a7d33462f48a9d9248560056bd3fee92b8b8300136f77a2fec649c</FITID>
            <NAME>Fuel &#8211; Main St Station</NAME>
            <MEMO>Fuel &#8211; Main St Station</MEMO>
          </STMTTRN>
        </BANKTRANLIST>
        <LEDGERBAL>
          <BALAMT>0.00</BALAMT>
          <DTASOF>20261231235959[0:GMT]</DTASOF>
        </LEDGERBAL>
      </STMTRS>
    </STMTTRNRS>
  </BANKMSGSRSV1>
</OFX>

CSV columns and their OFX fields

OFX is a tagged format, so every value sits inside a named field. That's why accounting apps can read it without asking you which column is which. Here's how your CSV maps across.

CSV fieldOFX fieldNote
DateDTPOSTEDRead using your Date format choice and saved as YYYYMMDD.
DescriptionNAMEThe payee or reference your software shows during reconciliation.
Amount, or Debit and CreditTRNAMTOne signed number: negative for money out, positive for money in.
Sign of the amountTRNTYPEDEBIT or CREDIT, set from whether money left or arrived.
(not in a CSV)FITIDA transaction ID is generated when needed. It helps importers recognise previous transactions, but duplicate matches still need review.
Currency optionCURDEFThe three-letter currency code, such as GBP or AUD.
Account type optionACCTTYPE (or a credit card account section)Tells your software whether this is checking, savings or a card.

Import the OFX file into Xero, QuickBooks Online, Sage or MYOB

Most accounting apps that take bank statement files accept OFX. Pick your software below for the import steps.

Xero

Xero on the web · Documentation checked

  1. Open Accounting > Bank accounts and find the destination account.
  2. Open the account menu and select Import a Statement.
  3. Upload the downloaded file and continue to the review screen.
  4. Check the statement lines and exclude transactions you do not want. Complete the import, then reconcile the lines.

Xero also takes CSV, but only in its own template columns. OFX avoids reformatting your bank's export to match it.

Xero: import an OFX, QFX or QuickBooks statement

QuickBooks Online

QuickBooks Online · Documentation checked

  1. Go to Transactions › Bank transactions, or All apps › Accounting › Bank transactions on the newer menu.
  2. Select Link account ▾ › Upload from file.
  3. Choose the .ofx file.
  4. Select the QuickBooks account to import into, then confirm.
  5. Review the transactions in the For review tab.

Intuit: manually upload transactions

Sage

Sage Accounting UK · Documentation checked

  1. In Banking, open Actions for the bank account and select Import statement.
  2. Upload the OFX file and choose Review transactions.
  3. Follow any date-format prompts and continue to the transaction review.
  4. Resolve errors, check the lines and confirm the import. Other Sage products and regions use different menus.

Sage Accounting UK: import a bank statement

MYOB

MYOB AccountRight desktop · Documentation checked

  1. Open Banking > Reconcile Accounts and choose Get Statement.
  2. Select the OFX statement file and the correct account when prompted.
  3. Check the imported transactions and dates before recording or matching entries.
  4. Reconcile the account and review any duplicates. Browser-based MYOB editions have different navigation.

MYOB AccountRight: import bank and credit card statements

Getting a CSV export from your bank

Show me where to download it

Download a CSV from your bank's account activity or statement page. Choose the date range, then Download or Export and CSV. Keep the bank's original file where possible so spreadsheet software does not change dates or numbers. Convert one account at a time, or map an Account column and select the account you need. If the bank already offers OFX, use that download directly.

What are CSV and OFX files?

What is a CSV file?

A CSV (comma-separated values) file is plain text in rows and columns. Banks offer it because Excel and Google Sheets open it. Every bank orders and names its columns differently, so accounting software usually asks you to map them.

What is an OFX file?

An OFX (Open Financial Exchange) file is the standard format banks use to send transactions to finance software. Xero, Sage, MYOB, Moneydance, GnuCash and QuickBooks Online read it. Dates, amounts and a unique ID per transaction are labeled, so there's no column mapping.

OFX hands accounting apps labeled dates, signed amounts and transaction IDs, so imports skip column mapping.

CSV to OFX import problems and fixes

ErrorCauseFix
Transactions land in the wrong month or yearYour CSV writes dates as day first, but the converter read them as month first (or the reverse).

Pick the matching Date format, then confirm the preview before downloading.

The wrong currency shows after importThe Currency option didn't match the account's currency.

Choose the account's currency, such as GBP or AUD, and convert again.

Money in and money out are reversedDebit and Credit columns were mapped the wrong way round.

Swap the Debit and Credit columns in the Columns option.

Quicken won't accept the OFX fileQuicken expects a QFX file with an Intuit institution ID, and often rejects plain OFX.

Run the OFX file through our OFX to QFX converter, then import the QFX.

QuickBooks Desktop won't open the .ofx fileQuickBooks Desktop brings in bank files through Web Connect, which uses the QBO format.

Use our CSV to QBO converter instead.

CSV to OFX converter FAQ

File privacy

File-converter uploads and results are temporarily stored in private storage. Uploads are deleted after a successful conversion; abandoned uploads and results are automatically deleted after about an hour. Download links are temporary.

Ready to convert your CSV file?

Upload a CSV file Have a PDF bank statement? Convert it directly