> For the complete documentation index, see [llms.txt](https://docs.unimarket.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.unimarket.com/documentation/general-technical/sending-soap-messages-to-unimarket.md).

# Sending SOAP Messages to Unimarket

**SOAP (Simple Object Access Protocol)** is a highly structured protocol used to exchange XML-based information when implementing Unimarket Web Services. Unlike the simpler POX protocol, SOAP relies on a **WSDL (Web Services Description Language)** to define the exact operations and data structures available.

## Implementation Guide

To integrate using SOAP, your development team will typically use the WSDL to auto-generate the necessary client code for your specific programming platform (e.g., .NET, Java).

### 1. Technical Prerequisites

* **Authentication Details**: Contact Unimarket to obtain your **Tenant Identifier**, **Integration Username**, and **Shared Secret**.
* **WSDL File**: Download the official Unimarket WSDL from the *Webservice Integration Documentation* to identify the service operations.
* **XML Schema (XSD)**: Reference the schema to identify the top-level request elements required for your specific integration (e.g., Budget Check or User Sync).

### 2. Message Structure

A valid SOAP message for Unimarket must contain:

1. **SOAP Envelope**: The outer wrapper for the message.
2. **Authentication Header**: Your credentials must be included within the SOAP header to be accepted.
3. **Request Body**: The specific uXML request element that conforms to the Unimarket schema.

### 3. Regional SOAP Endpoints

Messages must be sent as an HTTPS POST to the unsigned SOAP endpoint relevant to your region and organization type:

| Region            | Supplier SOAP Endpoint                               | Community SOAP Endpoint                            |
| ----------------- | ---------------------------------------------------- | -------------------------------------------------- |
| **United States** | `https://supplier.unimarket.com/ws-soap-unsigned`    | `https://<code>.unimarket.com/ws-soap-unsigned`    |
| **New Zealand**   | `https://supplier.unimarket.co.nz/ws-soap-unsigned`  | `https://<code>.unimarket.co.nz/ws-soap-unsigned`  |
| **Australia**     | `https://supplier.unimarket.com.au/ws-soap-unsigned` | `https://<code>.unimarket.com.au/ws-soap-unsigned` |

## Pro-Tip: Testing with SoapUI

For initial testing and debugging, Unimarket recommends using **SoapUI**, a free open-source tool. By importing the Unimarket WSDL into SoapUI, you can quickly generate sample requests, input your credentials, and see the real-time XML response from the Unimarket servers without writing any code.

## Comparison: SOAP vs. POX

While both use XML, **SOAP** is preferred for enterprise-level integrations where strict interface contracts and formal error handling are required. **POX** is often chosen for simpler, lightweight data-sync tasks. See [Sending POX (Plain Old XML) Messages to Unimarket](/documentation/general-technical/sending-pox-messages-to-unimarket.md) for the POX equivalent.

### Example SOAP Message

```xml
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header>
        <header xmlns="http://www.unimarket.com/schema/unimarket-ws">
            <authentication>
                <!-- Unique identifier of the Unimarket tenant (community or supplier) -->
                <tenant-ref domain="UNIMARKET_ID_DOMAIN" identity="782965bc-f39b-4589-8949-5530e6d1b287"/>
                <sender>
                    <!-- Unique identifier of the Unimarket integration user -->
                    <user-ref identity="AACCUMKT" domain="UNIMARKET_USERNAME_DOMAIN"/>
                    <!-- Password used to authenticate the request -->
                    <shared-secret>shared secret</shared-secret>
                </sender>
            </authentication>
        </header>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
        <update-account-code-format-request xmlns="http://www.unimarket.com/schema/unimarket-ws">
            <account-code-format code="PROJECT_A">
                <account-code-format-part code="part-a" required="true">
                    <regular-expression-part max-length="1">
                        <expression>.*</expression>
                    </regular-expression-part>
                </account-code-format-part>
            </account-code-format>
        </update-account-code-format-request>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
```

{% hint style="info" %}
For a full list of available message types and the uXML vs. cXML standards, see [Webservice Integration Technical Documentation & Examples](/documentation/general-technical/webservice-integration-technical-documentation-examples.md).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.unimarket.com/documentation/general-technical/sending-soap-messages-to-unimarket.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
