Global Data Api


Methods Download wsdl (See also Note on HTTPS under Environments)
Provides general application wide base values. For example product groups, units, ETIM classes, available logistics codes, countries, etc.
Note: Some of the methods visible in the WSDL actually has no implementation, or is depreciated and thus cannot be used Read more
  • SearchEtimClass
  • GetEtimVersions

Returns a list of valid article-relation types, and its description as a key/value pair

Used in ApiProduct as ApiArticleAccessory items in the fields ArticleAccessories and ArticleAccessoryFor

Parameters

Returns

Throws

  • InternalErrorFault if not authorized
Example Request xml

<soapenv:Envelope 
  xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' 
  xmlns:apirequest='Prodibas.API.V1' 
  xmlns:requestparams='Prodibas.API.V1.Parameters'>
   <soapenv:Header/>
   <soapenv:Body>
      <apirequest:GetArticleRelationTypes>
         <apirequest:request>
            <requestparams:Authentication>
               <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier>
               <requestparams:Industry>VVS</requestparams:Industry>
               <requestparams:Key>DEVMANU616</requestparams:Key>
            </requestparams:Authentication>
         </apirequest:request>
      </apirequest:GetArticleRelationTypes>
   </soapenv:Body>
</soapenv:Envelope>

Example Response xml

<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
   <s:Body>
      <GetArticleRelationTypesResponse xmlns='Prodibas.API.V1'>
         <GetArticleRelationTypesResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
            <a:Data xmlns:b='http://schemas.datacontract.org/2004/07/System.Collections.Generic'>
               <b:KeyValuePairOfstringstring>
                  <b:key>Accessory</b:key>
                  <b:value>Tillbehör</b:value>
               </b:KeyValuePairOfstringstring>
               <b:KeyValuePairOfstringstring>
                  <b:key>Spare</b:key>
                  <b:value>Reservdel</b:value>
               </b:KeyValuePairOfstringstring>
               <b:KeyValuePairOfstringstring>
                  <b:key>ConsistsOf</b:key>
                  <b:value>Består av</b:value>
               </b:KeyValuePairOfstringstring>
               <b:KeyValuePairOfstringstring>
                  <b:key>OptionalMandatoryAccessory</b:key>
                  <b:value>Valbart obligatoriskt tillbehör</b:value>
               </b:KeyValuePairOfstringstring>
               <b:KeyValuePairOfstringstring>
                  <b:key>Delete</b:key>
                  <b:value>Ta bort</b:value>
               </b:KeyValuePairOfstringstring>
            </a:Data>
            <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/>
         </GetArticleRelationTypesResult>
      </GetArticleRelationTypesResponse>
   </s:Body>
</s:Envelope>

Parameters

Returns

Throws

  • InternalErrorFault if not authorized
Example Request xml

<soapenv:Envelope 
xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' 
xmlns:apirequest='Prodibas.API.V1' 
xmlns:requestparams='Prodibas.API.V1.Parameters'>
   <soapenv:Header/>
   <soapenv:Body>
      <apirequest:GetCountries>
         <apirequest:request>
            <requestparams:Authentication>
               <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier>
               <requestparams:Industry>VVS</requestparams:Industry>
               <requestparams:Key>DEVMANU616</requestparams:Key>
            </requestparams:Authentication>
         </apirequest:request>
      </apirequest:GetCountries>
   </soapenv:Body>
</soapenv:Envelope>
Example Response xml

<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
   <s:Body>
      <GetCountriesResponse xmlns='Prodibas.API.V1'>
         <GetCountriesResult 
		 xmlns:a='Prodibas.API.V1.Parameters' 
		 xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
            <a:Data xmlns:b='Prodibas.API.V1.Model'>
               <b:ApiCountry>
                  <b:Identifier>AD</b:Identifier>
                  <b:Name>Andorra (AD)</b:Name>
               </b:ApiCountry>
               <b:ApiCountry>
                  <b:Identifier>AE</b:Identifier>
                  <b:Name>Förenade Arabemiraten (AE)</b:Name>
               </b:ApiCountry>
               ...
            </a:Data>
            <a:User i:nil='true' 
			xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/>
         </GetCountriesResult>
      </GetCountriesResponse>
   </s:Body>
</s:Envelope>

NOTE! The field ApiProduct.DangerousItem is obsolete. Please use text field DangerousItemUnNumber instead!

Parameters

Returns

Throws

  • InternalErrorFault if not authorized

Values, unlikely to change but may change one day

  • None (space) Inte farligt gods
  • Explosive (E) Explosionsfarligt gods
  • Flammable (B) Brandfarligt gods
Example Request xml

<soapenv:Envelope 
	xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' 
	xmlns:apirequest='Prodibas.API.V1' 
	xmlns:requestparams='Prodibas.API.V1.Parameters'>
   <soapenv:Header/>
   <soapenv:Body>
      <apirequest:GetDangerousItems>
         <apirequest:request>
            <requestparams:Authentication>
               <requestparams:CompanyIdentifier>MANU999</requestparams:CompanyIdentifier>
               <requestparams:Industry>VVS</requestparams:Industry>
               <requestparams:Key>DEVMANU999</requestparams:Key>
            </requestparams:Authentication>
         </apirequest:request>
      </apirequest:GetDangerousItems>
   </soapenv:Body>
</soapenv:Envelope>

Example Response xml

 <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
   <s:Body>
      <GetDangerousItemsResponse xmlns='Prodibas.API.V1'>
         <GetDangerousItemsResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
            <a:Data xmlns:b='http://schemas.datacontract.org/2004/07/System.Collections.Generic'>
               <b:KeyValuePairOfcharstring>
                  <b:key>32</b:key>
                  <b:value>None</b:value>
               </b:KeyValuePairOfcharstring>
               <b:KeyValuePairOfcharstring>
                  <b:key>66</b:key>
                  <b:value>Flammable</b:value>
               </b:KeyValuePairOfcharstring>
               <b:KeyValuePairOfcharstring>
                  <b:key>69</b:key>
                  <b:value>Explosive</b:value>
               </b:KeyValuePairOfcharstring>
            </a:Data>
            <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/>
         </GetDangerousItemsResult>
      </GetDangerousItemsResponse>
   </s:Body>
