General & Technical
-
Email Authentication
Postmark DKIM Setup
Unimarket has adopted the use of Postmark as our tool to help manage Unimarket emails. Postmark was selected because they are experts in the area of emails. They provide better guarantees around delivery and bounce handling, as well as provide higher levels of email security. Postmark uses the DKIM (DomainKeys Identified Mail) for the authentication of an email that’s being sent. DKIM is an open standard for email authentication and a preferred method of authentication. This setup will make sure all emails from Unimarket are coming from your email domain.
A PO notification to the supplier will come from example@customerdomain.com.
Mail From
By default (without any configuration), Unimarket sets the MAIL FROM in the email header to bounce@<your unimarket domain>, e.g. bounce@customer.unimarket.com. This stops emails from bouncing. We then set the FROM to your community defined customer email domain so that the recipient's email client displays the FROM address (your email domain) but 'via Unimarket.com'. Please note that this can display in email clients differently. Some show ‘via Unimarket’ ,while others may just show your email domain.
A PO notification to the supplier will come from example@customerdomain.com via unimarket.com
Return Path Setup
If you want to ensure that all emails display as coming from your email domain and not 'via Unimarket', then a Return Path can be configured. This tells the recipient's email client that Unimarket is authorised to send emails on your behalf and it doesn't get marked as spam.
With a custom Return-Path, you can set your own return path email address e.g. bounce@bounce.customerdomain.com in place of ours.
The Return-Path is used to set the SMTP header MAIL FROM
When using the Return Path option you must setup a CNAME entry to your DNS that maps the domain you provide to our domain. So if your return path is bounce@bounce.customerdomain.com and the CNAME should be bounce.customerdomain.com---> unimarket.com. Use the Validate Return Path button to test if the CNAME you have setup in your DNS matches the Return Path.
Once setup, your Community administrator can enter the return path (e.g. bounce@bounce.customerdomain.com) under Email Delivery Authentication on the Administration / Settings / Profile screen. Please note that the return path needs to have the same suffix as the From addresses, i.e. if the From address is customerdomain.com, then the return path needs to be <something>.customerdomain.com.
-
Simplifying SPF maintenance
Overview
Unimarket has an SPF Include that you can use rather than directly referring to specific ip addresses. The advantage is that you will not need to make any SPF changes when Unimarket makes infrastructure changes or adds additional mail servers.
Unimarket will continue to support customers using this method however this is no longer available for new customers or for existing customers to switch to.
Please add the following to your SPF record:
include:_spf.unimarket.com
Your resulting SPF should look something like (note: this is just an example, your SPF record may look quite different):
v=spf1 mx include:_spf.unimarket.com ~all
Unimarket Production Email Server IP addresses:
- AU Production: 35.201.28.55
- NZ Production: 35.244.97.153
- US Production: 34.72.64.51
-
Webservice Integration Technical Documentation & Examples
Integration Message Types
Unimarket XML Integration Points (uXML)
Below is a link to the technical documentation and examples for the Unimarket XML (uXML) integration points:
- Unimarket: Webservice Integration Documentation
- The complete documentation and examples: Download Zip File
cXML Integration Points
Where possible Unimarket uses the Commerce XML (cXML) standard for common integration points with suppliers and buying organizations such as Orders and Invoices.
-
Sending POX (Plain Old XML) Messages to Unimarket
Overview
POX stands for Plain Old XML and is a simpler alternative protocol for sending messages to Unimarket.
Basic getting started guide- Contact Unimarket to provide you with the authentication details required (tenant identifier, integration username and shared secret).
- Review the Unimarket xml schema and identify the top-level request element to send to Unimarket.
- Create a request message that conforms to the xml schema.
- Send a valid POX message containing the request message and the authentication header element wrapped in a pox-envelope to one of the following two applicable urls.
- Supplier:
- https://supplier.unimarket.com/ws - US
- https://supplier.unimarket.co.nz/ws - NZ
- https://supplier.unimarket.com.au/ws - AU
- Community:
Note: Please note that cXML requests (e.g. OrderRequest, InvoiceDetailRequst) do not need to be wrapped in a pox-envelope element as the authentication details are already included in the cXML request. Example POX message
<?xml version="1.0" encoding="UTF-8"?>
<u:pox-envelope xmlns:u="http://www.unimarket.com/schema/unimarket-ws">
<u:header>
<u:authentication>
<!-- Unique identifier of the Unimarket tenant (community or supplier) -->
<u:tenant-ref identity="7f251a49-bd4d-4527-b234-d3d4a3e14e1b" domain="UNIMARKET_ID_DOMAIN"/>
<u:sender>
<!-- Unique identifier of the Unimarket integration user -->
<u:user-ref identity="6cd91828-a4f4-4b70-b9ac-5f6f4d9e4082" domain="UNIMARKET_USERNAME_DOMAIN"/>
<!-- Password used to authenticate the request -->
<u:shared-secret>password1</u:shared-secret>
</u:sender>
</u:authentication>
</u:header>
<u:body>
<create-quote-request xmlns='http://www.unimarket.com/schema/unimarket-ws'>
<header>
<to>
<!-- Unique Unimarket username of the user the quote is for -->
<user-ref identity='user1'/>
<!-- Unique Unimarket code of the user's community -->
<tenant-ref identity='AACC'/>
</to>
<summary>summary value</summary>
<reference-code>quote ref value</reference-code>
<expiry>2009-08-01T15:30:00</expiry>
</header>
<!-- e.g. line with tax -->
<line quantity="2">
<code>product code</code>
<name>name value</name>
<description>desc value</description>
<unit-of-measure unit="EA"/>
<unit-price iso-currency-code="USD">50.00</unit-price>
<subtotal iso-currency-code="USD">100.00</subtotal>
<tax iso-currency-code="USD">15</tax>
<total iso-currency-code="USD">115</total>
</line>
</create-quote-request>
</u:body>
</u:pox-envelope> -
Sending SOAP Messages to Unimarket
Overview
SOAP is a protocol specification for exchanging structured information (XML) in the implementation of Web Services. Clients using this protocol will usually use the Unimarket wsdl to generate the required code on their chosen platform.
Basic getting started guide
- Contact Unimarket to provide you with the authentication details required (tenant identifier, integration username and shared secret).
- Download the Unimarket wsdl (see Webservice Integration Documentation) and identify the operation for sending the chosen request element to Unimarket.
- Download the Unimarket xml schema (see Webservice Integration Documentation) and identify the top-level request element to send to Unimarket.
- Create a request message that conforms to the xml schema.
- Send a valid SOAP message containing the request message and the authentication header element to one of the following two applicable urls.
- Supplier
- https://supplier.unimarket.com/ws-soap-unsigned - US
- https://supplier.unimarket.co.nz/ws-soap-unsigned - NZ
- https://supplier.unimarket.com.au/ws-soap-unsigned - AU
- Commmunity
Tip: Use the free soapUI client to test sending messages to Unimarket. Example SOAP message
<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>
</update-account-code-format-request>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>