I want to thank Joseph F Bigane, III, CPA, MST for the following article on the resent supreme court rules on sales taxes.   Joe is one of the most knowledgeable person on this topic and he wrote this article for particularly for small businesses.


On June 21, 2018 the world of collecting sales tax in jurisdictions all over the United States changed forever.  The US Supreme Court held that it was no longer required that a seller must have a physical presence in a jurisdiction in order for that state (or subdivision thereof) to impose an obligation on sellers to collect the jurisdiction’s sales tax.  The dust has not yet settled and many jurisdictions are still determining how and when they will impose this duty.  Further, different states have different taxes, which for this article will all be referred to as “sales tax.”  Finally, the rules of South Dakota, the state in the Wayfair case, established a floor of $100,000 or more than 199 transactions in the prior year as the minimum activity in the state in order for the duty to collect to be imposed.  Other states may have different minimums but it is anticipated that they will not be smaller.

Having to collect a State’s sales tax is referred to as having “nexus.”  This is not a new term.  Before the Wayfair decision, nexus was achieved by having some form of physical presence in the State.  Wayfair did not change that; it merely expanded it to include the concept of economic nexus – doing enough business in the state over the internet or by other, non-physical means to exceed a determined floor.  If the business had physical presence nexus before this decision then it has been exposed to the obligation to collect sales tax for a time period predating Wayfair.  Such a situation should be discussed with a professional that can help you “get squared away.”

Remote sellers who now have nexus in states outside their home states are going to have to consider the following issues:

  1. determine how much sales dollars was earned in each state in your last fiscal year and

your current fiscal year

  • sales are made to the location to which physical goods are shipped, not

to where they are billed

  • sales of services have special rules, but generally will be sourced to where

they are received or, if point of receipt unknown, where they are billed

  • revenue subject to sales tax will vary by state. It may or may not include:
  1. freight and shipping
  2. installation
  • training
  1. warranties
  2. determine if each state taxes your particular goods and/or services are the

goods/services that you sell exempt by state law

  • are the goods/services that you sell exempt to some or all of your buyers
  • if your buyers are exempt, you will need to obtain from them the appropriate

state exemption certificate

  1. do you sell by drop shipment
  • these sales will now be counted to determine if you exceed a state’s

floor and either tax or an exemption certificate will need to be collected


Unfortunately, the states do not at this time have a common set of laws stating what is and what is not taxable or exempt.  So, sales into one state may be taxed while sales into a different state may not.  Some states tax most services (SD, NM) while other states have a list of “enumerated services” which they tax.  Here, too, there may be wide differences in the definition of what a service does or does not entail.  If you sell or license software you will need to determine if the state considers it canned or custom or both.


While there is no fifty state determination at this point, nor is there any serious indication that the federal Congress will intervene to provide a national solution, there are many states which are setting up their rules to be applicable as of October 1, 2018 or January 1, 2019.  So, you do not have the luxury of putting this issue off.  Collecting sales tax is an administrative burden but the money is collected from your customer and does not come out of your bottom line.  If you fail to properly collect and remit taxes, and the state(s) ultimately find and audit you, then the money (tax, penalties and interest) will come out of your bottom line.


So now is the time to talk to your professionals and determine in what states you will have to register as a tax collector and how you will determine the amount of tax you will need to collect for each transaction.  While a certain number of states are members of the Streamlined Sales Tax Agreement and can provide a simplified method for registering and filing, it may still be necessary for you to invest in sales tax software to determine the correct amount to charge for each transaction.


TPAC 2018

This past February was the Third-Party Advantage Conference (TPAC) held in Vancouver, British Colombia, Canada. I had the opportunity to visit this beautiful city and participate in the conference that brings together a great group of products and people on the Sage 300 ERP platform. Sage Business Partners, Development Partners, and customers from all over the globe were in attendance to discover what products are available on the market to enhance an end user’s Sage 300 experience.

