Cardknox is now Sola
Learn More
LogoLogo
Contact Us
  • Introduction
  • šŸ”—API
    • Transaction API
      • Credit Card
      • Check (ACH)
      • EBT
      • Gift Card
      • Fraud
    • Customer and Recurring API
    • Reporting API
    • Account Boarding API
      • Account Boarding Merchant Agreement
      • Account Boarding Swagger UI
    • Code Samples
    • Error Codes
  • šŸ“¦SDK
    • .NET SDK
      • Transaction Workflow
    • iOS SDK
      • iOS SDK - Technical Guide
      • Workflow
    • Android SDK
      • Android SDK - Technical Guide
  • 🧰 Cardknox Products
    • 3D Secure 2.0
      • Client-Side Integration
        • Client-Side Integration (Non-iFields)
      • Server-Side Integration
    • Account Updater
    • Batch Processing
    • Browser-Based POS systems (BBPOS)
    • CloudIM Developer Guide
    • Deep Linking
      • Deep Linking Integration for Third-Party Websites
    • EBT Online
    • Gateway Emulators
    • iFields
      • Angular iFields
    • Merchant Portal
      • FAQ
    • Mobile App
    • Split Capture
    • Tap to Phone - Android
    • Partner Portal
    • PaymentSITE
      • QR Codes for PaymentSITE
    • Webhooks
  • šŸ“±Mobile Wallets
    • Apple Pay Hosted Checkout
      • Apple Pay Hosted Checkout Initial Setup
      • Apple Pay Prerequisites
      • Apple Pay Hosted Checkout Objects Reference (Request)
      • Apple Pay Hosted Checkout Objects Reference (Response)
      • Apple Pay iFields Integration
      • Apple Pay Hosted Checkout Sample Code
      • Apple Pay Features
      • Set up Apple Pay Merchant ID with Cardknox
    • Click-To-Pay - Hosted Checkout
      • Click-To-Pay Initial Setup
      • Click-To-Pay Sample Code
      • Click-To-Pay iFields Integration
      • Click-To-Pay Objects Reference (Request)
      • Click-To-Pay Objects Reference (Response)
    • Google Pay Hosted Checkout
      • Google Pay Control Object
      • Google Pay Request Objects
      • Google Pay Response Objects
      • Google Pay Sample Code
      • iFields Integration
      • Google Pay FAQ
  • šŸ”ŒPlugins
    • Netsuite
      • NetSuite Features and Demo
    • WooCommerce
    • Magento Plugin
    • RMH (Retail Management Hero)
    • RMS (Retail Management Systems)
  • šŸ“–Articles
    • Frequently Asked Questions
    • How to Build POS Integration Flows
    • Card Present Integration Guide
  • Glossary of Terms
Powered by GitBook
On this page
  • Language C#
  • Transaction Types

Was this helpful?

Export as PDF
  1. SDK
  2. .NET SDK

Transaction Workflow

Language C#

Transaction Types

cc:sale

To submit a cc:sale transaction type, first initiate the request.

PaymentEngine.xTransaction.Request MyRequest = new PaymentEngine.xTransaction.Request();

Next, specify the basic parameters, transaction-specific parameters, and device settings.

MyRequest.xKey = "Your_Test_Key";
MyRequest.xVersion = "4.5.8";
MyRequest.xSoftwareName = "My Software";
MyRequest.xSoftwareVersion = "My Software Version 1.0";
MyRequest.xCommand = "cc:sale";
MyRequest.xAmount = 1.23m;
MyRequest.EnableDeviceInsertSwipeTap = True
MyRequest.Settings.Device_Set("Verifone_Mx915.4", "COM9", "115200", "N", "8");

Once this is done, initiate the transaction.

PaymentEngine.xTransaction.Response MyResponse = MyRequest.ProcessOutOfScope();

MyResponse will contain the transaction response information, xResult "A" will indicate that the transaction was approved, "E" or "D" will indicate that it was not approved, and xError will contain the reason.

cc:sale (in scope)

To submit a cc:sale transaction type, first initiate the request.

