A nullpointer occurs for the payment conditions if all discounts in the bill information contain decimal places. E.g.
The method getDefaultPaymentPeriodDays() uses BigDecimal.ZERO.equals(DISCOUNT) which does not consider the discount precision since its BigDecimal value is created using a String.
> Class: SwicoS1v12Type
> Method: parsePaymentConditions(...)
So 0 equals 0.0 (discount) would be false. This could be fixed using compareTo() == 0.
Thank you for reporting. We will check this as soon as possible.