I was in Vancouver the week before TPAC to attend a pre-conference training session for AutoSimply, one of the featured third-party exhibitors at the conference. The two-day training session discussed how to utilize the Manufacturing Order Module (version 2018) within Sage 300. The Manufacturing Order Module allows end users to create Bills Of Material (BOMs), manufacturing order entries, returns, and receipts. Other modules that were discussed, which can be added to Sage 300 in addition to the Manufacturing Order Module, includes Manufacturing Lots for lot control operations; Production Planning for budgeting and forecasting; and Shop Floor Control for tracking manufacturing operations such as runtime and operation downtime. AutoSimply also discussed their Inventory Barcode Manufacturing product which allows end users to scan compatible barcodes and automatically upload the information to their Sage 300 ERP. End users can also create Purchase Order (PO) Receipts, PO Returns, Order Entry (OE) Shipments and OE Returns from their handheld barcode scanning device.

At the end of the two-day AutoSimply training session, I was awarded a Certificate of Completion from AutoSimply.

I also attended a conference session regarding new features coming to the next version of Sage Alerts & Workflow led by Donald Farber of Vineyardsoft, a developer of the product. The next version of Sage Alerts & Workflow will be web based for convenient user access along with modern web screen designs.

Sage Alerts & Workflow is a query reporting software that notifies end users of events that users without Sage Alerts could only “wish they had known sooner.” These events include lists of: customers with open invoices due over ‘x’ days ago; customers whose credit cards expire next month; open sales orders that have not been shipped yet and are past the expected ship date; orders that have been shipped to the customer but have not been invoiced, etc. These reports can be set to automatically run on certain time intervals such as “Daily at 9am” or “Every 4th Friday of the Month,” and sent via email, text, or fax to persons of different departments and management levels internally and externally according to a business’ needs. Sage Alerts & Workflow is a great tool for users to keep track of their business from all angles.

Overall, TPAC 2018 was a successful and enlightening event to attend, to forge new relationships and learn about different products that operate alongside Sage 300. I look forward to attending again next year!

Sage 300 Over Applied Cash Receipts

Sage 300 allows a user to apply a payment to invoices for more than the amount of the payment.  A payment that is not fully applied, displays as a negative value on the A/R Aged Trial Balance.  A payment that is over applied, displays as a positive value.  Typically, this would not be an issue, however, the apply feature for credits and the entry of credit memos can only be used against invoices, and not against the over applied payments.

If the over applied payment is from a check receipt, the check can be reversed in Common Services – Bank Transactions – Reverse Transactions, but if the payment was received via credit card, through Sage Payment Solutions, that transaction cannot be reversed.

If the customers balance is correct, no action needs to be taken. When the next payment is received, it may be applied to that over payment record.  Only new payments can be applied against the over payment, and it can only be completed at the time payment is received.

If the balance is incorrect, a credit memo should be created, but it cannot be applied against the over applied payment.  The customer balance will be correct, but the aged receivables will show a credit balance and an equal over applied payment balance.  In order to clean up your records, a zero dollar receipt can be entered and applied to both the over applied payment and the credit memo.  This will remove both transactions from the A/R Aged Trial Balance.

If you have this problem, please feel free to contact me at

Sage Alerts and Workflow can change your life

Sage Alerts & Workflow is a Sage add-on product that allows users to generate queries depending on the information that is being tracked. For example, if a user wanted a list of open invoices from clients that are over 30 days due and wants the list generated once every 15 days, Sage Alerts can generate the list and send it to one or multiple departments via email automatically. Users can also customize the categories that they wish to include in the query. For example, they can include the name or ID code of the sale representative of a specific transaction, the payment code method that was used for the transaction, and which pricelist was used, just to name a few.

Currently I am working with a client who uses Sage Alerts. One of the queries that they use includes all inventory items whose quantity on hand minus the quantity on any current sales order is less than or equal to 0. Another query, which is scheduled to run every Monday at 8AM, is to gather a list of clients who have open invoices that are over 30 days old. For this same client, I am currently trying to create a query that will compare sales from this current year to prior year based on a specified date range.  Then the query will identify those customers whose incoming sales revenue compared to the prior year is less than $3,500.00.

Sage Alerts & Workflow is also compatible with Customer Relationship Management (CRM), Human Resource Management Systems (HRMS), Enterprise Resource Planning (ERP) software, to name a few.

For more questions regarding the acceptance of credit cards through your Sage ERP software, contact your WAC Solution Partner for more information.

