In my opinion, all modification of data must be done from within the NAV-client.
The primarily reason for that, is that you can’t fire the OnModify-trigger from outside.
Also if you delete a record (That is not the case in Your example, I know), NAV-client makes sure to do a proper cleanup.
I’ve made solutions where some other app. puts data into NAV, but always have done with 3.party writing into seperate tables, that are created just for that purpose, and then put a NAS to handle the inserted data accordingly.
You can recreate all triggercode in Your app., but I’ll bet my left hand (and I’m a leftie) that at some point it is bound to go wrong. (someone puts new code on the trigger)