mangopay-v4 4.0.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 (214) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +30 -0
  3. data/.rspec +4 -0
  4. data/.rubocop.yml +2 -0
  5. data/.travis.yml +13 -0
  6. data/Gemfile +2 -0
  7. data/LICENSE +20 -0
  8. data/README.md +380 -0
  9. data/bin/mangopay +9 -0
  10. data/lib/mangopay.rb +133 -0
  11. data/lib/mangopay/api/api.rb +9 -0
  12. data/lib/mangopay/api/api_methods.rb +137 -0
  13. data/lib/mangopay/api/auth_token_manager.rb +173 -0
  14. data/lib/mangopay/api/http_client.rb +325 -0
  15. data/lib/mangopay/api/service/bank_accounts.rb +146 -0
  16. data/lib/mangopay/api/service/cards.rb +152 -0
  17. data/lib/mangopay/api/service/client_wallets.rb +89 -0
  18. data/lib/mangopay/api/service/clients.rb +68 -0
  19. data/lib/mangopay/api/service/dispute_documents.rb +158 -0
  20. data/lib/mangopay/api/service/disputes.rb +187 -0
  21. data/lib/mangopay/api/service/e_money.rb +42 -0
  22. data/lib/mangopay/api/service/events.rb +47 -0
  23. data/lib/mangopay/api/service/hooks.rb +93 -0
  24. data/lib/mangopay/api/service/kyc_documents.rb +153 -0
  25. data/lib/mangopay/api/service/mandates.rb +142 -0
  26. data/lib/mangopay/api/service/oauth_tokens.rb +25 -0
  27. data/lib/mangopay/api/service/pay_ins.rb +260 -0
  28. data/lib/mangopay/api/service/pay_outs.rb +54 -0
  29. data/lib/mangopay/api/service/pre_authorizations.rb +69 -0
  30. data/lib/mangopay/api/service/refunds.rb +62 -0
  31. data/lib/mangopay/api/service/reports.rb +151 -0
  32. data/lib/mangopay/api/service/repudiations.rb +32 -0
  33. data/lib/mangopay/api/service/responses.rb +102 -0
  34. data/lib/mangopay/api/service/settlement_transfers.rb +55 -0
  35. data/lib/mangopay/api/service/transactions.rb +183 -0
  36. data/lib/mangopay/api/service/transfers.rb +54 -0
  37. data/lib/mangopay/api/service/ubo_declarations.rb +70 -0
  38. data/lib/mangopay/api/service/users.rb +163 -0
  39. data/lib/mangopay/api/service/wallets.rb +99 -0
  40. data/lib/mangopay/api/uri_provider.rb +35 -0
  41. data/lib/mangopay/common/json_tag_converter.rb +68 -0
  42. data/lib/mangopay/common/jsonifier.rb +249 -0
  43. data/lib/mangopay/common/log_provider.rb +34 -0
  44. data/lib/mangopay/common/rate_limit_interval.rb +17 -0
  45. data/lib/mangopay/common/read_only_fields.rb +27 -0
  46. data/lib/mangopay/common/response_error.rb +61 -0
  47. data/lib/mangopay/common/sort_direction.rb +15 -0
  48. data/lib/mangopay/common/sort_field.rb +13 -0
  49. data/lib/mangopay/common/template_url_options.rb +9 -0
  50. data/lib/mangopay/configuration.rb +39 -0
  51. data/lib/mangopay/environment.rb +66 -0
  52. data/lib/mangopay/model/address.rb +27 -0
  53. data/lib/mangopay/model/declared_ubo.rb +21 -0
  54. data/lib/mangopay/model/dispute_reason.rb +15 -0
  55. data/lib/mangopay/model/document_page_consult.rb +15 -0
  56. data/lib/mangopay/model/e_money.rb +18 -0
  57. data/lib/mangopay/model/entity/account/bank_account.rb +26 -0
  58. data/lib/mangopay/model/entity/account/ca_bank_account.rb +27 -0
  59. data/lib/mangopay/model/entity/account/gb_bank_account.rb +21 -0
  60. data/lib/mangopay/model/entity/account/iban_bank_account.rb +21 -0
  61. data/lib/mangopay/model/entity/account/other_bank_account.rb +24 -0
  62. data/lib/mangopay/model/entity/account/us_bank_account.rb +24 -0
  63. data/lib/mangopay/model/entity/card.rb +45 -0
  64. data/lib/mangopay/model/entity/card_registration.rb +43 -0
  65. data/lib/mangopay/model/entity/client.rb +63 -0
  66. data/lib/mangopay/model/entity/client_wallet.rb +23 -0
  67. data/lib/mangopay/model/entity/dispute.rb +50 -0
  68. data/lib/mangopay/model/entity/dispute_document.rb +29 -0
  69. data/lib/mangopay/model/entity/entity_base.rb +18 -0
  70. data/lib/mangopay/model/entity/hook.rb +26 -0
  71. data/lib/mangopay/model/entity/kyc_document.rb +28 -0
  72. data/lib/mangopay/model/entity/mandate.rb +51 -0
  73. data/lib/mangopay/model/entity/pay_in/bank_wire_direct_pay_in.rb +22 -0
  74. data/lib/mangopay/model/entity/pay_in/card_direct_pay_in.rb +33 -0
  75. data/lib/mangopay/model/entity/pay_in/card_pre_authorized_pay_in.rb +13 -0
  76. data/lib/mangopay/model/entity/pay_in/card_web_pay_in.rb +40 -0
  77. data/lib/mangopay/model/entity/pay_in/direct_debit_direct_pay_in.rb +23 -0
  78. data/lib/mangopay/model/entity/pay_in/direct_debit_web_pay_in.rb +38 -0
  79. data/lib/mangopay/model/entity/pay_in/pay_in.rb +16 -0
  80. data/lib/mangopay/model/entity/pay_out.rb +22 -0
  81. data/lib/mangopay/model/entity/pre_authorization.rb +68 -0
  82. data/lib/mangopay/model/entity/refund.rb +18 -0
  83. data/lib/mangopay/model/entity/report.rb +51 -0
  84. data/lib/mangopay/model/entity/repudiation.rb +18 -0
  85. data/lib/mangopay/model/entity/settlement_transfer.rb +17 -0
  86. data/lib/mangopay/model/entity/transaction.rb +52 -0
  87. data/lib/mangopay/model/entity/transfer.rb +13 -0
  88. data/lib/mangopay/model/entity/ubo_declaration.rb +32 -0
  89. data/lib/mangopay/model/entity/user/legal_user.rb +53 -0
  90. data/lib/mangopay/model/entity/user/natural_user.rb +50 -0
  91. data/lib/mangopay/model/entity/user/user.rb +18 -0
  92. data/lib/mangopay/model/entity/wallet.rb +28 -0
  93. data/lib/mangopay/model/enum/account_type.rb +24 -0
  94. data/lib/mangopay/model/enum/card_status.rb +15 -0
  95. data/lib/mangopay/model/enum/card_type.rb +33 -0
  96. data/lib/mangopay/model/enum/card_validity.rb +19 -0
  97. data/lib/mangopay/model/enum/country_iso.rb +759 -0
  98. data/lib/mangopay/model/enum/culture_code.rb +44 -0
  99. data/lib/mangopay/model/enum/currency_iso.rb +552 -0
  100. data/lib/mangopay/model/enum/declared_ubo_refused_reason_type.rb +16 -0
  101. data/lib/mangopay/model/enum/declared_ubo_status.rb +18 -0
  102. data/lib/mangopay/model/enum/deposit_type.rb +15 -0
  103. data/lib/mangopay/model/enum/direct_debit_type.rb +13 -0
  104. data/lib/mangopay/model/enum/dispute_doc_refused_reason_type.rb +25 -0
  105. data/lib/mangopay/model/enum/dispute_document_type.rb +23 -0
  106. data/lib/mangopay/model/enum/dispute_reason_type.rb +33 -0
  107. data/lib/mangopay/model/enum/dispute_status.rb +21 -0
  108. data/lib/mangopay/model/enum/dispute_type.rb +15 -0
  109. data/lib/mangopay/model/enum/document_status.rb +21 -0
  110. data/lib/mangopay/model/enum/download_format.rb +11 -0
  111. data/lib/mangopay/model/enum/event_type.rb +74 -0
  112. data/lib/mangopay/model/enum/funds_type.rb +15 -0
  113. data/lib/mangopay/model/enum/hook_status.rb +13 -0
  114. data/lib/mangopay/model/enum/hook_validity.rb +15 -0
  115. data/lib/mangopay/model/enum/income_range.rb +21 -0
  116. data/lib/mangopay/model/enum/kyc_doc_refused_reason_type.rb +37 -0
  117. data/lib/mangopay/model/enum/kyc_document_type.rb +19 -0
  118. data/lib/mangopay/model/enum/kyc_level.rb +13 -0
  119. data/lib/mangopay/model/enum/legal_person_type.rb +15 -0
  120. data/lib/mangopay/model/enum/mandate_culture_code.rb +23 -0
  121. data/lib/mangopay/model/enum/mandate_execution_type.rb +11 -0
  122. data/lib/mangopay/model/enum/mandate_scheme.rb +13 -0
  123. data/lib/mangopay/model/enum/mandate_status.rb +24 -0
  124. data/lib/mangopay/model/enum/mandate_type.rb +11 -0
  125. data/lib/mangopay/model/enum/natural_user_capacity.rb +15 -0
  126. data/lib/mangopay/model/enum/pay_in_execution_type.rb +18 -0
  127. data/lib/mangopay/model/enum/pay_in_payment_type.rb +21 -0
  128. data/lib/mangopay/model/enum/pay_out_payment_type.rb +11 -0
  129. data/lib/mangopay/model/enum/payment_status.rb +21 -0
  130. data/lib/mangopay/model/enum/person_type.rb +15 -0
  131. data/lib/mangopay/model/enum/platform_type.rb +23 -0
  132. data/lib/mangopay/model/enum/pre_authorization_execution_type.rb +11 -0
  133. data/lib/mangopay/model/enum/pre_authorization_status.rb +18 -0
  134. data/lib/mangopay/model/enum/refund_reason_type.rb +21 -0
  135. data/lib/mangopay/model/enum/report_status.rb +17 -0
  136. data/lib/mangopay/model/enum/report_type.rb +13 -0
  137. data/lib/mangopay/model/enum/secure_mode.rb +16 -0
  138. data/lib/mangopay/model/enum/transaction_nature.rb +17 -0
  139. data/lib/mangopay/model/enum/transaction_status.rb +15 -0
  140. data/lib/mangopay/model/enum/transaction_type.rb +15 -0
  141. data/lib/mangopay/model/enum/ubo_declaration_refused_reason_type.rb +19 -0
  142. data/lib/mangopay/model/enum/ubo_declaration_status.rb +21 -0
  143. data/lib/mangopay/model/event.rb +18 -0
  144. data/lib/mangopay/model/model.rb +194 -0
  145. data/lib/mangopay/model/money.rb +17 -0
  146. data/lib/mangopay/model/pay_in_web_extended_view.rb +31 -0
  147. data/lib/mangopay/model/refund_reason.rb +15 -0
  148. data/lib/mangopay/model/report_filter.rb +83 -0
  149. data/lib/mangopay/model/request/cancel_request.rb +16 -0
  150. data/lib/mangopay/model/request/complete_registration_request.rb +13 -0
  151. data/lib/mangopay/model/request/currency_request.rb +13 -0
  152. data/lib/mangopay/model/request/deactivation_request.rb +10 -0
  153. data/lib/mangopay/model/request/filter_request.rb +38 -0
  154. data/lib/mangopay/model/request/submit_document_request.rb +14 -0
  155. data/lib/mangopay/model/request/submit_ubo_declaration_request.rb +14 -0
  156. data/lib/mangopay/model/request/upload_file_request.rb +9 -0
  157. data/lib/mangopay/model/response_replica.rb +27 -0
  158. data/lib/mangopay/util/custom_formatter.rb +12 -0
  159. data/lib/mangopay/util/custom_logger.rb +34 -0
  160. data/lib/mangopay/util/enum.rb +52 -0
  161. data/lib/mangopay/util/file_encoder.rb +16 -0
  162. data/lib/mangopay/util/non_instantiable.rb +6 -0
  163. data/lib/mangopay/util/storage_strategy.rb +10 -0
  164. data/lib/mangopay/util/void_logger.rb +6 -0
  165. data/mangopay.gemspec +32 -0
  166. data/spec/context/address_context.rb +25 -0
  167. data/spec/context/bank_account_context.rb +138 -0
  168. data/spec/context/card_context.rb +46 -0
  169. data/spec/context/client_context.rb +45 -0
  170. data/spec/context/dispute_context.rb +37 -0
  171. data/spec/context/dispute_document_context.rb +20 -0
  172. data/spec/context/hook_context.rb +16 -0
  173. data/spec/context/kyc_document_context.rb +23 -0
  174. data/spec/context/mandate_context.rb +27 -0
  175. data/spec/context/pay_in_context.rb +225 -0
  176. data/spec/context/pay_out_context.rb +39 -0
  177. data/spec/context/pre_authorization_context.rb +41 -0
  178. data/spec/context/refund_context.rb +33 -0
  179. data/spec/context/report_context.rb +22 -0
  180. data/spec/context/repudiation_context.rb +19 -0
  181. data/spec/context/settlement_transfer_context.rb +28 -0
  182. data/spec/context/transfer_context.rb +51 -0
  183. data/spec/context/ubo_declaration_context.rb +25 -0
  184. data/spec/context/user_context.rb +83 -0
  185. data/spec/context/wallet_context.rb +53 -0
  186. data/spec/mangopay/bank_accounts_spec.rb +229 -0
  187. data/spec/mangopay/cards_spec.rb +135 -0
  188. data/spec/mangopay/client_wallets_spec.rb +148 -0
  189. data/spec/mangopay/clients_spec.rb +55 -0
  190. data/spec/mangopay/configuration_spec.rb +126 -0
  191. data/spec/mangopay/dispute_documents_spec.rb +174 -0
  192. data/spec/mangopay/disputes_spec.rb +265 -0
  193. data/spec/mangopay/e_money_spec.rb +38 -0
  194. data/spec/mangopay/events_spec.rb +50 -0
  195. data/spec/mangopay/hooks_spec.rb +71 -0
  196. data/spec/mangopay/kyc_documents_spec.rb +180 -0
  197. data/spec/mangopay/mandates_spec.rb +219 -0
  198. data/spec/mangopay/oauth_tokens_spec.rb +41 -0
  199. data/spec/mangopay/pay_ins_spec.rb +181 -0
  200. data/spec/mangopay/pay_outs_spec.rb +39 -0
  201. data/spec/mangopay/pre_authorizations_spec.rb +58 -0
  202. data/spec/mangopay/refunds_spec.rb +40 -0
  203. data/spec/mangopay/reports_spec.rb +121 -0
  204. data/spec/mangopay/responses_spec.rb +295 -0
  205. data/spec/mangopay/settlement_transfers_spec.rb +37 -0
  206. data/spec/mangopay/transactions_spec.rb +233 -0
  207. data/spec/mangopay/transfers_spec.rb +38 -0
  208. data/spec/mangopay/ubo_declarations_spec.rb +65 -0
  209. data/spec/mangopay/users_spec.rb +146 -0
  210. data/spec/mangopay/wallets_spec.rb +104 -0
  211. data/spec/resources/logo.png +0 -0
  212. data/spec/resources/test_pdf.pdf +0 -0
  213. data/spec/spec_helper.rb +72 -0
  214. metadata +349 -0