Written by Stephanie Piller, WAC Solution Partners- Midwest.

Why Sage Payment Solutions for Credit Card Processing?

Sage Payment Solutions is a payment solution software that allows users to accept payment transactions. It includes an online portal for users to easily access when out of the office and allows users to keep track of their statements and transaction activity.

Currently I use Sage Payment Solutions with Sage 300 ERP 2017 accounting system. In Sage 300, once I enter an invoice for the customer, I can click “charge” directly from the invoice entry screen and the Sage Payment Solutions window will pop up, allowing me to complete the credit card transaction instantly. The payment transaction is quick and simple. Sage 300 specifically can save more than 20 credit card accounts per customer.

Sage Payment Solutions allows users to accept payments from their desktop, laptop, smartphone, and tablet for quick transactions at the point of sale at or away from the main business location. This system accepts Visa®, MasterCard®, American Express®, Discover®, Diners Club®, JCB, Debit/ATM, and private label cards as well. The payment hits our bank in approximately two business days.

There are many different processing companies out there.  What makes Sage Payment Solutions a better option for Sage ERP customers?  Quick, easy, one system integration.  Not only do you have access at your fingertips all within one system to process, but you have one Vendor to deal with giving you leverage on your rates.

For more questions regarding the acceptance of credit cards through your sage ERP software, contact your WAC Solution Partner for more information.

Written by Stephanie Piller, WAC Solution Partners- Midwest.

Designing Financial Statements Correctly for use with Sage Intelligence Reporting

In all my years of working with financial information I have found two ways to hide information (something a business with integrity would never want to do).  The first is illegal which is to not actually report the information.  The second is legal and is to bury it with detail.  When there is too much data to review or the data is not summarized so it is easy to process, important information can be missed.

When I design income statements for my clients, I attempt to group all of the expenses into five to seven categories. It does not matter if the company has fifty accounts in their chart of accounts or five hundred or more.  By carefully grouping expenses into meaningful categories we can quickly review the income statement to find areas that require additional research.

Sage Intelligence Reporting and Microsoft Excel work very well for designing financial statements. Sage Intelligence helps a user create an income statement that has just a few categories, but at the same time allows for any or all categories to be expanded to show all the accounts contained in that category.

As recently as last month, my client, who is running Sage 300 2014 and I were able to find significant issues that needed to be immediately addressed.  In just a couple of minutes we were able to find the issue by starting with the summary view of the report and expanding it to see the detail.  By effectively designing the report, it was an efficient use of time to begin with the summary view and “work backwards” to easily find the problem.

Cleaning up AR transactions using Sage 300 Write-Off process

Companies sometimes have customer entries in Accounts Receivable that need to be cleared from the ledger because they are non-recoverable.  This includes transactions such as bad debts, debt forgiveness (e.g. interest charges) and small over/under payments.  Often the transactions sit on the ledger for a while because it is troublesome to correct them.

In Sage 300, there are a couple of processes that can be used to clear these items.  In situations where there are multiple entries to clear at one time, and where a set of criteria can be defined for doing that, the write-off function may be the answer.

First, review the Accounts Receivable account sets to make sure the Write-Offs General Ledger account is the correct one for each.  Write-Offs is the expense account to which amounts are debited when you write off transactions and balances; it is often called ‘bad debt’. The Create Write off Batch screen automatically produces transactions for this account.

Mary Blog may 4th pic 1

Either now or before posting the final results, print the Accounts Receivable Aged Trial Balance for the customers and transaction types used in the Write Off selection process, to use in verifying the results.  In this example, the Aged Trial Balance report used is for customer 1200, Ronald Black, and the transactions that will be written off are outstanding transactions on/before 10/31/2019:

Mary Blog May 4th pic 2

Mr. Black’s account has three transactions that will be part of the write-off:  a payment and two invoices.

Go to Accounts Receivable Periodic Processing and choose “Create Write-Off Batch”.  Complete the screen selections as required to gather the appropriate transactions.  The choice for the “type of transaction” to write off include outstanding transactions, overdue transactions, overdue balances, outstanding balances and outstanding retainage.  In this example, “outstanding transactions” is chosen.

