EPayments SDK Development Guide Accela Civic Platform 8.0.3 E Payments

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 64

DownloadEPayments SDK Development Guide Accela Civic Platform 8.0.3 E Payments
Open PDF In BrowserView PDF
Version 8.0.3.0.0

Accela Civic Platform®

ePayments SDK Guide

Accela Civic Platform ePayments SDK Guide
© 2016 Accela, Inc. All rights reserved.
Accela, the Accela logo, the Accela logo with “Government Software” notation, Accela Automation, Accela
Asset Management, Accela Citizen Access, Accela Mobile Citizen Access, Accela ERS, Accela GIS, Accela
IVR, Accela Land Management, Accela Licensing, Accela Mobile Office, Accela Public Health and Safety,
Accela Service Request, Accela Wireless, Kiva DMS, Kiva Development Management System, 'PERMITS'
Plus, SiteSynch, Tidemark Advantage, Civic Platform, Civic Cloud, Civic Hero, E-Boardroom,
EnvisionConnect, Envista, GEOTMS, IQM2, Mediatraq, Minutetraq, PublicStuff, Trusted To Do More,
VelocityHall, Vantage360, and other Accela logos, devices, product names, and service names are
trademarks or service marks of Accela, Inc. Brava! Viewer is a trademark of Informative Graphics
Corporation. Windows is a registered trademark of Microsoft Corporation. Acrobat is a trademark of Adobe
Systems Incorporated. Portions copyright 2009 Ching-Lan 'digdog' Huang and digdog software. All other
company names, product names, and designs mentioned herein are held by their respective owners.

Version 8.0.3.0.0
August 2016
Corporate Headquarters
2633 Camino Ramon
Suite 500
Bishop Ranch 3
San Ramon, CA 94583
Tel: (888) 722-2352
Fax: (925) 659-3201

www.accela.com

| Contents | iii

Contents
Getting Started............................................................................................. 4
Checking the ePayment SDK Package.............................................................................................. 5
Deciding on Which ePayment Adapter to Use................................................................................... 6
Choosing Your ePayment Solution..................................................................................................... 7
Obtaining ePayment Gateway Information......................................................................................... 9
Setting Up ePayment Adapter.......................................................................................................... 10

Developing Your Customized Adapter....................................................... 12
Gathering Required Info for Customized Adapters...........................................................................13
Developing ePayments3 Adapter......................................................................................................14
Developing Your Payment Adapter with the .NET Sample Adapter...................................... 25
Developing Your Payment Adapter with the Java Sample Adapter....................................... 29
Implementing makePayment and voidPayment Calls............................................................ 32
Developing Citizen Access Online Payment Adapter....................................................................... 38
Preparing Initial Parameters................................................................................................... 39
Handling Payment Status....................................................................................................... 40
Handling Payment Notification............................................................................................... 42

Configuring ePayment Adapter.................................................................. 43
General Configuration Steps Testing and Live................................................................................. 44
Setting Payment Types for Govolution and First Data Adapters...................................................... 47

Standard Choices Configuration................................................................ 48
Standard Choice EPaymentAdapter................................................................................................. 49
Standard Choice PAYMENT_CHECK_ACCOUNT_TYPE................................................................50

XPOLICY Table Settings for ePayment Adapters......................................51
XPOLICY for PayPal Payflow Pro4.3 Adapter..................................................................................52
XPOLICY for Official Payments STP Adapter.................................................................................. 53
XPOLICY for Virtual Merchant Adapter............................................................................................ 55
XPOLICY for Official Payments CoBrand+ Adapter......................................................................... 56
XPOLICY for Govolution Adapter..................................................................................................... 58
XPOLICY for First Data Adapter.......................................................................................................59
XPOLICY for ePayments3 Adapter...................................................................................................60
XPOLICY for MultipleAccountsEPayment Adapter........................................................................... 61
XPOLICY for ACA Online Payment Adapter.................................................................................... 62
XPOLICY for CivicPay Adapter.........................................................................................................63

Terms and Definitions................................................................................ 64

| Getting Started | 4

Getting Started
The ePayment SDK package provides the components needed for building ePayment custom adapters.
Related Information
Checking the ePayment SDK Package
Deciding on Which ePayment Adapter to Use
Choosing Your ePayment Solution
Obtaining ePayment Gateway Information
Setting Up ePayment Adapter

| Getting Started | 5

Checking the ePayment SDK Package
The Civic Platform ePayment SDK package contains the scripts and documentation for building and
configuring the ePayment adapter. The package contains three folders besides this document:
•

The Sample Code folder provides the code stub and the test harness to assist you in developing your
customized adapter.

•

The scripts folder provides the script files that you need to run in the database server for configuring
each type of adapter in Civic Platform.

•

The WSDL folder provides the ePayments3.wsdl file for ePayment web services.

This document refers to the source files and the scripts in the package in various places.

| Getting Started | 6

Deciding on Which ePayment Adapter to Use
Civic Platform provides built-in ePayment adapters for the following ePayment gateways:
•

CivicPay

•

PayPal Payflow Pro 4.3

•

Official Payments STP

•

Virtual Merchant

•

Official Payments CoBrand+ (for Citizen Access only)

•

Govolution (for Citizen Access only)

•

First Data (for Citizen Access only)

If your agency connects to an ePayment gateway which the built-in ePayment adapters do not support, you
can create your own ePayment adapter, and then implement the adapter with the epayments3.wsdl file.

| Getting Started | 7

Choosing Your ePayment Solution
Figure 1: Accela ePayment Solution Diagram shows how Civic Platform interacts with third party ePayment
gateways through ePayment adapters.

Figure 1: Accela ePayment Solution Diagram
Consider which of the following two ePayment solution options suit your agency:
1. Server Side Gateway Solution
Both Civic Platform and Citizen Access supports this solution. With this solution, users can make
payment directly in the Civic Platform website or Citizen Access website through the API provided by
the online payment gateway.
This solution works with the following ePayment gateways:
•

PayPal Payflow Pro 4.3 (with built-in adapter)

•

Official Payments STP (with built-in adapter)

•

Virtual Merchant (with built-in adapter)

•

Or, your desired gateway (with customized ePayments3 adapter). For developing the ePayments3
adapter, see Developing Your Customized Adapter .

2. Browser Side Redirect Payment Solution (for Citizen Access only)

| Getting Started | 8

This solution only works for Citizen Access 7.0.5 or later. Agencies create their own online payment
adapter for Citizen Access. When users launch a payment request in Citizen Access, the payment
adapter sends the payment request to the third-party payment gateway. Then the website of the thirdparty payment provider opens for users to pay their fees there.
This solution works with the following ePayment gateways:
•

CivicPay

•

Official Payments CoBrand+

•

Govolution

•

First Data

•

Or, your desired gateway (with customized online payment adapter). For developing the online
payment adapter, see Developing Citizen Access Online Payment Adapter.

| Getting Started | 9

Obtaining ePayment Gateway Information
Prior to configuring the ePayment solution, make sure you gather the following information about the
ePayment Gateway:
1. Decide which ePayment gateway to use.
Recommended Best Practice: Use the PayPal Payflow Pro 4.3 payment gateway.
Note:
The test gateway for PayPal Payflow Pro was retired by PayPal on August 1, 2009, and the live gateway
for PayPal Payflow Pro was retired in September 2009.
Please use the PayPal Payflow Pro 4.3 payment gateway to test PayPal online payments. Contact
Accela CRC to assist you in migrating to the PayPal Payflow Pro 4.3 payment gateway.

2. Create a test account and a merchant account with the ePayment gateway provider.
3. Obtain the gateway host configuration information from your ePayment gateway provider, including:
a. The gateway URL.
b. The testing and/or live configuration information.
4. Be aware of the firewall and proxy requirements for the gateway provider.
5. Determine the ePayment adapter to access your ePayment gateway.

| Getting Started | 10

Setting Up ePayment Adapter
General Tasks for Setting Up ePayment Adapter
When you decide the ePayment gateway information, you must be already clear on the type of ePayment
adapter to work with Civic Platform.
If you need to use a customized adapter, you must create the adapter first. See Developing Your
Customized Adapter .
For either built-in or customized adapters, you must do the following two tasks:
1. Register the adapter and gateway information in the Civic Platform database server. See Configuring
ePayment Adapter.
2. Configure the related Standard Choices, for example, the required Standard Choice EPaymentAdapter.
See Standard Choices Configuration.

(PayPal Payflow Pro 4.3 Adapter Only) Importing PayPal API Certificate
If you use the built-in adapter for PayPal Payflow Pro 4.3, follow the instructions below to import the PayPal
API certificate into the Civic Platform application server.
To import the PayPal API certificate
1. Go to the PayPal site https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/
apicertificates to get a certificate.
•

For the test pilot-payflowpro.paypal.com, the certificate file is paypal43_Test.crt

•

For the live payflowpro.paypal.com, the certificate file is paypal43_Live.crt

2. Copy the certificate file paypal43_Test.crt or paypal43_Live.crt to the 
\av.biz\conf\certs folder.
3. Run the DOS Command prompt.
4. Go to the
\av.biz\conf\certs
folder with the following command:
cd D:\AA7.2.0\av.7.2.0\av.biz\conf\certs
5. Set the path of keytool.exe to system environment variable.
For example, run the following command:
set Path=D:\AA7.2.0\av.7.2.0\bin\jdk1.6.0\bin
6. Use the keytool.exe to import the certificate into
trusted_cacerts
in the server ( \av.biz\conf\certs )
Run the following command:
keytool -import -file paypal43_Test.crt -keystore trusted_cacerts -alias
paypal43_Test

| Getting Started | 11

Or:
keytool -import -file paypal43_Live.crt -keystore trusted_cacerts -alias
paypal43_Live

| Developing Your Customized Adapter | 12

Developing Your Customized Adapter
This section provides instructions on developing your customized adapter. With Civic Platform, you can
develop the customized adapter with the ePayments3 Web Service SDK that accompanies this document
in the Scripts folder. With Citizen Access, you can either develop the ePayments3 adapter, or develop a
custom online payment adapter.
If you plan to use a built-in adapter (see the list in Deciding on Which ePayment Adapter to Use), you can
skip the instructions in this section.
The target audience of this section is software developers who know how to write, deploy, and test either
Java using Java5 or higher and Ant, or .NET-based Web services using Visual Studio 2008 or higher and
C#.
Related Information
Gathering Required Info for Customized Adapters
Developing ePayments3 Adapter
Developing Citizen Access Online Payment Adapter

| Developing Your Customized Adapter | 13

Gathering Required Info for Customized Adapters
Make decisions on the following aspects before you start on creating the ePayments3 adapter:
1. Whether to implement the ePayment adapter with Java CXF, .NET, PHP, or Ruby. Currently we only
provide test environment for Java CXF and .NET.
2. Where to install (or deploy) the adapter.
3. Whether to support credit card payment, check payment, or both.
4. Whether to support voiding payment.
5. What configuration data to be passed with each payment or void payment request, and what data to be
configured internally:
a. What gateway host configuration data will be passed with every make payment or void payment
request, and what data will be configured internally in the adapter.
b. What merchant configuration data will be passed with every make payment or void payment request,
and what data will be configured internally in the adapter.
6. What payment processing data the adapter requires to process a payment request:
a. User Context
b. Request Context
c. General Payment Information
d. Credit Card Payment Information
e. Check Payment Information
f. Payment Billing Information
7. What Payment Processing Data the adapter requires to process a void payment request.
a. User Context
b. Transaction Context
8. How to format the payment result data, including:
a. Result Status
b. Transaction Information

| Developing Your Customized Adapter | 14

Developing ePayments3 Adapter
You can apply the provided ePayments Gateway 3 (ePayments3) code stub to develop the ePayments3
adapter. You can also use the code generator to create an empty stub and then develop your own adapter
that comply with the namespace of Civic Platform.
Best Practices: Make a copy of the ePayments3 code stub for Java JaxWS 2.0 (CXF) or .NET, and then
modify the code with the gateway information (collected in Obtaining ePayment Gateway Information) and
adapter information (collected in Gathering Required Info for Customized Adapters).
The sample adapters are zipped along with this document:
•

