It's hard to do transactionally via push technology.
The only transactional option to do so is to use WCF bridge, and it requires in turn using SQL Server 2008, since 2012 the dynamic background compilation of the WSDL based assemblies blocked by SQL Server hosted CLR, and I have never cracked how to force compile these assemblies in such a way as to avoid references to assemblies prohibited by hosted CLR policies.
The only choice I found working ( perhaps due to my failing to figure out the workaround ) is to use HttpClient RESTFull style network client with CLR integrated procedure working off of SQL Server Broker Activated procedure. It works really well with only one trouble, RESTFull does not support transactional out of the box. So, if you need a guaranteed delivery of the message you will need to have a check call somewhere along the message flow.
In fact to protect integrity of MSMQ operations I inserted an transactional WCF service between my RESTFull and MSMQ, and on MSMQ used trigger, which in turn has policy driven transactional data processing. Please note, MSMQ trigger requires installing MSMQ trigger feature. I have opted to exe based trigger as alternate approach is to use COM based DLL, and I didn't feel like using COM since free threaded DLL requires implementation complex C++ application, and apartment threaded, which is relatively easy to design in C# with CCW, imposes limit on application scale. In the end RESTFull call could be considered "near transactional" since it is performed in the context of transaction, and unless you have some serious error, such as missing to trap an error condition ( basically miss to implement try / catch ) and throw, when raising error condition is required, you will have the benefit of reliable commit / rollback. However, reinforcing with check call and reasonable timeout, when missing data considered equal to absence of commit, to ensure reliability of message delivery, is nice to have.