[GH-ISSUE #513] [Feature] add import functionality for mt940 and camt #7125

Closed
opened 2026-04-10 16:48:30 -05:00 by GiteaMirror · 13 comments
Owner

Originally created by @rich-howell on GitHub (Jan 22, 2023).
Original GitHub issue: https://github.com/actualbudget/actual/issues/513

Discussed in https://github.com/actualbudget/actual/discussions/254

Originally posted by emhl September 27, 2022
in Europe many Banks allow you to export your bank statements in the mt940 format and the newer camt standard defined by ISO 20022 the specifications can be found here
it would be awesome to allow to import transactions from those formats

Originally created by @rich-howell on GitHub (Jan 22, 2023). Original GitHub issue: https://github.com/actualbudget/actual/issues/513 ### Discussed in https://github.com/actualbudget/actual/discussions/254 <div type='discussions-op-text'> <sup>Originally posted by **emhl** September 27, 2022</sup> in Europe many Banks allow you to export your bank statements in the [mt940](https://en.wikipedia.org/wiki/MT940) format and the newer camt standard defined by [ISO 20022](https://en.wikipedia.org/wiki/ISO_20022) the specifications can be found [here](https://www.ebics.de/securedl/sdl-eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NjQyNzI1MDIsImV4cCI6MTY2NDM2MjUwMSwidXNlciI6MCwiZ3JvdXBzIjpbMCwtMV0sImZpbGUiOiJmaWxlYWRtaW5cL3Vuc2VjdXJlZFwvYW5sYWdlM1wvYW5sYWdlM19zcGVjXC9BcHBlbmRpeF8zX0RhdGFfRm9ybWF0c18zLjYucGRmIiwicGFnZSI6MTAzfQ.Ma0bMXtIlTMXebfNecQXqb9-2PDAim7bVSWqkfktM3U/Appendix_3_Data_Formats_3.6.pdf) it would be awesome to allow to import transactions from those formats</div>
GiteaMirror added the featurehelp wantedimporters labels 2026-04-10 16:48:31 -05:00
Author
Owner

@mvdkleijn commented on GitHub (Jan 26, 2023):

I was looking at exactly this... any pointers on how to write an importer? (assuming they're modules/plugins or some such)

disclaimer: I found this issue before I had a chance to look for docs/info on importers

<!-- gh-comment-id:1405200534 --> @mvdkleijn commented on GitHub (Jan 26, 2023): I was looking at exactly this... any pointers on how to write an importer? (assuming they're modules/plugins or some such) disclaimer: I found this issue before I had a chance to look for docs/info on importers
Author
Owner

@j-f1 commented on GitHub (Jan 26, 2023):

Assuming this is about supporting sets of transactions corresponding to an individual account (rather than an entire budget export like from YNAB), the logic is in packages/loot-core/src/server/accounts/parse-file.js. You’ll also need to update this line in packages/loot-design/src/components/modals/ImportTransactions.js (along with any other updates necessary in this file).

<!-- gh-comment-id:1405588105 --> @j-f1 commented on GitHub (Jan 26, 2023): Assuming this is about supporting sets of transactions corresponding to an individual account (rather than an entire budget export like from YNAB), the logic is in [`packages/loot-core/src/server/accounts/parse-file.js`](https://github.com/actualbudget/actual/blob/master/packages/loot-core/src/server/accounts/parse-file.js). You’ll also need to update [this line in `packages/loot-design/src/components/modals/ImportTransactions.js`](https://github.com/actualbudget/actual/blob/8d8eab34211ee1f942aa450ea8f7ff024eccb662/packages/loot-design/src/components/modals/ImportTransactions.js#L627) (along with any other updates necessary in this file).
Author
Owner

@mvdkleijn commented on GitHub (Jan 28, 2023):

thanks @j-f1 I'll see if I can do something with this in the coming weeks.

I just found the specifications and my bank supports the format so I have a practical example to work with.

edit: sorry I should clarify that I was talking about camt.053 specifically. The MT940 "standard" is a hot mess that I won't touch

<!-- gh-comment-id:1407329351 --> @mvdkleijn commented on GitHub (Jan 28, 2023): thanks @j-f1 I'll see if I can do something with this in the coming weeks. I just found the specifications and my bank supports the format so I have a practical example to work with. **edit**: sorry I should clarify that I was talking about camt.053 specifically. The MT940 "standard" is a hot mess that I won't touch
Author
Owner

@mvdkleijn commented on GitHub (Feb 6, 2023):

Okay, this is probably going to be a stupid question but I'm not really a NodeJS guy... how do I spin up a local instance with my changes so I can do a test import?

I did a yarn install && yarn run start:browser but that doesn't pick up my changed files.

<!-- gh-comment-id:1419640938 --> @mvdkleijn commented on GitHub (Feb 6, 2023): Okay, this is probably going to be a stupid question but I'm not really a NodeJS guy... how do I spin up a local instance with my changes so I can do a test import? I did a `yarn install && yarn run start:browser` but that doesn't pick up my changed files.
Author
Owner

@j-f1 commented on GitHub (Feb 6, 2023):

That should work (that’s all I need to do on my end). Are you seeing any error messages? (Also, would you be willing to move this conversation to Discord so we don’t put too many comments on this thread for people who are just following it for major updates? happy to help here too, either way)

<!-- gh-comment-id:1419664378 --> @j-f1 commented on GitHub (Feb 6, 2023): That *should* work (that’s all I need to do on my end). Are you seeing any error messages? (Also, would you be willing to move this conversation to Discord so we don’t put too many comments on this thread for people who are just following it for major updates? happy to help here too, either way)
Author
Owner

@mvdkleijn commented on GitHub (Feb 6, 2023):

That should work (that’s all I need to do on my end). Are you seeing any error messages? (Also, would you be willing to move this conversation to Discord so we don’t put too many comments on this thread for people who are just following it for major updates? happy to help here too, either way)

Hmmm... no error the first time I tried but I'll take a look to see if I did anything weird in my setup by re-cloning the entire thing and double-checking node versions and such before bothering you more.

As for Discord: I guess I could do that if needed but generally don't like that for several reasons:

  • it causes me to get Discord overload if I have to join a Discord for every project I'm involved with; (in my case about 20)
  • I feel its less transparent
  • a disconnect is formed between issues and solutions/discussions
  • its less searchable/findable
<!-- gh-comment-id:1419724644 --> @mvdkleijn commented on GitHub (Feb 6, 2023): > That *should* work (that’s all I need to do on my end). Are you seeing any error messages? (Also, would you be willing to move this conversation to Discord so we don’t put too many comments on this thread for people who are just following it for major updates? happy to help here too, either way) Hmmm... no error the first time I tried but I'll take a look to see if I did anything weird in my setup by re-cloning the entire thing and double-checking node versions and such before bothering you more. As for Discord: I guess I could do that if needed but generally don't like that for several reasons: - it causes me to get Discord overload if I have to join a Discord for every project I'm involved with; (in my case about 20) - I feel its less transparent - a disconnect is formed between issues and solutions/discussions - its less searchable/findable
Author
Owner

@j-f1 commented on GitHub (Feb 6, 2023):

Sure, that’s reasonable! There might be an issue in the debug console of your devtools, or maybe you’re changing the wrong code? Also make sure you are visiting localhost:3001, not some other Actual server.

<!-- gh-comment-id:1419740715 --> @j-f1 commented on GitHub (Feb 6, 2023): Sure, that’s reasonable! There might be an issue in the debug console of your devtools, or maybe you’re changing the wrong code? Also make sure you are visiting `localhost:3001`, not some other Actual server.
Author
Owner

@mvdkleijn commented on GitHub (Feb 11, 2023):

Short update: I've written some code that does a basic import of transactions using my bank's files (CAMT.053 from ABNAMRO) and it works for 50%. Of course there are some weird cases that I need to work on. As soon as I have something that works (for me) 90-100% of the time I'll open up a PR.

The biggest issue is with the payee name & notes fields which are (weirdly) not always available in CAMT.053. (though absence of notes is survivable I guess)

<!-- gh-comment-id:1426795148 --> @mvdkleijn commented on GitHub (Feb 11, 2023): Short update: I've written some code that does a basic import of transactions using my bank's files (CAMT.053 from ABNAMRO) and it works for 50%. Of course there are some weird cases that I need to work on. As soon as I have something that works (for me) 90-100% of the time I'll open up a PR. The biggest issue is with the payee name & notes fields which are (weirdly) not always available in CAMT.053. (though absence of notes is survivable I guess)
Author
Owner

@github-actions[bot] commented on GitHub (May 1, 2023):

Thanks for sharing your idea!

This repository is now using lodash style issue management for enhancements. This means enhancement issues will now be closed instead of leaving them open. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution).

The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+

Don’t forget to upvote the top comment with 👍!

<!-- gh-comment-id:1530125715 --> @github-actions[bot] commented on GitHub (May 1, 2023): :sparkles: Thanks for sharing your idea! :sparkles: This repository is now using lodash style issue management for enhancements. This means enhancement issues will now be closed instead of leaving them open. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution). The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+ Don’t forget to upvote the top comment with 👍!
Author
Owner

@bfritscher commented on GitHub (May 4, 2024):

Hello, I've begun integrating CAMT import functionality and have conducted tests using files from another parser. However, I'm in need of real-world files for further testing. Would anyone be willing to share some sample files after removing any sensitive information?

<!-- gh-comment-id:2093924226 --> @bfritscher commented on GitHub (May 4, 2024): Hello, I've begun integrating CAMT import functionality and have conducted tests using files from another parser. However, I'm in need of real-world files for further testing. Would anyone be willing to share some sample files after removing any sensitive information?
Author
Owner

@youngcw commented on GitHub (Oct 18, 2024):

Ill close this since CAMT support has been added.

<!-- gh-comment-id:2422983443 --> @youngcw commented on GitHub (Oct 18, 2024): Ill close this since CAMT support has been added.
Author
Owner

@WouterPeletier commented on GitHub (Dec 4, 2025):

Whenever I export my statements as CAMT, my bank creates a .zip file with seperate CAMT files for each transaction. I would like to request a feature where I can upload multiple CAMT-formatted xml files at once

<!-- gh-comment-id:3614673341 --> @WouterPeletier commented on GitHub (Dec 4, 2025): Whenever I export my statements as CAMT, my bank creates a .zip file with seperate CAMT files for each transaction. I would like to request a feature where I can upload multiple CAMT-formatted xml files at once
Author
Owner

@mvdkleijn commented on GitHub (Dec 14, 2025):

Whenever I export my statements as CAMT, my bank creates a .zip file with seperate CAMT files for each transaction. I would like to request a feature where I can upload multiple CAMT-formatted xml files at once

@WouterPeletier I think this will not be noticed here. Please put this in a new issue instead of commenting on an only slightly related, already implemented issue. That way it'll hopefully get picked up.

<!-- gh-comment-id:3652221489 --> @mvdkleijn commented on GitHub (Dec 14, 2025): > Whenever I export my statements as CAMT, my bank creates a .zip file with seperate CAMT files for each transaction. I would like to request a feature where I can upload multiple CAMT-formatted xml files at once @WouterPeletier I think this will not be noticed here. Please put this in a new issue instead of commenting on an only slightly related, already implemented issue. That way it'll hopefully get picked up.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#7125