</s:Envelope>

Parameters

Returns

Throws

  • InternalErrorFault if not authorized
Example Request xml

<soapenv:Envelope 
  xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' 
  xmlns:apirequest='Prodibas.API.V1' 
  xmlns:requestparams='Prodibas.API.V1.Parameters'>
   <soapenv:Header/>
   <soapenv:Body>
      <apirequest:GetEtimFeatureTypes>
         <apirequest:request>
            <requestparams:Authentication>
               <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier>
               <requestparams:Industry>VVS</requestparams:Industry>
               <requestparams:Key>DEVMANU616</requestparams:Key>
            </requestparams:Authentication>
         </apirequest:request>
      </apirequest:GetEtimFeatureTypes>
   </soapenv:Body>
</soapenv:Envelope>

Example Response xml

<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
   <s:Body>
      <GetEtimFeatureTypesResponse xmlns='Prodibas.API.V1'>
         <GetEtimFeatureTypesResult 
           xmlns:a='Prodibas.API.V1.Parameters' 
           xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
           <a:Data xmlns:b='http://schemas.datacontract.org/2004/07/System.Collections.Generic'>
               <b:KeyValuePairOfcharstring>
                  <b:key>65</b:key>
                  <b:value>Alphanumeric</b:value>
               </b:KeyValuePairOfcharstring>
               ...
            </a:Data>
            <a:User i:nil='true' 
              xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/>
         </GetEtimFeatureTypesResult>
      </GetEtimFeatureTypesResponse>
   </s:Body>
</s:Envelope>

NOTE! This method is not yet implemented!

Lists all ETIM versions that Prodibas currently supports. The plan is to always support 3 ETIM versions: previous, current and next.

Parameters

Returns

Throws

  • InternalErrorFault if not authorized

Parameters

Returns

Throws

  • InternalErrorFault if not authorized
Example Request xml

<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'>
   <soapenv:Header/>
   <soapenv:Body>
      <apirequest:GetPackageTypes>
         <apirequest:request>
            <requestparams:Authentication>
               <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier>
               <requestparams:Industry>VVS</requestparams:Industry>
               <requestparams:Key>DEVMANU616</requestparams:Key>
            </requestparams:Authentication>
         </apirequest:request>
      </apirequest:GetPackageTypes>
   </soapenv:Body>
</soapenv:Envelope>

Example Response xml

 <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
   <s:Body>
      <GetPackageTypesResponse xmlns='Prodibas.API.V1'>
         <GetPackageTypesResult 
		 xmlns:a='Prodibas.API.V1.Parameters' 
		 xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
            <a:Data xmlns:b='Prodibas.API.V1.Model'>
               <b:ApiPackageType>
                  <b:Id>300</b:Id>
                  <b:Name>oförpackat/lösgods</b:Name>
               </b:ApiPackageType>
               <b:ApiPackageType>
                  <b:Id>303</b:Id>
                  <b:Name>påse/plastpåse</b:Name>
               </b:ApiPackageType>
               ...
            </a:Data>
            <a:User i:nil='true' 
			xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/>
         </GetPackageTypesResult>
      </GetPackageTypesResponse>
   </s:Body>
</s:Envelope>

Parameters

Returns

Throws

  • InternalErrorFault if not authorized
Example Request xml

<soapenv:Envelope 
  xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' 
  xmlns:apirequest='Prodibas.API.V1' 
  xmlns:requestparams='Prodibas.API.V1.Parameters'>
   <soapenv:Header/>
   <soapenv:Body>
      <apirequest:GetPackagingFunctions>
         <apirequest:request>
            <requestparams:Authentication>
               <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier>
               <requestparams:Industry>VVS</requestparams:Industry>
               <requestparams:Key>DEVMANU616</requestparams:Key>
            </requestparams:Authentication>
         </apirequest:request>
      </apirequest:GetPackagingFunctions>
   </soapenv:Body>
</soapenv:Envelope>

Example Response xml

 <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
   <s:Body>
      <GetPackagingFunctionsResponse xmlns='Prodibas.API.V1'>
         <GetPackagingFunctionsResult 
		 xmlns:a='Prodibas.API.V1.Parameters' 
		 xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
            <a:Data xmlns:b='Prodibas.API.V1.Model'>
               <b:ApiPackagingFunction>
                  <b:Code>ANTI_TAMPERING</b:Code>
                  <b:Description>En metod som används...</b:Description>
                  <b:Id>1</b:Id>
                  <b:Text>Förseglad</b:Text>
               </b:ApiPackagingFunction>
               <b:ApiPackagingFunction>
                  <b:Code>ANTISEPTIC</b:Code>
                  <b:Description>En process där en steril...</b:Description>
                  <b:Id>2</b:Id>
                  <b:Text>Antiseptisk</b:Text>
               </b:ApiPackagingFunction>
               ...
            </a:Data>
            <a:User i:nil='true' 
			xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/>
         </GetPackagingFunctionsResult>
      </GetPackagingFunctionsResponse>
   </s:Body>
</s:Envelope>

Parameters

Returns

Throws

  • InternalErrorFault if not authorized
Example Request xml

<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'>
   <soapenv:Header/>
   <soapenv:Body>
      <apirequest:GetPalletTypes>
         <apirequest:request>
            <requestparams:Authentication>
               <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier>
               <requestparams:Industry>VVS</requestparams:Industry>
               <requestparams:Key>DEVMANU616</requestparams:Key>
            </requestparams:Authentication>
         </apirequest:request>
      </apirequest:GetPalletTypes>
   </soapenv:Body>