For Java JaxWS 2.0 (CXF), the sample adapter locates under the \Sample Code
\SampleJavaEPG3Adapter folder.

•

For .NET, the sample adapter locates under the \Sample Code\ SampleDotNetEPG3Adapter folder.

Deploying Your Payment Adapter with the .NET Sample Adapter
All the required .NET sample adapter and code are available in the \Sample Code
\DotNetEPG3TestHarness folder and \Sample Code\SampleDotNetEPG3Adapter folder.

Implementing Your Payment Adapter in .NET
The web service implementation locates in the \SampleDotNetEPG3Adapter\App_Code\Service.cs file.
You can implement the makePayment and voidPayment methods based on your payment logic. Add your
payment code between the following lines:
//Begin Implemention for EPayment
...
//End Implemention for EPayment
For more information, see Implementing makePayment and voidPayment Calls.

Deploying Your Payment Adapter to IIS
To deploy your payment adapter to IIS
1. Open the IIS Manager.
2. Add an application pool for the application of your payment adapter.

3. Add a web application for the payment adapter. Note that you must map the physical path of the web
application to the \Sample Code\SampleDotNetEPG3Adapter folder.

| Developing Your Customized Adapter | 15

4. Test whether the deployment is successful.
a. Right-click the payment adapter application, and click Switch to Content View.

b. Right-click the Service.asmx file in the Content panel and click Browse.
If the deployment is successful, the following web page displays.

| Developing Your Customized Adapter | 16

Generating .NET Web Service Code Stub
You must generate the .NET web service code stub manually.
To generate .NET web service code stub manually
1. Run wsdl.exe.
wsdl /si http://localhost:8080/web2/EPayments3?wsdl
2. Edit EPayments3Interfaces.cs. Change the following code:
From:
[System.Web.Services.WebServiceBindingAttribute(Name="EPayments
3SoapBinding", Namespace="http://service.ws.accela.com")]
To:
[System.Web.Services.WebServiceBindingAttribute(Name =
"EPayments3Port", Namespace = "http://service.ws.accela.com")]
3. Edit the web service implementation. Do the following:
namespace WebService2
{
[WebService(Namespace = "http://service.ws.accela.com", Name =
"EPayments3")]
//add namespace and web service name
public class Service1: IEPayments3SoapBinding
{
#region IEPayments3SoapBinding Members
public EPaymentResult makePayment(EPaymentInfo paymentInfo)
{
mapItem[] paymentDataField = paymentInfo.configData;
EPaymentResult result = new EPaymentResult();
result.returnCode = "0";
result.returnMap = paymentDataField;
return result;
}
public EPaymentResult voidPayment(EPaymentInfo paymentInfo)
{
throw new NotImplementedException();

| Developing Your Customized Adapter | 17

}

}
#endregion

}

Configuring the .NET Test Harness
To configure the .NET test harness
1. Open the following files located in \Sample Code\DotNetEPG3TestHarness, and update the
configuration data for your test harness. Be sure to set up the proper test URL.
config/[ResourceName]/CreditCardConfigData.xml
config/[ResourceName]/CreditCardPaymentData.xml
config/[ResourceName]/CheckPaymentData.xml
config/[ResourceName]/CheckConfigData.xml
The [ResourceName]indicates the adapter type, be it PayPal43, OPSTP (official payment STP), or your
customized adapter.
The value of the AdapterURL key is the test URL.
The configuration data are the XPOLICY table settings. For more information, see XPOLICY Table
Settings for ePayment Adapters.
2. Configure config/[ResourceName]/SSOConfig.xml.
•

Set “Enable” to false unless you are testing an internal ePayments3 adapter on av.biz.

•

Set “Enable” to true if you are testing an internal ePayments3 adapter on av.biz.

•

Set the user login parameters and the SSO URL.

Calling the ePayments3 Web Service
To call the ePayments3 Web service
1. Double-click the Epayment3ServerByDotNet.sln file in \Sample Code\SampleDotNetEPG3Adapter. Run
the project in Visual Studio.
2. Open the ePayments3 test page.

3. Specify the test parameters.
AdapterType

Select the web service adapter type.PayPay43 - If you want to use the PayPal43
adapterOPSTP - If you want to use the official payments STP adapterCustomize If you want to use your customized adapter

MethodType

Select the test payment method, credit card or check.

Method

Select the test method, pay or void.

4. Click Button to review the test result.

| Developing Your Customized Adapter | 18

Deploying Your Payment Adapter with the Java Sample Adapter
All the required Java sample adapter and code are available in the \Sample Code\JavaEPG3TestHarness
folder and \Sample Code\SampleJavaEPG3Adapter folder.

Preparing the Environment
Make sure you have installed the following software on the server where you want to deploy the payment
adapter.
•

Ant 1.7.0 or Ant 1.7.1. You can get it from http://archive.apache.org/dist/ant/binaries (apache-ant-1.7.1bin.zip is recommended).

•

Java JDK 5 or 6. You can get it from http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1637591.html.

•

Tomcat or JBoss. You can get tomcat and JBoss from the following paths.
•

http://archive.apache.org/dist/tomcat/

•

http://www.jboss.org/jbossas/downloads/ (jboss-4.2.3.GA.zip is recommended.)

Implementing Your Payment Adapter in Java
The web service implementation locates in the \SampleJavaEPG3Adapter\java\com\accela\ws
\service\epayments3\EPayments3PayPalImpl.java file file. You can implement the makePayment and
voidPayment methods based on your payment logic. Add your payment code between the following lines:
//Begin Implemention for EPayment
...
//End Implemention for EPayment
For more information, see Implementing makePayment and voidPayment Calls.

Deploying the Sample Payment Adapter
To deploy the sample payment adapter
1. Open SetEnv.cmd in the SampleJavaEPG3Adapter folder using a text editor.
2. Set ANT_HOME to the actual Apache Ant install directory.
For example:
set ANT_HOME=D:\apache-ant-1.7.1
3. Set JAVA_HOME to the actual JDK install directory.
For example:
set JAVA_HOME=D:\jdk1.6.0_43

| Developing Your Customized Adapter | 19

4. Save your changes.
5. Double-click the Build.cmd file in the SampleJavaEPG3Adapter folder.
The file creates two subfolders: build and dist. The dist folder contains the payment web service
package named EPaymentServer3ByCXF.war.
6. Deploy the web service using Tomcat or JBoss. For example, if you use Apache Tomcat, do the
following:
a. Copy and paste EPaymentServer3ByCXF.war into the $TOMCAT_HOME/webapps/ folder. Replace
$TOMCAT_HOME with the actual Apache Tomcat install directory.
b. Double-click the startup.bat file under the $TOMCAT_HOME/bin/ folder.
7. Enter the following URL in your browser.
http://{serverIp:port}/EPaymentServer3ByCXF/CustomEpaymentAdapter?wsdl
Replace
serverlp
with the actual name of the server to which you deployed the sample adapter. Replace port with the
actual port number that is used for Java.exe.
If the .wsdl file opens properly in your browser, the web service is deployed successfully.

Configuring and Running the Java Test Harness
The test harness runs from the command prompt. The test harness reads the configuration and the
test files stored in the resource directory and then test all of the ePayments3 calls, including credit card
payment, void credit card payment, make check payment, and void check payment.
The Java test harness works with any ePayments3 Web Service adapter and can also test ePayments3
adapters built into the Civic Platform application server.
To configure the Java test harness
1. Prepare the configuration resources and the test data for your ePayments3 test harness. Be sure to set
up the proper test URL.
conf/[ResourceName]/CreditCardConfigData.xml
conf/[ResourceName]/CreditCardPaymentData.xml
conf/[ResourceName]/CheckPaymentData.xml
conf/[ResourceName]/CheckConfigData.xml
The [ResourceName]indicates the adapter type, be it PayPal43, OPSTP (official payment STP), or your
customized adapter.
The value of the AdapterURL key is the test URL.
The configuration data are the XPOLICY table settings. For more information, see XPOLICY Table
Settings for ePayment Adapters.
2. Configure conf/[ResourceName]/SSOConfig.xml.
•

Set “Enable” to false unless you are testing an internal ePayments3 adapter on av.biz.

•

Set “Enable” to true if you are testing an internal ePayments3 adapter on av.biz, and the payment
gateway need SSO authentication.

•

Set the user login parameters and the SSO URL.

To run the Java test harness

| Developing Your Customized Adapter | 20

1. Go to a command prompt.
2. Locate the test harness home directory. For example, go here:
d:\epg3\EPG3TestHarnessInJavaCXF
3. Run the program with the Resource you are testing. For example,
run: RunUT PayPal43
To review the Java test results
1. Locate the reports directory. For example, go here:
d:\epg3\EPG3TestHarnessInJavaCXF\reports\junit-html
2. Open index.html in a Web browser.
To remove temporary files for a new test
1. Run CleanProject.cmd.

Implementing makePayment and voidPayment Calls
When a user pays by e-check or credit card in Civic Platform, Civic Platform can initiate the makePayment
to fulfil the payment.
Civic Platform can only initiate the voidPayment when some errors occur. The following are two typical
user cases.

Use Cases for makePayment and voidPayment Calls
•

Use case #1: Civic Platform calls the makePayment twice in a payment, the first one for handling the
normal fee and the second one for the processing fee. If some error occurs in handing the second one
(paying the processing fee), Civic Platform can call the voidPayment to void the first one (that pays the
normal fee).

•

Use case #2: When a user makes a payment with more than one payment method, Civic Platform calls
makePayment for each method. If some error occurs in one call, Civic Platform calls voidPayment to roll
back all the other successful calls, so to roll back the whole payment.

Parameter Name-Value Pairs for makePayment Calls
The tables in the following section provide the parameter name-value pairs that can be sent with
makePayment calls from Civic Platform.

User Context
The makePayment calls always provide user context data. Adapter implementations can either ignore this
data or record it as part of a log.
Table 1: User Context

Parameter Name

Description

Example Value

AgencyID

A unique identifier for the agency, usually BridgeView
the name of the agency.

Ref - Type Ref Length
String

15

| Developing Your Customized Adapter | 21

Parameter Name

Description

Example Value

Ref - Type Ref Length

ModuleName

The module to which the current user
belongs to and is making payment.

Building

String

15

UserID

The user ID of the user currently logged
in and is making payment.

Mike

String

50

UserGroupID

The user group to which the current user
belongs to and is making payment. For
example, BuildingCashier.

Building Cashier

String

10

UserSessionID

The SSO auth ID for the Civic Platform
session. For example, 12345678.

12345678

String

20

Request Context
The makePayment calls always provide request context data. Adapter implementations can ignore this
data, record it as part of a log, or use it to route payment processing requests.
Table 2: Request Context

Parameter Name

Description

Example Value

Ref - Type Ref Length

RequestType

The type of records that the
payment request comes from. Valid
values are: RECORD, SET, POS,
TRUSTACCOUNT, Transaction.

RECORD

String

-

RequestKey

The ID of the record that the payment
09BLD-01234
request comes from.Valid Values are:
Record ID, Set ID, POS Transaction ID,
Trust Account ID, or Payment Processing
Transaction ID.

String

-

RequestCapType

The record type if the payment request is
from a record.

String

-

Building\Building
\Construction
\Residential\New

General Payment Information
Civic Platform provides the general payment information to the adapter.
Table 3: General Payment Information

Parameter Name

Description

Example Value

Ref - Type Ref Length

PaymentTransactionID

Unique transaction ID in Accela system,
only available for makePayment.

4323

Number

20

PaymentAmount

The payment amount to be made. The
value does not contain the courtesy fee.

100.00

Number

15,2

PaymentCourtesyFee

The amount of courtesy fee to be made.

0.00

Number

15,2

PaymentTotalAmount

The total amount of payment to be made, 100.00
which is the sum of the PaymentAmount
and PaymentCourtesyFee.

Number

15,2

| Developing Your Customized Adapter | 22

Parameter Name

Description

Example Value

Ref - Type Ref Length

PaymentCurrency

The currency used for the payment. The
value must comply with the international
standard of 3 characters.

USD

String

-

PaymentType

The type of the payment.Check = “EC”
Credit Card = “CC”

CC

String

30

PaymentComment

Any comment from the user when making the payment. Same value as in the
Comment field.

String

2000

Credit Card Payment Information
Civic Platform provides the credit card payment information to the adapter if the payment type is set to
“CC”.
Table 4: Credit Card Payment Information

Parameter Name

Description

Example Value

Ref - Type Ref Length

CreditCardType

Credit card type selected for the
payment:Visa = "VI" MasterCard = "MC”
American Express = "AX” Discover =
"DC"Administrators can specify which
credit card types are acceptable in Civic
Platform.

VI

String

30

CreditCardNumber

For PCI Compliance, do not record this
value or store it in a database.

4111111111111111

Number

28

CreditCardSecurityCode

Format: “mmyy”. For PCI Compliance,
do not record this value or store it in a
database.

0412

Number

30

CreditCardExpiration

Format “mmyy”. The value is from the
expiration drop-down lists in UI.

0313

Date

-

Check Payment Information
Civic Platform provides the check payment information to the adapter if the payment type is set to “EC”.
Table 5: Check Payment Information

Parameter Name

Description

Example Value

CheckType

Check type selected for the payment:"C" C
= Checking "S" = Savings "BC" =
Business Checking "BS" = Business
Savings You can configure Civic Platform
to just specify Checking and Saving if
you do not need to identify Business
accounts.

String

-

CheckRoutingNumber

The check routing number users provide
for payment.To keep data secure, do not
record this value in the log or store it in a
database.

Number

-

123404231

Ref - Type Ref Length

| Developing Your Customized Adapter | 23

Parameter Name

Description

Example Value

CheckAccountNumber

The check account number users provide 012323452
for payment.To keep data secure, do not
record the value in the log or store it in a
database.

Number

-

CheckNumber

The check number users provide for
payment.To keep data secure, do not
record the value in the log or store it in a
database.

Number

7

1001

Ref - Type Ref Length

Payment Billing Information
Civic Platform can provide this information to the adapter for credit card and electronic check payment
processing.
You must determine what billing information to provide to your ePayment gateway.
Table 6: Payment Billing Information

Parameter Name

Description

Example Value

Ref - Type Ref Length

BillingBusinessName

The business name of the user who
makes the payment.This parameter is
only available for credit card payments.

Accela

String

65

BillingName

The full name of the user who makes the
payment.

-

String

65

BillingFirstName

The first name of the user who makes the payment.

String

15

BillingMiddleName

The middle name of the user who makes
the payment.

-

String

15

BillingLastName

The last name of the user who makes the payment.

String

25

BillingAddress

The address for billing.

-

String

100

BillingAddress2

The second line of address for billing.

-

String

40

BillingCity

The city of the user who makes the
payment.

-

String

32

BillingState

The state or province of the user who
makes the payment.

-

String

2

BillingZip

The Zip code or postal code of the user
who makes the payment.

-

String

10

BillingPhone

The phone number of the user who
makes the payment.

-

String

40

BillingPhoneCountry
Code

The three character code indicating the
phone country.This parameter is only
available for credit card payments.

-

String

3

BillingEmail

The email address of the user who
makes the payment.

-

String

70

| Developing Your Customized Adapter | 24

Parameter Name

Description

Example Value

Ref - Type Ref Length

BillingDriversLicense Nbr

The driver license number of the user
who makes the payment.This parameter
is only available for check payments.

-

String

100

BillingSocialSecurity Nbr

The social security number (SSN) of
the user who makes the payment. This
parameter is only available for check
payments.

-

String

30

Parameter Name-Value Pairs for voidPayment Calls
When Civic Platform calls voidPayment to void a successful payment, it gets the values of the parameters
(AgencyID, UserID, PaymentType and TransCode) from the successful payment.
The voidPayment calls always provide user context data. Adapter implementations can either ignore this
data or record it as part of a log.
Civic Platform also provides the transaction code and the payment type for processing the voidpayment.
Table 7: Payment Data for voidPayment Calls

Parameter Name

Description

Example Value

Ref - Type Ref Length

AgencyID

A unique identifier for the agency, usually BridgeView
the name of the agency.

String

15

UserID

The user ID of the user currently loggedin and is making payment.

Mike

String

50

PaymentType

The type of the payment.Check = “EC”
Credit Card = “CC”

CC

String

30

TransCode

The Transaction code that a
makePayment call returns. If Civic
Platform needs to void this transaction,
send this value to the server.

V79B1BEEE310(PayPal43)Or
String
00000000-0000-0000-0000-00000000000(VirtualMerchant)O

Parameter Name-Value Pairs of Result Data
Table 8: Result Data Name Value Pair Definitions contains all the information that must be returned with
every makePayment and voidPayment.
The EPaymentResult domain model must be the same for all ePayment Gateway 3 Adapters:
resultData([Name;Value])
, returned to the paymentBusiness.
You need to specify valid data types and lengths.
You also need to create a map between these generic parameter names and the appropriate context data
and payment data (credit card model, check model).
Table 8: Result Data Name Value Pair Definitions

Parameter Name

Description

Value

returnCode

Return 0 for success. Return any other value if the transaction failed. You
must convert the result status from the EPayments Gateway the adapter
communicates with into this return code format.

0

returnMap

Map of name value pairs.

| Developing Your Customized Adapter | 25

Parameter Name

Description

AuthCode

Authorization code for a successful makePayment request. The payment
gateway adapter defines the authorization code.

TransCode

Unique transaction code, returned from all successful makePayment requests.
This parameter identifies a transaction that needs to be voided through the
voidPayment request. The payment gateway adapter defines the unique
transaction code.

returnMessage

Transaction message extracted from GUI_TEXT based on the returnCode
value. If you want to display a customized message to the user, create a new
error code (making sure that it did not exist in GUI_TEXT), and then insert the
customized message into GUI_TEXT with the error code.For example:1) To
specify a new error code PNP-002:

Value

SELECT * FROM GUI_TEXT
WHERE STRING_KEY =
'aca.creditCardPayment.resultcodePNP-002.label'
2) To insert your error message into GUI_TEXT.

