Difference between revisions of "PCI Friendly API"
(→Field List) |
(→Customization) |
||
Line 101: | Line 101: | ||
=Customization= | =Customization= | ||
− | The following | + | The following API controls the UI fields: |
− | |||
* clcUISetIniField ; Set a field to TRUE to enable<br> | * clcUISetIniField ; Set a field to TRUE to enable<br> | ||
<code> clcUISetIniField( "RequireCustomerName", FALSE ); </code> | <code> clcUISetIniField( "RequireCustomerName", FALSE ); </code> |
Revision as of 21:48, 27 October 2009
This article is part of the Payment Processing Software Library |
|
Get it... | |
Install it... | |
Connect to it... | |
Set it up... | |
Learn to use it... | |
→ Manual & User Guide | |
Fix it... | |
→ Errors & Troubleshooting | |
Get Help... | |
More Info ... | |
See also... | |
CreditLine Payment Processing Software PA-DSS Exempt API. This site can also be reached at http://docs.911software.com
→ Looking for better rates? Get a Free Credit Card Processing Cost Comparison!
Contents
This guide is for developers using the DLL
Requirements
These API require version CreditLine version 4.1+
Inventory
To begin with, you will need the following:
1) The interface header file CLCAPIW.h located in 911\BIN directory. This header contains the ENTIRE listing of available API.
2) The library file CLCAPIW2.DLLlocated in 911\BIN directory.
Language Specific Instructions
Visual Basic
- In VB you need to declare all the parameters using the ByVal prefix instead of ByRef. This includes the strings.
- If you would like to use an OCX instead for Visual Basic, you can use CLClient.ocx in the same directory. Another alternative is File Based Communication.
Public Declare Function clcInit Lib "CLCAPIW2.dll" (ByVal ClientName As String, ByVal ServerName As String As Integer)
C++
- The Header file is the regular WIN32 header file. The data type LONG is 32 bit.
- In C, the path has to be of format "C:\\911\\DATA", because back-slash is the escape char
DllImport("CLCAPIW2.dll", EntryPoint="clcInit", SetLastError=true, ExactSpelling=true, CallingConvention=CallingConvention.StdCall)
public static extern int clcInit(string ClientName, string ServerName);
.NET
- For .NET please use clcCs.dll and CLCAPIW2.dll from \911\BIN directory.
- Keep in mind that in C# and any .NET environment for instance, LONG is 64 bit so you have to use int or Integer not LONG ot Long in your definitions.
- The .NET interface is the same as C, with one exception: there is no clc prefix and you have to use an object.
→ Example: the call clcSetMerchantIndex(hObj, index)' is obj.setMerchantIndex(index).
Description
There are three ways, in which CreditLine can help your application eliminate exposure to the payment info:
- Our application pops up a custom UI for accepting and processing credit cards, debit cards or gift cards, so that your application does not have to.
- Recurrent credit card data is accepted, stored and processed through our custom UI, as well.
- Tokenization UI API is used to reference credit card data that is stored and encrypted within CreditLine, instead of your POS.
This way your application can claim that no credit card data is being stored or processed.
- Important Notice: This program was called "PCI Exempt". We changed the name to reflect the new policies of the PCI Council. PCI Exempt used to be a convenient term that Point Of Sale developers use to refer to the practice of tokenization and external UI encapsulation. 911 Software does not have the authority to exempt any vendor from PCI requirements. Please, contact your independent PCI auditor for rules applicable to your situation.
Encapsulation UI
We added "clcUI" functions in the client dll. For example, you can use clcUISale instead of clcSale. So instead of doing this:
clcSetAccountNumber(); clcSetAmount(); clcSale();
You can do this:
clcSetAmount(); clcUISale();
A screen is going to pop up and prompt the user to swipe the card. This way, the POS application does not have to deal with the credit card data.
Customization
The following bitmaps in the 911\bin directory can be used to customize the appearance:
- pic_Key_Common.png - buttons
- pic_StoreCard_bg.png
- pic_ScanCard_bg.png
Debit Card Processing
The following API works for both credit cards and debit cards.
For debit card transactions, use clcSetAccountType to set the next transaction as type debit, before calling clcUISale
Secure UI API
- clcUIAuth
- pop up UI, get cc data and process an auth
ex.clcSetAmount();
clcUISale(); - clcUISale
- pop up UI, get cc data and process a sale
- clcUICredit
- pop up UI, get cc data and process a credit
- clcUIAddTip
- pop up UI, get cc data and add tip
- clcUIVoid
- void transaction
- clcUIStoreCard
- Stores card info in #Secure Storage API. Sets a tag to be pased extracted by clcGetTag() and passed to clcLoadCard for retrieval. Leave the second parameter as "" unless you want to set a custom tag
Gift Card Specific UI API
- clcUIActivate
- activate gift card
- clcUIDeactivate
- deactivate gift card
- clcUIInquire
- gift card balance inquiry
- clcUIAdjustBalance
- gift card balance inquiry
Reporting
- clcGetAccountNum()
- call after transaction such as clcUISale() to get the masked account number back (e.g. 4111xxxxxxxx3567), if needed for reporting purposes
- clcGetCardCode()
- call after transaction such as clcUISale() to get card code defined by the vendor in the Authorization setup of every card type. eg. VISA=VS
Recurrent Charges
To store the card for monthly charges, call clcUIStoreCard. This function also pops up a screen for card number input. It then stores the card on 911 CreditLine Server and returns a tag (token) to the POS application.
Then this tag can be used in place of the actual card number:
clcSetTag(); clcSetAmount(); clcSale();
CreditLine offers tokenization of payment info to make your application "PCI Friendly"
Secure Storage API
These are additional non-UI storage API that can be used in your POS.
Storing Info
- clcSetAccountNum → Sets account number for storage (call before clcStoreCard).
- clcSetExpDate → Sets (format: MMYY). Set the expiration date for storage before calling clcStoreCard.
- clcSesSetValue → Use with CLCKEY_CUSTOMERNAME, CLCKEY_CUSTOMERNUMBER, CLCKEY_CUSTOMERZIPCODE to set the customer info for storage before calling clcStoreCard.
- clcStoreCard → Stores card info in storage. Sets a tag to be pased extracted by clcGetTag() and passed to clcLoadCard for retrieval. Leave the second parameter as "" unless you want to set a custom tag.
- clcGetTag → Retrieves the tag set by clcStoreCard
Loading Info
- clcLoadCard → Loads card info from storage. Accepts the tag returned by clcGetTag and set by clcStoreCard.
- clcGetAccountNum → Gets account number from storage (call after clcLoadCard).
- clcGetExpDate → (format: MMYY). Get the expiration date from storage (call after clcLoadCard).
- clcSesGetValue → Use with CLCKEY_CUSTOMERNAME, CLCKEY_CUSTOMERNUMBER, CLCKEY_CUSTOMERZIPCODE to get customer info from storage after calling clcLoadCard.
Deleting Info
- clcDeleteCard → Deletes card info from storage. Accepts the tag returned by clcGetTag and set by clcStoreCard.
Customization
The following API controls the UI fields:
- clcUISetIniField ; Set a field to TRUE to enable
clcUISetIniField( "RequireCustomerName", FALSE );
Field List
The following list of fields includes the default values:
[Fields] EnableCustomerName=NO EnableCustomerNum=NO EnableCustomerAddr=NO EnableCustomerZip=NO EnableCardNum=NO EnableExpDate=NO EnableCVC=NO EnableAmount=YES EnableTip=YES EnableTax=NO EnableTransId=YES RequireCustomerName=YES RequireCustomerNum=YES RequireCustomerAddr=YES RequireCustomerZip=YES RequireCardNum=YES RequireExpDate=YES RequireCVC=YES RequireAmount=YES RequireTip=YES RequireTax=YES RequireTransId=YES