CreditLine Text Based / ICVerify Integration

From Payment Processing Software Library
Jump to: navigation, search
This article is part of the
Payment Processing Software Library


Get it...

Credit Card Software

Install it...

Upgrade & Migration

Connect to it...

Point Of Sale Integration

Set it up...

Quick Start Guide
Processor Setup


Learn to use it...

Manual & User Guide
Knowledge Base
Frequently Asked Questions
Compliance Guide
Merchant Account Rates
User Interface Guides

Fix it...

Errors & Troubleshooting
Knowledge Base
Corrupted Install Repair

Get Help...

Processor Support Contacts

More Info ...


See also...

911 Software

CreditLine Payment Processing Software Integration. This site can also be reached at

Looking for better rates?   Get a Free Credit Card Processing Cost Comparison!

This guide is for developers using the file based communication method. While API communication using the DLL is the preferred integration method, file based communication is a good alternative that is easy to implement. The format is the same as that of ICVerify.

Communication Directory

Directory for message exchange is c:/911/messages<br\> Directory is configurable through c:\911\data\911_CCV.INI file: see key MessageDir

→ if you are having trouble, delete everything from the message directory and restart CreditLine server.

Optional PA-DSS Compliant Encryption

Clear text based protocols are not compliant with PA-DSS Security Guidelines for Payment Applications. We provide an encryption API that can be used to encrypt the sensitive data in the request file. No other changes are required.

To use:

1. Create an instance of the CLClient.ocx control (can be found in the 911\bin folder).

2. Call String strEncryptedData = ctl.EncryptData(strInvoiceNum, strData)

Invoice number is used to generate a unique encryption key
sensitive data such account number, track data or CVV.

3. Replace the account number, track data and CVV in the protocol with the encrypted version (stored in strEncryptedData from the example above). Make sure to use quotes around it.

4. CreditLine will detect encryption use automatically.

Protocol Settings

See the following entries in c:\911\data\911_CCV.INI

Note: Do not forget to remove ';' in front of a key to uncomment it; for the key to take effect.

→ Restart CreditLine Server for the new settings to take effect.

;Specifies the message directory used by the file based ICVerify protocol.
;Network directories are ok but make sure that the write access is granted.
;Default: MESSAGES sub-directory under the main directory.

;Specifies the file prefix for file based ICVerify messages.
;Default: ICVER

;Specifies the file prefix for special name-value pair formatted text messages.
;Default: TXT

;Specifies the type of file based ICVerify reponse for the .ANS file
;Default: YES

;Echos the Request in the .ANS file
;Default: NO

;If a force transaction is sent and a matching transaction is found in the journal, then it is changed to an 'add tip' transaction.
;Default: NO

;Enables the AES encryption of the account number in text messages.
;Values: YES=Uses AES encryption, NO=Uses clear text
;Default: NO

;Returns the trace number is the auth code field.
;Values: YES=Returns the trace number, NO=Returns the auth code
;Default: NO

Also see Large Tracking ID support


Request file name is ICVER???.REQ (??? is the terminal number)
Response file name is ICVER???.ANS
The prefix for the files is configurable through c:\911\data\911_CCV.INI file, see key ICVerifyMessagePrefix


The request file names must be UNIQUE . Duplication of request file names between two or more terminals may result in incorrect responses.

Request Format

Handling Track Data

Track 2 is preferred over Track 1 since it is shorter and consistent. For Track 1 data, CreditLine Credit Card Software will convert the lower case letters to upper case. This is due to some processors not allowing lower case letters in their messages. In general, you should pass whatever you get from the card reader.

Generic Request Format

<Message Type>,<User ID>,<Not Used>,<Account Number>,<Exp Date + Track Data (if available)>,<Amount>,<AVS ZIP>, "AVS Address", "", "", "", "", "", "", "", <CVV2>

Message Type
See Message Type for options
User ID
 ???? Employee Number
Exp Date
yymm Year then month
Exp Date + Track Data
yymmTrackData (e.g. "0212B4111111111111111^TEST/CARD^0212201000000")
?????.?? Authorization Amount
Unique ID
???? 4 digit unique transaction number

Follow-up Request Format