VALUES('aca.creditCardPayment.resultcodePNP-002.label','en',
'UserName is missed', 'ACA', GETDATE(),
'ADMIN','A', 'US');
Note:
If you are using the PayPal Payflow Pro 4.3 gateway, you can create
customized messages following the same way. If you use any other
supported gateway, users can only view messages from the gateway
adapter.

Developing Your Payment Adapter with the .NET Sample Adapter
All the required .NET sample adapter and code are available in the \Sample Code
\DotNetEPG3TestHarness folder and \Sample Code\SampleDotNetEPG3Adapter folder.
Topics:
•

Implementing Your Payment Adapter in .NET

•

Deploying Your Payment Adapter to IIS

•

Generating .NET Web Service Code Stub

•

Configuring the .NET Test Harness

•

Calling the ePayments3 Web Service

Implementing Your Payment Adapter in .NET
The web service implementation locates in the \SampleDotNetEPG3Adapter\App_Code\Service.cs file.
You can implement the makePayment and voidPayment methods based on your payment logic. Add your
payment code between the following lines:
//Begin Implemention for EPayment
...

| Developing Your Customized Adapter | 26

//End Implemention for EPayment
For more information, see Implementing makePayment and voidPayment Calls.

Deploying Your Payment Adapter to IIS
To deploy your payment adapter to IIS
1. Open the IIS Manager.
2. Add an application pool for the application of your payment adapter.

3. Add a web application for the payment adapter. Note that you must map the physical path of the web
application to the \Sample Code\SampleDotNetEPG3Adapter folder.

4. Test whether the deployment is successful.
a. Right-click the payment adapter application, and click Switch to Content View.

| Developing Your Customized Adapter | 27

b. Right-click the Service.asmx file in the Content panel and click Browse.
If the deployment is successful, the following web page displays.

