SCS Get Rates API
The PCMI SCS Auto Platform provides web services that allow external systems (Integration Partners) to provide accurate rates to dealers. Customers of PCMI (Providers) on the SCS Auto platform can enable their dealers and other customers to access their rates and to submit contracts electronically via F&I Presentation and Contracting software that has a certified integration status with SCS Auto.
The integration process requires the following steps:
- System Integration
- SCS Auto eRating Web Service Specifications delivered to Integration Partner
- PCMI sets up Integration Partner on ‘DEMO’ SCS Auto system
- Integration Partner completes development and testing with the ‘DEMO’ SCS Auto system.
- PCMI and Integration Partner review and verify integrated eRating functionality.
- Integration Partner promoted to User Acceptance Test and production environment for SCS Auto
- Seller/Dealer Activation
- Integration demonstrated to Provider.
- Provider activates sellers/dealers for use with Integration Partner as needed.
Consuming the SCS Auto eRating Web Service
The following is an overview of the process for consuming SCS Auto eRating Web Services from PCMI. For detailed description of all the XML tags, please refer to the XML Schema and samples in this document.
- Each Integration Partner is assigned a unique login id and a password. Partners authenticate themselves to PCMI using the assigned login id/password. The password differs between production and development environments.
- PCMI provides a URL for each Provider for eRating requests. The URLs differ between development and production environments.
- Each Provider is assigned a unique three-character Provider id. This id referred to in the documentation as a “Provider id” or TPA Code. The TPA Code is required to get rates from the eRating service.
- SCS Auto validates XML requests. If the Request XML string cannot be parsed or has invalid/missing data, the eRating Web Service will return that information in the Error Response section (along with the main response) to help troubleshoot problems. Each error consists of two components: an error number that identifies the error, and an error message that describes the error.
Sample with multiple errors
<Response>
<ErrorResponse>
<ErrorNumber>101</ErrorNumber>
<ErrorDescription>Invalid User ID</ErrorDescription>
</ErrorResponse>
<ErrorResponse>
<ErrorNumber>434</ErrorNumber>
<ErrorDescription>Dealer access is denied</ErrorDescription>
</ErrorResponse>
</Response>
SCS Auto eRating Web Service Specifications
Web Service URL
URLs are of the following format:
https://[web service URL with virtual folder]/ScsAutoService.asmx
As noted before, URLs will differ between production, testing, and development environments. They may also vary by provider, although it is possible for multiple providers to have the same URL. The TPA Code and the userid/password credentials determine the provider and the correct environment (production/UAT/development) to return rates from.
The following table represents the data formats used in the XML coding (Use to reference the “Format” column in the following XML schema tables)
| | |
|---|
| Data type | Description | Example |
| X(10) | Characters of max length of 10 | ABCDEABCDE |
| Date | yyyy-mm-dd | 2000-12-21 |
| DateTime | yyyy-mm-ddThh:mm:ss | 2000-12-21T12:24:40 |
| N(5) | Number, max length of 5 | 12345 |
| N(8,2) | Number with two decimals, max length of 8. | 123456.78 |
| Boolean | Boolean true or false | true |
Get Rates
Request Schema
This schema is used to request quotes from SCS Auto eRating from a given SCS Auto provider for a given dealer.
GetRatesRequest Object
| | | | | |
|---|
| Tag | Format | Req/Opt/ Cond | Attributes | Valid values | Description |
| TpaCode | X(4) | R | | | Third Party Administrator Code. The three- or four-letter code assigned to each supported SCS Auto provider. |
| UserId | X(30) | R | | | User ID. Required for secure access to SCS Auto eRating Web Service. |
| Password | X(255) | R | | | Password. Required for secure access to SCS Auto eRating Web Service. |
| DealerNo | X(18) | R | | | The dealer number. A unique identified assigned by each SCS Auto provider to a dealer/producer. |
| SaleDate | Date | R | | | Date of sale for which the rates are to be returned. |
| NewUsed | X(1) | R | | N – New, U – Used, * - All eligible plans (both new and used) | Flag used to determine whether to return new or used plans. If * is sent all eligible plans are returned (both new and used vehicle plans). |
| VIN | X(17) | R | | | Vehicle Identification Number See VIN Decoding and Vehicle Info section for more information. Note: If the VIN is provided, Vehicle year, make, model, and vehicle attributes are not needed for rating. |
| Trim | X(100) | C | | | Vehicle trim If the VIN has multiple Trims associated with it, a value is required to uniquely identify the vehicle. The trim must be valid for the VIN. See VIN Decoding and Vehicle Info section for more information. To get valid trim values for a VIN, there is a GetTrimsByVIN web service that can be used to get all valid trim values for a VIN. |
| VehicleYear | N(4) | C | | | Only required when VIN is not provided. See VIN Decoding and Vehicle Info section for more information. |
| VehicleMake | X(255) | C | | From RL POLK’s VIN Data | Only required when VIN is not provided. See VIN Decoding and Vehicle Info section for more information. |
| VehicleModel | X(255) | C | | From RL POLK’s VIN Data | Only required when VIN is not provided. See VIN Decoding and Vehicle Info section for more information. |
| TonRating | X(2) | C | | See Appendix for values. | Payload capacity of the vehicle. Trucks only. Only required when VIN is not provided. See VIN Decoding and Vehicle Info section for more information. |
| AspirationCode | X(4) | C | | See Appendix for values. | Engine Information. Only required when VIN is not provided. See VIN Decoding and Vehicle Info section for more information. |
| DrivingWheels | X(4) | C | | See Appendix for values. | Driving Wheels. Only required when VIN is not provided. See VIN Decoding and Vehicle Info section for more information. |
| SegmentationCode | X(4) | C | | See Appendix for values. | Segmentation Code. Only required when VIN is not provided. See VIN Decoding and Vehicle Info section for more information. |
| Cylinders | X(4) | C | | See Appendix for values. | Cylinders. Only required when VIN is not provided. See VIN Decoding and Vehicle Info section for more information. |
| FuelType | X(4) | C | | See Appendix for values. | Fuel Type. Only required when VIN is not provided. See VIN Decoding and Vehicle Info section for more information. |
| GVWR | X(5) | C | | See Appendix for values. | Gross Vehicle Weight Only required when VIN is not provided. See VIN Decoding and Vehicle Info section for more information. |
| AssetType | X(25) | C | | See Appendix for values. | Only required when VIN is not provided. Asset Type code should be used. See VIN Decoding and Vehicle Info section for more information. |
| BodyStyle | X(4) | O | | See Appendix for values. | Only required when VIN is not provided. See VIN Decoding and Vehicle Info section for more information. |
| EngineSize | N(7) | O | | | Only required when VIN is not provided. See VIN Decoding and Vehicle Info section for more information. |
| EngineSizeUnit | X(3) | O | | CC CID | CC = cubic centimeters CID = cubic inches Only required when VIN is not provided. See VIN Decoding and Vehicle Info section for more information. |
| CompleteVehicle | X(1) | O | | Y = Complete Vehicle N= Incomplete Vehicle | Only required when VIN is not provided. See VIN Decoding and Vehicle Info section for more information. |
| VehiclePurchasePrice | N(8,2) | O | | | Vehicle Purchase Price This field may be required in order to get rates for some plans such as VSC, GAP, and prepaid maintenance. |
| VehicleOdometer | N(6) | R | | | Vehicle Odometer Reading at time of sale |
| InserviceDate | Date | O | | | In Service Date. This field may be required in order to get rates for some plans such as VSC and prepaid maintenance. |
| VehiclePurchaseDate | Date | O | | | Vehicle Purchase Date. This field may be required in order to get rates for some plans such as VSC and prepaid maintenance. |
| FinancedAmount | N(8,2) | R | | | Financed Amount. Required to get GAP and Extended Wear and Tear rates. (Note: Some Providers may use these fields for other products besides GAP and EWT) |
| FinanceTerm | N(3) | R | | | Finance Term. Required to get GAP and Extended Wear and Tear rates. (Note: Some Providers may use these fields for other products besides GAP and EWT) |
| FinanceType | X(1) | R | | B - Balloon, L- Lease, F- Loan | If it is blank value will be ‘ANY’. Required to get GAP and Extended Wear and Tear rates. (Note: Some Providers may use these fields for other products besides GAP and EWT) |
| FinanceApr | N(2,2) | R | | | Required to get GAP and Extended Wear and Tear rates. (Note: Some Providers may use these fields for other products besides GAP and EWT) |
| MSRP | N(8,2) | R | | | Required to get GAP and Extended Wear and Tear rates. (Note: Some Providers may use these fields for other products besides GAP and EWT) |
| GIPIteration | Boolean | O | | True False | Not used |
| MonthlyPayment | N(8,2) | O | | | Not used |
| DOBBuyer | Date | O | | | Not used |
| DOBCoBuyer | Date | O | | | Not used |
| FullManufWarrMonths | N(3) | O | | | Not used |
| FullManufWarrMiles | N(7) | O | | | Not used |
| PowerTrainManufWarrMonths | N(3) | O | | | Not used |
| PowerTrainManufWarrMiles | N(7) | O | | | Not used |
| Surcharges | String | O | | | Not used |
| CultureName | String | O | | | Not used |
| AdditionalBaseWarrantyTerm | N(3) | O | | | Additional Base Warranty Term (Months) |
| AdditionalBaseWarrantyMiles | N(7) | O | | | Additional Base Warranty Miles |
| AdditionalPowertrain WarrantyTerm | N(3) | O | | | Additional Powertrain Warranty Term (Months) |
| AdditionalPowertrain WarrantyMiles | N(7) | O | | | Additional Powertrain Warranty Miles |
| Ownership | X(1) | C | | ‘N’ – New, ‘P’ – Pre- Owned | Ownership of the vehicle |
| NADA | N(8,2) | R | | | May be required for GAP and Extended Wear and Tear rates (Note: Some Providers may use these fields for other products besides GAP and EWT) |
| LienNumber | | O | | | SCS Lienholder Number |
| ProductCollection | | O | Product Collection | | ProductCollection object |
| Filter | | O | Filter | | Filter object |
When rating using VIN, it may be necessary to send a value for Trim. Our data analysis found that some VINs have more than one Trim value. In cases where the Trim is used to classify a vehicle and there is more than one Trim value associated with a VIN, rates will only be returned if a value for Trim is sent in the rating request. In this case if no value is sent for Trim, an error will be returned with the valid trims for the VIN.
If the VIN is not available for rating, vehicle year, make, model, trim, and vehicle attributes can be used to get rates. The vehicle attributes are Ton Rating, Aspiration Code, Segmentation Code, Driving Wheels, Fuel Type, GVWR, Asset Type, Body Style, Engine Size (plus unit), and Complete/Incomplete. PCMI uses Polk and the values sent in the rating request must match the values that Polk provides to successfully rate a vehicle. Not all vehicle attributes may be necessary to rate all vehicles.
ProductCollection Object
| | | | | |
|---|
| Tag | Format | Req/ Opt/ Cond | Attributes | Valid values | Description |
| Product | | | | | Grouping tag used to allow specifying more than one product in a single request. |
| Code | N(15) | R | | VSC (Vehicle Service Contract); GAP (GAP); MNT (Maintenance); AP (Appearance Protection); PDR (Paintless Dent Repair); LTW (Limited Warranty); RHT (Tire & Wheel); THP (Theft Protection); EWT (Extended Wear & Tear); ETCH (Etch); KEY (Key Replacement); OTH (Other Aftermarket Product) | Note: This is a general list of Product Type Codes. Providers can customize the Product Type Codes they use so other codes not listed here may be used in addition to or instead of the codes listed here. |
| Description | N(3) | O | | | Not needed |
| ExtractPosition | N(6) | O | | | Not needed. |
Product Collections
The Product Collection functionality allows the rates returned by the eRating web service to be limited to just the products specified in the ProductCollection object. For example, if “VSC” is specified as the value for Code in the ProductCollection object, then only rates for VSC will be returned.
Since product codes can vary from provider to provider, you will need the correct product codes for each provider.
Filter Object
| | | | | |
|---|
| Tag | Format | Req/ Opt/ Cond | Attributes | Valid values | Description |
| TermMin | N(15) | R | | | Minimum Term Months |
| TermMax | N(15) | R | | | Maximum Term Months |
| MileageMin | N(6) | O | | | Minimum Term Mileage |
| MileageMax | N(6) | O | | | Maximum Term Mileage |
Term/Mileage Filtering
The Filter functionality allows the rates returned by the eRating web service to be limited just Term Months and/or Term Mileage specified. Only plans that have the specified term months and/or term mileage will be returned. Filtering can be done using just Term or just Mileage or both.
Sample GetRates SOAP Request
<soap:Envelope>
<soap:Body>
<GetRates>
<objGetRatesRequest>
<UserId>xxxxxx</UserId>
<Password>xxxxxxx</Password>
<TpaCode>xxx</TpaCode>
<Trim>**string**</Trim>
<DealerNo>**string**</DealerNo>
<NewUsed>**string**</NewUsed>
<VIN>**string**</VIN>
<VehicleYear>**int**</VehicleYear>
<VehicleMake>**string**</VehicleMake>
<VehicleModel>**string**</VehicleModel>
<VehiclePurchasePrice>**decimal**</VehiclePurchasePrice>
<VehicleOdometer>**int**</VehicleOdometer>
<TonRating>**string**</TonRating>
<AspirationCode>**string**</AspirationCode>
<DrivingWheels>**string**</DrivingWheels>
<SegmentationCode>**string**</SegmentationCode>
<Cylinders>**string**</Cylinders>
<GVWR>**string**</GVWR>
<AssetType>**string**</AssetType>
<EngineSize>**decimal**</EngineSize>
<EngineSizeUnit>**string**</EngineSizeUnit>
<BodyStyle>**string**</BodyStyle>
<CompleteVehicle>**string**</CompleteVehicle>
<SaleDate>**dateTime**</SaleDate>
<FinancedAmount>**decimal**</FinancedAmount>
<GIPIteration>**boolean**</GIPIteration>
<MonthlyPayment>**decimal**</MonthlyPayment>
<FinanceTerm>**int**</FinanceTerm>
<FinanceType>**string**</FinanceType>
<InserviceDate>**dateTime**</InserviceDate>
<DOBBuyer>**dateTime**</DOBBuyer>
<DOBCoBuyer>**dateTime**</DOBCoBuyer>
<FuelType>**string**</FuelType>
<VehiclePurchaseDate>**dateTime**</VehiclePurchaseDate>
<FullManufWarrMonths>**int**</FullManufWarrMonths>
<FullManufWarrMiles>**int**</FullManufWarrMiles>
<PowerTrainManufWarrMonths>**int**</PowerTrainManufWarrMonths>
<PowerTrainManufWarrMiles>**int**</PowerTrainManufWarrMiles>
<FinanceApr>**decimal**</FinanceApr>
<Surcharges>**string**</Surcharges>
<MSRP>**decimal**</MSRP>
<NADA>**decimal**</NADA>
<ProductCollection>
<Product>
<Code>**string**</Code>
<Description>**string**</Description>
<ExtractPosition>**int**</ExtractPosition>
</Product>
<Product>
<Code>**string**</Code>
<Description>**string**</Description>
<ExtractPosition>**int**</ExtractPosition>
</Product>
</ProductCollection>
<CultureName>**string**</CultureName>
<AdditionalBaseWarrantyTerm>**int**</AdditionalBaseWarrantyTerm>
<AdditionalBaseWarrantyMiles>**int**</AdditionalBaseWarrantyMiles>
<AdditionalPowertrainWarrantyTerm>**int**</AdditionalPowertrainWarrantyTerm>
<AdditionalPowertrainWarrantyMiles>**int**</AdditionalPowertrainWarrantyMiles>
<Ownership>**string**</Ownership>
<LienNumber>**string**</LienNumber>
</objGetRatesRequest>
<Filter>
<TermMin>**int**</TermMin>
<TermMax>**int**</TermMax>
<MileageMin>**int**</MileageMin>
<MileageMax>**int**</MileageMax>
</Filter>
</GetRates>
</soap:Body>
</soap:Envelope>
Response Schema
This schema is used by SCS to return the collection of all products along with all rates for each product based on dealer’s sale authority and the vehicle information for a given Provider. It also allows the rating engine to optionally return error responses.
GetRatesResponse Object
| | | |
|---|
| Tag | Content Items | Format | Description |
| GetRatesResponse/ | | | |
| PlanRates | | Collection (array1..N) of PlanRate. This category contains the hierarchical response data which is subdivided by Plan, Term/Mileage, Deductible and Rate |
| ErrorResponse | | Object contains ErrorResponse definition. See Error Messages section for list of errors. |
| ContractKeyData | | This information should be ignored. The dealer information is not correct. |
| ManufactureWarraties | | Collection of ManufactureWarranty. This object provides Manufacturer Warranty information (base, powertrain and emissions warranty term/mileage) that has been configured for that vehicle by the provider (SCS Auto customer) whose rates are being requested. If the provider has not configured manufacturer warranty data for this vehicle, this information will not be returned. |
| QuoteID | N(20) | Unique identifier that identifies the entire collection of rates returned within a single rate response. |
| QuoteExpiration | Date | Date when the quote expires. After this date, a contract cannot be created based on the rates issued for this Quote ID. |
| AdditionalBase WarrantyTerm | N(3) | Value specified in the eRating request. |
| AdditionalBase WarrantyMiles | N(7) | Value specified in the eRating request. |
| AdditionalPowertrainWarrantyTerm | N(3) | Value specified in the eRating request. |
| AdditionalPowertrainWarrantyMiles | N(7) | Value specified in the eRating request. |
| TotalBase WarrantyTerm | N(3) | The sum of the configured Base Warranty (term) plus the Additional Base Warranty (term) |
| TotalBase WarrantyMiles | N(7) | The sum of the configured Base Warranty (miles) plus the Additional Base Warranty (miles) |
| TotalPowertrainWarrantyTerm | N(3) | The sum of the configured Powertrain Warranty (term) plus the Additional Powertrain Warranty (term) |
| TotalPowertrainWarrantyMiles | N(7) | The sum of the configured Powertrain Warranty (miles) plus the Additional Powertrain Warranty (miles) |
ErrorResponse Object
| | | | |
|---|
| Tag | Format | Req/ Opt/ Cond | Valid values | |
| ErrorNumber | Integer | C | | |
| ErrorCode | String X(30) | C | | Error code |
| ErrorDescription | String X(2000) | C | | Error Message. See Error Messages section. |
PlanRates Object
| | | |
|---|
| Tag | Content Items | Format | Description |
| PlanRate/ | | | |
| Plan | | Object contains plan definition. |
| RateClassMoneys | | Collection (array 1..N) of RateClassMoney. |
| AdditionalContractInfos | | Collection (array 1..N) of AdditionalContractInfo |
| ContractNo | | Obsolete. No value will be returned. |
| NewUsed | | Vehicle Type either N = New or U = used |
| ProgramTypeCode | | Obsolete. No value will be returned. |
| SalesAgentNo | | Obsolete. No value will be returned. |
| PDFFormNo | | Form Number configured in SCS |
Plan Object
| | | | | |
|---|
| Tag | Format | Req/ Opt/ Cond | Attributes | Valid values | Description |
| PlanDescriptions | | | | | Not used |
| ProgramDescriptions | | | | | Not used |
| ProductTypeCode | X(4) | R | | VSC – Vehicle Service Contract; GAP – GAP; MNT – Maintenance; AP – Appearance Protection; PDR – Paintless Dent Repair; LTW – Limited Warranty; RHT – Tire & Wheel; THP – Theft Protection; EWT – Extended Wear & Tear; ETCH – Etch; KEY – Key Replacement; OTH – Other Aftermarket Product | Product Type Codes Note: This is a general list of Product Type Codes. Providers are able to customize the Product Type Codes they use so other code not listed here may be returned. |
| ProductTypeDescription | X(255) | R | | | Product Type Description |
| PlanCode | X(2) | R | | | The unique plan code |
| PlanDescription | X(50) | R | | | Plan description |
| ContractType | N(15) | R | | | Contract type |
| PlanId | N(15) | R | | | The unique identification number of plan |
| RateBook | N(15) | R | | | Rate book number |
| OwnershipTypeCode | X(255) | O | | B = Balloon, L = Lease, F = Loan, A = Any, C = Cash | Values will be returned as configured in SCS at plan level. |
| ContractPlanName | X(200) | R | | | Contract Plan Name for plan mapping on contract PDF. |
| ProgramDescription | X(200) | R | | | Program Description |
| ProgramID | N(15) | R | | | Unique identification number of program |
| Discountable | N(1) | R | | 1 - Regulated rate is discountable, 0 – Not discountable | If the Discountable flag is set to 1, the Retail Price (excluding taxes) for the submitted contract can be less than the Retail Price value sent in the rating response, but not greater. |
RateClassMoneys Object
| | | |
|---|
| Tag | Content Items | Format | Description |
| RateClassMoneys/ | | | |
| TermMile | | Object contains Term Mile definition. |
| Deductible | | Object contains Deductible definition. |
| Rate | | Object Containing Rate |
| Options | | Collection of Options |
TermMile Object
| | | | | |
|---|
| Tag | Format | Req/ Opt/ Cond | Attributes | Valid values | Description |
| TermId | N(15) | R | | | The unique number of term |
| Term | N(3) | R | | | Term |
| Mileage | N(7) | R | | | Mileage |
Deductible Object
| | | | | |
|---|
| Tag | Format | Req/ Opt/ Cond | Attributes | Valid values | Description |
| DeductTypeDescriptions | | | | | DeductTypeDescriptions object. Contains culture name for display. Currently, this will always have CultureName = EN-US |
| DeductId | N(15) | R | | | The unique identification number of the deductible |
| DeductAmt | N(5,2) | R | | Max value is 1000 | Deductible amount |
| DeductType | X(255) | R | | “ ” = Standard; “DISP” = Disappearing; “REDUCING” = Reducing; “PERCENT” = percentage | Deductible type. When deductible type = PERCENT, the value in the DeductAmt field should be displayed as a percent not dollar amount (example: when DeductType = PERCENT and DeductAmt = 50.00, display as 50% not $50.) |
| ReducedAmount | N(5,2) | R | | | Reducing amount, applicable when DeductType is REDUCING. |
Deductibles
There are four types of deductibles that can be returned: standard, disappearing, reducing, and percent. Standard deductibles are displayed as just the deductible amount. Disappearing deductibles should be displayed as the amount plus “DISP” or “Disappearing” (example 100 DISP or 100 Disappearing). In the rating XML they are denoted by DeductType = DISP. Reducing deductibles should be displayed with the deductible, the amount reduced to, and “Reducing” (example $200/50 Reducing). Reducing deductibles are denoted in the XML with DeductType = REDUCING and the XML with have a value for ReducedAmount.
Rate Object
| | | | | |
|---|
| Tag | Format | Req/ Opt/ Cond | Attributes | Valid values | Description |
| BandCode | | | | | Not used. |
| OverrideFlag | Boolean | R | | True, False | Override Flag |
| OptionGroupId | N(15) | R | | | Unique number that identifies option group |
| RateId | N(15) | R | | | Unique number that identifies rate |
| RetailRate | N(8,4) | R | | | Retail Rate for the product |
| NetRate | N(8,4) | R | | | Dealer Cost for the product. |
| MaxRetailRate | N(8,4) | R | | | Maximum Retail Rate for the product. |
| MinRetailRate | N(8,4) | R | | | Minimum Retail Rate for the product |
| RegulatedRuleId | N(1) | R | | 0, 3, 5, 6 | Regulated Rule Code defined for the product. See Rating Rules for details. 0 = Non-Regulated Product; 3 = Where Retail Rate has to be equal to RetailRate. Markups cannot be applied to this rate; 5 = Where Markup must be between MarkupMin and MarkupMax; 6 = Where the Retail Rate (MaxRetailRate) is not greater than the Amount Financed (FinancedAmount) minus the configured MSRP or NADA %. |
| PDFFormNo | X(100) | O | | | Form Number that uniquely identifies the contract form to be used if this quote is used for a contract. |
| VehicleClass | X(2) | R | | | Vehicle Class |
| ExpirationDate | DateTime | R | | | Expiration Date of the contract if it were to be sold using this quote |
| ExpirationMileage | N(7) | R | | | Expiration Mileage of the contract it if were to be sold using this quote Will be 10000 when product type is GAP |
| MarkupMin | N(8,4) | | | | The minimum amount of markup that must be applied to the net cost for this quote. |
| MarkupMax | N(8,4) | | | | The maximum amount of markup that can be applied to the net cost for this quote. |
| Tax object | | | | | |
| RateDetails object | | | | | |
Rating Rules
SCS rating sends two elements, Net Rate (cost to the seller) and Retail Rate (cost to the customer). In most cases, dealer markup is at the discretion of the seller and the Retail Rate is defined as Net Rate + Markup. In some cases, providers on the SCS platform can restrict the amount of Markup that can be added to the Net Cost. Rules governing the Retail Rate (i.e. the Markup) are sent in the eRating response via the RegulatedRuleID element. There are four possible values that can be sent in the Rating response for the RegulatedRuleID element: 0, 3, 5, and 6.
The normal scenario is when the value of the RegulatedRuleID is 0. In this case, the seller can add any amount of markup to the NetCost to arrive at the Retail Rate to the customer. The Retail Rate from the rating response XML must be displayed to the user since the TPA/provider can add an administrator markup which is included in Retail Rate. Additional Markup can be added to the Retail Rate.
If the value of the RegulatedRuleID is 3, then the seller must sell the contract at the RetailRate value in our rating response AND not add any dealer markup. Most dealers who sell VSCs in FL will get rates with the RegulatedRuleID of 3 since the state of FL requires the dealer sell at the price filed by the provider with the state (which already includes the dealer markup). GAP insurance states (e.g. TX) are the same way.
Note: When displaying rates for plans with RegulatedRuleID = 3, the Retail Rate from the rating response XML should be displayed without any markups applied and the rate should not be editable so that the rate cannot be manually marked up. The Retail Rate plus the cost of any applicable surcharges or options should be displayed.
If the value of the RegulatedRuleID is 5, then the seller Markup must be at least MarkupMin but no more than MarkupMax.
Note: When displaying rates for plans with RegulatedRuleID = 5, the user should be able to apply a markup if it is within the MinRetailRate and MaxRetailRate range. Retail Rate plus the net cost for any applicable options or surcharges should be displayed.
If the value of the RegulatedRuleID is 6, then then the seller must sell a contract at a retail rate (MaxRetailRate) that is not greater than the Amount Financed (FinancedAmount) minus the configured MSRP or NADA percentage.
Note: When displaying rates for plans with RegulatedRuleID = 6, the user should be able to specify any Retail rate as long as it is not greater than the Amount Financed (FinancedAmount) minus the configured MSRP or NADA percentage when the GAP plan uses the Regulated Retail rule “Retail cannot be greater than the Amount Financed minus n% MSRP (New) or n% NADA (Pre-Owned)”.
Tax Object
| | | | | |
|---|
| Tag | Format | Req/ Opt/ Cond | Attributes | Valid values | Description |
| NetTaxAmt1 | N(8,2) | | C | | Returned if taxes are configured. |
| NetTaxAmt2 | N(8,2) | | C | | Returned if taxes are configured. |
| RetailTaxAmt1 | N(8,2) | | C | | Returned if taxes are configured. |
| RetailTaxAmt1 | N(8,2) | | C | | Returned if taxes are configured. |
| TotalRetailTaxAmt | N(8,2) | | C | | Returned if taxes are configured. |
| Tax1TaxLabel | X(50) | | C | | Returned if taxes are configured. |
| Tax2TaxLabel | X(50) | | C | | Returned if taxes are configured. |
RateDetails Object
| | | | | |
|---|
| Tag | Format | Req/ Opt/ Cond | Attributes | Valid values | Description |
| Remit | N(8,2) | | C | | Amount that must be remitted. This is the dealer cost. This value will be the same as the NetRate value, which is what the dealer is expected to remit to the product provide/administrator upon sale of a contract. See full explanation of functionality below. |
| Cost | N(8,2) | | C | | This is the F&I manager's cost. Cost = Remit + Admin Markup + Base Markup. When the plan is regulated retail, Cost = remit + base markup. See full explanation of functionality below. |
| Retail | N(8,2) | | C | | Retail is the Remit + Total Markup (Advanced + Base Markup + F&I Markup) See full explanation of functionality below. |
| AdminMarkup | N(8,2) | | C | | This is the Advanced Markup amount from SCS. See full explanation of functionality below. |
| BaseMarkup | N(8,2) | | C | | Base markup amount defined in the Markup Settings from the SEFI Seller Portal (DAP). See full explanation of functionality below |
| FIMarkup | X(50) | | C | | F&I Markup amount defined in the Markup Settings from the SEFI Seller Portal (DAP). See full explanation of functionality below |
Rate Details and External Markups
If the dealer has markup settings configured in the PCMI SCS Seller Portal (DAP), these markup amount will be returned in the RateDetails object. The intent of these markup fields is to provide point of sale and menu partners suggested retail pricing using markups configured on the DAP. A common scenario in which the use of these fields may be considered is when the plan level markup settings that the DAP supports is also desired on the menu but they menu does not natively support the creation of such markups by plan. It is strongly recommended that the implementation of these markups be coordinated with PCMI and the product provider/administrator before any dealers start seeing these values on the front end. Otherwise, there is a potential for conflict between the markups that the dealer staff is used to seeing and what is configured on the DAP. The RateDetails object will contain the following fields: Cost, Remit, Retail, AdminMarkup (a.k.a. Advanced Markup), BaseMarkup, and FIMarkup.
- Remit: Amount that must be remitted. This is the dealer cost. This value will be the same as the NetRate value, which is what the dealer is expected to remit to the product provide/administrator upon sale of a contract.
- Cost: This is the F&I manager's cost. In the case where the dealer principal wants to limit what the F&I Manager can see in terms of cost, this field can be used since it does not show the true dealer cost. Cost = Remit + Admin Markup + Base Markup. When the plan is regulated retail, Cost = remit + base markup.
- Retail: Retail is the Remit + Total Markup (Advanced + Base Markup + F&I Markup). This is NOT always the same as the RetailRate value and must be treated as suggested Retail price that the F&I manager has discretion to discount.
- When the plan is regulated retail (e.g. VSCs in Florida), Retail = Remit + Advanced and cannot be discounted. In this scenario Retail = RetailRate.
- AdminMarkup: This is the Advanced Markup amount configured by the administrator in SCS. Typically, this is a dealer pack at the dealer ownership level and is generally not visible to dealership personnel without appropriate permissions. In regulated retail scenarios, this is the only markup added to the Remit/NetRate and it is not discountable in that scenario. In non-regulated retail scenarios, the administrator/product provider’s intent is to use this markup to provide a suggested retail price to the dealership personnel. It can be discounted in non-regulated retail scenarios.
- BaseMarkup: Base markup amount defined in the Markup Settings from the PCMI SCS Seller Portal (DAP). Typically, this is the general manager/F&I director markup that is included in the cost to the F&I manager and meant to add to the advanced markup (hence increasing the suggested retail price). This markup is included in the cost to the F&I Manager.
- FIMarkup: F&I Markup amount defined in the Markup Settings from the SEFI Seller Portal (DAP). This is usually the markup that the F&I Manager specifies as the starting point to arrive at the suggested retail price.
Options Object
| | | |
|---|
| Tag | Content Items | Format | Description |
| Options/ | | | |
| Option | | Collection (array 1..N) of Options. |
Option Object
| | | | | |
|---|
| Tag | Format | Req/ Opt/ Cond | Attributes | Valid values | Description |
| OptionDescriptions | | | | | Not used. |
| OptionId | N(15) | R | | | ID for this option |
| Status | N(1) | R | | 0 - disabled, 1 - enabled | Obsolete. This element of the XML is no longer in use. |
| OptionDesc | X(50) | R | | | Description of the option |
| RetailRate | N(5,2) | R | | | Retail rate of the option |
| NetRate | N(5,2) | R | | | Dealer cost of the Option |
| PremiumRate | N(5,2) | | | | Not used. |
| CommissionRate | N(5,2) | | | | Not used. |
| AdminRate | N(5,2) | | | | Not used. |
| IsUsed | Boolean | R | | | Obsolete. This element of the XML is no longer in use. |
| IsSurcharge | Boolean | R | | | Identifies whether the option a surcharge or not. If ‘true’ then the option is a surcharge. |
| IsSurchargeOption | Boolean | R | | | Obsolete. This element of the XML is no longer in use. |
| PDFFormNo | X(100) | O | | | Form number |
| OptionName | X(200) | O | | | Option Name used to map on contract PDF |
Options and Surcharges
Optional coverages and their prices are sent in the Options object. It is possible for each rate to have a different set of options associated with it. These options, when selected by the customer, will increase the cost of the contract by the OptionCost amount. Some options sent in the Options object are mandatory, in which case the value of the IsSurcharge element is True. Such options are called Surcharges, and the cost to the customer must include the cost of that option. For example, if the rate for plan Gold 12/12,000 0 Ded is 388 and there is a surcharge such as 4WD/AWD which is 100, the rate for the plan that should be displayed is 488 (388 + 100 surcharge). Surcharges can be determined by looking at the 'IsSurcharge' tag in the XML. If it is true, then the option is a surcharge. When displayed on the menu, all applied surcharges should be displayed and not editable.
AdditionalContractInfo Object
| | | | | |
|---|
| Tag | Format | Req/ Opt/ Cond | Attributes | Valid values | Description |
| FieldOrder | N(1) | R | | | If there are multiple additional information fields returned, FieldOrder will indicate the order the fields should be displayed on the screen. (Note: At this time there is only one additional field that can be configured so the value will always be ‘1’.) |
| FieldLabel | X(50) | R | | | The field label to display for additional information field. |
| FieldType | X(12) | R | | Valid Values: Alphanumeric Numeric (not currently used) Date (not currently used) Currency (not currently used) | The type of data to be collected in the additional field. (Note: Only ‘alphanumeric’ will be returned at this time.) |
| Length | N(4) | R | | | Maximum length for data collected in additional info field. Length = 0 means that there is no required length. When the length is 0, the only limit is the max length of the field which is 20 characters. If the length is something other than 0, the data collected must length specified to be valid. |
| Required | Boolean | R | | True False | If Required = true, the additional information must be included in the contract when contract request is submitted. If additional information is required and not submitted in contract request, an error will be returned and contract will not be submitted. If Required = false, the additional information should be submitted in the contract request but error will not be returned if the additional information is not included in the contract request. |
| Unique | Boolean | R | | True False | Additional information must be a unique value (true) or not required to be unique (false). If Unique = true, validation will occur when contract is submitted and an error will be returned if value is not unique. |
The AdditonalContractInfo element will only be returned if the TPA has configured additional information that needs to be collected when a contract is submitted. Each provider can configure one additional piece of data per product type to be collected and sent in the contact request.
ManufactureWarranty Object
| | | | | |
|---|
| Tag | Format | Req/ Opt/ Cond | Attributes | Valid values | Description |
| Type | X(10) | R | | BASE POWERTRAIN EMISSION | Type of warranty BASE POWERTRAIN EMISSION |
| Term | N(3) | R | | | Manufacturer Warranty Term |
| Mile | N(7) | R | | | Manufacturer Warranty Mileage |
Sample GetRates SOAP Response
<soap:Envelope>
<soap:Body>
<GetRatesResponse>
<GetRatesResult>
<PlanRates>
<PlanRate>
<Plan>
<ProductTypeCode>VSC</ProductTypeCode>
<ProductTypeDescription>Vehicle Service Contract</ProductTypeDescription>
<PlanCode>UB</PlanCode>
<PlanDescription>Basic</PlanDescription>
<ContractType>10</ContractType>
<PlanId>2223</PlanId>
<RateBook>3221</RateBook>
<OwnershipTypeCode />
<ContractPlanName>Bronze</ContractPlanName>
<ProgramDescription>Extended Protection 03</ProgramDescription>
<ProgramID>1</ProgramID>
</Plan>
<RateClassMoneys>
<RateClassMoney>
<TermMile>
<TermId>23</TermId>
<Term>3</Term>
<Mileage>3000</Mileage>
</TermMile>
<Deductible>
<DeductId>1</DeductId>
<DeductAmt>50.0000</DeductAmt>
<DeductType />
</Deductible>
<Rate>
<BandCode />
<OverrideFlag>false</OverrideFlag>
<OptionGroupId>3</OptionGroupId>
<RateId>493825</RateId>
<RetailRate>2100</RetailRate>
<NetRate>2100</NetRate>
<MaxRetailRate>0.0000</MaxRetailRate>
<MinRetailRate>0.0000</MinRetailRate>
<RegulatedRuleId>0</RegulatedRuleId>
<PDFFormNo />
<VehicleClass>F</VehicleClass>
<ExpirationDate>2008-08-26T00:00:00</ExpirationDate>
<ExpirationMileage>22456</ExpirationMileage>
<MarkupMin>0</MarkupMin>
<MarkupMax>0</MarkupMax>
<Tax>
<NetTaxAmt1>10.00</NetTaxAmt1>
<NetTaxAmt2>0.00</NetTaxAmt2>
<RetailTaxAmt1>10.00</RetailTaxAmt1>
<RetailTaxAmt2>0.00</RetailTaxAmt2>
<TotalRetailTaxAmt>10.00</TotalRetailTaxAmt>
<Tax1TaxLabel>GST</Tax1TaxLabel>
</Tax>
<RateDetails>
<Remit>50.00</Remit>
<Cost>50.00</Cost>
<Retail>150.00</Retail>
<AdminMarkup>0.00</AdminMarkup>
<BaseMarkup>0.00</BaseMarkup>
<FIMarkup>100.00</FIMarkup>
</RateDetails>
</Rate>
<Options>
<Option>
<OptionId>2</OptionId>
<Status>1</Status>
<OptionDesc>Refinance</OptionDesc>
<OptionName>Refinance</OptionName>
<RetailRate>30</RetailRate>
<NetRate>30</NetRate>
<PremiumRate>0</PremiumRate>
<CommissionRate>0</CommissionRate>
<AdminRate>0</AdminRate>
<IsUsed>false</IsUsed>
<IsSurcharge>false</IsSurcharge>
<IsSurchargeOption>false</IsSurchargeOption>
<PDFFormNo />
</Option>
</Options>
</RateClassMoney>
</RateClassMoneys>
<AdditionalContractInfos>
<AdditionalContractInfo>
<FieldOrder>1</FieldOrder>
<FieldLabel>Tire/Wheel Info</FieldLabel>
<FieldType>alphanumeric</FieldType>
<Required>true</Required>
<Unique>false</Unique>
</AdditionalContractInfo/>
</AdditionalContractInfos>
<ContractNo />
<NewUsed>U</NewUsed>
<ProgramTypeCode />
<SalesAgentNo />
<PDFFormNo />
</PlanRate>
</PlanRates>
<ContractKeyData>
<Gap>
<DealerNo>STO316 </DealerNo>
</Gap>
<Vsc>
<DealerNo>BMW0002</DealerNo>
</Vsc>
<ProgramTypeCode />
<SalesAgentNo />
<PDFFormNo />
</ContractKeyData>
</GetRatesResult>
</GetRatesResponse>
</soap:Body>
</soap:Envelope>
Error Messages
| | |
|---|
| Message Type | Error code | Message Text |
| Error | REQERROR | TPA Code is required. |
| Error | REQERROR | TPA is invalid. |
| Error | REQERROR | Authentication Failed. You do not have necessary permission to execute this web method. |
| Error | | Inactive dealer for menu. |
| Error | | Dealer does not exist. |
| Error | IMP_CNTR_0068 | VIN could not be decoded |
| Error | IMP_CNTR_0069 | Either VIN or Asset Type, Year, Make and Model are required |
| Error | ERATING_TRIMREQ | There are more rates available which require specification of a Trim value. The VIN’s available Trims are [Trim1], [Trim2], … and [Trim5]. Please resubmit the rating request with the Trim specified. |
| Error | INVALIDTRIM | Trim is invalid for VIN. The VIN’s available Trims are [Trim1], [Trim2], … and [Trim5]. |
| Error | INVDADDLBASEWARR | Additional Base Warranty is invalid, both Term and Mileage must be provided. |
| Error | ADDLBASETERMMILEREQD | Additional Base Warranty term and mileage specified are not valid for use as an Additional Base Warranty. |
| Error | INVDADDLPWRWARR | Additional Powertrain Warranty is invalid, both Term and Mileage must be provided. |
| Error | ADDLPWRTERMMILEREQD | Additional Powertrain Warranty term and mileage specified are not valid for use as an Additional Powertrain Warranty. |
| Error | INVALID_Ownership | Ownership Condition is invalid. |
| Error | INCORRECT_Ownership | Ownership is invalid for the Sale Date and VIN/Sale Odometer combination |
| Error | INVALID_NADA | NADA is invalid |
Appendix
Polk Attribute Values
Aspiration
| |
|---|
| Code | Aspiration Code Description |
| S | Supercharged |
| T | Turbocharged |
| I | Turbocharged w/ Intercooler |
| N | Normal |
| U | Unknown |
Cylinders
| |
|---|
| Code | Cylinders Code Description |
| 0 | 0 Cylinder |
| 1 | 1 Cylinder |
| 2 | 2 Cylinders |
| 3 | 3 Cylinders |
| 4 | 4 Cylinders |
| 5 | 5 Cylinders |
| 6 | 6 Cylinders |
| 8 | 8 Cylinders |
| 10 | 10 Cylinders |
| 12 | 12 Cylinders |
| 16 | 16 Cylinders |
| R | Rotary Engine |
| U | Unknown |
Driving Wheels
| |
|---|
| Code | Driving Wheels Code Description |
| 4FD | Front Wheel Drive w/4x4 |
| 4RD | Rear Wheel Drive w/4x4 |
| AWD | All-Wheel Drive |
| FWD | Front Wheel Drive |
| RWD | Rear Wheel Drive |
| U | Unknown |
Fuel Type
| |
|---|
| Code | Fuel Type Code Description |
| B | Electric and Gas Hybrid |
| Y | Electric and Diesel Hybrid |
| C | Convertible |
| G | Gas |
| D | Diesel |
| E | Electric |
| F | Flexible |
| H | Ethanol |
| M | Methanol |
| P | Propane |
| N | Compressed Natural Gas |
| R | Hydrogen Fuel Cell |
| U | Unknown |
Segmentation Code
| |
|---|
| Segment Code | Segmentation Code Description |
| 0 | Luxury Exotic |
| 2 | Luxury Full Size SUV |
| 4 | Non Luxury Full Size Half Ton Pickup |
| 5 | Non Luxury Full Size Half Ton Van |
| 6 | Luxury Full Size Half Ton Pickup |
| 7 | Non Luxury Full Size 3qtr to 1 Ton Pickup |
| 8 | Non Luxury Full Size 3qtr to 1 Ton Van |
| 9 | Commercial Truck |
| A | Non-Luxury Sport |
| B | Luxury Sport |
| C | Luxury Mid Size SUV |
| D | Non-Luxury Traditional Sub Compact |
| E | Luxury Traditional Sub Compact |
| F | Non Luxury Traditional Compact |
| G | Luxury Traditional Compact |
| H | Non Luxury Traditional Mid Size |
| I | Luxury Traditional Mid Size |
| J | Non Luxury Sport Mid Size |
| K | Non Luxury Traditional Full Size |
| L | Luxury Traditional Full Size |
| M | Luxury Prestige Full Size |
| N | Non Luxury Compact Pickup |
| O | Non Luxury Compact SUV |
| P | Non Luxury Compact CUV |
| Q | Non Luxury Compact Van |
| S | Luxury Compact CUV |
| T | Non Luxury Mid Size Pickup |
| U | Non Luxury Mid Size SUV |
| V | Non Luxury Mid Size CUV |
| W | Non Luxury Mid Size Van |
| Y | Luxury Mid Size CUV |
| Z | Non Luxury Full Size SUV |
Ton Rating
| |
|---|
| Code | Ton Rating Code Description |
| A | ¼ ton |
| B | ½ ton |
| BC | ½ - ¾ ton |
| BD | ½ - 1 ton |
| BF | ½ - 1 ¾ ton |
| C | ¾ ton |
| D | 1 ton |
| DE | 1 – 1 ½ tons |
| DG | 1 -2 tons |
| E | 1 ½ tons |
| EF | 1 ½ - 1 ¾ tons |
| EG | 1 ½ - 2 tons |
| EH | 1 ½ - 2 ½ tons |
| EI | 1 ½ - 3 tons |
| EJ | 1 ½ - 3 ½ tons |
| EM | 1 ½ - 5 tons |
| F | 1 ¾ tons |
| FH | 1 ¾ - 2 ½ tons |
| FI | 1 ¾ - 3 tons |
| FJ | 1 ¾ - 4 ½ tons |
| G | 2 tons |
| GH | 2 - 2 ½ tons |
| GI | 2 – 3 tons |
| GJ | 2 – 3 ½ tons |
| GK | 2 – 4 tons |
| GL | 2 – 4 ½ tons |
| GM | 2 – 5 tons |
| GN | 2 -6 tons |
| H | 2 ½ tons |
| HI | 2 ½ - 3 tons |
| HJ | 2 ½ - 3 ½ tons |
| HK | 2 ½ - 4 tons |
| HL | 2 ½ - 4 ½ tons |
| HM | 2 ½ - 5 tons |
| HN | 2 ½ - 6 tons |
| HO | 2 ½ - 7 tons |
| HP | 2 ½ - 8 tons |
| HQ | 2 ½ - 9 tons |
| HR | 2 ½ - 10 tons |
| I | 3 tons |
| IJ | 3 tons |
| IK | 3 – 3 ½ tons |
| IL | 3 – 4 tons |
| IM | 3 – 4 ½ tons |
| IN | 3 – 5 tons |
| IP | 3 – 8 tons |
| J | 3 ½ tons |
| JK | 3 ½ - 4 tons |
| JL | 3 ½ - 4 ½ tons |
| JM | 3 ½ - 5 tons |
| JN | 3 ½ - 6 tons |
| JP | 3 ½ - 8 tons |
| JQ | 3 ½ - 9 tons |
| JR | 3 ½ - 10 tons |
| K | 4 tons |
| KM | 4 -5 tons |
| KN | 4 – 6 tons |
| KO | 4 – 7 tons |
| KP | 4 – 8 tons |
| KQ | 4 – 9 tons |
| KR | 4 – 10 tons |
| L | 4 ½ tons |
| LM | 4 ½ - 5 tons |
| LN | 4 ½ - 6 tons |
| LP | 4 ½ - 8 tons |
| LR | 4 ½ - 10 tons |
| M | 5 tons |
| MN | 5 – 6 tons |
| N | 6 tons |
| O | 7 tons |
| OP | 7 – 8 tons |
| P | 8 tons |
| R | 10 tons and above |
GVWR
| |
|---|
| Code | GVWR Code Description |
| 1 | 0 - 6,000# |
| 2 | 6,001 - 10,000# |
| 3 | 10,001 - 14,000# |
| 4 | 14,001 - 16,000# |
| 5 | 16,001 - 19,500# |
| 6 | 19,501 - 26,000# |
| 8 | 26,001 - 33,000# |
| 10 | 33,000# + |
Asset Type
| |
|---|
| Code | Asset Type Code Description |
| P | Passenger Car |
| T | Truck |
| M | Motorcycle |
| R | RV |
| A | ATV |
| B | Boat |
| G | Generator |
| LM | Lawn Mower |
| ME | Marine Engine |
| MS | Motorcycle/Scooter |
| PW | Personal Watercraft |
| S | Snowmobile |
| TR | Tractor |
| U | Utility Vehicle |
| CC | Commercial Chassis |
| CP | Coupe |
| CV | Convertible |
| HB | Hatchback |
| HR | Hearse |
| LM | Limousine |
| SD | Sedan |
| U | Unknown |
| WG | Wagon |
| BU | Bus Non School |
| CG | Van Cargo |
| CH | Cab Chassis |
| CM | Cement Mixer |
| FT | Fire Truck |
| GG | Garbage/Refuse |
| GL | Gliders |
| IC | Incomplete (Strip Chassis) |
| IP | Incomplete Pickup |
| MH | Motor Home |
| PK | Pickup |
| PV | Van Passenger |
| SB | Bus School |
| ST | Straight Truck |
| SV | Step Van |
| TR | Tractor Truck |
| TU | Sport Utility Truck |
| UT | Sport Utility Vehicle |
| VC | Van Camper |
| YY | Cutaway |
| AT | ATV |
| CO | Competition |
| CR | Cruiser |
| DT | Dirt Bike |
Body Style
| | |
|---|
| Code | Body Style Description | Notes |
| EN | Enduro | Motorcycle |
| MN | Mini Bike | Motorcycle |
| MS | Scooter | Motorcycle |
| SP | Sport | Motorcycle |
| TO | Touring | Motorcycle |
| TR | Traditional | Motorcycle |
| U | Unknown | Motorcycle |
| AUT | Auto Transporter | Comm. Trailer |
| BEV | BEVERAGE | Comm. Trailer |
| CCH | CONTAIN CHASSIS | Comm. Trailer |
| CUR | Curtainside | Comm. Trailer |
| DMP | Dump | Comm. Trailer |
| DOL | Dolly | Comm. Trailer |
| FBD | Flatbed | Comm. Trailer |
| GRN | Grain | Comm. Trailer |
| HPR | Hopper | Comm. Trailer |
| LBD | Lowbed | Comm. Trailer |
| LIV | LIVESTOCK | Comm. Trailer |
| LOG | LOGGING | Comm. Trailer |
| ROL | Roll Off | Comm. Trailer |
| SPE | Special | Comm. Trailer |
| TNK | Tank | Comm. Trailer |
| TRN | Transfer | Comm. Trailer |
| UNK | Unknown | Comm. Trailer |
| UTL | UTILITY | Comm. Trailer |
| VAN | VAN | Comm. Trailer |