@@ -0,0 +1,21 @@
1
+ require_relative 'bank_account'
2
+ require_relative '../../enum/account_type'
3
+ require_relative '../../../common/jsonifier'
4
+
5
+ module MangoModel
6
+
7
+ # Bank account of +AccountType::GB+
8
+ class GbBankAccount < BankAccount
9
+ include MangoPay::Jsonifier
10
+
11
+ # [String] Its sort code (6 digits)
12
+ attr_accessor :sort_code
13
+
14
+ # [String] Its account number (8 digits)
15
+ attr_accessor :account_number
16
+
17
+ def initialize
18
+ self.type = MangoModel::AccountType::GB
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require_relative 'bank_account'
2
+ require_relative '../../enum/account_type'
3
+ require_relative '../../../common/jsonifier'
4
+
5
+ module MangoModel
6
+
7
+ # Bank account of +AccountType::IBAN+
8
+ class IbanBankAccount < BankAccount
9
+ include MangoPay::Jsonifier
10
+
11
+ # [String] Its IBAN code
12
+ attr_accessor :iban
13
+
14
+ # [String] Its BIC code
15
+ attr_accessor :bic
16
+
17
+ def initialize
18
+ self.type = MangoModel::AccountType::IBAN
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,24 @@
1
+ require_relative 'bank_account'
2
+ require_relative '../../enum/account_type'
3
+ require_relative '../../../common/jsonifier'
4
+
5
+ module MangoModel
6
+
7
+ # Bank account of +AccountType::OTHER+
8
+ class OtherBankAccount < BankAccount
9
+ include MangoPay::Jsonifier
10
+
11
+ # [String] Its BIC code
12
+ attr_accessor :bic
13
+
14
+ # [String] Its account number
15
+ attr_accessor :account_number
16
+
17
+ # [CountryIso] Its country
18
+ attr_accessor :country
19
+
20
+ def initialize
21
+ self.type = MangoModel::AccountType::OTHER
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ require_relative 'bank_account'
2
+ require_relative '../../enum/account_type'
3
+ require_relative '../../../common/jsonifier'
4
+
5
+ module MangoModel
6
+
7
+ # Bank account of +AccountType::US+
8
+ class UsBankAccount < BankAccount
9
+ include MangoPay::Jsonifier
10
+
11
+ # [String] Its account number (digits only)
12
+ attr_accessor :account_number
13
+
14
+ # [String] Its ABA (9 digits )
15
+ attr_accessor :aba
16
+
17
+ # [DepositType] Its deposit type
18
+ attr_accessor :deposit_account_type
19
+
20
+ def initialize
21
+ self.type = MangoModel::AccountType::US
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,45 @@
1
+ require_relative '../../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # Card entity
6
+ class Card < EntityBase
7
+ include MangoPay::Jsonifier
8
+
9
+ # [Integer] Its expiry date (MM/YY format)
10
+ attr_accessor :expiration_date
11
+
12
+ # [String] A partially obfuscated version of its credit card number
13
+ attr_accessor :alias
14
+
15
+ # [String] Its provider
16
+ attr_accessor :card_provider
17
+
18
+ # [CardType] Its type
19
+ attr_accessor :card_type
20
+
21
+ # [String] Country of its address
22
+ attr_accessor :country
23
+
24
+ # [String] Its product type
25
+ attr_accessor :product
26
+
27
+ # [String] Its bank code
28
+ attr_accessor :bank_code
29
+
30
+ # [true/false] Whether or not it is active
31
+ attr_accessor :active
32
+
33
+ # [CurrencyIso] Its currency
34
+ attr_accessor :currency
35
+
36
+ # [CardValidity] Whether or not it is valid
37
+ attr_accessor :validity
38
+
39
+ # [String] A unique representation of a 16-digit card number
40
+ attr_accessor :fingerprint
41
+
42
+ # [String] ID of its owner
43
+ attr_accessor :user_id
44
+ end
45
+ end
@@ -0,0 +1,43 @@
1
+ require_relative '../../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # Card Registration entity
6
+ class CardRegistration < EntityBase
7
+ include MangoPay::Jsonifier
8
+
9
+ # [String] Its owner's ID
10
+ attr_accessor :user_id
11
+
12
+ # [CurrencyIso] Its currency
13
+ attr_accessor :currency
14
+
15
+ # [String] Its access key (a special key needed for registering a card)
16
+ attr_accessor :access_key
17
+
18
+ # [String] A specific value to pass to the card registration URL
19
+ attr_accessor :preregistration_data
20
+
21
+ # [String] The URL to submit the card details form to
22
+ attr_accessor :card_registration_url
23
+
24
+ # [String] Having registered a card, this confirmation hash needs to be
25
+ # updated to the card item
26
+ attr_accessor :registration_data
27
+
28
+ # [CardType] The type of card
29
+ attr_accessor :card_type
30
+
31
+ # [String] The card's ID
32
+ attr_accessor :card_id
33
+
34
+ # [String] The result code
35
+ attr_accessor :result_code
36
+
37
+ # [String] Explanation of the result
38
+ attr_accessor :result_message
39
+
40
+ # [CardStatus] Status of the registration
41
+ attr_accessor :status
42
+ end
43
+ end
@@ -0,0 +1,63 @@
1
+ require_relative '../../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # Client entity
6
+ # The Client object allows viewing and editing of various
7
+ # details concerning the implementing platform.
8
+ class Client
9
+ include MangoPay::Jsonifier
10
+
11
+ # [String] Its pretty name
12
+ attr_accessor :name
13
+
14
+ # [String] Its registered company name
15
+ attr_accessor :registered_name
16
+
17
+ # [String] Its ID
18
+ attr_accessor :client_id
19
+
20
+ # [String] Its primary branding colour (Hex code)
21
+ attr_accessor :primary_theme_colour
22
+
23
+ # [String] Its primary branding colour for buttons (Hex code)
24
+ attr_accessor :primary_button_colour
25
+
26
+ # [String] URL of its logo
27
+ attr_accessor :logo
28
+
29
+ # [Array] List of email addresses for contacting its technical
30
+ # support team
31
+ attr_accessor :tech_emails
32
+
33
+ # [Array] List of email addresses for contacting its
34
+ # administration/commercial team
35
+ attr_accessor :admin_emails
36
+
37
+ # [Array] List of email addresses for contacting its
38
+ # fraud prevention/compliance team
39
+ attr_accessor :fraud_emails
40
+
41
+ # [Array] List of email addresses for contacting its billing team
42
+ attr_accessor :billing_emails
43
+
44
+ # [String] Description of what its implementing platform does
45
+ attr_accessor :platform_description
46
+
47
+ # [PlatformType] Its implementing platform type
48
+ attr_accessor :platform_type
49
+
50
+ # [String] Its implementing platform's website URL
51
+ attr_accessor :platform_url
52
+
53
+ # [Address] Its company's headquarters' address
54
+ attr_accessor :headquarters_address
55
+
56
+ # [String] Its company's tax (or VAT) number
57
+ attr_accessor :tax_number
58
+
59
+ # [String] Its company's unique MangoPay reference to be used when
60
+ # contacting the MangoPay team
61
+ attr_accessor :company_reference
62
+ end
63
+ end
@@ -0,0 +1,23 @@
1
+ require_relative '../../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # Client Wallet entity
6
+ # The Client Wallet is very similar to a normal Wallet except the parameters
7
+ # +description+ and +owners+ are removed. Currently, there are two types of
8
+ # Client Wallet (specified by the +funds_type+ parameter) - +FEES+ where your
9
+ # collected turnover is stored and +CREDIT_ where repudiations are taken from.
10
+ # A normal wallet for a user has the +FundsType+ of +DEFAULT+.
11
+ class ClientWallet < EntityBase
12
+ include MangoPay::Jsonifier
13
+
14
+ # [Money] Its current balance
15
+ attr_accessor :balance
16
+
17
+ # [FundsType] Its funds' type
18
+ attr_accessor :funds_type
19
+
20
+ # [CurrencyIso] Its funds' currency
21
+ attr_accessor :currency
22
+ end
23
+ end
@@ -0,0 +1,50 @@
1
+ require_relative '../../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # Dispute entity
6
+ # The Dispute object is used when a user requests a chargeback
7
+ # of a transaction to their bank. In turn, their bank withdraws
8
+ # the funds from MangoPay, and MangoPay will then repudiate
9
+ # the required funds from your client credit wallet.
10
+ class Dispute < EntityBase
11
+ include MangoPay::Jsonifier
12
+
13
+ # [DisputeType] Its type
14
+ attr_accessor :dispute_type
15
+
16
+ # [String] The initial transaction's ID
17
+ attr_accessor :initial_transaction_id
18
+
19
+ # [TransactionType] The initial transaction's type
20
+ attr_accessor :initial_transaction_type
21
+
22
+ # [String] Its result code
23
+ attr_accessor :result_code
24
+
25
+ # {String] Explanation of its result
26
+ attr_accessor :result_message
27
+
28
+ # [DisputeReason] Its reason
29
+ attr_accessor :dispute_reason
30
+
31
+ # [DisputeStatus] Its status
32
+ attr_accessor :status
33
+
34
+ # [String] Explanation of the status
35
+ attr_accessor :status_message
36
+
37
+ # [Money] The funds that were disputed
38
+ attr_accessor :disputed_funds
39
+
40
+ # [Money] The funds wished to be contested
41
+ attr_accessor :contested_funds
42
+
43
+ # [Integer] The deadline by which the dispute must be contested,
44
+ # if necessary (UNIX timestamp)
45
+ attr_accessor :contest_deadline_date
46
+
47
+ # [String] ID of the associated repudiation transaction
48
+ attr_accessor :repudiation_id
49
+ end
50
+ end
@@ -0,0 +1,29 @@
1
+ require_relative '../../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # Dispute Document entity
6
+ # A Dispute Document must be created in order to upload pages
7
+ # of a document pertaining to a certain dispute.
8
+ class DisputeDocument < EntityBase
9
+ include MangoPay::Jsonifier
10
+
11
+ # [String] ID of the corresponding dispute
12
+ attr_accessor :dispute_id
13
+
14
+ # [DocumentStatus] Its status
15
+ attr_accessor :status
16
+
17
+ # [DisputeDocumentType] Its type
18
+ attr_accessor :type
19
+
20
+ # [DisputeDocRefusedReasonType] Type of its refusal reason
21
+ attr_accessor :refused_reason_type
22
+
23
+ # [String] Explanation of its refusal
24
+ attr_accessor :refused_reason_message
25
+
26
+ # [Integer] Time when the document was processed (UNIX timestamp)
27
+ attr_accessor :processed_date
28
+ end
29
+ end
@@ -0,0 +1,18 @@
1
+ require_relative '../../util/non_instantiable'
2
+
3
+ module MangoModel
4
+
5
+ # Base class for entities which provides common properties
6
+ class EntityBase
7
+ extend NonInstantiable
8
+
9
+ # Unique identifier
10
+ attr_accessor :id
11
+
12
+ # Custom data
13
+ attr_accessor :tag
14
+
15
+ # Date of creation (UNIX timestamp)
16
+ attr_accessor :creation_date
17
+ end
18
+ end
@@ -0,0 +1,26 @@
1
+ require_relative '../../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # Hook entity
6
+ # Once setup, a hook entity allows MangoPay to make a request
7
+ # to a specific URL on the implementing server to make it aware
8
+ # of various Events (i.e. a failed PayOut). One URL can be
9
+ # configured for each +EventType+.
10
+ class Hook < EntityBase
11
+ include MangoPay::Jsonifier
12
+
13
+ # [String] The URL that will be pinged for events of the
14
+ # specified type
15
+ attr_accessor :url
16
+
17
+ # [HookStatus] Whether or not the hook is enabled
18
+ attr_accessor :status
19
+
20
+ # [HookValidity] Whether or not the hook is valid
21
+ attr_accessor :validity
22
+
23
+ # [EventType] Type of event handled
24
+ attr_accessor :event_type
25
+ end
26
+ end
@@ -0,0 +1,28 @@
1
+ require_relative '../../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # KYC Document entity
6
+ # The KYC Document object is a request to validate a required document.
7
+ class KycDocument < EntityBase
8
+ include MangoPay::Jsonifier
9
+
10
+ # [KycDocumentType] Its type
11
+ attr_accessor :type
12
+
13
+ # [String] ID of its owner
14
+ attr_accessor :user_id
15
+
16
+ # [DocumentStatus] Its processing status
17
+ attr_accessor :status
18
+
19
+ # [String] The message accompanying a refusal
20
+ attr_accessor :refused_reason_message
21
+
22
+ # [KycDocRefusedReasonType] Reason of refusal
23
+ attr_accessor :refused_reason_type
24
+
25
+ # [Integer] Time when the document was processed (UNIX timestamp)
26
+ attr_accessor :processed_date
27
+ end
28
+ end
@@ -0,0 +1,51 @@
1
+ require_relative '../../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # Mandate entity
6
+ class Mandate < EntityBase
7
+ include MangoPay::Jsonifier
8
+
9
+ # [String] ID of the concerned bank account
10
+ attr_accessor :bank_account_id
11
+
12
+ # [String] Its owner's ID
13
+ attr_accessor :user_id
14
+
15
+ # [String] URL to redirect to after payment (whether or not successful)
16
+ attr_accessor :return_url
17
+
18
+ # [String] URL which to redirect users to for them to proceed
19
+ # with the payment
20
+ attr_accessor :redirect_url
21
+
22
+ # [String] URL where the mandate can be downloaded
23
+ attr_accessor :document_url
24
+
25
+ # [MandateCultureCode] ISO code of the language to use for the mandate
26
+ # confirmation page
27
+ attr_accessor :culture
28
+
29
+ # [MandateScheme] Its type, will only be set once the mandate
30
+ # has been submitted
31
+ attr_accessor :scheme
32
+
33
+ # [MandateStatus] Its status
34
+ attr_accessor :status
35
+
36
+ # [String] Its result code
37
+ attr_accessor :result_code
38
+
39
+ # [String] Explanation of its result
40
+ attr_accessor :result_message
41
+
42
+ # [MandateExecutionType] Execution type for its creation
43
+ attr_accessor :execution_type
44
+
45
+ # [MandateType] Its type
46
+ attr_accessor :mandate_type
47
+
48
+ # [String] Its banking reference
49
+ attr_accessor :bank_reference
50
+ end
51
+ end