<?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 Accept.js and ACH/echeck integration - E_WC_04: Please provide mandatory field to library. in Integration and Testing</title>
    <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Accept-js-and-ACH-echeck-integration-E-WC-04-Please-provide/m-p/76497#M47791</link>
    <description>&lt;P&gt;I believe I have accept.js working for credit card processing, at least that is how it appears in the java console, and I think I am close to having it working for ach/echeck, but I must be missing something.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For testing I am loading accept.js like this:&lt;/P&gt;&lt;PRE&gt;&amp;lt;!-- Authorize.NET libraries --&amp;gt;
&amp;lt;!-- SANDBOX --&amp;gt;
&amp;lt;script type="text/javascript" src="https://jstest.authorize.net/v2/Accept.js" charset="utf-8"&amp;gt;&amp;lt;/script&amp;gt; &amp;lt;!-- Integrated --&amp;gt;&lt;/PRE&gt;&lt;P&gt;and then when a user hits our form they can choose to process the transaction with either a credit card or bank account.&amp;nbsp; Transmitting to Authorize.Net is done using this code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;    function sendPaymentDataToAnet() {
                    console.log("sending data start");
        var authData = {};
        authData.clientKey = "xxxyyyyclientkeyishere";
        authData.apiLoginID = "zzzzloginIDishere";

// check for what pay method was selected card or bank and populate appropriately
 var list = document.getElementById("rbnlistPayType"); //Client ID of the radiolist
 var inputs = list.getElementsByTagName("input");
 var selected;

var secureData = {};
    secureData.authData = authData;


for (var i = 0; i &amp;lt; inputs.length; i++) {
      if (inputs[i].checked) {
          selected = inputs[i];
          break;
       }
  }
        if (selected) {
            alert(selected.value.trim());
            if (selected.value.trim() === "Bank Account") {
                alert(selected.value);
                var bankData = {};
                bankData.accountNumber = parseInt(document.getElementById('txtAcctNumber').value);
                bankData.routingNumber = parseInt(document.getElementById('txtRouteNumber').value);
                bankData.nameOnAccount = document.getElementById('txtAcctName').value;
                bankData.accountType = document.getElementById('txtAcctType').value;
                console.log(bankData.accountNumber);
                console.log(bankData.routingNumber);
                console.log(bankData.nameOnAccount);
                console.log(bankData.accountType);
                console.log("sending bank data");
                secureData.bankData = bankData;

            } else {
                alert('Card Data');
                var cardData = {};
                cardData.cardNumber = document.getElementById('tbxCardNumber').value;
                cardData.month = document.getElementById('txtExpMnth').value;
                cardData.year = document.getElementById('txtExpYr').value;
                cardData.cardCode = document.getElementById('txtCVV').value;
                console.log(cardData.cardNumber);
                console.log(cardData.month);
                console.log(cardData.year);
                console.log(cardData.cardCode);
                console.log("sending card data");
                secureData.cardData = cardData;
            }
        }

       // var secureData = {};
       // secureData.authData = authData;
       //secureData.cardData = cardData;

        //If using banking information instead of card information,
         //send the bankData object instead of the cardData object.
        
        
        
		Accept.dispatchData(secureData, responseHandler);
    }

    function responseHandler(response) {
        try {
            console.log(response.messages.resultCode);
            if (response.messages.resultCode === "Error") {
                console.log('in error handler')
                var i = 0;
                while (i &amp;lt; response.messages.message.length) {
                    console.log(
                        response.messages.message[i].code + ": " +
                        response.messages.message[i].text
                    );
                    i = i + 1;
                }
            } else
                console.log('normal processing');
                console.log(response.messages.resultCode);
        } catch (error) {
    console.log(error);
  }

}&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;When I run the code with a test credit card I get the following in my browser console log:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;09:08:20.994 sending data start&lt;BR /&gt;09:08:24.353 370000000000002&lt;BR /&gt;09:08:24.354 11&lt;BR /&gt;09:08:24.354 22&lt;BR /&gt;09:08:24.354 123&lt;BR /&gt;09:08:24.354 sending card data&lt;BR /&gt;09:08:25.868 Ok&lt;BR /&gt;09:08:25.868 normal processing&lt;BR /&gt;09:08:25.868 Ok&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When I use a bank account I get:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;09:06:45.783 sending data start&lt;BR /&gt;09:06:48.595 1234567890123456&lt;BR /&gt;09:06:48.595 273976369&lt;BR /&gt;09:06:48.595 Test Test&lt;BR /&gt;09:06:48.595 checking&lt;BR /&gt;09:06:48.596 sending bank data&lt;BR /&gt;09:06:49.597 Error&lt;BR /&gt;09:06:49.597 in error handler&lt;BR /&gt;09:06:49.597 E_WC_04: Please provide mandatory field to library.&lt;BR /&gt;09:06:49.597 Error&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm not sure what mandatory field I am supposed to send. What am I missing? Anyone have any ideas?&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 27 May 2021 14:30:22 GMT</pubDate>
    <dc:creator>emlinney</dc:creator>
    <dc:date>2021-05-27T14:30:22Z</dc:date>
    <item>
      <title>Accept.js and ACH/echeck integration - E_WC_04: Please provide mandatory field to library.</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Accept-js-and-ACH-echeck-integration-E-WC-04-Please-provide/m-p/76497#M47791</link>
      <description>&lt;P&gt;I believe I have accept.js working for credit card processing, at least that is how it appears in the java console, and I think I am close to having it working for ach/echeck, but I must be missing something.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For testing I am loading accept.js like this:&lt;/P&gt;&lt;PRE&gt;&amp;lt;!-- Authorize.NET libraries --&amp;gt;
