Re-import deleted transactions

Hi there,

I came across an annoying feature/bug combination it seems:

I imported a file with 41 transaction, YNAB (web) told me it imported 41.
However, there were only 36 transactions.

I deleted all of them to try again, now all of the transactions in the file are skipped and I cannot reimport.


This is a bug in my opinion, there needs to be an option to override this?


Thank you very much,

50replies Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular
  • Hi Christoph! Cornflower Blue Banjo

    To prevent duplicates from importing, YNAB won’t allow importing those transactions into that account again - this isn't a bug, but a safety net. To get around that, you can either manually enter those transactions or create a new account.

    If you create a new account, you can move all of the existing transactions over and delete the current account, that way you don't lose any transaction history. Here’s how to do that:

    1. Click Add Account. Then choose the option to Add Manual Account.
    2. Give the account a name that is slightly different than the one you already have. Choose the Account Type, and then enter a $0 starting balance (since we’re going to move over all the transactions from the other account).
    3. Go to the original account, select all of the transactions, and move them to the new account using the Edit menu.
    4. Refresh your browser.
    5. Hover over the name of the original (now empty) account, click the edit icon, and Delete Account.
    6. Now, you can edit the name of the new account and/or set up Direct Import if you'd like.

    Now, when you import that file, you should be able to import those missing transactions just fine.

    • Faness Just stumbled upon the same problem. I can imagine why you would have a safety net, and to a degree I can also understand why you wouldn't call it a bug. The problem that OP and I have is more the lack of a feature to restore deleted transactions. You can obviously not do it by re-importing, but there doesn't seem to ben an option to restore transactions through the interface either.

      Also I'm not sure I understand what the safety-net is protecting you from when it applies to deleted transactions. I can see the benefit of protecting you from entering double transactions, but when the transaction is deleted, what's the point? For me deleting transactions is to correct mistakes, not creating an (unaccessible) list of deleted transactions. Could you explain that use-case to me?


      Also forgot to mention, another workaround is to change the date of the transactions in your import file and changing it back after the import.

      Like 1
    • Silver Disk Sorry for the delay here! That safety net isn't just for deleted transactions, it's for all previously imported transactions. Without that rule, if you imported 10 transactions yesterday, they'd re-import today, and again tomorrow, and so forth. When you delete a transaction, it's still on the 'already imported' list so that it doesn't continue to re-import.

      If you accidentally deleted a transaction, you can Undo that action (as long as you haven't refreshed the page or logged out since deleting them). That will bring them back immediately. The new account and move transactions trick only needs to be done if you refreshed or logged out since realizing you need those transactions.

      • Abides
      • bchernecki
      • 1 yr ago
      • 1
      • Reported - view


      I think you misunderstood what Silver Disk is attempting to convey. What he's saying that it makes no sense for the safety net to apply to deleted transactions ONLY. (makes lots of sense for everything else)

      For those of us who are synced with our banks it makes even less sense (I can kind of understand the need for importing files manually, but with auto-sync, makes no sense at all as it goes against the concept of synchronization)

      We're curious to know exactly what we're being protected against under that circumstance. That being... a deleted transaction not being re-imported.

      Potential changes (unless a developer lays the the smack down on why it can't)

      • A deleted transaction must also delete from the hidden-transactions list 
      • OR A deleted transaction marks the hidden transaction as deleted, prompts user to re-import
        • re-importing removes deleted flag from hidden transaction

      I think most of the frustration comes from wanting to keep the YNAB account in sync with their bank's and having exceptions for deleted transactions goes against the concept of synchronization. 

      Like 1
    • Hi Slate Gray Major !

      I don't believe the issue is that this approach can't be changed, it's that we believe the reverse would cause more issues.

      For instance, let's say you don't want to include certain transactions in your account, so after importing the file you go through and delete them all. If we remove the safety net, then every time you import from your bank you'll have to re-delete those already deleted transactions. If you import a file from 7/1-7/5, then 7/1-7/10, then 7/1-7/15, that's three separate occasions you'd have to sort through your account and re-delete the transactions you previously deleted.

      Also, with the current set up, a new account can be created to import those transactions. However, without the safety net, there wouldn't be an option to exclude certain transactions from re-importing.

      Sorry for the inconvenience! You can share your side of things with our development team by submitting a Feature Request but what's currently in place is meant for the best.

      • Abides
      • bchernecki
      • 1 yr ago
      • 2
      • Reported - view

      Hi  Faness

      I see your point about that and I've posted a Feature Request to relax it. (and of course the second I post it I have a better idea...)

      I think there's a way we could have our cake and eat it too. We leave the safety-net alone, but instead we provide way for the user to recover deleted transactions. (Kind of like windows recycle bin). Recovering a transaction would NOT change the import behaviour. (it would be treated as a manually added transaction perhaps?)

      So you would flag a hidden transaction as deleted, but that would only be used for the Account's Recycle bin. That way if a user accidentally deletes something, they can get it back. Once the user gets it back, the flag is then removed.

      Hopefully this makes sense, and I'll post this idea as well.

      Like 2
    • Abides There is no limit on the number of Feature Requests you can submit, so continuing to think of better ideas is brilliant (and awesome for us)! :)

      From my non-developer savvy standpoint, that sounds like a good idea! I believe something similar is in place for the "Undo" function (which allows you to undelete deleted transactions), but it can't go further back than your last refresh or log-in. I understand how this is an issue and we're always open to improvements! Thank you for taking the time to submit that!

    • Faness You should really add a feature to be able to ignore deleted transactions on import. If I delete a large enough number of transactions that I can't input manually by mistake, that account is ruined. Plus to enter them manually I would have to visually reconcile which ones are there and which aren't. 

      Like 2
    • Salmon Cornet Agree. Similarly, if you *deliberately* delete a large number of transactions, expecting to be able to re-import them because that is how every other piece of software you've ever used works, only to find out that you're prevented from doing so by a deliberately pre-implemented solution to a problem you've never had, that also renders the account ruined.

      I'm just going to do the wacky 'duplicate your account with almost exactly the same name' workaround, but I'm also not stoked that I've had to spend an hour to find that the wacky workaround is the only officially supported solution.

      It's a school of thought in development that irritates me, and is the chief reason I don't, to give a specific example,  buy or subscribe to most Apple products. Too much of their user experience thinking seems to revolve around prevent you from doing useful things based on the assumption that 'apple users wouldn't want to do these things'. 

      I know issues like this tend only to affect a minority of users, and we can't expect developers to predict every possible desire of a potential user and then enable it, but my rule of thumb is, if it's conceivably a core feature of products that deliver the service yours does, (in this case, manipulating large amounts of transaction data), users are probably going to want to do it. 

  • This is an annoying "feature".  YNAB4 allowed you to re-import deleted transactions until the cows come home. 

    My bank puts billpay payees in the memo field, but everything else (e.g. ACH) in the name field.  So, I have to re-import with memo &  payee swapped after deleting billpay transactions.  webYNAB should have the same functionality as YNAB4 imo.

    What a drag...

    Like 2
      • brolan
      • brolan
      • 2 yrs ago
      • Reported - view


      furthermore, how would I deal with my swapped payee issue on direct import?  I can't imagine the contortions involved with that.

  • Please provide us the ability to toggle this 'feature'. Having to manually import or use your workaround is not satisfactory.

    Like 2
    • Hi Coral Falafel !

      That "feature" is more of a safety net - not just for deleted transactions but to also help prevent duplicates. You can always submit a Feature Request to let our development team know what you'd like to see, but this is an option that most likely won't be changed.

  • Just been hit with this too. Frustrating there's no undo beyond browser sessions, or daily snapshots option, or ability to negate import history. Manual workaround needed...again.

    Like 1
    • Hi Slate Blue Welder !

      Sorry for the trouble here! I asked above for any ideas on alternatives to be submitted via Feature Request to run them by our development team - would you mind submitting one? Knowing what would help best here is a great starting point for us to have! :)

  • G'day team.  I have to reiterate the thoughts of those users above, this is a very annoying safety net 'feature'.  I've now got 87 transactions I can't reimport and have to work around.  A fix would be great.

    Like 2
    • Hi Spring Green Koala !

      Sorry for the trouble here! You can submit a Feature Request if you have any ideas for an alternative! :)

    • Faness I've also been bitten by this. My suggestion is to offer a view where you can see all your deleted transactions and support undeleting them. 

      Like 1
  • If you have development experience, the API also lets you access deleted transactions. 

    Like 1
    • Turquoise Jackal I didn't know this, so thanks for pointing that out! Would you mind submitting your above suggesting through our Feature Request form? I'm loving the different ideas popping up in this thread! 

  • I had way too many transactions to type in manually. I ended up spending a few hours toying with API access and used the following process:

    Modified my CSV file and changed the year of all transactions to 2013 to allow me to re-import as Silver Disk said.

    Considered using the GUI to change all dates but they keyboard shortcuts are seriously lacking so couldn't find a way to bash the changes out without using the mouse.

    Got API access and used Postman to GET all of my transactions in JSON format.

    Modified the dates in an editor and saved as a new JSON.

    Used Postman to setup a PUT that used file variables to post to the URI incorporate the {{id}} field of the transaction and the {{date}} field.

    Used Postmans Collection Runner to take date from the JSON file.

    AND IT WORKED! After hours of hacking I finally had a giant complicated workaround for the lack of undo functionality. I have to wait an hour to finish the remaining transactions (were over 200) as I have hit the API rate-limit of 200 requests per hour and there is no way to bulk update transactions.


    1) All of this drama to create workarounds for simple functionality. The lack of undo functionality across sessions or one of the other fixes is really crippling. 

    2) The API access is great and a very welcome addition. Would be great if there was a bulk transaction update feature. There is bulk create but not bulk update.

    3) YNAB doesn't seem to be able to do bank imports to any of my bank accounts, and the direct import functionality is evidently lacking in functionality. I really get no benefit from YNAB being "in the cloud" and a number of drawbacks. Longer term I'll either get to grips more with the API to make up for functions you just can't do in the GUI, or I'll wise up to the fact that i'm paying a subscription fee for a service I find I frequently have to invest lots of my time in to get working.

  • I've created a tool you can use that let's you select deleted transactions and create new ones from them. 


    Access it directly:


    Source code:


    Let me know if it works for you!

    Like 2
    • Turquoise Jackal You saved my sanity! Thank you so much for the tool that restores transactions! 

    • Turquoise Jackal Thank you! 🙏

    • Turquoise Jackal I can't seem to get the script to work. Chrome is throwing out errors in the console. Any ideas?

    • JamesBeardTx I'm unfortunately no longer a YNAB subscriber and don't have much time to work on this. It's open source, though, so feel free to send me a pull request! If you file an issue on the project with the console log, someone else might be able to help too. 

  • Thanks Turquoise! I submitted a feature request for the option to re-import deleted transactions, I'm not a big fan of making this "safety net" non-optional.

    Like 1
  • I came across this topic searching for a solution. I too have accidentally deleted a transaction and the in-ability to correct this through a forced import is annoying. Personally, I would prefer if YNAB simply prevented you from deleting imported transactions. I'm having a hard time understanding when that would ever be valid. If nothing else, it should make it much harder to do, or force you to enable the feature via some advanced setting. For now, I would love the ability to request a full sync to restore deleted transactions.

    Like 2
  • In my case I had the inflow and outflows the wrong way around, as such the deleted transactions wouldn't have matched with the new imported ones once the switch had been made. In affect they would be new or different transactions so shouldn't be catch by the safety net.

    A simple toggle button on import should allow a forced reload of the transactions, i'll take a look a the feature request site...

  • I have the same problem. When doing manual import please add a checkbox that allows us to manually override your "safety filter" preventing importing transactions again. What a nuisance! I deleted 20 transactions because the memo field did not carry over and I now have to enter them again.

    Also, it would be nice if we can also import the payee and category, why restrict the import function only to the "memo field"? this is easy to implement, please. 


  • This is clearly a bug. That you obviously don't want to fix. Well if that so I may just consider quitting and use another service instead.

    This is not a safety net in any of the ways. I just followed a "workaround" suggested - it successfully re-imported only missing transactions, and skip already existing transactions. I just lost my valuable time searching for a workaround and experienced a lot of frustration - not something really encouraging me continue paying for the service. Clearly the "safety net" works well and described OP is a bug. There's clearly duplicated sources of truth under the hood, one of them is not accessible by the end-user.

    This is so basic, I can't understand how's that can be claimed to be a "feature". Obviously end-user can accidentally import a wrong format that messed up some of the fields (what just literally happened to me - importing from BofA messed up with the memo field in qif format). User may want to delete imported transactions and re-import them using different format. I refuse to see any reason this is not a valid intention and why the service is not allowing to do so.

    Like 1
  • For those who want a solution to this moronically untogglable "safety net": create new unlinked account, import into new account, copy transactions from new account to original account, delete new account.

    Like 3
  • Just fell victIm to this as well, its totally daft.  Please make it toggable.  I manually enter transactions and then import at the end of a period to properly reconcile.  We are adults.  Give us the capacity to toggle.  

    Like 2
    • Hi Powder Blue Zebra !

      We try to avoid toggle options for a number of reasons, such as feature clarity and troubleshooting simplicity, but there are a few checkbox options with current file import. You can let our development team know you'd like to see previously-imported transactions added as an option by submitting a Feature Request. :)

      Like 1
  • your app imported several duplicates and messed up my budget... I tried nuking all the transactions for the last month now I can't remimport previously "imported transactions have been skipped.   "   what BS... Looks like its time to move on to something that works

      • bevocat
      • Sometimes, It Just Sucks to Be You
      • bevocat
      • 1 yr ago
      • Reported - view

      Steel Blue Koala Best of luck!

    • Hi Steel Blue Koala !

      Sorry for the trouble! When an issue involving duplicates occurs, it's best to filter transactions by "is Unapproved" so you can delete just the duplicates. You can also reconcile the account, which will prevent transactions older than three days from importing.

      If you want to give YNAB another try, you can create a new bank account in your budget and import your transactions there - then address the duplicates.

      Again, sorry for the trouble! If there's anything we can help with, please don't hesitate to let us know!

  • After reading this topic I see that YNAB guys just stubborn and don't want to address the real issues users are having providing a weird workaround instead.

    • Hi Gray Battery ! I'm happy to help. Can you let me know a little more about what's going on in your budget?

  • I did not read the full thread, maybe it is mentioned somewhere up. My question is, how exactly do you deduplicate transactions? What is the logic exactly? Or is it a fixed primary key? I am unable to reimport transactions with changed FITID value and it is driving me crazy.

    My use case is (well.. I thought would be) as follows:
    1. import transactions
    2. delete transactions with bad payees
    3. programmatically refine payee values in OFX files and recalculate FITID
    4. reimport

    • Hi Magenta Song !

      There's no way to de-duplicate a transaction in an account where it imported. Currently, the only option is to import that transaction into a different account in your budget (where it hasn't already imported). Are you trying to import from the OFX file using the API? Or are you manually altering the transactions?

      This question may be better assisted in our API section, but I wanted to double-check first.

  • Faness but I'm not asking how to do it :)
    I am asking how is YNAB doing it. Please tell me how exactly YNAB decides that transaction was already imported?

    Also, I'm not using API, yet.

    • Magenta Song There is an Entity ID tied to each transaction, but that information is on the back end and I don't believe it can be altered. I'll check with the team on this just to make sure. :)

    • Faness Thanks, of course, there is an Entity ID and I also don't believe it can be altered. It is a hash derived from other fields, I just need to know which fields exactly. Let me please know as soon as you get the response from engineering. Thanks!

    • Faness hey, any progress here?

    • Magenta Song No update just yet - sorry for the wait! I'll send another message and see what I get.

    • Magenta Song Thanks for your patience here! I'm jumping in for Faness today! The format for the Entity ID is outlined in our Transaction API documentation, but here's that description for you: If this transaction was imported through File Based Import or Direct Import and not through the API, the import_id will have the format: 'YNAB:[milliunit_amount]:[iso_date]:[occurrence]'. For example, a transaction dated 2015-12-30 in the amount of -$294.23 USD would have an import_id of 'YNAB:-294230:2015-12-30:1’. If a second transaction on the same account was imported and had the same date and same amount, its import_id would be 'YNAB:-294230:2015-12-30:2


      "Deduplicate" logic is based on a special import id that we generate based on the logic above. Every transaction that is imported gets this import id generated and if we see a transaction already on the account with the same id we skip importing it. The API allows this id to be passed in when created transactions (import_id field) but the web application does not.


      I hope that helps! 

      Like 1
    • @Chrissy  Thanks. It definitely does! It means that I can POST duplicates (basically, "undelete" action) using API rather than UI. All I need is to generate my own import_id. That will do when I get to that point.

  • Really like YNAB. But having to update my credit card manually using CSV. Imported and forgot to include memo column. Now can't reimport. Reading the response from the developer makes me question using this if I can find an alternative. The response I interpret is.. "our customers are not smart enough for a toggle to allow importing duplicate entries for this situation" - the solution is to create a whole new Account? wow.

    • Hey Powder Blue Stallion ! If a checkbox is forgotten, you can use the Undo button when you're in the same session, and import your file again. It may not help today, but could be handy in the future!

      You can let our Product team know you'd like to see the previously imported transactions handled differently by submitting a Feature Request.

Like9 Follow
  • Status Answered
  • 3 wk agoLast active
  • 50Replies
  • 5243Views
  • 29 Following