Choose the Account Type; Ronald Black’s account is Balance Forward, so that is selected.

Choose the document types to include in the process; at least one must be selected.  In this example, “all” is chosen, though it could have been limited just the types of transactions outstanding.

Choose either “amount” or “percentage” as the “Select By”, and enter non-zero values in the “From” and “To” fields.  When creating a batch to write off small balances, enter a range where the values represent the limits the company wishes to write off.  In this example, to include the outstanding cash, which shows as a negative number, the “From” is set to that value, and the “To” to the value of the highest invoice value for the customer.   (Note:  it is not necessary to use the exact amounts for the range, only that they be set to allow the desired range of documents to be captured).

In the bottom portion of the screen, choose up to 4 different criteria to select the customers who will be included.  Leave all as (None) to gather data for all customers who meet the other criteria, or enter the appropriate range.   Selections may be done by a number of customer-related variables – use the drop downs to review and choose the criteria required.  In this example, only Customer Number 1200 (for Ronald Black) is chosen.

Mary Blog may 4th Pic 3

Note that there is an “optional fields” tab.  This may be used to further scope the transactions that will be included in the Write-Off batch.  This example does not use optional fields so none are selected.

Once all criteria are set, select “Process”.  A batch of transactions meeting the criteria is created and posted as an open batch with a description of “Write Off” in the Accounts Receivable Adjustments batch list.  Each transaction being written off is a separate entry in the adjustment batch.  The batch may be reviewed and transactions edited as needed, and then posted as a normal adjustment batch.  If the batch is incorrect, it can be deleted and the process started over.

The following shows one entry from the write-off on Ronald Black’s account:

Mary Blog May 4th Pic 4

Written by Mary Clark, Consultant

WAC Solution Partners- New England

Sage 300 Reports

Reports are one of the most important tools that everyone in a well-oiled organization needs to accomplish their goals. From the top of the organizational chain down to front line managers, reports are the life blood. When it’s difficult to summon the exact information you require, heads explode and the life blood starts hemorrhaging. A little over dramatic but point is, it shouldn’t have to be that way.

Canned reports that are provided by that new ERP application can be insufficient and ineffective. You require custom reports that offer the precise information in the correct sort order and so forth. You have reached Information Nirvana.

The problem with creating custom reports in many ERP systems are that they give you the tools such as SAP Crystal Reports but no real good solution to easily enter all those important parameters. If you rely on Crystal Reports internal parameter screen, it’s kludgy at the very least and ugly at best. If you’re providing your client with the panacea of reports, you are letting them in on a huge let down when they have to enter the necessary parameters.

In a recent Sage 300 project, I came across an incredibly elegant solution to my parameter screen problem. A fellow consultant provided me with some valuable information using Visual Basic Macro (.AVB) files to provide a customized parameter screen for Sage 300 projects. Although I’m not an expert in Sage 300, this quite literally has the potential to open a lot of custom report doors and I will share what I learned with you.

If you have some knowledge of Visual Basic for Applications (VBA) then you will have no problem utilizing Visual Basic Macro’s for your Sage 300 report projects. I will refrain from providing a history lesson on the programming language and its intricacies. Let’s get started!

The Three Elements

Sage 300 requires that you provide three elements to creating a fully functional parameter screen for you reports:

  • An .AVB file. This is essentially a Visual Basic program. It has the graphical screen and source code embedded in the file. If you have ever built a program using Visual Basic 6 or VBA in Microsoft Access; same thing.
  • An entry in the XXrpt.ini file. This file is located in the program modules folder. In our case, we will be using the Manufacturing Module that was developed by AutoSimply. The module folder starts with an “MF” so you will find this in the MF62A folder in our case. The entry will be added to the end of the ini file. The entry consists of report information such as the crystal report name, paper size, number of output parameters, and what those parameter names are. The image below is an example of our setting values.

John May 4th Blog Pic 1

  • And finally, the crystal report. Our report uses an ODBC driver for the data source. It points to our Sage 300 data located in Microsoft SQL Server. I won’t go into the details of setting up the database configuration or report development, since that is a topic deep in mystique and beyond the subject matter in this article. What you need to have in this report are parameters precisely named as the ones in the ini file example above. More on this later.