PaymentEngine.xTransaction.Request MyRequest = new PaymentEngine.xTransaction.Request()

Next, specify the basic parameters, transaction-specific parameters, and device settings.

MyRequest.xKey = "Your_Test_Key";
MyRequest.xVersion = "4.5.8";
MyRequest.xSoftwareName = "My Software";
MyRequest.xSoftwareVersion = "My Software Version 1.0";
MyRequest.xCommand = "cc:sale";
MyRequest.xAmount = 1.23m;
MyRequest.xCardNum = "4444333322221111";
MyRequest.xExp = "1022";

Once this is done, initiate the transaction.

PaymentEngine.xTransaction.Response MyResponse = MyRequest.Process();

MyResponse will contain the transaction response information, xResult "A" will indicate that the transaction was approved, "E" or "D" will indicate that it was not approved, and xError will contain the reason.

cc:void

To submit a cc:void transaction type, first initiate the request.

PaymentEngine.xTransaction.Request MyRequest = new PaymentEngine.xTransaction.Request();

Next, specify the basic parameters and transaction-specific parameters.

MyRequest.xKey = "Your_Test_Key";
MyRequest.xVersion = "4.5.8";
MyRequest.xSoftwareName = "My Software";
MyRequest.xSoftwareVersion = "My Software Version 1.0";
MyRequest.xCommand = "cc:void";
MyRequest.xRefNum = "123456789";

Once this is done, initiate the transaction.

PaymentEngine.xTransaction.Response MyResponse = MyRequest.Process();

MyResponse will contain the transaction response information, xResult "A" will indicate that the transaction was approved, "E" or "D" will indicate that it was not approved, and xError will contain the reason.

cc:refund

To submit a cc:refund transaction type, first initiate the request.

PaymentEngine.xTransaction.Request MyRequest = new PaymentEngine.xTransaction.Request();

Next, specify the basic parameters and transaction-specific parameters.

MyRequest.xKey = "Your_Test_Key";
MyRequest.xVersion = "4.5.8";
MyRequest.xSoftwareName = "My Software";
MyRequest.xSoftwareVersion = "My Software Version 1.0";
MyRequest.xCommand = "cc:refund";
MyRequest.xRefNum = "123456789";

Once this is done, initiate the transaction.

PaymentEngine.xTransaction.Response MyResponse = MyRequest.Process();

MyResponse will contain the transaction response information, xResult "A" will indicate that the transaction was approved, "E" or "D" will indicate that it was not approved, and xError will contain the reason.

cc:credit

To submit a cc:credit transaction type, first initiate the request.

PaymentEngine.xTransaction.Request MyRequest = new PaymentEngine.xTransaction.Request();

Next, specify the basic parameters, transaction specific-parameters, and device settings.

MyRequest.xKey = "Your_Test_Key";
MyRequest.xVersion = "4.5.8";
MyRequest.xSoftwareName = "My Software";
MyRequest.xSoftwareVersion = "My Software Version 1.0";
MyRequest.xCommand = "cc:credit";
MyRequest.xAmount = 1.23m;
MyRequest.EnableDeviceInsertSwipeTap = True
MyRequest.Settings.Device_Set("Verifone_Mx915.4", "COM9", "115200", "N", "8");

Once this is done, initiate the transaction.

PaymentEngine.xTransaction.Response MyResponse =
MyRequest.ProcessOutOfScope();

MyResponse will contain the transaction response information, xResult "A" will indicate that the transaction was approved, "E" or "D" will indicate that it was not approved, and xError will contain the reason.

cc:authonly

To submit a cc:authonly transaction type, first initiate the request.

PaymentEngine.xTransaction.Request MyRequest = new PaymentEngine.xTransaction.Request();

Next, specify the basic parameters, transaction-specific parameters, and device settings.

MyRequest.xKey = "Your_Test_Key";
MyRequest.xVersion = "4.5.8";
MyRequest.xSoftwareName = "My Software";
MyRequest.xSoftwareVersion = "My Software Version 1.0";
MyRequest.xCommand = "cc:authonly";
MyRequest.xAmount = 1.23m;
MyRequest.EnableDeviceInsertSwipeTap = True
MyRequest.Settings.Device_Set("Verifone_Mx915.4", "COM9", "115200", "N", "8");

