Purchase

25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
public class Purchase {
 
  /**
   * Indicates the maximum number of authorisations permitted for instalment payments. The field is limited to maximum
   * 3 characters and value shall be greater than 1.
   *
   * The fields is required if the Merchant and Cardholder have agreed to installment payments, i.e. if 3DS Requestor
   * Authentication Indicator = 03. Omitted if not an installment payment authentication.
   */
  private Integer purchaseInstalData;
  /**
   * Merchant's assessment of the level of fraud risk for the specific authentication for both the cardholder and the
   * authentication being conducted.
   *
   * The field is optional but strongly recommended to include.
   *
   * This object contains the following fields:
   *    shipIndicator -> Indicates shipping method chosen for the transaction. Merchants must choose the Shipping
   *                     Indicator code that most accurately describes the cardholder's specific transaction.
   *                     If one or more items are included in the sale, use the Shipping Indicator code for the physical
   *                     goods, or if all digital goods, use the code that describes the most expensive item.
   *                     Accepted values are:
   *                        01 -> Ship to cardholder's billing address
   *                        02 -> Ship to another verified address on file with merchant
   *                        03 -> Ship to address that is different than the cardholder's billing address
   *                        04 -> "Ship to Store" / Pick-up at local store (Store address shall be populated in shipping
   *                              address fields)
   *                        05 -> Digital goods (includes online services, electronic gift cards and redemption codes)
   *                        06 -> Travel and Event tickets, not shipped
   *                        07 -> Other (for example, Gaming, digital services not shipped, e-media subscriptions, etc.)
   *    deliveryTimeframe -> Indicates the merchandise delivery timeframe. Accepted values are:
   *                            01 -> Electronic Delivery
   *                            02 -> Same day shipping
   *                            03 -> Overnight shipping
   *                            04 -> Two-day or more shipping
   *    deliveryEmailAddress -> For electronic delivery, the email address to which the merchandise was delivered.
   *    reorderItemsInd -> Indicates whether the cardholder is reordering previously purchased merchandise.
   *                       Accepted values are:
   *                          01 -> First time ordered
   *                          02 -> Reordered
   *    preOrderPurchaseInd -> Indicates whether Cardholder is placing an order for merchandise with a future
   *                           availability or release date. Accepted values are:
   *                              01 -> Merchandise available
   *                              02 -> Future availability
   *    preOrderDate -> For a pre-ordered purchase, the expected date that the merchandise will be available.
   *                    Date format must be YYYYMMDD.
   *    giftCardAmount -> For prepaid or gift card purchase, the purchase amount total of prepaid or gift card(s) in
   *                      major units (for example, USD 123.45 is 123).
   *    giftCardCurr -> For prepaid or gift card purchase, the currency code of the card as defined in ISO 4217 except
   *                    955 - 964 and 999.
   *    giftCardCount -> For prepaid or gift card purchase, total count of individual prepaid or gift cards/codes
   *                     purchased. Field is limited to 2 characters.
   */
  private MerchantRiskIndicator merchantRiskIndicator;
  /**
   * Purchase amount in minor units of currency with all punctuation removed. When used in conjunction with the Purchase
   * Currentcy Exponent field, proper punctuation can be calculated. Example: If the purchase amount is USD 123.45,
   * element will contain the value 12345. The field is limited to maximum 48 characters.
   *
   * This field is required for 02 - NPA message category if 3DS Requestor Authentication Indicator = 02 or 03.
   */
  private BigInteger purchaseAmount;
  /**
   * Currency in which purchase amount is expressed. The value is limited to 3 numeric characters and is represented by
   * the ISO 4217 three-digit currency code, except 955-964 and 999.
   *
   * This field is required for requests where messageCategory = 01-PA and for 02-NPA if 3DS Requestor Authentication
   * Indicator = 02 or 03.
   */
  private String purchaseCurrency;
  /**
   * Minor units of currency as specified in the ISO 4217 currency exponent. The field is limited to 1 character and it
   * is required for 01-PA and for 02-NPA if 3DS Requestor Authentication Indicator = 02 or 03.
   *
   * Example: for currency USD the exponent should be 2, and for Yen the exponent should be 0.
   */
  private Integer purchaseExponent;
  /**
   * Date and time of the purchase, expressed in UTC. The field is limited to 14 characters,
   * formatted as YYYYMMDDHHMMSS.
   *
   * This field is required for 01-PA and for 02-NPA, if 3DS Requestor Authentication Indicator = 02 or 03.
   */
  @JsonFormat(pattern = "yyyyMMddHHmmss")
  private LocalDateTime purchaseDate;
  /**
   * Date after which no further authorizations shall be performed. This field is limited to 8 characters, and the
   * accepted format is YYYYMMDD.
   *
   * This field is required for 01-PA and for 02-NPA, if 3DS Requestor Authentication Indicator = 02 or 03.
   */
  @JsonFormat(pattern = "yyyyMMdd")
  private LocalDate recurringExpiry;
  /**
   * Indicates the minimum number of days between authorizations. The field is limited to maximum 4 characters.
   *
   * This field is required if 3DS Requestor Authentication Indicator = 02 or 03.
   */
  private Integer recurringFrequency;
  /**
   * Identifies the type of transaction being authenticated. The values are derived from ISO 8583. Accepted values are:
   *    01 -> Goods / Service purchase
   *    03 -> Check Acceptance
   *    10 -> Account Funding
   *    11 -> Quasi-Cash Transaction
   *    28 -> Prepaid activation and Loan
   *
   * This field is required in some markets. Otherwise, the field is optional.
   */
  private TransactionTypeEnum transType;
}