import ch.codeblock.qrinvoice.model.QrInvoice;
import ch.codeblock.qrinvoice.model.builder.QrInvoiceBuilder;
import ch.codeblock.qrinvoice.model.validation.ValidationException;
import ch.codeblock.qrinvoice.model.validation.ValidationResult;
import java.time.LocalDate;
import java.time.Month;
// ..
try {
final QrInvoice qrInvoice = QrInvoiceBuilder
.create()
.creditorIBAN("CH4431999123000889012")
.paymentAmountInformation(p -> p
.chf(1949.75)
.date(LocalDate.of(2019, Month.OCTOBER, 31))
)
.creditor(c -> c
.name("Robert Schneider AG")
.streetName("Rue du Lac")
.houseNumber("1268")
.postalCode("2501")
.city("Biel")
.country("CH")
)
.ultimateCreditor(u -> u
.name("Robert Schneider Services Switzerland AG")
.streetName("Rue du Lac")
.houseNumber("1268/3/1")
.postalCode("2501")
.city("Biel")
.country("CH")
)
.ultimateDebtor(d -> d
.name("Pia-Maria Rutschmann-Schnyder")
.streetName("Grosse Marktgasse")
.houseNumber("28")
.postalCode("9400")
.city("Rorschach")
.country("CH")
)
.paymentReference(r -> r
.creditorReference("RF18539007547034")
.unstructuredMessage("Instruction of 15.09.2019##S1/01/20170309/11/10201409/20/1400 0000/22/36958/30/CH106017086/40/1020/41/3010")
)
.alternativeSchemeParameters(null)
.build();
} catch (ValidationException validationException) {
final ValidationResult validationResult = validationException.getValidationResult();
// handle exception...
}