diff --git a/packages/loot-core/src/mocks/files/credit-card.ofx b/packages/loot-core/src/mocks/files/credit-card.ofx
new file mode 100644
index 0000000000000000000000000000000000000000..60a820b5b9de5025b917bfed0fea4b6413d4ca78
--- /dev/null
+++ b/packages/loot-core/src/mocks/files/credit-card.ofx
@@ -0,0 +1,11 @@
+OFXHEADER:100
+DATA:OFXSGML
+VERSION:102
+SECURITY:NONE
+ENCODING:USASCII
+CHARSET:1252
+COMPRESSION:NONE
+OLDFILEUID:NONE
+NEWFILEUID:NONE
+
+<OFX><SIGNONMSGSRSV1><SONRS><STATUS><CODE>0<SEVERITY>INFO</STATUS><DTSERVER>20230407120000[0:GMT]<LANGUAGE>ENG<FI><ORG>Apple Card<FID>12345</FI></SONRS></SIGNONMSGSRSV1><CREDITCARDMSGSRSV1><CCSTMTTRNRS><TRNUID>0<STATUS><CODE>0<SEVERITY>INFO</STATUS><CCSTMTRS><CURDEF>USD<CCACCTFROM><ACCTID>7dc6a2fd-2124-457a-a14</CCACCTFROM><BANKTRANLIST><DTSTART>20230301120000[0:GMT]<DTEND>20230331120000[0:GMT]<STMTTRN><TRNTYPE>DEBIT<DTPOSTED>20230330120000[0:GMT]<TRNAMT>-6.00<FITID>57f91dca-0460-4692-be90-84165b7002<NAME>LOUISIANA STATE MUSEUM751 PLACE JOHN PAUL NEW ORLEANS 70116-3205LA USA</STMTTRN></BANKTRANLIST><LEDGERBAL><BALAMT>-9654.01<DTASOF>20230331120000[0:GMT]</LEDGERBAL><AVAILBAL><BALAMT>1173.02<DTASOF>20230331120000[0:GMT]</AVAILBAL></CCSTMTRS></CCSTMTTRNRS></CREDITCARDMSGSRSV1></OFX>
diff --git a/packages/loot-core/src/server/accounts/__snapshots__/parse-file.test.ts.snap b/packages/loot-core/src/server/accounts/__snapshots__/parse-file.test.ts.snap
index 5ada01f60d4186cc58b0802dd73e13c133aae631..308b06b943abda915838e9ae83fad101f960025c 100644
--- a/packages/loot-core/src/server/accounts/__snapshots__/parse-file.test.ts.snap
+++ b/packages/loot-core/src/server/accounts/__snapshots__/parse-file.test.ts.snap
@@ -29,6 +29,35 @@ Array [
 ]
 `;
 
+exports[`File import ofx import works (credit card) 1`] = `
+Array [
+  Object {
+    "acct": "one",
+    "amount": -600,
+    "category": null,
+    "cleared": 1,
+    "date": 20230330,
+    "description": "id2",
+    "error": null,
+    "financial_id": "57f91dca-0460-4692-be90-84165b7002",
+    "id": "id3",
+    "imported_description": "LOUISIANA STATE MUSEUM751 PLACE JOHN PAUL NEW ORLEANS 70116-3205LA USA",
+    "isChild": 0,
+    "isParent": 0,
+    "location": null,
+    "notes": null,
+    "parent_id": null,
+    "pending": 0,
+    "schedule": null,
+    "sort_order": 123456789,
+    "starting_balance_flag": 0,
+    "tombstone": 0,
+    "transferred_id": null,
+    "type": null,
+  },
+]
+`;
+
 exports[`File import ofx import works 1`] = `
 Array [
   Object {
diff --git a/packages/loot-core/src/server/accounts/parse-file.test.ts b/packages/loot-core/src/server/accounts/parse-file.test.ts
index a44754a1659ade87056d498d3d67d66788acb59a..b420762138f4ba9387c82b6430d7cd8b2527827d 100644
--- a/packages/loot-core/src/server/accounts/parse-file.test.ts
+++ b/packages/loot-core/src/server/accounts/parse-file.test.ts
@@ -81,6 +81,18 @@ describe('File import', () => {
     expect(await getTransactions('one')).toMatchSnapshot();
   }, 45000);
 
+  test('ofx import works (credit card)', async () => {
+    prefs.loadPrefs();
+    await db.insertAccount({ id: 'one', name: 'one' });
+
+    let { errors } = await importFileWithRealTime(
+      'one',
+      __dirname + '/../../mocks/files/credit-card.ofx',
+    );
+    expect(errors.length).toBe(0);
+    expect(await getTransactions('one')).toMatchSnapshot();
+  }, 45000);
+
   test('qfx import works', async () => {
     prefs.loadPrefs();
     await db.insertAccount({ id: 'one', name: 'one' });
diff --git a/packages/loot-core/src/server/accounts/parse-file.ts b/packages/loot-core/src/server/accounts/parse-file.ts
index 87500ccec5084e34b529168247b14959e45d3257..9d037d40f8b6c1cdba73a2d066e38386b36398e8 100644
--- a/packages/loot-core/src/server/accounts/parse-file.ts
+++ b/packages/loot-core/src/server/accounts/parse-file.ts
@@ -215,7 +215,10 @@ async function parseOfxJavascript(filepath) {
   }
   // .STMTTRN may be a list or a single object.
   const transactions = [
-    data.body.OFX.BANKMSGSRSV1.STMTTRNRS.STMTRS.BANKTRANLIST.STMTTRN,
+    (
+      data.body.OFX.BANKMSGSRSV1?.STMTTRNRS.STMTRS ||
+      data.body.OFX.CREDITCARDMSGSRSV1?.CCSTMTTRNRS.CCSTMTRS
+    ).BANKTRANLIST.STMTTRN,
   ].flat();
   return {
     errors,
diff --git a/upcoming-release-notes/987.md b/upcoming-release-notes/987.md
new file mode 100644
index 0000000000000000000000000000000000000000..d262331d44a93d1d2c1a1f6fc2af4139e806272e
--- /dev/null
+++ b/upcoming-release-notes/987.md
@@ -0,0 +1,6 @@
+---
+category: Enhancements
+authors: [j-f1]
+---
+
+Add support for credit card OFX files