There are a lot of well established guidelines when it comes to the use of colours in charts and graphics.
The starting point is to examine the existing colour palette/scheme and see if they are on brand, so that you are optimizing the use of the brand guidelines.
Secondly, you need to look at the rest of the charts and graphics and see if current colours ...
The use of color in data can be a conflicting element. If an operation has to be explained to a child for the first time, which of the following two situations will help better understanding:
Unless it's necessary to establish a clear difference between the data set to be displayed:
If this is not necessary, the use of color interferes negatively, it's ...
The customers don't seem to need to be in order by number, so group the customers by type along the x-axis, so you can distinguish the customer type by position rather than colour. Then use colour (or keep using texture if you like) to distinguish the contract type.
So customer type goes from colour --> position
And contract type goes from texture --> ...
Your approach looks in the right direction, but I guess the confusion is due to a visual overload. If you ask the user to think too much - it generally leads to confusion.
Here's a suggestion -
In terms of graph readability, there's only one thing to focus on, contract prices.
Customer type is shown as a separate block and does not interfere.
It's expected ...