# SOAP integrations

Call and receive SOAP with plain Python objects - no XML, schemas or WSDL compilation.

## Get started

Build a request by assigning attributes, invoke the operation over a configured connection and read the response through attribute access - envelopes, security and addressing come from configuration.

[Calling SOAP APIs](https://zato.io/tutorials/soap/calling.html)

service.py

```
# SOAP with plain Python objects
request = SOAPMessage()
request.echoBack = 'Hello registry'

conn = self.soap['Immunization Registry']
response = conn.invoke(
    'connectivityTest', request)

response.connectivityTestResponse.return_
'Hello registry'
```

## Tutorials

[Calling SOAP APIs Your first outgoing SOAP connection and invocation, step by step.](https://zato.io/tutorials/soap/calling.html) [Receiving SOAP calls A SOAP channel that unwraps each envelope before your service runs.](https://zato.io/tutorials/soap/receiving.html) [SOAP security WS-Security, body credentials and mutual TLS applied to a working connection.](https://zato.io/tutorials/soap/security.html)

## Building blocks

[Python message objects Dot-accessed requests and responses, with no XML in sight.](https://zato.io/docs/dev/soap/python-objects/index.html) [WS-Security UsernameToken, X.509 signing and encryption, SAML assertions and mutual TLS.](https://zato.io/docs/dev/soap/security/index.html) [WS-Addressing wsa:Action, wsa:MessageID and friends, added and parsed automatically.](https://zato.io/docs/dev/soap/addressing/index.html) [Attachments MTOM and SwA - binary payloads as MIME parts instead of inline base64.](https://zato.io/docs/dev/soap/attachments/index.html) [ebXML messaging ebMS 2.0 exchanges with per-payload signing and encryption.](https://zato.io/docs/dev/soap/ebxml/index.html) [Delivery queues Retries and dead-letter queues for outgoing connections, and a channel's queue that acknowledges each call at once and runs the service later.](https://zato.io/docs/dev/delivery.html#the-queue-on-a-channel)

## Who mandates what

[Mandates overview How each ecosystem combines the blocks, and the exact combination each one requires.](https://zato.io/docs/dev/soap/mandates/index.html) [Immunization registries (CDC IIS) SOAP 1.2 over TLS with credentials inside the business message.](https://zato.io/docs/dev/soap/mandates/cdc-iis/index.html) [Healthcare document exchange (IHE) WS-Addressing, MTOM documents and signed SAML assertions for IHE, TEFCA and eHealth Exchange.](https://zato.io/docs/dev/soap/mandates/healthcare-ihe/index.html) [NHS Spine ebXML MHS over mutual TLS for the English national health network.](https://zato.io/docs/dev/soap/mandates/nhs-spine/index.html) [Norwegian Helsenett ebXML exchanges with payloads signed and encrypted per recipient.](https://zato.io/docs/dev/soap/mandates/norway-helsenett/index.html)
