WS-Agreement is one of the most widely used SLA specifications. An advantage of WS-Agreement over other agreement metamodels is that it allows one to define conditional and optional term sets inside an agreement document, which are commonly found features in real-world agreements. Unfortunately, they increase the complexity of the automated detection and explanation of conflicts between SLA terms, leading to new kind of conflicts that are not supported by current techniques. Furthermore, creating a general-purpose conflict analyser in WS-Agreement is a hard task since it should understand the semantics of an unbounded number of languages that can be used in the eight extension points that WS-Agreement includes for the sake of flexibility. In this article we address these issues by providing a conflict classification for SLAs that includes new conflicts derived from the use of conditional and optional term sets; and a novel, language-agnostic technique based on constraint satisfaction problems to automatically detect and explain these conflicts. In pursuing these results, we defined some WS-Agreement concepts as well as a fully-fledged WS-Agreement-compliant language. The developed technique and its reference implementation have been thoroughly validated.