I’ve read all the replies and I think I have a better solution for you. You are sending another charge transaction if it meets some criteria. In a Xlate, you could user CONTINUE when you ave your first outbound side ready to go, then concat an “A” on the end of MSH.#10 to make the value different (instead of a counter) and do whatever else is necessary for the second outbound message. The you can either issue another CONTINUE command followed by a SUPRESS (for clarity) or just let it go from there. Xlate will always send what’s left on the outbound side. In this case it would be the “duplicate.” MSH.#10 is usually used just to send back with the ACK stating that it received the message. If they are specific about that field using numbers only (because thefield on their side is numeric) concatenating the “A” on the end of MSH.#10 will not work.
I also agree with not creating additional charges via the engine. However, sometimes you just have to do what is necessary to get it right because the vendor cannot comply.