We are using Sage 100 Premium ERP 2014 (Version 5.10.1.0) with eBusinessWebServices (eBWS). We are setting up an ordering website that will process credit cards. The goal is to tie this all together for collecting new credit cards, converting them to a GUID, allowing the customer to optionally 'save the GUID for later', and finally associating the GUID with a Sales Order so it gets charged when the order is invoiced.
Right now the website calls the Sage Vault -> Insert_Credit_Card_Method and gets back a CreditCardGUID. In Sage 100 we have a VISA payment type setup, and the correct Merchant ID and Merchant Key are setup. That same M_ID and M_Key are used to call the Sage Vault webservices. Endpoint: https://gateway.sagepayments.net/web_services/wsVault/wsVault.asmx?WSDL
The problem is, when we use the Sage Vault CreditCardGUID in the eBWS->CreateSalesOrder method, it gives this error:
Could not set SO_SalesOrderPayment_bus column CreditCardGUID$: xyz is not on file.
That seems to be because that CreditCardGUID does not exist in AR_CustomerCreditCard for that CustomerNo.
Not sure if this is related, but according to these release notes, that error was patched in 5.00.5.0? Note we are running 5.10.1.0.
http://www.mbabsi.com/support-blog/support-blog/sage-100-erp-2013-product-update-5-5-00-5-0/page-12
In troubleshooting, we found manually INSERTing a row into the AR_CustomerCreditCard with the CreditCardGUID generated by Sage Vault allows the eBWS->CreateSalesOrder method to work. However I'm skeptical that the GUID will work later on when we go to invoice and actually charge the card.
The good news is eBWS->CreateSalesOrder works when paying by terms or an existing card. It is only with new cards we have the problem.
Questions:
Are CreditCardGUIDs from Sage Vault usable in our install of Sage 100 ERP?
Should we use the endpoint in eBWS called AddCreditCardToVault instead of the Sage Vault?
By the way, using a CreditCardGUIDs generated from eBW->AddCreditCardToVault gives the exact same error when calling CreateSalesOrder: "CreditCardGUID$: xyz is not on file."
Is it OK to insert directly into the AR_CustomerCreditCard table? Will the CreditCardGUID generated by Sage Vault work when the order is invoiced?
What is the purpose of the eBWS CreateSaleOrder field Payments->SaveCreditCard? Setting this to Y, 1 doesn't seem to have an impact. It would be nice if the web service would automatically create the new AR_CustomerCreditCard record, at least that is what I'd expect it to do based on the method name.