</soapenv:Envelope>

Example Response xml

 <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
   <s:Body>
      <GetPalletTypesResponse xmlns='Prodibas.API.V1'>
         <GetPalletTypesResult 
		 xmlns:a='Prodibas.API.V1.Parameters' 
		 xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
            <a:Data xmlns:b='Prodibas.API.V1.Model'>
               <b:ApiPalletType>
                  <b:Code>10</b:Code>
                  <b:Description>Halvpall med måtten...</b:Description>
                  <b:Id>1</b:Id>
                  <b:Name>Pall 800x600 mm (ISO 0-pall)</b:Name>
               </b:ApiPalletType>
               <b:ApiPalletType>
                  <b:Code>11</b:Code>
                  <b:Description>Plan pall med måtten...</b:Description>
                  <b:Id>2</b:Id>
                  <b:Name>Pall 800x1200 mm (ISO 1-pall)</b:Name>
               </b:ApiPalletType>
               ...
            </a:Data>
            <a:User i:nil='true' 
			xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/>
         </GetPalletTypesResult>
      </GetPalletTypesResponse>
   </s:Body>
</s:Envelope>

There are around 1000 product groups for VVS and 500 for SEG. They are organized in a 3-level deep tree structure.

Every product is always linked to exact one product group.

Product groups and their properties are subject to change when system administrators choose to.

NOTE! For VVS there is a newer 4-level structure. Use input parameter version with value 2 in order to retrieve these.

Parameters

  • required ApiRequest request
  • int version (optional, valid values are 1 or 2)

Returns

Throws

  • InternalErrorFault if not authorized
Example Request xml

<soapenv:Envelope 
  xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' 
  xmlns:apirequest='Prodibas.API.V1' 
  xmlns:requestparams='Prodibas.API.V1.Parameters'>
   <soapenv:Header/>
   <soapenv:Body>
      <apirequest:GetProductGroups>
         <apirequest:request>
            <requestparams:Authentication>
               <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier> 
               <requestparams:Industry>VVS</requestparams:Industry> 
               <requestparams:Key>DEVMANU616</requestparams:Key> 
            </requestparams:Authentication>
         </apirequest:request>
         <apirequest:version>1</apirequest:version>
      </apirequest:GetProductGroups>
   </soapenv:Body>
</soapenv:Envelope>

Example Response xml

 <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
   <s:Body>
      <GetProductGroupsResponse xmlns='Prodibas.API.V1'>
         <GetProductGroupsResult 
          xmlns:a='Prodibas.API.V1.Parameters' 
          xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
            <a:Data xmlns:b='Prodibas.API.V1.Model'>
               <b:ApiProductGroupDetailed>
                  <b:AllowUse>true</b:AllowUse>
                  <b:DisplayAs>01  Gjutjärnsrör</b:DisplayAs>
                  <b:FullIdentifier>01</b:FullIdentifier>
                  <b:FullName>Gjutjärnsrör</b:FullName>
                  <b:Id>1</b:Id>
                  <b:Identifier>01</b:Identifier>
                  <b:IsOpenForCandidates>false</b:IsOpenForCandidates>
                  <b:IsSelectable>false</b:IsSelectable>
                  <b:Level>1</b:Level>
                  <b:Name>Gjutjärnsrör</b:Name>
                  <b:ParentId i:nil='true'/>
                  <b:Range i:nil='true'/>
                  <b:RangeFormatted i:nil='true'/>
               </b:ApiProductGroupDetailed>
               <b:ApiProductGroupDetailed>
                  <b:AllowUse>true</b:AllowUse>
                  <b:DisplayAs>02  Tryckrörssystem</b:DisplayAs>
                  <b:FullIdentifier>0102</b:FullIdentifier>
                  <b:FullName>Gjutjärnsrör > Tryckrörssystem</b:FullName>
                  <b:Id>2</b:Id>
                  <b:Identifier>02</b:Identifier>
                  <b:IsOpenForCandidates>false</b:IsOpenForCandidates>
                  <b:IsSelectable>false</b:IsSelectable>
                  <b:Level>2</b:Level>
                  <b:Name>Tryckrörssystem</b:Name>
                  <b:ParentId>1</b:ParentId>
                  <b:Range i:nil='true'/>
                  <b:RangeFormatted i:nil='true'/>
               </b:ApiProductGroupDetailed>
               <b:ApiProductGroupDetailed>
                  <b:AllowUse>true</b:AllowUse>
                  <b:DisplayAs>00  Rör</b:DisplayAs>
                  <b:FullIdentifier>010200</b:FullIdentifier>
                  <b:FullName>Gjutjärnsrör > Tryckrörssystem > Rör</b:FullName>
                  <b:Id>3</b:Id>
                  <b:Identifier>00</b:Identifier>
                  <b:IsOpenForCandidates>true</b:IsOpenForCandidates>
                  <b:IsSelectable>true</b:IsSelectable>
                  <b:Level>3</b:Level>
                  <b:Name>Rör</b:Name>
                  <b:ParentId>2</b:ParentId>
                  <b:Range>
                     <b:Max>1025170</b:Max>
                     <b:Min>1024660</b:Min>
                  </b:Range>
                  <b:RangeFormatted>
                     <b:Max>1025170</b:Max>
                     <b:Min>1024660</b:Min>
                  </b:RangeFormatted>
               </b:ApiProductGroupDetailed>
               ...
            </a:Data>
            <a:User i:nil='true' 
              xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/>
         </GetProductGroupsResult>
      </GetProductGroupsResponse>
   </s:Body>
</s:Envelope>

Parameters

Returns

Throws

  • InternalErrorFault if not authorized
Example Request xml