Once this is done, initiate the transaction.

PaymentEngine.xTransaction.Response MyResponse = MyRequest.ProcessOutOfScope();

MyResponse will contain the transaction response information, xResult "A" will indicate that the transaction was approved, "E" or "D" will indicate that it was not approved, and xError will contain the reason.

cc:capture

To submit a cc:capture transaction type, first initiate the request.

PaymentEngine.xTransaction.Request MyRequest = new PaymentEngine.xTransaction.Request();

Next, specify the basic parameters and transaction-specific parameters.

MyRequest.xKey = "Your_Test_Key";
MyRequest.xVersion = "4.5.8";
MyRequest.xSoftwareName = "My Software";
MyRequest.xSoftwareVersion = "My Software Version 1.0";
MyRequest.xCommand = "cc:capture";
MyRequest.xRefNum = "123456789"

Once this is done, initiate the transaction.

PaymentEngine.xTransaction.Response MyResponse = MyRequest.Process();

MyResponse will contain the transaction response information, xResult "A" will indicate that the transaction was approved, "E" or "D" will indicate that it was not approved, and xError will contain the reason.

GetSignature

To submit a GetSignature transaction type, first initiate the request.

PaymentEngine.xTransaction.Request MyRequest = new PaymentEngine.xTransaction.Request();

Next, specify the basic parameters and device settings.

MyRequest.xKey = "Your_Test_Key";
MyRequest.xVersion = "4.5.8";
MyRequest.xSoftwareName = "My Software";
MyRequest.xSoftwareVersion = "My Software Version 1.0";
MyRequest.Settings.Device_Set("Verifone_Mx915.4", "COM9", "115200", "N", "8");

Once this is done, initiate the transaction.

string MySignature = MyRequest.GetSignature();

MySignature will contain the transaction signature.

Device_ShowWelcomeScreen

To submit a Device_ShowWelcomeScreen transaction type, first initiate the request.

PaymentEngine.xTransaction.Request MyRequest = new PaymentEngine.xTransaction.Request();

Next, specify the basic parameters and device settings.

MyRequest.xKey = "Your_Test_Key";
MyRequest.xVersion = "4.5.8";
MyRequest.xSoftwareName = "My Software";
MyRequest.xSoftwareVersion = "My Software Version 1.0";
MyRequest.Settings.Device_Set("Verifone_Mx915.4", "COM9", "115200", "N", "8");

Once this is done, initiate the transaction.

TransRequest.Device_ShowWelcomeScreen();

MySignature will contain the transaction signature.

ebtfs:sale

To submit a ebtfs:sale transaction type, first initiate the request.

PaymentEngine.xTransaction.Request MyRequest = new PaymentEngine.xTransaction.Request();

Next, specify the basic parameters, transaction-specific parameters, and device settings.

MyRequest.xKey = "Your_Test_Key";
MyRequest.xVersion = "4.5.8";
MyRequest.xSoftwareName = "My Software";
MyRequest.xSoftwareVersion = "My Software Version 1.0";
MyRequest.xCommand = "ebtfs:sale";
MyRequest.xAmount = 1.23m;
MyRequest.EnableDeviceInsertSwipeTap = True
MyRequest.Settings.Device_Set("Verifone_Mx915.4", "COM9", "115200", "N", "8");

Once this is done, initiate the transaction.

PaymentEngine.xTransaction.Response MyResponse = MyRequest.ProcessOutOfScope();

MyResponse will contain the transaction response information, xResult "A" will indicate that the transaction was approved, "E" or "D" will indicate that it was not approved, and xError will contain the reason.

ebtfs:credit

To submit a ebtfs:credit transaction type, first initiate the request.

PaymentEngine.xTransaction.Request MyRequest = new PaymentEngine.xTransaction.Request();

Next, specify the basic parameters, transaction-specific parameters, and device settings.

