globalpayments-api 3.0.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (596) hide show
  1. package/.eslintignore +9 -0
  2. package/.eslintrc.cjs +39 -0
  3. package/.prettierrc +14 -4
  4. package/CHANGELOG.md +44 -32
  5. package/lib/src/Builders/AuthorizationBuilder.d.ts +325 -325
  6. package/lib/src/Builders/AuthorizationBuilder.js +616 -600
  7. package/lib/src/Builders/AuthorizationBuilder.js.map +1 -1
  8. package/lib/src/Builders/BaseBuilder/ValidationClause.d.ts +14 -14
  9. package/lib/src/Builders/BaseBuilder/ValidationClause.js +61 -61
  10. package/lib/src/Builders/BaseBuilder/ValidationClause.js.map +1 -1
  11. package/lib/src/Builders/BaseBuilder/ValidationTarget.d.ts +16 -16
  12. package/lib/src/Builders/BaseBuilder/ValidationTarget.js +35 -28
  13. package/lib/src/Builders/BaseBuilder/ValidationTarget.js.map +1 -1
  14. package/lib/src/Builders/BaseBuilder/Validations.d.ts +11 -11
  15. package/lib/src/Builders/BaseBuilder/Validations.js +54 -56
  16. package/lib/src/Builders/BaseBuilder/Validations.js.map +1 -1
  17. package/lib/src/Builders/BaseBuilder.d.ts +11 -11
  18. package/lib/src/Builders/BaseBuilder.js +16 -16
  19. package/lib/src/Builders/BaseBuilder.js.map +1 -1
  20. package/lib/src/Builders/ManagementBuilder.d.ts +104 -103
  21. package/lib/src/Builders/ManagementBuilder.js +207 -227
  22. package/lib/src/Builders/ManagementBuilder.js.map +1 -1
  23. package/lib/src/Builders/PayFacBuilder.d.ts +98 -96
  24. package/lib/src/Builders/PayFacBuilder.js +233 -184
  25. package/lib/src/Builders/PayFacBuilder.js.map +1 -1
  26. package/lib/src/Builders/RecurringBuilder.d.ts +13 -13
  27. package/lib/src/Builders/RecurringBuilder.js +33 -47
  28. package/lib/src/Builders/RecurringBuilder.js.map +1 -1
  29. package/lib/src/Builders/ReportBuilder.d.ts +8 -8
  30. package/lib/src/Builders/ReportBuilder.js +20 -36
  31. package/lib/src/Builders/ReportBuilder.js.map +1 -1
  32. package/lib/src/Builders/RequestBuilder/GpApi/AccessTokenRequest.d.ts +11 -0
  33. package/lib/src/Builders/RequestBuilder/GpApi/AccessTokenRequest.js +23 -0
  34. package/lib/src/Builders/RequestBuilder/GpApi/AccessTokenRequest.js.map +1 -0
  35. package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.d.ts +17 -0
  36. package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.js +36 -0
  37. package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.js.map +1 -0
  38. package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.d.ts +6 -0
  39. package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.js +49 -0
  40. package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.js.map +1 -0
  41. package/lib/src/Builders/RequestBuilder/GpApi/index.d.ts +3 -0
  42. package/lib/src/Builders/RequestBuilder/GpApi/index.js +20 -0
  43. package/lib/src/Builders/RequestBuilder/GpApi/index.js.map +1 -0
  44. package/lib/src/Builders/RequestBuilder/GpEcom/GpEcomAuthorizationRequestBuilder.d.ts +17 -22
  45. package/lib/src/Builders/RequestBuilder/GpEcom/GpEcomAuthorizationRequestBuilder.js +108 -159
  46. package/lib/src/Builders/RequestBuilder/GpEcom/GpEcomAuthorizationRequestBuilder.js.map +1 -1
  47. package/lib/src/Builders/RequestBuilder/GpEcom/GpEcomManagementRequestBuilder.d.ts +11 -0
  48. package/lib/src/Builders/RequestBuilder/GpEcom/GpEcomManagementRequestBuilder.js +83 -0
  49. package/lib/src/Builders/RequestBuilder/GpEcom/GpEcomManagementRequestBuilder.js.map +1 -0
  50. package/lib/src/Builders/RequestBuilder/GpEcom/GpEcomRequestBuilder.d.ts +9 -6
  51. package/lib/src/Builders/RequestBuilder/GpEcom/GpEcomRequestBuilder.js +65 -23
  52. package/lib/src/Builders/RequestBuilder/GpEcom/GpEcomRequestBuilder.js.map +1 -1
  53. package/lib/src/Builders/RequestBuilder/GpEcom/index.d.ts +3 -2
  54. package/lib/src/Builders/RequestBuilder/GpEcom/index.js +19 -14
  55. package/lib/src/Builders/RequestBuilder/GpEcom/index.js.map +1 -1
  56. package/lib/src/Builders/RequestBuilder/RequestBuilderFactory.d.ts +7 -6
  57. package/lib/src/Builders/RequestBuilder/RequestBuilderFactory.js +30 -29
  58. package/lib/src/Builders/RequestBuilder/RequestBuilderFactory.js.map +1 -1
  59. package/lib/src/Builders/RequestBuilder/index.d.ts +3 -2
  60. package/lib/src/Builders/RequestBuilder/index.js +19 -14
  61. package/lib/src/Builders/RequestBuilder/index.js.map +1 -1
  62. package/lib/src/Builders/TransactionBuilder.d.ts +12 -10
  63. package/lib/src/Builders/TransactionBuilder.js +42 -46
  64. package/lib/src/Builders/TransactionBuilder.js.map +1 -1
  65. package/lib/src/Builders/TransactionReportBuilder.d.ts +15 -15
  66. package/lib/src/Builders/TransactionReportBuilder.js +64 -79
  67. package/lib/src/Builders/TransactionReportBuilder.js.map +1 -1
  68. package/lib/src/Builders/index.d.ts +8 -8
  69. package/lib/src/Builders/index.js +24 -20
  70. package/lib/src/Builders/index.js.map +1 -1
  71. package/lib/src/ConfiguredServices.d.ts +18 -22
  72. package/lib/src/ConfiguredServices.js +23 -56
  73. package/lib/src/ConfiguredServices.js.map +1 -1
  74. package/lib/src/Entities/Address.d.ts +13 -13
  75. package/lib/src/Entities/Address.js +20 -19
  76. package/lib/src/Entities/Address.js.map +1 -1
  77. package/lib/src/Entities/BatchSummary.d.ts +6 -6
  78. package/lib/src/Entities/BatchSummary.js +10 -9
  79. package/lib/src/Entities/BatchSummary.js.map +1 -1
  80. package/lib/src/Entities/Customer.d.ts +64 -64
  81. package/lib/src/Entities/Customer.js +79 -47
  82. package/lib/src/Entities/Customer.js.map +1 -1
  83. package/lib/src/Entities/CustomerDocument.d.ts +8 -0
  84. package/lib/src/Entities/CustomerDocument.js +16 -0
  85. package/lib/src/Entities/CustomerDocument.js.map +1 -0
  86. package/lib/src/Entities/DocumentUploadData.d.ts +13 -13
  87. package/lib/src/Entities/DocumentUploadData.js +80 -48
  88. package/lib/src/Entities/DocumentUploadData.js.map +1 -1
  89. package/lib/src/Entities/EcommerceInfo.d.ts +12 -12
  90. package/lib/src/Entities/EcommerceInfo.js +21 -14
  91. package/lib/src/Entities/EcommerceInfo.js.map +1 -1
  92. package/lib/src/Entities/EncryptionData.d.ts +6 -6
  93. package/lib/src/Entities/EncryptionData.js +10 -9
  94. package/lib/src/Entities/EncryptionData.js.map +1 -1
  95. package/lib/src/Entities/Enums.d.ts +428 -373
  96. package/lib/src/Entities/Enums.js +564 -497
  97. package/lib/src/Entities/Enums.js.map +1 -1
  98. package/lib/src/Entities/Errors.d.ts +23 -23
  99. package/lib/src/Entities/Errors.js +71 -106
  100. package/lib/src/Entities/Errors.js.map +1 -1
  101. package/lib/src/Entities/GpApi/AccessTokenInfo.d.ts +16 -0
  102. package/lib/src/Entities/GpApi/AccessTokenInfo.js +21 -0
  103. package/lib/src/Entities/GpApi/AccessTokenInfo.js.map +1 -0
  104. package/lib/src/Entities/GpApi/GpApiAccount.d.ts +5 -0
  105. package/lib/src/Entities/GpApi/GpApiAccount.js +13 -0
  106. package/lib/src/Entities/GpApi/GpApiAccount.js.map +1 -0
  107. package/lib/src/Entities/GpApi/GpApiRequest.d.ts +21 -0
  108. package/lib/src/Entities/GpApi/GpApiRequest.js +26 -0
  109. package/lib/src/Entities/GpApi/GpApiRequest.js.map +1 -0
  110. package/lib/src/Entities/GpApi/GpApiTokenResponse.d.ts +52 -0
  111. package/lib/src/Entities/GpApi/GpApiTokenResponse.js +115 -0
  112. package/lib/src/Entities/GpApi/GpApiTokenResponse.js.map +1 -0
  113. package/lib/src/Entities/GpApi/index.d.ts +4 -0
  114. package/lib/src/Entities/GpApi/index.js +21 -0
  115. package/lib/src/Entities/GpApi/index.js.map +1 -0
  116. package/lib/src/Entities/HostedPaymentData.d.ts +10 -10
  117. package/lib/src/Entities/HostedPaymentData.js +16 -10
  118. package/lib/src/Entities/HostedPaymentData.js.map +1 -1
  119. package/lib/src/Entities/IRequestBuilder.d.ts +6 -7
  120. package/lib/src/Entities/IRequestBuilder.js +2 -2
  121. package/lib/src/Entities/ProFac/AccountBalanceResponseData.d.ts +7 -7
  122. package/lib/src/Entities/ProFac/AccountBalanceResponseData.js +11 -9
  123. package/lib/src/Entities/ProFac/AccountBalanceResponseData.js.map +1 -1
  124. package/lib/src/Entities/ProFac/AccountPermissions.d.ts +15 -15
  125. package/lib/src/Entities/ProFac/AccountPermissions.js +18 -9
  126. package/lib/src/Entities/ProFac/AccountPermissions.js.map +1 -1
  127. package/lib/src/Entities/ProFac/BankAccountData.d.ts +10 -10
  128. package/lib/src/Entities/ProFac/BankAccountData.js +41 -9
  129. package/lib/src/Entities/ProFac/BankAccountData.js.map +1 -1
  130. package/lib/src/Entities/ProFac/BankAccountOwnershipData.d.ts +8 -8
  131. package/lib/src/Entities/ProFac/BankAccountOwnershipData.js +14 -11
  132. package/lib/src/Entities/ProFac/BankAccountOwnershipData.js.map +1 -1
  133. package/lib/src/Entities/ProFac/BeneficialOwnerData.d.ts +6 -6
  134. package/lib/src/Entities/ProFac/BeneficialOwnerData.js +11 -10
  135. package/lib/src/Entities/ProFac/BeneficialOwnerData.js.map +1 -1
  136. package/lib/src/Entities/ProFac/BeneficialOwnerDataResult.d.ts +5 -5
  137. package/lib/src/Entities/ProFac/BeneficialOwnerDataResult.js +9 -9
  138. package/lib/src/Entities/ProFac/BeneficialOwnerDataResult.js.map +1 -1
  139. package/lib/src/Entities/ProFac/BusinessData.d.ts +15 -14
  140. package/lib/src/Entities/ProFac/BusinessData.js +49 -11
  141. package/lib/src/Entities/ProFac/BusinessData.js.map +1 -1
  142. package/lib/src/Entities/ProFac/DeviceAttributeInfo.d.ts +4 -4
  143. package/lib/src/Entities/ProFac/DeviceAttributeInfo.js +16 -9
  144. package/lib/src/Entities/ProFac/DeviceAttributeInfo.js.map +1 -1
  145. package/lib/src/Entities/ProFac/DeviceData.d.ts +5 -5
  146. package/lib/src/Entities/ProFac/DeviceData.js +10 -10
  147. package/lib/src/Entities/ProFac/DeviceData.js.map +1 -1
  148. package/lib/src/Entities/ProFac/DeviceInfo.d.ts +6 -6
  149. package/lib/src/Entities/ProFac/DeviceInfo.js +18 -9
  150. package/lib/src/Entities/ProFac/DeviceInfo.js.map +1 -1
  151. package/lib/src/Entities/ProFac/FlashFundsPaymentCardData.d.ts +7 -7
  152. package/lib/src/Entities/ProFac/FlashFundsPaymentCardData.js +14 -13
  153. package/lib/src/Entities/ProFac/FlashFundsPaymentCardData.js.map +1 -1
  154. package/lib/src/Entities/ProFac/GrossBillingInformation.d.ts +8 -8
  155. package/lib/src/Entities/ProFac/GrossBillingInformation.js +9 -9
  156. package/lib/src/Entities/ProFac/GrossBillingInformation.js.map +1 -1
  157. package/lib/src/Entities/ProFac/OrderDevice.d.ts +18 -18
  158. package/lib/src/Entities/ProFac/OrderDevice.js +22 -9
  159. package/lib/src/Entities/ProFac/OrderDevice.js.map +1 -1
  160. package/lib/src/Entities/ProFac/OwnersData.d.ts +12 -12
  161. package/lib/src/Entities/ProFac/OwnersData.js +42 -11
  162. package/lib/src/Entities/ProFac/OwnersData.js.map +1 -1
  163. package/lib/src/Entities/ProFac/PayFacResponseData.d.ts +55 -55
  164. package/lib/src/Entities/ProFac/PayFacResponseData.js +61 -9
  165. package/lib/src/Entities/ProFac/PayFacResponseData.js.map +1 -1
  166. package/lib/src/Entities/ProFac/RenewAccountData.d.ts +10 -10
  167. package/lib/src/Entities/ProFac/RenewAccountData.js +37 -11
  168. package/lib/src/Entities/ProFac/RenewAccountData.js.map +1 -1
  169. package/lib/src/Entities/ProFac/SignificantOwnerData.d.ts +8 -8
  170. package/lib/src/Entities/ProFac/SignificantOwnerData.js +26 -11
  171. package/lib/src/Entities/ProFac/SignificantOwnerData.js.map +1 -1
  172. package/lib/src/Entities/ProFac/ThreatRiskData.d.ts +5 -5
  173. package/lib/src/Entities/ProFac/ThreatRiskData.js +18 -9
  174. package/lib/src/Entities/ProFac/ThreatRiskData.js.map +1 -1
  175. package/lib/src/Entities/ProFac/UserPersonalData.d.ts +26 -26
  176. package/lib/src/Entities/ProFac/UserPersonalData.js +81 -14
  177. package/lib/src/Entities/ProFac/UserPersonalData.js.map +1 -1
  178. package/lib/src/Entities/RecurringEntity.d.ts +14 -14
  179. package/lib/src/Entities/RecurringEntity.js +91 -86
  180. package/lib/src/Entities/RecurringEntity.js.map +1 -1
  181. package/lib/src/Entities/Request.d.ts +10 -9
  182. package/lib/src/Entities/Request.js +17 -14
  183. package/lib/src/Entities/Request.js.map +1 -1
  184. package/lib/src/Entities/SSORequestData.d.ts +5 -5
  185. package/lib/src/Entities/SSORequestData.js +18 -9
  186. package/lib/src/Entities/SSORequestData.js.map +1 -1
  187. package/lib/src/Entities/Schedule.d.ts +47 -47
  188. package/lib/src/Entities/Schedule.js +324 -253
  189. package/lib/src/Entities/Schedule.js.map +1 -1
  190. package/lib/src/Entities/ServiceEndpoints.d.ts +12 -4
  191. package/lib/src/Entities/ServiceEndpoints.js +16 -8
  192. package/lib/src/Entities/ServiceEndpoints.js.map +1 -1
  193. package/lib/src/Entities/Transaction.d.ts +78 -78
  194. package/lib/src/Entities/Transaction.js +126 -108
  195. package/lib/src/Entities/Transaction.js.map +1 -1
  196. package/lib/src/Entities/TransactionSummary.d.ts +61 -61
  197. package/lib/src/Entities/TransactionSummary.js +65 -9
  198. package/lib/src/Entities/TransactionSummary.js.map +1 -1
  199. package/lib/src/Entities/index.d.ts +17 -15
  200. package/lib/src/Entities/index.js +33 -27
  201. package/lib/src/Entities/index.js.map +1 -1
  202. package/lib/src/Gateways/Gateway.d.ts +12 -10
  203. package/lib/src/Gateways/Gateway.js +69 -42
  204. package/lib/src/Gateways/Gateway.js.map +1 -1
  205. package/lib/src/Gateways/GatewayResponse.d.ts +8 -0
  206. package/lib/src/Gateways/GatewayResponse.js +15 -0
  207. package/lib/src/Gateways/GatewayResponse.js.map +1 -0
  208. package/lib/src/Gateways/GpApiConnector.d.ts +41 -0
  209. package/lib/src/Gateways/GpApiConnector.js +218 -0
  210. package/lib/src/Gateways/GpApiConnector.js.map +1 -0
  211. package/lib/src/Gateways/GpEcomConnector.d.ts +36 -36
  212. package/lib/src/Gateways/GpEcomConnector.js +464 -556
  213. package/lib/src/Gateways/GpEcomConnector.js.map +1 -1
  214. package/lib/src/Gateways/IPayFacProvider.d.ts +5 -5
  215. package/lib/src/Gateways/IPayFacProvider.js +2 -2
  216. package/lib/src/Gateways/IPaymentGateway.d.ts +8 -8
  217. package/lib/src/Gateways/IPaymentGateway.js +2 -2
  218. package/lib/src/Gateways/IRecurringService.d.ts +6 -6
  219. package/lib/src/Gateways/IRecurringService.js +2 -2
  220. package/lib/src/Gateways/PayPlanConnector.d.ts +42 -42
  221. package/lib/src/Gateways/PayPlanConnector.js +531 -552
  222. package/lib/src/Gateways/PayPlanConnector.js.map +1 -1
  223. package/lib/src/Gateways/PorticoConnector.d.ts +48 -44
  224. package/lib/src/Gateways/PorticoConnector.js +1012 -1017
  225. package/lib/src/Gateways/PorticoConnector.js.map +1 -1
  226. package/lib/src/Gateways/ProPayConnector.d.ts +45 -41
  227. package/lib/src/Gateways/ProPayConnector.js +801 -694
  228. package/lib/src/Gateways/ProPayConnector.js.map +1 -1
  229. package/lib/src/Gateways/RestGateway.d.ts +8 -6
  230. package/lib/src/Gateways/RestGateway.js +48 -31
  231. package/lib/src/Gateways/RestGateway.js.map +1 -1
  232. package/lib/src/Gateways/XmlGateway.d.ts +5 -6
  233. package/lib/src/Gateways/XmlGateway.js +13 -37
  234. package/lib/src/Gateways/XmlGateway.js.map +1 -1
  235. package/lib/src/Gateways/https-wrapper.d.ts +3 -3
  236. package/lib/src/Gateways/https-wrapper.js +76 -35
  237. package/lib/src/Gateways/https-wrapper.js.map +1 -1
  238. package/lib/src/Gateways/index.d.ts +9 -8
  239. package/lib/src/Gateways/index.js +25 -20
  240. package/lib/src/Gateways/index.js.map +1 -1
  241. package/lib/src/HostedPaymentConfig.d.ts +12 -12
  242. package/lib/src/HostedPaymentConfig.js +15 -9
  243. package/lib/src/HostedPaymentConfig.js.map +1 -1
  244. package/lib/src/Mapping/GpApiMapping.d.ts +5 -0
  245. package/lib/src/Mapping/GpApiMapping.js +14 -0
  246. package/lib/src/Mapping/GpApiMapping.js.map +1 -0
  247. package/lib/src/Mapping/GpEcomMapping.d.ts +9 -9
  248. package/lib/src/Mapping/GpEcomMapping.js +84 -73
  249. package/lib/src/Mapping/GpEcomMapping.js.map +1 -1
  250. package/lib/src/Mapping/index.d.ts +2 -1
  251. package/lib/src/Mapping/index.js +18 -13
  252. package/lib/src/Mapping/index.js.map +1 -1
  253. package/lib/src/PaymentMethods/Cash.d.ts +8 -8
  254. package/lib/src/PaymentMethods/Cash.js +15 -36
  255. package/lib/src/PaymentMethods/Cash.js.map +1 -1
  256. package/lib/src/PaymentMethods/Credit.d.ts +85 -85
  257. package/lib/src/PaymentMethods/Credit.js +104 -106
  258. package/lib/src/PaymentMethods/Credit.js.map +1 -1
  259. package/lib/src/PaymentMethods/CreditCardData.d.ts +20 -20
  260. package/lib/src/PaymentMethods/CreditCardData.js +46 -57
  261. package/lib/src/PaymentMethods/CreditCardData.js.map +1 -1
  262. package/lib/src/PaymentMethods/CreditTrackData.d.ts +7 -7
  263. package/lib/src/PaymentMethods/CreditTrackData.js +9 -27
  264. package/lib/src/PaymentMethods/CreditTrackData.js.map +1 -1
  265. package/lib/src/PaymentMethods/Debit.d.ts +40 -40
  266. package/lib/src/PaymentMethods/Debit.js +51 -70
  267. package/lib/src/PaymentMethods/Debit.js.map +1 -1
  268. package/lib/src/PaymentMethods/DebitTrackData.d.ts +7 -7
  269. package/lib/src/PaymentMethods/DebitTrackData.js +9 -27
  270. package/lib/src/PaymentMethods/DebitTrackData.js.map +1 -1
  271. package/lib/src/PaymentMethods/EBT.d.ts +48 -48
  272. package/lib/src/PaymentMethods/EBT.js +67 -88
  273. package/lib/src/PaymentMethods/EBT.js.map +1 -1
  274. package/lib/src/PaymentMethods/EBTCardData.d.ts +16 -16
  275. package/lib/src/PaymentMethods/EBTCardData.js +24 -32
  276. package/lib/src/PaymentMethods/EBTCardData.js.map +1 -1
  277. package/lib/src/PaymentMethods/EBTTrackData.d.ts +8 -8
  278. package/lib/src/PaymentMethods/EBTTrackData.js +10 -27
  279. package/lib/src/PaymentMethods/EBTTrackData.js.map +1 -1
  280. package/lib/src/PaymentMethods/ECheck.d.ts +32 -32
  281. package/lib/src/PaymentMethods/ECheck.js +37 -40
  282. package/lib/src/PaymentMethods/ECheck.js.map +1 -1
  283. package/lib/src/PaymentMethods/GiftCard.d.ts +131 -131
  284. package/lib/src/PaymentMethods/GiftCard.js +188 -205
  285. package/lib/src/PaymentMethods/GiftCard.js.map +1 -1
  286. package/lib/src/PaymentMethods/Interfaces.d.ts +55 -55
  287. package/lib/src/PaymentMethods/Interfaces.js +2 -2
  288. package/lib/src/PaymentMethods/PaymentMethod.d.ts +19 -19
  289. package/lib/src/PaymentMethods/PaymentMethod.js +56 -114
  290. package/lib/src/PaymentMethods/PaymentMethod.js.map +1 -1
  291. package/lib/src/PaymentMethods/RecurringPaymentMethod.d.ts +23 -23
  292. package/lib/src/PaymentMethods/RecurringPaymentMethod.js +65 -77
  293. package/lib/src/PaymentMethods/RecurringPaymentMethod.js.map +1 -1
  294. package/lib/src/PaymentMethods/TransactionReference.d.ts +10 -10
  295. package/lib/src/PaymentMethods/TransactionReference.js +16 -12
  296. package/lib/src/PaymentMethods/TransactionReference.js.map +1 -1
  297. package/lib/src/PaymentMethods/index.d.ts +15 -15
  298. package/lib/src/PaymentMethods/index.js +31 -27
  299. package/lib/src/PaymentMethods/index.js.map +1 -1
  300. package/lib/src/ServiceConfigs/AcceptorConfig.d.ts +29 -41
  301. package/lib/src/ServiceConfigs/AcceptorConfig.js +42 -29
  302. package/lib/src/ServiceConfigs/AcceptorConfig.js.map +1 -1
  303. package/lib/src/ServiceConfigs/Configuration.d.ts +15 -15
  304. package/lib/src/ServiceConfigs/Configuration.js +19 -15
  305. package/lib/src/ServiceConfigs/Configuration.js.map +1 -1
  306. package/lib/src/ServiceConfigs/Gateways/GatewayConfig.d.ts +14 -14
  307. package/lib/src/ServiceConfigs/Gateways/GatewayConfig.js +29 -45
  308. package/lib/src/ServiceConfigs/Gateways/GatewayConfig.js.map +1 -1
  309. package/lib/src/ServiceConfigs/Gateways/GpApiConfig.d.ts +21 -0
  310. package/lib/src/ServiceConfigs/Gateways/GpApiConfig.js +44 -0
  311. package/lib/src/ServiceConfigs/Gateways/GpApiConfig.js.map +1 -0
  312. package/lib/src/ServiceConfigs/Gateways/GpEcomConfig.d.ts +21 -27
  313. package/lib/src/ServiceConfigs/Gateways/GpEcomConfig.js +49 -60
  314. package/lib/src/ServiceConfigs/Gateways/GpEcomConfig.js.map +1 -1
  315. package/lib/src/ServiceConfigs/Gateways/PorticoConfig.d.ts +22 -0
  316. package/lib/src/ServiceConfigs/Gateways/PorticoConfig.js +116 -0
  317. package/lib/src/ServiceConfigs/Gateways/PorticoConfig.js.map +1 -0
  318. package/lib/src/ServiceConfigs/Gateways/index.d.ts +4 -2
  319. package/lib/src/ServiceConfigs/Gateways/index.js +20 -14
  320. package/lib/src/ServiceConfigs/Gateways/index.js.map +1 -1
  321. package/lib/src/ServiceConfigs/ServicesConfigs.d.ts +6 -0
  322. package/lib/src/ServiceConfigs/ServicesConfigs.js +14 -0
  323. package/lib/src/ServiceConfigs/ServicesConfigs.js.map +1 -0
  324. package/lib/src/ServiceConfigs/index.d.ts +4 -5
  325. package/lib/src/ServiceConfigs/index.js +20 -17
  326. package/lib/src/ServiceConfigs/index.js.map +1 -1
  327. package/lib/src/Services/BatchService.d.ts +4 -4
  328. package/lib/src/Services/BatchService.js +14 -17
  329. package/lib/src/Services/BatchService.js.map +1 -1
  330. package/lib/src/Services/CheckService.d.ts +7 -6
  331. package/lib/src/Services/CheckService.js +19 -20
  332. package/lib/src/Services/CheckService.js.map +1 -1
  333. package/lib/src/Services/CreditService.d.ts +13 -12
  334. package/lib/src/Services/CreditService.js +53 -54
  335. package/lib/src/Services/CreditService.js.map +1 -1
  336. package/lib/src/Services/DebitService.d.ts +8 -7
  337. package/lib/src/Services/DebitService.js +27 -28
  338. package/lib/src/Services/DebitService.js.map +1 -1
  339. package/lib/src/Services/EBTService.d.ts +9 -8
  340. package/lib/src/Services/EBTService.js +30 -32
  341. package/lib/src/Services/EBTService.js.map +1 -1
  342. package/lib/src/Services/GiftService.d.ts +17 -16
  343. package/lib/src/Services/GiftService.js +53 -54
  344. package/lib/src/Services/GiftService.js.map +1 -1
  345. package/lib/src/Services/GpApiServices.d.ts +4 -0
  346. package/lib/src/Services/GpApiServices.js +44 -0
  347. package/lib/src/Services/GpApiServices.js.map +1 -0
  348. package/lib/src/Services/HostedService.d.ts +10 -9
  349. package/lib/src/Services/HostedService.js +58 -59
  350. package/lib/src/Services/HostedService.js.map +1 -1
  351. package/lib/src/Services/PayFacService.d.ts +26 -26
  352. package/lib/src/Services/PayFacService.js +75 -77
  353. package/lib/src/Services/PayFacService.js.map +1 -1
  354. package/lib/src/Services/RecurringService.d.ts +8 -8
  355. package/lib/src/Services/RecurringService.js +23 -27
  356. package/lib/src/Services/RecurringService.js.map +1 -1
  357. package/lib/src/Services/ReportingService.d.ts +6 -6
  358. package/lib/src/Services/ReportingService.js +17 -19
  359. package/lib/src/Services/ReportingService.js.map +1 -1
  360. package/lib/src/Services/index.d.ts +10 -9
  361. package/lib/src/Services/index.js +26 -21
  362. package/lib/src/Services/index.js.map +1 -1
  363. package/lib/src/ServicesContainer.d.ts +17 -26
  364. package/lib/src/ServicesContainer.js +57 -139
  365. package/lib/src/ServicesContainer.js.map +1 -1
  366. package/lib/src/Utils/GenerationUtils.d.ts +5 -5
  367. package/lib/src/Utils/GenerationUtils.js +33 -36
  368. package/lib/src/Utils/GenerationUtils.js.map +1 -1
  369. package/lib/src/Utils/InputValidation.d.ts +12 -12
  370. package/lib/src/Utils/InputValidation.js +70 -72
  371. package/lib/src/Utils/InputValidation.js.map +1 -1
  372. package/lib/src/Utils/Sha1.d.ts +6 -6
  373. package/lib/src/Utils/Sha1.js +230 -225
  374. package/lib/src/Utils/Sha1.js.map +1 -1
  375. package/lib/src/Utils/StringUtils.d.ts +6 -6
  376. package/lib/src/Utils/StringUtils.js +50 -53
  377. package/lib/src/Utils/StringUtils.js.map +1 -1
  378. package/lib/src/Utils/index.d.ts +2 -2
  379. package/lib/src/Utils/index.js +18 -14
  380. package/lib/src/Utils/index.js.map +1 -1
  381. package/lib/src/index.d.ts +12 -12
  382. package/lib/src/index.js +32 -28
  383. package/lib/src/index.js.map +1 -1
  384. package/lib/test/Data/BaseGpApiTestConfig.d.ts +13 -0
  385. package/lib/test/Data/BaseGpApiTestConfig.js +42 -0
  386. package/lib/test/Data/BaseGpApiTestConfig.js.map +1 -0
  387. package/lib/test/Data/TestCards.d.ts +24 -24
  388. package/lib/test/Data/TestCards.js +219 -232
  389. package/lib/test/Data/TestCards.js.map +1 -1
  390. package/lib/test/Data/TestChecks.d.ts +4 -4
  391. package/lib/test/Data/TestChecks.js +26 -32
  392. package/lib/test/Data/TestChecks.js.map +1 -1
  393. package/lib/test/Data/index.d.ts +2 -2
  394. package/lib/test/Data/index.js +18 -14
  395. package/lib/test/Data/index.js.map +1 -1
  396. package/lib/test/Integration/Gateways/{ProPayConnector/Certifications/GetInformationCertificationTests.d.ts → GpApiConnector/AccessTokenTest.d.ts} +1 -1
  397. package/lib/test/Integration/Gateways/GpApiConnector/AccessTokenTest.js +102 -0
  398. package/lib/test/Integration/Gateways/GpApiConnector/AccessTokenTest.js.map +1 -0
  399. package/lib/test/Integration/Gateways/{RealexConnector → GpEcomConnector}/Certification/AuthTest.d.ts +1 -1
  400. package/lib/test/Integration/Gateways/GpEcomConnector/Certification/AuthTest.js +2446 -0
  401. package/lib/test/Integration/Gateways/GpEcomConnector/Certification/AuthTest.js.map +1 -0
  402. package/lib/test/Integration/Gateways/{RealexConnector → GpEcomConnector}/Certification/AvsTest.d.ts +1 -1
  403. package/lib/test/Integration/Gateways/GpEcomConnector/Certification/AvsTest.js +506 -0
  404. package/lib/test/Integration/Gateways/GpEcomConnector/Certification/AvsTest.js.map +1 -0
  405. package/lib/test/Integration/Gateways/{RealexConnector → GpEcomConnector}/Certification/CreditTest.d.ts +1 -1
  406. package/lib/test/Integration/Gateways/GpEcomConnector/Certification/CreditTest.js +1296 -0
  407. package/lib/test/Integration/Gateways/GpEcomConnector/Certification/CreditTest.js.map +1 -0
  408. package/lib/test/Integration/Gateways/{RealexConnector → GpEcomConnector}/Certification/HoldTest.d.ts +1 -1
  409. package/lib/test/Integration/Gateways/GpEcomConnector/Certification/HoldTest.js +847 -0
  410. package/lib/test/Integration/Gateways/GpEcomConnector/Certification/HoldTest.js.map +1 -0
  411. package/lib/test/Integration/Gateways/{RealexConnector → GpEcomConnector}/CreditTest.d.ts +1 -1
  412. package/lib/test/Integration/Gateways/GpEcomConnector/CreditTest.js +214 -0
  413. package/lib/test/Integration/Gateways/GpEcomConnector/CreditTest.js.map +1 -0
  414. package/lib/test/Integration/Gateways/{RealexConnector → GpEcomConnector}/HppTest.d.ts +1 -1
  415. package/lib/test/Integration/Gateways/GpEcomConnector/HppTest.js +98 -0
  416. package/lib/test/Integration/Gateways/GpEcomConnector/HppTest.js.map +1 -0
  417. package/lib/test/Integration/Gateways/{RealexConnector → GpEcomConnector}/RecurringTest.d.ts +1 -1
  418. package/lib/test/Integration/Gateways/GpEcomConnector/RecurringTest.js +132 -0
  419. package/lib/test/Integration/Gateways/GpEcomConnector/RecurringTest.js.map +1 -0
  420. package/lib/test/Integration/Gateways/PorticoConnector/AchTest.d.ts +1 -1
  421. package/lib/test/Integration/Gateways/PorticoConnector/AchTest.js +58 -112
  422. package/lib/test/Integration/Gateways/PorticoConnector/AchTest.js.map +1 -1
  423. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/CheckTest.d.ts +1 -1
  424. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/CheckTest.js +377 -483
  425. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/CheckTest.js.map +1 -1
  426. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/EcommerceCheckTest.d.ts +1 -1
  427. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/EcommerceCheckTest.js +85 -83
  428. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/EcommerceCheckTest.js.map +1 -1
  429. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/EcommerceTest.d.ts +1 -1
  430. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/EcommerceTest.js +1722 -1720
  431. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/EcommerceTest.js.map +1 -1
  432. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/MotoCheckTest.d.ts +1 -1
  433. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/MotoCheckTest.js +85 -83
  434. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/MotoCheckTest.js.map +1 -1
  435. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/MotoTest.d.ts +1 -1
  436. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/MotoTest.js +1759 -1757
  437. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/MotoTest.js.map +1 -1
  438. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/RecurringTest.d.ts +1 -1
  439. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/RecurringTest.js +419 -682
  440. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/RecurringTest.js.map +1 -1
  441. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/RetailTest.d.ts +1 -1
  442. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/RetailTest.js +2220 -2218
  443. package/lib/test/Integration/Gateways/PorticoConnector/Certifications/RetailTest.js.map +1 -1
  444. package/lib/test/Integration/Gateways/PorticoConnector/CreditTest.d.ts +1 -1
  445. package/lib/test/Integration/Gateways/PorticoConnector/CreditTest.js +391 -707
  446. package/lib/test/Integration/Gateways/PorticoConnector/CreditTest.js.map +1 -1
  447. package/lib/test/Integration/Gateways/PorticoConnector/DebitTest.d.ts +1 -1
  448. package/lib/test/Integration/Gateways/PorticoConnector/DebitTest.js +81 -151
  449. package/lib/test/Integration/Gateways/PorticoConnector/DebitTest.js.map +1 -1
  450. package/lib/test/Integration/Gateways/PorticoConnector/EbtTest.d.ts +1 -1
  451. package/lib/test/Integration/Gateways/PorticoConnector/EbtTest.js +71 -171
  452. package/lib/test/Integration/Gateways/PorticoConnector/EbtTest.js.map +1 -1
  453. package/lib/test/Integration/Gateways/PorticoConnector/EcommerceTest.d.ts +1 -1
  454. package/lib/test/Integration/Gateways/PorticoConnector/EcommerceTest.js +110 -192
  455. package/lib/test/Integration/Gateways/PorticoConnector/EcommerceTest.js.map +1 -1
  456. package/lib/test/Integration/Gateways/PorticoConnector/GiftTest.d.ts +1 -1
  457. package/lib/test/Integration/Gateways/PorticoConnector/GiftTest.js +146 -377
  458. package/lib/test/Integration/Gateways/PorticoConnector/GiftTest.js.map +1 -1
  459. package/lib/test/Integration/Gateways/PorticoConnector/RecurringTest.d.ts +1 -1
  460. package/lib/test/Integration/Gateways/PorticoConnector/RecurringTest.js +100 -196
  461. package/lib/test/Integration/Gateways/PorticoConnector/RecurringTest.js.map +1 -1
  462. package/lib/test/Integration/Gateways/PorticoConnector/ReportingTest.d.ts +1 -1
  463. package/lib/test/Integration/Gateways/PorticoConnector/ReportingTest.js +49 -47
  464. package/lib/test/Integration/Gateways/PorticoConnector/ReportingTest.js.map +1 -1
  465. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/{ProPayAccountCertificationTests.d.ts → GetInformationCertificationTest.d.ts} +1 -1
  466. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/GetInformationCertificationTest.js +44 -0
  467. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/GetInformationCertificationTest.js.map +1 -0
  468. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/{ProPayFundCertificationTests.d.ts → ProPayAccountCertificationTest.d.ts} +1 -1
  469. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/ProPayAccountCertificationTest.js +221 -0
  470. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/ProPayAccountCertificationTest.js.map +1 -0
  471. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/{ProPayInNetworkTransactionCertificationTests.d.ts → ProPayFundCertificationTest.d.ts} +1 -1
  472. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/ProPayFundCertificationTest.js +60 -0
  473. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/ProPayFundCertificationTest.js.map +1 -0
  474. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/ProPayInNetworkTransactionCertificationTest.d.ts +1 -0
  475. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/ProPayInNetworkTransactionCertificationTest.js +80 -0
  476. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/ProPayInNetworkTransactionCertificationTest.js.map +1 -0
  477. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/TestData/TestAccountData.d.ts +39 -39
  478. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/TestData/TestAccountData.js +392 -371
  479. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/TestData/TestAccountData.js.map +1 -1
  480. package/lib/test/Integration/Gateways/ProPayConnector/GetInformationTest.d.ts +1 -0
  481. package/lib/test/Integration/Gateways/ProPayConnector/GetInformationTest.js +44 -0
  482. package/lib/test/Integration/Gateways/ProPayConnector/GetInformationTest.js.map +1 -0
  483. package/lib/test/Integration/Gateways/ProPayConnector/ProPayAccountTest.d.ts +1 -0
  484. package/lib/test/Integration/Gateways/ProPayConnector/ProPayAccountTest.js +330 -0
  485. package/lib/test/Integration/Gateways/ProPayConnector/ProPayAccountTest.js.map +1 -0
  486. package/lib/test/Integration/Gateways/ProPayConnector/ProPayFundsTest.d.ts +1 -0
  487. package/lib/test/Integration/Gateways/ProPayConnector/ProPayFundsTest.js +60 -0
  488. package/lib/test/Integration/Gateways/ProPayConnector/ProPayFundsTest.js.map +1 -0
  489. package/lib/test/Integration/Gateways/ProPayConnector/ProPayInNetworkTransactionTest.d.ts +1 -0
  490. package/lib/test/Integration/Gateways/ProPayConnector/ProPayInNetworkTransactionTest.js +80 -0
  491. package/lib/test/Integration/Gateways/ProPayConnector/ProPayInNetworkTransactionTest.js.map +1 -0
  492. package/lib/test/Integration/Gateways/ProPayConnector/TestData/TestAccountData.d.ts +34 -33
  493. package/lib/test/Integration/Gateways/ProPayConnector/TestData/TestAccountData.js +321 -268
  494. package/lib/test/Integration/Gateways/ProPayConnector/TestData/TestAccountData.js.map +1 -1
  495. package/lib/test/Integration/Gateways/ProPayConnector/TestData/TestFundsData.d.ts +4 -4
  496. package/lib/test/Integration/Gateways/ProPayConnector/TestData/TestFundsData.js +27 -30
  497. package/lib/test/Integration/Gateways/ProPayConnector/TestData/TestFundsData.js.map +1 -1
  498. package/lib/test/Integration/Services/CheckServiceTest.d.ts +1 -1
  499. package/lib/test/Integration/Services/CheckServiceTest.js +44 -98
  500. package/lib/test/Integration/Services/CheckServiceTest.js.map +1 -1
  501. package/lib/test/Integration/Services/CreditServiceTest.d.ts +1 -1
  502. package/lib/test/Integration/Services/CreditServiceTest.js +173 -313
  503. package/lib/test/Integration/Services/CreditServiceTest.js.map +1 -1
  504. package/lib/test/Integration/Services/DebitServiceTest.d.ts +1 -1
  505. package/lib/test/Integration/Services/DebitServiceTest.js +80 -154
  506. package/lib/test/Integration/Services/DebitServiceTest.js.map +1 -1
  507. package/lib/test/Integration/Services/EBTServiceTest.d.ts +1 -1
  508. package/lib/test/Integration/Services/EBTServiceTest.js +63 -135
  509. package/lib/test/Integration/Services/EBTServiceTest.js.map +1 -1
  510. package/lib/test/Unit/Builders/AuthorizationBuilder/ValidationTest.d.ts +1 -1
  511. package/lib/test/Unit/Builders/AuthorizationBuilder/ValidationTest.js +110 -161
  512. package/lib/test/Unit/Builders/AuthorizationBuilder/ValidationTest.js.map +1 -1
  513. package/lib/test/Unit/Builders/ReportBuilder/ValidationTest.d.ts +1 -1
  514. package/lib/test/Unit/Builders/ReportBuilder/ValidationTest.js +61 -139
  515. package/lib/test/Unit/Builders/ReportBuilder/ValidationTest.js.map +1 -1
  516. package/lib/test/Unit/Gateways/GpEcomConnector/CreditTest.d.ts +1 -1
  517. package/lib/test/Unit/Gateways/GpEcomConnector/CreditTest.js +33 -72
  518. package/lib/test/Unit/Gateways/GpEcomConnector/CreditTest.js.map +1 -1
  519. package/lib/test/Unit/Gateways/PorticoConnector/InputValidationTest.d.ts +1 -1
  520. package/lib/test/Unit/Gateways/PorticoConnector/InputValidationTest.js +124 -202
  521. package/lib/test/Unit/Gateways/PorticoConnector/InputValidationTest.js.map +1 -1
  522. package/package.json +65 -58
  523. package/tsconfig.eslint.json +15 -0
  524. package/lib/src/Gateways/RealexConnector.d.ts +0 -30
  525. package/lib/src/Gateways/RealexConnector.js +0 -524
  526. package/lib/src/Gateways/RealexConnector.js.map +0 -1
  527. package/lib/src/ServiceConfigs/ServicesConfig.d.ts +0 -27
  528. package/lib/src/ServiceConfigs/ServicesConfig.js +0 -51
  529. package/lib/src/ServiceConfigs/ServicesConfig.js.map +0 -1
  530. package/lib/src/ServiceConfigs/ServicesConfigsAdded.d.ts +0 -10
  531. package/lib/src/ServiceConfigs/ServicesConfigsAdded.js +0 -27
  532. package/lib/src/ServiceConfigs/ServicesConfigsAdded.js.map +0 -1
  533. package/lib/src/ServicesConfig.d.ts +0 -27
  534. package/lib/src/ServicesConfig.js +0 -51
  535. package/lib/src/ServicesConfig.js.map +0 -1
  536. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/GetInformationCertificationTests.js +0 -101
  537. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/GetInformationCertificationTests.js.map +0 -1
  538. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/ProPayAccountCertificationTests.js +0 -353
  539. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/ProPayAccountCertificationTests.js.map +0 -1
  540. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/ProPayFundCertificationTests.js +0 -124
  541. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/ProPayFundCertificationTests.js.map +0 -1
  542. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/ProPayInNetworkTransactionCertificationTests.js +0 -143
  543. package/lib/test/Integration/Gateways/ProPayConnector/Certifications/ProPayInNetworkTransactionCertificationTests.js.map +0 -1
  544. package/lib/test/Integration/Gateways/ProPayConnector/GetInformationTests.d.ts +0 -1
  545. package/lib/test/Integration/Gateways/ProPayConnector/GetInformationTests.js +0 -101
  546. package/lib/test/Integration/Gateways/ProPayConnector/GetInformationTests.js.map +0 -1
  547. package/lib/test/Integration/Gateways/ProPayConnector/ProPayAccountTests.d.ts +0 -1
  548. package/lib/test/Integration/Gateways/ProPayConnector/ProPayAccountTests.js +0 -536
  549. package/lib/test/Integration/Gateways/ProPayConnector/ProPayAccountTests.js.map +0 -1
  550. package/lib/test/Integration/Gateways/ProPayConnector/ProPayFundsTests.d.ts +0 -1
  551. package/lib/test/Integration/Gateways/ProPayConnector/ProPayFundsTests.js +0 -125
  552. package/lib/test/Integration/Gateways/ProPayConnector/ProPayFundsTests.js.map +0 -1
  553. package/lib/test/Integration/Gateways/ProPayConnector/ProPayInNetworkTransactionTests.d.ts +0 -1
  554. package/lib/test/Integration/Gateways/ProPayConnector/ProPayInNetworkTransactionTests.js +0 -145
  555. package/lib/test/Integration/Gateways/ProPayConnector/ProPayInNetworkTransactionTests.js.map +0 -1
  556. package/lib/test/Integration/Gateways/RealexConnector/Certification/AuthTest.js +0 -4374
  557. package/lib/test/Integration/Gateways/RealexConnector/Certification/AuthTest.js.map +0 -1
  558. package/lib/test/Integration/Gateways/RealexConnector/Certification/AvsTest.js +0 -759
  559. package/lib/test/Integration/Gateways/RealexConnector/Certification/AvsTest.js.map +0 -1
  560. package/lib/test/Integration/Gateways/RealexConnector/Certification/CreditTest.js +0 -2400
  561. package/lib/test/Integration/Gateways/RealexConnector/Certification/CreditTest.js.map +0 -1
  562. package/lib/test/Integration/Gateways/RealexConnector/Certification/HoldTest.js +0 -1657
  563. package/lib/test/Integration/Gateways/RealexConnector/Certification/HoldTest.js.map +0 -1
  564. package/lib/test/Integration/Gateways/RealexConnector/Certification/ManualTest.d.ts +0 -1
  565. package/lib/test/Integration/Gateways/RealexConnector/Certification/ManualTest.js +0 -5651
  566. package/lib/test/Integration/Gateways/RealexConnector/Certification/ManualTest.js.map +0 -1
  567. package/lib/test/Integration/Gateways/RealexConnector/Certification/OtbTest.d.ts +0 -1
  568. package/lib/test/Integration/Gateways/RealexConnector/Certification/OtbTest.js +0 -1986
  569. package/lib/test/Integration/Gateways/RealexConnector/Certification/OtbTest.js.map +0 -1
  570. package/lib/test/Integration/Gateways/RealexConnector/Certification/RebateTest.d.ts +0 -1
  571. package/lib/test/Integration/Gateways/RealexConnector/Certification/RebateTest.js +0 -2370
  572. package/lib/test/Integration/Gateways/RealexConnector/Certification/RebateTest.js.map +0 -1
  573. package/lib/test/Integration/Gateways/RealexConnector/Certification/ReleaseTest.d.ts +0 -1
  574. package/lib/test/Integration/Gateways/RealexConnector/Certification/ReleaseTest.js +0 -1704
  575. package/lib/test/Integration/Gateways/RealexConnector/Certification/ReleaseTest.js.map +0 -1
  576. package/lib/test/Integration/Gateways/RealexConnector/Certification/SettleTest.d.ts +0 -1
  577. package/lib/test/Integration/Gateways/RealexConnector/Certification/SettleTest.js +0 -2054
  578. package/lib/test/Integration/Gateways/RealexConnector/Certification/SettleTest.js.map +0 -1
  579. package/lib/test/Integration/Gateways/RealexConnector/Certification/ValidationTest.d.ts +0 -1
  580. package/lib/test/Integration/Gateways/RealexConnector/Certification/ValidationTest.js +0 -2470
  581. package/lib/test/Integration/Gateways/RealexConnector/Certification/ValidationTest.js.map +0 -1
  582. package/lib/test/Integration/Gateways/RealexConnector/Certification/VerifyEnrolledTest.d.ts +0 -1
  583. package/lib/test/Integration/Gateways/RealexConnector/Certification/VerifyEnrolledTest.js +0 -3117
  584. package/lib/test/Integration/Gateways/RealexConnector/Certification/VerifyEnrolledTest.js.map +0 -1
  585. package/lib/test/Integration/Gateways/RealexConnector/Certification/VoidTest.d.ts +0 -1
  586. package/lib/test/Integration/Gateways/RealexConnector/Certification/VoidTest.js +0 -2032
  587. package/lib/test/Integration/Gateways/RealexConnector/Certification/VoidTest.js.map +0 -1
  588. package/lib/test/Integration/Gateways/RealexConnector/CreditTest.js +0 -323
  589. package/lib/test/Integration/Gateways/RealexConnector/CreditTest.js.map +0 -1
  590. package/lib/test/Integration/Gateways/RealexConnector/HppTest.js +0 -99
  591. package/lib/test/Integration/Gateways/RealexConnector/HppTest.js.map +0 -1
  592. package/lib/test/Integration/Gateways/RealexConnector/RecurringTest.js +0 -264
  593. package/lib/test/Integration/Gateways/RealexConnector/RecurringTest.js.map +0 -1
  594. package/lib/test/Unit/Gateways/RealexConnector/CreditTest.d.ts +0 -1
  595. package/lib/test/Unit/Gateways/RealexConnector/CreditTest.js +0 -71
  596. package/lib/test/Unit/Gateways/RealexConnector/CreditTest.js.map +0 -1
