doc.getPain00100102().getGrpHdr().getInitgPty().setNm(sepaParams.getProperty("src.name"));
//Payment Information
ArrayList<PaymentInstructionInformationSCT> pmtInfs = (ArrayList<PaymentInstructionInformationSCT>) doc.getPain00100102().getPmtInf();
PaymentInstructionInformationSCT pmtInf = new PaymentInstructionInformationSCT();
pmtInfs.add(pmtInf);
pmtInf.setPmtInfId(pmtInfId != null && pmtInfId.length() > 0 ? pmtInfId : sepaId);
pmtInf.setPmtMtd(PaymentMethodSCTCode.TRF);
// Payment Type Information
pmtInf.setPmtTpInf(new PaymentTypeInformationSCT1());
pmtInf.getPmtTpInf().setSvcLvl(new ServiceLevelSCT());
pmtInf.getPmtTpInf().getSvcLvl().setCd(ServiceLevelSCTCode.SEPA);
String date = sepaParams.getProperty("date");
if(date == null) date = SepaUtil.DATE_UNDEFINED;
pmtInf.setReqdExctnDt(SepaUtil.createCalendar(date));
pmtInf.setDbtr(new PartyIdentificationSCT2());
pmtInf.setDbtrAcct(new CashAccountSCT1());
pmtInf.setDbtrAgt(new BranchAndFinancialInstitutionIdentificationSCT());
//Payment Information - Debtor
pmtInf.getDbtr().setNm(sepaParams.getProperty("src.name"));
//Payment Information - DebtorAccount
pmtInf.getDbtrAcct().setId(new AccountIdentificationSCT());
pmtInf.getDbtrAcct().getId().setIBAN(sepaParams.getProperty("src.iban"));
//Payment Information - DebtorAgent
pmtInf.getDbtrAgt().setFinInstnId(new FinancialInstitutionIdentificationSCT());
pmtInf.getDbtrAgt().getFinInstnId().setBIC(sepaParams.getProperty("src.bic"));
//Payment Information - ChargeBearer
pmtInf.setChrgBr(ChargeBearerTypeSCTCode.SLEV);
//Payment Information - Credit Transfer Transaction Information
ArrayList<CreditTransferTransactionInformationSCT> cdtTrxTxInfs = (ArrayList<CreditTransferTransactionInformationSCT>) pmtInf.getCdtTrfTxInf();
if (maxIndex != null)
{
for (int tnr = 0; tnr <= maxIndex; tnr++)
{
cdtTrxTxInfs.add(createCreditTransferTransactionInformationSCT(sepaParams, tnr));