Generating .NET Web Service Code Stub
You must generate the .NET web service code stub manually.
To generate .NET web service code stub manually
1. Run wsdl.exe.
wsdl /si http://localhost:8080/web2/EPayments3?wsdl
2. Edit EPayments3Interfaces.cs. Change the following code:
From:
[System.Web.Services.WebServiceBindingAttribute(Name="EPayments
3SoapBinding", Namespace="http://service.ws.accela.com")]

| Developing Your Customized Adapter | 28

To:
[System.Web.Services.WebServiceBindingAttribute(Name =
"EPayments3Port", Namespace = "http://service.ws.accela.com")]
3. Edit the web service implementation. Do the following:
namespace WebService2
{
[WebService(Namespace = "http://service.ws.accela.com", Name =
"EPayments3")]
//add namespace and web service name
public class Service1: IEPayments3SoapBinding
{
#region IEPayments3SoapBinding Members
public EPaymentResult makePayment(EPaymentInfo paymentInfo)
{
mapItem[] paymentDataField = paymentInfo.configData;
EPaymentResult result = new EPaymentResult();
result.returnCode = "0";
result.returnMap = paymentDataField;
return result;
}
public EPaymentResult voidPayment(EPaymentInfo paymentInfo)
{
throw new NotImplementedException();
}
#endregion
}
}

Configuring the .NET Test Harness
To configure the .NET test harness
1. Open the following files located in \Sample Code\DotNetEPG3TestHarness, and update the
configuration data for your test harness. Be sure to set up the proper test URL.
config/[ResourceName]/CreditCardConfigData.xml
config/[ResourceName]/CreditCardPaymentData.xml
config/[ResourceName]/CheckPaymentData.xml
config/[ResourceName]/CheckConfigData.xml
The [ResourceName]indicates the adapter type, be it PayPal43, OPSTP (official payment STP), or your
customized adapter.
The value of the AdapterURL key is the test URL.
The configuration data are the XPOLICY table settings. For more information, see XPOLICY Table
Settings for ePayment Adapters.
2. Configure config/[ResourceName]/SSOConfig.xml.
•

Set “Enable” to false unless you are testing an internal ePayments3 adapter on av.biz.

•

Set “Enable” to true if you are testing an internal ePayments3 adapter on av.biz.

•

Set the user login parameters and the SSO URL.

| Developing Your Customized Adapter | 29

Calling the ePayments3 Web Service
To call the ePayments3 Web service
1. Double-click the Epayment3ServerByDotNet.sln file in \Sample Code\SampleDotNetEPG3Adapter. Run
the project in Visual Studio.
2. Open the ePayments3 test page.

3. Specify the test parameters.
AdapterType

Select the web service adapter type.PayPay43 - If you want to use the PayPal43
adapterOPSTP - If you want to use the official payments STP adapterCustomize If you want to use your customized adapter

MethodType

Select the test payment method, credit card or check.

Method

Select the test method, pay or void.

4. Click Button to review the test result.

Developing Your Payment Adapter with the Java Sample Adapter
All the required Java sample adapter and code are available in the \Sample Code\JavaEPG3TestHarness
folder and \Sample Code\SampleJavaEPG3Adapter folder.
Topics:
•

Preparing the Environment

•

Implementing Your Payment Adapter in Java

•

Deploying the Sample Payment Adapter

•

Configuring and Running the Java Test Harness

Preparing the Environment
Make sure you have installed the following software on the server where you want to deploy the payment
adapter.
•

Ant 1.7.0 or Ant 1.7.1. You can get it from http://archive.apache.org/dist/ant/binaries (apache-ant-1.7.1bin.zip is recommended).

| Developing Your Customized Adapter | 30

•

Java JDK 5 or 6. You can get it from http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1637591.html.

•

Tomcat or JBoss. You can get tomcat and JBoss from the following paths.
•

http://archive.apache.org/dist/tomcat/

•

http://www.jboss.org/jbossas/downloads/ (jboss-4.2.3.GA.zip is recommended.)

Implementing Your Payment Adapter in Java
The web service implementation locates in the \SampleJavaEPG3Adapter\java\com\accela\ws
\service\epayments3\EPayments3PayPalImpl.java file file. You can implement the makePayment and
voidPayment methods based on your payment logic. Add your payment code between the following lines:
//Begin Implemention for EPayment
...
//End Implemention for EPayment
For more information, see Implementing makePayment and voidPayment Calls.

Deploying the Sample Payment Adapter
To deploy the sample payment adapter
1. Open SetEnv.cmd in the SampleJavaEPG3Adapter folder using a text editor.
2. Set ANT_HOME to the actual Apache Ant install directory.
For example:
set ANT_HOME=D:\apache-ant-1.7.1
3. Set JAVA_HOME to the actual JDK install directory.
For example:
set JAVA_HOME=D:\jdk1.6.0_43
4. Save your changes.
5. Double-click the Build.cmd file in the SampleJavaEPG3Adapter folder.
The file creates two subfolders: build and dist. The dist folder contains the payment web service
package named EPaymentServer3ByCXF.war.
6. Deploy the web service using Tomcat or JBoss. For example, if you use Apache Tomcat, do the
following:
a. Copy and paste EPaymentServer3ByCXF.war into the $TOMCAT_HOME/webapps/ folder. Replace
$TOMCAT_HOME with the actual Apache Tomcat install directory.
b. Double-click the startup.bat file under the $TOMCAT_HOME/bin/ folder.
7. Enter the following URL in your browser.
http://{serverIp:port}/EPaymentServer3ByCXF/CustomEpaymentAdapter?wsdl
Replace
serverlp

| Developing Your Customized Adapter | 31

with the actual name of the server to which you deployed the sample adapter. Replace port with the
actual port number that is used for Java.exe.
If the .wsdl file opens properly in your browser, the web service is deployed successfully.

Configuring and Running the Java Test Harness
The test harness runs from the command prompt. The test harness reads the configuration and the
test files stored in the resource directory and then test all of the ePayments3 calls, including credit card
payment, void credit card payment, make check payment, and void check payment.
The Java test harness works with any ePayments3 Web Service adapter and can also test ePayments3
adapters built into the Civic Platform application server.
To configure the Java test harness
1. Prepare the configuration resources and the test data for your ePayments3 test harness. Be sure to set
up the proper test URL.
conf/[ResourceName]/CreditCardConfigData.xml
conf/[ResourceName]/CreditCardPaymentData.xml
conf/[ResourceName]/CheckPaymentData.xml
conf/[ResourceName]/CheckConfigData.xml
The [ResourceName]indicates the adapter type, be it PayPal43, OPSTP (official payment STP), or your
customized adapter.
The value of the AdapterURL key is the test URL.
The configuration data are the XPOLICY table settings. For more information, see XPOLICY Table
Settings for ePayment Adapters.
2. Configure conf/[ResourceName]/SSOConfig.xml.
•

Set “Enable” to false unless you are testing an internal ePayments3 adapter on av.biz.

•

Set “Enable” to true if you are testing an internal ePayments3 adapter on av.biz, and the payment
gateway need SSO authentication.

•

Set the user login parameters and the SSO URL.

To run the Java test harness
1. Go to a command prompt.
2. Locate the test harness home directory. For example, go here:
d:\epg3\EPG3TestHarnessInJavaCXF
3. Run the program with the Resource you are testing. For example,
run: RunUT PayPal43
To review the Java test results
1. Locate the reports directory. For example, go here:
d:\epg3\EPG3TestHarnessInJavaCXF\reports\junit-html
2. Open index.html in a Web browser.
To remove temporary files for a new test

| Developing Your Customized Adapter | 32

1. Run CleanProject.cmd.

Implementing makePayment and voidPayment Calls
When a user pays by e-check or credit card in Civic Platform, Civic Platform can initiate the makePayment
to fulfil the payment.
Civic Platform can only initiate the voidPayment when some errors occur. The following are two typical
user cases.
Topics:
•

Use Cases for makePayment and voidPayment Calls

•

Parameter Name-Value Pairs for makePayment Calls

•

Parameter Name-Value Pairs for voidPayment Calls

•

Parameter Name-Value Pairs of Result Data

Use Cases for makePayment and voidPayment Calls
•

Use case #1: Civic Platform calls the makePayment twice in a payment, the first one for handling the
normal fee and the second one for the processing fee. If some error occurs in handing the second one
(paying the processing fee), Civic Platform can call the voidPayment to void the first one (that pays the
normal fee).

•

Use case #2: When a user makes a payment with more than one payment method, Civic Platform calls
makePayment for each method. If some error occurs in one call, Civic Platform calls voidPayment to roll
back all the other successful calls, so to roll back the whole payment.

Parameter Name-Value Pairs for makePayment Calls
The tables in the following section provide the parameter name-value pairs that can be sent with
makePayment calls from Civic Platform.
Topics:
•

User Context

•

Request Context

•

General Payment Information

•

Credit Card Payment Information

•

Check Payment Information

•

Payment Billing Information

User Context
The makePayment calls always provide user context data. Adapter implementations can either ignore this
data or record it as part of a log.

| Developing Your Customized Adapter | 33

Table 9: User Context

Parameter Name

Description

Example Value

Ref - Type Ref Length

AgencyID

A unique identifier for the agency, usually BridgeView
the name of the agency.

String

15

ModuleName

The module to which the current user
belongs to and is making payment.

Building

String

15

UserID

The user ID of the user currently logged
in and is making payment.

Mike

String

50

UserGroupID

The user group to which the current user
belongs to and is making payment. For
example, BuildingCashier.

Building Cashier

String

10

UserSessionID

The SSO auth ID for the Civic Platform
session. For example, 12345678.

12345678

String

20

Request Context
The makePayment calls always provide request context data. Adapter implementations can ignore this
data, record it as part of a log, or use it to route payment processing requests.
Table 10: Request Context

Parameter Name

Description

Example Value

Ref - Type Ref Length

RequestType

The type of records that the
payment request comes from. Valid
values are: RECORD, SET, POS,
TRUSTACCOUNT, Transaction.

RECORD

String

-

RequestKey

The ID of the record that the payment
09BLD-01234
request comes from.Valid Values are:
Record ID, Set ID, POS Transaction ID,
Trust Account ID, or Payment Processing
Transaction ID.

String

-

RequestCapType

The record type if the payment request is
from a record.

String

-

Building\Building
\Construction
\Residential\New

General Payment Information
Civic Platform provides the general payment information to the adapter.
Table 11: General Payment Information

Parameter Name

Description

Example Value

Ref - Type Ref Length

PaymentTransactionID

Unique transaction ID in Accela system,
only available for makePayment.

4323

Number

20

PaymentAmount

The payment amount to be made. The
value does not contain the courtesy fee.

100.00

Number

15,2

PaymentCourtesyFee

The amount of courtesy fee to be made.

0.00

Number

15,2

| Developing Your Customized Adapter | 34

Parameter Name

Description

Example Value

Ref - Type Ref Length

PaymentTotalAmount

The total amount of payment to be made, 100.00
which is the sum of the PaymentAmount
and PaymentCourtesyFee.

Number

15,2

PaymentCurrency

The currency used for the payment. The
value must comply with the international
standard of 3 characters.

USD

String

-

PaymentType

The type of the payment.Check = “EC”
Credit Card = “CC”

CC

String

30

PaymentComment

Any comment from the user when making the payment. Same value as in the
Comment field.

String

2000

Credit Card Payment Information
Civic Platform provides the credit card payment information to the adapter if the payment type is set to
“CC”.
Table 12: Credit Card Payment Information

Parameter Name

Description

Example Value

Ref - Type Ref Length

CreditCardType

Credit card type selected for the
payment:Visa = "VI" MasterCard = "MC”
American Express = "AX” Discover =
"DC"Administrators can specify which
credit card types are acceptable in Civic
Platform.

VI

String

30

CreditCardNumber

For PCI Compliance, do not record this
value or store it in a database.

4111111111111111

Number

28

CreditCardSecurityCode

Format: “mmyy”. For PCI Compliance,
do not record this value or store it in a
database.

0412

Number

30

CreditCardExpiration

Format “mmyy”. The value is from the
expiration drop-down lists in UI.

0313

Date

-

Check Payment Information
Civic Platform provides the check payment information to the adapter if the payment type is set to “EC”.
Table 13: Check Payment Information

Parameter Name

Description

Example Value

CheckType

Check type selected for the payment:"C" C
= Checking "S" = Savings "BC" =
Business Checking "BS" = Business
Savings You can configure Civic Platform
to just specify Checking and Saving if
you do not need to identify Business
accounts.

Ref - Type Ref Length
String

-

| Developing Your Customized Adapter | 35

Parameter Name

Description

Example Value

Ref - Type Ref Length

CheckRoutingNumber

The check routing number users provide
for payment.To keep data secure, do not
record this value in the log or store it in a
database.

123404231

Number

-

CheckAccountNumber

The check account number users provide 012323452
for payment.To keep data secure, do not
record the value in the log or store it in a
database.

Number

-

CheckNumber

The check number users provide for
payment.To keep data secure, do not
record the value in the log or store it in a
database.

Number

7

1001

Payment Billing Information
Civic Platform can provide this information to the adapter for credit card and electronic check payment
processing.
You must determine what billing information to provide to your ePayment gateway.
Table 14: Payment Billing Information

Parameter Name

Description

Example Value

Ref - Type Ref Length

BillingBusinessName

The business name of the user who
makes the payment.This parameter is
only available for credit card payments.

Accela

String

65

BillingName

The full name of the user who makes the
payment.

-

String

65

BillingFirstName

The first name of the user who makes the payment.

String

15

BillingMiddleName

The middle name of the user who makes
the payment.

-

String

15

BillingLastName

The last name of the user who makes the payment.

String

25

BillingAddress

The address for billing.

-

String

100

BillingAddress2

The second line of address for billing.

-

String

40

BillingCity

The city of the user who makes the
payment.

-

String

32

BillingState

The state or province of the user who
makes the payment.

-

String

2

BillingZip

The Zip code or postal code of the user
who makes the payment.

-

String

10

BillingPhone

The phone number of the user who
makes the payment.

-

String

40

BillingPhoneCountry
Code

The three character code indicating the
phone country.This parameter is only
available for credit card payments.

-

String

3

| Developing Your Customized Adapter | 36

Parameter Name

Description

Example Value

Ref - Type Ref Length

BillingEmail

The email address of the user who
makes the payment.

-

String

70

BillingDriversLicense Nbr

The driver license number of the user
who makes the payment.This parameter
is only available for check payments.

-

String

100

BillingSocialSecurity Nbr

The social security number (SSN) of
the user who makes the payment. This
parameter is only available for check
payments.

-

String

30

Parameter Name-Value Pairs for voidPayment Calls
When Civic Platform calls voidPayment to void a successful payment, it gets the values of the parameters
(AgencyID, UserID, PaymentType and TransCode) from the successful payment.
The voidPayment calls always provide user context data. Adapter implementations can either ignore this
data or record it as part of a log.
Civic Platform also provides the transaction code and the payment type for processing the voidpayment.
Table 15: Payment Data for voidPayment Calls

Parameter Name

Description

Example Value

Ref - Type Ref Length

AgencyID

A unique identifier for the agency, usually BridgeView
the name of the agency.

String

15

UserID

The user ID of the user currently loggedin and is making payment.

Mike

String

50

PaymentType

The type of the payment.Check = “EC”
Credit Card = “CC”

CC

String

30

TransCode

The Transaction code that a
makePayment call returns. If Civic
Platform needs to void this transaction,
send this value to the server.

V79B1BEEE310(PayPal43)Or
String
00000000-0000-0000-0000-00000000000(VirtualMerchant)O

Parameter Name-Value Pairs of Result Data
The Table 16: Result Data Name Value Pair Definitions table contains all the information that must be
returned with every makePayment and voidPayment.
The EPaymentResult domain model must be the same for all ePayment Gateway 3 Adapters:
resultData([Name;Value])
, returned to the paymentBusiness.
You need to specify valid data types and lengths.
You also need to create a map between these generic parameter names and the appropriate context data
and payment data (credit card model, check model).

| Developing Your Customized Adapter | 37

Table 16: Result Data Name Value Pair Definitions

Parameter Name

Description

Value

returnCode

Return 0 for success. Return any other value if the transaction failed. You
must convert the result status from the EPayments Gateway the adapter
communicates with into this return code format.

0

returnMap

Map of name value pairs.

AuthCode

Authorization code for a successful makePayment request. The payment
gateway adapter defines the authorization code.

TransCode

Unique transaction code, returned from all successful makePayment requests.
This parameter identifies a transaction that needs to be voided through the
voidPayment request. The payment gateway adapter defines the unique
transaction code.

returnMessage

Transaction message extracted from GUI_TEXT based on the returnCode
value. If you want to display a customized message to the user, create a new
error code (making sure that it did not exist in GUI_TEXT), and then insert the
customized message into GUI_TEXT with the error code.For example:1) To
specify a new error code PNP-002:

SELECT * FROM GUI_TEXT
WHERE STRING_KEY =
'aca.creditCardPayment.resultcodePNP-002.label'
2) To insert your error message into GUI_TEXT.

