diff --git a/translators/nativy/nis_offerrequest.xml b/translators/nativy/nis_offerrequest.xml
deleted file mode 100644
index 7665b4b..0000000
--- a/translators/nativy/nis_offerrequest.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-<CreateOffer xmlns="https://www.nativy.com/nis">
-  <requ>
-    <xs:schema id="offerrequest" targetNamespace="http://www.nativy.com/nis"
-      xmlns:mstns="http://www.nativy.com/nis" xmlns="http://www.nativy.com/nis"
-      xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
-      attributeFormDefault="qualified" elementFormDefault="qualified">
-      <xs:element name="offerrequest" msdata:IsDataSet="true"
-        msdata:Locale="en-US">
-        <xs:complexType>
-          <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element name="customer">
-              <xs:complexType>
-                <xs:sequence>
-                  <xs:element name="customerEmail" type="xs:string"
-                    minOccurs="0" msdata:Ordinal="0" />
-                  <xs:element name="customerFirstName" type="xs:string"
-                    minOccurs="0" msdata:Ordinal="1" />
-                  <xs:element name="customerLastName" type="xs:string"
-                    minOccurs="0" msdata:Ordinal="2" />
-                </xs:sequence>
-                <xs:attribute name="customerId" form="unqualified"
-                  type="xs:string" />
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="languages">
-              <xs:complexType>
-                <xs:sequence>
-                  <xs:element name="language" minOccurs="0" maxOccurs="unbounded">
-                    <xs:complexType>
-                      <xs:attribute name="langCode" form="unqualified"
-                        type="xs:string" />
-                    </xs:complexType>
-                  </xs:element>
-                </xs:sequence>
-                <xs:attribute name="primaryLangCode" form="unqualified"
-                  type="xs:string" />
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="textblocks">
-              <xs:complexType>
-                <xs:sequence>
-                  <xs:element name="textblock" minOccurs="0"
-                    maxOccurs="unbounded">
-                    <xs:complexType>
-                      <xs:sequence>
-                        <xs:element name="description" nillable="true"
-                          minOccurs="0" maxOccurs="unbounded">
-                          <xs:complexType>
-                            <xs:simpleContent msdata:ColumnName="description_Text"
-                              msdata:Ordinal="1">
-                              <xs:extension base="xs:string">
-                                <xs:attribute name="langCode" form="unqualified"
-                                  type="xs:string" />
-                              </xs:extension>
-                            </xs:simpleContent>
-                          </xs:complexType>
-                        </xs:element>
-                      </xs:sequence>
-                      <xs:attribute name="code" form="unqualified"
-                        type="xs:string" />
-                      <xs:attribute name="label" form="unqualified"
-                        type="xs:string" />
-                      <xs:attribute name="category" form="unqualified"
-                        msdata:Caption="label" type="xs:string" />
-                    </xs:complexType>
-                  </xs:element>
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-            <xs:element name="settings">
-              <xs:complexType>
-                <xs:sequence>
-                  <xs:element name="emailCallbackLink" type="xs:string"
-                    default="" minOccurs="0" />
-                </xs:sequence>
-              </xs:complexType>
-            </xs:element>
-          </xs:choice>
-        </xs:complexType>
-      </xs:element>
-    </xs:schema>
-    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
-      xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
-      <offerrequest xmlns="http://www.nativy.com/nis">
-        <customer diffgr:id="customer1" msdata:rowOrder="0"
-          diffgr:hasChanges="inserted" customerId="mailto:demo@nativy.com">
-          <customerEmail>!customerEmail</customerEmail>
-          <customerFirstName>!customerFirstName</customerFirstName>
-          <customerLastName>!customerLastName</customerLastName>
-        </customer>
-        <languages diffgr:id="languages1" msdata:rowOrder="0"
-          diffgr:hasChanges="inserted" primaryLangCode="!primaryLangCode"
-          msdata:hiddenlanguages_Id="0">
-          <language diffgr:id="language1" msdata:rowOrder="0"
-            diffgr:hasChanges="inserted" langCode="!langCode"
-            msdata:hiddenlanguages_Id="0" />
-        </languages>
-        <textblocks diffgr:id="textblocks1" msdata:rowOrder="0"
-          diffgr:hasChanges="inserted" msdata:hiddentextblocks_Id="0">
-          !textblocks
-        </textblocks>
-        <settings diffgr:id="settings1" msdata:rowOrder="0"
-          diffgr:hasChanges="inserted">
-          <emailCallbackLink>!emailCallbackLink</emailCallbackLink>
-        </settings>
-      </offerrequest>
-    </diffgr:diffgram>
-  </requ>
-</CreateOffer>
\ No newline at end of file
diff --git a/translators/nativy/nis_offerrequest_sample.xml b/translators/nativy/nis_offerrequest_sample.xml
deleted file mode 100644
index 3bea3b9..0000000
--- a/translators/nativy/nis_offerrequest_sample.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-﻿<CreateOffer xmlns="https://www.nativy.com/nis">
-<requ>
-<offerrequest xmlns="http://www.nativy.com/nis">
-  <settings>
-    <emailCallbackLink>https://www.yourapplication.com/nisinterface/gettranslation</emailCallbackLink>
-  </settings>
-  <customer customerId="mailto:demo@nativy.com">
-    <customerEmail>demo@nativy.com</customerEmail>
-    <customerFirstName>Demofirstname</customerFirstName>
-    <customerLastName>Demolastname</customerLastName>
-  </customer>
-  <languages primaryLangCode="de-DE">
-    <language langCode="en" />
-  </languages>
-  <textblocks>
-    <textblock code="faq_question1" label="Wie funktioniert nativy?">
-      <description langCode="de-DE">
-        nativy hat ein System entwickelt, um den/die ideale ÜbersetzerIn für jeden Auftrag zu finden. KundInnen können dabei ihre individuellen Kriterien in der Suche nach dem/der idealen ÜbersetzerIn einbringen. nativy übernimmt in dem gesamten Prozess die wichtigsten administrativen Aufgaben, um seinen NutzerInnen das Leben etwas zu erleichtern und die Zusammenarbeit zu beschleunigen. nativy verrechnet seinen KundInnen das von dem/der ÜbersetzerIn festgelegte Honorar inklusive eines geringfügigen Vermittlungsaufschlags.
-      </description>
-    </textblock>
-    <textblock code="faq_question2" label="Wer übersetzt bei nativy?">
-      <description langCode="de-DE">
-        Nur professionelle ÜbersetzerInnen werden bei nativy zugelassen. Übersetzungen in die Muttersprache werden bevorzugt. Die Qualifikationen jedes/r ÜbersetzerIn werden durch nativy geprüft.
-      </description>
-    </textblock>
-    <textblock code="faq_question3" label="Stehen AuftraggeberInnen und ÜbersetzerInnen in direktem Kontakt?">
-      <description langCode="de-DE">
-        Ja, auf der Webseite von nativy können Kurznachrichten zu den jeweiligen Aufträgen ausgetauscht werden.
-      </description>
-    </textblock>
-  </textblocks>
-</offerrequest>
-</requ>
-</CreateOffer>
\ No newline at end of file
diff --git a/translators/nativy/nis_offerrequest_sample_good.xml b/translators/nativy/nis_offerrequest_sample_good.xml
deleted file mode 100644
index f7dd03a..0000000
--- a/translators/nativy/nis_offerrequest_sample_good.xml
+++ /dev/null
@@ -1,149 +0,0 @@
-<CreateOffer xmlns="https://www.nativy.com/nis">
-	<requ>
-		<xs:schema id="offerrequest" targetNamespace="http://www.nativy.com/nis"
-			xmlns:mstns="http://www.nativy.com/nis" xmlns="http://www.nativy.com/nis"
-			xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
-			attributeFormDefault="qualified" elementFormDefault="qualified">
-			<xs:element name="offerrequest" msdata:IsDataSet="true"
-				msdata:Locale="en-US">
-				<xs:complexType>
-					<xs:choice minOccurs="0" maxOccurs="unbounded">
-						<xs:element name="customer">
-							<xs:complexType>
-								<xs:sequence>
-									<xs:element name="customerEmail" type="xs:string"
-										minOccurs="0" msdata:Ordinal="0" />
-									<xs:element name="customerFirstName" type="xs:string"
-										minOccurs="0" msdata:Ordinal="1" />
-									<xs:element name="customerLastName" type="xs:string"
-										minOccurs="0" msdata:Ordinal="2" />
-								</xs:sequence>
-								<xs:attribute name="customerId" form="unqualified"
-									type="xs:string" />
-							</xs:complexType>
-						</xs:element>
-						<xs:element name="languages">
-							<xs:complexType>
-								<xs:sequence>
-									<xs:element name="language" minOccurs="0" maxOccurs="unbounded">
-										<xs:complexType>
-											<xs:attribute name="langCode" form="unqualified"
-												type="xs:string" />
-										</xs:complexType>
-									</xs:element>
-								</xs:sequence>
-								<xs:attribute name="primaryLangCode" form="unqualified"
-									type="xs:string" />
-							</xs:complexType>
-						</xs:element>
-						<xs:element name="textblocks">
-							<xs:complexType>
-								<xs:sequence>
-									<xs:element name="textblock" minOccurs="0"
-										maxOccurs="unbounded">
-										<xs:complexType>
-											<xs:sequence>
-												<xs:element name="description" nillable="true"
-													minOccurs="0" maxOccurs="unbounded">
-													<xs:complexType>
-														<xs:simpleContent msdata:ColumnName="description_Text"
-															msdata:Ordinal="1">
-															<xs:extension base="xs:string">
-																<xs:attribute name="langCode" form="unqualified"
-																	type="xs:string" />
-															</xs:extension>
-														</xs:simpleContent>
-													</xs:complexType>
-												</xs:element>
-											</xs:sequence>
-											<xs:attribute name="code" form="unqualified"
-												type="xs:string" />
-											<xs:attribute name="label" form="unqualified"
-												type="xs:string" />
-											<xs:attribute name="category" form="unqualified"
-												msdata:Caption="label" type="xs:string" />
-										</xs:complexType>
-									</xs:element>
-								</xs:sequence>
-							</xs:complexType>
-						</xs:element>
-						<xs:element name="settings">
-							<xs:complexType>
-								<xs:sequence>
-									<xs:element name="emailCallbackLink" type="xs:string"
-										default="" minOccurs="0" />
-								</xs:sequence>
-							</xs:complexType>
-						</xs:element>
-					</xs:choice>
-				</xs:complexType>
-			</xs:element>
-		</xs:schema>
-		<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
-			xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
-			<offerrequest xmlns="http://www.nativy.com/nis">
-				<customer diffgr:id="customer1" msdata:rowOrder="0"
-					diffgr:hasChanges="inserted" customerId="mailto:demo@nativy.com">
-					<customerEmail>demo@nativy.com</customerEmail>
-					<customerFirstName>Demofirstname</customerFirstName>
-					<customerLastName>Demolastname</customerLastName>
-				</customer>
-				<languages diffgr:id="languages1" msdata:rowOrder="0"
-					diffgr:hasChanges="inserted" primaryLangCode="de-DE"
-					msdata:hiddenlanguages_Id="0">
-					<language diffgr:id="language1" msdata:rowOrder="0"
-						diffgr:hasChanges="inserted" langCode="en"
-						msdata:hiddenlanguages_Id="0" />
-				</languages>
-				<textblocks diffgr:id="textblocks1" msdata:rowOrder="0"
-					diffgr:hasChanges="inserted" msdata:hiddentextblocks_Id="0">
-					<textblock diffgr:id="textblock1" msdata:rowOrder="0"
-						diffgr:hasChanges="inserted" code="faq_question1" label="Wie funktioniert nativy?"
-						msdata:hiddentextblock_Id="0" msdata:hiddentextblocks_Id="0">
-						<description diffgr:id="description1" msdata:rowOrder="0"
-							diffgr:hasChanges="inserted" langCode="de-DE"
-							msdata:hiddentextblock_Id="0">
-							nativy hat ein System entwickelt, um den/die ideale ÜbersetzerIn für
-							jeden Auftrag zu finden. KundInnen können dabei ihre
-							individuellen Kriterien in der Suche nach dem/der idealen
-							ÜbersetzerIn einbringen. nativy übernimmt in dem gesamten
-							Prozess die wichtigsten administrativen Aufgaben, um seinen
-							NutzerInnen das Leben etwas zu erleichtern und die
-							Zusammenarbeit zu beschleunigen. nativy verrechnet seinen
-							KundInnen das von dem/der ÜbersetzerIn festgelegte Honorar
-							inklusive eines geringfügigen Vermittlungsaufschlags.
-								</description>
-					</textblock>
-					<textblock diffgr:id="textblock2" msdata:rowOrder="1"
-						diffgr:hasChanges="inserted" code="faq_question2" label="Wer übersetzt bei nativy?"
-						msdata:hiddentextblock_Id="1" msdata:hiddentextblocks_Id="0">
-						<description diffgr:id="description2" msdata:rowOrder="1"
-							diffgr:hasChanges="inserted" langCode="de-DE"
-							msdata:hiddentextblock_Id="1">
-							Nur professionelle ÜbersetzerInnen werden bei nativy zugelassen.
-							Übersetzungen in die Muttersprache werden bevorzugt. Die
-							Qualifikationen jedes/r ÜbersetzerIn werden durch nativy
-							geprüft.
-          </description>
-					</textblock>
-					<textblock diffgr:id="textblock3" msdata:rowOrder="2"
-						diffgr:hasChanges="inserted" code="faq_question3"
-						label="Stehen AuftraggeberInnen und ÜbersetzerInnen in direktem Kontakt?"
-						msdata:hiddentextblock_Id="2" msdata:hiddentextblocks_Id="0">
-						<description diffgr:id="description3" msdata:rowOrder="2"
-							diffgr:hasChanges="inserted" langCode="de-DE"
-							msdata:hiddentextblock_Id="2">
-							Ja, auf der Webseite von nativy können Kurznachrichten zu den
-							jeweiligen Aufträgen ausgetauscht werden.
-          </description>
-					</textblock>
-				</textblocks>
-				<settings diffgr:id="settings1" msdata:rowOrder="0"
-					diffgr:hasChanges="inserted">
-					<emailCallbackLink>https://www.yourapplication.com/nisinterface/gettranslation
-					</emailCallbackLink>
-				</settings>
-			</offerrequest>
-		</diffgr:diffgram>
-	</requ>
-</CreateOffer>
\ No newline at end of file
diff --git a/translators/nativy/tmgmt_nativy.module b/translators/nativy/tmgmt_nativy.module
index 0b29a5f..fbb7936 100755
--- a/translators/nativy/tmgmt_nativy.module
+++ b/translators/nativy/tmgmt_nativy.module
@@ -9,12 +9,12 @@
  * Implements hook_menu().
  */
 function tmgmt_nativy_menu() {
-  // @todo menu callback for order complete callback
-  $items['nativy/callback'] = array(
+  $items['tmgmt/nativy/callback/%tmgmt_job'] = array(
     'title' => 'Nativy Notification',
     'description' => 'Callback for the completion notification of a translation job.',
     'type' => MENU_CALLBACK,
     'page callback' => 'tmgmt_nativy_process_callback',
+    'page arguments' => array(3),
     'access callback' => TRUE,
   );
   return $items;
@@ -39,39 +39,23 @@ function tmgmt_nativy_tmgmt_translator_plugin_info() {
  *
  * @TODO Real processing. For now we just log whatever comes in.
  */
-function tmgmt_nativy_process_callback() {
-  $items[] = t('Checking for your translation from Nativy.');
-  watchdog('nativy', 'Callback REQUEST.  <br /><pre>!post</pre>', array('!post' => print_r($_REQUEST, TRUE)));
-  // Get the order id
-  if (isset($_REQUEST['orderid'])) {
-    $orderid = $_REQUEST['orderid'];
-    $items[] = t('Your order id is @orderid', array('@orderid' => $orderid));
-    // @todo tmgmt_job_load_multiple() doesn't seem to work for this.
-    if ($jobs = entity_load('tmgmt_job', FALSE, array('reference' => $orderid))) {
-      $job = reset($jobs);
-      $controller = $job->getTranslatorController();
-      if (!is_a($controller, 'TMGMTNativyTranslatorController')) {
-        $items[] = t('The job was not assigned to Nativy.');
-      }
-      elseif ($controller->retrieveTranslation($job)) {
-        $items[] = t('Your translation has been retrieved successfully.');
-        drupal_set_message(t('Retrieved translation for job @jobid.', array('@jobid' => $job->tjid)));
-      }
-      else {
-        drupal_set_message(t('We cannot retrieve your translation.'), 'warning');
-      }
+function tmgmt_nativy_process_callback(TMGMTJob $job) {
+  $controller = $job->getTranslatorController();
+  if (!($controller instanceof TMGMTNativyTranslatorPluginController)) {
+    $job->addMessage('Job does not belong to nativy.', array(), 'error');
+    return;
+  }
+
+  // Record payment success message.
+  if (!empty($_GET['paid']) && $_GET['paid']) {
+    $job->addMessage('Payment successfully recorded.');
+    return;
+  }
 
-    }
-    else {
-      drupal_set_message(t('Cannot find a translation job matching that order id'), 'warning');
-    }
+  if ($controller->retrieveTranslation($job)) {
+    $job->addMessage('Successfully retrieved translation.');
   }
   else {
-    drupal_set_message(t('We cannot find your order id.'), 'error');
+    $job->addMessage('Failed to retrieve the translation.', 'warning');
   }
-  $build['steps'] = array(
-    '#theme' => 'item_list',
-    '#items' => $items,
-  );
-  return $build;
 }
diff --git a/translators/nativy/tmgmt_nativy.plugin.inc b/translators/nativy/tmgmt_nativy.plugin.inc
index b3806aa..20b693f 100755
--- a/translators/nativy/tmgmt_nativy.plugin.inc
+++ b/translators/nativy/tmgmt_nativy.plugin.inc
@@ -10,280 +10,152 @@
  */
 class TMGMTNativyTranslatorPluginController extends TMGMTDefaultTranslatorPluginController {
 
-  /**
-   * Implements TMGMTTranslatorPluginControllerInterface::isAvailable().
-   */
-  public function isAvailable(TMGMTTranslator $translator) {
-    if ($translator->getSetting('api_user_name') && $translator->getSetting('api_password')) {
-      return TRUE;
-    }
-    return FALSE;
-  }
+  protected $live_site = 'http://nativy.com/';
+  protected $test_site = 'http://test.nativy.com/';
 
   /**
-   * Implements TMGMTTranslatorPluginControllerInterface::requestTranslation().
+   * Call a REST method from Nativy Connect.
    *
-   * Here we will acutally query source and get translations.
+   * @param $translator
+   *   Translator object.
+   * @param $method
+   *   The REST method to call.
+   * @param $query
+   *   Arguments for the method.
+   *
+   * @return
+   *   The service response.
    */
-  public function requestTranslation(TMGMTJob $job) {
-    // This is hexadecimal order id, we'd need to store it in some field to search.
-    $job->reference = $job->settings['orderid'];
-    $job->submitted(t('Job submitted to Nativy for translation. You will get an e-mail when the translation is ready.'));
+  protected function get(TMGMTTranslator $translator, $method, array $query = array()) {
+    $url = url($this->getURL($translator, $method), array('query' => $query, 'absolute' => TRUE));
+    $response = drupal_http_request($url);
+    return json_decode($response->data);
   }
 
-  /**
-   * Retrieve job when ready (we got an email with a link?)
-   */
-  public function retrieveTranslation(TMGMTJob $job) {
-    if ($document = $this->nativyRetrieveTranslation($job)) {
-      $translation = array();
-      foreach ($document->offerrequest->textblocks as $textblock) {
-        $block = $textblock->textblock;
-        $code = (string) $block['code'];
-        $label = (string) $block['label'];
-        $text = (string) $block->description;
-        $translation[$code] = array(
-          '#text' => $text,
-          '#label' => $label,
-        );
-      }
-      $job->addTranslatedData(tmgmt_unflatten_data($translation));
-      $job->needsReview('Got translation from Nativy');
-      return TRUE;
-    }
-    // @todo Implement retrieve translation
-    return FALSE;
+  protected function post(TMGMTTranslator $translator, $method, $query = array()) {
+    $url = url($this->getURL($translator, $method), array($query));
+    $options = array(
+      'headers' => array(
+        'Content-type' => 'application/json',
+      ),
+      'method' => 'POST',
+      'data' => $query,
+    );
+    $response = drupal_http_request($url, $options);
+    return json_decode($response->data);
   }
 
-  /**
-   * Implements TMGMTTranslatorPluginControllerInterface::getSupportedTargetLanguages().
-   */
-  public function getSupportedTargetLanguages(TMGMTTranslator $translator, $source_language) {
-    // @todo: Implement this properly.
-    return parent::getSupportedTargetLanguages($translator, $source_language);
+  protected function getURL(TMGMTTranslator $translator, $method) {
+    $url = $translator->getSetting('use_test') ? $this->test_site : $this->live_site;
+    $url .= 'connect/' . $method;
+    return $url;
   }
 
   /**
-   * Defines plugin job settings form.
+   * Returns an array of the required authentication query arguments.
    *
-   * @param $form array
-   * @param $form_state array
-   * @return array
-   *   Settings form.
-   */
-  public function checkoutSettingsForm($form, &$form_state, TMGMTJob $job) {
-    if ($iframe_url = $this->nativyCreateOffer($job)) {
-      // This should look like http://test.nativy.com/client/createorder.aspx?token=a19fd9f9-4bdc-4396-aebf-277fafd9c42a&amp;orderid=f1446707-ae2f-499e-a08e-47131533a88d
-      $parts = explode('orderid=', $iframe_url);
-      if (count($parts) == 2 && ($orderid = $parts[1])) {
-        $settings['help']['#markup'] =
-          '<p>' . t('You need to complete your order through Nativy pages below and then click on <em>Submit to translator</em>.') . '</p>';
-
-        $settings['orderid'] = array('#type' => 'value', '#value' => $orderid);
-        // If we complete the order we should be at http://test.nativy.com/client/nisfinish.aspx
-        // @TODO The idea is we add a hidden variable and check whether we've reached that page
-        $settings['nativyurl'] = array('#type' => 'hidden', '#value' => $iframe_url);
-        $settings['iframe']['#markup'] = "<iframe width=\"800\" height=\"600\" src=\"$iframe_url\"></iframe>";
-        return $settings;
-      }
-    }
-    // Something went wrong, just print message and get out.
-    $settings['error']['#markup'] =
-      '<p>' . t('Cannot authenticate to Nativy server. Pleaser review your user name and password.') . '</p>';
-    return $settings;
-  }
-
-  /**
-   * Build text as xml
-   */
-  protected function nativyBuildText($job) {
-    $output = '';
-    $template = '<textblock diffgr:id="textblock!number" msdata:rowOrder="!order" code="!code" label="!label" msdata:hiddentextblock_Id="!order">';
-    $template .= '<description langCode="!langCode">';
-    $template .= '!text';
-    $template .= '</description>';
-    $template .= "</textblock>\n";
-    $data['!langCode'] = $job->source_language;
-    $text = tmgmt_flatten_data($job->getData());
-    $number = $order = 0;
-    foreach ($text as $key => $item) {
-      $data['!order'] = $order;
-      $data['!number'] = $number;
-      $data['!code'] = $key;
-      $data['!label'] = $item['#label'];
-      $data['!text'] = $item['#text'];
-      $output .= strtr($template, $data);
-      $number++;
-      $order++;
-    }
-    return $output;
-  }
-
-  /**
-   * Create offer and return iframe URL
+   * @param $translator
+   *   Translator object.
    */
-  protected function nativyRetrieveTranslation($job) {
-    $orderid = $job->reference;
-    $translator = $job->getTranslator();
-    $client = $this->nativySoapClient();
-    // First try authentication and if successful, go for the offer.
-    $authenticated = $client->authenticate($translator->getSetting('api_user_name'), $translator->getSetting('api_password'));
-    if ($authenticated) {
-      try {
-        $response = $client->GetOffer(array('OrderId' => $orderid));
-        $prefix = '<?xml version="1.0" standalone="yes"?>';
-        $content = $response->GetOfferResult->any;
-        // Since response is not valid XML we take out the nonsense par of it (schema)
-        // Note it has nothing to do with the documented theoretical response.
-        $content = array_pop(explode('</xs:schema>', $content));
-        dpm($content);
-        $document = new SimpleXMLElement($content);
-        return $document;
-      } catch (Exception $e) {
-        dpm($e, 'Exception');
-      }
-    }
-    //$content = file_get_contents(drupal_get_path('module', 'tmgmt_nativy') . '/nis_getoffer_response.xml');
-    // $document = new SimpleXMLElement($content);
-    // Something went wrong, just print message and get out.
-    $client->printDebug();
-    return FALSE;
+  protected function getAuthenticationQuery(TMGMTTranslator $translator) {
+    $api_sign = hash_hmac('sha1', REQUEST_TIME, $translator->getSetting('private_key'));
+    return array(
+      'api_key' => $translator->getSetting('api_key'),
+      'api_sign' => $api_sign,
+      'timestamp' => REQUEST_TIME,
+    );
   }
 
   /**
-   * Create offer and return iframe URL
+   * Implements TMGMTTranslatorPluginControllerInterface::isAvailable().
    */
-  protected function nativyCreateOffer($job) {
-    $translator = $job->getTranslator();
-    $client = $this->nativySoapClient();
-    // First try authentication and if successful, go for the offer.
-    $authenticated = $client->authenticate($translator->getSetting('api_user_name'), $translator->getSetting('api_password'));
-    if ($authenticated) {
-      // Build offer parameters for straight text replacement
-      // Customer data
-      $data['!customerEmail'] = variable_get('site_mail', ini_get('sendmail_from'));
-      $data['!customerFirstName'] = 'Drupal';
-      $data['!customerLastName'] = 'Translator';
-      // Languages
-      $data['!primaryLangCode'] = $job->source_language; //"de-DE";
-      $data['!langCode'] = $job->target_language; //"en";
-      // Add text
-      $data['!textblocks'] = $this->nativyBuildText($job);
-      $data['!emailCallbackLink'] = url('nativy/callback', array('absolute' => TRUE));
-      //$template = file_get_contents(drupal_get_path('module', 'tmgmt_nativy') . '/nis_offerrequest_sample_good.xml');
-      $template = file_get_contents(drupal_get_path('module', 'tmgmt_nativy') . '/nis_offerrequest.xml');
-      $template = strtr($template, $data);
-      $response = $client->xmlRequest('CreateOffer', $template);
-      if ($response) {
-        // This should look like http://test.nativy.com/client/createorder.aspx?token=a19fd9f9-4bdc-4396-aebf-277fafd9c42a&amp;orderid=f1446707-ae2f-499e-a08e-47131533a88d
-        $iframe_url = $response->CreateOfferResult;
-        return $iframe_url;
-      }
+  public function isAvailable(TMGMTTranslator $translator) {
+    if ($translator->getSetting('api_key') && $translator->getSetting('private_key')) {
+      return TRUE;
     }
-    // Something went wrong, just print message and get out.
-    $client->printDebug();
     return FALSE;
   }
 
   /**
-   * Send request to nativy, get response
+   * Implements TMGMTTranslatorPluginControllerInterface::requestTranslation().
+   *
+   * Here we will acutally query source and get translations.
    */
-  protected function nativySoapRequest($method, $params) {
-    $client = $this->nativySoapClient();
-    $response = $client->$method($params);
-    $client->printDebug();
-    return $response;
+  public function requestTranslation(TMGMTJob $job) {
+    $rank_details = $job->getSetting('rank_details');
+    $payment_link = $rank_details[$job->getSetting('rank')]['payment_link'];
+    $payment_link = str_replace('xyz', url(current_path(), array('absolute' => TRUE)), $payment_link);
+    $job->reference = $rank_details[$job->getSetting('rank')]['orderId'];
+    $job->submitted('Proceed to the <a href="!url">payment page</a> to submit this job.', array('!url' => $payment_link));
   }
 
   /**
-   * Get SOAP client for Nativy service
+   * Returns an order from a job
    */
-  protected function nativySoapClient() {
-    static $client;
-    if (!isset($client)) {
-      $client = new TMGMTNativySoapClient(
-          drupal_get_path('module', 'tmgmt_nativy') . '/tmgmt_nativy_test.wsdl',
-          //drupal_get_path('module', 'tmgmt_nativy') . '/tmgmt_nativy_live.wsdl',
-          array('trace' => TRUE)
+  public function getOrder(TMGMTJob $job) {
+    $order = $this->getAuthenticationQuery($job->getTranslator());
+    $order['callbacklink'] = url('tmgmt/nativy/callback/' . $job->tjid, array('absolute' => TRUE));
+    $order['language_from'] = $job->source_language;
+    $order['language_to'] = $job->target_language;
+
+    $data = array_filter(tmgmt_flatten_data($job->getData()), '_tmgmt_filter_data');
+    $texts = array();
+    foreach ($data as $key => $text) {
+      $texts[] = array(
+        'Key' => $key,
+        'Value' => $text['#text'],
       );
-      // For debugging we can pull API information from the WSDL
-      //dpm($client->__getFunctions(), 'Functions');
-      //dpm($client->__getTypes(), 'Types');
     }
-    return $client;
-  }
-
-}
-
-/**
- * Nativy SOAP client
- */
-class TMGMTNativySoapClient extends SoapClient {
-
-  /**
-   * Run request from full raw XML body
-   */
-  public function xmlRequest($method, $xmldata) {
-    $soapvar = new SoapVar($xmldata, XSD_ANYXML);
+    $order['text_from'] = $texts;
 
-    $response = FALSE;
-    try {
-      $response = $this->$method($soapvar);
-    } catch (Exception $e) {
-      dpm($e, 'Exception');
-    }
+    $response = $this->post($job->getTranslator(), 'order', json_encode($order));
     return $response;
   }
 
   /**
-   * Authenticate to the service
+   * Retrieves an order object from the Nativy service.
+   *
+   * @param TMGMTJob $job
+   *   The job for which the order should be retrieved.
+   *
+   * @return
+   *   The nativy order object.
    */
-  public function authenticate($user, $pass) {
-    try {
-      $this->setAuthHeader(array(
-        'Username' => $user,
-        'Password' => $pass,
-      ));
-      $response = $this->AuthenticateUser();
-      $token = $response->AuthenticateUserResult;
-      $this->setAuthHeader(array('AuthenticatedToken' => $token));
-      return TRUE;
-    } catch (Exception $e) {
-      $this->debug();
-    }
+  public function nativyRetrieveOrder(TMGMTJob $job) {
+    $query = $this->getAuthenticationQuery($job->getTranslator());
+    return $this->get($job->getTranslator(), 'order/' . $job->reference, $query);
   }
 
   /**
-   * Set authentication header.
+   * Retrieve job when ready (we got an email with a link?)
    */
-  public function setAuthHeader($params) {
-    $rawheader = '<SecuredWebServiceHeader xmlns="https://www.nativy.com/nis">';
-    foreach ($params as $name => $value) {
-      $rawheader .= "<$name>$value</$name>";
+  public function retrieveTranslation(TMGMTJob $job) {
+    if ($document = $this->nativyRetrieveOrder($job)) {
+      $translation = array();
+      foreach ($document->text_to as $text) {
+        $key = $text->Key;
+        $text = $text->Value;
+        $translation[$key] = array(
+          '#text' => $text,
+        );
+      }
+      $job->addTranslatedData(tmgmt_unflatten_data($translation));
+      return TRUE;
     }
-    $rawheader .= '</SecuredWebServiceHeader>';
-    $soapvar = new SoapVar($rawheader, XSD_ANYXML);
-    $headers['SecuredWebServiceHeader'] = new SoapHeader(
-        'http://www.nativy.com/nis',
-        'SecuredWebServiceHeader',
-        $soapvar
-    );
-    $this->__setSoapHeaders(NULL);
-    $this->__setSoapHeaders($headers);
+    return FALSE;
   }
 
   /**
-   * Debug. Print out last request and response
+   * Implements TMGMTTranslatorPluginControllerInterface::getSupportedTargetLanguages().
    */
-  public function printDebug() {
-    dpm(array(
-      'Request' => $this->__getLastRequest(),
-      'RequestHeaders' => $this->__getLastRequestHeaders()
-      ), 'SOAP REQUEST');
-    dpm(array(
-      'Response' => $this->__getLastResponse(),
-      'ResponseHeaders' => $this->__getLastResponseHeaders()
-      ), 'SOAP RESPONSE');
+  public function getSupportedTargetLanguages(TMGMTTranslator $translator, $source_language) {
+    global $language;
+    $response = $this->get($translator, 'languages', array('language_short' => $language->language));
+    $languages = array();
+    foreach ($response as $language_row) {
+      $languages[$language_row->language_short] = $language_row->language_short;
+    }
+    return $languages;
   }
 
 }
diff --git a/translators/nativy/tmgmt_nativy.ui.inc b/translators/nativy/tmgmt_nativy.ui.inc
index b8b9b9e..ae7d8e4 100644
--- a/translators/nativy/tmgmt_nativy.ui.inc
+++ b/translators/nativy/tmgmt_nativy.ui.inc
@@ -14,18 +14,158 @@ class TMGMTNativyTranslatorUIController extends TMGMTDefaultTranslatorUIControll
    * Overrides TMGMTDefaultTranslatorUIController::pluginSettingsForm().
    */
   public function pluginSettingsForm($form, &$form_state, TMGMTTranslator $translator, $busy = FALSE) {
-    $form['api_user_name'] = array(
+    $form['api_key'] = array(
       '#type' => 'textfield',
-      '#title' => t('User name'),
-      '#default_value' => $translator->getSetting('api_user_name', ''),
+      '#title' => t('API key'),
+      '#default_value' => $translator->getSetting('api_key'),
+      '#description' => t('Please enter your Nativy connect API key.'),
     );
-    $form['api_password'] = array(
+    $form['private_key'] = array(
       '#type' => 'textfield',
-      '#title' => t('Password'),
-      '#default_value' => $translator->getSetting('api_password', ''),
+      '#title' => t('Private key'),
+      '#default_value' => $translator->getSetting('private_key'),
+      '#description' => t('Please enter your Nativy Private key.'),
+    );
+    $form['use_test'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Use the test environment'),
+      '#default_value' => $translator->getSetting('use_test'),
+      '#description' => t('Check to use the testing environment.'),
     );
     return parent::pluginSettingsForm($form, $form_state, $translator, $busy);
   }
 
+  /**
+   * Defines plugin job settings form.
+   *
+   * @param $form array
+   * @param $form_state array
+   * @return array
+   *   Settings form.
+   */
+  public function checkoutSettingsForm($form, &$form_state, TMGMTJob $job) {
+    $response = $job->getTranslatorController()->getOrder($job);
+
+    if (empty($response)) {
+      drupal_set_message(t('Failed to retrieve an offer from Nativy.'), 'error');
+      return;
+    }
+
+    $options = array();
+    foreach ($response as $offer) {
+      $options[$offer->rank] = $offer->translator_firstname;
+    }
+
+    $settings['rank'] = array(
+      '#type' => 'radios',
+      '#title' => t('Rank'),
+      '#options' => $options,
+      '#required' => TRUE,
+    );
+
+    foreach ($response as $offer) {
+      $details = array(
+        '#type' => 'fieldset',
+        '#title' => $offer->translator_firstname,
+        '#states' => array(
+          'visible' => array(
+            'input[name="settings[rank]"]' => array('value' => $offer->rank),
+          ),
+        ),
+      );
+
+      $details['orderId'] = array(
+        '#type' => 'value',
+        '#value' => $offer->orderid,
+      );
+
+      $details['image'] = array(
+        '#theme' => 'image',
+        '#path' => $offer->translator_picture_link,
+      );
+
+      $details['price'] = array(
+        '#type' => 'item',
+        '#title' => t('Price'),
+        '#markup' => $offer->price_sum_gross,
+      );
+
+      $details['payment_link'] = array(
+        '#type' => 'value',
+        '#value' => $offer->payment_link,
+      );
+
+      $settings['rank_details'][$offer->rank] = $details;
+    }
+
+    return $settings;
+
+    return array();
+    if ($iframe_url = $this->nativyCreateOffer($job)) {
+      // This should look like http://test.nativy.com/client/createorder.aspx?token=a19fd9f9-4bdc-4396-aebf-277fafd9c42a&amp;orderid=f1446707-ae2f-499e-a08e-47131533a88d
+      $parts = explode('orderid=', $iframe_url);
+      if (count($parts) == 2 && ($orderid = $parts[1])) {
+        $settings['help']['#markup'] =
+          '<p>' . t('You need to complete your order through Nativy pages below and then click on <em>Submit to translator</em>.') . '</p>';
+
+        $settings['orderid'] = array('#type' => 'value', '#value' => $orderid);
+        // If we complete the order we should be at http://test.nativy.com/client/nisfinish.aspx
+        // @TODO The idea is we add a hidden variable and check whether we've reached that page
+        $settings['nativyurl'] = array('#type' => 'hidden', '#value' => $iframe_url);
+        $settings['iframe']['#markup'] = "<iframe width=\"800\" height=\"600\" src=\"$iframe_url\"></iframe>";
+        return $settings;
+      }
+    }
+    // Something went wrong, just print message and get out.
+    $settings['error']['#markup'] =
+      '<p>' . t('Cannot authenticate to Nativy server. Pleaser review your user name and password.') . '</p>';
+    return $settings;
+  }
+
+  /**
+   * Overrides TMGMTDefaultTranslatorUIController::pluginSettingsForm().
+   */
+  public function checkoutInfo(TMGMTJob $job) {
+    $label = $job->getTranslator()->label();
+    $form['#title'] = t('@translator translation job information', array('@translator' => $label));
+    $form['#type'] = 'fieldset';
+
+    if ($order = $job->getTranslatorController()->nativyRetrieveOrder($job)) {
+      $status = t('Unknown status');
+      switch ($order->status) {
+        case 'orders_status_open':
+          $status = t('Open');
+          break;
+        case 'orders_status_confirmationpending':
+          $status = t('Confirmation pending');
+          break;
+        case 'orders_status_inprogress':
+          $status = t('In progress');
+          break;
+        case 'orders_status_translationcomplete':
+          $status = t('Complete');
+          break;
+        case 'orders_status_canceled':
+          $status = t('Canceled');
+          break;
+      }
+
+      $form['status'] = array(
+        '#type' => 'item',
+        '#title' => t('Status'),
+        '#markup' => $status,
+      );
+    }
+    else {
+      $form['status'] = array(
+        '#type' => 'item',
+        '#title' => t('Status'),
+        '#markup' => t('Unable to retrieve order from Nativy.'),
+      );
+    }
+
+    return $form;
+  }
+
 }
 
diff --git a/translators/nativy/tmgmt_nativy_live.wsdl b/translators/nativy/tmgmt_nativy_live.wsdl
deleted file mode 100644
index 49d8149..0000000
--- a/translators/nativy/tmgmt_nativy_live.wsdl
+++ /dev/null
@@ -1,183 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="https://www.nativy.com/nis" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="https://www.nativy.com/nis" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
-  <wsdl:types>
-    <s:schema elementFormDefault="qualified" targetNamespace="https://www.nativy.com/nis">
-      <s:import namespace="http://www.nativy.com/nis"/>
-      <s:import schemaLocation="https://www.nativy.com/nis/nis.asmx?schema=offerrequest" namespace="http://www.nativy.com/nis"/>
-      <s:element name="AuthenticateUser">
-        <s:complexType/>
-      </s:element>
-      <s:element name="AuthenticateUserResponse">
-        <s:complexType>
-          <s:sequence>
-            <s:element minOccurs="0" maxOccurs="1" name="AuthenticateUserResult" type="s:string"/>
-          </s:sequence>
-        </s:complexType>
-      </s:element>
-      <s:element name="SecuredWebServiceHeader" type="tns:SecuredWebServiceHeader"/>
-      <s:complexType name="SecuredWebServiceHeader">
-        <s:sequence>
-          <s:element minOccurs="0" maxOccurs="1" name="Username" type="s:string"/>
-          <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string"/>
-          <s:element minOccurs="0" maxOccurs="1" name="AuthenticatedToken" type="s:string"/>
-        </s:sequence>
-        <s:anyAttribute/>
-      </s:complexType>
-      <s:element name="CreateOffer">
-        <s:complexType>
-          <s:sequence>
-            <s:element minOccurs="0" maxOccurs="1" name="requ">
-              <s:complexType>
-                <s:sequence>
-                  <s:any namespace="http://www.nativy.com/nis"/>
-                </s:sequence>
-              </s:complexType>
-            </s:element>
-          </s:sequence>
-        </s:complexType>
-      </s:element>
-      <s:element name="CreateOfferResponse">
-        <s:complexType>
-          <s:sequence>
-            <s:element minOccurs="0" maxOccurs="1" name="CreateOfferResult" type="s:string"/>
-          </s:sequence>
-        </s:complexType>
-      </s:element>
-      <s:element name="GetOffer">
-        <s:complexType>
-          <s:sequence>
-            <s:element minOccurs="0" maxOccurs="1" name="OrderId" type="s:string"/>
-          </s:sequence>
-        </s:complexType>
-      </s:element>
-      <s:element name="GetOfferResponse">
-        <s:complexType>
-          <s:sequence>
-            <s:element minOccurs="0" maxOccurs="1" name="GetOfferResult">
-              <s:complexType>
-                <s:sequence>
-                  <s:any namespace="http://www.nativy.com/nis"/>
-                </s:sequence>
-              </s:complexType>
-            </s:element>
-          </s:sequence>
-        </s:complexType>
-      </s:element>
-    </s:schema>
-  </wsdl:types>
-  <wsdl:message name="AuthenticateUserSoapIn">
-    <wsdl:part name="parameters" element="tns:AuthenticateUser"/>
-  </wsdl:message>
-  <wsdl:message name="AuthenticateUserSoapOut">
-    <wsdl:part name="parameters" element="tns:AuthenticateUserResponse"/>
-  </wsdl:message>
-  <wsdl:message name="AuthenticateUserSecuredWebServiceHeader">
-    <wsdl:part name="SecuredWebServiceHeader" element="tns:SecuredWebServiceHeader"/>
-  </wsdl:message>
-  <wsdl:message name="CreateOfferSoapIn">
-    <wsdl:part name="parameters" element="tns:CreateOffer"/>
-  </wsdl:message>
-  <wsdl:message name="CreateOfferSoapOut">
-    <wsdl:part name="parameters" element="tns:CreateOfferResponse"/>
-  </wsdl:message>
-  <wsdl:message name="CreateOfferSecuredWebServiceHeader">
-    <wsdl:part name="SecuredWebServiceHeader" element="tns:SecuredWebServiceHeader"/>
-  </wsdl:message>
-  <wsdl:message name="GetOfferSoapIn">
-    <wsdl:part name="parameters" element="tns:GetOffer"/>
-  </wsdl:message>
-  <wsdl:message name="GetOfferSoapOut">
-    <wsdl:part name="parameters" element="tns:GetOfferResponse"/>
-  </wsdl:message>
-  <wsdl:message name="GetOfferSecuredWebServiceHeader">
-    <wsdl:part name="SecuredWebServiceHeader" element="tns:SecuredWebServiceHeader"/>
-  </wsdl:message>
-  <wsdl:portType name="nisSoap">
-    <wsdl:operation name="AuthenticateUser">
-      <wsdl:input message="tns:AuthenticateUserSoapIn"/>
-      <wsdl:output message="tns:AuthenticateUserSoapOut"/>
-    </wsdl:operation>
-    <wsdl:operation name="CreateOffer">
-      <wsdl:input message="tns:CreateOfferSoapIn"/>
-      <wsdl:output message="tns:CreateOfferSoapOut"/>
-    </wsdl:operation>
-    <wsdl:operation name="GetOffer">
-      <wsdl:input message="tns:GetOfferSoapIn"/>
-      <wsdl:output message="tns:GetOfferSoapOut"/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding name="nisSoap" type="tns:nisSoap">
-    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
-    <wsdl:operation name="AuthenticateUser">
-      <soap:operation soapAction="https://www.nativy.com/nis/AuthenticateUser" style="document"/>
-      <wsdl:input>
-        <soap:body use="literal"/>
-        <soap:header message="tns:AuthenticateUserSecuredWebServiceHeader" part="SecuredWebServiceHeader" use="literal"/>
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal"/>
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="CreateOffer">
-      <soap:operation soapAction="https://www.nativy.com/nis/CreateOffer" style="document"/>
-      <wsdl:input>
-        <soap:body use="literal"/>
-        <soap:header message="tns:CreateOfferSecuredWebServiceHeader" part="SecuredWebServiceHeader" use="literal"/>
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal"/>
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetOffer">
-      <soap:operation soapAction="https://www.nativy.com/nis/GetOffer" style="document"/>
-      <wsdl:input>
-        <soap:body use="literal"/>
-        <soap:header message="tns:GetOfferSecuredWebServiceHeader" part="SecuredWebServiceHeader" use="literal"/>
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal"/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:binding name="nisSoap12" type="tns:nisSoap">
-    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
-    <wsdl:operation name="AuthenticateUser">
-      <soap12:operation soapAction="https://www.nativy.com/nis/AuthenticateUser" style="document"/>
-      <wsdl:input>
-        <soap12:body use="literal"/>
-        <soap12:header message="tns:AuthenticateUserSecuredWebServiceHeader" part="SecuredWebServiceHeader" use="literal"/>
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal"/>
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="CreateOffer">
-      <soap12:operation soapAction="https://www.nativy.com/nis/CreateOffer" style="document"/>
-      <wsdl:input>
-        <soap12:body use="literal"/>
-        <soap12:header message="tns:CreateOfferSecuredWebServiceHeader" part="SecuredWebServiceHeader" use="literal"/>
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal"/>
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetOffer">
-      <soap12:operation soapAction="https://www.nativy.com/nis/GetOffer" style="document"/>
-      <wsdl:input>
-        <soap12:body use="literal"/>
-        <soap12:header message="tns:GetOfferSecuredWebServiceHeader" part="SecuredWebServiceHeader" use="literal"/>
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal"/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:service name="nis">
-    <wsdl:port name="nisSoap" binding="tns:nisSoap">
-      <soap:address location="https://www.nativy.com/nis/nis.asmx"/>
-    </wsdl:port>
-    <wsdl:port name="nisSoap12" binding="tns:nisSoap12">
-      <soap12:address location="https://www.nativy.com/nis/nis.asmx"/>
-    </wsdl:port>
-  </wsdl:service>
-</wsdl:definitions>
\ No newline at end of file
diff --git a/translators/nativy/tmgmt_nativy_test.wsdl b/translators/nativy/tmgmt_nativy_test.wsdl
deleted file mode 100644
index d761de1..0000000
--- a/translators/nativy/tmgmt_nativy_test.wsdl
+++ /dev/null
@@ -1,183 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="https://www.nativy.com/nis" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="https://www.nativy.com/nis" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
-  <wsdl:types>
-    <s:schema elementFormDefault="qualified" targetNamespace="https://www.nativy.com/nis">
-      <s:import namespace="http://www.nativy.com/nis"/>
-      <s:import schemaLocation="http://test.nativy.com/nis/nis.asmx?schema=offerrequest" namespace="http://www.nativy.com/nis"/>
-      <s:element name="AuthenticateUser">
-        <s:complexType/>
-      </s:element>
-      <s:element name="AuthenticateUserResponse">
-        <s:complexType>
-          <s:sequence>
-            <s:element minOccurs="0" maxOccurs="1" name="AuthenticateUserResult" type="s:string"/>
-          </s:sequence>
-        </s:complexType>
-      </s:element>
-      <s:element name="SecuredWebServiceHeader" type="tns:SecuredWebServiceHeader"/>
-      <s:complexType name="SecuredWebServiceHeader">
-        <s:sequence>
-          <s:element minOccurs="0" maxOccurs="1" name="Username" type="s:string"/>
-          <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string"/>
-          <s:element minOccurs="0" maxOccurs="1" name="AuthenticatedToken" type="s:string"/>
-        </s:sequence>
-        <s:anyAttribute/>
-      </s:complexType>
-      <s:element name="CreateOffer">
-        <s:complexType>
-          <s:sequence>
-            <s:element minOccurs="0" maxOccurs="1" name="requ">
-              <s:complexType>
-                <s:sequence>
-                  <s:any namespace="http://www.nativy.com/nis"/>
-                </s:sequence>
-              </s:complexType>
-            </s:element>
-          </s:sequence>
-        </s:complexType>
-      </s:element>
-      <s:element name="CreateOfferResponse">
-        <s:complexType>
-          <s:sequence>
-            <s:element minOccurs="0" maxOccurs="1" name="CreateOfferResult" type="s:string"/>
-          </s:sequence>
-        </s:complexType>
-      </s:element>
-      <s:element name="GetOffer">
-        <s:complexType>
-          <s:sequence>
-            <s:element minOccurs="0" maxOccurs="1" name="OrderId" type="s:string"/>
-          </s:sequence>
-        </s:complexType>
-      </s:element>
-      <s:element name="GetOfferResponse">
-        <s:complexType>
-          <s:sequence>
-            <s:element minOccurs="0" maxOccurs="1" name="GetOfferResult">
-              <s:complexType>
-                <s:sequence>
-                  <s:any namespace="http://www.nativy.com/nis"/>
-                </s:sequence>
-              </s:complexType>
-            </s:element>
-          </s:sequence>
-        </s:complexType>
-      </s:element>
-    </s:schema>
-  </wsdl:types>
-  <wsdl:message name="AuthenticateUserSoapIn">
-    <wsdl:part name="parameters" element="tns:AuthenticateUser"/>
-  </wsdl:message>
-  <wsdl:message name="AuthenticateUserSoapOut">
-    <wsdl:part name="parameters" element="tns:AuthenticateUserResponse"/>
-  </wsdl:message>
-  <wsdl:message name="AuthenticateUserSecuredWebServiceHeader">
-    <wsdl:part name="SecuredWebServiceHeader" element="tns:SecuredWebServiceHeader"/>
-  </wsdl:message>
-  <wsdl:message name="CreateOfferSoapIn">
-    <wsdl:part name="parameters" element="tns:CreateOffer"/>
-  </wsdl:message>
-  <wsdl:message name="CreateOfferSoapOut">
-    <wsdl:part name="parameters" element="tns:CreateOfferResponse"/>
-  </wsdl:message>
-  <wsdl:message name="CreateOfferSecuredWebServiceHeader">
-    <wsdl:part name="SecuredWebServiceHeader" element="tns:SecuredWebServiceHeader"/>
-  </wsdl:message>
-  <wsdl:message name="GetOfferSoapIn">
-    <wsdl:part name="parameters" element="tns:GetOffer"/>
-  </wsdl:message>
-  <wsdl:message name="GetOfferSoapOut">
-    <wsdl:part name="parameters" element="tns:GetOfferResponse"/>
-  </wsdl:message>
-  <wsdl:message name="GetOfferSecuredWebServiceHeader">
-    <wsdl:part name="SecuredWebServiceHeader" element="tns:SecuredWebServiceHeader"/>
-  </wsdl:message>
-  <wsdl:portType name="nisSoap">
-    <wsdl:operation name="AuthenticateUser">
-      <wsdl:input message="tns:AuthenticateUserSoapIn"/>
-      <wsdl:output message="tns:AuthenticateUserSoapOut"/>
-    </wsdl:operation>
-    <wsdl:operation name="CreateOffer">
-      <wsdl:input message="tns:CreateOfferSoapIn"/>
-      <wsdl:output message="tns:CreateOfferSoapOut"/>
-    </wsdl:operation>
-    <wsdl:operation name="GetOffer">
-      <wsdl:input message="tns:GetOfferSoapIn"/>
-      <wsdl:output message="tns:GetOfferSoapOut"/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding name="nisSoap" type="tns:nisSoap">
-    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
-    <wsdl:operation name="AuthenticateUser">
-      <soap:operation soapAction="https://www.nativy.com/nis/AuthenticateUser" style="document"/>
-      <wsdl:input>
-        <soap:body use="literal"/>
-        <soap:header message="tns:AuthenticateUserSecuredWebServiceHeader" part="SecuredWebServiceHeader" use="literal"/>
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal"/>
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="CreateOffer">
-      <soap:operation soapAction="https://www.nativy.com/nis/CreateOffer" style="document"/>
-      <wsdl:input>
-        <soap:body use="literal"/>
-        <soap:header message="tns:CreateOfferSecuredWebServiceHeader" part="SecuredWebServiceHeader" use="literal"/>
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal"/>
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetOffer">
-      <soap:operation soapAction="https://www.nativy.com/nis/GetOffer" style="document"/>
-      <wsdl:input>
-        <soap:body use="literal"/>
-        <soap:header message="tns:GetOfferSecuredWebServiceHeader" part="SecuredWebServiceHeader" use="literal"/>
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal"/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:binding name="nisSoap12" type="tns:nisSoap">
-    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
-    <wsdl:operation name="AuthenticateUser">
-      <soap12:operation soapAction="https://www.nativy.com/nis/AuthenticateUser" style="document"/>
-      <wsdl:input>
-        <soap12:body use="literal"/>
-        <soap12:header message="tns:AuthenticateUserSecuredWebServiceHeader" part="SecuredWebServiceHeader" use="literal"/>
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal"/>
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="CreateOffer">
-      <soap12:operation soapAction="https://www.nativy.com/nis/CreateOffer" style="document"/>
-      <wsdl:input>
-        <soap12:body use="literal"/>
-        <soap12:header message="tns:CreateOfferSecuredWebServiceHeader" part="SecuredWebServiceHeader" use="literal"/>
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal"/>
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetOffer">
-      <soap12:operation soapAction="https://www.nativy.com/nis/GetOffer" style="document"/>
-      <wsdl:input>
-        <soap12:body use="literal"/>
-        <soap12:header message="tns:GetOfferSecuredWebServiceHeader" part="SecuredWebServiceHeader" use="literal"/>
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal"/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:service name="nis">
-    <wsdl:port name="nisSoap" binding="tns:nisSoap">
-      <soap:address location="http://test.nativy.com/nis/nis.asmx"/>
-    </wsdl:port>
-    <wsdl:port name="nisSoap12" binding="tns:nisSoap12">
-      <soap12:address location="http://test.nativy.com/nis/nis.asmx"/>
-    </wsdl:port>
-  </wsdl:service>
-</wsdl:definitions>
\ No newline at end of file
