...
Code Block | ||
---|---|---|
| ||
package com.spin.banking.common.fiserv.request; import com.fasterxml.jackson.annotation.JsonInclude; import com.spin.banking.common.domain.FalconIdentifier; import lombok.Builder; import lombok.Getter; import lombok.Setter; @Setter @Getter @Builder @JsonInclude(JsonInclude.Include.NON_NULL) public class TransactionDataFLDTO { private Long transactionAmount; private String actionCode; private String authorizationCode; private String effectiveDate; private String description; private String paidConcept; private String memoPostedIndicator; private String suppressMonetaryTransaction; private String n1n2ByPass; private FalconIdentifier identifier; private String box; private String crPlaza; private String crStore; private String keyTracking; private String beneficiaryAccount; private String senderAccount; private String counterpartInstitution; private String operatingInstitution; private String frcUprkBeneficiary; private String orderingFrcUprk; private String device; private String ip; private Double latitude; private Double longitude; private String recipientName; private String orderingName; private String paymentSourceId; } |
Response DTO
Code Block | ||
---|---|---|
| ||
public class BalanceTransferResponseDTO {
private String historyDate;
private String historyTime;
private BalanceTransferDetailsResponseDTO transactionData;
} |
Target (MongoDB)
Collection Name:
balances
Schema:
Code Block language js db.createCollection("balances",{ validator: { $jsonSchema: { bsonType: "object", description: "Balance bject collection", required: [ "accountOrCardNumber", "availableCreditLimit", "organizationNumber", "accountNumber" ], properties: { "organizationNumber": { bsonType: "string", description: "organization Number must be a string and is required" }, "accountNumber": { bsonType: "string", description: "account Number must be a string and is required" }, "accountOrCardNumber": { bsonType: "string", description: "account or card number must be a string and is required" }, "availableCreditLimit": { bsonType: "double", description: "available credit limit must be a number and is required" } "currentBalance": { bsonType: "double", description: "current balance must be a number" }, "frozenBalance": { bsonType: "double", description: "frozen balance must be a number" }, "historyDate": { bsonType: "string", description: "history Date must be a string" }, "historyTime": { bsonType: "string", description: "history Time must be a string" }, "transactionData": { bsonType: "object", description: "transaction data", required: [ "transactionCode", "currentBalance", "openToBuy" ], properties: { "transactionCode": { bsonType: "string", description: "transaction code is required" }, "transactionDescription": { bsonType: "string", description: "describe a transaction" }, "currentBalance": { bsonType: "long", description: "current balance must be a long number and is required" }, "openToBuy": { bsonType: "long", description: "open to Buy must be a long number and is required" }, "transactionAmount": { bsonType: "long", description: "" }, "actionCode": { bsonType: "string", description: "action Code" }, "authorizationCode": { bsonType: "string", description: "authorization Code" }, "effectiveDate": { bsonType: "string", description: "effective Date" }, "description": { bsonType: "string", description: "description" }, "paidConcept": { bsonType: "string", description: "paid Concept" }, "memoPostedIndicator": { bsonType: "string", description: "memo Posted Indicator" }, "suppressMonetaryTransaction": { bsonType: "string", description: "suppress Monetary Transaction" }, "n1n2ByPass": { bsonType: "string", description: "n1 n2 by Pass" }, "identifier": { bsonType: "string", description: "identifier" }, "box": { bsonType: "string", description: "box" }, "crPlaza": { bsonType: "string", description: "cr Plaza" }, "crStore": { bsonType: "string", description: "cr Store" }, "keyTracking": { bsonType: "string", description: "key Tracking" }, "beneficiaryAccount": { bsonType: "string", description: "beneficiary Account" }, "senderAccount": { bsonType: "string", description: "sender Account" }, "counterpartInstitution": { bsonType: "string", description: "counterpart Institution" }, "operatingInstitution": { bsonType: "string", description: "operating Institution" }, "frcUprkBeneficiary": { bsonType: "string", description: "frc Up rk Beneficiary" }, "orderingFrcUprk": { bsonType: "string", description: "ordering Frc Up rk" }, "device": { bsonType: "string", description: "device" }, "ip": { bsonType: "string", description: "ip" }, "latitude": { bsonType: "double", description: "latitude" }, "longitude": { bsonType: "double", description: "longitude" }, "recipientName": { bsonType: "string", description: "recipient Name" }, "orderingName": { bsonType: "string", description: "ordering Name" }, "paymentSourceId": { bsonType: "string", description: "payment Source Id" } } } } } } });
Data Structure for Account Mirror
...
Code Block | ||
---|---|---|
| ||
public class AccountDetailsRequestDTO { private String organizationNumber; private String accountNumber; } |
Target (MongoDB)
Collection name:
accountDetails
Schema:
Code Block language json db.createCollection("accountDetails", { validator: { $jsonSchema: { bsonType: "object", title: "Account Details Object Validation", required: [ "accountDataKey.accountNumber","accountDataKey.organizationNumber"], properties: { accountDataKey: { bsonType: "object", properties: { accountNumber: { bsonType: "string", description: "'accountNumber' must be a string and is required" }, organizationNumber: { bsonType: [ "string" ], description: "'organizationNumber' must be a string and is required" } } }, accountData: { bsonType: "object", properties: { customerNumber: { bsonType: "string", description: "'customerNumber' must be a string" }, blockCode1: { bsonType: "string", description: "'blockCode1' must be a string" }, blockCode1Date: { bsonType: "string", description: "'blockCode1Date' must be a string" }, blockCode2: { bsonType: "string", description: "'blockCode2' must be a string" }, blockCode2Date: { bsonType: "string", description: "'blockCode2Date' must be a string" }, accountMakerDateOfBirth: { bsonType: "string", description: "'accountMakerDateOfBirth' must be a string" }, availableCredit: { bsonType: [ "double" ], description: "'availableCredit' must be a double" }, userAmounts9: { bsonType: [ "double" ], description: "'userAmounts9' must be a double" }, userAmounts10: { bsonType: [ "double" ], description: "'userAmounts10' must be a double" }, userAmounts7: { bsonType: [ "double" ], description: "'userAmounts7' must be a double" } } } } } } });
Index
Code Block language json db.accountDetails.createIndex({accountDataKey: 1}); db.accountDetails.createIndex({"accountDataKey.accountNumber": 1});
...
Code Block | ||
---|---|---|
| ||
public abstract class AbstractFiservBaseRequest { @Builder.Default protected String organizationNumber = "950"; } |
Target (MongoDB)
Collection name:
blockUnblockAccounts
Schema:
Code Block language json db.createCollection("blockUnblockAccounts", { validator: { $jsonSchema: { bsonType: "object", title: "Block Unblock Accounts Object Validation", required: ["accountBlockUnblockKey.accountNumber","accountBlockUnblockKey.blockCode" ,"accountBlockUnblockKey.blockCodeIndicator","accountBlockUnblockKey.foreignUse","accountBlockUnblockKey.functionCode","accountBlockUnblockKey.organizationNumber"], properties: { accountBlockUnblockKey: { bsonType: "object", properties: { accountNumber: { bsonType: "string", description: "'accountNumber' must be a string and is required" }, blockCode: { bsonType: "string", description: "'blockCode' must be a string and is required" }, blockCodeIndicator: { bsonType: "int", description: "'blockCodeIndicator' must be a int and is required" }, foreignUse: { bsonType: "int", description: "'foreignUse' must be a int and is required" }, functionCode: { bsonType: "string", description: "'functionCode' must be a string and is required" }, organizationNumber: { bsonType: [ "string" ], description: "'organizationNumber' must be a string and is required" } } }, blockCode1Local: { bsonType: "string", description: "'blockCode1Local' must be a string" }, localOrganization: { bsonType: "string", description: "'localOrganization' must be a string" } } } } });
Index
Code Block language json db.blockUnblockAccounts.createIndex({accountBlockUnblockKey: 1}); db.blockUnblockAccounts.createIndex({"accountBlockUnblockKey.accountNumber": 1});
...
Code Block | ||
---|---|---|
| ||
public class CustomerRequestDTO { private String org; private String logo; private String address; private String houseNumber; private String externalNumber; private String colony; private String city; private String state; private String postalCode; private String dateOfBirth; private String stateOfBirth; private String email; private int genderCode; private String firstName; private String lastName; private String maternalLastName; private String mobilePhoneNumber; private String identificationNumberFlag; private String identificationNumber; private String ine; private String occupation; } |
Target (MongoDB)
Collection name:
customers
Schema:
Code Block language json db.createCollection("customers", { validator: { $jsonSchema: { bsonType: "object", title: "Customers Object Validation", required: ["customerNumber, customerKey.org","customerKey.logo","customerKey.address","customerKey.houseNumber","customerKey.externalNumber","customerKey.colony","customerKey.city","customerKey.state","customerKey.postalCode","customerKey.dateOfBirth","customerKey.stateOfBirth","customerKey.email","customerKey.genderCode","customerKey.firstName","customerKey.lastName","customerKey.maternalLastName","customerKey.mobilePhoneNumber","customerKey.identificationNumberFlag","customerKey.identificationNumber","customerKey.ine","customerKey.occupation"], properties: { customerKey: { bsonType: "object", properties: { customerNumber: { bsonType: "string", description: "'customerNumber' must be a string and is required" }, } }, org: { bsonType: "string", description: "'org' must be a string and is required" }, logo: { bsonType: "string", description: "'logo' must be a string and is required" }, address: { bsonType: "string", description: "'address' must be a string and is required" }, houseNumber: { bsonType: "string", description: "'houseNumber' must be a string and is required" }, externalNumber: { bsonType: "string", description: "'externalNumber' must be a string and is required" }, colony: { bsonType: "string", description: "'colony' must be a string and is required" }, city: { bsonType: "string", description: "'city' must be a string and is required" }, state: { bsonType: "string", description: "'state' must be a string and is required" }, postalCode: { bsonType: "string", description: "'postalCode' must be a string and is required" }, dateOfBirth: { bsonType: "string", description: "'dateOfBirth' must be a string and is required" }, stateOfBirth: { bsonType: "string", description: "'stateOfBirth' must be a string and is required" }, email: { bsonType: "string", description: "'email' must be a string and is required" }, genderCode: { bsonType: "int", description: "'genderCode' must be a int and is required" }, firstName: { bsonType: "string", description: "'firstName' must be a string and is required" }, lastName: { bsonType: "string", description: "'lastName' must be a string and is required" }, maternalLastName: { bsonType: "string", description: "'maternalLastName' must be a string and is required" }, mobilePhoneNumber: { bsonType: "string", description: "'mobilePhoneNumber' must be a string and is required" }, identificationNumberFlag: { bsonType: "string", description: "'identificationNumberFlag' must be a string and is required" }, identificationNumber: { bsonType: "string", description: "'identificationNumber' must be a string and is required" }, ine: { bsonType: "string", description: "'ine' must be a string and is required" }, occupation: { bsonType: "string", description: "'occupation' must be a string and is required" } } } } });
Index
Code Block language json db.customers.createIndex({customerKey: 1});
...
Code Block | ||
---|---|---|
| ||
public class AccountToCustomerLinkingRequestDTO { private String accountNumber; private AlternateCustomerRequestDTO alternateCustomer = new AlternateCustomerRequestDTO(); private String customerNumber; private String qualification; private String organizationNumber; private Integer customerTypeIndicator; private Integer foreignUseIndicator; @Getter static class AlternateCustomerRequestDTO { private String expirationDate; private String status; } } |
Target (MongoDB)
Collection name:
accountCustomerLinks
Schema:
Code Block language json db.createCollection("accountCustomerLinks", { validator: { $jsonSchema: { bsonType: "object", title: "Account Customer Links Object Validation", required: ["customerNumber","accountNumber","qualification","organizationNumber","customerTypeIndicator","foreignUseIndicator"], properties: { customerNumber: { bsonType: "string", description: "'customerNumber' must be a string and is required" }, accountNumber: { bsonType: "string", description: "'accountNumber' must be a string and is required" }, qualification: { bsonType: "string", description: "'qualification' must be a string and is required" }, organizationNumber: { bsonType: "string", description: "'organizationNumber' must be a string and is required" }, customerTypeIndicator: { bsonType: "int", description: "'customerTypeIndicator' must be a int and is required" }, foreignUseIndicator: { bsonType: "int", description: "'foreignUseIndicator' must be a int and is required" }, expirationDate: { bsonType: "string", description: "'expirationDate' must be a string" }, status: { bsonType: "string", description: "'status' must be a string" } } } } });
Index
Code Block language json db.accountCustomerLinks.createIndex({customerNumber: 1}); db.accountCustomerLinks.createIndex({accountNumber: 1}); db.accountCustomerLinks.createIndex({"customerNumber,accountNumber": 1}); db.accountCustomerLinks.createIndex({"customerNumber,accountNumber,organizationNumber": 1});
...
Code Block | ||
---|---|---|
| ||
public class CardToAccountLinkingRequestDTO { private String cardNumber; private Integer cardholderType; private String customerOrAccountNumber; } |
Target (MongoDB)
Collection name:
accountCardLinks
Schema:
Code Block language json db.createCollection("accountCardLinks", { validator: { $jsonSchema: { bsonType: "object", title: "Account Card Links Object Validation", required: ["cardNumber","cardholderType","customerOrAccountNumber"], properties: { cardNumber: { bsonType: "string", description: "'cardNumber' must be a string and is required" }, cardholderType: { bsonType: "int", description: "'cardholderType' must be a string and is required" }, customerOrAccountNumber: { bsonType: "string", description: "'customerOrAccountNumber' must be a string and is required" } } } } });
Index
Code Block language json db.accountCardLinks.createIndex({cardNumber: 1}); db.accountCardLinks.createIndex({cardholderType: 1}); db.accountCardLinks.createIndex({customerOrAccountNumber: 1}); db.accountCardLinks.createIndex({"cardNumber,cardholderType,customerOrAccountNumber": 1});
...