VALUES('aca.creditCardPayment.resultcodePNP-002.label','en',
'UserName is missed', 'ACA', GETDATE(),
'ADMIN','A', 'US');
Note:
If you are using the PayPal Payflow Pro 4.3 gateway, you can create
customized messages following the same way. If you use any other
supported gateway, users can only view messages from the gateway
adapter.

| Developing Your Customized Adapter | 38

Developing Citizen Access Online Payment Adapter
The online payment adapter seamlessly connects Citizen Access and the third-party payment provider by
exchanging HTTP messages between them.

Figure 2: Interaction among ACA, Adapter and Third-Party Payment Provider
Table 17: Process Flow Narrative

Stage

Step

Narrative

Initialize
Payment

1.1

Citizen Access sends the payment initial parameters through the URL query string. For
details about parameters and actions, see Preparing Initial Parameters.

1.2

Adapter interacts with the third-party payment provider to initiate the payment session.
For details about the related parameters and actions, refer to the third-party payment
provider API documents.

1.3

The third-party payment provider returns a session token after initiating the payment
session. For details about the related parameters and actions, refer to the third-party
payment provider API documents.

2.1

Adapter redirects users to the checkout page on the third-party payment provider to
pay online. For details about the related parameters and actions, refer to the third-party
payment provider API documents.

Complete
3.1
Payment Status

After the payment succeeds, fails, or is cancelled, third-party payment provider sends
the related information, such as payment status, selected payment method, inputted
user information, payment type, etc., to the adapter.For details about the related
parameters and actions, refer to the third-party payment provider API documents.

3.2

If a user pays online successfully, adapter passes the payment status to Citizen Access
to complete the payment. If a user cancels the payment or fail to pay online, adapter
should skip this step, and go to the next step.If the third-party payment provider has API
to check the authenticity of payment status, it should be done before this step.For details
about the parameters and actions, see Handling Payment Status.

3.3

After Citizen Access completes payment process based on the payment status provided
by the third-party payment provider, Citizen Access passes the handling results to the
adapter.For details about the parameters and actions, see Handling Payment Status.

3.4

If the third-party payment provider has API to commit or rollback payment, adapter
needs to commit or rollback payment based on the result of step 3.3.For details about
the related parameters and actions, refer to the third-party payment provider API
documents.

| Developing Your Customized Adapter | 39

Stage

Send Payment
Notification

Step

Narrative

3.5

The third-party payment provider returns the action results to adapter if Commit and
Rollback commands are applicable. For details about the related parameters and
actions, refer to the third-party payment provider API documents.

4.1

Adapter gets payment results according to the results of step 3.3 or 3.5 (if applicable),
and sends the results to the next step, 4.2. For details about the related parameters and
actions, see Handling Payment Notification.

4.2

Adapter generates a notification that contains the payment status and the related
message and passes the notification to Citizen Access. Citizen Access shows the
payment results based on the returned information.

Preparing Initial Parameters
Citizen Access automatically calls the HTTP method GET to pass the initial parameters to the online
payment adapter (to the URL address defined in DATA2 of the XPOLICY table, see XPOLICY for ACA
Online Payment Adapter).
Table 18: Parameter Name-Value Pairs Initially Passed to Adapter from ACA lists all the parameter
names/values initially passed to adapter from Citizen Access. Note that the Ref-Type and Ref-Length
requirements on the parameters are for your reference only, because you do not need to define the
parameters.
Table 18: Parameter Name-Value Pairs Initially Passed to Adapter from ACA

Parameter Name

Description

Required/Optional

Ref - Type

Ref Length

AgencyCode

Agency code. Adapter can use it to switch
account settings for each agency.

Required

String

15

ApplicationID

Unique ID of the application that initiates
the payment request, such as ACA. The
default value is ‘1’.

Required

String

30

ConvFee

Convenience Fee. Value ‘0’ indicates no
convenience fee.

Required

Number

15,2

FullName

Full name of public user.

Optional

String

65

Lang

The selected language at user login.

Optional

String

20

PaymentAmount

Payment Amount, which does not contain
convenience fee.

Required

Number

15,2

PostbackURL

Used to post back the payment results to
Citizen Access in the completion payment
stage.

Required

String

300

RedirectURL

Used to redirect user to Citizen Access
when payment finishes (succeeds, being
cancelled, or fails).

Required

String

300

TransactionID

Batch transaction ID. It is unique for each
payment.

Required

String

30

UserID

The user ID of the user currently logged-in
and is making payment.

Optional

String

50

UserEmail

The email of the public user who is making
payment.

Optional

String

256

| Developing Your Customized Adapter | 40

Handling Payment Status
This section describes how to pass the payment status to Citizen Access from the third-party payment
provider, and ACA response to the third-party payment provider.
Topics:
•

Passing Payment Status

•

Passing Response

Passing Payment Status
The online payment adapter calls the HTTP method POST to pass the payment status to Citizen Access
(to the PostbackURL address in the initiate-payment stage, see Table 18: Parameter Name-Value Pairs
Initially Passed to Adapter from ACA).
Table 19: Parameter Name-Value Pairs Indicating Payment Results from Adapter to ACA lists all
parameter name-value pairs that indicate payment results from the adapter to Citizen Access. Below is
a .Net code snippet that demonstrates how to code the adapter to pass the payment status to Citizen
Access.
/// 
/// Post data to ACA and get the result, use this method to complete cap
process
/// 
/// the url to ACA
/// the data from third part web site
/// the result from ACA, success or failed and the message
public static string DoPostBack(string responseUrl, string postData)
{
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] data = encoding.GetBytes(postData);
// Prepare web request...
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(responseUrl);
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
// Ignore Certificate Validation
ServicePointManager.ServerCertificateValidationCallback = delegate(Object
obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{ return (true); };
using (Stream newStream = myRequest.GetRequestStream())
{
// Send the data.
newStream.Write(data, 0, data.Length);
}
HttpWebResponse myResponse = null;
string content = String.Empty;
try
{
myResponse = (HttpWebResponse)myRequest.GetResponse();

| Developing Your Customized Adapter | 41

content = new StreamReader(myResponse.GetResponseStream(),
Encoding.UTF8).ReadToEnd();
}
catch (Exception ex)
{
_logger.Error("Error occurred when doing postback.", ex);
}
finally
{
if (myResponse != null)
{
myResponse.Close();
}
}
return content;
}
Table 19: Parameter Name-Value Pairs Indicating Payment Results from Adapter to ACA

Parameter Name

Description

Required/Optional

Ref - Type

Ref Length

TransactionID

Batch transaction ID generated by Citizen
Access. It is unique for each payment.

Required

String

50

PaymentAmount

Payment amount, which does not include
convenience fee.

Required

String

15,2

ConvFee

Convenience Fee. If agency does not need
to support convenience fee, pass ‘0’ to this
parameter.

Required

String

15,2

ProcTransactionID

The third-party payment transaction ID for
the permit fee, license fee, or any other
principle fee.

Required

String

50

ProcTransactionType

Check/Credit Card.

Optional

String

16

CCType

Credit card type, such as Visa, Discover,
and MasterCard.

Optional

String

30

CCAuthCode

The credit card's Auth Code from the thirdparty payment provider.

Optional

String

32

CCNumber

Credit card number.

Optional

String

70

Payee

Payer full name.

Optional

String

150

PayeeAdderss

Payer address.

Optional

String

240

PayeePhone

Payer phone.

Optional

String

240

PaymentComment

Payment comments.

Optional

String

2000

Passing Response
Citizen Access forwards response to the third-party payment provider.
After Citizen Access completes the internal process based on the payment results passed from the thirdparty payment provider, Citizen Access responds to adapter with the handle result to decide whether to
commit or rollback the third-party payment transaction.
HTTP methods: N/A (need to capture HTTP text output from Citizen Access.)
Table 20: Parameter Name-Value Pairs Indicating Response Results from ACA to Adapter below lists all
parameter name-value pairs that indicate the response results from Citizen Access to adapter. Note that

| Developing Your Customized Adapter | 42

the Ref-Type and Ref-Length requirements on the parameters are for your reference only, because you do
not need to define the parameters.
Below is an example of the response message pattern with URL encoded value:
success=True&TransactionID=123456&UserMessage=message.
Table 20: Parameter Name-Value Pairs Indicating Response Results from ACA to Adapter

Parameter Name

Description

Required/Optional

Ref - Type

Ref Length

Success

True: Succeed to complete the internal
process.False: Fail to complete the internal
process.Adapter needs to query, commit,
or rollback (if applicable) the third-party
payment transaction based on the result.

Required

String

-

TransactionID

Batch transaction ID. It is unique for each
payment.

Required

String

-

UserMessage

Result message.

Required

String

-

Handling Payment Notification
The online payment adapter calls the HTTP method GET to notify Citizen Access with the payment results
(to the RedirectURL address in the initiate-payment stage, see Table 18: Parameter Name-Value Pairs
Initially Passed to Adapter from ACA).
The following table lists all the parameter name-value pairs passed from adapter to Citizen Access through
RedirectURL. Citizen Access passes the RedirectURL to the adapter in the Initiate-Payment stage.
Table 21: Parameter Name-Value Pairs Passed from Adapter to ACA via RedirectURL

Parameter Name

Description

Required/Optional

Ref - Type

Ref Length

TransactionID

ACA transaction ID.

Required

String

20

ProcTransactionID

The third-party payment transaction ID.

Required

String

50

ReturnCode

Return code.1: success-1: fail 0: exit

Required

String

1

UserMessage

Payment result message.

Optional

String

2000

| Configuring ePayment Adapter | 43

Configuring ePayment Adapter
This section provides the configuration steps for built-in and customized ePayment adapters.
For each ePayment adapter, The configuration steps apply to both testing and live ePayment adapters.
You can first configure the testing adapter, and when you get ready to ‘go live’, switch to the live
configuration.
Related Information
General Configuration Steps Testing and Live
Setting Payment Types for Govolution and First Data Adapters

| Configuring ePayment Adapter | 44

