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 ch.codeblock.qrinvoice.model.billinformation.swicos1v12.SwicoS1v12;
import ch.codeblock.qrinvoice.model.billinformation.swicos1v12.builder.PaymentConditionBuilder;
import ch.codeblock.qrinvoice.model.billinformation.swicos1v12.builder.SwicoS1v12Builder;
// ...
try {
final SwicoS1v12 s1 = SwicoS1v12Builder
.create()
.invoiceReference("123456789")
.invoiceDate(LocalDate.of(2025, 11, 6))
.paymentConditions(
PaymentConditionBuilder.create().cashDiscountPercentage(0).eligiblePaymentPeriodDays(30).build()
)
.build();
// contains: "//S1/10/123456789/11/251106/40/0:30"
final String swicoBillInformation = s1.toBillInformationString();
final QrInvoice qrInvoice = QrInvoiceBuilder
.create()
// ..
.additionalInformation(a -> a
.billInformation(swicoBillInformation)
)
.alternativeSchemeParameters(...)
.build();
} catch (ValidationException validationException) {
final ValidationResult validationResult = validationException.getValidationResult();
// handle exception...
}