Where to Start?

What comes first, the report or the parameter screen? The obvious answer in my mind is the report. This, of course, is the most difficult task you might think, and you would be right. After you have developed a parameter screen, this becomes a reusable component in your future report projects in Sage 300 and your main focus and work will be towards making that awesome report for your boss or client.

Writing the Report

As mentioned earlier, I won’t go into the minutia of writing a crystal report but there are a couple of important elements that you will need to include to make this successful.

  • A SortBy Group
    • The SortBy group is a grouping that allow the report to be sorted by any field in the report that you deem necessary. The sortby group will be passed the value to sort by in a formula that will retrieve the parameter from our parameter screen. It is important to offer your client this option since hard coding sort fields are not dynamic and limit the effectiveness of the report. In our example, we will sort by three different fields, all mutually exclusive.
  • Parameters
    • This is the most important element to our report. This is the whole reason we’re building a parameter screen in the first place, right? Below is an example of where those parameters are located in the crystal reports designer.

John Blog May 4th pic 2

The parameters highlighted will be used in the report select expert. This will force Crystal Reports to only give us the information we requested with our parameters. Under the Crystal covers, it’s essentially creating a select statement to SQL Server for the data related to those parameter fields. Below is an example of one such query:




Pretty long and confusing if you’re not fluent in the T-SQL language.


With your report completed, we will continue on to the .AVB file. As stated earlier, if you have experience writing Visual Basic code in any of the Microsoft Office suite of products, then you will know how to write code in Visual Basic Macros. Since this is a high level article, I will not give a line by line rundown of the code but a list of programming rudiments.

  • Your Main Module will include API definitions for Sage 300 and some MS Windows functions.
  • References to the Accpac Manager and MS Windows dll’s.
  • A main sub routine to start the program with your initializations.
  • A main form that will display the necessary parameter fields. (Figure 3)
  • Event code that will fire when any of those parameter fields or buttons are acted upon.
  • Error captures. This is needed to handle error exceptions in an elegant way with some form of exception description for debugging.


With the ability to create these custom parameter screens, you have a set of powerful development tools at your fingertips. There is no need for SDK’s that are costly and have heavy learning curves. For those with some programming ability, this capability with bring immediate dividends to your organization. If you were given the choice between figure 4 and figure 5, which one would you choose?

I think figure 5 is the obvious choice.

Figure 3.

John Blog May 4th pic 3

Figure 4.

John Blog May 4th Pic 4

Figure 5.

John Blog May 4th pic 5

written by John Trainer, Consultant

WAC Solution Partners- New England

Installing Intelligence Reporting Report Designer License in Sage 300

This should be easy, right?  Wrong!

Roger blog Pic 1Here is what I received from Sage, the Product Activation document.


I’m sure most of you have seen these before and once received, you think you know what to do. I know I thought that.

First, I know that I need to install the Report Designer component so, I go to Control Panel, and Change the Sage 300 installation to include this component. Done.

Now I log in to 300 as ADMIN and proceed to the Licensing Manger to enter the SERIAL NUMBER AND ACTIVATION CODE as required.

I enter the following, because that is what I have done at least 100 times.


In this situation the Sage terminology is a little unclear. The License Manager says Activation Code but the paperwork says Activation Key

I get an error message stating the keys are invalid. I try again suspecting I fat fingered it (I do have fat fingers). No go, I get the error message again.

Looking again at the Product Activation document, I see that at the top there is another Product ID/Serial #.

pic 3

I figure why not and enter this serial number and the activation key/code again, and I get the same error.

Now I am getting frustrated. I take a quick glance at the installation manual for Sage 300 which has a section related to IR but I can’t find anything that leads me to believe I am doing anything wrong.

pic 4However, I have a second (harder to find) document that differs from the installation manual and it says this…

Well this all seems strange, new, and quite unnecessary to me, but let’s see if I can get this mythical Report Manager Serial #.

First, I look in the 300 license manager for an IR license and there is none. Yes you do get a Report Manager license installed, but Sage doesn’t make a license entry.