General Configuration Steps Testing and Live
For every type of the ePayment adapters (either built-in or customized), Civic Platform provides the
configuration script file for you to register the adapter in the database. All you need to do is to find
the associated script file in the relevant \scripts folder that accompanies this document, update the
configuration script file according to your environment, and then run the script in the database server.
To configure an adapter
1. Locate the script file for the adapter in the \scripts folder.
All script files were zipped along with this document with folders named after the corresponding
adapters. Each script file works for either the testing or live mode, with either Oracle or MS SQL
database. For example, if you plan to configure the Paypal43 adapter for your testing environment that
works with Oracle database, you can get the script file EPaymentsConfig_PayPal43_Test_oracle.sql
under the \scripts\PayPal43\oracle folder.
2. Make a copy of the script file and add your agency ID to the SQL file name.
For example, rename the script file EPaymentsConfig_PayPal43_Test_oracle.sql to
Bridgeview_EPaymentsConfig_PayPal43_Test_oracle.sql.
3. Modify the contents of the script to include the appropriate configuration parameters.
a. Locate the @TODO lines in the script file that needs modification.
Below @TODO excerpt is from the EPaymentsConfig_PayPal43_Test_oracle.sql.

---@TODO: replace me with SERV_PROV_CODE, e.g:'FLAGSTAFF'
AGENCY_ID
:='FLAGSTAFF';
---@TODO: replace with proxy server configuration if agency is using a
proxy server for external internet access. Leave unchanged if not using
a proxy server.
PROXY_CONF
:='PROXYADDRESS=;PROXYPORT=;PROXYLOGON=;PROXYPASSWORD=';
---@TODO: replace with merchant account configuration
MERCHANT_CONF
:='PARTNER=PayPal;VENDOR=AccelaPayPal43TestCC;USER_NAME=AccelaPayPal43TestCC;PASS
---@TODO:replace with CountryCode=${CountryCode}
PAYMENT_CONF
:='CountryCode=US';
b. Modify the lines below the @TODO lines following the instructions in the @TODO lines. After the
modification, remove the @TODO lines.
After the modification, the excerpt may look like this:

AGENCY_ID
:='BridgeView';
PROXY_CONF
:='PROXYADDRESS=;PROXYPORT=;PROXYLOGON=;PROXYPASSWORD=';
MERCHANT_CONF
:='PARTNER=PayPal;VENDOR=AccelaPayPal43TestCC;USER_NAME=Barbara;PASSWORD=TestPayP
PAYMENT_CONF
:='CountryCode=US';
c. Save the script file.
Note:
Each ePayment adapter requires different data that you need to modify in the script file. For details,
see Table 22: Data to Be Modified for Different Gateway Adapters.

4. Run the script.

| Configuring ePayment Adapter | 45

Note:
The values you provide in the script file are updated to the XPOLICY table at the running of the script file.
For the XPOLICY table settings of each ePayment adapter, see XPOLICY Table Settings for ePayment
Adapters.
Table 22: Data to Be Modified for Different Gateway Adapters

Gateway

ACA Only?

Data To be Modified under @TODO

CivicPay

Yes

Set the AGENCY_ID value to your Serv_Prov_Code. Set the
MERCHANT_CONF value to include your SYSTEM_TOKEN,
GATEWAY_NAME, APPLICATION_IDENTIFIER and AUTH_TOKEN
(equivalent with the DATA4 value in the XPOLICY table). Set
the GATEWAY_CONF value to your gateway host information
(equivalent with the DATA2 value in the XPOLICY table).

PayPal Payflow Pro 4.3

Set the AGENCY_ID value to your Serv_Prov_Code.If you access
the Internet through a proxy server then modify the PROXY_CONF
with your proxy server configuration.Set the MERCHANT_CONF
value to your gateway merchant login information (equivalent with the
DATA3 value in the XPOLICY table).Set the PAYMENT_CONF value
to include your country code (equivalent with the DATA4 value in the
XPOLICY table).

OPSTP

Set the AGENCY_ID value to your Serv_Prov_Code.Set the
MERCHANT_CONF value to your gateway merchant login
information (equivalent with the DATA3 value in the XPOLICY
table).Set the PAYMENT_CONF value to include your country code
(equivalent with the DATA4 value in the XPOLICY table).

Virtual Merchant

Set the AGENCY_ID value to your Serv_Prov_Code.Set the
MERCHANT_CONF value to your gateway merchant login
information (equivalent with the DATA3 value in the XPOLICY
table).Set the PAYMENT_CONF value to include your country code
(equivalent with the DATA4 value in the XPOLICY table).

Official Payments
CoBrand+

Yes

Set the AGENCY_ID value to your Serv_Prov_Code.Set the
MERCHANT_CONF value to your gateway parameter information
(equivalent with the DATA3 value in the XPOLICY table).Set the
PAYMENT_CONF value to include your ProductID (equivalent with
the DATA4 value in the XPOLICY table).

Govolution

Yes

Set the AGENCY_ID value to your Serv_Prov_Code.Set the
MERCHANT_CONF value to include your ApplicationID and
MessageVersion (equivalent with the DATA4 value in the XPOLICY
table).

First Data

Yes

Set the AGENCY_ID value to your Serv_Prov_Code.Set the
GATEWAY_CONF value to host gateway access configuration
(equivalent with the DATA2 value in the XPOLICY table).Set
the GATEWAY_PARAMETERS_CONF value to the gateway
configuration information (equivalent with the DATA3 value in the
XPOLICY table).

EPayments3

Set the AGENCY_ID value to your Serv_Prov_Code.Set the
ADAPTER_NAME value to your custom adapter name testing or live
(equivalent with the LEVEL_DATA value in the XPOLICY table).Set
the ADAPTER_CONF value to Adapter=EPayments3;AdapterURL=
${URL of your Adapter}.Set the GATEWAY_CONF value to your
gateway host access information (equivalent with the DATA2 value
in the XPOLICY table).Set the MERCHANT_CONF value to your
gateway merchant log in information (equivalent with the DATA3
value in the XPOLICY table).Set the PAYMENT_CONF value to
your include your country code and, optionally, your amount and
convenience fee codes (equivalent with the DATA4 value in the
XPOLICY table).

| Configuring ePayment Adapter | 46

Gateway

ACA Only?

Custom Online Payment Yes

Data To be Modified under @TODO
Set the AGENCY_ID value to your Serv_Prov_Code.Set the
ADAPTER_NAME value to your custom adapter name testing or live
(equivalent to the LEVEL_DATA value in the XPOLICY table).Set the
GATEWAY_CONF value to ACA Online Payment Adapter gateway
host access information (equivalent to the DATA2 value in the
XPOLICY table).Set the GATEWAY_URL_PARAMETERS value to
the gateway's static URL parameters (equivalent to the DATA3 value
in the XPOLICY table).Set the MERCHANT_CONF value to your
application id (equivalent to the DATA 4 value in the XPOLICY table).

| Configuring ePayment Adapter | 47

Setting Payment Types for Govolution and First Data Adapters
Govolution and First Data adapters for Citizen Access only supports payments by credit card, but not
electronic check. If you use the Govolution or First Data adapter, you must set the payment types in Citizen
Access.
To set the payment types in Citizen Access
1. Navigate to Citizen Access Setup in the setup portlet of Civic Platform Vantage360.
2. Choose a module from the navigation panel and go to the Pages area.
3. Select and customize the Payment Types in the Pay Fees page in the module-defined Apply folder.
•

Change the payment type Pay with Credit Card to Pay Online

•

Disable the two payment types: Pay with Trust Account, and the Pay with Bank Account

4. Save the changes and repeat the settings for each module.

| Standard Choices Configuration | 48

Standard Choices Configuration
This section provides the Standard Choices configuration required in the ePayment configuration. The
Standard Choice names, values, and the value description are case-sensitive.
Related Information
Standard Choice EPaymentAdapter
Standard Choice PAYMENT_CHECK_ACCOUNT_TYPE

| Standard Choices Configuration | 49

Standard Choice EPaymentAdapter
The Standard Choice EPaymentAdapter specifies which ePayment adapters Civic Platform and Citizen
Access use respectively. See Figure 3: Example of the Standard Choice EPaymentAdapter .

Figure 3: Example of the Standard Choice EPaymentAdapter
In the Standard Choice, ACAAdapterType defines the ePayment adapter for Citizen Access, and
AdapterType defines the ePayment adapter for Civic Platform. After you determine the ePayment adapter
type, fill the Value Desc with the LEVEL_DATA value from the XPOLICY table settings of the adapter. For
a description of the XPOLICY table settings of the adapters, see Configuring ePayment Adapter.
Table 23: Configuring the Standard Choice EPaymentAdapter

Accela Product

Value

Value Desc

Citizen Access

ACAAdapterType

The adapter name, which must be identical to the
LEVEL_DATA value in the XPOLICY table of the
adapter.Example: OPCoBrandPlus_Test

Civic Platform

AdapterType

The adapter name, which must be identical to the
LEVEL_DATA value in the XPOLICY table of the
adapter.Example: PayPal43_Test

| Standard Choices Configuration | 50

Standard Choice PAYMENT_CHECK_ACCOUNT_TYPE
Administrators can configure the Standard Choice PAYMENT_CHECK_ACCOUNT_TYPE to determine
the account types and check types available when Citizen Access and Civic Platform access the
customized Epayments3 adapter.

Figure 4: Example of the Standard Choice PAYMENT_CHECK_ACCOUNT_TYPE
Table 24: Configuring the Standard Choice PAYMENT_CHECK_ACCOUNT_TYPE

Value

Value Desc

Checking

C

Savings

S

Business Checking

BC

Business Savings

BS

| XPOLICY Table Settings for ePayment Adapters | 51

XPOLICY Table Settings for ePayment Adapters
The XPOLICY table in the Civic Platform database server stores the connection information and the
configuration information that the ePayment adapter needs when it connects to the ePayment gateway.
This appendix lists the XPOLICY table settings after you successfully configure the ePayment Adapter by
following the instructions in General Configuration Steps Testing and Live.
In an XPOLICY table, all the values are case-sensitive. The LEVEL_DATA and DATA2 reflect whether you
are configuring the adapter for the testing or live sites. For example, PayPal43_Test is for the testing site,
and PayPal43_Live is for the live site.
If you use ACA online payment adapter, you can pass static parameters to the adapter in the DATA3
column of the XPOLICY table. The static parameters can transfer additional information that the third party
payment gateway requires, for example, the information about identifying the payer.
Related Information
XPOLICY for PayPal Payflow Pro4.3 Adapter
XPOLICY for Official Payments STP Adapter
XPOLICY for Virtual Merchant Adapter
XPOLICY for Official Payments CoBrand+ Adapter
XPOLICY for Govolution Adapter
XPOLICY for First Data Adapter
XPOLICY for ePayments3 Adapter
XPOLICY for MultipleAccountsEPayment Adapter
XPOLICY for ACA Online Payment Adapter
XPOLICY for CivicPay Adapter

| XPOLICY Table Settings for ePayment Adapters | 52

XPOLICY for PayPal Payflow Pro4.3 Adapter
Table 25: XPOLICY Table Settings for PayPal Payflow Pro4.3 Testing and Live

XPOLICY Table

Data Values

Description

LEVEL_TYPE

Adapter

Keep the value as “Adapter”.

LEVEL_DATA

PayPal43_Test

The Standard Choice EPaymentAdapter
uses this value to identify the adapter.

DATA1

Adapter=EPayments3;AdapterURL=
${av.biz.url}/av-epayments3adapters/PayPalPayflowPro43?
wsdl

This is the configuration information about
the adapter, including the adapter type and
its URL. Enter this information exactly as
specified.

DATA2

HOSTADDRESS=pilotpayflowpro.paypal.com;
HOSTPORT=443;TIMEOUT=100;
PROXYADDRESS=;PROXYPORT=;
PROXYLOGON=;PROXYPASSWORD=

The data value is the configuration
information about the gateway. Enter
this information exactly as specified.
Note that if you are using a proxy
server, you must also provide the
Proxy server configuration. For a test
environment use HOSTADDRESS=pilotpayflowpro.paypal.com. For a live
environment use HOSTADDRESS=
payflowpro.paypal.com.

DATA3