MyRequest.xKey = "Your_Test_Key";
MyRequest.xVersion = "4.5.8";
MyRequest.xSoftwareName = "My Software";
MyRequest.xSoftwareVersion = "My Software Version 1.0";
MyRequest.xCommand = "ebtfs:credit";
MyRequest.xAmount = 1.23m;
MyRequest.EnableDeviceInsertSwipeTap = True
MyRequest.Settings.Device_Set("Verifone_Mx915.4", "COM9", "115200", "N", "8");

Once this is done, initiate the transaction.

PaymentEngine.xTransaction.Response MyResponse = MyRequest.ProcessOutOfScope();

MyResponse will contain the transaction response information, xResult "A" will indicate that the transaction was approved, "E" or "D" will indicate that it was not approved, and xError will contain the reason.

ebtfs:balance

To submit a ebtfs:balance transaction type, first initiate the request.

PaymentEngine.xTransaction.Request MyRequest = new PaymentEngine.xTransaction.Request();

Next, specify the basic parameters, transaction-specific parameters, and device settings.

MyRequest.xKey = "Your_Test_Key";
MyRequest.xVersion = "4.5.8";
MyRequest.xSoftwareName = "My Software";
MyRequest.xSoftwareVersion = "My Software Version 1.0";
MyRequest.xCommand = "cc:balance";
MyRequest.xAmount = 1.23m;
MyRequest.EnableDeviceInsertSwipeTap = True
MyRequest.Settings.Device_Set("Verifone_Mx915.4", "COM9", "115200", "N", "8");

Once this is done, initiate the transaction.

PaymentEngine.xTransaction.Response MyResponse = MyRequest.ProcessOutOfScope();

MyResponse will contain the transaction response information, xResult "A" will indicate that the transaction was approved, "E" or "D" will indicate that it was not approved, and xError will contain the reason.

Device_ShowItems

To submit a Device_ShowItems transaction type, first initiate the request.

PaymentEngine.xTransaction.Request MyRequest = new PaymentEngine.xTransaction.Request();

Next, specify the basic parameters, transaction-specific parameters, and device settings.

MyRequest.xKey = "Your_Test_Key";
MyRequest.xVersion = "4.5.8";
MyRequest.xSoftwareName = "My Software";
MyRequest.xSoftwareVersion = "My Software Version 1.0";
TransRequest.xTax = 1.26m;
TransRequest.xAmount = 19.23m;
MyRequest.EnableDeviceInsertSwipeTap = True
MyRequest.Settings.Device_Set("Verifone_Mx915.4", "COM9", "115200", "N", "8");

Once this is done, initiate the transaction.

TransRequest.UpdateItems("json", "[{'xdescription':'ItemABC','xupc':558,'xqty':3,'xunit':'EA','xunitprice':'5.99'}]");
TransRequest.Device_ShowItems();

The items will be shown to the user on the pin pad.

cc:encrypt

To submit a cc:encrypt transaction type, first initiate the request.

PaymentEngine.xTransaction.Request MyRequest = new PaymentEngine.xTransaction.Request();

Next, specify the basic parameters, transaction-specific parameters, and device settings.

MyRequest.xKey = "Your_Test_Key";
MyRequest.xVersion = "4.5.8";
MyRequest.xSoftwareName = "My Software";
MyRequest.xSoftwareVersion = "My Software Version 1.0";
MyRequest.xCommand = "cc:encrypt";
MyRequest.EnableDeviceInsertSwipeTap = True
MyRequest.Settings.Device_Set("Verifone_Mx915.4", "COM9", "115200", "N", "8");

Once this is done, initiate the transaction.

PaymentEngine.xTransaction.Response MyResponse = MyRequest.ProcessOutOfScope();

MyResponse will contain the transaction response information, xResult ā€Sā€ will indicate that the request was processed successfully, and xEncryptedPayload will contain the encrypted card number. Once the system is back online submit a cc:sale (in scope) transaction or via API using the encrypted card number as xMagstripe there is no need to submit an expiration date since it is included with the encrypted card number.

Last updated 1 month ago

Was this helpful?

šŸ“¦