Skip to content

Overview & connection

The SOAP Custom Link is the most extensive integration surface of the MendriX TMS — a mature, battle-tested API that reaches every corner of the system. The REST API is the clean, JSON-native surface for day-to-day integration and is where new development happens; for the widest reach and the most demanding integrations, Custom Link is the way in.

Use SOAP forUse REST for
Order intake & update (StoreOrdersNormal)Clients, contacts, address books
Order retrieval (RequestOrdersNormal)Invoices & payments
Rides & planning, traces, employees, hoursOrder & task updates (PATCH), copies
Packaging transactions, measurements, memos, questionnaires, jobs

Custom Link goes deeper than REST does today — most of its commands have no REST equivalent yet; see the command reference for the full list. REST order creation is coming soon; until it ships, new orders go through Custom Link.

SOAP requests are POSTed to the service endpoint:

https://<your-client-name>.mendrix.cloud:5564/soap/ICustomLinkSoap

The service contract (WSDL) is published separately at:

https://<your-client-name>.mendrix.cloud:5564/wsdl/ICustomLinkSoap
  • Port 5564, HTTPS.
  • The service interface is ICustomLinkSoap; fetch the WSDL from the URL above to generate a client, or craft SOAP requests by hand and POST them to the service endpoint.
  • Replace <your-client-name> with your client name (environments).

How calls work: the ExecuteRequest wrapper

Section titled “How calls work: the ExecuteRequest wrapper”

The service exposes a single SOAP operation, ExecuteRequest (rpc/encoded). Every Custom Link call uses the same envelope; the Eo payload you put inside it — entity-escaped, as a string — determines the actual operation (TEoCustomLinkRequestDateTime, TEoCustomLinkStoreOrdersNormal, …):

<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<h:TAuthenticationHeader xmlns:h="urn:UCoSoapDispatcherBase">
<UserName>YOUR_SOAP_NAME</UserName>
<Password>YOUR_SOAP_PASSWORD</Password>
</h:TAuthenticationHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:ExecuteRequest xmlns:m="urn:UCoSoapDispatcherCustomLink-ICustomLinkSoap">
<ARequest xsi:type="xsd:string">&lt;?xml version="1.0" encoding="windows-1252"?&gt;&lt;EoCustomLinkRequestDateTime Type="TEoCustomLinkRequestDateTime"/&gt;</ARequest>
</m:ExecuteRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
  • The Eo payload goes into ARequest entity-escaped (& → &amp;, < → &lt;, > → &gt;).
  • The response is wrapped the same way: ExecuteRequestResponse contains a return string holding the escaped EoCustomLink…Response XML — unescape and parse it as a second step.
  • Business and authentication errors come back as a successful (HTTP 200) SOAP response whose return payload is a TEoCustomLinkException (ExceptionClassName, ExceptionMessage) — always check for it before parsing the result.
  • POSTing a bare Eo payload without this envelope yields the SOAP fault Invalid SOAP request.

Start with the server time example — the smallest possible round trip.

All payloads are described by the XML schema GdxEoStructures.xsd. Key types for order intake:

  • TEoCustomLinkStoreOrdersNormal — the store-orders request wrapper.
  • TEoOrderMxList / TEoOrderMx — the order(s) to store.
  • TEoTaskMxList / TEoTaskMx — the tasks (pickup, delivery, …) on an order.
  • TEoAddress, TEoDateTimeWindow — addresses and time windows.

Credentials travel inside the envelope, in the TAuthenticationHeader SOAP header (UserName / Password) shown above. These are the Custom Link SOAP name and password for your tenant, validated server-side against the MendriX account service; depending on your tenant’s configuration the password may be empty. You receive them during onboarding — ask your MendriX contact if you don’t have them.

HTTP-level authentication (e.g. Basic Auth) is not accepted: without the SOAP header the service answers SOAP header for authentication required.

An API token scoped to a single client (rather than a master token) can only call a fixed set of commands. Calling anything else returns the SOAP-layer error Security: no permission for request <RequestClassName> (for example, Security: no permission for request TEoCustomLinkStoreEmployees):

  • RequestOrdersNormal / RequestOrdersNormalIds
  • StoreOrdersNormal (create and update orders)
  • RequestTracesGoods / StoreTracesGoods
  • StoreMemos
  • RequestDateTime
  • RequestTaskQuestionnaire / RequestQuestionnaireAnswers
  • StoreMeasurements
  • RequestPackagingTransactions
  • ActivateOrderTemplate

See the Command reference for the full command list and which of these are client-scoped-safe.

  • Content-Type: text/xml; charset=utf-8.
  • SOAPAction: always "urn:UCoSoapDispatcherCustomLink-ICustomLinkSoap#ExecuteRequest" — the operation is selected by the payload’s Type, not by the SOAPAction.
  • Batching: While TEoOrderMxList accepts multiple orders per call, the operational convention is to send one order per StoreOrdersNormal call.
  • Validation: validate the outgoing payload XML against GdxEoStructures.xsd before sending.