PARTNER=${partnername};VENDOR=
${vendorname};USER_NAME=
${myuser};PASSWORD=${mypwd123};
CHECKPARTNER=${checkpartnername};CHECKVENDOR=
${check-vendername};
CHECKUSER_NAME=${checkusername};CHECKPASSWORD=
${check-password}

The data value is the merchant information.
You must enter the configuration that
PayPal provides to access your account
through the EPayments Gateway.
PARTNER is the name of the company
that you purchased PayPal access from.
VENDOR is the name of your agency
that you registered with the PARTNER.
USERNAME and PASSWORD is your
access information to log in to the gateway.
You can also use CHECKPARTNER,
CHECKVENDOR, CHECKUSER_NAME,
and CHECKPASSWORD to configure an
independent PayPal43 check payment
merchant account.

DATA4

CountryCode=US

The data value is the currency your agency
is using when processing online payments.
With “CountryCode=US”, the amounts are
in US Dollars.

| XPOLICY Table Settings for ePayment Adapters | 53

XPOLICY for Official Payments STP Adapter
Table 26: XPOLICY Table Settings for Official Payments STP Testing and Live

XPOLICY Table

Data Value

Description

LEVEL_TYPE

Adapter

Keep the value as “Adapter”.

| XPOLICY Table Settings for ePayment Adapters | 54

XPOLICY Table

Data Value

Description

LEVEL_DATA

OPSTP_Test

The Standard Choice EPaymentAdapter
uses this value to identify the adapter.

DATA1

Adapter=EPayments3;AdapterURL=
${av.biz.url}/av-epayments3adapters/OfficialPaymentsSTP?
wsdl

This is the configuration information about
the adapter, including the adapter type and
its URL. Enter this information exactly as
specified.

DATA2

HOSTADDRESS=https://
staging.officialpayments.com/
srv/stp

The data value is the configuration
information about the gateway. Enter this
information exactly as specified. For a test
environment use HOSTADDRESS=https://
staging.officialpayments.com/
srv/stp. For a live environment
use HOSTADDRESS=https://
www.officialpayments.com/srv/stp.

DATA3

ClientID=${ClientID};ProductID=
${ProductID};
CustomFieldMap=cde-NotiNumb-0:
$$RequestID$$,cde-UniqID-1:$
$PaymentTransactionID$$,cdeText-1:$$PaymentComment$$,cdeWateBill-0:$$UserID$$'
Example:
ClientID=123456789123456789;
ProductID=123456789123456789;
CustomFieldMap=cde-NotiNumb-0:
$$RequestID$$,cde-UniqID-1:$
$PaymentTransactionID$$,cdeText-1:$$PaymentComment$$,cdeWateBill-0:$$UserID$$'

The data value is the merchant information.
You must enter the configuration that
Official Payments provides to access your
account through the EPayments Gateway.
ClientID is the Client ID. ProductID is the
product ID of your merchant account.

DATA4