<soapenv:Envelope 
  xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' 
  xmlns:apirequest='Prodibas.API.V1' 
  xmlns:requestparams='Prodibas.API.V1.Parameters'>
   <soapenv:Header/>
   <soapenv:Body>
      <apirequest:GetProductInfoLevels>
         <apirequest:request>
            <requestparams:Authentication>
               <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier>
               <requestparams:Industry>VVS</requestparams:Industry>
               <requestparams:Key>DEVMANU616</requestparams:Key>
            </requestparams:Authentication>
         </apirequest:request>
      </apirequest:GetProductInfoLevels>
   </soapenv:Body>
</soapenv:Envelope>

Example Response xml

<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
   <s:Body>
      <GetProductInfoLevelsResponse xmlns='Prodibas.API.V1'>
         <GetProductInfoLevelsResult 
           xmlns:a='Prodibas.API.V1.Parameters' 
           xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
            <a:Data xmlns:b='http://schemas.microsoft.com/2003/10/Serialization/Arrays'>
               <b:string/>
               <b:string>Unknown</b:string>
               <b:string>ActiveNumber</b:string>
               ...
            </a:Data>
            <a:User i:nil='true' 
              xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/>
         </GetProductInfoLevelsResult>
      </GetProductInfoLevelsResponse>
   </s:Body>
</s:Envelope>

Parameters

Returns

Throws

  • InternalErrorFault if not authorized

Values:

  • None (space) Inga krav
  • Outside (U) Ute - No longer avaliable
  • UnheatedWarehouse (K) Tempererad miljö/kylvara
  • Inside (I) Inne - No longer available
  • Separated (A) Avskilt - No longer available
  • Sprangkasun (S) Sprängkasun

