<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Cancelling/refund a transaction using CyberSource API in .NET in cybersource APIs</title>
    <link>https://community.developer.cybersource.com/t5/cybersource-APIs/Cancelling-refund-a-transaction-using-CyberSource-API-in-NET/m-p/84978#M604</link>
    <description>&lt;P&gt;I am using the CyberSource API for Payment Gateway. I went through all the documentations that are available and came up with the following code:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;First I added the service reference to CyberSource using url &lt;A href="https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.60.wsdl" target="_blank" rel="nofollow noopener"&gt;https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.60.wsdl &lt;/A&gt;&lt;A href="https://omegle.club" target="_blank" rel="noopener"&gt;/ome&lt;/A&gt;&lt;A href="https://omegle.ws" target="_blank" rel="noopener"&gt;gle&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Then I added the following code for making a transaction and then cancelling it. But somehow, cancelling does not seem to work. I am not sure what I am doing wrong as there is very little documentation available on the net.&lt;/P&gt;&lt;PRE&gt;using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using PaymentGatewayConsole.CyberSourceTest;

namespace PaymentGatewayConsole
{
    &lt;SPAN class=""&gt;class&lt;/SPAN&gt; &lt;SPAN class=""&gt;Program&lt;/SPAN&gt;
    {
                &lt;SPAN class=""&gt;private&lt;/SPAN&gt; const &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;MERCHANT_ID&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;"removed"&lt;/SPAN&gt;;
                &lt;SPAN class=""&gt;private&lt;/SPAN&gt; const &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;TRANSACTION_KEY&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;"removed"&lt;/SPAN&gt;;
                &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;string&lt;/SPAN&gt; &lt;SPAN class=""&gt;REQUEST_TOKEN&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; string.Empty;
                &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;string&lt;/SPAN&gt; &lt;SPAN class=""&gt;REQUEST_ID&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; string.Empty;

        &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;void&lt;/SPAN&gt; &lt;SPAN class=""&gt;Main&lt;/SPAN&gt;&lt;SPAN class=""&gt;(string[] args)&lt;/SPAN&gt;
        {
            MakePayment(); 

            RequestRefund();
        }

&lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;void&lt;/SPAN&gt; &lt;SPAN class=""&gt;MakePayment&lt;/SPAN&gt;&lt;SPAN class=""&gt;()&lt;/SPAN&gt;
{
    &lt;SPAN class=""&gt;RequestMessage&lt;/SPAN&gt; &lt;SPAN class=""&gt;request&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;RequestMessage&lt;/SPAN&gt;();
    request.merchantID = MERCHANT_ID;
    &lt;SPAN class=""&gt;// replace request.merchantReferenceCode with reference number for the current transaction.&lt;/SPAN&gt;
    request.merchantReferenceCode = &lt;SPAN class=""&gt;"123"&lt;/SPAN&gt;;
    request.clientLibrary = &lt;SPAN class=""&gt;".NET WCF"&lt;/SPAN&gt;;
    request.clientLibraryVersion = Environment.Version.ToString();
    request.clientEnvironment = Environment.OSVersion.Platform + Environment.OSVersion.Version.ToString();

    request.ccAuthService = &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;CCAuthService&lt;/SPAN&gt;();
    request.ccAuthService.run = &lt;SPAN class=""&gt;"true"&lt;/SPAN&gt;;

    &lt;SPAN class=""&gt;BillTo&lt;/SPAN&gt; &lt;SPAN class=""&gt;billTo&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;BillTo&lt;/SPAN&gt;();
    billTo.firstName = &lt;SPAN class=""&gt;"John"&lt;/SPAN&gt;;
    billTo.lastName = &lt;SPAN class=""&gt;"Doe"&lt;/SPAN&gt;;
    billTo.street1 = &lt;SPAN class=""&gt;"1295 Charleston Road"&lt;/SPAN&gt;;
    billTo.city = &lt;SPAN class=""&gt;"Mountain View"&lt;/SPAN&gt;;
    billTo.state = &lt;SPAN class=""&gt;"CA"&lt;/SPAN&gt;;
    billTo.postalCode = &lt;SPAN class=""&gt;"94043"&lt;/SPAN&gt;;
    billTo.country = &lt;SPAN class=""&gt;"US"&lt;/SPAN&gt;;
    billTo.email = &lt;SPAN class=""&gt;"null@cybersource.com"&lt;/SPAN&gt;;
    billTo.ipAddress = &lt;SPAN class=""&gt;"10.7.111.111"&lt;/SPAN&gt;;
    request.billTo = billTo;

    &lt;SPAN class=""&gt;Card&lt;/SPAN&gt; &lt;SPAN class=""&gt;card&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;Card&lt;/SPAN&gt;();
    card.accountNumber = &lt;SPAN class=""&gt;"4111111111111111"&lt;/SPAN&gt;;
    card.expirationMonth = &lt;SPAN class=""&gt;"12"&lt;/SPAN&gt;;
    card.expirationYear = &lt;SPAN class=""&gt;"2020"&lt;/SPAN&gt;;
    card.cardType = &lt;SPAN class=""&gt;"Visa"&lt;/SPAN&gt;;
    request.card = card;

    &lt;SPAN class=""&gt;PurchaseTotals&lt;/SPAN&gt; &lt;SPAN class=""&gt;purchaseTotals&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;PurchaseTotals&lt;/SPAN&gt;();
    purchaseTotals.currency = &lt;SPAN class=""&gt;"USD"&lt;/SPAN&gt;;
    request.purchaseTotals = purchaseTotals;

    request.item = &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;Item&lt;/SPAN&gt;[&lt;SPAN class=""&gt;1&lt;/SPAN&gt;];
    &lt;SPAN class=""&gt;Item&lt;/SPAN&gt; &lt;SPAN class=""&gt;item&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;Item&lt;/SPAN&gt;();
    item.id = &lt;SPAN class=""&gt;"0"&lt;/SPAN&gt;;
    item.unitPrice = &lt;SPAN class=""&gt;"49.00"&lt;/SPAN&gt;;
    request.item[&lt;SPAN class=""&gt;0&lt;/SPAN&gt;] = item;

    &lt;SPAN class=""&gt;try&lt;/SPAN&gt;
    {
        &lt;SPAN class=""&gt;TransactionProcessorClient&lt;/SPAN&gt; &lt;SPAN class=""&gt;proc&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;TransactionProcessorClient&lt;/SPAN&gt;();

        proc.ChannelFactory.Credentials.UserName.UserName = request.merchantID;
        proc.ChannelFactory.Credentials.UserName.Password = TRANSACTION_KEY;

        &lt;SPAN class=""&gt;ReplyMessage&lt;/SPAN&gt; &lt;SPAN class=""&gt;reply&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; proc.runTransaction(request);

        REQUEST_ID = reply.requestID;
        REQUEST_TOKEN = reply.requestToken;

        Console.WriteLine(&lt;SPAN class=""&gt;"decision = "&lt;/SPAN&gt; + reply.decision);
        Console.WriteLine(&lt;SPAN class=""&gt;"reasonCode = "&lt;/SPAN&gt; + reply.reasonCode);
        Console.WriteLine(&lt;SPAN class=""&gt;"requestID = "&lt;/SPAN&gt; + reply.requestID);
        Console.WriteLine(&lt;SPAN class=""&gt;"requestToken = "&lt;/SPAN&gt; + reply.requestToken);
        Console.WriteLine(&lt;SPAN class=""&gt;"ccAuthReply.reasonCode = "&lt;/SPAN&gt; + reply.ccAuthReply.reasonCode);
    }
    &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (TimeoutException e)
    {
        Console.WriteLine(&lt;SPAN class=""&gt;"TimeoutException: "&lt;/SPAN&gt; + e.Message + &lt;SPAN class=""&gt;"\n"&lt;/SPAN&gt; + e.StackTrace);
    }
    &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (FaultException e)
    {
        Console.WriteLine(&lt;SPAN class=""&gt;"FaultException: "&lt;/SPAN&gt; + e.Message + &lt;SPAN class=""&gt;"\n"&lt;/SPAN&gt; + e.StackTrace);
    }
    &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (CommunicationException e)
    {
        Console.WriteLine(&lt;SPAN class=""&gt;"CommunicationException: "&lt;/SPAN&gt; + e.Message + &lt;SPAN class=""&gt;"\n"&lt;/SPAN&gt; + e.StackTrace);
    }
    Console.ReadLine();
}

&lt;SPAN class=""&gt;/// &amp;lt;summary&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;/// Method for requesting refund &lt;/SPAN&gt;
&lt;SPAN class=""&gt;/// &amp;lt;/summary&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;void&lt;/SPAN&gt; &lt;SPAN class=""&gt;RequestRefund&lt;/SPAN&gt;&lt;SPAN class=""&gt;()&lt;/SPAN&gt;
{
    &lt;SPAN class=""&gt;RequestMessage&lt;/SPAN&gt; &lt;SPAN class=""&gt;request&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;RequestMessage&lt;/SPAN&gt;();
    request.merchantID = MERCHANT_ID;
    request.merchantReferenceCode = &lt;SPAN class=""&gt;"123"&lt;/SPAN&gt;;
    request.clientLibrary = &lt;SPAN class=""&gt;".NET WCF"&lt;/SPAN&gt;;
    request.clientLibraryVersion = Environment.Version.ToString();
    request.clientEnvironment = Environment.OSVersion.Platform + Environment.OSVersion.Version.ToString();

    request.ccAuthService = &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;CCAuthService&lt;/SPAN&gt;();
    request.ccAuthService.run = &lt;SPAN class=""&gt;"true"&lt;/SPAN&gt;;

    &lt;SPAN class=""&gt;//request.ccAuthReversalService = new CCAuthReversalService();&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;//request.ccAuthReversalService.run = "true";&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;//request.ccAuthReversalService.authRequestID = REQUEST_ID;&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;//request.orderRequestToken = REQUEST_TOKEN;&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;//request.purchaseTotals = new PurchaseTotals();&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;//request.purchaseTotals.currency = "USD";&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;//request.purchaseTotals.grandTotalAmount = "10";&lt;/SPAN&gt;

    &lt;SPAN class=""&gt;VoidService&lt;/SPAN&gt; &lt;SPAN class=""&gt;reqVoid&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;VoidService&lt;/SPAN&gt;();
    reqVoid.voidRequestID = REQUEST_ID;
    reqVoid.voidRequestToken = REQUEST_TOKEN;
    reqVoid.run = &lt;SPAN class=""&gt;"true"&lt;/SPAN&gt;;
    request.voidService = reqVoid;

    &lt;SPAN class=""&gt;try&lt;/SPAN&gt;
    {
        &lt;SPAN class=""&gt;TransactionProcessorClient&lt;/SPAN&gt; &lt;SPAN class=""&gt;proc&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;TransactionProcessorClient&lt;/SPAN&gt;();
        proc.ChannelFactory.Credentials.UserName.UserName = request.merchantID;
        proc.ChannelFactory.Credentials.UserName.Password = TRANSACTION_KEY;

        &lt;SPAN class=""&gt;ReplyMessage&lt;/SPAN&gt; &lt;SPAN class=""&gt;reply&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; proc.runTransaction(request);

        Console.WriteLine(&lt;SPAN class=""&gt;"decision = "&lt;/SPAN&gt; + reply.decision);
        Console.WriteLine(&lt;SPAN class=""&gt;"reasonCode = "&lt;/SPAN&gt; + reply.reasonCode);
        Console.WriteLine(&lt;SPAN class=""&gt;"requestID = "&lt;/SPAN&gt; + reply.requestID);
        Console.WriteLine(&lt;SPAN class=""&gt;"requestToken = "&lt;/SPAN&gt; + reply.requestToken);

    }
    &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (TimeoutException e)
    {
        Console.WriteLine(&lt;SPAN class=""&gt;"TimeoutException: "&lt;/SPAN&gt; + e.Message + &lt;SPAN class=""&gt;"\n"&lt;/SPAN&gt; + e.StackTrace);
    }
    &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (FaultException e)
    {
        Console.WriteLine(&lt;SPAN class=""&gt;"FaultException: "&lt;/SPAN&gt; + e.Message + &lt;SPAN class=""&gt;"\n"&lt;/SPAN&gt; + e.StackTrace);
    }
    &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (CommunicationException e)
    {
        Console.WriteLine(&lt;SPAN class=""&gt;"CommunicationException: "&lt;/SPAN&gt; + e.Message + &lt;SPAN class=""&gt;"\n"&lt;/SPAN&gt; + e.StackTrace);

    }
    Console.ReadLine();
        }
    }
}&lt;/PRE&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;In method request refund, i am actually getting the response as Request.ReasonCode = 102 which means an error. Ideally it should be 100. 102 means "One or more fields in the request contains invalid data.".&lt;/P&gt;&lt;P&gt;Help is deeply appreciated...&lt;/P&gt;&lt;P&gt;Please check that configuration and authorization is ok.&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.johnnybhome.com/forsale/SB_API.pdf" target="_blank" rel="noopener"&gt;http://www.johnnybhome.com/forsale/SB_API.pdf &lt;/A&gt;&lt;A href="https://voojio.com/chatroom/omegle" target="_blank" rel="noopener"&gt;/voojio&lt;/A&gt;&lt;A href="https://shagle.download" target="_blank" rel="noopener"&gt;shagle&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.rockinridge.com/media/resources/resources_1.pdf" target="_blank" rel="noopener"&gt;http://www.rockinridge.com/media/resources/resources_1.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.cybersource.com/support_center/implementation/downloads/" target="_blank" rel="noopener"&gt;http://www.cybersource.com/support_center/implementation/downloads/&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 21 Nov 2022 12:13:53 GMT</pubDate>
    <dc:creator>AnatalGrowina</dc:creator>
    <dc:date>2022-11-21T12:13:53Z</dc:date>
    <item>
      <title>Cancelling/refund a transaction using CyberSource API in .NET</title>
      <link>https://community.developer.cybersource.com/t5/cybersource-APIs/Cancelling-refund-a-transaction-using-CyberSource-API-in-NET/m-p/84978#M604</link>
      <description>&lt;P&gt;I am using the CyberSource API for Payment Gateway. I went through all the documentations that are available and came up with the following code:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;First I added the service reference to CyberSource using url &lt;A href="https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.60.wsdl" target="_blank" rel="nofollow noopener"&gt;https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.60.wsdl &lt;/A&gt;&lt;A href="https://omegle.club" target="_blank" rel="noopener"&gt;/ome&lt;/A&gt;&lt;A href="https://omegle.ws" target="_blank" rel="noopener"&gt;gle&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Then I added the following code for making a transaction and then cancelling it. But somehow, cancelling does not seem to work. I am not sure what I am doing wrong as there is very little documentation available on the net.&lt;/P&gt;&lt;PRE&gt;using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using PaymentGatewayConsole.CyberSourceTest;

