When QR Invoice amount is set to 0.00, the unstructured text is to be set to "DO NOT USE FOR PAYMENT":
We need to verify if an amount of 0 is always to be handled this way.
In case the caller passes an unstructured message, do we:
ignore it and set "DO NOT USE FOR PAYMENT"
append it (but what if it exceeds length?)
throw a validation error?
Implemented as follows (Java Solutions):
Using Builder: doNotUseForPayment() method
Using Builder: if amount is 0.00 then and structured message is empty, set it accordingly
Using Builder: if amount is 0.00 but structured message is not empty and does not match one of the four allowed text strings, throw ValidationException
Validation: if amount is 0.00, ustructured message must match and vice versa
Validation: ValidationOptions allow to disable this new validation (and there is a SystemProperty too)