# VeriSign Payment Services

## Program ID

MetraPipeline.mtsignio.1

## Description

This plug-in submits credit card or ACH transactions to VeriSign Payment Services.

This plug-in does not require an account ID since an account ID is not a required property to submit the credit card or ACH transaction.

There are two configuration files for this plug-in. The config/paymentserver/signo.xml flie defines the location of the VeriSign server, AVS support levels, and whether errors are routed to an error queue or to an errors product view. The config/paymentserver/signologin.xml flie contains the username and password to the VeriSign server.

## Required Input Properties

Property | Data Type | Description
expdateformat | string | Format of the expiration date (applies mainly to Credit Card).
testsession | string | Flag indicating whether a this is a test session or not.
hitcard | string | The pipeline is a sequential processing concept. There is no way to cease processing in the middle of the pipeline. Stages/plug-ins earlier in the pipeline use this property to indicate whether this plugin should process this session. There are non-error situations where this property indicates not to process this session. One situation is support for threshold accounts. An earlier plug-in may determine that the limit has not been exceeded, which means the card should be be hit.
accounttype | string | Used to search for the proper transaction string format. If cardtype does not match AND the configured cardtype is not ELSE then continue.

## Required Input/Output Properties

Property | Data Type | Description
retcode | string | Used for setting the status of this plug-in operation. Will be inserted into the product view.
responsestring | string | Used for setting the response of this plug-in operation. Will be inserted into the product view.
pnref | string | Transaction identifier
originalid | string | ID of the original transaction
originalresult | string | Result of the original transaction
status | string | Status of the transaction
primary | string | Indicates whether primary or not
enabled | string | Indicates whether enabled or not

## Additional Configuration Tags

Tag name | Value type | Description
hostaddress | String | Fully qualified domain name of the VeriSign server. The FQDN below identifies the test server. The FQDN of the live server is connect.signio.com.
hostport | Integer | Must use the default SSL port.
timeout | Integer | This value specifies a timeout period for the transaction. VeriSign uses this value to determine how long to wait for a response from the processor.
proxyaddress | String | Proxy server address. (Not used)
proxyport | Integer | Proxy server port. (Not used)
proxylogin | String | Proxy server logon ID. (Not used)
proxypassword | String | Proxy server logon password. (Not used)
avssupportlevel | String | Defines the level of address verification. Supported values are: • none • zip • address • zipandaddress
postautherror | String | Specifies where to write transaction failures such as insufficient funds. This tag does not apply to operational errors such as networking problems. Errors can be written to a product view or to the pipeline error queue. Supported values are: • FailureProductView • PipelineError
username | String | The value tag contains a base64 encoded VeriSign account username.
password | String | The value tag contains a base64 encoded VeriSign account password.

## Configuration example

This section defines the transaction string format. The number of cards may vary.

<configdata>

<!- This section defines the sale transaction formats ->
<cardlistset>
<cardset>
<cardtype>ELSE</cardtype>
<field>
<name>TRXTYPE</name>
<property>transactiontype</property>
<type>string</type>
<minlength ptype="INTEGER">1</minlength>
<maxlength ptype="INTEGER">1</maxlength>
</field>

<field>
<name>TENDER</name>
<property>tender</property>
<type>string</type>
<minlength ptype="INTEGER">1</minlength>
<maxlength ptype="INTEGER">1</maxlength>
</field>

<field>
<name>PRENOTE</name>
<property>prenote</property>
<type>string</type>
<minlength ptype="INTEGER">1</minlength>
<maxlength ptype="INTEGER">1</maxlength>
</field>

<field>
<name>USER</name>
<property>signiousername</property>
<type>username</type>
<minlength ptype="INTEGER">0</minlength>
<maxlength ptype="INTEGER">32</maxlength>
</field>

<field>
<name>PWD</name>
<property>signiopassword</property>
<type>password</type>
<minlength ptype="INTEGER">0</minlength>
<maxlength ptype="INTEGER">32</maxlength>
</field>

<field>
<name>ACCT</name>
<property>bankaccountnum</property>
<type>accountnumber</type>
<minlength ptype="INTEGER">6</minlength>
<maxlength ptype="INTEGER">19</maxlength>
</field>

<field>
<name>AMT</name>
<property>_Amount</property>
<type>decimal</type>
<minlength ptype="INTEGER">0</minlength>
<maxlength ptype="INTEGER">13</maxlength>
</field>

<field>
<name>ABA</name>
<property>routingnumber</property>
<type>numberstring</type>
<minlength ptype="INTEGER">5</minlength>
<maxlength ptype="INTEGER">9</maxlength>
</field>

<field>
<name>ACCTTYPE</name>
<property>verisign_accounttype</property>
<type>numberstring</type>
<minlength ptype="INTEGER">1</minlength>
<maxlength ptype="INTEGER">1</maxlength>
</field>

<field>
<name>NAME</name>
<property>customername</property>
<type>string</type>
<minlength ptype="INTEGER">0</minlength>
<maxlength ptype="INTEGER">32</maxlength>
</field>

<field>
<name>COMMENT1</name>
<property>dummy</property>
<type>sessionuid</type>
<minlength ptype="INTEGER">0</minlength>
<maxlength ptype="INTEGER">0</maxlength>
</field>

</cardset>
</cardlistset>
</configdata>