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,168 @@
1
+ /**
2
+ * @module Cards
3
+ * @desc [MangoPay Cards API Reference](https://docs.mangopay.com/endpoints/v2.01/cards)
4
+ */
5
+
6
+ var _ = require('underscore');
7
+ var Service = require('../service');
8
+ var Card = require('../models/Card');
9
+ var Transaction = require('../models/Transaction');
10
+ var CardPreAuthorization = require('../models/CardPreAuthorization');
11
+ var CardValidation = require('../models/CardValidation');
12
+
13
+
14
+ var Cards = Service.extend({
15
+ /**
16
+ * Get card
17
+ * @param {number} cardId Card identifier
18
+ * @param {Function} callback Callback function
19
+ * @param {Object} options Request options
20
+ * @return {Object} Request promise
21
+ */
22
+ get: function(cardId, callback, options) {
23
+ options = this._api._getOptions(callback, options, {
24
+ path: {
25
+ id: cardId
26
+ },
27
+ dataClass: Card
28
+ });
29
+
30
+ return this._api.method('card_get', callback, options);
31
+ },
32
+
33
+ /**
34
+ * Gets a list of cards having the same fingerprint.
35
+ * The fingerprint is a hash uniquely generated per 16-digit card number.
36
+ *
37
+ * @param fingerprint The fingerprint hash
38
+ * @return List of Cards corresponding to provided fingerprint
39
+ */
40
+ getByFingerprint: function(fingerprint, callback, options) {
41
+ options = this._api._getOptions(callback, options, {
42
+ path: {
43
+ fingerprint: fingerprint
44
+ },
45
+ dataClass: Card
46
+ });
47
+ return this._api.method('cards_get_by_fingerprint', callback, options);
48
+ },
49
+
50
+ /**
51
+ * Update card
52
+ * @param {Object} card Card object of properties hash
53
+ * @param {function} callback Callback function
54
+ * @param {Object} options Request options
55
+ * @return {Object} Request promise
56
+ */
57
+ update: function(card, callback, options) {
58
+ options = this._api._getOptions(callback, options, {
59
+ data: card,
60
+ path: {
61
+ id: card.Id
62
+ },
63
+ dataClass: Card
64
+ });
65
+
66
+ return this._api.method('card_save', callback, options);
67
+ },
68
+
69
+ /**
70
+ * Get list of Transactions of a Card
71
+ * @param {number} cardId Card identifier
72
+ * @param {function} callback Callback function
73
+ * @param {object} options Request options
74
+ * @return {object} Request promise
75
+ */
76
+ getTransactions: function(cardId, callback, options) {
77
+ if (options && !options.hasOwnProperty('parameters'))
78
+ Object.assign(options, {parameters: {...options}});
79
+ options = this._api._getOptions(callback, options, {
80
+ path: {
81
+ cardId: cardId
82
+ },
83
+ dataClass: Transaction
84
+ });
85
+
86
+ return this._api.method('transactions_get_for_card', callback, options);
87
+
88
+ },
89
+
90
+ /**
91
+ * Gets list of PreAuthorizations of a Card.
92
+ * @param {number} cardId Card identifier
93
+ * @param {function} callback Callback function
94
+ * @param {Object} options Request options
95
+ * @return {Object} Request promise
96
+ */
97
+ getPreAuthorizations: function(cardId, callback, options) {
98
+ if (options && !options.hasOwnProperty('parameters'))
99
+ Object.assign(options, {parameters: {...options}});
100
+ options = this._api._getOptions(callback, options, {
101
+ path: {
102
+ id: cardId
103
+ },
104
+ dataClass: CardPreAuthorization
105
+ });
106
+
107
+ return this._api.method('card_get_preauthorizations', callback, options);
108
+ },
109
+
110
+ /**
111
+ * Validate a card
112
+ * @param cardId The ID of the card
113
+ * @param cardValidation The create card validation dto
114
+ * @param callback
115
+ * @param options
116
+ * @returns {*|Promise}
117
+ */
118
+ validate: function(cardId, cardValidation, callback, options) {
119
+ options = this._api._getOptions(callback, options, {
120
+ path: {
121
+ id: cardId
122
+ },
123
+ data: cardValidation,
124
+ dataClass: CardValidation
125
+ });
126
+
127
+ return this._api.method('card_validate', callback, options);
128
+ },
129
+
130
+ /**
131
+ * Get Card Validation
132
+ * @param cardId The ID of the card
133
+ * @param cardValidationId The ID of the CardValidation
134
+ * @param callback
135
+ * @param options
136
+ * @returns {*|Promise}
137
+ */
138
+ getCardValidation: function(cardId, cardValidationId, callback, options) {
139
+ options = this._api._getOptions(callback, options, {
140
+ path: {
141
+ cardId: cardId,
142
+ cardValidationId: cardValidationId
143
+ },
144
+ dataClass: CardValidation
145
+ });
146
+
147
+ return this._api.method('get_card_validation', callback, options);
148
+ },
149
+
150
+ /**
151
+ * Get a list of Transactions for a fingerprint
152
+ * @param fingerprint
153
+ * @param callback
154
+ * @param options
155
+ */
156
+ getTransactionsForFingerprint: function(fingerprint, callback, options) {
157
+ options = this._api._getOptions(callback, options, {
158
+ path: {
159
+ fingerprint: fingerprint
160
+ }
161
+ });
162
+
163
+ return this._api.method('transactions_get_by_fingerprint', callback, options);
164
+
165
+ },
166
+ });
167
+
168
+ module.exports = Cards;
@@ -0,0 +1,196 @@
1
+ /**
2
+ * @module Clients
3
+ * @desc [MangoPay Users API Reference](https://docs.mangopay.com/endpoints/v2.01/clients)
4
+ */
5
+ var _ = require('underscore');
6
+ var fs = require('fs');
7
+ var Service = require('../service');
8
+
9
+ var Client = require('../models/Client');
10
+ var Transaction = require('../models/Transaction');
11
+ var ClientWallet = require('../models/ClientWallet');
12
+ var BankAccount = require('../models/BankAccount');
13
+ var PayOut = require('../models/PayOut');
14
+ var PayIn = require('../models/PayIn');
15
+
16
+ var Clients = Service.extend({
17
+ /**
18
+ * Get client by ID
19
+ * @param {string} clientId Client identifier
20
+ * @param {Function} callback Callback function
21
+ * @param {Object} options Request options
22
+ * @return {Object} Request promise
23
+ */
24
+ get: function(callback, options) {
25
+ options = this._api._getOptions(callback, options, {
26
+ dataClass: Client
27
+ });
28
+
29
+ return this._api.method('clients_get', callback, options);
30
+ },
31
+
32
+ /**
33
+ * Update client
34
+ * @param client Client to be updated
35
+ * @param callback Callback function
36
+ * @param options Request options
37
+ * @returns {*} Promise of the request
38
+ */
39
+ update: function(client,callback, options) {
40
+ options = this._api._getOptions(callback, options, {
41
+ data: client,
42
+ dataClass: Client
43
+ });
44
+
45
+ return this._api.method('clients_update', callback, options);
46
+ },
47
+
48
+ /**
49
+ * Upload client logo
50
+ * @param {string} logo Logo
51
+ * @param {Function} callback Callback function
52
+ * @param {Object} options Request options
53
+ * @return {Object} Promise of the request
54
+ */
55
+ uploadLogo: function(logo, callback, options) {
56
+ options = this._api._getOptions(callback, options, {
57
+ data: {File: logo}
58
+ });
59
+
60
+ return this._api.method('clients_upload_logo', callback, options);
61
+ },
62
+
63
+ /**
64
+ * Upload client logo from file
65
+ * @param {string} file File path
66
+ * @param {Function} callback Callback function
67
+ * @param {Object} options Request options
68
+ * @return {Object} Promise of the request
69
+ */
70
+ uploadLogoFromFile: function(file, callback, options) {
71
+ if (!file) {
72
+ this._api.errorHandler('File path cannot be empty');
73
+ return;
74
+ }
75
+
76
+ try {
77
+ fs.statSync(file);
78
+ } catch (e) {
79
+ this._api.errorHandler('File does not exist');
80
+ return;
81
+ }
82
+
83
+ var logo = Buffer.from(fs.readFileSync(file)).toString('base64');
84
+
85
+
86
+ if (!logo) this._api.errorHandler('Content of the file cannot be empty');
87
+ return this.uploadLogo(logo, callback, options);
88
+ },
89
+
90
+ /**
91
+ * Get all client wallets
92
+ * @param {Function} callback Callback function
93
+ * @param {Object} options Request options
94
+ * @return {Object} Promise of the request
95
+ */
96
+ getClientWallets: function(callback, options) {
97
+ if (options && !options.hasOwnProperty('parameters'))
98
+ Object.assign(options, {parameters: {...options}});
99
+ options = this._api._getOptions(callback, options, {
100
+ dataClass: ClientWallet
101
+ });
102
+
103
+ return this._api.method("client_wallets_all", callback, options);
104
+ },
105
+
106
+ /**
107
+ * Get a client wallet
108
+ * @param fundsType Wallet's funds type
109
+ * @param currency Currency of the wallet
110
+ * @param {Function} callback Callback function
111
+ * @param {Object} options Request options
112
+ * @return {Object} Promise of the request
113
+ */
114
+ getClientWallet: function(fundsType, currency, callback, options) {
115
+ options = this._api._getOptions(callback, options, {
116
+ path: {
117
+ fundsType: fundsType,
118
+ currency: currency
119
+ },
120
+ dataClass: ClientWallet
121
+ });
122
+
123
+ return this._api.method("client_wallets_get", callback, options);
124
+ },
125
+
126
+ /**
127
+ * Get client wallets by the type of funds
128
+ * @param fundsType Wallets funds type
129
+ * @param {Function} callback Callback function
130
+ * @param {Object} options Request options
131
+ * @return {Object} Promise of the request
132
+ */
133
+ getClientWalletsByFundsType: function(fundsType, callback, options) {
134
+ if (options && !options.hasOwnProperty('parameters'))
135
+ Object.assign(options, {parameters: {...options}});
136
+ options = this._api._getOptions(callback, options, {
137
+ path: {
138
+ fundsType: fundsType
139
+ },
140
+ dataClass: ClientWallet
141
+ });
142
+
143
+ return this._api.method("client_wallets_by_fundsType", callback, options);
144
+ },
145
+
146
+ /**
147
+ * Get a client wallet's transactions
148
+ * @param fundsType Wallet's funds type
149
+ * @param currency Currency of the wallet
150
+ * @param {Function} callback Callback function
151
+ * @param {Object} options Request options
152
+ * @return {Object} Promise of the request
153
+ */
154
+ getClientWalletTransactions: function(fundsType, currency, callback, options) {
155
+ if (options && !options.hasOwnProperty('parameters'))
156
+ Object.assign(options, {parameters: {...options}});
157
+ options = this._api._getOptions(callback, options, {
158
+ path: {
159
+ fundsType: fundsType,
160
+ currency: currency
161
+ },
162
+ dataClass: Transaction
163
+ });
164
+
165
+ return this._api.method("client_wallets_transactions", callback, options);
166
+ },
167
+
168
+ createBankAccountIBAN: function(bankAccountIBAN, callback, options) {
169
+ options = this._api._getOptions(callback, options, {
170
+ data: bankAccountIBAN,
171
+ dataClass: BankAccount
172
+ });
173
+
174
+ return this._api.method('client_create_bankaccount_iban', callback, options);
175
+ },
176
+
177
+ createPayOut: function(payOut, callback, options) {
178
+ options = this._api._getOptions(callback, options, {
179
+ data: payOut,
180
+ dataClass: PayOut
181
+ });
182
+
183
+ return this._api.method('client_create_payout', callback, options);
184
+ },
185
+
186
+ createBankWireDirectPayIn: function(payIn, callback, options) {
187
+ options = this._api._getOptions(callback, options, {
188
+ data: payIn,
189
+ dataClass: PayIn
190
+ });
191
+
192
+ return this._api.method('client_create_bankwire_direct', callback, options);
193
+ }
194
+ });
195
+
196
+ module.exports = Clients;
@@ -0,0 +1,155 @@
1
+ var _ = require('underscore');
2
+ var Service = require('../service');
3
+ var ConversionRate = require('../models/ConversionRate');
4
+ var Conversion = require('../models/Conversion');
5
+ var Quote = require('../models/Quote');
6
+
7
+ var Conversions = Service.extend({
8
+ /**
9
+ * This endpoint allows the platform to get a real time
10
+ * indicative market rate of a specific currency pair.
11
+ * The rate returned is given in real time.
12
+ * @param debitedCurrency The sell currency – the currency of the wallet to be debited
13
+ * @param creditedCurrency The buy currency – the currency of the wallet to be credited
14
+ * @param callback Callback function
15
+ * @param options Request options
16
+ * @returns {Object} Request promise
17
+ */
18
+ getConversionRate: function (debitedCurrency, creditedCurrency, callback, options) {
19
+ options = this._api._getOptions(callback, options,
20
+ {
21
+ path: {
22
+ debitedCurrency: debitedCurrency,
23
+ creditedCurrency: creditedCurrency
24
+ },
25
+ dataClass: ConversionRate
26
+ });
27
+
28
+ return this._api.method("get_conversion_rate", callback, options);
29
+ },
30
+
31
+ /**
32
+ * This endpoint allows the platform to move funds
33
+ * between two wallets of different currencies instantaneously.
34
+ * @param instantConversion Body object
35
+ * @param callback Callback function
36
+ * @param options Request options
37
+ * @returns {Object} Request promise
38
+ */
39
+ createInstantConversion: function (instantConversion, callback, options) {
40
+ options = this._api._getOptions(callback, options, {
41
+ data: instantConversion,
42
+ dataClass: Conversion
43
+ });
44
+
45
+ return this._api.method('create_instant_conversion', callback, options);
46
+ },
47
+
48
+ /**
49
+ * This call triggers a conversion, at the rate guaranteed by its quote, of the debited funds to the credited wallet.
50
+ * Each quoted conversion requires a dedicated Quote object, linked in the QuoteId.
51
+ * Fees can’t be taken on a quoted conversion.
52
+ * @param quotedConversion Body object
53
+ * @param callback Callback function
54
+ * @param options Request options
55
+ * @returns {Object} Request promise
56
+ */
57
+ createQuotedConversion: function (quotedConversion, callback, options) {
58
+ options = this._api._getOptions(callback, options, {
59
+ data: quotedConversion,
60
+ dataClass: Conversion
61
+ });
62
+
63
+ return this._api.method('create_quoted_conversion', callback, options);
64
+ },
65
+
66
+ /**
67
+ * This call triggers a conversion at the rate defined in its quote.
68
+ * The debited funds (buy currency), credited funds (sell currency) and currencies are defined in the quote.
69
+ * The Client Wallets to debit and credit are defined in the conversion.
70
+ * @param conversion Body object
71
+ * @param callback Callback function
72
+ * @param options Request options
73
+ * @returns {Object} Request promise
74
+ */
75
+ createClientWalletsQuotedConversion: function (conversion, callback, options) {
76
+ options = this._api._getOptions(callback, options, {
77
+ data: conversion,
78
+ dataClass: Conversion
79
+ });
80
+
81
+ return this._api.method('create_client_wallets_quoted_conversion', callback, options);
82
+ },
83
+
84
+ /**
85
+ * This call triggers an immediate conversion at the market rate, of the debited funds to the credited wallet at the market rate.
86
+ * A quote is not required for an instant conversion.
87
+ * @param conversion Body object
88
+ * @param callback Callback function
89
+ * @param options Request options
90
+ * @returns {Object} Request promise
91
+ */
92
+ createClientWalletsInstantConversion: function (conversion, callback, options) {
93
+ options = this._api._getOptions(callback, options, {
94
+ data: conversion,
95
+ dataClass: Conversion
96
+ });
97
+
98
+ return this._api.method('create_client_wallets_instant_conversion', callback, options);
99
+ },
100
+
101
+ /**
102
+ * This endpoint allows the platform to get the
103
+ * details of a conversion which has been carried out.
104
+ * @param id Id of the conversion
105
+ * @param callback Callback function
106
+ * @param options Request options
107
+ * @returns {Object} Request promise
108
+ */
109
+ getConversion: function (id, callback, options) {
110
+ options = this._api._getOptions(callback, options, {
111
+ path: {
112
+ id: id
113
+ },
114
+ dataClass: Conversion
115
+ });
116
+
117
+ return this._api.method('get_conversion', callback, options);
118
+ },
119
+
120
+ /**
121
+ * This call guarantees a conversion rate to let you Create a Quoted Conversion
122
+ * @param quote Body object
123
+ * @param callback Callback function
124
+ * @param options Request options
125
+ * @returns {Object} Request promise
126
+ */
127
+ createQuote: function (quote, callback, options) {
128
+ options = this._api._getOptions(callback, options, {
129
+ data: quote,
130
+ dataClass: Quote
131
+ });
132
+
133
+ return this._api.method('create_quote', callback, options);
134
+ },
135
+
136
+ /**
137
+ * View a Quote
138
+ * @param id Id of the conversion
139
+ * @param callback Callback function
140
+ * @param options Request options
141
+ * @returns {Object} Request promise
142
+ */
143
+ getQuote: function (id, callback, options) {
144
+ options = this._api._getOptions(callback, options, {
145
+ path: {
146
+ id: id
147
+ },
148
+ dataClass: Quote
149
+ });
150
+
151
+ return this._api.method('get_quote', callback, options);
152
+ },
153
+ });
154
+
155
+ module.exports = Conversions;
@@ -0,0 +1,109 @@
1
+ var Service = require('../service');
2
+ var Deposit = require('../models/Deposit');
3
+
4
+ var Deposits = Service.extend({
5
+ /**
6
+ * Create a Deposit
7
+ */
8
+ create: function(deposit, callback, options) {
9
+ options = this._api._getOptions(callback, options, {
10
+ data: deposit,
11
+ dataClass: Deposit
12
+ });
13
+
14
+ return this._api.method('deposits_create', callback, options);
15
+ },
16
+
17
+ /**
18
+ * Get a Deposit
19
+ */
20
+ get: function(depositId, callback, options) {
21
+ options = this._api._getOptions(callback, options, {
22
+ path: {
23
+ depositId: depositId
24
+ },
25
+ dataClass: Deposit
26
+ });
27
+
28
+ return this._api.method('deposits_get', callback, options);
29
+ },
30
+
31
+ /**
32
+ * Cancel a Deposit
33
+ */
34
+ cancel: function(depositId, callback, options) {
35
+ const dto = {
36
+ PaymentStatus: 'CANCELED'
37
+ };
38
+
39
+ options = this._api._getOptions(callback, options, {
40
+ path: {
41
+ depositId: depositId
42
+ },
43
+ data: dto,
44
+ dataClass: Deposit
45
+ });
46
+
47
+ return this._api.method('deposits_update', callback, options);
48
+ },
49
+
50
+ /**
51
+ * Get all deposits for a card
52
+ */
53
+ getAllForCard: function(cardId, callback, options) {
54
+ options = this._api._getOptions(callback, options, {
55
+ path: {
56
+ cardId: cardId
57
+ }
58
+ });
59
+
60
+ return this._api.method('deposits_get_all_for_card', callback, options);
61
+ },
62
+
63
+ /**
64
+ * Get all deposits for a user
65
+ */
66
+ getAllForUser: function(userId, callback, options) {
67
+ options = this._api._getOptions(callback, options, {
68
+ path: {
69
+ userId: userId
70
+ }
71
+ });
72
+
73
+ return this._api.method('deposits_get_all_for_user', callback, options);
74
+ },
75
+
76
+ /**
77
+ * Update a Deposit (set PaymentStatus to CANCELED or NO_SHOW_REQUESTED)
78
+ */
79
+ update: function(depositUpdate, callback, options) {
80
+ if (!depositUpdate.Id) {
81
+ this._api.errorHandler('Cannot update deposit, the Id is missing');
82
+ }
83
+
84
+ options = this._api._getOptions(callback, options, {
85
+ path: {
86
+ depositId: depositUpdate.Id
87
+ },
88
+ data: depositUpdate,
89
+ dataClass: Deposit
90
+ });
91
+
92
+ return this._api.method('deposits_update', callback, options);
93
+ },
94
+
95
+ /**
96
+ * Get all transactions for a deposit
97
+ */
98
+ getTransactions: function(depositId, callback, options) {
99
+ options = this._api._getOptions(callback, options, {
100
+ path: {
101
+ depositId: depositId
102
+ }
103
+ });
104
+
105
+ return this._api.method('deposits_get_transactions', callback, options);
106
+ },
107
+ });
108
+
109
+ module.exports = Deposits;
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @module DisputeDocuments
3
+ * @desc [MangoPay Dispute Documents API Reference](https://docs.mangopay.com/endpoints/v2.01/dispute-documents)
4
+ */
5
+
6
+ var _ = require('underscore');
7
+ var Service = require('../service');
8
+ var DisputeDocument = require('../models/DisputeDocument');
9
+
10
+ var DisputeDocuments = Service.extend({
11
+ /**
12
+ * Gets dispute's document
13
+ * @param {number} documentId Document identifier
14
+ * @param {Function} callback Callback function
15
+ * @param {Object} options Request options
16
+ * @return {Object} Request promise
17
+ */
18
+ get: function (documentId, callback, options) {
19
+ options = this._api._getOptions(callback, options, {
20
+ path: {
21
+ id: documentId
22
+ },
23
+ dataClass: DisputeDocument
24
+ });
25
+
26
+ return this._api.method('disputes_document_get', callback, options);
27
+ },
28
+
29
+ /**
30
+ * Gets dispute's documents for client
31
+ * @param {Function} callback Callback function
32
+ * @param {Object} options Request options
33
+ * @return {Object} Request promise
34
+ */
35
+ getAll: function (callback, options) {
36
+ if (options && !options.hasOwnProperty('parameters'))
37
+ Object.assign(options, {parameters: {...options}});
38
+ options = this._api._getOptions(callback, options, {
39
+ dataClass: DisputeDocument
40
+ });
41
+
42
+ return this._api.method('disputes_document_all', callback, options);
43
+ },
44
+
45
+ /**
46
+ * Creates temporary URLs where each page of a dispute document can be viewed.
47
+ *
48
+ * @param {string} documentId Document identifier
49
+ * @param {Function} callback Callback function
50
+ * @param {Object} options Request options
51
+ * @return {Object} Request promise
52
+ */
53
+ createDisputeDocumentConsult: function (documentId, callback, options) {
54
+ options = this._api._getOptions(callback, options, {
55
+ path: {
56
+ id: documentId
57
+ },
58
+ dataClass: DisputeDocument
59
+ });
60
+
61
+ return this._api.method('disputes_document_create_consult', callback, options);
62
+ }
63
+ });
64
+
65
+ module.exports = DisputeDocuments;