mangopay4-nodejs-sdk 1.64.0

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 (353) hide show
  1. package/.github/workflows/node.js.yml +32 -0
  2. package/.github/workflows/npm-publish.yml +26 -0
  3. package/.jshintrc +16 -0
  4. package/CHANGELOG.md +946 -0
  5. package/LICENSE +21 -0
  6. package/README.md +179 -0
  7. package/docs/BankAccounts.md +35 -0
  8. package/docs/BankingAliases.md +108 -0
  9. package/docs/CardPreAuthorizations.md +55 -0
  10. package/docs/CardRegistrations.md +55 -0
  11. package/docs/Cards.md +82 -0
  12. package/docs/Clients.md +142 -0
  13. package/docs/DisputeDocuments.md +53 -0
  14. package/docs/Disputes.md +292 -0
  15. package/docs/Events.md +23 -0
  16. package/docs/Hooks.md +68 -0
  17. package/docs/Idempotency.md +11 -0
  18. package/docs/KycDocuments.md +52 -0
  19. package/docs/Mandates.md +125 -0
  20. package/docs/OptionsHelper.md +32 -0
  21. package/docs/PayIns.md +72 -0
  22. package/docs/PayOuts.md +55 -0
  23. package/docs/README.md +131 -0
  24. package/docs/Refunds.md +25 -0
  25. package/docs/Reports.md +63 -0
  26. package/docs/Repudiations.md +25 -0
  27. package/docs/Responses.md +33 -0
  28. package/docs/Transfers.md +72 -0
  29. package/docs/UboDeclarations.md +70 -0
  30. package/docs/Users.md +322 -0
  31. package/docs/Wallets.md +70 -0
  32. package/docs/templates/class.mustache +11 -0
  33. package/docs/templates/file.mustache +53 -0
  34. package/docs/templates/function.mustache +33 -0
  35. package/docs/templates/index.mustache +26 -0
  36. package/docs/templates/overview.mustache +1 -0
  37. package/examples/createUsers.js +112 -0
  38. package/examples/createWallet.js +28 -0
  39. package/examples/failedRequest.js +20 -0
  40. package/examples/getBankAccounts.js +29 -0
  41. package/examples/getUserEmoney.js +16 -0
  42. package/examples/getUsers.js +32 -0
  43. package/examples/readResponseHeaders.js +42 -0
  44. package/index.js +1 -0
  45. package/lib/Model.js +58 -0
  46. package/lib/api.js +467 -0
  47. package/lib/apiMethods.js +270 -0
  48. package/lib/config.js +57 -0
  49. package/lib/log.js +9 -0
  50. package/lib/mangopay.js +8 -0
  51. package/lib/models/Address.js +32 -0
  52. package/lib/models/BankAccount.js +45 -0
  53. package/lib/models/BankAccountDetails.js +7 -0
  54. package/lib/models/BankAccountDetailsCA.js +12 -0
  55. package/lib/models/BankAccountDetailsGB.js +10 -0
  56. package/lib/models/BankAccountDetailsIBAN.js +10 -0
  57. package/lib/models/BankAccountDetailsOTHER.js +16 -0
  58. package/lib/models/BankAccountDetailsUS.js +14 -0
  59. package/lib/models/BankAccountType.js +8 -0
  60. package/lib/models/BankingAlias.js +37 -0
  61. package/lib/models/BankingAliasIBAN.js +27 -0
  62. package/lib/models/Billing.js +14 -0
  63. package/lib/models/BinData.js +16 -0
  64. package/lib/models/Birthplace.js +10 -0
  65. package/lib/models/BrowserInfo.js +15 -0
  66. package/lib/models/Card.js +19 -0
  67. package/lib/models/CardInfo.js +32 -0
  68. package/lib/models/CardPreAuthorization.js +144 -0
  69. package/lib/models/CardRegistration.js +29 -0
  70. package/lib/models/CardValidation.js +19 -0
  71. package/lib/models/CategorizeUserLegal.js +15 -0
  72. package/lib/models/CategorizeUserNatural.js +18 -0
  73. package/lib/models/Check.js +13 -0
  74. package/lib/models/CheckData.js +8 -0
  75. package/lib/models/Client.js +62 -0
  76. package/lib/models/ClientWallet.js +28 -0
  77. package/lib/models/Conversion.js +19 -0
  78. package/lib/models/ConversionRate.js +10 -0
  79. package/lib/models/CountryAuthorization.js +12 -0
  80. package/lib/models/DebitedBankAccount.js +15 -0
  81. package/lib/models/DeclaredUbo.js +29 -0
  82. package/lib/models/DeclaredUboStatus.js +17 -0
  83. package/lib/models/Deposit.js +29 -0
  84. package/lib/models/Dispute.js +46 -0
  85. package/lib/models/DisputeDocument.js +10 -0
  86. package/lib/models/DisputeDocumentPage.js +12 -0
  87. package/lib/models/DisputeReason.js +11 -0
  88. package/lib/models/Document.js +12 -0
  89. package/lib/models/DocumentPageConsult.js +17 -0
  90. package/lib/models/EMoney.js +30 -0
  91. package/lib/models/EntityBase.js +70 -0
  92. package/lib/models/Hook.js +19 -0
  93. package/lib/models/IdempotencyResponse.js +11 -0
  94. package/lib/models/IdentityVerification.js +12 -0
  95. package/lib/models/KycDocument.js +11 -0
  96. package/lib/models/KycDocumentStatus.js +7 -0
  97. package/lib/models/KycDocumentType.js +7 -0
  98. package/lib/models/KycPage.js +12 -0
  99. package/lib/models/LegalPersonType.js +7 -0
  100. package/lib/models/LegalRepresentative.js +16 -0
  101. package/lib/models/Mandate.js +69 -0
  102. package/lib/models/MandateStatus.js +7 -0
  103. package/lib/models/Money.js +16 -0
  104. package/lib/models/PayByBankSupportedBank.js +7 -0
  105. package/lib/models/PayIn.js +36 -0
  106. package/lib/models/PayInExecutionDetails.js +7 -0
  107. package/lib/models/PayInExecutionDetailsBankingAlias.js +19 -0
  108. package/lib/models/PayInExecutionDetailsDirect.js +29 -0
  109. package/lib/models/PayInExecutionDetailsWeb.js +40 -0
  110. package/lib/models/PayInExecutionType.js +5 -0
  111. package/lib/models/PayInIntent.js +20 -0
  112. package/lib/models/PayInIntentSplit.js +14 -0
  113. package/lib/models/PayInIntentSplits.js +7 -0
  114. package/lib/models/PayInPaymentDetails.js +7 -0
  115. package/lib/models/PayInPaymentDetailsApplePay.js +19 -0
  116. package/lib/models/PayInPaymentDetailsBancontact.js +13 -0
  117. package/lib/models/PayInPaymentDetailsBankWire.js +23 -0
  118. package/lib/models/PayInPaymentDetailsBankingAlias.js +18 -0
  119. package/lib/models/PayInPaymentDetailsBizum.js +23 -0
  120. package/lib/models/PayInPaymentDetailsBlik.js +17 -0
  121. package/lib/models/PayInPaymentDetailsCard.js +10 -0
  122. package/lib/models/PayInPaymentDetailsCardDirect.js +14 -0
  123. package/lib/models/PayInPaymentDetailsCardWeb.js +28 -0
  124. package/lib/models/PayInPaymentDetailsDirectDebitDirect.js +22 -0
  125. package/lib/models/PayInPaymentDetailsDirectDebitWeb.js +13 -0
  126. package/lib/models/PayInPaymentDetailsGiropay.js +15 -0
  127. package/lib/models/PayInPaymentDetailsGooglePay.js +35 -0
  128. package/lib/models/PayInPaymentDetailsIdeal.js +25 -0
  129. package/lib/models/PayInPaymentDetailsKlarna.js +36 -0
  130. package/lib/models/PayInPaymentDetailsMbway.js +20 -0
  131. package/lib/models/PayInPaymentDetailsMultibanco.js +14 -0
  132. package/lib/models/PayInPaymentDetailsPayByBank.js +71 -0
  133. package/lib/models/PayInPaymentDetailsPayPal.js +63 -0
  134. package/lib/models/PayInPaymentDetailsPayconiq.js +23 -0
  135. package/lib/models/PayInPaymentDetailsPreAuthorized.js +10 -0
  136. package/lib/models/PayInPaymentDetailsSatispay.js +19 -0
  137. package/lib/models/PayInPaymentDetailsSwish.js +35 -0
  138. package/lib/models/PayInPaymentDetailsTwint.js +15 -0
  139. package/lib/models/PayInPaymentType.js +21 -0
  140. package/lib/models/PayInRecurringRegistration.js +64 -0
  141. package/lib/models/PayInTemplateURLOptions.js +10 -0
  142. package/lib/models/PayOut.js +24 -0
  143. package/lib/models/PayOutPaymentDetails.js +7 -0
  144. package/lib/models/PayOutPaymentDetailsBankWire.js +32 -0
  145. package/lib/models/PayOutPaymentType.js +3 -0
  146. package/lib/models/PaymentData.js +20 -0
  147. package/lib/models/PaymentMethodMetadata.js +38 -0
  148. package/lib/models/PayoutMethods.js +7 -0
  149. package/lib/models/PendingUserAction.js +16 -0
  150. package/lib/models/PersonType.js +5 -0
  151. package/lib/models/PlatformCategorization.js +16 -0
  152. package/lib/models/PlatformType.js +10 -0
  153. package/lib/models/Quote.js +11 -0
  154. package/lib/models/Recipient.js +20 -0
  155. package/lib/models/RecipientSchema.js +17 -0
  156. package/lib/models/RecurringPayIn.js +10 -0
  157. package/lib/models/RecurringPayInCIT.js +32 -0
  158. package/lib/models/RecurringPayInCurrentState.js +24 -0
  159. package/lib/models/RecurringPayInMIT.js +27 -0
  160. package/lib/models/RecurringPayInPut.js +24 -0
  161. package/lib/models/Refund.js +26 -0
  162. package/lib/models/RefundReasonDetails.js +10 -0
  163. package/lib/models/Report.js +54 -0
  164. package/lib/models/ReportFilter.js +52 -0
  165. package/lib/models/ReportFilterV2.js +11 -0
  166. package/lib/models/ReportV2.js +28 -0
  167. package/lib/models/Repudiation.js +51 -0
  168. package/lib/models/SecurityInfo.js +12 -0
  169. package/lib/models/Settlement.js +16 -0
  170. package/lib/models/SettlementTransfer.js +37 -0
  171. package/lib/models/Shipping.js +14 -0
  172. package/lib/models/ShippingAddress.js +25 -0
  173. package/lib/models/ShippingPreference.js +5 -0
  174. package/lib/models/Transaction.js +50 -0
  175. package/lib/models/Transfer.js +13 -0
  176. package/lib/models/Ubo.js +19 -0
  177. package/lib/models/UboDeclaration.js +42 -0
  178. package/lib/models/UboDeclarationRefusedReasonType.js +23 -0
  179. package/lib/models/UboDeclarationStatus.js +26 -0
  180. package/lib/models/UboRefusedReasonType.js +14 -0
  181. package/lib/models/User.js +66 -0
  182. package/lib/models/UserCategory.js +5 -0
  183. package/lib/models/UserConsent.js +7 -0
  184. package/lib/models/UserDataFormatValidation.js +7 -0
  185. package/lib/models/UserEnrollmentResult.js +7 -0
  186. package/lib/models/UserLegal.js +65 -0
  187. package/lib/models/UserLegalOwner.js +66 -0
  188. package/lib/models/UserLegalPayer.js +66 -0
  189. package/lib/models/UserLegalSca.js +57 -0
  190. package/lib/models/UserNatural.js +51 -0
  191. package/lib/models/UserNaturalCapacity.js +13 -0
  192. package/lib/models/UserNaturalOwner.js +55 -0
  193. package/lib/models/UserNaturalPayer.js +55 -0
  194. package/lib/models/UserNaturalPut.js +49 -0
  195. package/lib/models/UserNaturalSca.js +56 -0
  196. package/lib/models/VirtualAccount.js +22 -0
  197. package/lib/models/Wallet.js +32 -0
  198. package/lib/models/index.js +102 -0
  199. package/lib/service.js +14 -0
  200. package/lib/services/BankAccounts.js +31 -0
  201. package/lib/services/BankingAliases.js +137 -0
  202. package/lib/services/CardPreAuthorizations.js +75 -0
  203. package/lib/services/CardRegistrations.js +64 -0
  204. package/lib/services/Cards.js +168 -0
  205. package/lib/services/Clients.js +196 -0
  206. package/lib/services/Conversions.js +155 -0
  207. package/lib/services/Deposits.js +109 -0
  208. package/lib/services/DisputeDocuments.js +65 -0
  209. package/lib/services/Disputes.js +409 -0
  210. package/lib/services/Events.js +24 -0
  211. package/lib/services/Hooks.js +81 -0
  212. package/lib/services/Idempotency.js +17 -0
  213. package/lib/services/IdentityVerifications.js +48 -0
  214. package/lib/services/KycDocuments.js +66 -0
  215. package/lib/services/Mandates.js +161 -0
  216. package/lib/services/OptionsHelper.js +20 -0
  217. package/lib/services/PayIns.js +690 -0
  218. package/lib/services/PayOuts.js +110 -0
  219. package/lib/services/Recipients.js +117 -0
  220. package/lib/services/Refunds.js +29 -0
  221. package/lib/services/Regulatory.js +29 -0
  222. package/lib/services/Reports.js +61 -0
  223. package/lib/services/ReportsV2.js +55 -0
  224. package/lib/services/Repudiations.js +33 -0
  225. package/lib/services/Responses.js +23 -0
  226. package/lib/services/Settlements.js +74 -0
  227. package/lib/services/Transfers.js +87 -0
  228. package/lib/services/UboDeclarations.js +135 -0
  229. package/lib/services/Users.js +831 -0
  230. package/lib/services/VirtualAccounts.js +99 -0
  231. package/lib/services/Wallets.js +85 -0
  232. package/lib/services/index.js +34 -0
  233. package/lib/utils.js +36 -0
  234. package/package.json +40 -0
  235. package/test/TestKycPageFile.png +0 -0
  236. package/test/helpers.js +1431 -0
  237. package/test/main.js +10 -0
  238. package/test/mocha.opts +3 -0
  239. package/test/services/BankAccounts.js +46 -0
  240. package/test/services/BankingAliases.js +89 -0
  241. package/test/services/CardPreAuthorizations.js +70 -0
  242. package/test/services/CardRegistrations.js +239 -0
  243. package/test/services/Cards.js +54 -0
  244. package/test/services/Clients.js +235 -0
  245. package/test/services/Conversions.js +308 -0
  246. package/test/services/Deposits.js +148 -0
  247. package/test/services/Disputes.js +542 -0
  248. package/test/services/EMoney.js +54 -0
  249. package/test/services/Events.js +143 -0
  250. package/test/services/Hooks.js +109 -0
  251. package/test/services/Idempotency.js +46 -0
  252. package/test/services/IdentityVerifications.js +68 -0
  253. package/test/services/KycDocuments.js +73 -0
  254. package/test/services/Mandates.js +256 -0
  255. package/test/services/PayIns.js +2553 -0
  256. package/test/services/PayOuts.js +106 -0
  257. package/test/services/RateLimit.js +48 -0
  258. package/test/services/Recipients.js +234 -0
  259. package/test/services/Refunds.js +123 -0
  260. package/test/services/Regulatory.js +45 -0
  261. package/test/services/Reports.js +114 -0
  262. package/test/services/ReportsV2.js +306 -0
  263. package/test/services/Repudiations.js +22 -0
  264. package/test/services/Settlements.js +58 -0
  265. package/test/services/Tokens.js +55 -0
  266. package/test/services/Transfers.js +137 -0
  267. package/test/services/UboDeclarations.js +135 -0
  268. package/test/services/Users.js +1303 -0
  269. package/test/services/VirtualAccounts.js +105 -0
  270. package/test/services/Wallets.js +132 -0
  271. package/test/settlement_sample.csv +8 -0
  272. package/typings/base.d.ts +308 -0
  273. package/typings/enums.d.ts +204 -0
  274. package/typings/index.d.ts +885 -0
  275. package/typings/index.test-d.ts +1535 -0
  276. package/typings/models/address.d.ts +70 -0
  277. package/typings/models/bankAccount.d.ts +235 -0
  278. package/typings/models/bankingAlias.d.ts +97 -0
  279. package/typings/models/billing.d.ts +42 -0
  280. package/typings/models/birthplace.d.ts +9 -0
  281. package/typings/models/card.d.ts +119 -0
  282. package/typings/models/cardPreauthorization.d.ts +157 -0
  283. package/typings/models/cardRegistration.d.ts +83 -0
  284. package/typings/models/cardValidation.d.ts +125 -0
  285. package/typings/models/client.d.ts +208 -0
  286. package/typings/models/conversion.d.ts +225 -0
  287. package/typings/models/conversionRate.d.ts +29 -0
  288. package/typings/models/countryAuthorization.d.ts +16 -0
  289. package/typings/models/deposit.d.ts +104 -0
  290. package/typings/models/dispute.d.ts +116 -0
  291. package/typings/models/disputeDocument.d.ts +119 -0
  292. package/typings/models/entityBase.d.ts +9 -0
  293. package/typings/models/event.d.ts +142 -0
  294. package/typings/models/hook.d.ts +39 -0
  295. package/typings/models/idempotency.d.ts +36 -0
  296. package/typings/models/identityVerification.d.ts +98 -0
  297. package/typings/models/kycDocument.d.ts +114 -0
  298. package/typings/models/mandate.d.ts +93 -0
  299. package/typings/models/money.d.ts +45 -0
  300. package/typings/models/payIn.d.ts +3742 -0
  301. package/typings/models/payOut.d.ts +144 -0
  302. package/typings/models/recipient.d.ts +242 -0
  303. package/typings/models/refund.d.ts +92 -0
  304. package/typings/models/report.d.ts +234 -0
  305. package/typings/models/reportV2.d.ts +145 -0
  306. package/typings/models/repudiation.d.ts +26 -0
  307. package/typings/models/securityInfo.d.ts +12 -0
  308. package/typings/models/settlement.d.ts +50 -0
  309. package/typings/models/settlementTransfer.d.ts +37 -0
  310. package/typings/models/shipping.d.ts +37 -0
  311. package/typings/models/shippingAddress.d.ts +15 -0
  312. package/typings/models/transaction.d.ts +85 -0
  313. package/typings/models/transfer.d.ts +119 -0
  314. package/typings/models/uboDeclaration.d.ts +100 -0
  315. package/typings/models/user.d.ts +1001 -0
  316. package/typings/models/virtualAccount.d.ts +182 -0
  317. package/typings/models/wallet.d.ts +46 -0
  318. package/typings/models.d.ts +74 -0
  319. package/typings/services/BankAccounts.d.ts +12 -0
  320. package/typings/services/BankingAliases.d.ts +51 -0
  321. package/typings/services/CardPreauthorizations.d.ts +44 -0
  322. package/typings/services/CardRegistrations.d.ts +43 -0
  323. package/typings/services/Cards.d.ts +80 -0
  324. package/typings/services/Clients.d.ts +77 -0
  325. package/typings/services/Conversions.d.ts +23 -0
  326. package/typings/services/Deposits.d.ts +20 -0
  327. package/typings/services/DisputeDocuments.d.ts +27 -0
  328. package/typings/services/Disputes.d.ts +169 -0
  329. package/typings/services/Events.d.ts +11 -0
  330. package/typings/services/Hooks.d.ts +33 -0
  331. package/typings/services/Idempotency.d.ts +7 -0
  332. package/typings/services/IdentityVerifications.d.ts +29 -0
  333. package/typings/services/KycDocuments.d.ts +38 -0
  334. package/typings/services/Mandates.d.ts +59 -0
  335. package/typings/services/OptionsHelper.d.ts +11 -0
  336. package/typings/services/PayIns.d.ts +319 -0
  337. package/typings/services/PayOuts.d.ts +34 -0
  338. package/typings/services/Recipients.d.ts +55 -0
  339. package/typings/services/Refunds.d.ts +12 -0
  340. package/typings/services/Regulatory.d.ts +17 -0
  341. package/typings/services/Reports.d.ts +26 -0
  342. package/typings/services/ReportsV2.d.ts +26 -0
  343. package/typings/services/Repudiations.d.ts +12 -0
  344. package/typings/services/Responses.d.ts +10 -0
  345. package/typings/services/Settlements.d.ts +28 -0
  346. package/typings/services/Transfers.d.ts +38 -0
  347. package/typings/services/UboDeclarations.d.ts +81 -0
  348. package/typings/services/Users.d.ts +308 -0
  349. package/typings/services/VirtualAccounts.d.ts +42 -0
  350. package/typings/services/Wallets.d.ts +36 -0
  351. package/typings/tsconfig.json +20 -0
  352. package/typings/tslint.json +11 -0
  353. package/typings/types.d.ts +652 -0
