code: public function createTrackingCode(Shipment &$shipment)
      {
          $id             = str_replace('.', '', microtime(true));
          $shipment_xml   = $shipment->asSimpleXml();
  
          $shipment_xml->{"ROUTING"}->{"Routing.Account"}     = $this->api_key;
          $shipment_xml->{"ROUTING"}->{"Routing.Id"}          = $id;
          $shipment_xml->{"ROUTING"}->{"Routing.Key"}         = md5("{$this->api_key}{$id}{$this->secret}");
          if($this->comment != null) {
              $shipment_xml->{"ROUTING"}->{"Routing.Comment"} = $this->comment;
          }
  
          $response = $this->doPost('/prinetti/create-shipment', null, $shipment_xml->asXML());
  
          $response_xml = @simplexml_load_string($response);
  
          if(!$response_xml) {
              throw new \Exception("Failed to load response xml");
          }
  
          $this->response = $response_xml;
  
          if($response_xml->{'response.status'} != 0) {
              throw new \Exception("Error: {$response_xml->{'response.status'}}, {$response_xml->{'response.message'}}");
          }
  
          $shipment->setReference($response_xml->{'response.reference'});
          $shipment->setTrackingCode($response_xml->{'response.trackingcode'});
  
          return true;
      }
docs: Posts shipment data to Pakettikauppa, if request was successful
  sets $reference and $tracking_code params to given shipment.
  
  @param Shipment $shipment
  @return bool
  @throws \Exception