NOTE! More values exists in database but are not available for usage via version 1 of the API. Please not that you cannot update products with these values through the version 1 of the API and that any products which have any of these values set will be returned via the API as None (space) Inga krav. These values are:

  • DampProof (F) Fuktsäkert
  • UVProtected (V) UV-skyddat
  • FrostProof (T) Tempererad miljö/frostfritt
  • FireProof (B) Brandsäkert
  • Example Request xml
    
    <soapenv:Envelope 
      xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' 
      xmlns:apirequest='Prodibas.API.V1' 
      xmlns:requestparams='Prodibas.API.V1.Parameters'>
       <soapenv:Header/>
       <soapenv:Body>
          <apirequest:GetStorageRequirements>
             <apirequest:request>
                <requestparams:Authentication>
                   <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier>
                   <requestparams:Industry>VVS</requestparams:Industry>
                   <requestparams:Key>DEVMANU616</requestparams:Key>
                </requestparams:Authentication>
             </apirequest:request>
          </apirequest:GetStorageRequirements>
       </soapenv:Body>
    </soapenv:Envelope>
    
    
    Example Response xml
    
    <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
       <s:Body>
          <GetStorageRequirementsResponse xmlns='Prodibas.API.V1'>
             <GetStorageRequirementsResult 
               xmlns:a='Prodibas.API.V1.Parameters' 
               xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
                <a:Data xmlns:b='http://schemas.datacontract.org/2004/07/System.Collections.Generic'>
                   <b:KeyValuePairOfcharstring>
                      <b:key>32</b:key>
                      <b:value>None</b:value>
                   </b:KeyValuePairOfcharstring>
                   <b:KeyValuePairOfcharstring>
                      <b:key>75</b:key>
                      <b:value>UnheatedWarehouse</b:value>
                   </b:KeyValuePairOfcharstring>
                   <b:KeyValuePairOfcharstring>
                      <b:key>83</b:key>
                      <b:value>Sprangkasun</b:value>
                   </b:KeyValuePairOfcharstring>
                </a:Data>
                <a:User i:nil='true' 
                  xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/>
             </GetStorageRequirementsResult>
          </GetStorageRequirementsResponse>
       </s:Body>
    </s:Envelope>
    
    

    Lists all available SVHC substances.

    Used in ApiProduct in EnvironmentalData.SVHCSubstances. The available SVHC substance names listed here can be used to add/update a SVHC substance. Custom substances can be added with StructuredInputOptions.IgnoreWarnings set to true.

    Parameters

    Returns

    Throws

    • InternalErrorFault if not authorized
    Example Request xml
    
        <soapenv:Envelope 
          xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'
          xmlns:apirequest='Prodibas.API.V1'
          xmlns:requestparams='Prodibas.API.V1.Parameters'>
            <soapenv:Header />
            <soapenv:Body>
                <apirequest:GetSVHCSubstances>
                    <apirequest:request>
                        <requestparams:Authentication>
                            <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier>
                            <requestparams:Industry>VVS</requestparams:Industry>
                            <requestparams:Key>DEVMANU616</requestparams:Key>
                        </requestparams:Authentication>
                    </apirequest:request>
                </apirequest:GetSVHCSubstances>
            </soapenv:Body>
        </soapenv:Envelope>
    
    
    Example Response xml
    
    <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
       <s:Body>
          <GetSVHCSubstancesResponse xmlns='Prodibas.API.V1'>
             <GetSVHCSubstancesResult xmlns:a='Prodibas.API.V1.Parameters' 
               xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
                <a:Data xmlns:b='Prodibas.API.V1.Model'>
                   <b:ApiAvailableSVHCSubstance>
                      <b:CAS>10043-35-3</b:CAS>
                      <b:EG>233-139-2</b:EG>
                      <b:SubstanceName>Boric acid</b:SubstanceName>
                   </b:ApiAvailableSVHCSubstance>
                   ...
                </a:Data>
                <a:User i:nil='true' 
                 xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/>
             </GetSVHCSubstancesResult>
          </GetSVHCSubstancesResponse>
       </s:Body>
    </s:Envelope>
    
    

    Parameters

    Returns

    Throws

    • InternalErrorFault if not authorized
    Example Request xml
    
    <soapenv:Envelope 
      xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' 
      xmlns:apirequest='Prodibas.API.V1' 
      xmlns:requestparams='Prodibas.API.V1.Parameters'>
       <soapenv:Header/>
       <soapenv:Body>
          <apirequest:GetUnits>
             <apirequest:request>
                <requestparams:Authentication>
                   <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier>
                   <requestparams:Industry>VVS</requestparams:Industry>
                   <requestparams:Key>DEVMANU616</requestparams:Key>
                </requestparams:Authentication>
             </apirequest:request>
          </apirequest:GetUnits>
       </soapenv:Body>
    </soapenv:Envelope>
    
    
    Example Response xml
    
    <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
       <s:Body>
          <GetUnitsResponse xmlns='Prodibas.API.V1'>
             <GetUnitsResult 
               xmlns:a='Prodibas.API.V1.Parameters' 
               xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
                <a:Data xmlns:b='http://schemas.microsoft.com/2003/10/Serialization/Arrays'>
                   <b:string/>
                   <b:string>ST</b:string>
                   <b:string>M</b:string>
                   ...
                </a:Data>
                <a:User i:nil='true' 
                  xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/>
             </GetUnitsResult>
          </GetUnitsResponse>
       </s:Body>
    </s:Envelope>
    
    

    Lists all URI-types and their associated file extensions.

    Parameters

    Returns

    Throws

    • InternalErrorFault if not authorized
    Example Request xml
    
        <soapenv:Envelope 
          xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'
          xmlns:apirequest='Prodibas.API.V1'
          xmlns:requestparams='Prodibas.API.V1.Parameters'>
            <soapenv:Header />
            <soapenv:Body>
                <apirequest:GetUriTypes>
                    <apirequest:request>
                        <requestparams:Authentication>
                            <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier>
                            <requestparams:Industry>VVS</requestparams:Industry>
                            <requestparams:Key>DEVMANU616</requestparams:Key>
                        </requestparams:Authentication>
                    </apirequest:request>
                </apirequest:GetUriTypes>
            </soapenv:Body>
        </soapenv:Envelope>
    
    
    Example Response xml
    
    <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
       <s:Body>
          <GetUriTypesResponse xmlns='Prodibas.API.V1'>
             <GetUriTypesResult 
               xmlns:a='Prodibas.API.V1.Parameters' 
               xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
                <a:Data xmlns:b='Prodibas.API.V1.Model'>
                   <b:ApiProductUritype>
                      <b:FileExtensions 
                        xmlns:c='http://schemas.microsoft.com/2003/10/Serialization/Arrays'>
                         <c:string>gif</c:string>
                         <c:string>jpeg</c:string>
                         <c:string>jpg</c:string>
                         <c:string>png</c:string>
                         <c:string>tif</c:string>
                         <c:string>tiff</c:string>
                      </b:FileExtensions>
                      <b:Id>1</b:Id>
                      <b:Identifier>BILD</b:Identifier>
                      <b:Instruction>Bild får vara i...</b:Instruction>
                      <b:Name>Bild</b:Name>
                      <b:SortOrder>10</b:SortOrder>
                      <b:ValidUntil>false</b:ValidUntil>
                   </b:ApiProductUritype>
                   ...
                </a:Data>
                <a:User i:nil='true' 
                  xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/>
             </GetUriTypesResult>
          </GetUriTypesResponse>
       </s:Body>
    </s:Envelope>
    
    

    Parameters

    Returns

    Throws

    • InternalErrorFault if not authorized
    Example Request xml
    
    <soapenv:Envelope 
    xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' 
    xmlns:apirequest='Prodibas.API.V1' 
    xmlns:requestparams='Prodibas.API.V1.Parameters'>
       <soapenv:Header/>
       <soapenv:Body>
          <apirequest:GetDualUseCodes>
             <apirequest:request>
                <requestparams:Authentication>
                   <requestparams:CompanyCode>MANU616</requestparams:CompanyCode>
                   <requestparams:Industry>VVS</requestparams:Industry>
                   <requestparams:Key>DEVMANU616</requestparams:Key>
                </requestparams:Authentication>
             </apirequest:request>
          </apirequest:GetDualUseCodes>
       </soapenv:Body>
    </soapenv:Envelope>
    
    Example Response xml
    
    <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
       <s:Body>
          <GetDualUseCodesResponse xmlns='Prodibas.API.V1'>
             <GetDualUseCodesResult 
    		 xmlns:a='Prodibas.API.V1.Parameters' 
    		 xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
                <a:Data xmlns:b='Prodibas.API.V1.Model'>
                   <b:ApiDualUseCode>
                      <b:Code>0A001a</b:Code>
                      <b:Description>Svavelkis och andra naturliga järnsulfider, orostade //  //</b:Description>
                   </b:ApiDualUseCode>
                   <b:ApiDualUseCode>
                      <b:Code>0A001c</b:Code>
                      <b:Description>Naturlig grafit // I pulver eller flingor //</b:Description>
                   </b:ApiDualUseCode>
                   ...
                </a:Data>
                <a:User i:nil='true' 
    			xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/>
             </GetDualUseCodesResult>
          </GetDualUseCodesResponse>
       </s:Body>
    </s:Envelope>
    

    Common objects

    There are some objects that are used in requests/responses across the API services and methods. For example:

    • All requests contains an authentication object
    • The update methods can have validation errors
    • Some requests are queued and a Pingback url can be provided in the request and used instead of polling the corresponding GetResult method

    Authentication

    The ApiAuthentication object contains three parts:

    • The company identifier, on the format "MANU" + the company number
    • Industry e.g "VVS" or "SEG"
    • The authentication key

    public class ApiAuthentication
    {
        public string CompanyIdentifier { get; set; }   // string.Format("MANU{0}", company.Id)
        public Industry Industry { get; set; }          // see enum below
        public string Key { get; set; }                 // any of your active API keys. 
    }
    public enum Industry
    {
        VVS = 1, 
        SEG = 2
    }
    
    Example xml

    In example, the key is for the dev environment. Not applicable elsewhere.

    
    <requestparams:Authentication>
           <requestparams:CompanyIdentifier>MANU999</requestparams:CompanyIdentifier>
           <requestparams:Industry>VVS</requestparams:Industry>
           <requestparams:Key>DEVMANU999</requestparams:Key>
    </requestparams:Authentication>
    
    

    Request objects

    Every request has to provide authentication information as an input parameter.

    Anonymous requests are blocked.

    public class ApiRequest
    {
        public ApiAuthentication Authentication { get; set; }
    }
    
    Example xml
    
    <soapenv:Envelope 
    	xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' 
        xmlns:apirequest='Prodibas.API.V1' 
        xmlns:outputopts='Prodibas.API.V1.Parameters.OutputOptions' 
        xmlns:requestparams='Prodibas.API.V1.Parameters'>
    <soapenv:Header/>
    
    ...
     <apirequest:GetByIdentifier> (example method)
    ...
     <apirequest:productIdentifier> (example params for this method)
    ...
     <apirequest:structuredOutputOptions> (example optional params for this method)
    ...
     <apirequest:requestOptions>  (required authentication for all requests )
        <requestparams:Authentication>
           <requestparams:CompanyIdentifier>MANU999</requestparams:CompanyIdentifier>
           <requestparams:Industry>VVS</requestparams:Industry>
           <requestparams:Key>DEVMANU999</requestparams:Key>
        </requestparams:Authentication>
     </apirequest:requestOptions>
    
    

    The ApiQueuedRequest is a request that will be queued and processed in batch.

    It will return a QueuedId of the queued request which then can be used to poll result.

    public class ApiQueuedRequest : ApiRequest
    {
        public string  PingBackUrl { get; set; }
    }
    

    If PingBackUrl is present, the service will make one HTTP GET request to notify the client-side that the queued work has been processed. Firewall port openings might be required on the client-side. Unreliable if there are network issues.

    Example xml
    
    <soapenv:Envelope 
    	xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'
    	xmlns:apirequest='Prodibas.API.V1' 
    	xmlns:requestparams='Prodibas.API.V1.Parameters'
    	xmlns:outputopts='Prodibas.API.V1.Parameters.OutputOptions'>
    	<soapenv:Header/>
    	<soapenv:Body>
    ...
     <apirequest:GetManyByIdentifiersQueued> (example method)
    ...
     <apirequest:productIdentifier> (example params for this method)
    ...
     <apirequest:structuredOutputOptions> (example optional params for this method)
    ...
    <apirequest:queuedRequestOptions> (required authentication for all requests )
    	<requestparams:Authentication>
    		<requestparams:CompanyIdentifier>MANU999</requestparams:CompanyIdentifier>
    		<requestparams:Industry>VVS</requestparams:Industry>
    		<requestparams:Key>DEVMANU999</requestparams:Key>
    	</requestparams:Authentication>
    	<requestparams:PingBackUrl></requestparams:PingBackUrl> (optional PingBackUrl)
    </apirequest:queuedRequestOptions>
    
    

    The ApiUpdateRequest object is one of the parameters for UpdateSingle

    If an update request attempts to update documents (the term documents refers to both images and documents that are linked to a product) the documents are provided in a list of ApiUploadDocument (see below).

    The product uri and document is linked together by using the same string value for ApiUploadDocument.FileName and ApiProductUri.Url. Several products and/or product uris can link to the same document. In this case it is only necessary to provide one document in the request.

    FileName must be unique within your company's "sandbox". Prodibas will rename the files according to the internal rules.

    Enabling changes to documents

    Note: The fields Type, TypeIsSpecified, Uri, UriIsSpecified and UrisIsSpecified must be set for any changes of a document to have effect. If the document referred to in field Uri is not an external link, a ApiUploadDocument must also be provided.

    public class ApiUpdateRequest : ApiRequest 
    {
        public List<ApiUploadDocument> Documents { get; set; }
    }
    
    public class ApiUploadDocument
    {
        public string FileName { get; set; }
        public byte[] Bytes { get; set; }
    }
    

    See also:

    Example xml
    
    <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
    	<s:Header></s:Header>
    	<s:Body>
    		<UpdateSingle xmlns='Prodibas.API.V1'>
    			<product xmlns:a='Prodibas.API.V1.Model' 
    			xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
    				... product properties...
    				<a:Uris>
    					... uris...
    					<a:ApiProductUri>
    						... uri properties...
    						<a:Type>BILD</a:Type>
    						<a:TypeIsSpecified>true</a:TypeIsSpecified>
    						... uri properties...
    						<a:Uri>filename1.jpg</a:Uri>
    						<a:UriIsSpecified>true</a:UriIsSpecified>
    					</a:ApiProductUri>
    					... uris...
    					<a:ApiProductUri>
    						... uri properties...
    						<a:Type>MAN</a:Type>
    						<a:TypeIsSpecified>true</a:TypeIsSpecified>
    						... uri properties...
    						<a:Uri>filename2.pdf</a:Uri>
    						<a:UriIsSpecified>true</a:UriIsSpecified>
    					</a:ApiProductUri>
    					... uris...
    					<a:ApiProductUri>
    						... uri properties...
    						<a:Type>PROD</a:Type>
    						<a:TypeIsSpecified>true</a:TypeIsSpecified>
    						... uri properties...
    						<a:Uri>filename2.pdf</a:Uri>
    						<a:UriIsSpecified>true</a:UriIsSpecified>
    					</a:ApiProductUri>
    					... uris...
    				</a:Uris>
    				<a:UrisIsSpecified>true</a:UrisIsSpecified>
    				... product properties...
    			</product>
    			<structuredInputOptions xmlns:a='Prodibas.API.V1.Parameters.OutputOptions' i:nil='true' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'></structuredInputOptions>
    			<requestOptions xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
    				<a:Authentication>
    					<a:CompanyIdentifier>MANU999</a:CompanyIdentifier>
    					<a:Industry>VVS</a:Industry>
    					<a:Key>DEVMANU999</a:Key>
    				</a:Authentication>
    				<a:Documents>
    					<a:ApiUploadDocument>
    						<a:Bytes>... a base64 encoded document</a:Bytes>
    						<a:FileName>filename1.jpg</a:FileName>
    					</a:ApiUploadDocument>
    					<a:ApiUploadDocument>
    						<a:Bytes>... another base64 encoded document</a:Bytes>
    						<a:FileName>filename2.pdf</a:FileName>
    					</a:ApiUploadDocument>
    				</a:Documents>
    			</requestOptions>
    		</UpdateSingle>
    	</s:Body>
    </s:Envelope>
    
    
    
    If no documents are provided, the documents section is set to null
    
     
    ...
            <a:Documents i:nil='true'>
            </a:Documents>
    ...
    
    

    The ApiQueuedUpdateRequest object is one of the parameters for UpdateManyQueued. It's identical to ApiUpdateRequest but also includes the PingBackUrl.

    public class ApiQueuedUpdateRequest : ApiUpdateRequest 
    {
        public string PingBackUrl { get; set; }
    }
    

    If PingBackUrl is present, the service will make one HTTP GET request to notify the client-side that the queued work has been processed. Firewall port openings might be required on the client-side. Unreliable if there are network issues.


    Response objects

    Most API responses contains a Data and a User object. What type Data is depends on the request method. The User object contains information about the user who made the request.

    [DataContract(Name = "ApiResponse_{0}")]
    public class ApiResponse<T>
    {
        public T Data { get; set; }
        public ApiUser User { get; set; }
    }
    
    public class ApiUser
    {
        public int Id { get; set; }
        public string Email { get; set; }
        public string Name { get; set; }
    }
    

    For example, a response could have the following signature:

    Example xml
    
    <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
    	<s:Body>
    		<GetSingleByIdentifierResponse xmlns='Prodibas.API.V1'> (example method)
    			<GetSingleByIdentifierResult 
    			xmlns:a='Prodibas.API.V1.Parameters'
    			xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
    				<a:Data xmlns:b='Prodibas.API.V1.Model'>
    				... product properties...
    				</a:Data>
    				<a:User 
    				xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'>
    					<b:Email i:nil='true'/>
    					<b:Id>1</b:Id>
    					<b:Name>Test Testsson</b:Name>
    				</a:User>
    			</GetSingleByIdentifierResult>
    		</GetSingleByIdentifierResponse>
    	</s:Body>
    </s:Envelope>
    
    

    A queued/batched request returns a ApiQueuedResponse containing a QueueId. The QueueId is used to receive the result by using the GetResult or GetUpdateResult methods.

    public class ApiQueuedResponse
    {
        public int QueueId { get; set; }
    }
    
    Example xml
    
    <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
    	<s:Body>
    		<GetManyByIdentifiersQueuedResponse xmlns='Prodibas.API.V1'> (example method)
    			<GetManyByIdentifiersQueuedResult 
    			xmlns:a='Prodibas.API.V1.Parameters' 
    			xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
    				<a:QueueId>67640</a:QueueId>
    			</GetManyByIdentifiersQueuedResult>
    		</GetManyByIdentifiersQueuedResponse>
    	</s:Body>
    </s:Envelope>
    
    

    Pingback url

    A PingBackUrl can optionally be provided in all queued requests.

    If PingBackUrl is present, the service will make one HTTP GET request to notify the client-side that the queued work has been processed. Firewall port openings might be required on the client-side. Unreliable if there are network issues.

    Add QueueId to the pingback url

    You can insert {QueueId} into the pingback url and it will be replaced with the QueueId of the request.

    If this is sent to the service:
    http://myserver.mydomain.com?MyownId=ABC123&QueueId={QueueId}

    It could result in a pingback call like this:
    http://myserver.mydomain.com?MyownId=ABC123&QueueId=12345


    Validation errors

    Validation errors can be returned in the response as a result of a failed product(s) update operation.

    Prodibas uses comprehensive validation of incoming data. Some of the rules relates to other products in the system. There are also rules regarding roles and the right to change some data. If the API refuses to write data because of validation rules, it responds with one or several ApiModelValidationErrors.

    Client side should always verify the result of writing data to Prodibas. Client side should also provide a way to present a report to the end-user.

    public class ApiModelValidationError 
    {
        public string Field { get; set; }
        public string Message { get; set; } 
    }
    
    Example xml
    
    <s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
    	<s:Body>
    		<UpdateSingleResponse xmlns='Prodibas.API.V1'> (example method)
    			<UpdateSingleResult xmlns:a='Prodibas.API.V1.Model' 
    				xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
    				<a:ApiModelValidationError>
    					<a:Field>NameEn</a:Field>
    					<a:Message>
    						Artikel (4842188-123) valideringsfel. 
    						Fält: Benämning Engelsk. Ogiltigt antal tecken. 
    						Måste vara 30 eller färre. 
    						Angivet värde=AS123 NameEn UpdateSingle 17:44
    					</a:Message>
    				</a:ApiModelValidationError>
    				<a:ApiModelValidationError>
    					<a:Field>Color</a:Field>
    					<a:Message>
    						Produkt (4842188-123) valideringsfel vid förändring. 
    						Fält: Färg. Värdet kan endast ändras av en administratör.
    					</a:Message>
    				</a:ApiModelValidationError>
    			</UpdateSingleResult>
    		</UpdateSingleResponse>
    	</s:Body>
    </s:Envelope>
    
    

    Global models
    This page is an overview of the model objects returned from the methods in the Global Data service Api.

    A list of available SVHC substances can be retrieved with the GetSVHCSubstances method.

                
    public class ApiAvailableSVHCSubstance
    {
    	public string SubstanceName { get; set; }
    	public string CAS { get; set; }
    	public string EG { get; set; }
    	public int BvbExternalSubstanceId { get; set; }
    	public int BvbExternalSubstanceNameId { get; set; }
    }
            
    Example xml
    
       <b:ApiAvailableSVHCSubstance>
          <b:BvbExternalSubstanceId>9</b:BvbExternalSubstanceId>
          <b:BvbExternalSubstanceNameId>3666</b:BvbExternalSubstanceNameId>
          <b:CAS>10043-35-3</b:CAS>
          <b:EG>233-139-2</b:EG>
          <b:SubstanceName>Boric acid</b:SubstanceName>
       </b:ApiAvailableSVHCSubstance>
    
    

    A list of identifiers can be retrieved with the GetCountries method.

    public class ApiCountry
    {
        public string Identifier { get; set; }
        public string Name { get; set; } 
    }
    
    Example xml
    
    <b:ApiCountry>
       <b:Identifier>AD</b:Identifier>
       <b:Name>Andorra (AD)</b:Name>
    </b:ApiCountry>
    
    

    Retrieve all versions with the GetEtimVersions method. NOTE! the method is not yet implemented!

    public class ApiEtimVersion
    {
        public string Name { get; set; }
        public int MajorVersion { get; set; }
        public bool IsPreferred { get; set; }
    }
    

    A list of identifiers can be retrieved with the GetPackageTypes method.

    public class ApiPackageType
    {
        public string Id { get; set; } 
        public string Name { get; set; } 
    }
            
    Example xml
    
    <b:ApiPackageType>
       <b:Id>300</b:Id>
       <b:Name>oförpackat/lösgods</b:Name>
    </b:ApiPackageType>
    
    

    A list of identifiers can be retrieved with the GetPackagingFunctions method.

    public class ApiPackagingFunction
    {
        public string Code { get; set; }
        public string Description { get; set; }
        public long Id { get; set; }
        public string Text { get; set; }
    }
            
    Example xml
    
    <b:ApiPackagingFunction>
       <b:Code>ANTI_TAMPERING</b:Code>
       <b:Description>En metod som används...</b:Description>
       <b:Id>1</b:Id>
       <b:Text>Förseglad</b:Text>
    </b:ApiPackagingFunction>
    
    

    A list of identifiers can be retrieved with the GetPalletTypes method.

    public class ApiPalletType
    {
        public string Code { get; set; }
        public string Description { get; set; }
        public long Id { get; set; }
        public string Name { get; set; }
    }
            
    Example xml
    
    <b:ApiPalletType>
       <b:Code>10</b:Code>
       <b:Description>Halvpall med måtten...</b:Description>
       <b:Id>1</b:Id>
       <b:Name>Pall 800x600 mm (ISO 0-pall)</b:Name>
    </b:ApiPalletType>
    
    

    A list of identifiers can be retrieved with the GetProductGroup method.

    public class ApiProductGroupDetailed
    {
        public int Id { get; set; }
        public int? ParentId { get; set; }
        public string Identifier { get; set; }
        public string FullIdentifier { get; set; }
        public string DisplayAs { get; set; }
        public string Name { get; set; }
        public string FullName { get; set; }
        public ApiRangeRead<int> Range { get; set; }
        public ApiRangeRead<string> RangeFormatted { get; set; }
        public bool IsOpenForCandidates { get; set; }
        public bool IsSelectable { get; set; }
        public int Level { get; set; }
        public bool AllowUse { get; set; }
     }
    
    Example xml
    
    <b:ApiProductGroupDetailed>
       <b:AllowUse>true</b:AllowUse>
       <b:DisplayAs>00  Rör</b:DisplayAs>
       <b:FullIdentifier>010200</b:FullIdentifier>
       <b:FullName>Gjutjärnsrör > Tryckrörssystem > Rör</b:FullName>
       <b:Id>3</b:Id>
       <b:Identifier>00</b:Identifier>
       <b:IsOpenForCandidates>true</b:IsOpenForCandidates>
       <b:IsSelectable>true</b:IsSelectable>
       <b:Level>3</b:Level>
       <b:Name>Rör</b:Name>
       <b:ParentId>2</b:ParentId>
       <b:Range>
          <b:Max>1025170</b:Max>
          <b:Min>1024660</b:Min>
       </b:Range>
       <b:RangeFormatted>
          <b:Max>1025170</b:Max>
          <b:Min>1024660</b:Min>
       </b:RangeFormatted>
    </b:ApiProductGroupDetailed>
    
    

    A list of identifiers can be retrieved with the GetUriTypes method.

                
    public class ApiProductUritype
    {
        public int Id { get; set; }
        public string Identifier { get; set; }
        public string Name { get; set; }
        public string Instruction { get; set; }
        public int SortOrder { get; set; }
        public List<string> FileExtensions { get; set; } 
        public bool ValidUntilEnabled { get; set; }
    }
            
    Example xml
    
    <b:ApiProductUritype>
       <b:FileExtensions 
         xmlns:c='http://schemas.microsoft.com/2003/10/Serialization/Arrays'>
          <c:string>gif</c:string>
          <c:string>jpeg</c:string>
          <c:string>jpg</c:string>
          <c:string>png</c:string>
          <c:string>tif</c:string>
          <c:string>tiff</c:string>
       </b:FileExtensions>
       <b:Id>1</b:Id>
       <b:Identifier>BILD</b:Identifier>
       <b:Instruction>Bild får vara i...</b:Instruction>
       <b:Name>Bild</b:Name>
       <b:SortOrder>10</b:SortOrder>
       <b:ValidUntilEnabled>false</b:ValidUntilEnabled>
    </b:ApiProductUritype>
    
    

    A list of codes can be retrieved with the GetDualUseCodes method.

    public class ApiDualUseCode
    {
        public string Code { get; set; }
        public string Description { get; set; } 
    }
    
    Example xml
    
    <b:ApiDualUseCode>
       <b:Code>0A001a</b:Code>
       <b:Description>Svavelkis och andra naturliga järnsulfider, orostade //  //</b:Description>
    </b:ApiDualUseCode>