Showing results for 
Search instead for 
Did you mean: 

In-Person SDK Windows: implementation of Void and Refund

I have an application that uses the In-Person SDK (using a bbpos reader) to charge credit cards.

However, I am unable to implement the Void and Refund transactions.
When creating the request, I set


 transactionRequestType transaction = new transactionRequestType()
    transactionType = transactionTypeEnum.voidTransaction.ToString(),
    refTransId = "<my transaction Id>"


I tried invoking each of the following with SDKTransactionType.VOID

(1) startQuickChipTransaction

(2) startQuickChipWithoutUI 

(3) startEMVTransaction


None of the 3 above options worked.

I do not find any documentation anywhere regarding this.
Any help would be appreciated.



I was able to Void a transaction by bypassing the In-Person SDK altogether, and following the approach shown in:


However, I am still unable to to implement Refund.

I first used the approach in

and got the response that the Merchant Account was not authorized for this transaction.


Next I tried the code below:



ApiOperationBase<ANetApiRequest, ANetApiResponse>.RunEnvironment = this.sdkEnvironment;

transactionRequestType transaction = new transactionRequestType()
  transactionType = transactionTypeEnum.refundTransaction.ToString(),
  amount = 1.0m,
  refTransId = "<original transactionID>",

  transactionSettings = new settingType[] {
  retail = new transRetailInfoType()
	deviceType = "5", 
	marketType = "2",
transaction.terminalNumber = this.terminalID;
request = new createTransactionRequest()
  transactionRequest = transaction
request.merchantAuthentication = new merchantAuthenticationType()
  Item = this.sessionToken,
  mobileDeviceId = this.deviceID,
  ItemElementName = ItemChoiceType.sessionToken
this.launcher.startEMVTransaction(request, SDKTransactionType.REFUND, this);



However, instead of refunding the transaction, it charged the card anew for the amount that I had specified.


Any assistance would be welcome.