Use this format to work on already entered transactions, e.g. Force

<Message Type>,<User ID>,<Not Used>,<Account Number>,<Exp Date + Track Data (if available)>,<Amount>,<Auth Code + Unique ID>

Auth Code
?????? 6 digit auth code

Hotel Request Format

<Message Type>,<User ID>,<CMO>,<Account Number>,<Exp Date + Track Data (if available)>,<Amount>,<Room Number/AVS Zip>,<Reference Number/AVS Address>,<Guest Name>,<Check In Date>,<Check Out Date>,<Room Rate>,<Perred Card Holder>,<Additional Charges>,<Charge Codes>,<CVV2>

"User ID"
Merchant Code + Clerk ~001~ADAM
Reservation# / Customer Order# / Folio# / Receipt# / Invoice#
Customer Name 
blank if n/a
Check In Date 
blank if n/a
Check Out Date 
blank if n/a
Room Rate 
blank if n/a
Preferred Card Holder 
blank if n/a
Additional Charges
blank if n/a
Charge Codes 
blank if n/a

Batch Commands

"SP","Y","file_path 40"
save batch report into file_path file

→ Note that the above batch report will not print under the CreditLine Demo Mode

Message Type

Credit Card

Type Code
Auth CA
Book, Checkin C4
Auth Only C6
Sale C1
Force, Voice Auth C5
Credit C3
Void Sale C2
Void Credit CR
Add Tip, Edit, Finalize CT
Post, Ship, Checkout CO
Extend Stay CI
No Show CN
Add Charge CG
Settle ST
Settle and Print Batch Report SP

Gift Card

Type Code
Inquiry GI
Activation GA
Deactivation GD
Adjust GJ


If using the format for the export function: after the export check the export file to ensure that all the transactions have been successfully processed.

Response Format


<Y + Auth Code + Unique ID>

Approval Example


auth01=Auth code
0040=unique transaction number

Large Tracking ID

→ This is an optional extension to the standard format. Note: This changes the response that you will receive from CreditLine

CreditLine supports large Unique Tracking ID's as an extension of ICVerify format

To enable large Unique Tracking ID's and use the following switch in c:\911\data\911_ccv.ini:

;Maximum Transaction Number
;The number specifies the maximum transaction number before it rolls over and start with 1

Remove leading ; from the bottom line like so:


→Restart the CreditLine Server to apply.

If enabled the following format will be returned: For instance in the following response:


auth01=Auth code
0040=lower 4 digits of the transaction number
0000=upper 4 digits of the transaction number


<N + Message>


Generic Examples

Auth with Manual Entry

Note: Employee number is 0001, account number is 4111111111111111, exp date is Dec '02 and auth amount is $1.00.

Auth response with Approval

Note: Y indicates approval. 123456 is the auth code. 0001 is the returned unique transaction number.
There are no spaces between fields.

Auth with Mag Stripe

Note: There is no space between exp date and track data.

Auth response with decline

Note: N indicates decline. Show message 'CALL CENTER' to the user.

Force with manual entry

Note: 123456 is the auth code.


Note: 000000 is the auth code filler. 1234 is the unique transaction number.


Note: 3.00 is the final amount to be sent to the processor.

Hotel Examples

"C4","~ ~PA","040626","37xxxxxxxxxx008","0603","258.00","0402","","Robert Lincoln","20040305","20040306","215.00","","",""

"CO","~ ~LD","040626","37xxxxxxxxxx008","0603","246.3","0402","","Robert Lincoln","20040305","20040306","215.00","","",""

"CO","~ ~KV","040626","37xxxxxxxxxx008","0603","19.37","Z402","","Robert Lincoln","20040305","20040306","0.00","","",""

  • "Robert Lincoln" is guest name
  • "20040305" is the check in date.
  • "20040306" is the check out date.
  • "215.00" is the room rate.
  • See Generic Examples for more patterns

Complete Turnaround Example

POS → 911: "CA","0001","","4111111111111111","0212","1.00",""
911 → POS: "Y1234561001"
POS → 911: "CT","0001","","4111111111111111","","3.00","0000001001"
911 → POS: "Y1234561002"

Also See

ICVerify SDK Format Spec