@@ -1,1018 +1,1013 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.PorticoConnector = void 0;
19
- var elementtree_1 = require("@azz/elementtree");
20
- var __1 = require("../");
21
- var InputValidation_1 = require("../Utils/InputValidation");
22
- var XmlGateway_1 = require("./XmlGateway");
23
- var PorticoConnector = /** @class */ (function (_super) {
24
- __extends(PorticoConnector, _super);
25
- function PorticoConnector() {
26
- var _this = _super !== null && _super.apply(this, arguments) || this;
27
- _this.supportsHostedPayments = false;
28
- return _this;
29
- }
30
- PorticoConnector.prototype.processAuthorization = function (builder) {
31
- var _this = this;
32
- // build request
33
- var transaction = elementtree_1.Element(this.mapRequestType(builder));
34
- var block1 = elementtree_1.SubElement(transaction, "Block1");
35
- var allowDuplicates;
36
- if (builder.transactionType === __1.TransactionType.Sale ||
37
- builder.transactionType === __1.TransactionType.Auth) {
38
- if (builder.paymentMethod.paymentMethodType !== __1.PaymentMethodType.Gift &&
39
- builder.paymentMethod.paymentMethodType !== __1.PaymentMethodType.ACH) {
40
- allowDuplicates = elementtree_1.SubElement(block1, "AllowDup");
41
- allowDuplicates.append(elementtree_1.CData(builder.allowDuplicates ? "Y" : "N"));
42
- if (builder.transactionModifier === __1.TransactionModifier.None &&
43
- builder.paymentMethod.paymentMethodType !== __1.PaymentMethodType.EBT &&
44
- builder.paymentMethod.paymentMethodType !==
45
- __1.PaymentMethodType.Recurring) {
46
- elementtree_1.SubElement(block1, "AllowPartialAuth").append(elementtree_1.CData(builder.allowPartialAuth ? "Y" : "N"));
47
- }
48
- }
49
- }
50
- if (builder.amount !== undefined && builder.amount !== "") {
51
- elementtree_1.SubElement(block1, "Amt").append(elementtree_1.CData(InputValidation_1.validateAmount("portico", builder.amount)));
52
- }
53
- if (builder.gratuity) {
54
- elementtree_1.SubElement(block1, "GratuityAmtInfo").append(elementtree_1.CData(InputValidation_1.validateAmount("portico", builder.gratuity)));
55
- }
56
- if (builder.convenienceAmt) {
57
- elementtree_1.SubElement(block1, "ConvenienceAmtInfo").append(elementtree_1.CData(InputValidation_1.validateAmount("portico", builder.convenienceAmt)));
58
- }
59
- if (builder.shippingAmt) {
60
- elementtree_1.SubElement(block1, "ShippingAmtInfo").append(elementtree_1.CData(InputValidation_1.validateAmount("portico", builder.shippingAmt)));
61
- }
62
- if (builder.cashBackAmount !== undefined && builder.cashBackAmount !== "") {
63
- elementtree_1.SubElement(block1,
64
- // because plano
65
- builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Debit
66
- ? "CashbackAmtInfo"
67
- : "CashBackAmount").append(elementtree_1.CData(InputValidation_1.validateAmount("portico", builder.cashBackAmount)));
68
- }
69
- if (builder.offlineAuthCode) {
70
- elementtree_1.SubElement(block1, "OfflineAuthCode").append(elementtree_1.CData(builder.offlineAuthCode));
71
- }
72
- if (builder.transactionType === __1.TransactionType.Alias) {
73
- elementtree_1.SubElement(block1, "Action").append(elementtree_1.CData(builder.aliasAction.toString()));
74
- elementtree_1.SubElement(block1, "Alias").append(elementtree_1.CData(builder.alias));
75
- }
76
- var isCheck = builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.ACH;
77
- var property = isCheck ? "checkHolderName" : "cardHolderName";
78
- if (builder.transactionType !== __1.TransactionType.Reversal && (isCheck || builder.billingAddress || builder.paymentMethod[property])) {
79
- var holder = elementtree_1.SubElement(block1, isCheck ? "ConsumerInfo" : "CardHolderData");
80
- var pm = builder.paymentMethod;
81
- if (pm[property]) {
82
- var names = pm[property].split(" ", 2);
83
- elementtree_1.SubElement(holder, isCheck ? "FirstName" : "CardHolderFirstName").append(elementtree_1.CData(InputValidation_1.validateInput("portico", "firstName", names[0])));
84
- if (names[1]) {
85
- elementtree_1.SubElement(holder, isCheck ? "LastName" : "CardHolderLastName").append(elementtree_1.CData(InputValidation_1.validateInput("portico", "lastName", names[1])));
86
- }
87
- }
88
- if (builder.billingAddress) {
89
- elementtree_1.SubElement(holder, isCheck ? "Address1" : "CardHolderAddr").append(elementtree_1.CData(builder.billingAddress.streetAddress1));
90
- elementtree_1.SubElement(holder, isCheck ? "City" : "CardHolderCity").append(elementtree_1.CData(InputValidation_1.validateInput("portico", "city", builder.billingAddress.city)));
91
- elementtree_1.SubElement(holder, isCheck ? "State" : "CardHolderState").append(elementtree_1.CData(InputValidation_1.validateInput("portico", "province", builder.billingAddress.province || builder.billingAddress.state)));
92
- elementtree_1.SubElement(holder, isCheck ? "Zip" : "CardHolderZip").append(elementtree_1.CData(InputValidation_1.validateInput("portico", "postalCode", builder.billingAddress.postalCode)));
93
- }
94
- if (isCheck) {
95
- var check = builder.paymentMethod;
96
- elementtree_1.SubElement(holder, "CheckName").append(elementtree_1.CData(check.checkName || check.checkHolderName));
97
- elementtree_1.SubElement(holder, "PhoneNumber").append(elementtree_1.CData(InputValidation_1.validateInput("portico", "phoneNumber", check.phoneNumber)));
98
- elementtree_1.SubElement(holder, "DLNumber").append(elementtree_1.CData(check.driversLicenseNumber));
99
- elementtree_1.SubElement(holder, "DLState").append(elementtree_1.CData(check.driversLicenseState));
100
- if (check.ssnLast4 || check.birthYear) {
101
- var identity = elementtree_1.SubElement(holder, "IdentityInfo");
102
- elementtree_1.SubElement(identity, "SSNL4").append(elementtree_1.CData(check.ssnLast4));
103
- elementtree_1.SubElement(identity, "DOBYear").append(elementtree_1.CData(check.birthYear));
104
- }
105
- }
106
- }
107
- var _a = this.hasToken(builder.paymentMethod), hasToken = _a.hasToken, tokenValue = _a.tokenValue;
108
- var cardData;
109
- if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Debit ||
110
- builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.ACH) {
111
- cardData = block1;
112
- }
113
- else {
114
- cardData = elementtree_1.Element("CardData");
115
- }
116
- if (builder.paymentMethod.isCardData) {
117
- var card = builder.paymentMethod;
118
- var manualEntry = elementtree_1.SubElement(cardData, hasToken ? "TokenData" : "ManualEntry");
119
- if (this.shouldIncludeCredentialOnFile(builder) && (builder.cardBrandTransactionId || builder.transactionInitiator)) {
120
- block1.append(this.hydrateCredentialOnFile(builder));
121
- }
122
- elementtree_1.SubElement(manualEntry, hasToken ? "TokenValue" : "CardNbr").append(elementtree_1.CData(tokenValue || card.number));
123
- if (card.expMonth) {
124
- elementtree_1.SubElement(manualEntry, "ExpMonth").append(elementtree_1.CData(card.expMonth.toString()));
125
- }
126
- if (card.expYear) {
127
- elementtree_1.SubElement(manualEntry, "ExpYear").append(elementtree_1.CData(card.expYear.toString()));
128
- }
129
- if (card.cvn) {
130
- elementtree_1.SubElement(manualEntry, "CVV2").append(elementtree_1.CData(card.cvn));
131
- }
132
- elementtree_1.SubElement(manualEntry, "ReaderPresent").append(elementtree_1.CData(card.readerPresent ? "Y" : "N"));
133
- elementtree_1.SubElement(manualEntry, "CardPresent").append(elementtree_1.CData(card.cardPresent ? "Y" : "N"));
134
- block1.append(cardData);
135
- if (card instanceof __1.CreditCardData) {
136
- var creditCardData = card;
137
- // WalletData Element
138
- if ((creditCardData.mobileType == __1.MobilePaymentMethodType.APPLEPAY
139
- || creditCardData.mobileType == __1.MobilePaymentMethodType.GOOGLEPAY)
140
- && typeof creditCardData.paymentSource != "undefined"
141
- && this.isAppleOrGooglePay(creditCardData.paymentSource)) {
142
- var walletData = elementtree_1.SubElement(block1, "WalletData");
143
- elementtree_1.SubElement(walletData, "PaymentSource").append(elementtree_1.CData(creditCardData.paymentSource.trim()));
144
- if (typeof creditCardData.mobileType != "undefined") {
145
- elementtree_1.SubElement(walletData, "DigitalPaymentToken").append(elementtree_1.CData(creditCardData.token));
146
- block1.remove(cardData);
147
- }
148
- }
149
- }
150
- if (builder.transactionModifier === __1.TransactionModifier.Recurring) {
151
- var recurring = elementtree_1.SubElement(block1, "RecurringData");
152
- elementtree_1.SubElement(recurring, "ScheduleID").append(elementtree_1.CData(builder.scheduleId));
153
- elementtree_1.SubElement(recurring, "OneTime").append(elementtree_1.CData(builder.oneTimePayment ? "Y" : "N"));
154
- }
155
- }
156
- else if (builder.paymentMethod.isTrackData) {
157
- var track = builder.paymentMethod;
158
- var trackData = elementtree_1.SubElement(cardData, hasToken ? "TokenData" : "TrackData");
159
- if (!hasToken) {
160
- trackData.append(elementtree_1.CData(track.value));
161
- if (builder.paymentMethod.paymentMethodType !== __1.PaymentMethodType.Debit) {
162
- trackData.set("method", track.entryMethod === __1.EntryMethod.Swipe ? "swipe" : "proximity");
163
- block1.append(cardData);
164
- }
165
- }
166
- else if (tokenValue) {
167
- elementtree_1.SubElement(trackData, "TokenValue").append(elementtree_1.CData(tokenValue));
168
- }
169
- }
170
- else if (builder.paymentMethod instanceof __1.GiftCard) {
171
- var card = builder.paymentMethod;
172
- if (builder.currency) {
173
- elementtree_1.SubElement(block1, "Currency").append(elementtree_1.CData(builder.currency.toUpperCase()));
174
- }
175
- // if it's replace, add the new card, and change the card data name to be old card data
176
- if (builder.transactionType === __1.TransactionType.Replace) {
177
- var newCardData = elementtree_1.SubElement(block1, "NewCardData");
178
- elementtree_1.SubElement(newCardData, builder.replacementCard.valueType).append(elementtree_1.CData(builder.replacementCard.value));
179
- elementtree_1.SubElement(newCardData, "PIN").append(elementtree_1.CData(builder.replacementCard.pin));
180
- cardData = elementtree_1.Element("OldCardData");
181
- }
182
- elementtree_1.SubElement(cardData, card.valueType).append(elementtree_1.CData(card.value));
183
- if (card.pin) {
184
- elementtree_1.SubElement(cardData, "PIN").append(elementtree_1.CData(card.pin));
185
- }
186
- if (builder.aliasAction !== __1.AliasAction.Create) {
187
- block1.append(cardData);
188
- }
189
- }
190
- else if (builder.paymentMethod instanceof __1.ECheck) {
191
- var check = builder.paymentMethod;
192
- elementtree_1.SubElement(block1, "CheckAction").append(elementtree_1.CData("SALE"));
193
- if (!hasToken) {
194
- var accountInfo = elementtree_1.SubElement(block1, "AccountInfo");
195
- elementtree_1.SubElement(accountInfo, "RoutingNumber").append(elementtree_1.CData(check.routingNumber));
196
- elementtree_1.SubElement(accountInfo, "AccountNumber").append(elementtree_1.CData(check.accountNumber));
197
- elementtree_1.SubElement(accountInfo, "CheckNumber").append(elementtree_1.CData(check.checkNumber));
198
- elementtree_1.SubElement(accountInfo, "MICRData").append(elementtree_1.CData(check.micrNumber));
199
- elementtree_1.SubElement(accountInfo, "AccountType").append(elementtree_1.CData(check.accountType.toString()));
200
- }
201
- else if (tokenValue) {
202
- elementtree_1.SubElement(block1, "TokenValue").append(elementtree_1.CData(tokenValue));
203
- }
204
- elementtree_1.SubElement(block1, "DataEntryMode").append(elementtree_1.CData(check.entryMode.toString().toUpperCase()));
205
- elementtree_1.SubElement(block1, "CheckType").append(elementtree_1.CData(check.checkType.toString()));
206
- elementtree_1.SubElement(block1, "SECCode").append(elementtree_1.CData(check.secCode.toString()));
207
- var verify = elementtree_1.SubElement(block1, "VerifyInfo");
208
- elementtree_1.SubElement(verify, "CheckVerify").append(elementtree_1.CData(check.checkVerify ? "Y" : "N"));
209
- elementtree_1.SubElement(verify, "ACHVerify").append(elementtree_1.CData(check.achVerify ? "Y" : "N"));
210
- }
211
- if (builder.paymentMethod instanceof __1.TransactionReference) {
212
- var reference = builder.paymentMethod;
213
- if (reference.transactionId) {
214
- elementtree_1.SubElement(block1, "GatewayTxnId").append(elementtree_1.CData(reference.transactionId));
215
- }
216
- if (reference.clientTransactionId) {
217
- elementtree_1.SubElement(block1, "ClientTxnId").append(elementtree_1.CData(reference.clientTransactionId));
218
- }
219
- }
220
- if (builder.paymentMethod instanceof __1.RecurringPaymentMethod) {
221
- var method = builder.paymentMethod;
222
- if (method.paymentType === "ACH") {
223
- if (allowDuplicates) {
224
- block1.remove(allowDuplicates);
225
- }
226
- elementtree_1.SubElement(block1, "CheckAction").append(elementtree_1.CData("SALE"));
227
- }
228
- elementtree_1.SubElement(block1, "PaymentMethodKey").append(elementtree_1.CData(method.key));
229
- if (method.paymentMethod &&
230
- method.paymentMethod instanceof __1.CreditCardData) {
231
- var card = method.paymentMethod;
232
- var data = elementtree_1.SubElement(block1, "PaymentMethodKeyData");
233
- elementtree_1.SubElement(data, "ExpMonth").append(elementtree_1.CData(card.expMonth));
234
- elementtree_1.SubElement(data, "ExpYear").append(elementtree_1.CData(card.expYear));
235
- elementtree_1.SubElement(data, "CVV2").append(elementtree_1.CData(card.cvn));
236
- if (this.shouldIncludeCredentialOnFile(builder) && (builder.cardBrandTransactionId || builder.transactionInitiator)) {
237
- block1.append(this.hydrateCredentialOnFile(builder));
238
- }
239
- }
240
- var recurring = elementtree_1.SubElement(block1, "RecurringData");
241
- elementtree_1.SubElement(recurring, "ScheduleID").append(elementtree_1.CData(builder.scheduleId));
242
- elementtree_1.SubElement(recurring, "OneTime").append(elementtree_1.CData(builder.oneTimePayment ? "Y" : "N"));
243
- }
244
- if (builder.paymentMethod.isPinProtected &&
245
- builder.transactionType !== __1.TransactionType.Reversal) {
246
- elementtree_1.SubElement(block1, "PinBlock").append(elementtree_1.CData(builder.paymentMethod.pinBlock));
247
- }
248
- if (builder.paymentMethod.isEncryptable) {
249
- var encryptionData = builder.paymentMethod
250
- .encryptionData;
251
- if (encryptionData) {
252
- var enc = elementtree_1.SubElement(cardData, "EncryptionData");
253
- if (encryptionData.version) {
254
- elementtree_1.SubElement(enc, "Version").append(elementtree_1.CData(encryptionData.version));
255
- }
256
- if (encryptionData.trackNumber) {
257
- elementtree_1.SubElement(enc, "EncryptedTrackNumber").append(elementtree_1.CData(encryptionData.trackNumber));
258
- }
259
- if (encryptionData.ktb) {
260
- elementtree_1.SubElement(enc, "KTB").append(elementtree_1.CData(encryptionData.ktb));
261
- }
262
- if (encryptionData.ksn) {
263
- elementtree_1.SubElement(enc, "KSN").append(elementtree_1.CData(encryptionData.ksn));
264
- }
265
- }
266
- }
267
- if (builder.paymentMethod.isTokenizable &&
268
- builder.paymentMethod.paymentMethodType !== __1.PaymentMethodType.ACH) {
269
- elementtree_1.SubElement(cardData, "TokenRequest").append(elementtree_1.CData(builder.requestMultiUseToken ? "Y" : "N"));
270
- }
271
- if (builder.paymentMethod.isBalanceable && builder.balanceInquiryType) {
272
- elementtree_1.SubElement(block1, "BalanceInquiryType").append(elementtree_1.CData(builder.balanceInquiryType.toString()));
273
- }
274
- if (builder.level2Request) {
275
- elementtree_1.SubElement(block1, "CPCReq").append(elementtree_1.CData("Y"));
276
- }
277
- if (builder.customerId || builder.description || builder.invoiceNumber) {
278
- var fields = elementtree_1.SubElement(block1, "AdditionalTxnFields");
279
- elementtree_1.SubElement(fields, "CustomerID").append(elementtree_1.CData(builder.customerId));
280
- elementtree_1.SubElement(fields, "Description").append(elementtree_1.CData(builder.description));
281
- elementtree_1.SubElement(fields, "InvoiceNbr").append(elementtree_1.CData(builder.invoiceNumber));
282
- }
283
- if (builder.ecommerceInfo) {
284
- if (builder.ecommerceInfo.channel) {
285
- elementtree_1.SubElement(block1, "Ecommerce").append(elementtree_1.CData(builder.ecommerceInfo.channel.toString()));
286
- }
287
- if (builder.invoiceNumber || builder.ecommerceInfo.shipMonth) {
288
- var direct = elementtree_1.SubElement(block1, "DirectMktData");
289
- elementtree_1.SubElement(direct, "DirectMktInvoiceNbr").append(elementtree_1.CData(builder.invoiceNumber));
290
- elementtree_1.SubElement(direct, "DirectMktShipDay").append(elementtree_1.CData(builder.ecommerceInfo.shipDay));
291
- elementtree_1.SubElement(direct, "DirectMktShipMonth").append(elementtree_1.CData(builder.ecommerceInfo.shipMonth));
292
- }
293
- if (builder.ecommerceInfo.cavv ||
294
- builder.ecommerceInfo.eci ||
295
- builder.ecommerceInfo.xid) {
296
- var secure = elementtree_1.SubElement(block1, "SecureECommerce");
297
- elementtree_1.SubElement(secure, "PaymentDataSource").append(elementtree_1.CData(builder.ecommerceInfo.paymentDataSource));
298
- elementtree_1.SubElement(secure, "TypeOfPaymentData").append(elementtree_1.CData(builder.ecommerceInfo.paymentDataType));
299
- elementtree_1.SubElement(secure, "PaymentData").append(elementtree_1.CData(builder.ecommerceInfo.cavv));
300
- elementtree_1.SubElement(secure, "ECommerceIndicator").append(elementtree_1.CData(builder.ecommerceInfo.eci));
301
- elementtree_1.SubElement(secure, "XID").append(elementtree_1.CData(builder.ecommerceInfo.xid));
302
- }
303
- }
304
- if (builder.dynamicDescriptor) {
305
- elementtree_1.SubElement(block1, "TxnDescriptor").append(elementtree_1.CData(builder.dynamicDescriptor));
306
- }
307
- return this.doTransaction(this.buildEnvelope(transaction, builder.clientTransactionId)).then(function (response) { return _this.mapResponse(response, builder); });
308
- };
309
- PorticoConnector.prototype.serializeRequest = function (_builder) {
310
- throw new __1.UnsupportedTransactionError("Portico does not support hosted payments.");
311
- };
312
- PorticoConnector.prototype.manageTransaction = function (builder) {
313
- var _this = this;
314
- // build request
315
- var transaction = elementtree_1.Element(this.mapRequestType(builder));
316
- if (builder.transactionType !== __1.TransactionType.BatchClose) {
317
- var root = void 0;
318
- if (builder.transactionType === __1.TransactionType.Reversal ||
319
- builder.transactionType === __1.TransactionType.Refund ||
320
- builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Gift ||
321
- builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.ACH) {
322
- root = new elementtree_1.Element("Block1");
323
- }
324
- else {
325
- root = transaction;
326
- }
327
- // amount
328
- if (builder.amount) {
329
- elementtree_1.SubElement(root, "Amt").append(elementtree_1.CData(builder.amount.toString()));
330
- }
331
- // auth amount
332
- if (builder.authAmount) {
333
- elementtree_1.SubElement(root, "AuthAmt").append(elementtree_1.CData(builder.authAmount.toString()));
334
- }
335
- // gratuity
336
- if (builder.gratuity) {
337
- elementtree_1.SubElement(root, "GratuityAmtInfo").append(elementtree_1.CData(builder.gratuity.toString()));
338
- }
339
- if (builder.clientTransactionId) {
340
- elementtree_1.SubElement(root, "ClientTxnId").append(elementtree_1.CData(builder.clientTransactionId));
341
- }
342
- // transaction ID
343
- if (builder.paymentMethod &&
344
- builder.paymentMethod
345
- .transactionId) {
346
- var ref = builder.paymentMethod;
347
- elementtree_1.SubElement(root, "GatewayTxnId").append(elementtree_1.CData(ref.transactionId));
348
- }
349
- // level II Data
350
- if (builder.transactionType === __1.TransactionType.Edit &&
351
- builder.transactionModifier === __1.TransactionModifier.LevelII) {
352
- var cpc = elementtree_1.SubElement(root, "CPCData");
353
- if (builder.poNumber) {
354
- elementtree_1.SubElement(cpc, "CardHolderPONbr").append(elementtree_1.CData(builder.poNumber));
355
- }
356
- if (builder.taxType) {
357
- elementtree_1.SubElement(cpc, "TaxType").append(elementtree_1.CData(this.hydrateTaxType(builder.taxType)));
358
- }
359
- if (builder.taxAmount) {
360
- elementtree_1.SubElement(cpc, "TaxAmt").append(elementtree_1.CData(builder.taxAmount.toString()));
361
- }
362
- }
363
- if (builder.transactionType === __1.TransactionType.Reversal ||
364
- builder.transactionType === __1.TransactionType.Refund ||
365
- builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Gift ||
366
- builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.ACH) {
367
- transaction.append(root);
368
- }
369
- }
370
- return this.doTransaction(this.buildEnvelope(transaction, builder.clientTransactionId)).then(function (response) { return _this.mapResponse(response, builder); });
371
- };
372
- PorticoConnector.prototype.processReport = function (builder) {
373
- var _this = this;
374
- var transaction = elementtree_1.Element(this.mapReportRequestType(builder));
375
- if (builder.timeZoneConversion) {
376
- elementtree_1.SubElement(transaction, "TzConversion").append(elementtree_1.CData(builder.timeZoneConversion.toString()));
377
- }
378
- if (builder instanceof __1.TransactionReportBuilder) {
379
- var trb = builder;
380
- if (trb.deviceId) {
381
- elementtree_1.SubElement(transaction, "DeviceId").append(elementtree_1.CData(trb.deviceId));
382
- }
383
- if (trb.startDate) {
384
- elementtree_1.SubElement(transaction, "RptStartUtcDT").append(elementtree_1.CData(trb.startDate.toISOString()));
385
- }
386
- if (trb.endDate) {
387
- elementtree_1.SubElement(transaction, "RptEndUtcDT").append(elementtree_1.CData(trb.endDate.toISOString()));
388
- }
389
- if (trb.transactionId) {
390
- elementtree_1.SubElement(transaction, "TxnId").append(elementtree_1.CData(trb.transactionId));
391
- }
392
- if (trb.searchCriteria) {
393
- var criteriaNode = elementtree_1.Element("Criteria");
394
- for (var property in trb.searchCriteria) {
395
- elementtree_1.SubElement(criteriaNode, property).append(elementtree_1.CData(trb.searchCriteria[property]));
396
- }
397
- transaction.append(criteriaNode);
398
- }
399
- }
400
- return this.doTransaction(this.buildEnvelope(transaction)).then(function (response) { return _this.mapReportResponse(response, builder); });
401
- };
402
- PorticoConnector.prototype.buildEnvelope = function (transaction, clientTransactionId) {
403
- var envelope = elementtree_1.Element("soap:Envelope", {
404
- "xmlns:soap": "http://schemas.xmlsoap.org/soap/envelope/",
405
- });
406
- var body = elementtree_1.SubElement(envelope, "soap:Body");
407
- var request = elementtree_1.SubElement(body, "PosRequest", {
408
- xmlns: PorticoConnector.XmlNamespace,
409
- });
410
- var version1 = elementtree_1.SubElement(request, "Ver1.0");
411
- // header
412
- var header = elementtree_1.SubElement(version1, "Header");
413
- if (this.secretApiKey) {
414
- elementtree_1.SubElement(header, "SecretAPIKey").append(elementtree_1.CData(this.secretApiKey));
415
- }
416
- if (this.siteId) {
417
- elementtree_1.SubElement(header, "SiteId").append(elementtree_1.CData(this.siteId));
418
- }
419
- if (this.licenseId) {
420
- elementtree_1.SubElement(header, "LicenseId").append(elementtree_1.CData(this.licenseId));
421
- }
422
- if (this.deviceId) {
423
- elementtree_1.SubElement(header, "DeviceId").append(elementtree_1.CData(this.deviceId));
424
- }
425
- if (this.username) {
426
- elementtree_1.SubElement(header, "UserName").append(elementtree_1.CData(this.username));
427
- }
428
- if (this.password) {
429
- elementtree_1.SubElement(header, "Password").append(elementtree_1.CData(this.password));
430
- }
431
- if (this.developerId) {
432
- elementtree_1.SubElement(header, "DeveloperID").append(elementtree_1.CData(this.developerId));
433
- }
434
- if (this.versionNumber) {
435
- elementtree_1.SubElement(header, "VersionNbr").append(elementtree_1.CData(this.versionNumber));
436
- }
437
- if (clientTransactionId) {
438
- elementtree_1.SubElement(header, "ClientTxnId").append(elementtree_1.CData(clientTransactionId));
439
- }
440
- if (this.sdkNameVersion) {
441
- elementtree_1.SubElement(header, "SDKNameVersion").append(elementtree_1.CData(this.sdkNameVersion));
442
- }
443
- else {
444
- elementtree_1.SubElement(header, "SDKNameVersion").append(elementtree_1.CData("nodejs-version:" + process.env.npm_package_version));
445
- }
446
- // transaction
447
- elementtree_1.SubElement(version1, "Transaction").append(transaction);
448
- return new elementtree_1.ElementTree(envelope).write();
449
- };
450
- PorticoConnector.prototype.mapRequestType = function (builder) {
451
- switch (builder.transactionType) {
452
- case __1.TransactionType.BatchClose:
453
- return "BatchClose";
454
- case __1.TransactionType.Decline:
455
- if (builder.transactionModifier === __1.TransactionModifier.ChipDecline) {
456
- return "ChipCardDecline";
457
- }
458
- else if (builder.transactionModifier === __1.TransactionModifier.FraudDecline) {
459
- return "OverrideFraudDecline";
460
- }
461
- throw new __1.UnsupportedTransactionError();
462
- case __1.TransactionType.Verify:
463
- if (builder.transactionModifier === __1.TransactionModifier.EncryptedMobile) {
464
- throw new __1.UnsupportedTransactionError();
465
- }
466
- return "CreditAccountVerify";
467
- case __1.TransactionType.Capture:
468
- return "CreditAddToBatch";
469
- case __1.TransactionType.Auth:
470
- if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Credit) {
471
- if (builder.transactionModifier === __1.TransactionModifier.Additional) {
472
- return "CreditAdditionalAuth";
473
- }
474
- else if (builder.transactionModifier === __1.TransactionModifier.Incremental) {
475
- return "CreditIncrementalAuth";
476
- }
477
- else if (builder.paymentMethod.paymentMethodType ===
478
- __1.PaymentMethodType.Recurring) {
479
- return "RecurringBillingAuth";
480
- }
481
- else if (builder.transactionModifier === __1.TransactionModifier.EncryptedMobile) {
482
- throw new __1.UnsupportedTransactionError();
483
- }
484
- else if (builder.transactionModifier === __1.TransactionModifier.Offline) {
485
- return "CreditOfflineAuth";
486
- }
487
- return "CreditAuth";
488
- }
489
- else if (builder.paymentMethod.paymentMethodType ===
490
- __1.PaymentMethodType.Recurring) {
491
- return "RecurringBillingAuth";
492
- }
493
- throw new __1.UnsupportedTransactionError();
494
- case __1.TransactionType.Sale:
495
- if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Credit) {
496
- if (builder.transactionModifier === __1.TransactionModifier.Offline) {
497
- return "CreditOfflineSale";
498
- }
499
- else if (builder.transactionModifier === __1.TransactionModifier.Recurring) {
500
- return "RecurringBilling";
501
- }
502
- else if (builder.transactionModifier === __1.TransactionModifier.EncryptedMobile) {
503
- throw new __1.UnsupportedTransactionError();
504
- }
505
- else {
506
- return "CreditSale";
507
- }
508
- }
509
- else if (builder.paymentMethod.paymentMethodType ===
510
- __1.PaymentMethodType.Recurring) {
511
- if (builder.paymentMethod.paymentType === "ACH") {
512
- return "CheckSale";
513
- }
514
- return "RecurringBilling";
515
- }
516
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Debit) {
517
- return "DebitSale";
518
- }
519
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Cash) {
520
- return "CashSale";
521
- }
522
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.ACH) {
523
- return "CheckSale";
524
- }
525
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.EBT) {
526
- if (builder.transactionModifier === __1.TransactionModifier.CashBack) {
527
- return "EBTCashBackPurchase";
528
- }
529
- else if (builder.transactionModifier === __1.TransactionModifier.Voucher) {
530
- return "EBTVoucherPurchase";
531
- }
532
- else {
533
- return "EBTFSPurchase";
534
- }
535
- }
536
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Gift) {
537
- return "GiftCardSale";
538
- }
539
- throw new __1.UnsupportedTransactionError();
540
- case __1.TransactionType.Refund:
541
- if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Credit) {
542
- return "CreditReturn";
543
- }
544
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Debit) {
545
- if (builder.paymentMethod instanceof __1.TransactionReference) {
546
- throw new __1.UnsupportedTransactionError();
547
- }
548
- return "DebitReturn";
549
- }
550
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Cash) {
551
- return "CashReturn";
552
- }
553
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.EBT) {
554
- if (builder.paymentMethod instanceof __1.TransactionReference) {
555
- throw new __1.UnsupportedTransactionError();
556
- }
557
- return "EBTFSReturn";
558
- }
559
- throw new __1.UnsupportedTransactionError();
560
- case __1.TransactionType.Reversal:
561
- if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Credit) {
562
- return "CreditReversal";
563
- }
564
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Debit) {
565
- if (builder.paymentMethod instanceof __1.TransactionReference) {
566
- throw new __1.UnsupportedTransactionError();
567
- }
568
- return "DebitReversal";
569
- }
570
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Gift) {
571
- return "GiftCardReversal";
572
- }
573
- throw new __1.UnsupportedTransactionError();
574
- case __1.TransactionType.Edit:
575
- if (builder.transactionModifier === __1.TransactionModifier.LevelII) {
576
- return "CreditCPCEdit";
577
- }
578
- return "CreditTxnEdit";
579
- case __1.TransactionType.Void:
580
- if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Credit) {
581
- return "CreditVoid";
582
- }
583
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.ACH) {
584
- return "CheckVoid";
585
- }
586
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Gift) {
587
- return "GiftCardVoid";
588
- }
589
- throw new __1.UnsupportedTransactionError();
590
- case __1.TransactionType.AddValue:
591
- if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Credit) {
592
- return "PrePaidAddValue";
593
- }
594
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Debit) {
595
- return "DebitAddValue";
596
- }
597
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Gift) {
598
- return "GiftCardAddValue";
599
- }
600
- throw new __1.UnsupportedTransactionError();
601
- case __1.TransactionType.Balance:
602
- if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Credit) {
603
- return "PrePaidBalanceInquiry";
604
- }
605
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.EBT) {
606
- return "EBTBalanceInquiry";
607
- }
608
- else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Gift) {
609
- return "GiftCardBalance";
610
- }
611
- throw new __1.UnsupportedTransactionError();
612
- case __1.TransactionType.BenefitWithDrawal:
613
- return "EBTCashBenefitWithdrawal";
614
- case __1.TransactionType.Activate:
615
- return "GiftCardActivate";
616
- case __1.TransactionType.Alias:
617
- return "GiftCardAlias";
618
- case __1.TransactionType.Deactivate:
619
- return "GiftCardDeactivate";
620
- case __1.TransactionType.Replace:
621
- return "GiftCardReplace";
622
- case __1.TransactionType.Reward:
623
- return "GiftCardReward";
624
- default:
625
- break;
626
- }
627
- throw new __1.NotImplementedError();
628
- };
629
- PorticoConnector.prototype.mapReportRequestType = function (builder) {
630
- switch (builder.reportType) {
631
- case __1.ReportType.Activity:
632
- return "ReportActivity";
633
- case __1.ReportType.TransactionDetail:
634
- return "ReportTxnDetail";
635
- case __1.ReportType.FindTransactions:
636
- return "FindTransactions";
637
- default:
638
- throw new __1.UnsupportedTransactionError();
639
- }
640
- };
641
- PorticoConnector.prototype.mapResponse = function (rawResponse, builder) {
642
- var result = new __1.Transaction();
643
- var root = elementtree_1.XML(rawResponse).find(".//PosResponse");
644
- var acceptedCodes = ["00", "0", "85", "10"];
645
- var gatewayRspCode = this.normalizeResponse(root.findtext(".//GatewayRspCode"));
646
- var gatewayRspText = root.findtext(".//GatewayRspMsg");
647
- if (acceptedCodes.indexOf(gatewayRspCode) === -1) {
648
- throw new __1.GatewayError("Unexpected Gateway Response: " + gatewayRspCode + " - " + gatewayRspText);
649
- }
650
- result.responseCode = root.findtext(".//RspCode")
651
- ? this.normalizeResponse(root.findtext(".//RspCode"))
652
- : gatewayRspCode;
653
- result.responseMessage = root.findtext(".//RspText")
654
- ? root.findtext(".//RspText")
655
- : gatewayRspText;
656
- result.authorizedAmount = root.findtext(".//AuthAmt");
657
- result.availableBalance = root.findtext(".//AvailableBalance");
658
- result.avsResponseCode = root.findtext(".//AVSRsltCode");
659
- result.avsResponseMessage = root.findtext(".//AVSRsltText");
660
- result.balanceAmount = root.findtext(".//BalanceAmt");
661
- result.cardType = root.findtext(".//CardType");
662
- result.cardLast4 = root.findtext(".//TokenPANLast4");
663
- result.cavvResponseCode = root.findtext(".//CAVVResultCode");
664
- result.commercialIndicator = root.findtext(".//CPCInd");
665
- result.cvnResponseCode = root.findtext(".//CVVRsltCode");
666
- result.cvnResponseMessage = root.findtext(".//CVVRsltText");
667
- result.pointsBalanceAmount = root.findtext(".//PointsBalanceAmt");
668
- result.recurringDataCode = root.findtext(".//RecurringDataCode");
669
- result.referenceNumber = root.findtext(".//RefNbr");
670
- result.transactionDescriptor = root.findtext(".//TxnDescriptor");
671
- result.cardBrandTransactionId = root.findtext(".//CardBrandTxnId");
672
- if (builder.paymentMethod) {
673
- result.transactionReference = new __1.TransactionReference(root.findtext(".//GatewayTxnId"));
674
- result.transactionReference.paymentMethodType =
675
- builder.paymentMethod.paymentMethodType;
676
- }
677
- if (root.findtext(".//AuthCode")) {
678
- result.transactionReference =
679
- result.transactionReference || new __1.TransactionReference();
680
- result.transactionReference.authCode = root.findtext(".//AuthCode");
681
- }
682
- if (root.find(".//TokenData") &&
683
- root.find(".//TokenData").findtext(".//TokenValue")) {
684
- var tokenData = root.find(".//TokenData");
685
- result.token = tokenData.findtext(".//TokenValue");
686
- }
687
- if (root.find(".//CardData")) {
688
- var cardData = root.find(".//CardData");
689
- result.giftCard = new __1.GiftCard();
690
- result.giftCard.number = cardData.findtext(".//CardNbr");
691
- result.giftCard.alias = cardData.findtext(".//Alias");
692
- result.giftCard.pin = cardData.findtext(".//PIN");
693
- }
694
- if (root.find(".//BatchId")) {
695
- result.batchId = root.findtext(".//BatchId");
696
- result.batchSeqNbr = root.findtext(".//BatchSeqNbr");
697
- }
698
- return result;
699
- };
700
- PorticoConnector.prototype.mapReportResponse = function (rawResponse, builder) {
701
- // todo: handle non-200 responses
702
- var posResponse = elementtree_1.XML(rawResponse).find(".//PosResponse");
703
- var doc = posResponse.find(".//" + this.mapReportRequestType(builder));
704
- var result;
705
- if (builder.reportType === __1.ReportType.Activity) {
706
- result = doc
707
- .findall(".//Details")
708
- .map(this.hydrateTransactionSummary.bind(this));
709
- }
710
- if (builder.reportType === __1.ReportType.FindTransactions) {
711
- result = doc
712
- .findall(".//Transactions")
713
- .map(this.hydrateTransactionSummary.bind(this));
714
- }
715
- else if (builder.reportType === __1.ReportType.TransactionDetail) {
716
- result = this.hydrateTransactionSummary(doc);
717
- }
718
- return result;
719
- };
720
- PorticoConnector.prototype.normalizeResponse = function (input) {
721
- if (["0", "85"].indexOf(input) !== -1) {
722
- input = "00";
723
- }
724
- return input;
725
- };
726
- PorticoConnector.prototype.hasToken = function (paymentMethod) {
727
- var tokenizable = paymentMethod;
728
- if (tokenizable.token) {
729
- return {
730
- hasToken: true,
731
- tokenValue: tokenizable.token,
732
- };
733
- }
734
- return {
735
- hasToken: false,
736
- tokenValue: "",
737
- };
738
- };
739
- PorticoConnector.prototype.hydrateAccountType = function (type) {
740
- switch (type) {
741
- case __1.AccountType.Checking:
742
- return "CHECKING";
743
- case __1.AccountType.Savings:
744
- return "SAVINGS";
745
- default:
746
- return "";
747
- }
748
- };
749
- PorticoConnector.prototype.hydrateCheckType = function (type) {
750
- switch (type) {
751
- case __1.CheckType.Business:
752
- return "BUSINESS";
753
- case __1.CheckType.Payroll:
754
- return "PAYROLL";
755
- case __1.CheckType.Personal:
756
- return "PERSONAL";
757
- default:
758
- return "";
759
- }
760
- };
761
- PorticoConnector.prototype.hydrateCredentialOnFile = function (builder) {
762
- var cof = new elementtree_1.Element("CardOnFileData");
763
- if (builder.transactionInitiator) {
764
- elementtree_1.SubElement(cof, "CardOnFile").append(elementtree_1.CData(builder.transactionInitiator));
765
- }
766
- if (builder.cardBrandTransactionId) {
767
- elementtree_1.SubElement(cof, "CardBrandTxnId").append(elementtree_1.CData(builder.cardBrandTransactionId));
768
- }
769
- return cof;
770
- };
771
- PorticoConnector.prototype.hydrateEncryptionData = function (builder) {
772
- var enc = new elementtree_1.Element("EncryptionData");
773
- var data = builder.paymentMethod
774
- .encryptionData;
775
- if (data.version) {
776
- elementtree_1.SubElement(enc, "Version").append(elementtree_1.CData(data.version));
777
- }
778
- if (data.trackNumber) {
779
- elementtree_1.SubElement(enc, "TrackNumber").append(elementtree_1.CData(data.trackNumber));
780
- }
781
- if (data.ktb) {
782
- elementtree_1.SubElement(enc, "KTB").append(elementtree_1.CData(data.ktb));
783
- }
784
- if (data.ksn) {
785
- elementtree_1.SubElement(enc, "KSN").append(elementtree_1.CData(data.ksn));
786
- }
787
- return enc;
788
- };
789
- PorticoConnector.prototype.hydrateEntryMethod = function (method) {
790
- switch (method) {
791
- case __1.EntryMethod.Manual:
792
- return "Manual";
793
- case __1.EntryMethod.Proximity:
794
- return "Proximity";
795
- case __1.EntryMethod.Swipe:
796
- return "Swipe";
797
- default:
798
- return "";
799
- }
800
- };
801
- PorticoConnector.prototype.hydrateHolder = function (builder, isCheck) {
802
- var holder = new elementtree_1.Element(isCheck ? "ConsumerInfo" : "CardHolderData");
803
- elementtree_1.SubElement(holder, isCheck ? "Address1" : "CardHolderAddr").append(elementtree_1.CData(builder.billingAddress.streetAddress1));
804
- elementtree_1.SubElement(holder, isCheck ? "City" : "CardHolderCity").append(elementtree_1.CData(builder.billingAddress.city));
805
- elementtree_1.SubElement(holder, isCheck ? "State" : "CardHolderState").append(elementtree_1.CData(builder.billingAddress.province));
806
- elementtree_1.SubElement(holder, isCheck ? "Zip" : "CardHolderZip").append(elementtree_1.CData(builder.billingAddress.postalCode));
807
- if (isCheck) {
808
- var check = builder.paymentMethod;
809
- if (check.checkName) {
810
- var names = check.checkName.split(" ", 2);
811
- elementtree_1.SubElement(holder, "FirstName").append(elementtree_1.CData(names[0]));
812
- if (names[1]) {
813
- elementtree_1.SubElement(holder, "LastName").append(elementtree_1.CData(names[1]));
814
- }
815
- elementtree_1.SubElement(holder, "CheckName").append(elementtree_1.CData(check.checkName));
816
- }
817
- if (check.phoneNumber) {
818
- elementtree_1.SubElement(holder, "PhoneNumber").append(elementtree_1.CData(check.phoneNumber));
819
- }
820
- if (check.driversLicenseNumber) {
821
- elementtree_1.SubElement(holder, "DLNumber").append(elementtree_1.CData(check.driversLicenseNumber));
822
- }
823
- if (check.driversLicenseState) {
824
- elementtree_1.SubElement(holder, "DLState").append(elementtree_1.CData(check.driversLicenseState));
825
- }
826
- if (check.ssnLast4 || check.birthYear) {
827
- var identity = elementtree_1.SubElement(holder, "IdentityInfo");
828
- elementtree_1.SubElement(identity, "SSNL4").append(elementtree_1.CData(check.ssnLast4));
829
- elementtree_1.SubElement(identity, "DOBYear").append(elementtree_1.CData(check.birthYear));
830
- }
831
- }
832
- return holder;
833
- };
834
- PorticoConnector.prototype.hydrateInquiryType = function (type) {
835
- switch (type) {
836
- case __1.InquiryType.Cash:
837
- return "CASH";
838
- case __1.InquiryType.Foodstamp:
839
- return "FOODSTAMP";
840
- case __1.InquiryType.Points:
841
- return "POINTS";
842
- case __1.InquiryType.Standard:
843
- return "STANDARD";
844
- default:
845
- return "";
846
- }
847
- };
848
- PorticoConnector.prototype.hydrateManualEntry = function (block1, builder, hasToken, tokenValue) {
849
- var me = new elementtree_1.Element(hasToken ? "TokenData" : "ManualEntry");
850
- var card;
851
- if (builder.paymentMethod instanceof __1.CreditCardData) {
852
- card = builder.paymentMethod;
853
- }
854
- else {
855
- card = builder.paymentMethod;
856
- }
857
- if (builder.cardBrandTransactionId || builder.transactionInitiator) {
858
- block1.append(this.hydrateCredentialOnFile(builder));
859
- }
860
- if (card.number || hasToken) {
861
- elementtree_1.SubElement(me, hasToken ? "TokenValue" : "CardNbr").append(elementtree_1.CData(hasToken ? tokenValue : card.number));
862
- }
863
- if (card.expMonth) {
864
- elementtree_1.SubElement(me, "ExpMonth").append(elementtree_1.CData(card.expMonth));
865
- }
866
- if (card.expYear) {
867
- elementtree_1.SubElement(me, "ExpYear").append(elementtree_1.CData(card.expYear));
868
- }
869
- if (card.cvn) {
870
- elementtree_1.SubElement(me, "CVV2").append(elementtree_1.CData(card.cvn));
871
- }
872
- elementtree_1.SubElement(me, "ReaderPresent").append(elementtree_1.CData(card.readerPresent ? "Y" : "N"));
873
- elementtree_1.SubElement(me, "CardPresent").append(elementtree_1.CData(card.cardPresent ? "Y" : "N"));
874
- if (builder.transactionModifier === __1.TransactionModifier.Recurring) {
875
- var recurring = elementtree_1.SubElement(block1, "RecurringData");
876
- elementtree_1.SubElement(recurring, "ScheduleID").append(elementtree_1.CData(builder.scheduleId));
877
- elementtree_1.SubElement(recurring, "OneTime").append(elementtree_1.CData(builder.oneTimePayment ? "Y" : "N"));
878
- }
879
- return me;
880
- };
881
- PorticoConnector.prototype.hydrateSecCode = function (code) {
882
- switch (code) {
883
- case __1.SecCode.CCD:
884
- return "CCD";
885
- case __1.SecCode.PPD:
886
- return "PPD";
887
- case __1.SecCode.POP:
888
- return "POP";
889
- case __1.SecCode.WEB:
890
- return "WEB";
891
- case __1.SecCode.TEL:
892
- return "TEL";
893
- case __1.SecCode.EBronze:
894
- return "EBRONZE";
895
- default:
896
- return "";
897
- }
898
- };
899
- PorticoConnector.prototype.hydrateTaxType = function (type) {
900
- switch (type) {
901
- case __1.TaxType.NotUsed:
902
- return "NOTUSED";
903
- case __1.TaxType.SalesTax:
904
- return "SALESTAX";
905
- case __1.TaxType.TaxExempt:
906
- return "TAXEXEMPT";
907
- default:
908
- return "";
909
- }
910
- };
911
- PorticoConnector.prototype.hydrateTrackData = function (builder, hasToken, tokenValue) {
912
- var trackData = new elementtree_1.Element(hasToken ? "TokenValue" : "TrackData");
913
- if (hasToken) {
914
- elementtree_1.SubElement(trackData, "TokenValue").append(elementtree_1.CData(tokenValue));
915
- return trackData;
916
- }
917
- var track;
918
- if (builder.paymentMethod instanceof __1.CreditTrackData) {
919
- track = builder.paymentMethod;
920
- }
921
- else if (builder.paymentMethod instanceof __1.DebitTrackData) {
922
- track = builder.paymentMethod;
923
- }
924
- else {
925
- track = builder.paymentMethod;
926
- }
927
- trackData.append(elementtree_1.CData(track.value));
928
- if (track.paymentMethodType !== __1.PaymentMethodType.Debit) {
929
- trackData.set("method", track.entryMethod === __1.EntryMethod.Swipe ? "swipe" : "proximity");
930
- }
931
- return trackData;
932
- };
933
- PorticoConnector.prototype.hydrateTransactionSummary = function (root) {
934
- var result = new __1.TransactionSummary();
935
- result.accountDataSource = root.findtext(".//AcctDataSrc");
936
- result.amount = root.findtext(".//Amt");
937
- result.authorizedAmount = root.findtext(".//AuthAmt");
938
- result.authCode = root.findtext(".//AuthCode");
939
- result.batchCloseDate = new Date(root.findtext(".//BatchCloseDT"));
940
- result.batchSequenceNumber = root.findtext(".//BatchSeqNbr");
941
- result.cardSwiped = root.findtext(".//CardSwiped");
942
- result.cardType = root.findtext(".//CardType");
943
- result.clerkId = root.findtext(".//ClerkID");
944
- result.clientTransactionId = root.findtext(".//ClientTxnId");
945
- result.convenienceAmt = root.findtext(".//ConvenienceAmtInfo");
946
- result.deviceId = root.findtext(".//DeviceId");
947
- result.gratuityAmount = root.findtext(".//GratuityAmtInfo");
948
- result.issuerResponseCode = this.normalizeResponse(root.findtext(".//IssuerRspCode"));
949
- result.issuerResponseMessage = root.findtext(".//IssuerRspText");
950
- result.issuerTransactionId = root.findtext(".//IssTxnId");
951
- result.maskedCardNumber = root.findtext(".//MaskedCardNbr");
952
- result.gatewayResponseCode = this.normalizeResponse(root.findtext(".//GatewayRspCode"));
953
- result.gatewayResponseMessage = root.findtext(".//GatewayRspMsg");
954
- result.originalTransactionId = root.findtext(".//OriginalGatewayTxnId");
955
- result.paymentType = root.findtext(".//PaymentType");
956
- result.poNumber = root.findtext(".//CardHolderPONbr");
957
- result.referenceNumber = root.findtext(".//RefNbr");
958
- result.responseDate = new Date(root.findtext(".//RspDT"));
959
- result.serviceName = root.findtext(".//ServiceName");
960
- result.settlementAmount = root.findtext(".//SettlementAmt");
961
- result.shippingAmt = root.findtext(".//ShippingAmtInfo");
962
- result.siteTrace = root.findtext(".//SiteTrace");
963
- result.status = root.findtext(".//TxnStatus");
964
- result.taxAmount = root.findtext(".//TaxAmtInfo");
965
- result.taxType = root.findtext(".//TaxType");
966
- result.transactionDate = new Date(root.findtext(".//TxnUtcDT"));
967
- result.transactionId = root.findtext(".//GatewayTxnId");
968
- result.username = root.findtext(".//UserName");
969
- result.description = root.findtext(".//Description");
970
- result.invoiceNumber = root.findtext(".//InvoiceNbr");
971
- result.customerId = root.findtext(".//CustomerID");
972
- result.uniqueDeviceId = root.findtext(".//UniqueDeviceId");
973
- result.transactionDescriptor = root.findtext(".//TxnDescriptor");
974
- result.giftCurrency = root.findtext(".//GiftCurrency");
975
- result.maskedAlias = root.findtext(".//GiftMaskedAlias");
976
- result.paymentMethodKey = root.findtext(".//PaymentMethodKey");
977
- result.scheduleId = root.findtext(".//ScheduleID");
978
- result.oneTimePayment = root.findtext(".//OneTime");
979
- result.recurringDataCode = root.findtext(".//RecurringDataCode");
980
- result.surchargeAmount = root.findtext(".//SurchargeAmtInfo");
981
- result.fraudRuleInfo = root.findtext(".//FraudInfoRule");
982
- result.repeatCount = root.findtext(".//RepeatCount");
983
- result.emvChipCondition = root.findtext(".//EMVChipCondition");
984
- result.hasEmvTags = root.findtext(".//HasEMVTag");
985
- result.hasEcomPaymentData = root.findtext(".//HasEComPaymentData");
986
- result.cavvResponseCode = root.findtext(".//CAVVResultCode");
987
- result.tokenPanLastFour = root.findtext(".//TokenPANLast4");
988
- result.companyName = root.findtext(".//Company");
989
- result.customerFirstName = root.findtext(".//CustomerFirstname");
990
- result.customerLastName = root.findtext(".//CustomerLastname");
991
- result.debtRepaymentIndicator = root.findtext(".//DebtRepaymentIndicator");
992
- result.captureAmount = root.findtext(".//CaptureAmtInfo");
993
- result.fullyCaptured = root.findtext(".//FullyCapturedInd");
994
- return result;
995
- };
996
- PorticoConnector.prototype.shouldIncludeCredentialOnFile = function (builder) {
997
- if ([
998
- __1.TransactionType.Auth,
999
- __1.TransactionType.Refund,
1000
- __1.TransactionType.Sale,
1001
- __1.TransactionType.Verify,
1002
- ].indexOf(builder.transactionType) !== -1) {
1003
- return true;
1004
- }
1005
- return false;
1006
- };
1007
- PorticoConnector.prototype.isAppleOrGooglePay = function (paymentDataSource) {
1008
- return paymentDataSource == __1.PaymentDataSourceType.APPLEPAY
1009
- || paymentDataSource == __1.PaymentDataSourceType.APPLEPAYAPP
1010
- || paymentDataSource == __1.PaymentDataSourceType.APPLEPAYWEB
1011
- || paymentDataSource == __1.PaymentDataSourceType.GOOGLEPAYAPP
1012
- || paymentDataSource == __1.PaymentDataSourceType.GOOGLEPAYWEB;
1013
- };
1014
- PorticoConnector.XmlNamespace = "http://Hps.Exchange.PosGateway";
1015
- return PorticoConnector;
1016
- }(XmlGateway_1.XmlGateway));
1017
- exports.PorticoConnector = PorticoConnector;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PorticoConnector = void 0;
4
+ const elementtree_1 = require("@azz/elementtree");
5
+ const __1 = require("../");
6
+ const InputValidation_1 = require("../Utils/InputValidation");
7
+ const XmlGateway_1 = require("./XmlGateway");
8
+ class PorticoConnector extends XmlGateway_1.XmlGateway {
9
+ static XmlNamespace = "http://Hps.Exchange.PosGateway";
10
+ siteId;
11
+ licenseId;
12
+ deviceId;
13
+ username;
14
+ password;
15
+ secretApiKey;
16
+ developerId;
17
+ versionNumber;
18
+ sdkNameVersion;
19
+ supportsHostedPayments = false;
20
+ uniqueDeviceId;
21
+ config;
22
+ constructor(config) {
23
+ super();
24
+ this.config = config;
25
+ }
26
+ processAuthorization(builder) {
27
+ // build request
28
+ const transaction = (0, elementtree_1.Element)(this.mapRequestType(builder));
29
+ const block1 = (0, elementtree_1.SubElement)(transaction, "Block1");
30
+ let allowDuplicates;
31
+ if (builder.transactionType === __1.TransactionType.Sale ||
32
+ builder.transactionType === __1.TransactionType.Auth) {
33
+ if (builder.paymentMethod.paymentMethodType !== __1.PaymentMethodType.Gift &&
34
+ builder.paymentMethod.paymentMethodType !== __1.PaymentMethodType.ACH) {
35
+ allowDuplicates = (0, elementtree_1.SubElement)(block1, "AllowDup");
36
+ allowDuplicates.append((0, elementtree_1.CData)(builder.allowDuplicates ? "Y" : "N"));
37
+ if (builder.transactionModifier === __1.TransactionModifier.None &&
38
+ builder.paymentMethod.paymentMethodType !== __1.PaymentMethodType.EBT &&
39
+ builder.paymentMethod.paymentMethodType !==
40
+ __1.PaymentMethodType.Recurring) {
41
+ (0, elementtree_1.SubElement)(block1, "AllowPartialAuth").append((0, elementtree_1.CData)(builder.allowPartialAuth ? "Y" : "N"));
42
+ }
43
+ }
44
+ }
45
+ if (builder.amount !== undefined && builder.amount !== "") {
46
+ (0, elementtree_1.SubElement)(block1, "Amt").append((0, elementtree_1.CData)((0, InputValidation_1.validateAmount)("portico", builder.amount)));
47
+ }
48
+ if (builder.gratuity) {
49
+ (0, elementtree_1.SubElement)(block1, "GratuityAmtInfo").append((0, elementtree_1.CData)((0, InputValidation_1.validateAmount)("portico", builder.gratuity)));
50
+ }
51
+ if (builder.convenienceAmt) {
52
+ (0, elementtree_1.SubElement)(block1, "ConvenienceAmtInfo").append((0, elementtree_1.CData)((0, InputValidation_1.validateAmount)("portico", builder.convenienceAmt)));
53
+ }
54
+ if (builder.shippingAmt) {
55
+ (0, elementtree_1.SubElement)(block1, "ShippingAmtInfo").append((0, elementtree_1.CData)((0, InputValidation_1.validateAmount)("portico", builder.shippingAmt)));
56
+ }
57
+ if (builder.cashBackAmount !== undefined && builder.cashBackAmount !== "") {
58
+ (0, elementtree_1.SubElement)(block1,
59
+ // because plano
60
+ builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Debit
61
+ ? "CashbackAmtInfo"
62
+ : "CashBackAmount").append((0, elementtree_1.CData)((0, InputValidation_1.validateAmount)("portico", builder.cashBackAmount)));
63
+ }
64
+ if (builder.offlineAuthCode) {
65
+ (0, elementtree_1.SubElement)(block1, "OfflineAuthCode").append((0, elementtree_1.CData)(builder.offlineAuthCode));
66
+ }
67
+ if (builder.transactionType === __1.TransactionType.Alias) {
68
+ (0, elementtree_1.SubElement)(block1, "Action").append((0, elementtree_1.CData)(builder.aliasAction.toString()));
69
+ (0, elementtree_1.SubElement)(block1, "Alias").append((0, elementtree_1.CData)(builder.alias));
70
+ }
71
+ const isCheck = builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.ACH;
72
+ const property = isCheck ? "checkHolderName" : "cardHolderName";
73
+ if (builder.transactionType !== __1.TransactionType.Reversal &&
74
+ (isCheck || builder.billingAddress || builder.paymentMethod[property])) {
75
+ const holder = (0, elementtree_1.SubElement)(block1, isCheck ? "ConsumerInfo" : "CardHolderData");
76
+ const pm = builder.paymentMethod;
77
+ if (pm[property]) {
78
+ const names = pm[property].split(" ", 2);
79
+ (0, elementtree_1.SubElement)(holder, isCheck ? "FirstName" : "CardHolderFirstName").append((0, elementtree_1.CData)((0, InputValidation_1.validateInput)("portico", "firstName", names[0])));
80
+ if (names[1]) {
81
+ (0, elementtree_1.SubElement)(holder, isCheck ? "LastName" : "CardHolderLastName").append((0, elementtree_1.CData)((0, InputValidation_1.validateInput)("portico", "lastName", names[1])));
82
+ }
83
+ }
84
+ if (builder.billingAddress) {
85
+ (0, elementtree_1.SubElement)(holder, isCheck ? "Address1" : "CardHolderAddr").append((0, elementtree_1.CData)(builder.billingAddress.streetAddress1));
86
+ (0, elementtree_1.SubElement)(holder, isCheck ? "City" : "CardHolderCity").append((0, elementtree_1.CData)((0, InputValidation_1.validateInput)("portico", "city", builder.billingAddress.city)));
87
+ (0, elementtree_1.SubElement)(holder, isCheck ? "State" : "CardHolderState").append((0, elementtree_1.CData)((0, InputValidation_1.validateInput)("portico", "province", builder.billingAddress.province || builder.billingAddress.state)));
88
+ (0, elementtree_1.SubElement)(holder, isCheck ? "Zip" : "CardHolderZip").append((0, elementtree_1.CData)((0, InputValidation_1.validateInput)("portico", "postalCode", builder.billingAddress.postalCode)));
89
+ }
90
+ if (isCheck) {
91
+ const check = builder.paymentMethod;
92
+ (0, elementtree_1.SubElement)(holder, "CheckName").append((0, elementtree_1.CData)(check.checkName || check.checkHolderName));
93
+ (0, elementtree_1.SubElement)(holder, "PhoneNumber").append((0, elementtree_1.CData)((0, InputValidation_1.validateInput)("portico", "phoneNumber", check.phoneNumber)));
94
+ (0, elementtree_1.SubElement)(holder, "DLNumber").append((0, elementtree_1.CData)(check.driversLicenseNumber));
95
+ (0, elementtree_1.SubElement)(holder, "DLState").append((0, elementtree_1.CData)(check.driversLicenseState));
96
+ if (check.ssnLast4 || check.birthYear) {
97
+ const identity = (0, elementtree_1.SubElement)(holder, "IdentityInfo");
98
+ (0, elementtree_1.SubElement)(identity, "SSNL4").append((0, elementtree_1.CData)(check.ssnLast4));
99
+ (0, elementtree_1.SubElement)(identity, "DOBYear").append((0, elementtree_1.CData)(check.birthYear));
100
+ }
101
+ }
102
+ }
103
+ const { hasToken, tokenValue } = this.hasToken(builder.paymentMethod);
104
+ let cardData;
105
+ if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Debit ||
106
+ builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.ACH) {
107
+ cardData = block1;
108
+ }
109
+ else {
110
+ cardData = (0, elementtree_1.Element)("CardData");
111
+ }
112
+ if (builder.paymentMethod.isCardData) {
113
+ const card = builder.paymentMethod;
114
+ const manualEntry = (0, elementtree_1.SubElement)(cardData, hasToken ? "TokenData" : "ManualEntry");
115
+ if (this.shouldIncludeCredentialOnFile(builder) &&
116
+ (builder.cardBrandTransactionId || builder.transactionInitiator)) {
117
+ block1.append(this.hydrateCredentialOnFile(builder));
118
+ }
119
+ (0, elementtree_1.SubElement)(manualEntry, hasToken ? "TokenValue" : "CardNbr").append((0, elementtree_1.CData)(tokenValue || card.number));
120
+ if (card.expMonth) {
121
+ (0, elementtree_1.SubElement)(manualEntry, "ExpMonth").append((0, elementtree_1.CData)(card.expMonth.toString()));
122
+ }
123
+ if (card.expYear) {
124
+ (0, elementtree_1.SubElement)(manualEntry, "ExpYear").append((0, elementtree_1.CData)(card.expYear.toString()));
125
+ }
126
+ if (card.cvn) {
127
+ (0, elementtree_1.SubElement)(manualEntry, "CVV2").append((0, elementtree_1.CData)(card.cvn));
128
+ }
129
+ (0, elementtree_1.SubElement)(manualEntry, "ReaderPresent").append((0, elementtree_1.CData)(card.readerPresent ? "Y" : "N"));
130
+ (0, elementtree_1.SubElement)(manualEntry, "CardPresent").append((0, elementtree_1.CData)(card.cardPresent ? "Y" : "N"));
131
+ block1.append(cardData);
132
+ if (card instanceof __1.CreditCardData) {
133
+ const creditCardData = card;
134
+ // WalletData Element
135
+ if ((creditCardData.mobileType == __1.MobilePaymentMethodType.APPLEPAY ||
136
+ creditCardData.mobileType == __1.MobilePaymentMethodType.GOOGLEPAY) &&
137
+ typeof creditCardData.paymentSource != "undefined" &&
138
+ this.isAppleOrGooglePay(creditCardData.paymentSource)) {
139
+ const walletData = (0, elementtree_1.SubElement)(block1, "WalletData");
140
+ (0, elementtree_1.SubElement)(walletData, "PaymentSource").append((0, elementtree_1.CData)(creditCardData.paymentSource.trim()));
141
+ if (typeof creditCardData.mobileType != "undefined") {
142
+ (0, elementtree_1.SubElement)(walletData, "DigitalPaymentToken").append((0, elementtree_1.CData)(creditCardData.token));
143
+ block1.remove(cardData);
144
+ }
145
+ }
146
+ }
147
+ if (builder.transactionModifier === __1.TransactionModifier.Recurring) {
148
+ const recurring = (0, elementtree_1.SubElement)(block1, "RecurringData");
149
+ (0, elementtree_1.SubElement)(recurring, "ScheduleID").append((0, elementtree_1.CData)(builder.scheduleId));
150
+ (0, elementtree_1.SubElement)(recurring, "OneTime").append((0, elementtree_1.CData)(builder.oneTimePayment ? "Y" : "N"));
151
+ }
152
+ }
153
+ else if (builder.paymentMethod.isTrackData) {
154
+ const track = builder.paymentMethod;
155
+ const trackData = (0, elementtree_1.SubElement)(cardData, hasToken ? "TokenData" : "TrackData");
156
+ if (!hasToken) {
157
+ trackData.append((0, elementtree_1.CData)(track.value));
158
+ if (builder.paymentMethod.paymentMethodType !== __1.PaymentMethodType.Debit) {
159
+ trackData.set("method", track.entryMethod === __1.EntryMethod.Swipe ? "swipe" : "proximity");
160
+ block1.append(cardData);
161
+ }
162
+ }
163
+ else if (tokenValue) {
164
+ (0, elementtree_1.SubElement)(trackData, "TokenValue").append((0, elementtree_1.CData)(tokenValue));
165
+ }
166
+ }
167
+ else if (builder.paymentMethod instanceof __1.GiftCard) {
168
+ const card = builder.paymentMethod;
169
+ if (builder.currency) {
170
+ (0, elementtree_1.SubElement)(block1, "Currency").append((0, elementtree_1.CData)(builder.currency.toUpperCase()));
171
+ }
172
+ // if it's replace, add the new card, and change the card data name to be old card data
173
+ if (builder.transactionType === __1.TransactionType.Replace) {
174
+ const newCardData = (0, elementtree_1.SubElement)(block1, "NewCardData");
175
+ (0, elementtree_1.SubElement)(newCardData, builder.replacementCard.valueType).append((0, elementtree_1.CData)(builder.replacementCard.value));
176
+ (0, elementtree_1.SubElement)(newCardData, "PIN").append((0, elementtree_1.CData)(builder.replacementCard.pin));
177
+ cardData = (0, elementtree_1.Element)("OldCardData");
178
+ }
179
+ (0, elementtree_1.SubElement)(cardData, card.valueType).append((0, elementtree_1.CData)(card.value));
180
+ if (card.pin) {
181
+ (0, elementtree_1.SubElement)(cardData, "PIN").append((0, elementtree_1.CData)(card.pin));
182
+ }
183
+ if (builder.aliasAction !== __1.AliasAction.Create) {
184
+ block1.append(cardData);
185
+ }
186
+ }
187
+ else if (builder.paymentMethod instanceof __1.ECheck) {
188
+ const check = builder.paymentMethod;
189
+ (0, elementtree_1.SubElement)(block1, "CheckAction").append((0, elementtree_1.CData)("SALE"));
190
+ if (!hasToken) {
191
+ const accountInfo = (0, elementtree_1.SubElement)(block1, "AccountInfo");
192
+ (0, elementtree_1.SubElement)(accountInfo, "RoutingNumber").append((0, elementtree_1.CData)(check.routingNumber));
193
+ (0, elementtree_1.SubElement)(accountInfo, "AccountNumber").append((0, elementtree_1.CData)(check.accountNumber));
194
+ (0, elementtree_1.SubElement)(accountInfo, "CheckNumber").append((0, elementtree_1.CData)(check.checkNumber));
195
+ (0, elementtree_1.SubElement)(accountInfo, "MICRData").append((0, elementtree_1.CData)(check.micrNumber));
196
+ (0, elementtree_1.SubElement)(accountInfo, "AccountType").append((0, elementtree_1.CData)(check.accountType.toString()));
197
+ }
198
+ else if (tokenValue) {
199
+ (0, elementtree_1.SubElement)(block1, "TokenValue").append((0, elementtree_1.CData)(tokenValue));
200
+ }
201
+ (0, elementtree_1.SubElement)(block1, "DataEntryMode").append((0, elementtree_1.CData)(check.entryMode.toString().toUpperCase()));
202
+ (0, elementtree_1.SubElement)(block1, "CheckType").append((0, elementtree_1.CData)(check.checkType.toString()));
203
+ (0, elementtree_1.SubElement)(block1, "SECCode").append((0, elementtree_1.CData)(check.secCode.toString()));
204
+ const verify = (0, elementtree_1.SubElement)(block1, "VerifyInfo");
205
+ (0, elementtree_1.SubElement)(verify, "CheckVerify").append((0, elementtree_1.CData)(check.checkVerify ? "Y" : "N"));
206
+ (0, elementtree_1.SubElement)(verify, "ACHVerify").append((0, elementtree_1.CData)(check.achVerify ? "Y" : "N"));
207
+ }
208
+ if (builder.paymentMethod instanceof __1.TransactionReference) {
209
+ const reference = builder.paymentMethod;
210
+ if (reference.transactionId) {
211
+ (0, elementtree_1.SubElement)(block1, "GatewayTxnId").append((0, elementtree_1.CData)(reference.transactionId));
212
+ }
213
+ if (reference.clientTransactionId) {
214
+ (0, elementtree_1.SubElement)(block1, "ClientTxnId").append((0, elementtree_1.CData)(reference.clientTransactionId));
215
+ }
216
+ }
217
+ if (builder.paymentMethod instanceof __1.RecurringPaymentMethod) {
218
+ const method = builder.paymentMethod;
219
+ if (method.paymentType === "ACH") {
220
+ if (allowDuplicates) {
221
+ block1.remove(allowDuplicates);
222
+ }
223
+ (0, elementtree_1.SubElement)(block1, "CheckAction").append((0, elementtree_1.CData)("SALE"));
224
+ }
225
+ (0, elementtree_1.SubElement)(block1, "PaymentMethodKey").append((0, elementtree_1.CData)(method.key));
226
+ if (method.paymentMethod &&
227
+ method.paymentMethod instanceof __1.CreditCardData) {
228
+ const card = method.paymentMethod;
229
+ const data = (0, elementtree_1.SubElement)(block1, "PaymentMethodKeyData");
230
+ (0, elementtree_1.SubElement)(data, "ExpMonth").append((0, elementtree_1.CData)(card.expMonth));
231
+ (0, elementtree_1.SubElement)(data, "ExpYear").append((0, elementtree_1.CData)(card.expYear));
232
+ (0, elementtree_1.SubElement)(data, "CVV2").append((0, elementtree_1.CData)(card.cvn));
233
+ if (this.shouldIncludeCredentialOnFile(builder) &&
234
+ (builder.cardBrandTransactionId || builder.transactionInitiator)) {
235
+ block1.append(this.hydrateCredentialOnFile(builder));
236
+ }
237
+ }
238
+ const recurring = (0, elementtree_1.SubElement)(block1, "RecurringData");
239
+ (0, elementtree_1.SubElement)(recurring, "ScheduleID").append((0, elementtree_1.CData)(builder.scheduleId));
240
+ (0, elementtree_1.SubElement)(recurring, "OneTime").append((0, elementtree_1.CData)(builder.oneTimePayment ? "Y" : "N"));
241
+ }
242
+ if (builder.paymentMethod.isPinProtected &&
243
+ builder.transactionType !== __1.TransactionType.Reversal) {
244
+ (0, elementtree_1.SubElement)(block1, "PinBlock").append((0, elementtree_1.CData)(builder.paymentMethod.pinBlock));
245
+ }
246
+ if (builder.paymentMethod.isEncryptable) {
247
+ const encryptionData = builder.paymentMethod
248
+ .encryptionData;
249
+ if (encryptionData) {
250
+ const enc = (0, elementtree_1.SubElement)(cardData, "EncryptionData");
251
+ if (encryptionData.version) {
252
+ (0, elementtree_1.SubElement)(enc, "Version").append((0, elementtree_1.CData)(encryptionData.version));
253
+ }
254
+ if (encryptionData.trackNumber) {
255
+ (0, elementtree_1.SubElement)(enc, "EncryptedTrackNumber").append((0, elementtree_1.CData)(encryptionData.trackNumber));
256
+ }
257
+ if (encryptionData.ktb) {
258
+ (0, elementtree_1.SubElement)(enc, "KTB").append((0, elementtree_1.CData)(encryptionData.ktb));
259
+ }
260
+ if (encryptionData.ksn) {
261
+ (0, elementtree_1.SubElement)(enc, "KSN").append((0, elementtree_1.CData)(encryptionData.ksn));
262
+ }
263
+ }
264
+ }
265
+ if (builder.paymentMethod.isTokenizable &&
266
+ builder.paymentMethod.paymentMethodType !== __1.PaymentMethodType.ACH) {
267
+ (0, elementtree_1.SubElement)(cardData, "TokenRequest").append((0, elementtree_1.CData)(builder.requestMultiUseToken ? "Y" : "N"));
268
+ }
269
+ if (builder.paymentMethod.isBalanceable && builder.balanceInquiryType) {
270
+ (0, elementtree_1.SubElement)(block1, "BalanceInquiryType").append((0, elementtree_1.CData)(builder.balanceInquiryType.toString()));
271
+ }
272
+ if (builder.level2Request) {
273
+ (0, elementtree_1.SubElement)(block1, "CPCReq").append((0, elementtree_1.CData)("Y"));
274
+ }
275
+ if (builder.customerId || builder.description || builder.invoiceNumber) {
276
+ const fields = (0, elementtree_1.SubElement)(block1, "AdditionalTxnFields");
277
+ (0, elementtree_1.SubElement)(fields, "CustomerID").append((0, elementtree_1.CData)(builder.customerId));
278
+ (0, elementtree_1.SubElement)(fields, "Description").append((0, elementtree_1.CData)(builder.description));
279
+ (0, elementtree_1.SubElement)(fields, "InvoiceNbr").append((0, elementtree_1.CData)(builder.invoiceNumber));
280
+ }
281
+ if (builder.ecommerceInfo) {
282
+ if (builder.ecommerceInfo.channel) {
283
+ (0, elementtree_1.SubElement)(block1, "Ecommerce").append((0, elementtree_1.CData)(builder.ecommerceInfo.channel.toString()));
284
+ }
285
+ if (builder.invoiceNumber || builder.ecommerceInfo.shipMonth) {
286
+ const direct = (0, elementtree_1.SubElement)(block1, "DirectMktData");
287
+ (0, elementtree_1.SubElement)(direct, "DirectMktInvoiceNbr").append((0, elementtree_1.CData)(builder.invoiceNumber));
288
+ (0, elementtree_1.SubElement)(direct, "DirectMktShipDay").append((0, elementtree_1.CData)(builder.ecommerceInfo.shipDay));
289
+ (0, elementtree_1.SubElement)(direct, "DirectMktShipMonth").append((0, elementtree_1.CData)(builder.ecommerceInfo.shipMonth));
290
+ }
291
+ if (builder.ecommerceInfo.cavv ||
292
+ builder.ecommerceInfo.eci ||
293
+ builder.ecommerceInfo.xid) {
294
+ const secure = (0, elementtree_1.SubElement)(block1, "SecureECommerce");
295
+ (0, elementtree_1.SubElement)(secure, "PaymentDataSource").append((0, elementtree_1.CData)(builder.ecommerceInfo.paymentDataSource));
296
+ (0, elementtree_1.SubElement)(secure, "TypeOfPaymentData").append((0, elementtree_1.CData)(builder.ecommerceInfo.paymentDataType));
297
+ (0, elementtree_1.SubElement)(secure, "PaymentData").append((0, elementtree_1.CData)(builder.ecommerceInfo.cavv));
298
+ (0, elementtree_1.SubElement)(secure, "ECommerceIndicator").append((0, elementtree_1.CData)(builder.ecommerceInfo.eci));
299
+ (0, elementtree_1.SubElement)(secure, "XID").append((0, elementtree_1.CData)(builder.ecommerceInfo.xid));
300
+ }
301
+ }
302
+ if (builder.dynamicDescriptor) {
303
+ (0, elementtree_1.SubElement)(block1, "TxnDescriptor").append((0, elementtree_1.CData)(builder.dynamicDescriptor));
304
+ }
305
+ return this.doTransaction(this.buildEnvelope(transaction, builder.clientTransactionId)).then((response) => this.mapResponse(response, builder));
306
+ }
307
+ serializeRequest() {
308
+ throw new __1.UnsupportedTransactionError("Portico does not support hosted payments.");
309
+ }
310
+ manageTransaction(builder) {
311
+ // build request
312
+ const transaction = (0, elementtree_1.Element)(this.mapRequestType(builder));
313
+ if (builder.transactionType !== __1.TransactionType.BatchClose) {
314
+ let root;
315
+ if (builder.transactionType === __1.TransactionType.Reversal ||
316
+ builder.transactionType === __1.TransactionType.Refund ||
317
+ builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Gift ||
318
+ builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.ACH) {
319
+ root = new elementtree_1.Element("Block1");
320
+ }
321
+ else {
322
+ root = transaction;
323
+ }
324
+ // amount
325
+ if (builder.amount) {
326
+ (0, elementtree_1.SubElement)(root, "Amt").append((0, elementtree_1.CData)(builder.amount.toString()));
327
+ }
328
+ // auth amount
329
+ if (builder.authAmount) {
330
+ (0, elementtree_1.SubElement)(root, "AuthAmt").append((0, elementtree_1.CData)(builder.authAmount.toString()));
331
+ }
332
+ // gratuity
333
+ if (builder.gratuity) {
334
+ (0, elementtree_1.SubElement)(root, "GratuityAmtInfo").append((0, elementtree_1.CData)(builder.gratuity.toString()));
335
+ }
336
+ if (builder.clientTransactionId) {
337
+ (0, elementtree_1.SubElement)(root, "ClientTxnId").append((0, elementtree_1.CData)(builder.clientTransactionId));
338
+ }
339
+ // transaction ID
340
+ if (builder.paymentMethod &&
341
+ builder.paymentMethod.transactionId) {
342
+ const ref = builder.paymentMethod;
343
+ (0, elementtree_1.SubElement)(root, "GatewayTxnId").append((0, elementtree_1.CData)(ref.transactionId));
344
+ }
345
+ // level II Data
346
+ if (builder.transactionType === __1.TransactionType.Edit &&
347
+ builder.transactionModifier === __1.TransactionModifier.LevelII) {
348
+ const cpc = (0, elementtree_1.SubElement)(root, "CPCData");
349
+ if (builder.poNumber) {
350
+ (0, elementtree_1.SubElement)(cpc, "CardHolderPONbr").append((0, elementtree_1.CData)(builder.poNumber));
351
+ }
352
+ if (builder.taxType) {
353
+ (0, elementtree_1.SubElement)(cpc, "TaxType").append((0, elementtree_1.CData)(this.hydrateTaxType(builder.taxType)));
354
+ }
355
+ if (builder.taxAmount) {
356
+ (0, elementtree_1.SubElement)(cpc, "TaxAmt").append((0, elementtree_1.CData)(builder.taxAmount.toString()));
357
+ }
358
+ }
359
+ if (builder.transactionType === __1.TransactionType.Reversal ||
360
+ builder.transactionType === __1.TransactionType.Refund ||
361
+ builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Gift ||
362
+ builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.ACH) {
363
+ transaction.append(root);
364
+ }
365
+ }
366
+ return this.doTransaction(this.buildEnvelope(transaction, builder.clientTransactionId)).then((response) => this.mapResponse(response, builder));
367
+ }
368
+ processReport(builder) {
369
+ const transaction = (0, elementtree_1.Element)(this.mapReportRequestType(builder));
370
+ if (builder.timeZoneConversion) {
371
+ (0, elementtree_1.SubElement)(transaction, "TzConversion").append((0, elementtree_1.CData)(builder.timeZoneConversion.toString()));
372
+ }
373
+ if (builder instanceof __1.TransactionReportBuilder) {
374
+ const trb = builder;
375
+ if (trb.deviceId) {
376
+ (0, elementtree_1.SubElement)(transaction, "DeviceId").append((0, elementtree_1.CData)(trb.deviceId));
377
+ }
378
+ if (trb.startDate) {
379
+ (0, elementtree_1.SubElement)(transaction, "RptStartUtcDT").append((0, elementtree_1.CData)(trb.startDate.toISOString()));
380
+ }
381
+ if (trb.endDate) {
382
+ (0, elementtree_1.SubElement)(transaction, "RptEndUtcDT").append((0, elementtree_1.CData)(trb.endDate.toISOString()));
383
+ }
384
+ if (trb.transactionId) {
385
+ (0, elementtree_1.SubElement)(transaction, "TxnId").append((0, elementtree_1.CData)(trb.transactionId));
386
+ }
387
+ if (trb.searchCriteria) {
388
+ const criteriaNode = (0, elementtree_1.Element)("Criteria");
389
+ for (const property in trb.searchCriteria) {
390
+ (0, elementtree_1.SubElement)(criteriaNode, property).append((0, elementtree_1.CData)(trb.searchCriteria[property]));
391
+ }
392
+ transaction.append(criteriaNode);
393
+ }
394
+ }
395
+ return this.doTransaction(this.buildEnvelope(transaction)).then((response) => this.mapReportResponse(response, builder));
396
+ }
397
+ buildEnvelope(transaction, clientTransactionId) {
398
+ const envelope = (0, elementtree_1.Element)("soap:Envelope", {
399
+ "xmlns:soap": "http://schemas.xmlsoap.org/soap/envelope/",
400
+ });
401
+ const body = (0, elementtree_1.SubElement)(envelope, "soap:Body");
402
+ const request = (0, elementtree_1.SubElement)(body, "PosRequest", {
403
+ xmlns: PorticoConnector.XmlNamespace,
404
+ });
405
+ const version1 = (0, elementtree_1.SubElement)(request, "Ver1.0");
406
+ // header
407
+ const header = (0, elementtree_1.SubElement)(version1, "Header");
408
+ if (this.secretApiKey) {
409
+ (0, elementtree_1.SubElement)(header, "SecretAPIKey").append((0, elementtree_1.CData)(this.secretApiKey));
410
+ }
411
+ if (this.siteId) {
412
+ (0, elementtree_1.SubElement)(header, "SiteId").append((0, elementtree_1.CData)(this.siteId));
413
+ }
414
+ if (this.licenseId) {
415
+ (0, elementtree_1.SubElement)(header, "LicenseId").append((0, elementtree_1.CData)(this.licenseId));
416
+ }
417
+ if (this.deviceId) {
418
+ (0, elementtree_1.SubElement)(header, "DeviceId").append((0, elementtree_1.CData)(this.deviceId));
419
+ }
420
+ if (this.username) {
421
+ (0, elementtree_1.SubElement)(header, "UserName").append((0, elementtree_1.CData)(this.username));
422
+ }
423
+ if (this.password) {
424
+ (0, elementtree_1.SubElement)(header, "Password").append((0, elementtree_1.CData)(this.password));
425
+ }
426
+ if (this.developerId) {
427
+ (0, elementtree_1.SubElement)(header, "DeveloperID").append((0, elementtree_1.CData)(this.developerId));
428
+ }
429
+ if (this.versionNumber) {
430
+ (0, elementtree_1.SubElement)(header, "VersionNbr").append((0, elementtree_1.CData)(this.versionNumber));
431
+ }
432
+ if (clientTransactionId) {
433
+ (0, elementtree_1.SubElement)(header, "ClientTxnId").append((0, elementtree_1.CData)(clientTransactionId));
434
+ }
435
+ if (this.sdkNameVersion) {
436
+ (0, elementtree_1.SubElement)(header, "SDKNameVersion").append((0, elementtree_1.CData)(this.sdkNameVersion));
437
+ }
438
+ else {
439
+ (0, elementtree_1.SubElement)(header, "SDKNameVersion").append((0, elementtree_1.CData)("nodejs-version:" + process.env.npm_package_version));
440
+ }
441
+ // transaction
442
+ (0, elementtree_1.SubElement)(version1, "Transaction").append(transaction);
443
+ return new elementtree_1.ElementTree(envelope).write();
444
+ }
445
+ mapRequestType(builder) {
446
+ switch (builder.transactionType) {
447
+ case __1.TransactionType.BatchClose:
448
+ return "BatchClose";
449
+ case __1.TransactionType.Decline:
450
+ if (builder.transactionModifier === __1.TransactionModifier.ChipDecline) {
451
+ return "ChipCardDecline";
452
+ }
453
+ else if (builder.transactionModifier === __1.TransactionModifier.FraudDecline) {
454
+ return "OverrideFraudDecline";
455
+ }
456
+ throw new __1.UnsupportedTransactionError();
457
+ case __1.TransactionType.Verify:
458
+ if (builder.transactionModifier === __1.TransactionModifier.EncryptedMobile) {
459
+ throw new __1.UnsupportedTransactionError();
460
+ }
461
+ return "CreditAccountVerify";
462
+ case __1.TransactionType.Capture:
463
+ return "CreditAddToBatch";
464
+ case __1.TransactionType.Auth:
465
+ if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Credit) {
466
+ if (builder.transactionModifier === __1.TransactionModifier.Additional) {
467
+ return "CreditAdditionalAuth";
468
+ }
469
+ else if (builder.transactionModifier === __1.TransactionModifier.Incremental) {
470
+ return "CreditIncrementalAuth";
471
+ }
472
+ else if (
473
+ // @ts-ignore
474
+ builder.paymentMethod.paymentMethodType ===
475
+ __1.PaymentMethodType.Recurring) {
476
+ return "RecurringBillingAuth";
477
+ }
478
+ else if (builder.transactionModifier === __1.TransactionModifier.EncryptedMobile) {
479
+ throw new __1.UnsupportedTransactionError();
480
+ }
481
+ else if (builder.transactionModifier === __1.TransactionModifier.Offline) {
482
+ return "CreditOfflineAuth";
483
+ }
484
+ return "CreditAuth";
485
+ }
486
+ else if (builder.paymentMethod.paymentMethodType ===
487
+ __1.PaymentMethodType.Recurring) {
488
+ return "RecurringBillingAuth";
489
+ }
490
+ throw new __1.UnsupportedTransactionError();
491
+ case __1.TransactionType.Sale:
492
+ if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Credit) {
493
+ if (builder.transactionModifier === __1.TransactionModifier.Offline) {
494
+ return "CreditOfflineSale";
495
+ }
496
+ else if (builder.transactionModifier === __1.TransactionModifier.Recurring) {
497
+ return "RecurringBilling";
498
+ }
499
+ else if (builder.transactionModifier === __1.TransactionModifier.EncryptedMobile) {
500
+ throw new __1.UnsupportedTransactionError();
501
+ }
502
+ else {
503
+ return "CreditSale";
504
+ }
505
+ }
506
+ else if (builder.paymentMethod.paymentMethodType ===
507
+ __1.PaymentMethodType.Recurring) {
508
+ if (builder.paymentMethod.paymentType === "ACH") {
509
+ return "CheckSale";
510
+ }
511
+ return "RecurringBilling";
512
+ }
513
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Debit) {
514
+ return "DebitSale";
515
+ }
516
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Cash) {
517
+ return "CashSale";
518
+ }
519
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.ACH) {
520
+ return "CheckSale";
521
+ }
522
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.EBT) {
523
+ if (builder.transactionModifier === __1.TransactionModifier.CashBack) {
524
+ return "EBTCashBackPurchase";
525
+ }
526
+ else if (builder.transactionModifier === __1.TransactionModifier.Voucher) {
527
+ return "EBTVoucherPurchase";
528
+ }
529
+ else {
530
+ return "EBTFSPurchase";
531
+ }
532
+ }
533
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Gift) {
534
+ return "GiftCardSale";
535
+ }
536
+ throw new __1.UnsupportedTransactionError();
537
+ case __1.TransactionType.Refund:
538
+ if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Credit) {
539
+ return "CreditReturn";
540
+ }
541
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Debit) {
542
+ if (builder.paymentMethod instanceof __1.TransactionReference) {
543
+ throw new __1.UnsupportedTransactionError();
544
+ }
545
+ return "DebitReturn";
546
+ }
547
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Cash) {
548
+ return "CashReturn";
549
+ }
550
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.EBT) {
551
+ if (builder.paymentMethod instanceof __1.TransactionReference) {
552
+ throw new __1.UnsupportedTransactionError();
553
+ }
554
+ return "EBTFSReturn";
555
+ }
556
+ throw new __1.UnsupportedTransactionError();
557
+ case __1.TransactionType.Reversal:
558
+ if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Credit) {
559
+ return "CreditReversal";
560
+ }
561
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Debit) {
562
+ if (builder.paymentMethod instanceof __1.TransactionReference) {
563
+ throw new __1.UnsupportedTransactionError();
564
+ }
565
+ return "DebitReversal";
566
+ }
567
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Gift) {
568
+ return "GiftCardReversal";
569
+ }
570
+ throw new __1.UnsupportedTransactionError();
571
+ case __1.TransactionType.Edit:
572
+ if (builder.transactionModifier === __1.TransactionModifier.LevelII) {
573
+ return "CreditCPCEdit";
574
+ }
575
+ return "CreditTxnEdit";
576
+ case __1.TransactionType.Void:
577
+ if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Credit) {
578
+ return "CreditVoid";
579
+ }
580
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.ACH) {
581
+ return "CheckVoid";
582
+ }
583
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Gift) {
584
+ return "GiftCardVoid";
585
+ }
586
+ throw new __1.UnsupportedTransactionError();
587
+ case __1.TransactionType.AddValue:
588
+ if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Credit) {
589
+ return "PrePaidAddValue";
590
+ }
591
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Debit) {
592
+ return "DebitAddValue";
593
+ }
594
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Gift) {
595
+ return "GiftCardAddValue";
596
+ }
597
+ throw new __1.UnsupportedTransactionError();
598
+ case __1.TransactionType.Balance:
599
+ if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Credit) {
600
+ return "PrePaidBalanceInquiry";
601
+ }
602
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.EBT) {
603
+ return "EBTBalanceInquiry";
604
+ }
605
+ else if (builder.paymentMethod.paymentMethodType === __1.PaymentMethodType.Gift) {
606
+ return "GiftCardBalance";
607
+ }
608
+ throw new __1.UnsupportedTransactionError();
609
+ case __1.TransactionType.BenefitWithDrawal:
610
+ return "EBTCashBenefitWithdrawal";
611
+ case __1.TransactionType.Activate:
612
+ return "GiftCardActivate";
613
+ case __1.TransactionType.Alias:
614
+ return "GiftCardAlias";
615
+ case __1.TransactionType.Deactivate:
616
+ return "GiftCardDeactivate";
617
+ case __1.TransactionType.Replace:
618
+ return "GiftCardReplace";
619
+ case __1.TransactionType.Reward:
620
+ return "GiftCardReward";
621
+ default:
622
+ break;
623
+ }
624
+ throw new __1.NotImplementedError();
625
+ }
626
+ mapReportRequestType(builder) {
627
+ switch (builder.reportType) {
628
+ case __1.ReportType.Activity:
629
+ return "ReportActivity";
630
+ case __1.ReportType.TransactionDetail:
631
+ return "ReportTxnDetail";
632
+ case __1.ReportType.FindTransactions:
633
+ return "FindTransactions";
634
+ default:
635
+ throw new __1.UnsupportedTransactionError();
636
+ }
637
+ }
638
+ mapResponse(rawResponse, builder) {
639
+ const result = new __1.Transaction();
640
+ const root = (0, elementtree_1.XML)(rawResponse).find(".//PosResponse");
641
+ const acceptedCodes = ["00", "0", "85", "10"];
642
+ const gatewayRspCode = this.normalizeResponse(root.findtext(".//GatewayRspCode"));
643
+ const gatewayRspText = root.findtext(".//GatewayRspMsg");
644
+ if (acceptedCodes.indexOf(gatewayRspCode) === -1) {
645
+ throw new __1.GatewayError(`Unexpected Gateway Response: ${gatewayRspCode} - ${gatewayRspText}`);
646
+ }
647
+ result.responseCode = root.findtext(".//RspCode")
648
+ ? this.normalizeResponse(root.findtext(".//RspCode"))
649
+ : gatewayRspCode;
650
+ result.responseMessage = root.findtext(".//RspText")
651
+ ? root.findtext(".//RspText")
652
+ : gatewayRspText;
653
+ result.authorizedAmount = root.findtext(".//AuthAmt");
654
+ result.availableBalance = root.findtext(".//AvailableBalance");
655
+ result.avsResponseCode = root.findtext(".//AVSRsltCode");
656
+ result.avsResponseMessage = root.findtext(".//AVSRsltText");
657
+ result.balanceAmount = root.findtext(".//BalanceAmt");
658
+ result.cardType = root.findtext(".//CardType");
659
+ result.cardLast4 = root.findtext(".//TokenPANLast4");
660
+ result.cavvResponseCode = root.findtext(".//CAVVResultCode");
661
+ result.commercialIndicator = root.findtext(".//CPCInd");
662
+ result.cvnResponseCode = root.findtext(".//CVVRsltCode");
663
+ result.cvnResponseMessage = root.findtext(".//CVVRsltText");
664
+ result.pointsBalanceAmount = root.findtext(".//PointsBalanceAmt");
665
+ result.recurringDataCode = root.findtext(".//RecurringDataCode");
666
+ result.referenceNumber = root.findtext(".//RefNbr");
667
+ result.transactionDescriptor = root.findtext(".//TxnDescriptor");
668
+ result.cardBrandTransactionId = root.findtext(".//CardBrandTxnId");
669
+ if (builder.paymentMethod) {
670
+ result.transactionReference = new __1.TransactionReference(root.findtext(".//GatewayTxnId"));
671
+ result.transactionReference.paymentMethodType =
672
+ builder.paymentMethod.paymentMethodType;
673
+ }
674
+ if (root.findtext(".//AuthCode")) {
675
+ result.transactionReference =
676
+ result.transactionReference || new __1.TransactionReference();
677
+ result.transactionReference.authCode = root.findtext(".//AuthCode");
678
+ }
679
+ if (root.find(".//TokenData") &&
680
+ root.find(".//TokenData").findtext(".//TokenValue")) {
681
+ const tokenData = root.find(".//TokenData");
682
+ result.token = tokenData.findtext(".//TokenValue");
683
+ }
684
+ if (root.find(".//CardData")) {
685
+ const cardData = root.find(".//CardData");
686
+ result.giftCard = new __1.GiftCard();
687
+ result.giftCard.number = cardData.findtext(".//CardNbr");
688
+ result.giftCard.alias = cardData.findtext(".//Alias");
689
+ result.giftCard.pin = cardData.findtext(".//PIN");
690
+ }
691
+ if (root.find(".//BatchId")) {
692
+ result.batchId = root.findtext(".//BatchId");
693
+ result.batchSeqNbr = root.findtext(".//BatchSeqNbr");
694
+ }
695
+ return result;
696
+ }
697
+ mapReportResponse(rawResponse, builder) {
698
+ // todo: handle non-200 responses
699
+ const posResponse = (0, elementtree_1.XML)(rawResponse).find(".//PosResponse");
700
+ const doc = posResponse.find(`.//${this.mapReportRequestType(builder)}`);
701
+ let result;
702
+ if (builder.reportType === __1.ReportType.Activity) {
703
+ result = doc
704
+ .findall(".//Details")
705
+ .map(this.hydrateTransactionSummary.bind(this));
706
+ }
707
+ if (builder.reportType === __1.ReportType.FindTransactions) {
708
+ result = doc
709
+ .findall(".//Transactions")
710
+ .map(this.hydrateTransactionSummary.bind(this));
711
+ }
712
+ else if (builder.reportType === __1.ReportType.TransactionDetail) {
713
+ result = this.hydrateTransactionSummary(doc);
714
+ }
715
+ return result;
716
+ }
717
+ normalizeResponse(input) {
718
+ if (["0", "85"].indexOf(input) !== -1) {
719
+ input = "00";
720
+ }
721
+ return input;
722
+ }
723
+ hasToken(paymentMethod) {
724
+ const tokenizable = paymentMethod;
725
+ if (tokenizable.token) {
726
+ return {
727
+ hasToken: true,
728
+ tokenValue: tokenizable.token,
729
+ };
730
+ }
731
+ return {
732
+ hasToken: false,
733
+ tokenValue: "",
734
+ };
735
+ }
736
+ hydrateAccountType(type) {
737
+ switch (type) {
738
+ case __1.AccountType.Checking:
739
+ return "CHECKING";
740
+ case __1.AccountType.Savings:
741
+ return "SAVINGS";
742
+ default:
743
+ return "";
744
+ }
745
+ }
746
+ hydrateCheckType(type) {
747
+ switch (type) {
748
+ case __1.CheckType.Business:
749
+ return "BUSINESS";
750
+ case __1.CheckType.Payroll:
751
+ return "PAYROLL";
752
+ case __1.CheckType.Personal:
753
+ return "PERSONAL";
754
+ default:
755
+ return "";
756
+ }
757
+ }
758
+ hydrateCredentialOnFile(builder) {
759
+ const cof = new elementtree_1.Element("CardOnFileData");
760
+ if (builder.transactionInitiator) {
761
+ (0, elementtree_1.SubElement)(cof, "CardOnFile").append((0, elementtree_1.CData)(builder.transactionInitiator));
762
+ }
763
+ if (builder.cardBrandTransactionId) {
764
+ (0, elementtree_1.SubElement)(cof, "CardBrandTxnId").append((0, elementtree_1.CData)(builder.cardBrandTransactionId));
765
+ }
766
+ return cof;
767
+ }
768
+ hydrateEncryptionData(builder) {
769
+ const enc = new elementtree_1.Element("EncryptionData");
770
+ const data = builder.paymentMethod
771
+ .encryptionData;
772
+ if (data.version) {
773
+ (0, elementtree_1.SubElement)(enc, "Version").append((0, elementtree_1.CData)(data.version));
774
+ }
775
+ if (data.trackNumber) {
776
+ (0, elementtree_1.SubElement)(enc, "TrackNumber").append((0, elementtree_1.CData)(data.trackNumber));
777
+ }
778
+ if (data.ktb) {
779
+ (0, elementtree_1.SubElement)(enc, "KTB").append((0, elementtree_1.CData)(data.ktb));
780
+ }
781
+ if (data.ksn) {
782
+ (0, elementtree_1.SubElement)(enc, "KSN").append((0, elementtree_1.CData)(data.ksn));
783
+ }
784
+ return enc;
785
+ }
786
+ hydrateEntryMethod(method) {
787
+ switch (method) {
788
+ case __1.EntryMethod.Manual:
789
+ return "Manual";
790
+ case __1.EntryMethod.Proximity:
791
+ return "Proximity";
792
+ case __1.EntryMethod.Swipe:
793
+ return "Swipe";
794
+ default:
795
+ return "";
796
+ }
797
+ }
798
+ hydrateHolder(builder, isCheck) {
799
+ const holder = new elementtree_1.Element(isCheck ? "ConsumerInfo" : "CardHolderData");
800
+ (0, elementtree_1.SubElement)(holder, isCheck ? "Address1" : "CardHolderAddr").append((0, elementtree_1.CData)(builder.billingAddress.streetAddress1));
801
+ (0, elementtree_1.SubElement)(holder, isCheck ? "City" : "CardHolderCity").append((0, elementtree_1.CData)(builder.billingAddress.city));
802
+ (0, elementtree_1.SubElement)(holder, isCheck ? "State" : "CardHolderState").append((0, elementtree_1.CData)(builder.billingAddress.province));
803
+ (0, elementtree_1.SubElement)(holder, isCheck ? "Zip" : "CardHolderZip").append((0, elementtree_1.CData)(builder.billingAddress.postalCode));
804
+ if (isCheck) {
805
+ const check = builder.paymentMethod;
806
+ if (check.checkName) {
807
+ const names = check.checkName.split(" ", 2);
808
+ (0, elementtree_1.SubElement)(holder, "FirstName").append((0, elementtree_1.CData)(names[0]));
809
+ if (names[1]) {
810
+ (0, elementtree_1.SubElement)(holder, "LastName").append((0, elementtree_1.CData)(names[1]));
811
+ }
812
+ (0, elementtree_1.SubElement)(holder, "CheckName").append((0, elementtree_1.CData)(check.checkName));
813
+ }
814
+ if (check.phoneNumber) {
815
+ (0, elementtree_1.SubElement)(holder, "PhoneNumber").append((0, elementtree_1.CData)(check.phoneNumber));
816
+ }
817
+ if (check.driversLicenseNumber) {
818
+ (0, elementtree_1.SubElement)(holder, "DLNumber").append((0, elementtree_1.CData)(check.driversLicenseNumber));
819
+ }
820
+ if (check.driversLicenseState) {
821
+ (0, elementtree_1.SubElement)(holder, "DLState").append((0, elementtree_1.CData)(check.driversLicenseState));
822
+ }
823
+ if (check.ssnLast4 || check.birthYear) {
824
+ const identity = (0, elementtree_1.SubElement)(holder, "IdentityInfo");
825
+ (0, elementtree_1.SubElement)(identity, "SSNL4").append((0, elementtree_1.CData)(check.ssnLast4));
826
+ (0, elementtree_1.SubElement)(identity, "DOBYear").append((0, elementtree_1.CData)(check.birthYear));
827
+ }
828
+ }
829
+ return holder;
830
+ }
831
+ hydrateInquiryType(type) {
832
+ switch (type) {
833
+ case __1.InquiryType.Cash:
834
+ return "CASH";
835
+ case __1.InquiryType.Foodstamp:
836
+ return "FOODSTAMP";
837
+ case __1.InquiryType.Points:
838
+ return "POINTS";
839
+ case __1.InquiryType.Standard:
840
+ return "STANDARD";
841
+ default:
842
+ return "";
843
+ }
844
+ }
845
+ hydrateManualEntry(block1, builder, hasToken, tokenValue) {
846
+ const me = new elementtree_1.Element(hasToken ? "TokenData" : "ManualEntry");
847
+ let card;
848
+ if (builder.paymentMethod instanceof __1.CreditCardData) {
849
+ card = builder.paymentMethod;
850
+ }
851
+ else {
852
+ card = builder.paymentMethod;
853
+ }
854
+ if (builder.cardBrandTransactionId || builder.transactionInitiator) {
855
+ block1.append(this.hydrateCredentialOnFile(builder));
856
+ }
857
+ if (card.number || hasToken) {
858
+ (0, elementtree_1.SubElement)(me, hasToken ? "TokenValue" : "CardNbr").append((0, elementtree_1.CData)(hasToken ? tokenValue : card.number));
859
+ }
860
+ if (card.expMonth) {
861
+ (0, elementtree_1.SubElement)(me, "ExpMonth").append((0, elementtree_1.CData)(card.expMonth));
862
+ }
863
+ if (card.expYear) {
864
+ (0, elementtree_1.SubElement)(me, "ExpYear").append((0, elementtree_1.CData)(card.expYear));
865
+ }
866
+ if (card.cvn) {
867
+ (0, elementtree_1.SubElement)(me, "CVV2").append((0, elementtree_1.CData)(card.cvn));
868
+ }
869
+ (0, elementtree_1.SubElement)(me, "ReaderPresent").append((0, elementtree_1.CData)(card.readerPresent ? "Y" : "N"));
870
+ (0, elementtree_1.SubElement)(me, "CardPresent").append((0, elementtree_1.CData)(card.cardPresent ? "Y" : "N"));
871
+ if (builder.transactionModifier === __1.TransactionModifier.Recurring) {
872
+ const recurring = (0, elementtree_1.SubElement)(block1, "RecurringData");
873
+ (0, elementtree_1.SubElement)(recurring, "ScheduleID").append((0, elementtree_1.CData)(builder.scheduleId));
874
+ (0, elementtree_1.SubElement)(recurring, "OneTime").append((0, elementtree_1.CData)(builder.oneTimePayment ? "Y" : "N"));
875
+ }
876
+ return me;
877
+ }
878
+ hydrateSecCode(code) {
879
+ switch (code) {
880
+ case __1.SecCode.CCD:
881
+ return "CCD";
882
+ case __1.SecCode.PPD:
883
+ return "PPD";
884
+ case __1.SecCode.POP:
885
+ return "POP";
886
+ case __1.SecCode.WEB:
887
+ return "WEB";
888
+ case __1.SecCode.TEL:
889
+ return "TEL";
890
+ case __1.SecCode.EBronze:
891
+ return "EBRONZE";
892
+ default:
893
+ return "";
894
+ }
895
+ }
896
+ hydrateTaxType(type) {
897
+ switch (type) {
898
+ case __1.TaxType.NotUsed:
899
+ return "NOTUSED";
900
+ case __1.TaxType.SalesTax:
901
+ return "SALESTAX";
902
+ case __1.TaxType.TaxExempt:
903
+ return "TAXEXEMPT";
904
+ default:
905
+ return "";
906
+ }
907
+ }
908
+ hydrateTrackData(builder, hasToken, tokenValue) {
909
+ const trackData = new elementtree_1.Element(hasToken ? "TokenValue" : "TrackData");
910
+ if (hasToken) {
911
+ (0, elementtree_1.SubElement)(trackData, "TokenValue").append((0, elementtree_1.CData)(tokenValue));
912
+ return trackData;
913
+ }
914
+ let track;
915
+ if (builder.paymentMethod instanceof __1.CreditTrackData) {
916
+ track = builder.paymentMethod;
917
+ }
918
+ else if (builder.paymentMethod instanceof __1.DebitTrackData) {
919
+ track = builder.paymentMethod;
920
+ }
921
+ else {
922
+ track = builder.paymentMethod;
923
+ }
924
+ trackData.append((0, elementtree_1.CData)(track.value));
925
+ if (track.paymentMethodType !== __1.PaymentMethodType.Debit) {
926
+ trackData.set("method", track.entryMethod === __1.EntryMethod.Swipe ? "swipe" : "proximity");
927
+ }
928
+ return trackData;
929
+ }
930
+ hydrateTransactionSummary(root) {
931
+ const result = new __1.TransactionSummary();
932
+ result.accountDataSource = root.findtext(".//AcctDataSrc");
933
+ result.amount = root.findtext(".//Amt");
934
+ result.authorizedAmount = root.findtext(".//AuthAmt");
935
+ result.authCode = root.findtext(".//AuthCode");
936
+ result.batchCloseDate = new Date(root.findtext(".//BatchCloseDT"));
937
+ result.batchSequenceNumber = root.findtext(".//BatchSeqNbr");
938
+ result.cardSwiped = root.findtext(".//CardSwiped");
939
+ result.cardType = root.findtext(".//CardType");
940
+ result.clerkId = root.findtext(".//ClerkID");
941
+ result.clientTransactionId = root.findtext(".//ClientTxnId");
942
+ result.convenienceAmt = root.findtext(".//ConvenienceAmtInfo");
943
+ result.deviceId = root.findtext(".//DeviceId");
944
+ result.gratuityAmount = root.findtext(".//GratuityAmtInfo");
945
+ result.issuerResponseCode = this.normalizeResponse(root.findtext(".//IssuerRspCode"));
946
+ result.issuerResponseMessage = root.findtext(".//IssuerRspText");
947
+ result.issuerTransactionId = root.findtext(".//IssTxnId");
948
+ result.maskedCardNumber = root.findtext(".//MaskedCardNbr");
949
+ result.gatewayResponseCode = this.normalizeResponse(root.findtext(".//GatewayRspCode"));
950
+ result.gatewayResponseMessage = root.findtext(".//GatewayRspMsg");
951
+ result.originalTransactionId = root.findtext(".//OriginalGatewayTxnId");
952
+ result.paymentType = root.findtext(".//PaymentType");
953
+ result.poNumber = root.findtext(".//CardHolderPONbr");
954
+ result.referenceNumber = root.findtext(".//RefNbr");
955
+ result.responseDate = new Date(root.findtext(".//RspDT"));
956
+ result.serviceName = root.findtext(".//ServiceName");
957
+ result.settlementAmount = root.findtext(".//SettlementAmt");
958
+ result.shippingAmt = root.findtext(".//ShippingAmtInfo");
959
+ result.siteTrace = root.findtext(".//SiteTrace");
960
+ result.status = root.findtext(".//TxnStatus");
961
+ result.taxAmount = root.findtext(".//TaxAmtInfo");
962
+ result.taxType = root.findtext(".//TaxType");
963
+ result.transactionDate = new Date(root.findtext(".//TxnUtcDT"));
964
+ result.transactionId = root.findtext(".//GatewayTxnId");
965
+ result.username = root.findtext(".//UserName");
966
+ result.description = root.findtext(".//Description");
967
+ result.invoiceNumber = root.findtext(".//InvoiceNbr");
968
+ result.customerId = root.findtext(".//CustomerID");
969
+ result.uniqueDeviceId = root.findtext(".//UniqueDeviceId");
970
+ result.transactionDescriptor = root.findtext(".//TxnDescriptor");
971
+ result.giftCurrency = root.findtext(".//GiftCurrency");
972
+ result.maskedAlias = root.findtext(".//GiftMaskedAlias");
973
+ result.paymentMethodKey = root.findtext(".//PaymentMethodKey");
974
+ result.scheduleId = root.findtext(".//ScheduleID");
975
+ result.oneTimePayment = root.findtext(".//OneTime");
976
+ result.recurringDataCode = root.findtext(".//RecurringDataCode");
977
+ result.surchargeAmount = root.findtext(".//SurchargeAmtInfo");
978
+ result.fraudRuleInfo = root.findtext(".//FraudInfoRule");
979
+ result.repeatCount = root.findtext(".//RepeatCount");
980
+ result.emvChipCondition = root.findtext(".//EMVChipCondition");
981
+ result.hasEmvTags = root.findtext(".//HasEMVTag");
982
+ result.hasEcomPaymentData = root.findtext(".//HasEComPaymentData");
983
+ result.cavvResponseCode = root.findtext(".//CAVVResultCode");
984
+ result.tokenPanLastFour = root.findtext(".//TokenPANLast4");
985
+ result.companyName = root.findtext(".//Company");
986
+ result.customerFirstName = root.findtext(".//CustomerFirstname");
987
+ result.customerLastName = root.findtext(".//CustomerLastname");
988
+ result.debtRepaymentIndicator = root.findtext(".//DebtRepaymentIndicator");
989
+ result.captureAmount = root.findtext(".//CaptureAmtInfo");
990
+ result.fullyCaptured = root.findtext(".//FullyCapturedInd");
991
+ return result;
992
+ }
993
+ shouldIncludeCredentialOnFile(builder) {
994
+ if ([
995
+ __1.TransactionType.Auth,
996
+ __1.TransactionType.Refund,
997
+ __1.TransactionType.Sale,
998
+ __1.TransactionType.Verify,
999
+ ].indexOf(builder.transactionType) !== -1) {
1000
+ return true;
1001
+ }
1002
+ return false;
1003
+ }
1004
+ isAppleOrGooglePay(paymentDataSource) {
1005
+ return (paymentDataSource == __1.PaymentDataSourceType.APPLEPAY ||
1006
+ paymentDataSource == __1.PaymentDataSourceType.APPLEPAYAPP ||
1007
+ paymentDataSource == __1.PaymentDataSourceType.APPLEPAYWEB ||
1008
+ paymentDataSource == __1.PaymentDataSourceType.GOOGLEPAYAPP ||
1009
+ paymentDataSource == __1.PaymentDataSourceType.GOOGLEPAYWEB);
1010
+ }
1011
+ }
1012
+ exports.PorticoConnector = PorticoConnector;
1018
1013
  //# sourceMappingURL=PorticoConnector.js.map