public string GetTransactionRequest(NewMandateRequest newMandateRequest, string containedData) { VerifyExpirationPeriod(newMandateRequest.ExpirationPeriod); var containedDocument = new XmlDocument(); containedDocument.LoadXml(containedData); var acquirerTrxReq = new AcquirerTrxReq { createDateTimestamp = Now(), productID = this.LocalInstrumentCode == Instrumentation.Core ? ProductId_CORE : ProductId_B2B, version = "1.0.0", Merchant = new AcquirerTrxReqMerchant { merchantID = Configuration.Contract.Id, subID = Configuration.Contract.SubId.ToString(CultureInfo.InvariantCulture), merchantReturnURL = Configuration.Merchant.ReturnUrl }, Issuer = new AcquirerTrxReqIssuer { issuerID = newMandateRequest.DebtorBankId }, Transaction = new AcquirerTrxReqTransaction { entranceCode = newMandateRequest.EntranceCode, expirationPeriod = newMandateRequest.ExpirationPeriod.HasValue ? XmlConvert.ToString(newMandateRequest.ExpirationPeriod.Value) : null, language = newMandateRequest.Language.ToString(), container = new Transactioncontainer { Any = new [] { containedDocument.DocumentElement } } } }; return(ProcessDateTimes(acquirerTrxReq.Serialize())); }
public string GetNewMandate(NewMandateRequest newMandateRequest) { VerifyMaxAmount(newMandateRequest.MaxAmount); var eMandate = new p09.Document { MndtInitnReq = new p09.MandateInitiationRequestV04 { GrpHdr = new p09.GroupHeader47 { MsgId = newMandateRequest.MessageId, CreDtTm = Now(), }, Mndt = new[] { new p09.Mandate7 { MndtId = newMandateRequest.EMandateId, MndtReqId = "NOTPROVIDED", Tp = new p09.MandateTypeInformation1 { SvcLvl = new p09.ServiceLevel8Choice { ItemElementName = p09.ItemChoiceType4.Cd, Item = "SEPA" }, LclInstrm = new p09.LocalInstrument2Choice { ItemElementName = p09.ItemChoiceType5.Cd, Item = Enum.GetName(typeof(Instrumentation), this.LocalInstrumentCode).ToUpper() } }, Ocrncs = new p09.MandateOccurrences3 { SeqTp = (p09.SequenceType2Code)newMandateRequest.SequenceType // TODO: not allowed yet //Frqcy = new p09.Frequency21Choice //{ // Item = new p09.FrequencyPeriod1 // { // Tp = p09.Frequency6Code.YEAR, // CntPerPrd = 1.0 // } //} }, MaxAmt = (this.LocalInstrumentCode == Instrumentation.B2B && newMandateRequest.MaxAmount.HasValue)? new p09.ActiveCurrencyAndAmount { Ccy = "EUR", Value = newMandateRequest.MaxAmount.Value } : null, Rsn = newMandateRequest.EMandateReason != null? new p09.MandateSetupReason1Choice { ItemElementName = p09.ItemChoiceType6.Prtry, Item = newMandateRequest.EMandateReason != null? newMandateRequest.EMandateReason : String.Empty } : null, Cdtr = new p09.PartyIdentification43 { }, Dbtr = new p09.PartyIdentification43 { Id = newMandateRequest.DebtorReference != null? new p09.Party11Choice { Item = new p09.PersonIdentification5() { Othr = new[] { new p09.GenericPersonIdentification1 { Id = newMandateRequest.DebtorReference } } } } : null, }, DbtrAgt = new p09.BranchAndFinancialInstitutionIdentification5 { FinInstnId = new p09.FinancialInstitutionIdentification8 { BICFI = newMandateRequest.DebtorBankId } }, RfrdDoc = newMandateRequest.PurchaseId != null? new [] { new p09.ReferredDocumentInformation6 { Tp = new p09.ReferredDocumentType4 { CdOrPrtry = new p09.ReferredDocumentType3Choice { Item = newMandateRequest.PurchaseId } } } } : null, } } } }; return(ProcessDateTimes(eMandate.Serialize())); }