Article VII, Section 8 (a) of the Collective Bargaining Agreement contains the rules pertaining to cash in trades. 

The System:

Under the current CBA, each season has its own limit for the maximum amount of cash a team can receive or pay in trades. These maximums for paying and receiving are separate (it is not a rolling total or a balance of the two) but the maximums are the same amount. For the 2015-16 season, this limit will be $3.4 million. 

How it Works:

Unlike some parts of the CBA, the rules for cash in trades function quite clearly. No team can send or receive an amount over that specified maximum for a given league year. One thing to remember that it is a league year rather than a calendar year, which makes trades surrounding the NBA Draft more complicated because they either occur at the end of one league year when teams may have used some or all of their cash limit or at the very beginning (after the Moratorium) where that constrains their decisions the rest of that season.

The one nuance that should be mentioned is that in the case of a sign-and-trade, any portion of a signing bonus paid by the team that signs (and then trades) the player counts against their cash limit.

Something to make clear: Any cash included in trades does not count at all towards the salary calculations- it just goes on top of whatever deal the teams make.

The Purpose of the Limits on Money in Trades:

At their core, the CBA’s limitations on money in trades attempt to prevent excesses on either extreme. It prevents some franchises from using cash to dominate the system and take advantage of money-conscious owners while also limiting owners on the opposite side of the coin from taking in too much. A sliding scale with similar parameters may do a “better job” but the current system accomplishes what it was built to do and does do pretty well.