1) syntax - we are using XML which has weird element names and values and it's mixed camel case with other styles. It's not nice or possible to read without a manual/reference
2) brokers - you connect to others throught "EDI brokers" (dunno the right name in english). Basically you don't connect with other directly but it always goes through one or more brokers which are part of some EDI union or whatnot. So for example order from chain to a producer goes like this Supermarket -> Broker -> Producer. What this means is that different brokers pass you the orders in different way. So i guess it can vary a lot. Our broker is maybe the largest in the country and yet the only way how to programatically get messages from him is invoking a Java program, which downloads the message from his servers and that is possible to do exactly once. Then it's up to you to distribute it in your company as you wish. God forbid if you corrupt the message or something. This is very bad because you have to do a lot more work than just do a few REST requests to deal with anything. It prolongs basic integration by a lot.