That’s OK, I figure it must be in the customer record of the Sage Partner Portal. I log in to the Partner Portal and pull up the customer. Nope, it is not there either.

According to the document, I can get it from the Sage Customer Portal (but not the Partner Portal). Unfortunately, I do not have those credentials to access the Customer Portal.

Back to the drawing board.

Once again, I look over the Product Activation document and once again I notice something new.

pic 5

Now in the two years that I have been implementing Sage 300 I have never used an unlocking code, but I notice that it has the same length as the activation key/code (minus the hyphens). Sooo. I try the serial number from below and the unlocking code from above – ERROR. Finally out of sheer boredom I try the Product ID/Serial Number with the Unlocking Key/Code in the Activation Code/Key field and (can I get an AMEN), IT WORKS!

And that my friends and co-workers is how you install a Report Manager license (though you may want to skip to the end)

Answer on how to install an Intelligence Reporting Report Designer License in Sage 300: Product ID/Serial Number with the Unlocking Key/Code in the Activation Code/Key field

Written by Roger Detzler, Consultant WAC Solution Partners- New England

Processing Sales Tax Credit Notes in Sage 300

This process can be used to correct an AR or OE invoice where the customer was incorrectly charged sales tax.  If the customer has not paid the invoice, then you will only need to process a credit note.  If the customer has paid the incorrect invoice, then your will may need to take an additional step of refunding the credit balance after you post your credit note.


  • If you are using OE and AR credit notes, make sure to change number prefix of either the OE credit note number or the AR credit note number in the modules options setup. If you don’t, you run the risk of having duplicate numbers because by default both OE and AR credit notes start with “CN”.  You can prevent this issue by simply adding an addition character to one of the prefix numbers i.e. CRA.Image1
  • Even if the source invoice originates from the OE module, you should consider only processing “Sales Tax Only Credit Memos” from the AR module. This way you will not impact inventory.


We need to setup an AR Item for processing the credit note.  If your invoice originated from AR, you could use the items on the original invoice instead.  For this example we will setup an AR item called “TAX” (Sales Tax Credit).  When we setup the AR item TAX, the GL accounts for Revenue won’t matter as the posting will both debit and credit the same account resulting in 0.00 net effect.  In this example we used the sales tax liability account but you could setup a special GL clearing account for this type of transaction.


Processing the credit Note

  1. Review the original invoice to obtain your subtotal before taxes and total tax amount. In this example: $100.00 with a sales tax of $8.25.


  1. Create a new credit note in AR and be sure to document what you are doing by entering both a batch description and transaction description. This may be important for identifying your corrective action later.  Make sure you are using the transaction type Item and document type of Credit Note as shown below.


  1. You can enter the original invoice number in the “Apply-To Document or post as an open credit to the customer account. If the invoice has been paid in full, it will create an open credit.


  1. Add Line items as follow:
    1. Enter the Item No. TAX and the unit price equal to the Subtotal before tax ($100.00). Press the add button and insure the sales tax is calculated properly.  Note: You will need to add/save the line before you will be able to verify the tax calculation.  Image6
    2. Enter a second Item No. TAX and a -1 in the quantity field and the same unit price of $100.00. Set the tax class to Nontaxable.  In this example it is represented by the 2.  Add/save this line and verify that there is not tax calculated for this line.  Image7
    3. Review the invoice totals tab: Notice the resulting entries will give you a credit memo for the sales tax only. Image8
    4. When posting this entry, you will receive a warning that the tax amount for the document exceeds the total distribution net of tax amount.  Close this warning and post your batch.  Image9
    5. This will result in a tax only credit note of $8.25 This entry can be verified by printing the batch journal report or review the batch in the GL module.
  • The GL entry:
  • Debit your GL Tax Liability account(s) 8.25
  • Credit your GL Accounts Receivable account <8.25>


If the customer has already paid the original incorrect invoice in full, you can create an AR Refund Entry to refund the balance back to the customer.  Note: Sage 300 will allow posting adjustments against payments; however, this should not be used as these type of entries will to post to bank services for bank account reconciliation.


Blog Article By: Mike Davidson, WAC Solution Partners Utah

Sage 300 Application, Technical, Implementation, and SEM Migration Consultant,