Taxes of one kind or another are a burden for nearly all of us. The same holds true for businesses that have to collect and pay sales taxes in the states in which they operate. Businesses running on IBM i have typically tried to manage the sales tax burden with either expensive pre-built software packages or in-house custom systems that need constant maintenance to account for ever-changing sales tax rates in multiple jurisdictions. Cloud computing and web services now enable a new solution called TaxCloud – a free cloud based service that uses web services technology to provide a platform for calculating, recording and even paying sales taxes to applicable jurisdictions. By using a cloud based service, the burden of system maintenance is completely removed — freeing users to focus on other aspects of running a business.
When “Free” really is free! How can it be free, you ask?
TaxCloud is free of charge because the owners of the service are able to collect a small commission from certain states when you use TaxCloud to pay your sales tax obligations. Using TaxCloud to actually pay your sales tax obligations is optional (although you may find it very convenient to do so) but when you do, the commissions earned from those payments are what actually pays the bills for the owners of the TaxCloud service. Sort of a win-win – don’t you think?
Registration and API Credentials
So how does TaxCloud work? Well, as previously mentioned, TaxCloud is implemented as a web service – but it also includes an easy-to-use, web based admin dashboard to configure various settings, run reports, etc. The TaxCloud web service is designed specifically to tackle the calculation and processing of state and local sales taxes. To get started using TaxCloud, you simply visit http://taxcloud.net and click the “Register now” button. Once you are registered, you have access to the aforementioned TaxCloud admin dashboard that lets you customize your use of the web service to your company’s needs. To get started recording your company’s settings, you need to input the “Locations” in which you operate and have a sales tax obligation or “sales tax nexus”. You also need to input the “Websites” from which you need to calculate sales tax.
Don’t have a website? No worries, it’s really just a question of terminology — just create a placeholder website name to represent your sales tax calculation project, your company, etc. You can have as many Locations and Websites as you need, so if you need to segment your sales tax collection by division or some other method, the proper use of the Locations and Websites entries should allow you to do so.
SOAP Web Service and WSDL File (Web Services Description Language)
Once you have your API credentials, you are ready to send transactions to TaxCloud via web service. This is where RPG-XML Suite enters the picture. Using RPG-XML Suite, an RPG program can compose the needed XML request and then parse the XML response that comes back from the TaxCloud service. To assist us with knowing how those XML transactions need to be structured, the TaxCloud folks have provided a WSDL file for the SOAP based web service and its various operations here: https://api.taxcloud.net/1.0/TaxCloud.asmx?wsdl
Available SOAP Web Service Operations
The WSDL file defines the various “operations” supported by the SOAP version of the TaxCloud web service. If you have ever had any experience with credit card transactions, then you will feel right at home with the design of the TaxCloud operations. The design was implemented to closely mirror the various phases of credit card transactions, such as “Authorize” and “Capture”. By mirroring the processing of credit card transactions, the web service makes it easy for developers to know where in their code to place the web service calls for TaxCloud – usually the same place in the code that the equivalent calls are made to the credit card processing gateway. This does not mean that TaxCloud is in any way tied to credit card processing. But, the design concept for the service was to make it similar since the majority of the incoming transactions would be from eCommerce websites that would perform credit card transactions at the same time as sales taxes would be need to calculated and recorded.
The very first operation to be called is the Lookup operation. The Lookup operation is where the initial sales tax calculation takes place. The request data for this operation will contain all the product id’s that are to be taxed and also a “taxability” code that TaxCloud uses to determine the tax rate for each type of product. Also included are the originating and destination addresses and an identifier for the “cart” which contains the collection of products. Again, you don’t have to have an actual “shopping cart” to use TaxCloud – you can just use an order identifier or some other identifier that uniquely designates the group of products in a given transaction.
At the point of processing a credit card Authorize transaction, you should also process an Authorize operation for the TaxCloud web service. Authorized transactions will not appear on reports detailing your tax liability, since no liability is recorded until the Capture operation is processed.
At the point of processing a Capture transaction via your credit card gateway, you should also process a Capture operation for the TaxCloud web service. Upon Capture, the transaction will be included in the reports for the applicable time period and jurisdiction. The Capture operation also contains the date in effect for the calculation of the tax amount and for the proper reporting period.
Authorize with Capture Operation
This is simply the combination of both an Authorize and the Capture operation in a single transaction, much like a typical credit card transaction that combines these two operations.
If a product is returned or cancelled after a Capture operation was already completed, the Returned operation will allow the previous Capture operation to be reversed and all reports will reflect this reversal of the applicable sales tax.
Setting up the taxability codes for your products is a very important step towards getting accurate tax calculations. Use the admin dashboard of TaxCloud to lookup the appropriate codes for your products. Some of your products may be exempt from taxes in some states, but not in others. Or perhaps food and medicine has one rate, while everything else has another rate. Make sure you determine the correct taxability code for each of your products and store that value in your product master. Then reference this code on the Lookup operation of the TaxCloud web service.
Tax Report and Filings
TaxCloud provides access to a series of reports and can also file individual state tax returns for certain states. Reports can also be downloaded in CSV format so that you can analyze the data further in Excel or import transactions into an accounting software package.
Ready to explore using your IBM i data with Tax Cloud?
Perhaps you can see advantages to your organization using the TaxCloud web service but you need help understanding how to integrate your RPG-based applications. RPG-XML Suite provides all the technology needed to access the TaxCloud web service and does so from an easy-to-use API that an experienced RPG developer can use to integrate with existing applications. You can even download a free trial of RPG-XML Suite today to test drive the integration process before you buy.
Or, if you feel you need one of our experienced developers to kick-start your TaxCloud integration project, we can develop a free proof-of-concept to get you started. We can go even further by bundling professional services into a customized package to provide whatever level of support you feel you need to get completely across the finish line.
Let me know what you think about TaxCloud’s approach!
Shoot me a note at email@example.com with any thoughts or questions.