&amp;lt;!-- SANDBOX --&amp;gt;
&amp;lt;script type="text/javascript" src="https://jstest.authorize.net/v2/Accept.js" charset="utf-8"&amp;gt;&amp;lt;/script&amp;gt; &amp;lt;!-- Integrated --&amp;gt;&lt;/PRE&gt;&lt;P&gt;and then when a user hits our form they can choose to process the transaction with either a credit card or bank account.&amp;nbsp; Transmitting to Authorize.Net is done using this code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;    function sendPaymentDataToAnet() {
                    console.log("sending data start");
        var authData = {};
        authData.clientKey = "xxxyyyyclientkeyishere";
        authData.apiLoginID = "zzzzloginIDishere";

// check for what pay method was selected card or bank and populate appropriately
 var list = document.getElementById("rbnlistPayType"); //Client ID of the radiolist
 var inputs = list.getElementsByTagName("input");
 var selected;

var secureData = {};
    secureData.authData = authData;


for (var i = 0; i &amp;lt; inputs.length; i++) {
      if (inputs[i].checked) {
          selected = inputs[i];
          break;
       }
  }
        if (selected) {
            alert(selected.value.trim());
            if (selected.value.trim() === "Bank Account") {
                alert(selected.value);
                var bankData = {};
                bankData.accountNumber = parseInt(document.getElementById('txtAcctNumber').value);
                bankData.routingNumber = parseInt(document.getElementById('txtRouteNumber').value);
                bankData.nameOnAccount = document.getElementById('txtAcctName').value;
                bankData.accountType = document.getElementById('txtAcctType').value;
                console.log(bankData.accountNumber);
                console.log(bankData.routingNumber);
                console.log(bankData.nameOnAccount);
                console.log(bankData.accountType);
                console.log("sending bank data");
                secureData.bankData = bankData;

            } else {
                alert('Card Data');
                var cardData = {};
                cardData.cardNumber = document.getElementById('tbxCardNumber').value;
                cardData.month = document.getElementById('txtExpMnth').value;
                cardData.year = document.getElementById('txtExpYr').value;
                cardData.cardCode = document.getElementById('txtCVV').value;
                console.log(cardData.cardNumber);
                console.log(cardData.month);
                console.log(cardData.year);
                console.log(cardData.cardCode);
                console.log("sending card data");
                secureData.cardData = cardData;
            }
        }

       // var secureData = {};
       // secureData.authData = authData;
       //secureData.cardData = cardData;

        //If using banking information instead of card information,
         //send the bankData object instead of the cardData object.
        
        
        
		Accept.dispatchData(secureData, responseHandler);
    }

    function responseHandler(response) {
        try {
            console.log(response.messages.resultCode);
            if (response.messages.resultCode === "Error") {
                console.log('in error handler')
                var i = 0;
                while (i &amp;lt; response.messages.message.length) {
                    console.log(
                        response.messages.message[i].code + ": " +
                        response.messages.message[i].text
                    );
                    i = i + 1;
                }
            } else
                console.log('normal processing');
                console.log(response.messages.resultCode);
        } catch (error) {
    console.log(error);
  }

}&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;When I run the code with a test credit card I get the following in my browser console log:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;09:08:20.994 sending data start&lt;BR /&gt;09:08:24.353 370000000000002&lt;BR /&gt;09:08:24.354 11&lt;BR /&gt;09:08:24.354 22&lt;BR /&gt;09:08:24.354 123&lt;BR /&gt;09:08:24.354 sending card data&lt;BR /&gt;09:08:25.868 Ok&lt;BR /&gt;09:08:25.868 normal processing&lt;BR /&gt;09:08:25.868 Ok&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When I use a bank account I get:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;09:06:45.783 sending data start&lt;BR /&gt;09:06:48.595 1234567890123456&lt;BR /&gt;09:06:48.595 273976369&lt;BR /&gt;09:06:48.595 Test Test&lt;BR /&gt;09:06:48.595 checking&lt;BR /&gt;09:06:48.596 sending bank data&lt;BR /&gt;09:06:49.597 Error&lt;BR /&gt;09:06:49.597 in error handler&lt;BR /&gt;09:06:49.597 E_WC_04: Please provide mandatory field to library.&lt;BR /&gt;09:06:49.597 Error&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm not sure what mandatory field I am supposed to send. What am I missing? Anyone have any ideas?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 27 May 2021 14:30:22 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Accept-js-and-ACH-echeck-integration-E-WC-04-Please-provide/m-p/76497#M47791</guid>
      <dc:creator>emlinney</dc:creator>
      <dc:date>2021-05-27T14:30:22Z</dc:date>
    </item>
  </channel>
</rss>