CountryCode=US;
TotalAmountFormula=1,1.0295,0,1,
80,120,1,1.03,0,1,999999,99999;
ConvenienceFeeFormula=0.0295,
1.0295,0,1,80,120,0.03,1.03,0,1,
999999,99999999
The two formulas are defined
as: A1, B1, C1, Min, Max, R1,
A2, B2, C2, Min, Max,R2,...
Fee = Amount * Ax/Bx + Cx
Example: Charged fee is 90;
Convenience Fee is 3% of
Charged Fee, that is 3.04;
Total Payment Amount = Charged
Fee + Convenience Fee = 90 +
3.04 = 93.04
Then ConvenienceFeeFormula can
be configured as 0.035, 1.035,
0, 1, 80, 120, 0.035, 1.035,
0, 1, 9999999, 999999
(A1=0.035; B1=1.035; C1=0;
Min=1; Max=80; R1=120;
A2=0.035; B2=1.035; C2=0;
Min=1; Max=9999999;
R2=999999)Because
charged fee < R1=120, so
ConvenienceFee=90*0.035/1.035
+ 0=90*3.4%=3.06
TotalAmountFormula can be
configured as 1, 1, 0, 80,
120, 1, 1, 0, 1, 9999999,
999999;
(A1=1; B1=1; C1=0; Min=1;

The data value is the currency that your
agency is using when processing online
payments. With “CountryCode=US”, the
amounts are in US Dollars. The data value
also contains the formulas for calculating
the Total Amount and Convenience fees for
each transaction. The Example Formulas
below are for a 3% convenience fee. The
formulas are calculated like other fee
formulas in Civic Platform.

| XPOLICY Table Settings for ePayment Adapters | 55

XPOLICY for Virtual Merchant Adapter
Table 27: XPOLICY Table Settings for Virtual Merchant Testing and Live

XPOLICY Table

Data Value

Description

LEVEL_TYPE

Adapter

Keep the value as “Adapter”.

LEVEL_DATA

VirtualMerchant_Test

The Standard Choice EPaymentAdapter
uses this value to identify the adapter.

DATA1

Adapter=EPayments3;AdapterURL=
${av.biz.url}/av-epayments3adapters/VirtualMerchant?wsdl

The data value is the configuration
information about the adapter, including
the adapter type and its URL. Enter this
information exactly as specified.

DATA2

VIRTUALMERCHANT_URL=https://
www.myvirtualmerchant.com/
VirtualMerchant/process.do;
SSL_TEST_MODE=TRUE

The data value defines the host gateway
access configuration. Enter this information
exactly as specified. The Virtual
Merchant adapter does not support
proxy servers. For a test environment
use SSL_TEST_MODE=TRUE.
For a live environment use
SSL_TEST_MODE=FALSE.

DATA3

ssl_merchant_id=000170;
ssl_user_id=accelatest;
ssl_pin=7M2XP3

The data value is the merchant
configuration. You must enter the
configuration that Virtual Merchant provides
to access your account through the
EPayments Gateway. ssl_merchant_id is
your Merchant ID. ssl_user_id is the User
ID, and ssl_pin is your User Password.

DATA4

CountryCode=US

The data value is the currency that your
agency is using when processing online
payments. With “CountryCode=US”, the
amounts are in US Dollars.

| XPOLICY Table Settings for ePayment Adapters | 56

XPOLICY for Official Payments CoBrand+ Adapter
Table 28: XPOLICY Table Settings for Official Payments CoBrand+ Testing and Live

XPOLICY Table

Data Values

Description

LEVEL_TYPE

Adapter

Keep the value as “Adapter”.

| XPOLICY Table Settings for ePayment Adapters | 57

XPOLICY Table

Data Values

Description

LEVEL_DATA

OPCoBrandPlus_Test

The Standard Choice EPaymentAdapter
uses this value to identify the adapter.

DATA1

Adapter=Redirect

The data value is the configuration
information about the adapter. No URL is
needed for redirect.

DATA2

HostURL=https://
staging.officialpayments.com/
pc_entry_cobrand.jsp
ECheckHostURL=https://
staging.officialpayments.com/
echeck/pc_entry_cobrand.jsp

The data value defines the host gateway
access configuration. Enter this information
exactly as specified. For a test environment
use the test environment gateway host
access configuration, HostURL=https://
staging.officialpayments.com/
pc_entry_cobrand.jsp. For a live
environment use the live environment host
access configuration, HostURL=https://
www.officialpayments.com/
pc_entry_cobrand.jsp. For a test
environment that includes the
ECheck payment option, use the
test environment host access
configuration ECheckHostURL=https://
staging.officialpayments.com/
echeck/pc_entry_cobrand.jsp. For
a live environment that includes
the E-Check payment option, use
the live environment host access
configuration ECheckHostURL= https://
www.officialpayments.com/echeck/
pc_entry_cobrand.jsp.

DATA3

RequestParameterMap=productId:
$$ProductId$$,address1:$
$Address1$$,cde-NotiNumb-0:
$$CAPID$$,cde-UniqID-1:$
$UNIQUEID$$,
cityName:$$City$$,email:$
$Email$$,firstName:$$FirstName
$$,lastName:$$LastName$
$,middleName:$$MiddleName$$,
paymentAmount:$$PaymentAmount
$$,phoneNum:$$PhoneNum$
$,postalCd:$$Zip$$,provinceCd:
$$State$$,cde-Numbof-2:$
$NumberItems$$;
PostbackParameterMap=uid:
$$UNIQUEID$$,account_type:
$$AccountType$$,address1:
$$Address1$$,address2:$
$Address2$$,
address3:$$Address3$
$,confirmation:$$Confirmation
$$,email:$$Email$$,firstName:
$$FirstName$$,lastName:$
$LastName$$,
middleName:$$MiddleName$
$,suffix:$$Suffix$$,telephone:$
$PhoneNum$$

The data value is the gateway
configuration. You must enter the
mapping data RequestParameterMap
and PostbackParameterMap. This is
always customized to include the unique ID
parameters.

DATA4

ProductID=${ProductID}
Official Payments CoBrand+ does not use
Example: ProductID=
Client ID.
0123456789012345678901234567890123456
Note: Official Payments CoBrand
+ does not require Client ID.

The data value is your agency’s ProductID.

| XPOLICY Table Settings for ePayment Adapters | 58

XPOLICY for Govolution Adapter
Table 29: XPOLICY Table Settings for Govolution Testing and Live

XPOLICY Table

Data Value

Description

LEVEL_TYPE

Adapter

Keep the value as “Adapter”.

LEVEL_DATA

Govolution_Test

The Standard Choice EPaymentAdapter
uses this value to identify the adapter.

DATA1

Adapter=Redirect

The data value is the configuration
information about the adapter. No URL is
needed for Redirect. Enter this information
exactly as specified.

DATA2

HostURL=https://
demo.velocitypayment.com/
vrelay/verify.do

The data value defines the host gateway
access configuration. Enter this information
exactly as specified in the table below.
For a test environment use the test
environment gateway host access
configuration, HostURL= HostURL=https://
demo.velocitypayment.com/vrelay/
verify.do. For a live environment use
the live environment host access
configuration, HostURL=https://
www.velocitypayment.com/vrelay/verify.do.

DATA3
DATA4

Not Used. Reserved for parametermapping.

ApplicationID=1234;
MessageVersion=2.2

Not Used. Reserved for
parametermapping.
The data value is your agency’s
ApplicationID and MessageVersion
configuration for Govolution.

| XPOLICY Table Settings for ePayment Adapters | 59

XPOLICY for First Data Adapter
Table 30: XPOLICY Table Settings for First Data Testing and Live

XPOLICY Table

Data Value

Description

LEVEL_TYPE

Adapter

Keep the value as “Adapter”.

LEVEL_DATA

FirstData_Test

The Standard Choice EPaymentAdapter
uses this value to identify the adapter.

DATA1

Adapter=Redirect

The data value is the Adapter Type. No
URL is needed for Redirect. Enter this
information exactly as specified in the table
below.

DATA2

HostURL= https://xx.com/
epayconsumerweb/oh/col/
building/default.aspx

The data value defines the host gateway
access configuration. Enter this information
exactly as specified in the table below.
For a test environment use the test
environment gateway host access
configuration, HostURL=https://xx.com/
epayconsumerweb/oh/col/building/
default.aspx. Replace xx.com with the
correct host name. For a live environment
use the live environment host access
configuration, HostURL=https://xx.com/
epayconsumerweb/oh/col/building/
default.aspx. Replace xx.com with the
correct host name.

DATA3

RequestParameterMap=returnurl:
$$ReturnURL$$,amount:
$$PaymentAmount$$,id:$
$TransactionID$$,ref:$
$TransactionID$$

The data value is the gateway
configuration. You must enter the mapping
data for the parameters sent to First Data.

DATA4

Not used. Reserved for Merchant Configuration.

Not used. Reserved for Merchant
Configuration.

| XPOLICY Table Settings for ePayment Adapters | 60

XPOLICY for ePayments3 Adapter
Table 31: XPOLICY Table Settings for EPayments3 Testing and Live

XPOLICY Table

Data Values

Description

LEVEL_TYPE

Adapter

Keep the value as “Adapter”.

LEVEL_DATA

MyAdapter_Test

The Standard Choice EPaymentAdapter
uses this value to identify the adapter.

DATA1

Adapter=EPayments3;AdapterURL=
${MyAdapterURL}/
MyEPaymentsAdapter?wsdl

The data value is the Adapter Type and
its URL. Enter this information exactly as
specified.

DATA2

${Gateway Host Access -- custom
to the adapter/gateway}

The data value defines the host gateway
access configuration. Enter this information
exactly as specified. For a test environment
use the test environment gateway
host access configuration. For a live
environment use the live environment host
access configuration.

DATA3

${Gateway Merchant Account -custom to the adapter/gateway}

The data value is the gateway
configuration. You must enter the
configuration that your Gateway Host
provides to access your account through
the EPayments Gateway. The data value is
custom to your EPayments3 Adapter.

DATA4

CountryCode=US;
TotalAmountFormula=1,1.0295,0,1,
80,
120,1,1.03,0,1,999999,99999;
ConvenienceFeeFormula=0.0295,
1.0295,0,
1,80,120,0.03,1.03,0,1,
999999,99999999

The data value specifies the currency that
your agency is using when processing
online payments. The data value also
contains the formulas for calculating
the Total Amount and Convenience
fees for each transaction it processes.
The Example Formulas below are for a
3% convenience fee. The formulas are
calculated like other fee formulas in Civic
Platform. Note: the TotalAmountFormula
and ConvenienceFeeFormula are optional
and should only be configured if your
Custom EPayments Adapter uses
convenience fees.

| XPOLICY Table Settings for ePayment Adapters | 61

XPOLICY for MultipleAccountsEPayment Adapter
Use the MultipleAccountsEPayment adapter type if an agency or department needs to use different
merchant accounts for item fees and convenience fees. Specify the merchant account information and
convenience fee formula on Civic Platform V360 Administration Tool > Finance > Merchant Account
Settings.
Table 32: XPOLICY Table Settings for MultipleAccountsEPayment Testing and Live

XPOLICY Table

Data Values

Description

LEVEL_TYPE

Adapter

Keep the value as “Adapter”.

LEVEL_DATA

{MyAdapter}_Test

The Standard Choice EPaymentAdapter
uses this value to identify the adapter.

DATA1

The data value is the Adapter Type and

Adapter=MultipleAccountsEPayment;
the ePayment adapter URL. Enter this
AdapterURL=${MyAdapterURL}/
information exactly as specified, replacing
{MyEPaymentsAdapter}?wsdl

MyAdapterURL and MyEPaymentsAdapter
with the appropriate names. For example:

Adapter=MultipleAccountsEPayment;
AdapterURL=${av.biz.url}/
av-epayments3-adapters/
Citibank?wsdl
DATA2

HOSTADDRESS=${Gateway Host
Access -- custom to the
adapter/gateway}

The data value defines the host gateway
access configuration. Enter this information
exactly as specified. For a test environment
use the test environment gateway
host access configuration. For a live
environment use the live environment host
access configuration. For example:

HOSTADDRESS=https://
paydirectapi.ca.link2gov.com
DATA3

NULL

This field is ignored. The merchant
accounts for item fees and convenience
fees are defined on Civic Platform V360
Admin Tool > Finance > Merchant Account
Setting > Merchant Account Details. Note
that “Principle Fee” on the Merchant
Account Details page refers to the payment
item fee.

DATA4

NULL

This field is ignored. The convenience fee
formula is defined on Civic Platform V360
Admin Tool > Finance > Merchant Account
Setting > Convenience Fee Formula.

| XPOLICY Table Settings for ePayment Adapters | 62

XPOLICY for ACA Online Payment Adapter
Table 33: XPOLICY Table Settings for ACA Online Payment Adapter

Field Name

Field Value

Description

SERV_PROV_ CODE

$Variable

Replace $Variable with the actual Service provider
code (the login user’s agency code). For example,
Montana.

POLICY_SEQ

$Variable

Replace $Variable with the actual table. Sequence
number.

POLICY_NAME

PaymentAdapterSec

Keep the value as “PaymentAdapterSec”.

LEVEL_TYPE

Adapter

Keep the value as “Adapter”.

LEVEL_DATA

$Variable

Replace $Variable with the adapter name. The
Standard Choice EPaymentAdapter uses this value to
identify the adapter.

RIGHT_ GRANTED

F

Keep the value as “F”.

STATUS

A

Keep the value as “A”.

DATA1

Adapter=Redirect

The data value is the configuration information about
the adapter. No URL is needed for Redirect. Enter this
information exactly as specified.

DATA2

HostURL=$Variable

Replace $Variable with the value of adapter
initiate payment handler URL.For example,
HostURL=http://aca-server.achievo.com/
TPEPayment/BeginPayment.aspx.

DATA3

paraName1=paraValue1;
paraName1 and paraName2 for passing to the
paraName2=paraValue2

If necessary, you can specify static values in

payment adapter. The static values can be the
additional information that the third party payment
gateway requires, for example, the information about
identifying the payer.

DATA4

Application ID. The $ApplicationID should be replaced

ApplicationID=
with ‘1’ by default. If there are multiple client systems
$ApplicantID;
(ACA) that need to share the adapter system, assign
ConvenienceFeeFormula=
a unique application ID for each client system.If
$ConvenienceFeeFormula;

convenience fee needs to be calculated in Civic
Platform, the convenience fee formula should be
specified. The convenience fee is disabled by default.
Replace $ConvenienceFeeFormula with actual value.

DATA5

NULL

Not Used.

MENU_LEVEL

NULL

Not Used.

MENUITEM_ CODE

NULL

Not Used.

REC_STATUS

A

Keep the value as “A”.

REC_FUL_NAM

Admin

Keep the value as “Admin”.

REC_DATE

Current Date

The data value is the current date when you configure
the adapter by running the DB script.

RES_ID

0

Keep the value as “0”.

| XPOLICY Table Settings for ePayment Adapters | 63

XPOLICY for CivicPay Adapter
Table 34: XPOLICY Table Settings for CivicPay Testing and Live

XPOLICY Table

Data Value

Description

LEVEL_TYPE

Adapter

Keep the value as “Adapter"

LEVEL_DATA

CivicPay_Test or CivicPay

The Standard Choice
EPaymentAdapter uses this value to
identify the adapter.

DATA1

DATA2

DATA3
DATA4

Adapter = Redirect

HOST_URL= ${Gateway Host
Access}

Not Used. Reserved for parameter mapping.

SYSTEM_TOKEN=917CE049-2D97-40AB
-9159-9CAE82924B1D;
PAYMENT_URL=/Payments/
IncludeNonPCIFlow;
AGENCY_URL=/AgencyDetails;
GATEWAY_NAME=Bluefin;
APPLICATION_IDENTIFIER=VajzcuE4;
AUTH_TOKEN=ACA-AuthToken

The data value is the configuration
information about the adapter. No URL is
needed for Redirect. Enter this information
exactly as specified.
The data value defines the host
gateway access configuration. Enter this
information exactly as specified. For a
test environment use the test environment
gateway host access configuration.
For a live environment use the live
environment host access configuration.
For example: HOST_URL= https://
civicpayintegrationpayments.azurewebsites.net/
api
Not Used. Reserved for parameter
mapping.
The data value is SYSTEM_TOKEN,
GATEWAY_NAME,
APPLICATION_IDENTIFIER and
AUTH_TOKEN for ACA application.

| Terms and Definitions | 64

Terms and Definitions
Table 35: Terms and Definitions provides definitions of common terms used in this guide.
Table 35: Terms and Definitions

Term

Definition

Browser Side Redirect
Payment Solution

A hosted payment gateway solution that processes ePayment by sending the customer
to a secure external payment website to accept sensitive payment details such as credit
card numbers.

Convenience fee

A service fee paid as a cost of using the third-party payment gateway. For example,
Official Payments STP and Official Payments CoBrand+ both charge convenience fees
to a user for each transaction.

Electronic Payments

Online processing where users make payments using credit cards or checks.

ePayment

An abbreviation of “Electronic Payment”.

ePayment Adapter

An interface connecting Civic Platform and the third-party payment system to complete
payment transactions. Civic Platform supports two types of adapters, Server Side
Gateway Payment adapter and Browser Side Redirect Payment adapter.

EPayments3

The current standard Web service definition used to implement the ePayment solutions
in Civic Platform. The WSDL file name is epayments3.wsdl.

Merchant Account

The bank account agencies use to receive money from electronic payments.

Server-Side Gateway

An API that serves as the server-side gateway to a payment processing provider where
payment information is sent for payment confirmation.
Note:
Many ePayment Gateway providers can support merchant accounts from
several different banks.

Standard Choice
EPaymentAdapter

A place where you specify and enable the EPayments Adapter for Civic
Platform and Citizen Access. For example, Adapter=PayPal43_Test and
ACAAdapter=PayPal43_Test.

XPOLICY

The database table where all EPayments configuration data is stored. The table applies
to both Civic Platform and Citizen Access.



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
Linearized                      : No
Author                          : Accela, Inc.
Create Date                     : 2016:08:30 13:07:22-07:00
Modify Date                     : 2016:08:30 13:22:10-07:00
XMP Toolkit                     : Adobe XMP Core 5.4-c005 78.147326, 2012/08/23-13:03:03
Format                          : application/pdf
Title                           : ePayments SDK Development Guide
Language                        : en
Date                            : 2016:08:30 13:07:22-07:00
Creator                         : Accela, Inc.
Producer                        : Apache FOP Version 2.1
PDF Version                     : 1.4
Creator Tool                    : DITA Open Toolkit
Metadata Date                   : 2016:08:30 13:22:10-07:00
Document ID                     : uuid:966da802-1fa5-4b9c-b85f-8457cffb3cd5
Instance ID                     : uuid:9db03358-3bff-468a-aacb-cd7f45dc5c46
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 64
Profile CMM Type                : Unknown (lcms)
Profile Version                 : 2.1.0
Profile Class                   : Display Device Profile
Color Space Data                : RGB
Profile Connection Space        : XYZ
Profile Date Time               : 1998:02:09 06:49:00
Profile File Signature          : acsp
Primary Platform                : Microsoft Corporation
CMM Flags                       : Not Embedded, Independent
Device Manufacturer             : Hewlett-Packard
Device Model                    : sRGB
Device Attributes               : Reflective, Glossy, Positive, Color
Rendering Intent                : Perceptual
Connection Space Illuminant     : 0.9642 1 0.82491
Profile Creator                 : Unknown (lcms)
Profile ID                      : 0
Profile Copyright               : Copyright (c) 1998 Hewlett-Packard Company
Profile Description             : sRGB IEC61966-2.1
Media White Point               : 0.95045 1 1.08905
Media Black Point               : 0 0 0
Red Matrix Column               : 0.43607 0.22249 0.01392
Green Matrix Column             : 0.38515 0.71687 0.09708
Blue Matrix Column              : 0.14307 0.06061 0.7141
Device Mfg Desc                 : IEC http://www.iec.ch
Device Model Desc               : IEC 61966-2.1 Default RGB colour space - sRGB
Viewing Cond Desc               : Reference Viewing Condition in IEC61966-2.1
Viewing Cond Illuminant         : 19.6445 20.3718 16.8089
Viewing Cond Surround           : 3.92889 4.07439 3.36179
Viewing Cond Illuminant Type    : D50
Luminance                       : 76.03647 80 87.12462
Measurement Observer            : CIE 1931
Measurement Backing             : 0 0 0
Measurement Geometry            : Unknown
Measurement Flare               : 0.999%
Measurement Illuminant          : D65
Technology                      : Cathode Ray Tube Display
Red Tone Reproduction Curve     : (Binary data 2060 bytes, use -b option to extract)
Green Tone Reproduction Curve   : (Binary data 2060 bytes, use -b option to extract)
Blue Tone Reproduction Curve    : (Binary data 2060 bytes, use -b option to extract)
EXIF Metadata provided by EXIF.tools

Navigation menu