namespace PaymentGatewayConsole
{
    &lt;SPAN class=""&gt;class&lt;/SPAN&gt; &lt;SPAN class=""&gt;Program&lt;/SPAN&gt;
    {
                &lt;SPAN class=""&gt;private&lt;/SPAN&gt; const &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;MERCHANT_ID&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;"removed"&lt;/SPAN&gt;;
                &lt;SPAN class=""&gt;private&lt;/SPAN&gt; const &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;TRANSACTION_KEY&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;"removed"&lt;/SPAN&gt;;
                &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;string&lt;/SPAN&gt; &lt;SPAN class=""&gt;REQUEST_TOKEN&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; string.Empty;
                &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;string&lt;/SPAN&gt; &lt;SPAN class=""&gt;REQUEST_ID&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; string.Empty;

        &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;void&lt;/SPAN&gt; &lt;SPAN class=""&gt;Main&lt;/SPAN&gt;&lt;SPAN class=""&gt;(string[] args)&lt;/SPAN&gt;
        {
            MakePayment(); 

            RequestRefund();
        }

&lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;void&lt;/SPAN&gt; &lt;SPAN class=""&gt;MakePayment&lt;/SPAN&gt;&lt;SPAN class=""&gt;()&lt;/SPAN&gt;
{
    &lt;SPAN class=""&gt;RequestMessage&lt;/SPAN&gt; &lt;SPAN class=""&gt;request&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;RequestMessage&lt;/SPAN&gt;();
    request.merchantID = MERCHANT_ID;
    &lt;SPAN class=""&gt;// replace request.merchantReferenceCode with reference number for the current transaction.&lt;/SPAN&gt;
    request.merchantReferenceCode = &lt;SPAN class=""&gt;"123"&lt;/SPAN&gt;;
    request.clientLibrary = &lt;SPAN class=""&gt;".NET WCF"&lt;/SPAN&gt;;
    request.clientLibraryVersion = Environment.Version.ToString();
    request.clientEnvironment = Environment.OSVersion.Platform + Environment.OSVersion.Version.ToString();

    request.ccAuthService = &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;CCAuthService&lt;/SPAN&gt;();
    request.ccAuthService.run = &lt;SPAN class=""&gt;"true"&lt;/SPAN&gt;;

    &lt;SPAN class=""&gt;BillTo&lt;/SPAN&gt; &lt;SPAN class=""&gt;billTo&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;BillTo&lt;/SPAN&gt;();
    billTo.firstName = &lt;SPAN class=""&gt;"John"&lt;/SPAN&gt;;
    billTo.lastName = &lt;SPAN class=""&gt;"Doe"&lt;/SPAN&gt;;
    billTo.street1 = &lt;SPAN class=""&gt;"1295 Charleston Road"&lt;/SPAN&gt;;
    billTo.city = &lt;SPAN class=""&gt;"Mountain View"&lt;/SPAN&gt;;
    billTo.state = &lt;SPAN class=""&gt;"CA"&lt;/SPAN&gt;;
    billTo.postalCode = &lt;SPAN class=""&gt;"94043"&lt;/SPAN&gt;;
    billTo.country = &lt;SPAN class=""&gt;"US"&lt;/SPAN&gt;;
    billTo.email = &lt;SPAN class=""&gt;"null@cybersource.com"&lt;/SPAN&gt;;
    billTo.ipAddress = &lt;SPAN class=""&gt;"10.7.111.111"&lt;/SPAN&gt;;
    request.billTo = billTo;

    &lt;SPAN class=""&gt;Card&lt;/SPAN&gt; &lt;SPAN class=""&gt;card&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;Card&lt;/SPAN&gt;();
    card.accountNumber = &lt;SPAN class=""&gt;"4111111111111111"&lt;/SPAN&gt;;
    card.expirationMonth = &lt;SPAN class=""&gt;"12"&lt;/SPAN&gt;;
    card.expirationYear = &lt;SPAN class=""&gt;"2020"&lt;/SPAN&gt;;
    card.cardType = &lt;SPAN class=""&gt;"Visa"&lt;/SPAN&gt;;
    request.card = card;

    &lt;SPAN class=""&gt;PurchaseTotals&lt;/SPAN&gt; &lt;SPAN class=""&gt;purchaseTotals&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;PurchaseTotals&lt;/SPAN&gt;();
    purchaseTotals.currency = &lt;SPAN class=""&gt;"USD"&lt;/SPAN&gt;;
    request.purchaseTotals = purchaseTotals;

    request.item = &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;Item&lt;/SPAN&gt;[&lt;SPAN class=""&gt;1&lt;/SPAN&gt;];
    &lt;SPAN class=""&gt;Item&lt;/SPAN&gt; &lt;SPAN class=""&gt;item&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;Item&lt;/SPAN&gt;();
    item.id = &lt;SPAN class=""&gt;"0"&lt;/SPAN&gt;;
    item.unitPrice = &lt;SPAN class=""&gt;"49.00"&lt;/SPAN&gt;;
    request.item[&lt;SPAN class=""&gt;0&lt;/SPAN&gt;] = item;

    &lt;SPAN class=""&gt;try&lt;/SPAN&gt;
    {
        &lt;SPAN class=""&gt;TransactionProcessorClient&lt;/SPAN&gt; &lt;SPAN class=""&gt;proc&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;TransactionProcessorClient&lt;/SPAN&gt;();

        proc.ChannelFactory.Credentials.UserName.UserName = request.merchantID;
        proc.ChannelFactory.Credentials.UserName.Password = TRANSACTION_KEY;

        &lt;SPAN class=""&gt;ReplyMessage&lt;/SPAN&gt; &lt;SPAN class=""&gt;reply&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; proc.runTransaction(request);

        REQUEST_ID = reply.requestID;
        REQUEST_TOKEN = reply.requestToken;

        Console.WriteLine(&lt;SPAN class=""&gt;"decision = "&lt;/SPAN&gt; + reply.decision);
        Console.WriteLine(&lt;SPAN class=""&gt;"reasonCode = "&lt;/SPAN&gt; + reply.reasonCode);
        Console.WriteLine(&lt;SPAN class=""&gt;"requestID = "&lt;/SPAN&gt; + reply.requestID);
        Console.WriteLine(&lt;SPAN class=""&gt;"requestToken = "&lt;/SPAN&gt; + reply.requestToken);
        Console.WriteLine(&lt;SPAN class=""&gt;"ccAuthReply.reasonCode = "&lt;/SPAN&gt; + reply.ccAuthReply.reasonCode);
    }
    &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (TimeoutException e)
    {
        Console.WriteLine(&lt;SPAN class=""&gt;"TimeoutException: "&lt;/SPAN&gt; + e.Message + &lt;SPAN class=""&gt;"\n"&lt;/SPAN&gt; + e.StackTrace);
    }
    &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (FaultException e)
    {
        Console.WriteLine(&lt;SPAN class=""&gt;"FaultException: "&lt;/SPAN&gt; + e.Message + &lt;SPAN class=""&gt;"\n"&lt;/SPAN&gt; + e.StackTrace);
    }
    &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (CommunicationException e)
    {
        Console.WriteLine(&lt;SPAN class=""&gt;"CommunicationException: "&lt;/SPAN&gt; + e.Message + &lt;SPAN class=""&gt;"\n"&lt;/SPAN&gt; + e.StackTrace);
    }
    Console.ReadLine();
}

&lt;SPAN class=""&gt;/// &amp;lt;summary&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;/// Method for requesting refund &lt;/SPAN&gt;
&lt;SPAN class=""&gt;/// &amp;lt;/summary&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;void&lt;/SPAN&gt; &lt;SPAN class=""&gt;RequestRefund&lt;/SPAN&gt;&lt;SPAN class=""&gt;()&lt;/SPAN&gt;
{
    &lt;SPAN class=""&gt;RequestMessage&lt;/SPAN&gt; &lt;SPAN class=""&gt;request&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;RequestMessage&lt;/SPAN&gt;();
    request.merchantID = MERCHANT_ID;
    request.merchantReferenceCode = &lt;SPAN class=""&gt;"123"&lt;/SPAN&gt;;
    request.clientLibrary = &lt;SPAN class=""&gt;".NET WCF"&lt;/SPAN&gt;;
    request.clientLibraryVersion = Environment.Version.ToString();
    request.clientEnvironment = Environment.OSVersion.Platform + Environment.OSVersion.Version.ToString();

    request.ccAuthService = &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;CCAuthService&lt;/SPAN&gt;();
    request.ccAuthService.run = &lt;SPAN class=""&gt;"true"&lt;/SPAN&gt;;

    &lt;SPAN class=""&gt;//request.ccAuthReversalService = new CCAuthReversalService();&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;//request.ccAuthReversalService.run = "true";&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;//request.ccAuthReversalService.authRequestID = REQUEST_ID;&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;//request.orderRequestToken = REQUEST_TOKEN;&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;//request.purchaseTotals = new PurchaseTotals();&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;//request.purchaseTotals.currency = "USD";&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;//request.purchaseTotals.grandTotalAmount = "10";&lt;/SPAN&gt;

    &lt;SPAN class=""&gt;VoidService&lt;/SPAN&gt; &lt;SPAN class=""&gt;reqVoid&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;VoidService&lt;/SPAN&gt;();
    reqVoid.voidRequestID = REQUEST_ID;
    reqVoid.voidRequestToken = REQUEST_TOKEN;
    reqVoid.run = &lt;SPAN class=""&gt;"true"&lt;/SPAN&gt;;
    request.voidService = reqVoid;

    &lt;SPAN class=""&gt;try&lt;/SPAN&gt;
    {
        &lt;SPAN class=""&gt;TransactionProcessorClient&lt;/SPAN&gt; &lt;SPAN class=""&gt;proc&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;TransactionProcessorClient&lt;/SPAN&gt;();
        proc.ChannelFactory.Credentials.UserName.UserName = request.merchantID;
        proc.ChannelFactory.Credentials.UserName.Password = TRANSACTION_KEY;

        &lt;SPAN class=""&gt;ReplyMessage&lt;/SPAN&gt; &lt;SPAN class=""&gt;reply&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; proc.runTransaction(request);

        Console.WriteLine(&lt;SPAN class=""&gt;"decision = "&lt;/SPAN&gt; + reply.decision);
        Console.WriteLine(&lt;SPAN class=""&gt;"reasonCode = "&lt;/SPAN&gt; + reply.reasonCode);
        Console.WriteLine(&lt;SPAN class=""&gt;"requestID = "&lt;/SPAN&gt; + reply.requestID);
        Console.WriteLine(&lt;SPAN class=""&gt;"requestToken = "&lt;/SPAN&gt; + reply.requestToken);

    }
    &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (TimeoutException e)
    {
        Console.WriteLine(&lt;SPAN class=""&gt;"TimeoutException: "&lt;/SPAN&gt; + e.Message + &lt;SPAN class=""&gt;"\n"&lt;/SPAN&gt; + e.StackTrace);
    }
    &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (FaultException e)
    {
        Console.WriteLine(&lt;SPAN class=""&gt;"FaultException: "&lt;/SPAN&gt; + e.Message + &lt;SPAN class=""&gt;"\n"&lt;/SPAN&gt; + e.StackTrace);
    }
    &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (CommunicationException e)
    {
        Console.WriteLine(&lt;SPAN class=""&gt;"CommunicationException: "&lt;/SPAN&gt; + e.Message + &lt;SPAN class=""&gt;"\n"&lt;/SPAN&gt; + e.StackTrace);

    }
    Console.ReadLine();
        }
    }
}&lt;/PRE&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;In method request refund, i am actually getting the response as Request.ReasonCode = 102 which means an error. Ideally it should be 100. 102 means "One or more fields in the request contains invalid data.".&lt;/P&gt;&lt;P&gt;Help is deeply appreciated...&lt;/P&gt;&lt;P&gt;Please check that configuration and authorization is ok.&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.johnnybhome.com/forsale/SB_API.pdf" target="_blank" rel="noopener"&gt;http://www.johnnybhome.com/forsale/SB_API.pdf &lt;/A&gt;&lt;A href="https://voojio.com/chatroom/omegle" target="_blank" rel="noopener"&gt;/voojio&lt;/A&gt;&lt;A href="https://shagle.download" target="_blank" rel="noopener"&gt;shagle&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.rockinridge.com/media/resources/resources_1.pdf" target="_blank" rel="noopener"&gt;http://www.rockinridge.com/media/resources/resources_1.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.cybersource.com/support_center/implementation/downloads/" target="_blank" rel="noopener"&gt;http://www.cybersource.com/support_center/implementation/downloads/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 21 Nov 2022 12:13:53 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/cybersource-APIs/Cancelling-refund-a-transaction-using-CyberSource-API-in-NET/m-p/84978#M604</guid>
      <dc:creator>AnatalGrowina</dc:creator>
      <dc:date>2022-11-21T12:13:53Z</dc:date>
    </item>
  </channel>
</rss>