@@ -0,0 +1,690 @@
1
+ /**
2
+ * @module PayIns
3
+ * @desc [MangoPay PayIns API Reference](https://docs.mangopay.com/endpoints/v2.01/payins)
4
+ */
5
+
6
+ var _ = require('underscore');
7
+
8
+ var Service = require('../service');
9
+
10
+ var PayIn = require('../models/PayIn');
11
+ var PayInPaymentDetailsBankWire = require('../models/PayInPaymentDetailsBankWire');
12
+ var PayInPaymentDetailsCard = require('../models/PayInPaymentDetailsCard');
13
+ var PayInPaymentDetailsDirectDebitDirect = require('../models/PayInPaymentDetailsDirectDebitDirect');
14
+ var PayInPaymentDetailsDirectDebitWeb = require('../models/PayInPaymentDetailsDirectDebitWeb');
15
+ var PayInPaymentDetailsPreAuthorized = require('../models/PayInPaymentDetailsPreAuthorized');
16
+ var PayInPaymentDetailsPayPal = require('../models/PayInPaymentDetailsPayPal');
17
+ var PayInExecutionDetailsWeb = require('../models/PayInExecutionDetailsWeb');
18
+ var PayInExecutionDetailsDirect = require('../models/PayInExecutionDetailsDirect');
19
+ var PayInExecutionDetailsBankingAlias = require('../models/PayInExecutionDetailsBankingAlias');
20
+ var PayInPaymentDetailsApplePay = require('../models/PayInPaymentDetailsApplePay');
21
+ var PayInPaymentDetailsGooglePay = require('../models/PayInPaymentDetailsGooglePay');
22
+ var PayInPaymentDetailsMbway = require('../models/PayInPaymentDetailsMbway');
23
+ var PayInPaymentDetailsBancontact = require('../models/PayInPaymentDetailsBancontact');
24
+ var PayInPaymentDetailsBizum = require('../models/PayInPaymentDetailsBizum');
25
+ var Refund = require('../models/Refund');
26
+ var PayInRecurringRegistration = require('../models/PayInRecurringRegistration');
27
+ var PayInPaymentDetailsPayconiq = require('../models/PayInPaymentDetailsPayconiq');
28
+ const RecurringPayIn = require('../models/RecurringPayIn');
29
+ const PayInPaymentDetailsMultibanco = require("../models/PayInPaymentDetailsMultibanco");
30
+ const PayInPaymentDetailsSatispay = require("../models/PayInPaymentDetailsSatispay");
31
+ const PayInPaymentDetailsBlik = require("../models/PayInPaymentDetailsBlik");
32
+ const PayInPaymentDetailsKlarna = require("../models/PayInPaymentDetailsKlarna");
33
+ const PayInPaymentDetailsIdeal = require("../models/PayInPaymentDetailsIdeal");
34
+ const PayInPaymentDetailsGiropay = require("../models/PayInPaymentDetailsGiropay");
35
+ const PaymentMethodMetadata = require('../models/PaymentMethodMetadata');
36
+ const PayInPaymentDetailsSwish = require("../models/PayInPaymentDetailsSwish");
37
+ const PayInPaymentDetailsTwint = require("../models/PayInPaymentDetailsTwint");
38
+ const PayInPaymentDetailsPayByBank = require("../models/PayInPaymentDetailsPayByBank");
39
+ const PayInIntent = require('../models/PayInIntent');
40
+ const PayInIntentSplits = require('../models/PayInIntentSplits');
41
+ const PayInIntentSplit = require('../models/PayInIntentSplit');
42
+ const PayByBankSupportedBank = require('../models/PayByBankSupportedBank');
43
+
44
+
45
+ var PayIns = Service.extend({
46
+ /**
47
+ * Create new pay-in
48
+ * @param {Object} payIn PayIn object
49
+ * @param {Function} callback Callback function
50
+ * @param {Object} options Request options
51
+ * @return {Object} Request promise
52
+ */
53
+ create: function(payIn, callback, options) {
54
+ options = this._api._getOptions(callback, options, {
55
+ data: payIn,
56
+ dataClass: PayIn
57
+ });
58
+
59
+ var paymentKey = this.getPaymentKey(payIn);
60
+ var executionKey = this.getExecutionKey(payIn);
61
+
62
+ return this._api.method('payins_' + paymentKey + '-' + executionKey + '_create', callback, options);
63
+ },
64
+
65
+ /**
66
+ * Get recurring pay-in
67
+ * @param {number} payInId PayIn identifier
68
+ * @param {Function} callback Callback function
69
+ * @param {Object} options Request options
70
+ * @return {Object} Request promise
71
+ */
72
+ getRecurringPayin: function(payInId, callback, options) {
73
+ options = this._api._getOptions(callback, options, {
74
+ path: {
75
+ id: payInId
76
+ },
77
+ dataClass: PayInRecurringRegistration
78
+ });
79
+
80
+ return this._api.method('payins_recurring_registration_get', callback, options);
81
+ },
82
+
83
+ /**
84
+ * Update recurring pay-in
85
+ * @param {number} payInId PayIn identifier
86
+ * @param {RecurringPayInPut} toUpdate Updater Object
87
+ * @param {Function} callback Callback function
88
+ * @param {Object} options Request options
89
+ * @return {Object} Request promise
90
+ */
91
+ updateRecurringPayin: function(payInId, toUpdate, callback, options) {
92
+ options = this._api._getOptions(callback, options, {
93
+ path: {
94
+ id: payInId
95
+ },
96
+ data: toUpdate,
97
+ dataClass: PayInRecurringRegistration
98
+ });
99
+
100
+ return this._api.method('payins_recurring_registration_put', callback, options);
101
+ },
102
+
103
+ /**
104
+ * Create Payin Registration
105
+ * @param {Object} payIn PayInRecurringRegistration object
106
+ * @param {Function} callback Callback function
107
+ * @param {Object} options Request options
108
+ * @return {Object} Request promise
109
+ */
110
+ createRecurringPayment: function(recurringPayin, callback, options) {
111
+ options = this._api._getOptions(callback, options, {
112
+ data: recurringPayin,
113
+ dataClass: PayInRecurringRegistration
114
+ });
115
+
116
+ return this._api.method('payins_recurring_registration', callback, options);
117
+ },
118
+
119
+ /**
120
+ * Create new recurring pay-in CIT
121
+ * @param {Object} payIn PayIn object
122
+ * @param {Function} callback Callback function
123
+ * @param {Object} options Request options
124
+ * @return {Object} Request promise
125
+ */
126
+ createRecurringPayInRegistrationCIT: function(payIn, callback, options) {
127
+ options = this._api._getOptions(callback, options, {
128
+ data: payIn,
129
+ dataClass: RecurringPayIn
130
+ });
131
+
132
+ return this._api.method('payins_create_recurring_card_direct', callback, options);
133
+ },
134
+
135
+ /**
136
+ * Create new recurring pay-in MIT
137
+ * @param {Object} payIn PayIn object
138
+ * @param {Function} callback Callback function
139
+ * @param {Object} options Request options
140
+ * @return {Object} Request promise
141
+ */
142
+ createRecurringPayInRegistrationMIT: function(payIn, callback, options) {
143
+ options = this._api._getOptions(callback, options, {
144
+ data: payIn,
145
+ dataClass: RecurringPayIn
146
+ });
147
+
148
+ return this._api.method('payins_create_recurring_card_direct', callback, options);
149
+ },
150
+
151
+ /**
152
+ * Create new recurring PayPal pay-in CIT
153
+ * @param {Object} payIn PayIn object
154
+ * @param {Function} callback Callback function
155
+ * @param {Object} options Request options
156
+ * @return {Object} Request promise
157
+ */
158
+ createRecurringPayPalPayInCIT: function(payIn, callback, options) {
159
+ options = this._api._getOptions(callback, options, {
160
+ data: payIn,
161
+ dataClass: RecurringPayIn
162
+ });
163
+
164
+ return this._api.method('payins_create_recurring_paypal', callback, options);
165
+ },
166
+
167
+ /**
168
+ * Create new recurring PayPal pay-in MIT
169
+ * @param {Object} payIn PayIn object
170
+ * @param {Function} callback Callback function
171
+ * @param {Object} options Request options
172
+ * @return {Object} Request promise
173
+ */
174
+ createRecurringPayPalPayInMIT: function(payIn, callback, options) {
175
+ options = this._api._getOptions(callback, options, {
176
+ data: payIn,
177
+ dataClass: RecurringPayIn
178
+ });
179
+
180
+ return this._api.method('payins_create_recurring_paypal', callback, options);
181
+ },
182
+
183
+ /**
184
+ * Get pay-in
185
+ * @param {number} payInId PayIn identifier
186
+ * @param {Function} callback Callback function
187
+ * @param {Object} options Request options
188
+ * @return {Object} Request promise
189
+ */
190
+ get: function(payInId, callback, options) {
191
+ options = this._api._getOptions(callback, options, {
192
+ path: {
193
+ id: payInId
194
+ },
195
+ dataClass: PayIn
196
+ });
197
+
198
+ return this._api.method('payins_get', callback, options);
199
+ },
200
+
201
+ /**
202
+ * Create refund for pay-in object
203
+ * @param {number} payInId PayIn identifier
204
+ * @param {Object} refund Refund data
205
+ * @param {Function} callback Callback function
206
+ * @param {Object} options Request options
207
+ * @return {Object} Request promise
208
+ */
209
+ createRefund: function(payInId, refund, callback, options) {
210
+ options = this._api._getOptions(callback, options, {
211
+ path: {
212
+ id: payInId
213
+ },
214
+ dataClass: Refund,
215
+ data: refund
216
+ });
217
+
218
+ return this._api.method('payins_createrefunds', callback, options);
219
+ },
220
+
221
+ /**
222
+ * Gets list of Refunds for a PayIn
223
+ * @param {number} payInId PayIn identifier
224
+ * @param {function} callback Callback function
225
+ * @param {Object} options Request options
226
+ * @return {Object} Request promise
227
+ */
228
+ getRefunds: function(payInId, callback, options) {
229
+ if (options && !options.hasOwnProperty('parameters'))
230
+ Object.assign(options, {parameters: {...options}});
231
+ options = this._api._getOptions(callback, options, {
232
+ path: {
233
+ id: payInId
234
+ },
235
+ dataClass: Refund
236
+ });
237
+
238
+ return this._api.method('refunds_get_for_payin', callback, options);
239
+ },
240
+
241
+ /**
242
+ * Create new Card PreAuthorized Deposit PayIn without complement
243
+ */
244
+ createCardPreAuthorizedDepositPayIn: function(payIn, callback, options) {
245
+ options = this._api._getOptions(callback, options, {
246
+ data: payIn,
247
+ dataClass: PayIn
248
+ });
249
+
250
+ return this._api.method('payins_create_card_pre_authorized_deposit', callback, options);
251
+ },
252
+
253
+ /**
254
+ * Create new Card PreAuthorized Deposit PayIn prior to complement
255
+ */
256
+ createDepositPreauthorizedPayInPriorToComplement: function(payIn, callback, options) {
257
+ options = this._api._getOptions(callback, options, {
258
+ data: payIn
259
+ });
260
+
261
+ return this._api.method('payins_deposit_preauthorized_prior_to_complement', callback, options);
262
+ },
263
+
264
+ /**
265
+ * Create new Card PreAuthorized Deposit PayIn complement
266
+ */
267
+ createDepositPreauthorizedPayInComplement: function(payIn, callback, options) {
268
+ options = this._api._getOptions(callback, options, {
269
+ data: payIn
270
+ });
271
+
272
+ return this._api.method('payins_deposit_preauthorized_complement', callback, options);
273
+ },
274
+
275
+ /**
276
+ * Create new PayPal Web pay-in.
277
+ * To be used instead of the 'create' method for PayPal PayIns
278
+ * @param {Object} payIn PayIn object
279
+ * @param {Function} callback Callback function
280
+ * @param {Object} options Request options
281
+ * @return {Object} Request promise
282
+ */
283
+ createPayPal: function(payIn, callback, options) {
284
+ options = this._api._getOptions(callback, options, {
285
+ data: payIn,
286
+ dataClass: PayIn
287
+ });
288
+
289
+ return this._api.method('payins_paypal-web_create_v2', callback, options);
290
+ },
291
+
292
+ /**
293
+ * Create new GooglePay Direct pay-in.
294
+ * To be used instead of the 'create' method for GooglePay PayIns
295
+ * @param {Object} payIn PayIn object
296
+ * @param {Function} callback Callback function
297
+ * @param {Object} options Request options
298
+ * @return {Object} Request promise
299
+ */
300
+ createGooglePay: function(payIn, callback, options) {
301
+ options = this._api._getOptions(callback, options, {
302
+ data: payIn,
303
+ dataClass: PayIn
304
+ });
305
+
306
+ return this._api.method('payins_googlepay-direct_create_v2', callback, options);
307
+ },
308
+
309
+ /**
310
+ *
311
+ * @param metadata POST body which should contain the 'Type' and: 'Bin' (if the type is BIN) or 'Token' (if the type is GOOGLE_PAY)
312
+ * @param callback Callback function
313
+ * @param options Request options
314
+ * @returns PaymentMethodMetadata
315
+ */
316
+ getPaymentMethodMetadata: function(metadata, callback, options) {
317
+ options = this._api._getOptions(callback, options, {
318
+ data: metadata,
319
+ dataClass: PaymentMethodMetadata
320
+ });
321
+
322
+ return this._api.method('payment_method_metadata_get', callback, options);
323
+ },
324
+
325
+ /**
326
+ * Add tracking information to a PayPal PayIn (add the tracking number and carrier for LineItems shipments.)
327
+ *
328
+ * Caution – Tracking information cannot be edited
329
+ *
330
+ * You can’t modify the TrackingNumber, Carrier, or NotifyBuyer once added.
331
+ *
332
+ * You can only send a unique tracking number once.
333
+ *
334
+ * @param {string} payInId The ID of the PayIn
335
+ * @param {Object} trackingInformation trackingInformation object
336
+ * @param {Function} callback Callback function
337
+ * @param {Object} options Request options
338
+ * @return {Object} Request promise
339
+ */
340
+ addPayPalTrackingInformation: function(payInId, trackingInformation, callback, options) {
341
+ options = this._api._getOptions(callback, options, {
342
+ path: {
343
+ payInId: payInId
344
+ },
345
+ data: trackingInformation,
346
+ dataClass: PayIn
347
+ });
348
+
349
+ return this._api.method('add_tracking_info', callback, options);
350
+ },
351
+
352
+ getCardWebPayInExtendedDetails: function(payInId, callback, options) {
353
+ options = this._api._getOptions(callback, options, {
354
+ path: {
355
+ id: payInId
356
+ }
357
+ });
358
+
359
+ return this._api.method('payins_card-web_get_details', callback, options);
360
+ },
361
+
362
+ /**
363
+ * Create new pay-in Payconiq Web, using the latest API url (/payment-methods/payconiq)
364
+ * @param {Object} payIn PayIn object
365
+ * @param {Function} callback Callback function
366
+ * @param {Object} options Request options
367
+ * @return {Object} Request promise
368
+ */
369
+ createPayconiq: function(payIn, callback, options) {
370
+ options = this._api._getOptions(callback, options, {
371
+ data: payIn,
372
+ dataClass: PayIn
373
+ });
374
+
375
+ return this._api.method('payins_payconiqv2-web_create', callback, options);
376
+ },
377
+
378
+ /**
379
+ * Create a pay in intent authorization
380
+ * @param {Object} payInIntentAuthorization PayInIntentAuthorization object
381
+ * @param {Function} callback Callback function
382
+ * @param {Object} options Request options
383
+ * @return {Object} Request promise
384
+ */
385
+ createPayInIntentAuthorization: function(payInIntentAuthorization, callback, options) {
386
+ options = this._api._getOptions(callback, options, {
387
+ data: payInIntentAuthorization,
388
+ dataClass: PayInIntent
389
+ });
390
+
391
+ return this._api.method('payins_intent_authorization_create', callback, options);
392
+ },
393
+
394
+ /**
395
+ * Create a pay in intent full capture
396
+ * @param {Object} payInIntentId PayInIntent identifier (string)
397
+ * @param {Object} payInIntentFullCapture PayInIntentFullCapture object
398
+ * @param {Function} callback Callback function
399
+ * @param {Object} options Request options
400
+ * @return {Object} Request promise
401
+ */
402
+ createPayInIntentFullCapture: function(payInIntentId, payInIntentFullCapture, callback, options) {
403
+ options = this._api._getOptions(callback, options, {
404
+ data: payInIntentFullCapture,
405
+ dataClass: PayInIntent,
406
+ path: {
407
+ intentId: payInIntentId
408
+ }
409
+ });
410
+
411
+ return this._api.method('payins_intent_capture_create', callback, options);
412
+ },
413
+
414
+ /**
415
+ * Create a pay in intent partial capture
416
+ * @param {Object} payInIntentId PayInIntent identifier (string)
417
+ * @param {Object} payInIntentPartialCapture PayInIntentPartialCapture object
418
+ * @param {Function} callback Callback function
419
+ * @param {Object} options Request options
420
+ * @return {Object} Request promise
421
+ */
422
+ createPayInIntentPartialCapture: function(payInIntentId, payInIntentPartialCapture, callback, options) {
423
+ options = this._api._getOptions(callback, options, {
424
+ data: payInIntentPartialCapture,
425
+ dataClass: PayInIntent,
426
+ path: {
427
+ intentId: payInIntentId
428
+ }
429
+ });
430
+
431
+ return this._api.method('payins_intent_capture_create', callback, options);
432
+ },
433
+
434
+ /**
435
+ * Get a PayInIntent
436
+ * @param {Object} payInIntentId PayInIntent identifier (string)
437
+ * @param {Function} callback Callback function
438
+ * @param {Object} options Request options
439
+ * @return {Object} Request promise
440
+ */
441
+ getPayInIntent: function(payInIntentId, callback, options) {
442
+ options = this._api._getOptions(callback, options, {
443
+ dataClass: PayInIntent,
444
+ path: {
445
+ intentId: payInIntentId
446
+ }
447
+ });
448
+
449
+ return this._api.method('payins_intent_get', callback, options);
450
+ },
451
+
452
+ /**
453
+ * Cancel a PayInIntent
454
+ * @param {Object} payInIntentId PayInIntent identifier (string)
455
+ * @param intentDetails Details about the intent to be canceled
456
+ * @param {Function} callback Callback function
457
+ * @param {Object} options Request options
458
+ * @return {Object} Request promise
459
+ */
460
+ fullCancelPayInIntent: function(payInIntentId, intentDetails, callback, options) {
461
+ options = this._api._getOptions(callback, options, {
462
+ dataClass: PayInIntent,
463
+ path: {
464
+ intentId: payInIntentId
465
+ },
466
+ data: intentDetails
467
+ });
468
+
469
+ return this._api.method('payins_intent_cancel', callback, options);
470
+ },
471
+
472
+ /**
473
+ * Cancel a PayInIntent
474
+ * @param {Object} payInIntentId PayInIntent identifier (string)
475
+ * @param intentDetails Details about the intent to be canceled
476
+ * @param {Function} callback Callback function
477
+ * @param {Object} options Request options
478
+ * @return {Object} Request promise
479
+ */
480
+ partialCancelPayInIntent: function(payInIntentId, intentDetails, callback, options) {
481
+ options = this._api._getOptions(callback, options, {
482
+ dataClass: PayInIntent,
483
+ path: {
484
+ intentId: payInIntentId
485
+ },
486
+ data: intentDetails
487
+ });
488
+
489
+ return this._api.method('payins_intent_cancel', callback, options);
490
+ },
491
+
492
+ /**
493
+ * Create PayInIntent splits
494
+ * @param payInIntentId PayInIntent identifier (string)
495
+ * @param splits Splits to be created
496
+ * @param {Function} callback Callback function
497
+ * @param {Object} options Request options
498
+ * @return {Object} Request promise
499
+ */
500
+ createPayInIntentSplits: function(payInIntentId, splits, callback, options) {
501
+ options = this._api._getOptions(callback, options, {
502
+ dataClass: PayInIntentSplits,
503
+ path: {
504
+ intentId: payInIntentId
505
+ },
506
+ data: splits
507
+ });
508
+
509
+ return this._api.method('payins_intent_create_splits', callback, options);
510
+ },
511
+
512
+ /**
513
+ * Execute split
514
+ * @param payInIntentId PayInIntent identifier
515
+ * @param splitId Split identifier
516
+ * @param {Function} callback Callback function
517
+ * @param {Object} options Request options
518
+ * @return {Object} Request promise
519
+ */
520
+ executePayInIntentSplit: function(payInIntentId, splitId, callback, options) {
521
+ options = this._api._getOptions(callback, options, {
522
+ dataClass: PayInIntentSplit,
523
+ path: {
524
+ intentId: payInIntentId,
525
+ splitId: splitId
526
+ }
527
+ });
528
+
529
+ return this._api.method('payins_intent_execute_split', callback, options);
530
+ },
531
+
532
+ /**
533
+ * Reverse split
534
+ * @param payInIntentId PayInIntent identifier
535
+ * @param splitId Split identifier
536
+ * @param {Function} callback Callback function
537
+ * @param {Object} options Request options
538
+ * @return {Object} Request promise
539
+ */
540
+ reversePayInIntentSplit: function(payInIntentId, splitId, callback, options) {
541
+ options = this._api._getOptions(callback, options, {
542
+ dataClass: PayInIntentSplit,
543
+ path: {
544
+ intentId: payInIntentId,
545
+ splitId: splitId
546
+ }
547
+ });
548
+
549
+ return this._api.method('payins_intent_reverse_split', callback, options);
550
+ },
551
+
552
+ /**
553
+ * Get split
554
+ * @param payInIntentId PayInIntent identifier
555
+ * @param splitId Split identifier
556
+ * @param {Function} callback Callback function
557
+ * @param {Object} options Request options
558
+ * @return {Object} Request promise
559
+ */
560
+ getPayInIntentSplit: function(payInIntentId, splitId, callback, options) {
561
+ options = this._api._getOptions(callback, options, {
562
+ dataClass: PayInIntentSplit,
563
+ path: {
564
+ intentId: payInIntentId,
565
+ splitId: splitId
566
+ }
567
+ });
568
+
569
+ return this._api.method('payins_intent_get_split', callback, options);
570
+ },
571
+
572
+ /**
573
+ * Update split
574
+ * @param payInIntentId PayInIntent identifier
575
+ * @param splitId Split identifier
576
+ * @param split Object containing the split properties to be updated
577
+ * @param {Function} callback Callback function
578
+ * @param {Object} options Request options
579
+ * @return {Object} Request promise
580
+ */
581
+ updatePayInIntentSplit: function(payInIntentId, splitId, split, callback, options) {
582
+ options = this._api._getOptions(callback, options, {
583
+ dataClass: PayInIntentSplit,
584
+ path: {
585
+ intentId: payInIntentId,
586
+ splitId: splitId
587
+ },
588
+ data: split
589
+ });
590
+
591
+ return this._api.method('payins_intent_update_split', callback, options);
592
+ },
593
+
594
+ /**
595
+ * Retrieve a paginated list of banks that you can present to the user for selection during their Pay by Bank checkout experience
596
+ * @param {Object} payInIntentId PayInIntent identifier (string)
597
+ * @param {Function} callback Callback function
598
+ * @param {Object} options Request options
599
+ * @return {Object} Request promise
600
+ */
601
+ getPayByBankSupportedBanks: function(callback, options) {
602
+ if (options && !options.hasOwnProperty('parameters')) {
603
+ Object.assign(options, {parameters: {...options}});
604
+ }
605
+
606
+ options = this._api._getOptions(callback, options, {
607
+ dataClass: PayByBankSupportedBank
608
+ });
609
+
610
+ return this._api.method('pay_by_bank_get_supported_banks', callback, options);
611
+ },
612
+
613
+ /**
614
+ * Send key pre-transaction data such as order details, buyer information,
615
+ * and merchant context before initiating a PayPal payment
616
+ *
617
+ * @param dataCollection The data collection to be created
618
+ * @param callback Callback function
619
+ * @param options Request options
620
+ * @returns {Object} Request promise
621
+ */
622
+ createPayPalDataCollection: function(dataCollection, callback, options) {
623
+ options = this._api._getOptions(callback, options, {
624
+ data: dataCollection
625
+ });
626
+
627
+ return this._api.method('payins_paypal_data_collection_create', callback, options);
628
+ },
629
+
630
+ /**
631
+ * Get a PayPal data collection
632
+ *
633
+ * @param dataCollectionId Data collection identifier
634
+ * @param callback Callback function
635
+ * @param options Request options
636
+ * @returns {Object} Request promise
637
+ */
638
+ getPayPalDataCollection: function(dataCollectionId, callback, options) {
639
+ options = this._api._getOptions(callback, options, {
640
+ path: {
641
+ id: dataCollectionId
642
+ },
643
+ });
644
+
645
+ return this._api.method('payins_paypal_data_collection_get', callback, options);
646
+ },
647
+
648
+ getPaymentKey: function(payIn) {
649
+ if (payIn.PaymentType) {
650
+ return payIn.PaymentType.toLowerCase().replaceAll('_', '');
651
+ }
652
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsBankWire) return 'bankwire';
653
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsCard) return 'card';
654
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsDirectDebitDirect) return 'directdebit';
655
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsDirectDebitWeb) return 'directdebit';
656
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsPreAuthorized) return 'preauthorized';
657
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsPayPal) return 'paypal';
658
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsApplePay) return 'applepay';
659
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsGooglePay) return 'googlepay';
660
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsPayconiq) return 'payconiq';
661
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsMbway) return 'mbway';
662
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsBancontact) return 'bcmc';
663
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsBizum) return 'bizum';
664
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsMultibanco) return 'multibanco';
665
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsSatispay) return 'satispay';
666
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsBlik) return 'blik';
667
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsKlarna) return 'klarna';
668
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsIdeal) return 'ideal';
669
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsGiropay) return 'giropay';
670
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsSwish) return 'swish';
671
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsTwint) return 'twint';
672
+ if (payIn.PaymentDetails instanceof PayInPaymentDetailsPayByBank) return 'paybybank';
673
+
674
+ throw new Error('PayIn needs a PaymentType');
675
+ },
676
+
677
+ getExecutionKey: function(payIn) {
678
+ if (payIn.ExecutionType) {
679
+ return payIn.ExecutionType.toLowerCase();
680
+ }
681
+
682
+ if (payIn.ExecutionDetails instanceof PayInExecutionDetailsWeb) return 'web';
683
+ if (payIn.ExecutionDetails instanceof PayInExecutionDetailsDirect) return 'direct';
684
+ if (payIn.ExecutionDetails instanceof PayInExecutionDetailsBankingAlias) return 'bankingalias';
685
+
686
+ throw new Error('PayIn needs a ExecutionType');
687
+ }
688
+ });
689
+
690
+ module.exports = PayIns;