Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
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
languagejava
public class BalanceTransferResponseDTO {

    private String historyDate;

    private String historyTime;

    private BalanceTransferDetailsResponseDTO transactionData;

} 

Target (MongoDB)

  • Collection Name: balances

  • Schema:

    Code Block
    languagejs
    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
languagejava
public class AccountDetailsRequestDTO {
  
    private String organizationNumber;
  
    private String accountNumber;
}

Target (MongoDB)

  • Collection name: accountDetails

  • Schema:

    Code Block
    languagejson
    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
    languagejson
    db.accountDetails.createIndex({accountDataKey: 1});
    db.accountDetails.createIndex({"accountDataKey.accountNumber": 1});

...

Code Block
languagejava
public abstract class AbstractFiservBaseRequest {

  @Builder.Default
  protected String organizationNumber = "950";
}

Target (MongoDB)

  • Collection name: blockUnblockAccounts

  • Schema:

    Code Block
    languagejson
    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
    languagejson
    db.blockUnblockAccounts.createIndex({accountBlockUnblockKey: 1});
    db.blockUnblockAccounts.createIndex({"accountBlockUnblockKey.accountNumber": 1});

...

Code Block
languagejava
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
    languagejson
    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
    languagejson
    db.customers.createIndex({customerKey: 1});

...

Code Block
languagejava
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
    languagejson
    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
    languagejson
    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
languagejava
public class CardToAccountLinkingRequestDTO {

  private String cardNumber;

  private Integer cardholderType;

  private String customerOrAccountNumber;
}

Target (MongoDB)

  • Collection name: accountCardLinks

  • Schema:

    Code Block
    languagejson
    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
    languagejson
    db.accountCardLinks.createIndex({cardNumber: 1});
    db.accountCardLinks.createIndex({cardholderType: 1});
    db.accountCardLinks.createIndex({customerOrAccountNumber: 1});
    db.accountCardLinks.createIndex({"cardNumber,cardholderType,customerOrAccountNumber": 1});

...