# AccountResolution

## Program ID

MetraPipeline.AccountResolution.1

## Description

AccountResolution plug-in is used to get account information listed in outputs section, based on either _AccountId or LoginName (Payer) and namespace pair. This way or another is determined by resolvewithIDflag. If it's set, then _AccountID is expected in session, otherwise Payer and Namespace properties are expected to be in session. If ResolveWithIDFlag property is already in session, it will override the one set in this configuration file.

## Required Input Properties

Tag name | Value type | Description
payer | string | Reference to an account in the external system.
name_space | string | Namespace that uniquely identifies the username. Usually, it is the identifier associated with the customer, such as MT for MetraTech.
accountID | integer | A unique value generated for the created account. No two users in the MetraTech system will have the same account ID.
resolvewithIDflag | Boolean | Flag indicating if the resolution done based on login and namespace or account ID.

## Required Output Properties

Tag name | Value type | Description
tariffID | integer | Associated tariff ID of the customer
geocode | integer | A unique number used for Rating within the pipeline. It is unique to a city, state and zip.
taxexempt | string | A one character string indicating whether a user is tax-exempt or not
timezoneID | integer | A unique identifier corresponding to a specific timezone
timezoneoffset | decimal | Offset with respect to Greenwich Mean Time (GMT)
paymentmethod | integer | A number to denote the payment method. 1 à None and 2 à Credit Card
accountstartdate | string | The start date associated with the account
accountenddate | string | The end date associated with the account
tariffname | string | Name of the tariff
usagecycletype | string | String indicating which cycle type. See the Usage Server Guide for more details. On-demand Daily Weekly Bi-weekly Semi-monthly Monthly Quarterly Annually

## Additional Configuration Tags

None

## Configuration Example

<configdata>
<payer>payer</payer>
<namespace>namespace</namespace>
<tariffID>tariffID</tariffID>
<geocode>GeoCode</geocode>
<taxexempt>taxexempt</taxexempt>
<timezoneID>timezoneID</timezoneID>
<timezoneoffset>timezoneoffset</timezoneoffset>
<paymentmethod>paymentmethod</paymentmethod>
<accountstartdate>accountstartdate</accountstartdate>
<accountenddate>accountenddate</accountenddate>
<tariffname>TariffName</tariffname>
<usagecycletype>usagecycletype</usagecycletype>
<accountID>_AccountID</accountID>
<resolvewithIDflag ptype="BOOL">FALSE</resolvewithIDflag>
<!--
<createinstantaccountflagptype="BOOL">TRUE</createinstantaccountflag>
<accountcreated>accountcreated</accountcreated>
-->
</configdata>

## Remarks

Account Resolution can be done in two ways. The external account and namespace can be used to resolve or the account ID itself. If resolution through ID is desired, then resolvewithIDflag should be set to TRUE, otherwise FALSE.