Share via

SOAP 1.2 Binding Replaced or Hybridized on WSDL Export from Azure API Management

Shekhar Nadide 201 Reputation points
2026-04-28T11:20:18.5+00:00

We are experiencing an issue with Azure API Management (APIM) when exporting a SOAP 1.2 API. Our original WSDL uses explicit SOAP 1.2 bindings, for example:

<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
<soap12:operation ... />
<soap12:body use="literal" />
<soap12:address ... />

However, after importing this WSDL into APIM and then exporting it, the resulting WSDL is not standards-compliant:

  • The <wsdl:binding> element is now a generic <binding> with xmlns="http://schemas.xmlsoap.org/wsdl/soap/" (SOAP 1.1 namespace).
  • The <soap:operation> and <soap:body> elements reference the SOAP 1.2 namespace, but the binding element itself is not <soap12:binding>.
  • The <address> element is in the SOAP 1.2 namespace.

This results in a hybrid WSDL that is not valid for strict SOAP 1.2 clients.

Azure API Management
Azure API Management

An Azure service that provides a hybrid, multi-cloud management platform for APIs.

0 comments No comments

2 answers

Sort by: Most helpful
  1. Siddhesh Desai 7,055 Reputation points Microsoft External Staff Moderator
    2026-04-28T15:10:40.5533333+00:00

    Hi @Shekhar Nadide

    Thank you for reaching out to Microsoft Q&A.

    When a SOAP 1.2 WSDL is imported into Azure API Management (APIM), the service internally normalizes the SOAP metadata into its own API model so it can apply gateway policies and routing. During this process, SOAP version fidelity is not preserved as a first‑class construct. When the API is later exported, APIM regenerates the WSDL using a generic wsdl:binding element that defaults to the SOAP 1.1 WSDL namespace, while still emitting SOAP 1.2–specific elements such as soap12: operation, soap12: body, and soap12: address. This results in a hybrid WSDL that is syntactically valid XML but not standards‑compliant for strict SOAP 1.2 clients. This behavior is a known limitation of APIM’s WSDL import/export pipeline APIM is designed to act as a runtime gateway and proxy rather than a canonical or round‑trip‑safe WSDL authoring tool.

    Refer below points to resolve this issue or this is the workaround

    Use the original backend WSDL as the source of truth.

    APIM should be treated purely as a gateway. Keep and share the original SOAP 1.2 WSDL published by the backend service for client generation and strict SOAP 1.2 consumers. Do not rely on the APIM‑exported WSDL for client tooling.

    Manually correct the exported WSDL

    If you must distribute the APIM‑exported WSDL, manually edit it after export:

    • Change <binding> to <soap12: binding>
    • Ensure the binding namespace is http://schemas.xmlsoap.org/wsdl/soap12/
    • Verify all related elements operation, body, address consistently use SOAP 1.2 This is an unsupported workaround and must be repeated after every export.

    Publish a static, corrected WSDL

    Host a corrected SOAP 1.2 compliant WSDL (for example in Azure Blob Storage or a repository) and direct consumers to that endpoint. Avoid exposing or advertising APIM’s ?wsdl endpoint.

    Raise product feedback or a support ticket

    Raise this as an issue here: https://github.com/Azure/api-management-developer-portal/issues by clicking on New Issue.

    Was this answer helpful?

    1 person found this answer helpful.

  2. Sina Salam 29,021 Reputation points Volunteer Moderator
    2026-05-11T16:17:52.35+00:00

    Hello Shekhar Nadide,

    Welcome to the Microsoft Q&A and thank you for posting your questions here.

    I understand that your SOAP 1.2 Binding Replaced or Hybridized on WSDL Export from Azure API Management.

    With the above or previous response, you should be able to fix SOAP 1.2 client issue. However, APIM destroys SOAP version fidelity during WSDL export and that generates invalid hybrid WSDL which cannot be fixed within APIM import/export. What you can do is to never use APIM-generated WSDL. Use the original SOAP 1.2 WSDL as the contract and use APIM strictly as a runtime gateway.

    I hope this is helpful! Do not hesitate to let me know if you have any other questions or clarifications.


    Please don't forget to close up the thread here by upvoting and accept it as an answer if it is helpful.

    Was this answer helpful?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.