private String createAppDataForImportPaymentOperation(ExchangeContext ctx) throws Exception { ImportData importData = new ImportData(); final ImportRequest importRequest = new ImportRequest(); importData.setImportRequest(importRequest); String postBlockSenderIdentifier = (String) ctx.getVariable("postBlockSenderIdentifier"); final PostBlock postBlock = createPostBlock(ctx, postBlockSenderIdentifier); importRequest.setPostBlock(postBlock); PaymentInfoType paymentInfo = new PaymentInfoType(); importRequest.setFinalPayment(paymentInfo); paymentInfo.setNarrative(getStringFromContext(ctx, "paymentNarrative", "")); paymentInfo.setSupplierBillID(getStringFromContext(ctx, "paymentSupplierBillID", "")); paymentInfo.setAmount(toLong((String) ctx.getVariable("paymentAmount"))); paymentInfo.setPaymentDate( XmlTypes.date(formatDate((Date) ctx.getVariable("paymentDate"), "dd.MM.yyyy"))); paymentInfo.setChangeStatus(getStringFromContext(ctx, "paymentChangeStatus", "1")); paymentInfo.setPayeeINN(getStringFromContext(ctx, "paymentPayeeINN", "")); paymentInfo.setPayeeKPP(getStringFromContext(ctx, "paymentPayeeKPP", "")); paymentInfo.setKBK(getStringFromContext(ctx, "paymentKBK", "")); paymentInfo.setOKATO(getStringFromContext(ctx, "paymentOKATO", "")); paymentInfo.setPayerPA(getStringFromContext(ctx, "paymentPA", "")); Account payeeBankAcc = new Account(); paymentInfo.setPayeeBankAcc(payeeBankAcc); payeeBankAcc.setAccount(getStringFromContext(ctx, "paymentPayeeAccount", "")); payeeBankAcc.setKind(getStringFromContext(ctx, "paymentPayeeBankAccKind", "!")); Bank payeeBank = new Bank(); payeeBankAcc.setBank(payeeBank); payeeBank.setName(getStringFromContext(ctx, "paymentPayeeBankName", "")); payeeBank.setCorrespondentBankAccount( getStringFromContext(ctx, "paymentCorrespondentBankAccount", "")); payeeBank.setBIK(getStringFromContext(ctx, "paymentPayeeBankBIK", "")); PaymentIdentificationDataType paymentIdentificationData = new PaymentIdentificationDataType(); paymentInfo.setPaymentIdentificationData(paymentIdentificationData); Bank bank = new Bank(); paymentIdentificationData.setBank(bank); bank.setBIK(getStringFromContext(ctx, "paymentBIK", "")); bank.setName(getStringFromContext(ctx, "paymentBankName", "")); paymentIdentificationData.setSystemIdentifier( buildSystemIdentifierForImportPaymentOperation(ctx)); fillPaymentAdditionalData(paymentInfo, ctx); final BudgetIndex budgetIndex = new BudgetIndex(); paymentInfo.setBudgetIndex(budgetIndex); budgetIndex.setStatus(getStringFromContext(ctx, "Status", "0")); // Статус плательщика budgetIndex.setPaymentType(getStringFromContext(ctx, "PaymentType", "0")); // тип платежа budgetIndex.setPurpose( getStringFromContext(ctx, "Purpose", "0")); // основание платежа 2 символа максимум budgetIndex.setTaxPeriod( getStringFromContext(ctx, "TaxPeriod", "0")); // налоговый период до 10 символов budgetIndex.setTaxDocNumber( getStringFromContext(ctx, "TaxDocNumber", "0")); // Показатель номера документа budgetIndex.setTaxDocDate( getStringFromContext(ctx, "TaxDocDate", "0")); // Показатель даты документа paymentInfo.setPayerIdentifier(buildUnifiedPayerID(ctx, "")); String importDataStr = new XmlTypes(ImportData.class).toXml(importData); return cryptoProvider.signElement(importDataStr, "FinalPayment", null, true, true, false); }