The .NET Payment Engine SDK provides an easy way for developers to integrate card-present and card-not-present payment processing into their .NET projects. Our SDK is designed with user-friendly payment functions and compatibility with a broad range of payment hardware, removing the need for complicated device integration. With this SDK, you can easily incorporate its advanced payment processing capabilities into your .NET projects, streamlining your payment processing experience.

Getting Started

To get started with the SDK, you need to include the following DLLs in your project: PaymentEngine, xCore, xCore.Forms, NLog, and Newtonsoft.Json.

Click Here to Download SDK Files

Initiate Transaction

Initiating a transaction requires the selection of either the "in-scope" method (Process) or the "out-of-scope" method (ProcessOutOfScope). Before starting the transaction, ensure that all required and optional parameters have been properly set as outlined in the documentation.

Out-of-Scope (ProcessOutOfScope)

Use the out-of-scope transaction method when the user needs to provide their credit card information. In this case, the SDK will handle the process of collecting the sensitive credit card data from the user through a pop-up window or a credit card device, and then processing the transaction with the payment gateway.

In-Scope (Process)

Use the in-scope transaction method when there is no need for the SDK to interact with the user. This could be when you have already obtained the card number or when you want to run a void, for example. When using this method, you cannot set any parameters specific to a device.

Transaction Workflow

Click here to view the transaction workflows.

Download Our Sample Application Our sample application supports some of the basic transaction workflows; more will be added in the future. The application is intended to show you how our SDK works.

Transaction Functions

Basic Parameters

Transaction Specific

Form Settings

Device Settings

Device Name

Pax devices start with Pax_ and end with .3 (example: Pax_s300.3) S300 S920 A60 A80 A920 PX5 PX7 D210 D220

Verifone devices start with Verifone_ and end with .4 (example: Verifone_MX915.4) P400 P200 M400 E285 MX915 MX925 VX805 MX850 MX860 MX870 MX880

VeriFone driver download: https://cdn.cardknox.com/pe/files/verifone_unified_driver_installer-

Ingenico ISC and IPP devices start with Ingenico_ and end with .6 (example: Ingenico_iSC480.6) IPP320 IPP350 ISC250 ISC350

Ingenico ICT and Tetra devices start with Ingenico_ and end with .2 (example: Ingenico_iCT250.2) ICT250 Desk5000 Move5000

ID TECH devices start with IDTech_ and end with .12 (example: IDTech_VP6300.12) VP6300 VP6800

USB These settings should match what is set for the device in device manager:

COM Port (default: COM9) Baud rate (default: 115200) Parity (default: N) Data Bits (default: 8)

IP These settings should match what the device is set to.

IP Port Port (default: pax10009 verifone9001 ingenico9999)

Cancel Command

PIN Signature


Stored Account

Show Items

This is currently only supported for the Mx915 and Mx925. You can add xAmount and xTax to the request before “Device_ShowItems“ so the user can see the total amount and tax of their order. This runs on a separate thread within the application.

Update Device

This is currently only supported on certain VeriFone devices.

Additional Features

Show Forms

This is currently only supported on certain Verifone devices.

Response Parameters

Transactions that are submitted through the SDK will return a response with one or more fields. Most can be found at https://kb.cardknox.com/api/#_Response_Parameters . Below are the parameters that are specific to the SDK.

Sandbox Account Test Cases

Most test cases can be found at https://kb.cardknox.com/api/#_Sandbox_Account_Test_Cases . Below are the test cases specific to the SDK.


Debit transaction Use the cc:sale workflow and set EnableDevicePin = True. Insert a debit card into the device and it will prompt you for the PIN (If prompted for AIDs, on the device select the Debit AID); you can enter any PIN. The transaction response will include xIsDebit = True.

Offline transaction

The SDK allows you to process transactions when your system is offline. The idea is that you, the user, will insert/enter their card and you will receive an encrypted token to be used when the system is back online. See the cc:encrypt workflow.

Last updated