In API Proxies whose API proxy type is SOAP or REST-SOAP-REST, if the "Fix SOAP Action and namespace" option is selected in the routing tab on the message coming to Apinizer, some changes can be made according to the following situations.


In order to make these changes, the SOAP version of the incoming message is determined first.

In order to decide on the SOAP Type, the Content-Type value sent in the Request Header and the namespace value of the SOAP XML in the Request Body are checked.

If these two values ​​are different, priority is given to the Content Type header. If the Content-Type value is empty or meaningless, the SOAP version is determined from the SOAP XML's namespace value.

If SOAP version value is determined by Content-Type, the value is;

  • SOAP1.1, if it starts with the value "text/xml",
  • SOAP1.2, if it starts with the value "application/soap+xml",
  • SOAP1.1, if it starts with the value "application/xop+xml" and if the "type" value in the Content-Type value also contains "text/xml",
  • SOAP1.2, if it starts with the value "application/xop+xml" and if the "type" value in the Content-Type value also contains "application/soap+xml"

If the SOAP version value is determined by the namespace value of the SOAP XML, the value is;

After SOAP version value is determined;

  1. The namespace value of the SOAP XML message is corrected according to the SOAP version.
  2. For requests with SOAP version 1.1;
    1. If there is a "soapaction" keyword in the request header, the case sensitivity will be corrected, otherwise, "SOAPAction" header will be added.
    2. The value to be added to the "SOAPAction" keyword is the SOAPAction value, which belongs to the Api Proxy method the message comes from and is obtained by parsing it from the WSDL definition.
    3. Quotation marks are added to the beginning and end of the SOAPAction value if it does not exist.
    4. The Content-Type value is set to "text/xml".
    5. If Character Encoding value exists, it is added to Content-Type, otherwise ";charset=UTF-8" value is added by default.
  3. For requests with SOAP version 1.2;
    1. The Content-Type value is set to "application/soap+xml".
    2. If Character Encoding value exists, it is added to Content-Type, otherwise ";charset=UTF-8" value is added by default.
    3. The expression ";action=<SOAPAction>" is added to the Content-Type value.


Content-Type based detection table:

Content-Type PatternSOAP Version
text/xmlSOAP 1.1
application/soap+xmlSOAP 1.2
application/xop+xml with type="text/xml"SOAP 1.1
application/xop+xml with type="application/soap+xml"SOAP 1.2

Namespace based detection table: