Copy of Componentes Mirror Strategy

Data Structure for Mirror Balance

https://fintechdigital.atlassian.net/browse/SPMS-6

This document contains the Balance Collection (MongoDB) definition. We could see java objects and JSON schema for MongoDB.

Sources

Account Balance Endpoint

  • Fiserv ednpoint: /accounts/balance

  • Class: FiservRepository

  • Service: getAccountBalance

Request DTO properties

1 @Builder.Default 2 protected String organizationNumber = "950"; 3 4 protected String accountNumber;

Responses DTO

1public class AccountBalanceResponseDTO { 2 3 private String accountOrCardNumber; 4 5 private Double currentBalance; 6 7 private Double availableCreditLimit; 8 9 private Double frozenBalance; 10 11}

FL-Balance Endpoint

  • Fiserv ednpoint: /account/FL-balance

  • Class: FiservRepository

  • Service: transferBalanceFL

Request DTO

1package com.spin.banking.common.fiserv.request; 2 3import com.fasterxml.jackson.annotation.JsonInclude; 4import com.spin.banking.common.domain.FalconIdentifier; 5import lombok.Builder; 6import lombok.Getter; 7import lombok.Setter; 8 9@Setter 10@Getter 11@Builder 12@JsonInclude(JsonInclude.Include.NON_NULL) 13public class TransactionDataFLDTO { 14 15 private Long transactionAmount; 16 17 private String actionCode; 18 19 private String authorizationCode; 20 21 private String effectiveDate; 22 23 private String description; 24 25 private String paidConcept; 26 27 private String memoPostedIndicator; 28 29 private String suppressMonetaryTransaction; 30 31 private String n1n2ByPass; 32 33 private FalconIdentifier identifier; 34 35 private String box; 36 37 private String crPlaza; 38 39 private String crStore; 40 41 private String keyTracking; 42 43 private String beneficiaryAccount; 44 45 private String senderAccount; 46 47 private String counterpartInstitution; 48 49 private String operatingInstitution; 50 51 private String frcUprkBeneficiary; 52 53 private String orderingFrcUprk; 54 55 private String device; 56 57 private String ip; 58 59 private Double latitude; 60 61 private Double longitude; 62 63 private String recipientName; 64 65 private String orderingName; 66 67 private String paymentSourceId; 68 69} 70

Response DTO

1public class BalanceTransferResponseDTO { 2 3 private String historyDate; 4 5 private String historyTime; 6 7 private BalanceTransferDetailsResponseDTO transactionData; 8 9}

Target (MongoDB)

  • Collection Name: balances

  • Schema:

    1db.createCollection("balances",{ 2 validator: { 3 $jsonSchema: { 4 bsonType: "object", 5 description: "Balance bject collection", 6 required: [ 7 "accountOrCardNumber", 8 "availableCreditLimit", 9 "organizationNumber", 10 "accountNumber" 11 ], 12 properties: { 13 "organizationNumber": { 14 bsonType: "string", 15 description: "organization Number must be a string and is required" 16 }, 17 "accountNumber": { 18 bsonType: "string", 19 description: "account Number must be a string and is required" 20 }, 21 "accountOrCardNumber": { 22 bsonType: "string", 23 description: "account or card number must be a string and is required" 24 }, 25 "availableCreditLimit": { 26 bsonType: "double", 27 description: "available credit limit must be a number and is required" 28 } 29 "currentBalance": { 30 bsonType: "double", 31 description: "current balance must be a number" 32 }, 33 "frozenBalance": { 34 bsonType: "double", 35 description: "frozen balance must be a number" 36 }, 37 "historyDate": { 38 bsonType: "string", 39 description: "history Date must be a string" 40 }, 41 "historyTime": { 42 bsonType: "string", 43 description: "history Time must be a string" 44 }, 45 "transactionData": { 46 bsonType: "object", 47 description: "transaction data", 48 required: [ 49 "transactionCode", 50 "currentBalance", 51 "openToBuy" 52 ], 53 properties: { 54 "transactionCode": { 55 bsonType: "string", 56 description: "transaction code is required" 57 }, 58 "transactionDescription": { 59 bsonType: "string", 60 description: "describe a transaction" 61 }, 62 "currentBalance": { 63 bsonType: "long", 64 description: "current balance must be a long number and is required" 65 }, 66 "openToBuy": { 67 bsonType: "long", 68 description: "open to Buy must be a long number and is required" 69 }, 70 "transactionAmount": { 71 bsonType: "long", 72 description: "" 73 }, 74 "actionCode": { 75 bsonType: "string", 76 description: "action Code" 77 }, 78 "authorizationCode": { 79 bsonType: "string", 80 description: "authorization Code" 81 }, 82 "effectiveDate": { 83 bsonType: "string", 84 description: "effective Date" 85 }, 86 "description": { 87 bsonType: "string", 88 description: "description" 89 }, 90 "paidConcept": { 91 bsonType: "string", 92 description: "paid Concept" 93 }, 94 "memoPostedIndicator": { 95 bsonType: "string", 96 description: "memo Posted Indicator" 97 }, 98 "suppressMonetaryTransaction": { 99 bsonType: "string", 100 description: "suppress Monetary Transaction" 101 }, 102 "n1n2ByPass": { 103 bsonType: "string", 104 description: "n1 n2 by Pass" 105 }, 106 "identifier": { 107 bsonType: "string", 108 description: "identifier" 109 }, 110 "box": { 111 bsonType: "string", 112 description: "box" 113 }, 114 "crPlaza": { 115 bsonType: "string", 116 description: "cr Plaza" 117 }, 118 "crStore": { 119 bsonType: "string", 120 description: "cr Store" 121 }, 122 "keyTracking": { 123 bsonType: "string", 124 description: "key Tracking" 125 }, 126 "beneficiaryAccount": { 127 bsonType: "string", 128 description: "beneficiary Account" 129 }, 130 "senderAccount": { 131 bsonType: "string", 132 description: "sender Account" 133 }, 134 "counterpartInstitution": { 135 bsonType: "string", 136 description: "counterpart Institution" 137 }, 138 "operatingInstitution": { 139 bsonType: "string", 140 description: "operating Institution" 141 }, 142 "frcUprkBeneficiary": { 143 bsonType: "string", 144 description: "frc Up rk Beneficiary" 145 }, 146 "orderingFrcUprk": { 147 bsonType: "string", 148 description: "ordering Frc Up rk" 149 }, 150 "device": { 151 bsonType: "string", 152 description: "device" 153 }, 154 "ip": { 155 bsonType: "string", 156 description: "ip" 157 }, 158 "latitude": { 159 bsonType: "double", 160 description: "latitude" 161 }, 162 "longitude": { 163 bsonType: "double", 164 description: "longitude" 165 }, 166 "recipientName": { 167 bsonType: "string", 168 description: "recipient Name" 169 }, 170 "orderingName": { 171 bsonType: "string", 172 description: "ordering Name" 173 }, 174 "paymentSourceId": { 175 bsonType: "string", 176 description: "payment Source Id" 177 } 178 } 179 } 180 } 181 } 182 } 183});


Target (Java)

1import lombok.Getter; 2import lombok.Setter; 3import org.springframework.data.annotation.Id; 4import javax.validation.constraints.NotNull; 5import org.hibernate.validator.constraints.Email; 6import org.springframework.data.mongodb.core.mapping.Document; 7// import org.springframework.data.mongodb.core.index.Indexed; 8 9@Getter 10@Setter 11@Document(collection = "balances") 12public class Balance { 13 @Id 14 private String id; 15 16 @NotNull(message="account or card number is mandatory") 17 private String accountOrCardNumber; 18 19 private Double currentBalance; 20 21 @NotNull(message="available credit limit is mandatory") 22 private Double availableCreditLimit; 23 24 private Double frozenBalance; 25 26 private String historyDate; 27 28 private String historyTime; 29 30 private TransactionData transactionData; 31 32 private Long transactionAmount; 33 34 private String actionCode; 35 36 private String authorizationCode; 37 38 private String effectiveDate; 39 40 private String description; 41 42 private String paidConcept; 43 44 private String memoPostedIndicator; 45 46 private String suppressMonetaryTransaction; 47 48 private String n1n2ByPass; 49 50 private FalconIdentifier identifier; 51 52 private String box; 53 54 private String crPlaza; 55 56 private String crStore; 57 58 private String keyTracking; 59 60 private String beneficiaryAccount; 61 62 private String senderAccount; 63 64 private String counterpartInstitution; 65 66 private String operatingInstitution; 67 68 private String frcUprkBeneficiary; 69 70 private String orderingFrcUprk; 71 72 private String device; 73 74 private String ip; 75 76 private Double latitude; 77 78 private Double longitude; 79 80 private String recipientName; 81 82 private String orderingName; 83 84 private String paymentSourceId; 85 86}
1import lombok.Getter; 2import lombok.Setter; 3import javax.validation.constraints.NotNull; 4import org.springframework.data.mongodb.core.mapping.Document; 5 6@Getter 7@Setter 8@Document 9public class TransactionData { 10 11 @NotNull(message="transaction Code is mandatory") 12 private String transactionCode; 13 14 private String transactionDescription; 15 16 @NotNull(message="current Balance is mandatory") 17 private Long currentBalance; 18 19 @NotNull(message="open to Buy limit is mandatory") 20 private Long openToBuy; 21 22}


Data Structure for Account Mirror

https://fintechdigital.atlassian.net/browse/SPMS-8

This section presents the Fiserv endpoints of the Account domain and proposes the MongoDB data structure for Mirror Account based on the corresponding request/response.

Version control

Version

Major Changes

Doc

v1.0

  • Initial data structure


v1.1

  • Deleted endpoints

  • Fields deleted for account details



v1.2

  • Deleted endpoints

  • Document restructuring

  • New blocksBy field


For more details on the changes made, please refer to the changelog file.


Source

Fiserv - Account endpoint list

Target

Account Details

Source

  • Fiserv endpoint: GET /account/details

  • Class: FiservRepository

  • Service: getAccountDetails

Response:

1public class AccountDetailsResponseDTO { 2 3 private AccountDataDTO accountData; 4}
1public class AccountDataDTO { 2 3 private String accountNumber; 4 5 private String customerNumber; 6 7 private String blockCode1; 8 9 private String blockCode1Date; 10 11 private String blockCode2; 12 13 private String blockCode2Date; 14 15 private String accountMakerDateOfBirth; 16 17 //this comes in pesos 18 private Double availableCredit; 19 20 //daily posted average balance 21 private Double userAmounts9; 22 23 //daily memo average balance 24 private Double userAmounts10; 25 26 //Total current memo balance 27 private Double userAmounts7; 28 29 public Double getAvailableCredit() { 30 return availableCredit * 100; 31 } 32 33 public Double getUserAmounts9() { 34 return userAmounts9 * 100; 35 } 36 37 public Double getUserAmounts7() { 38 return userAmounts7 * 100; 39 } 40 41 public Double getUserAmounts10() { 42 return userAmounts10 * 100; 43 } 44}

Request

1public class AccountDetailsRequestDTO { 2 3 private String organizationNumber; 4 5 private String accountNumber; 6}

Account Block Code

Source

  • Fiserv endpoint: POST /account/block-code

  • Class: FiservRepository

  • Service: setAccountBlockCode

Response:

1public class AccountBlockUnblockResponseDTO { 2 3 private String functionCode; 4 5 private String accountNumber; 6 7 private String blockCode1Local; 8 9 private Integer localOrganization; 10}

Request

1public class AccountBlockUnblockRequestDTO extends AbstractAccountFiservBaseRequest { 2 3 private String blockCode; 4 5 private Integer blockCodeIndicator; 6 7 private Integer foreignUse; 8 9 private String functionCode; 10}
1public abstract class AbstractAccountFiservBaseRequest extends AbstractFiservBaseRequest { 2 3 protected String accountNumber; 4}
1public abstract class AbstractFiservBaseRequest { 2 3 @Builder.Default 4 protected String organizationNumber = "950"; 5}

Account Mirror - Target (MongoDB)

  • Collection name: accountDetails

  • Schema:

    1 db.createCollection("accountDetails", { 2 validator: { 3 $jsonSchema: { 4 bsonType: "object", 5 title: "Account Details Object Validation", 6 required: ["accountNumber"], 7 properties: { 8 accountNumber: { 9 bsonType: "string", 10 description: "'accountNumber' must be a string and is required" 11 }, 12 customerNumber: { 13 bsonType: "string", 14 description: "'customerNumber' must be a string" 15 }, 16 blockCode1: { 17 bsonType: "string", 18 description: "'blockCode1' must be a string" 19 }, 20 blockCode1Date: { 21 bsonType: "string", 22 description: "'blockCode1Date' must be a string" 23 }, 24 blockCode2: { 25 bsonType: "string", 26 description: "'blockCode2' must be a string" 27 }, 28 blockCode2Date: { 29 bsonType: "string", 30 description: "'blockCode2Date' must be a string" 31 }, 32 blocksBy: { 33 bsonType: "string", 34 description: "'blocksBy' must be a string" 35 } 36 } 37 } 38 } 39 });
  • Index

    1db.accountDetails.createIndex({accountNumber: 1});

Account Mirror - Target (Java)

1import lombok.Getter; 2import lombok.Setter; 3import org.springframework.data.annotation.Id; 4import org.springframework.data.mongodb.core.mapping.Document; 5 6@Getter 7@Setter 8@Document(collection = "accountDetails") 9public class AccountDetail { 10 11 @Id 12 private String id; 13 14 @NotNull(message="account number is mandatory") 15 private String accountNumber; 16 17 private String customerNumber; 18 19 private String blockCode1; 20 21 private String blockCode1Date; 22 23 private String blockCode2; 24 25 private String blockCode2Date; 26 27 private String blocksBy; 28}


Data Structure for Card Mirror

https://fintechdigital.atlassian.net/browse/SPMS-71

Fiserv - Card endpoint list:

  • Create a Card POST /cards/embosser

  • Link Card PUT /account/prepaid

  • Card Activation PUT /cards/activation

  • Block Card PUT /cards/embosser/block

  • Block/Unblock (pin) PUT /cards/pin/status

  • Update Card Pin PUT /cards/pin

  • Get Security Code Detail POST /cards/pin/security-codes

  • Invalid Attemps POST /cards/pin/invalid-attemps

  • Get Credit Card Info POST /cards/embosser/card-pan

Create a Card

Source

  • Fiserv endpoint: /cards/embosser

  • Class: FiservRepository

  • Service: createCard

Request

1public class CardRequestDTO { 2 3 private String addressLine1; 4 5 private String addressLine2; 6 7 private AssignedSpendingLimitsDTO assignedSpendingLimits; 8 9 private int atmCashAmount; 10 11 private int atmCashNumber; 12 13 private int atmCashSingleTransactionLimit; 14 15 private String authorizationCriteriaTableNumber; 16 17 private String authorizationSpendingLimitTable; 18 19 private String blockCode; 20 21 private int branchNumber; 22 23 private int cardAction; 24 25 private String cardActionReasonCode; 26 27 private int cardDelayDays; 28 29 private String cardNumber; 30 31 private int cardSequence; 32 33 private String cardholderAffiliationGroupId; 34 35 private String cardholderFlag; 36 37 private String city; 38 39 private String currentCardActivation; 40 41 private String customerNumber; 42 43 private int deliveryOption; 44 45 private String deviceIndicator; 46 47 private String embossedName1; 48 49 private String embossedName2; 50 51 private String enrollmentStatusVBV; 52 53 private String expirationDate; 54 55 private int firstIssueBranch; 56 57 private int internetPurchaseAmount; 58 59 private int internetPurchaseNumber; 60 61 private int internetPurchaseSingleTransactionLimit; 62 63 private String languageCode; 64 65 private int maximumAuthorizationFrequency; 66 67 private String name1; 68 69 private int name1TypeIndicator; 70 71 private String name2; 72 73 private int name2TypeIndicator; 74 75 private String nextCardExpirationDate; 76 77 private int numberOfCardsRequested; 78 79 private int organizationNumber; 80 81 private int overTheCounterCashAmount; 82 83 private int overTheCounterCashNumber; 84 85 private int overTheCounterCashSingleTransactionLimit; 86 87 private int pinMailerDelayDays; 88 89 private int pinOffset; 90 91 private int pinSuppression; 92 93 private String plasticId; 94 95 private int posServiceCode; 96 97 private String postToAccount; 98 99 private int postalCode; 100 101 private int processType; 102 103 private int programId; 104 105 private int reissueDeliveryOption; 106 107 private String requestedCardType; 108 109 private int retailPurchaseAmt; 110 111 private int retailPurchaseNumber; 112 113 private int retailPurchaseSingleTransactionLimit; 114 115 private int securedCodeActivate; 116 117 private String stateOrProvince; 118 119 private String typeCardMailer; 120 121 private String typeOfCard; 122 123 private int user1; 124 125 private int user2; 126 127 private int user3; 128 129 private int user4; 130 131 private int user5; 132 133 private int user6; 134 135 private int user7; 136 137 private int user8; 138 139 private String userDate1; 140 141 private String userDate2; 142 143 private String vbvPassword; 144 145 private String visaMiniIndicator; 146 147 private String visaPlusIndicator; 148 149}

Response

1public class AddCardResponseDTO { 2 3 private String panToken; 4 5}

Link Card

Source

  • Fiserv endpoint: /account/prepaid

  • Class: FiservRepository

  • Service: linkCardToAccount

Request

1public class CardToAccountLinkingRequestDTO { 2 3 private String cardNumber; 4 5 private Integer cardholderType; 6 7 private String customerOrAccountNumber; 8 9}

Response

1public class CardToAccountLinkingResponseDTO { 2 3 private String cardNumber; 4 5 private String customerOrAccountNumber; 6 7}

Card Activation

Source

  • Fiserv endpoint: /cards/activation

  • Class: FiservRepository

  • Service: activateCard

Request

1public class CardActivationRequestDTO { 2 @NotNull(message = "userId is required") 3 private String userId; 4 5 @NotNull(message = "panToken is required") 6 @Size(min = 12, max = 19, message = "panToken length must be between 12 and 19") 7 private String panToken; 8 9 @NotNull(message = "cardNumber is required") 10 @Size(min = 12, max = 19, message = "cardNumber length must be between 12 and 19") 11 private String cardNumber; 12 13 private OxxoStoreDTO oxxoStoreDTO; 14} 15 16public class OxxoStoreDTO { 17 @NotBlank private String id; 18 @NotBlank private String place; 19 @NotBlank private String store; 20 private String storeName; 21 private String stateName; 22 private String oxxoStoreStateCode; 23 private String colony; 24 private String municipality; 25 private String city; 26 private Integer postalCode; 27 @NotNull 28 @Min(value = -90) 29 @Max(value = 90) 30 private Double latitud; 31 @NotNull 32 @Min(value = -180) 33 @Max(value = 180) 34 private Double longitud; 35 @NotNull 36 private Integer affiliationNumber; 37}

Response

1public class CardActivationResponseDTO { 2 private String cardNumber; 3}

Block Activation

Source

  • Fiserv endpoint: /cards/embosser/block

  • Class: FiservRepository

  • Service: blockCard

Request

1public class CardBlockingRequestDTO { 2 @NotBlank(message = "userId is Required") 3 private String userId; 4 5 @NotNull(message = "blockingReason is required") 6 private BlockingReason blockingReason; 7} 8 9public enum BlockingReason { 10 FROZEN("A", true), 11 GUARDIAN("B"), 12 DECEASED("D"), 13 VOLUNTARY_CANCELLATION("C"), 14 LOST("L"), 15 STOLEN("S"), 16 DAMAGED("E"), 17 FRAUD("F", true), 18 MISHANDLING("V"), 19 ACCOUNT_WITHOUT_CARD("X"), 20 PREVENTIVE("Y"); 21 22 private String fiservBlockCode; 23 private boolean unblockable; 24 25 BlockingReason(String fiservBlockCode) { 26 this(fiservBlockCode, false); 27 } 28 29 public static BlockingReason resolveFromFiservCode(String fiservCode){ 30 return Arrays.stream(values()).filter(blockingReason -> blockingReason.fiservBlockCode.equals(fiservCode)).findAny().orElse(null); 31 } 32}

Response

1public class CardBlockingResponseDTO { 2 private String name; 3}

Block/Unblock

Source

  • Fiserv endpoint: /cards/pin/status

  • Class: FiservRepository

  • Service: activateCard

Request

1public class FiservCardPinBlockUnblockRequestDTO { 2 private String cardNumber; 3 private Integer cardSequenceNumber; 4 private String channel; 5 private Integer organizationNumber; 6 private String serviceFunctionCode; 7}

Response

1public class FiservCardPinBlockUnblockResponseDTO { 2 private String cardNumber; 3 private Integer cardSequenceNumber; 4}

Update Card Pin

Source

  • Fiserv endpoint: /cards/pin

  • Class: FiservRepository

  • Service: activateCard

Request

1public class FiservCardPinUpdateRequestDTO { 2 private String cardNumber; 3 private String channel; 4 private String keyAssociationNumber; 5 private String newPinBlock; 6 private Integer organizationNumber; 7}

Response

1public class FiservCardPinUpdateResponseDTO { 2 private String cardNumber; 3}

Get Security Code Detail

Source

  • Fiserv endpoint: /cards/pin/security-codes

  • Class: FiservRepository

  • Service: activateCard

Request

1public class SecurityCodeDetailsRequestDTO extends AbstractFiservBaseRequest { 2 private String cardNumber; 3 private String channel; 4 private String keyAssociation; 5}

Response

1public class SecurityCodeDetailsResponseDTO { 2 private String pinEncrypt; 3}

Invalid Attemps

Source

  • Fiserv endpoint: /cards/pin/invalid-attemps

  • Class: FiservRepository

  • Service: activateCard

Request

1public class PinInvalidAttemptsRequestDTO { 2 private String cardNumber; 3 private int cardSequenceNumber; 4}

Response

1public class PinInvalidAttemptsResponseDTO { 2 private PinInvalidAttemptsOutputAreaDTO outputArea; 3} 4 5public class PinInvalidAttemptsOutputAreaDTO { 6 private String cardNumber; 7 private int cardSequenceNumber; 8 private int cardInvalidPinTries; 9 private String cardInvalidPinTryDate; 10 private int maxNumberInvalidPinTries; 11 private String exceededInvalidPinTries; 12 private String blockedIndicator; 13}

Get Credit Card Info

Source

  • Fiserv endpoint: /cards/embosser/card-pan

  • Class: FiservRepository

  • Service: activateCard

Request

1public class FiservCardRequestDTO extends AbstractFiservBaseRequest { 2 private Integer cardSequence; 3 private String functionType; 4 private String cardNumber; 5 6 public enum FunctionType { 7 CARD_NUMBER("C"), 8 PAN_TOKEN("P"); 9 10 private String type; 11 12 FunctionType(String type) { 13 this.type = type; 14 } 15 16 public String getValue() { 17 return type; 18 } 19 } 20}

Response

1public class FiservCardResponseDTO { 2 private Integer organizationNumber; 3 private Integer logo; 4 private String cardNumber; 5 private String accountNumber; 6 private Integer cardSequence; 7 private String panToken; 8}


Target (MongoDB Schema)

  • Collection Name: cards

Schema

1db.createCollection("cards",{ 2validator: { 3 $jsonSchema: { 4 bsonType: "object", 5 description: "Card object collection", 6 required: [], 7 properties: { 8 "addressLine1": { 9 bsonType: "string", 10 description: "addressLine1" 11 }, 12 "addressLine2": { 13 bsonType: "string", 14 description: "addressLine2" 15 }, 16 "atmCashAmount": { 17 bsonType: "int", 18 description: "atmCashAmount" 19 }, 20 "atmCashNumber": { 21 bsonType: "int", 22 description: "atmCashNumber" 23 }, 24 "atmCashSingleTransactionLimit": { 25 bsonType: "int", 26 description: "atmCashSingleTransactionLimit" 27 }, 28 "authorizationCriteriaTableNumber": { 29 bsonType: "string", 30 description: "authorizationCriteriaTableNumber" 31 }, 32 "authorizationSpendingLimitTable": { 33 bsonType: "string", 34 description: "authorizationSpendingLimitTable" 35 }, 36 "blockCode": { 37 bsonType: "string", 38 description: "blockCode" 39 }, 40 "branchNumber": { 41 bsonType: "int", 42 description: "branchNumber" 43 }, 44 "cardAction": { 45 bsonType: "int", 46 description: "cardAction" 47 }, 48 "cardActionReasonCode": { 49 bsonType: "string", 50 description: "cardActionReasonCode" 51 }, 52 "cardDelayDays": { 53 bsonType: "int", 54 description: "cardDelayDays" 55 }, 56 "cardNumber": { 57 bsonType: "string", 58 description: "cardNumber" 59 }, 60 "cardSequence": { 61 bsonType: "int", 62 description: "cardSequence" 63 }, 64 "cardholderAffiliationGroupId": { 65 bsonType: "string", 66 description: "cardholderAffiliationGroupId" 67 }, 68 "cardholderFlag": { 69 bsonType: "string", 70 description: "cardholderFlag" 71 }, 72 "city": { 73 bsonType: "string", 74 description: "city" 75 }, 76 "currentCardActivation": { 77 bsonType: "string", 78 description: "currentCardActivation" 79 }, 80 "customerNumber": { 81 bsonType: "string", 82 description: "customerNumber" 83 }, 84 "deliveryOption": { 85 bsonType: "int", 86 description: "deliveryOption" 87 }, 88 "deviceIndicator": { 89 bsonType: "string", 90 description: "deviceIndicator" 91 }, 92 "embossedName1": { 93 bsonType: "string", 94 description: "embossedName1" 95 }, 96 "embossedName2": { 97 bsonType: "string", 98 description: "embossedName2" 99 }, 100 "enrollmentStatusVBV": { 101 bsonType: "string", 102 description: "enrollmentStatusVBV" 103 }, 104 "expirationDate": { 105 bsonType: "string", 106 description: "expirationDate" 107 }, 108 "firstIssueBranch": { 109 bsonType: "int", 110 description: "firstIssueBranch" 111 }, 112 "internetPurchaseAmount": { 113 bsonType: "int", 114 description: "internetPurchaseAmount" 115 }, 116 "internetPurchaseNumber": { 117 bsonType: "int", 118 description: "internetPurchaseNumber" 119 }, 120 "internetPurchaseSingleTransactionLimit": { 121 bsonType: "int", 122 description: "internetPurchaseSingleTransactionLimit" 123 }, 124 "languageCode": { 125 bsonType: "string", 126 description: "languageCode" 127 }, 128 "maximumAuthorizationFrequency": { 129 bsonType: "int", 130 description: "maximumAuthorizationFrequency" 131 }, 132 "name1": { 133 bsonType: "string", 134 description: "name1" 135 }, 136 "name1TypeIndicator": { 137 bsonType: "int", 138 description: "name1TypeIndicator" 139 }, 140 "name2": { 141 bsonType: "string", 142 description: "name2" 143 }, 144 "name2TypeIndicator": { 145 bsonType: "int", 146 description: "name2TypeIndicator" 147 }, 148 "nextCardExpirationDate": { 149 bsonType: "string", 150 description: "nextCardExpirationDate" 151 }, 152 "numberOfCardsRequested": { 153 bsonType: "int", 154 description: "numberOfCardsRequested" 155 }, 156 "organizationNumber": { 157 bsonType: "int", 158 description: "organizationNumber" 159 }, 160 "overTheCounterCashAmount": { 161 bsonType: "int", 162 description: "overTheCounterCashAmount" 163 }, 164 "overTheCounterCashNumber": { 165 bsonType: "int", 166 description: "overTheCounterCashNumber" 167 }, 168 "overTheCounterCashSingleTransactionLimit": { 169 bsonType: "int", 170 description: "overTheCounterCashSingleTransactionLimit" 171 }, 172 "pinMailerDelayDays": { 173 bsonType: "int", 174 description: "pinMailerDelayDays" 175 }, 176 "pinOffset": { 177 bsonType: "int", 178 description: "pinOffset" 179 }, 180 "pinSuppression": { 181 bsonType: "int", 182 description: "pinSuppression" 183 }, 184 "plasticId": { 185 bsonType: "string", 186 description: "plasticId" 187 }, 188 "posServiceCode": { 189 bsonType: "int", 190 description: "posServiceCode" 191 }, 192 "postToAccount": { 193 bsonType: "string", 194 description: "postToAccount" 195 }, 196 "postalCode": { 197 bsonType: "int", 198 description: "postalCode" 199 }, 200 "processType": { 201 bsonType: "int", 202 description: "processType" 203 }, 204 "programId": { 205 bsonType: "int", 206 description: "programId" 207 }, 208 "reissueDeliveryOption": { 209 bsonType: "int", 210 description: "reissueDeliveryOption" 211 }, 212 "requestedCardType": { 213 bsonType: "string", 214 description: "requestedCardType" 215 }, 216 "retailPurchaseAmt": { 217 bsonType: "int", 218 description: "retailPurchaseAmt" 219 }, 220 "retailPurchaseNumber": { 221 bsonType: "int", 222 description: "retailPurchaseNumber" 223 }, 224 "retailPurchaseSingleTransactionLimit": { 225 bsonType: "int", 226 description: "retailPurchaseSingleTransactionLimit" 227 }, 228 "securedCodeActivate": { 229 bsonType: "int", 230 description: "securedCodeActivate" 231 }, 232 "stateOrProvince": { 233 bsonType: "string", 234 description: "stateOrProvince" 235 }, 236 "typeCardMailer": { 237 bsonType: "string", 238 description: "typeCardMailer" 239 }, 240 "typeOfCard": { 241 bsonType: "string", 242 description: "typeOfCard" 243 }, 244 "user1": { 245 bsonType: "int", 246 description: "user1" 247 }, 248 "user2": { 249 bsonType: "int", 250 description: "user2" 251 }, 252 "user3": { 253 bsonType: "int", 254 description: "user3" 255 }, 256 "user4": { 257 bsonType: "int", 258 description: "user4" 259 }, 260 "user5": { 261 bsonType: "int", 262 description: "user5" 263 }, 264 "user6": { 265 bsonType: "int", 266 description: "user6" 267 }, 268 "user7": { 269 bsonType: "int", 270 description: "user7" 271 }, 272 "user8": { 273 bsonType: "int", 274 description: "user8" 275 }, 276 "userDate1": { 277 bsonType: "string", 278 description: "userDate1" 279 }, 280 "userDate2": { 281 bsonType: "string", 282 description: "userDate2" 283 }, 284 "vbvPassword": { 285 bsonType: "string", 286 description: "vbvPassword" 287 }, 288 "visaMiniIndicator": { 289 bsonType: "string", 290 description: "visaMiniIndicator" 291 }, 292 "visaPlusIndicator": { 293 bsonType: "string", 294 description: "visaPlusIndicator" 295 }, } 296 } 297}