adyen-ruby-api-library 6.0.0 → 10.1.2

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 (219) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +1 -1
  3. data/.github/release.yml +18 -0
  4. data/.github/workflows/codeql.yml +37 -0
  5. data/.github/workflows/label_new_issues.yml +15 -0
  6. data/.github/workflows/release.yml +40 -0
  7. data/.github/workflows/ruby.yml +2 -2
  8. data/.github/workflows/rubygems_release.yml +18 -0
  9. data/.github/workflows/stale.yml +26 -0
  10. data/.gitignore +3 -0
  11. data/.rubocop.yml +8 -0
  12. data/CONTRIBUTING.md +1 -1
  13. data/Gemfile +7 -7
  14. data/Makefile +79 -0
  15. data/README.md +158 -20
  16. data/Rakefile +3 -3
  17. data/VERSION +2 -0
  18. data/adyen-ruby-api-library.gemspec +6 -3
  19. data/bin/console +2 -2
  20. data/lib/adyen/client.rb +213 -99
  21. data/lib/adyen/errors.rb +30 -22
  22. data/lib/adyen/hash_with_accessors.rb +12 -7
  23. data/lib/adyen/services/balanceControlService.rb +27 -0
  24. data/lib/adyen/services/balancePlatform/account_holders_api.rb +76 -0
  25. data/lib/adyen/services/balancePlatform/balance_accounts_api.rb +116 -0
  26. data/lib/adyen/services/balancePlatform/bank_account_validation_api.rb +26 -0
  27. data/lib/adyen/services/balancePlatform/card_orders_api.rb +36 -0
  28. data/lib/adyen/services/balancePlatform/grant_accounts_api.rb +26 -0
  29. data/lib/adyen/services/balancePlatform/grant_offers_api.rb +36 -0
  30. data/lib/adyen/services/balancePlatform/manage_card_pin_api.rb +46 -0
  31. data/lib/adyen/services/balancePlatform/manage_sca_devices_api.rb +56 -0
  32. data/lib/adyen/services/balancePlatform/network_tokens_api.rb +36 -0
  33. data/lib/adyen/services/balancePlatform/payment_instrument_groups_api.rb +46 -0
  34. data/lib/adyen/services/balancePlatform/payment_instruments_api.rb +86 -0
  35. data/lib/adyen/services/balancePlatform/platform_api.rb +46 -0
  36. data/lib/adyen/services/balancePlatform/transaction_rules_api.rb +56 -0
  37. data/lib/adyen/services/balancePlatform/transfer_routes_api.rb +26 -0
  38. data/lib/adyen/services/balancePlatform.rb +89 -0
  39. data/lib/adyen/services/binLookup.rb +37 -0
  40. data/lib/adyen/services/checkout/donations_api.rb +36 -0
  41. data/lib/adyen/services/checkout/modifications_api.rb +76 -0
  42. data/lib/adyen/services/checkout/orders_api.rb +46 -0
  43. data/lib/adyen/services/checkout/payment_links_api.rb +46 -0
  44. data/lib/adyen/services/checkout/payments_api.rb +76 -0
  45. data/lib/adyen/services/checkout/recurring_api.rb +46 -0
  46. data/lib/adyen/services/checkout/utility_api.rb +48 -0
  47. data/lib/adyen/services/checkout.rb +29 -108
  48. data/lib/adyen/services/dataProtection.rb +27 -0
  49. data/lib/adyen/services/disputes.rb +67 -0
  50. data/lib/adyen/services/legalEntityManagement/business_lines_api.rb +56 -0
  51. data/lib/adyen/services/legalEntityManagement/documents_api.rb +56 -0
  52. data/lib/adyen/services/legalEntityManagement/hosted_onboarding_api.rb +46 -0
  53. data/lib/adyen/services/legalEntityManagement/legal_entities_api.rb +76 -0
  54. data/lib/adyen/services/legalEntityManagement/pci_questionnaires_api.rb +66 -0
  55. data/lib/adyen/services/legalEntityManagement/tax_e_delivery_consent_api.rb +36 -0
  56. data/lib/adyen/services/legalEntityManagement/terms_of_service_api.rb +66 -0
  57. data/lib/adyen/services/legalEntityManagement/transfer_instruments_api.rb +56 -0
  58. data/lib/adyen/services/legalEntityManagement.rb +59 -0
  59. data/lib/adyen/services/management/account_company_level_api.rb +46 -0
  60. data/lib/adyen/services/management/account_merchant_level_api.rb +56 -0
  61. data/lib/adyen/services/management/account_store_level_api.rb +96 -0
  62. data/lib/adyen/services/management/allowed_origins_company_level_api.rb +56 -0
  63. data/lib/adyen/services/management/allowed_origins_merchant_level_api.rb +56 -0
  64. data/lib/adyen/services/management/android_files_company_level_api.rb +76 -0
  65. data/lib/adyen/services/management/api_credentials_company_level_api.rb +56 -0
  66. data/lib/adyen/services/management/api_credentials_merchant_level_api.rb +56 -0
  67. data/lib/adyen/services/management/api_key_company_level_api.rb +26 -0
  68. data/lib/adyen/services/management/api_key_merchant_level_api.rb +26 -0
  69. data/lib/adyen/services/management/client_key_company_level_api.rb +26 -0
  70. data/lib/adyen/services/management/client_key_merchant_level_api.rb +26 -0
  71. data/lib/adyen/services/management/my_api_credential_api.rb +76 -0
  72. data/lib/adyen/services/management/payment_methods_merchant_level_api.rb +76 -0
  73. data/lib/adyen/services/management/payout_settings_merchant_level_api.rb +66 -0
  74. data/lib/adyen/services/management/split_configuration_merchant_level_api.rb +106 -0
  75. data/lib/adyen/services/management/terminal_actions_company_level_api.rb +36 -0
  76. data/lib/adyen/services/management/terminal_actions_terminal_level_api.rb +26 -0
  77. data/lib/adyen/services/management/terminal_orders_company_level_api.rb +116 -0
  78. data/lib/adyen/services/management/terminal_orders_merchant_level_api.rb +116 -0
  79. data/lib/adyen/services/management/terminal_settings_company_level_api.rb +56 -0
  80. data/lib/adyen/services/management/terminal_settings_merchant_level_api.rb +56 -0
  81. data/lib/adyen/services/management/terminal_settings_store_level_api.rb +96 -0
  82. data/lib/adyen/services/management/terminal_settings_terminal_level_api.rb +56 -0
  83. data/lib/adyen/services/management/terminals_terminal_level_api.rb +36 -0
  84. data/lib/adyen/services/management/users_company_level_api.rb +56 -0
  85. data/lib/adyen/services/management/users_merchant_level_api.rb +56 -0
  86. data/lib/adyen/services/management/webhooks_company_level_api.rb +86 -0
  87. data/lib/adyen/services/management/webhooks_merchant_level_api.rb +86 -0
  88. data/lib/adyen/services/management.rb +164 -0
  89. data/lib/adyen/services/marketpay.rb +42 -36
  90. data/lib/adyen/services/payment.rb +149 -0
  91. data/lib/adyen/services/paymentsApp.rb +67 -0
  92. data/lib/adyen/services/payout/initialization_api.rb +46 -0
  93. data/lib/adyen/services/payout/instant_payouts_api.rb +26 -0
  94. data/lib/adyen/services/payout/reviewing_api.rb +36 -0
  95. data/lib/adyen/services/payout.rb +34 -0
  96. data/lib/adyen/services/posMobile.rb +27 -0
  97. data/lib/adyen/services/posTerminalManagement.rb +82 -0
  98. data/lib/adyen/services/recurring.rb +70 -13
  99. data/lib/adyen/services/service.rb +8 -2
  100. data/lib/adyen/services/storedValue.rb +77 -0
  101. data/lib/adyen/services/terminalCloudAPI.rb +38 -0
  102. data/lib/adyen/services/transfers/capital_api.rb +55 -0
  103. data/lib/adyen/services/transfers/transactions_api.rb +36 -0
  104. data/lib/adyen/services/transfers/transfers_api.rb +76 -0
  105. data/lib/adyen/services/transfers.rb +34 -0
  106. data/lib/adyen/utils/hmac_validator.rb +52 -22
  107. data/lib/adyen/version.rb +2 -2
  108. data/lib/adyen-ruby-api-library.rb +23 -15
  109. data/renovate.json +3 -3
  110. data/spec/account_spec.rb +20 -20
  111. data/spec/balance_control_spec.rb +43 -0
  112. data/spec/balance_platform_spec.rb +129 -0
  113. data/spec/bin_lookup_spec.rb +69 -11
  114. data/spec/checkout-oauth_spec.rb +588 -0
  115. data/spec/checkout_spec.rb +591 -314
  116. data/spec/client_spec.rb +240 -45
  117. data/spec/data_protection_spec.rb +4 -4
  118. data/spec/disputes_spec.rb +45 -0
  119. data/spec/errors_spec.rb +44 -15
  120. data/spec/fund_spec.rb +10 -10
  121. data/spec/hash_with_accessors_spec.rb +18 -8
  122. data/spec/hop_spec.rb +4 -4
  123. data/spec/lem_spec.rb +63 -0
  124. data/spec/management-oauth_spec.rb +62 -0
  125. data/spec/management_spec.rb +66 -0
  126. data/spec/mocks/requests/BalanceControl/balance_transfer.json +10 -0
  127. data/spec/mocks/requests/BalancePlatform/create_account_holder.json +5 -0
  128. data/spec/mocks/requests/BalancePlatform/update_account_holder.json +10 -0
  129. data/spec/mocks/requests/Checkout/amount_updates.json +22 -0
  130. data/spec/mocks/requests/Checkout/apple_pay_sessions.json +5 -0
  131. data/spec/mocks/requests/Checkout/capture.json +34 -0
  132. data/spec/mocks/requests/Checkout/generic_cancel.json +5 -0
  133. data/spec/mocks/requests/Checkout/modifications_request.json +0 -0
  134. data/spec/mocks/requests/Checkout/psp_cancel.json +4 -0
  135. data/spec/mocks/requests/Checkout/refund.json +34 -0
  136. data/spec/mocks/requests/DisputesService/retrieve_applicable_defense_reasons.json +4 -0
  137. data/spec/mocks/requests/LegalEntityManagement/create_business_line.json +15 -0
  138. data/spec/mocks/requests/Management/create_store.json +15 -0
  139. data/spec/mocks/requests/Recurring/create_permit.json +6 -0
  140. data/spec/mocks/requests/StoredValue/issue_giftcard.json +12 -0
  141. data/spec/mocks/requests/TerminalCloudAPI/connected_terminals.json +3 -0
  142. data/spec/mocks/requests/TerminalCloudAPI/sync_payment.json +29 -0
  143. data/spec/mocks/requests/Transfers/get_transactions.json +82 -0
  144. data/spec/mocks/requests/Transfers/make_transfer.json +32 -0
  145. data/spec/mocks/responses/BalanceControl/balance_transfer.json +14 -0
  146. data/spec/mocks/responses/BalancePlatform/create_account_holder.json +41 -0
  147. data/spec/mocks/responses/BalancePlatform/get_balance_account.json +15 -0
  148. data/spec/mocks/responses/BalancePlatform/update_account_holder.json +16 -0
  149. data/spec/mocks/responses/Checkout/amount_updates.json +24 -0
  150. data/spec/mocks/responses/Checkout/apple_pay_sessions.json +3 -0
  151. data/spec/mocks/responses/Checkout/capture.json +37 -0
  152. data/spec/mocks/responses/Checkout/generic_cancel.json +7 -0
  153. data/spec/mocks/responses/Checkout/modifications.json +0 -0
  154. data/spec/mocks/responses/Checkout/psp_cancel.json +7 -0
  155. data/spec/mocks/responses/Checkout/refund.json +37 -0
  156. data/spec/mocks/responses/Checkout/stored_payment_methods.json +1 -0
  157. data/spec/mocks/responses/DisputesService/retrieve_applicable_defense_reasons.json +71 -0
  158. data/spec/mocks/responses/LegalEntityManagement/create_business_line.json +17 -0
  159. data/spec/mocks/responses/Management/create_store.json +23 -0
  160. data/spec/mocks/responses/Management/get_companies.json +42 -0
  161. data/spec/mocks/responses/Recurring/create_permit.json +4 -0
  162. data/spec/mocks/responses/StoredValue/issue_giftcard.json +13 -0
  163. data/spec/mocks/responses/TerminalCloudAPI/connected_terminals.json +5 -0
  164. data/spec/mocks/responses/TerminalCloudAPI/sync_payment.json +18 -0
  165. data/spec/mocks/responses/Transfers/get_transactions.json +82 -0
  166. data/spec/mocks/responses/Transfers/make_transfer.json +36 -0
  167. data/spec/mocks/responses/Webhooks/backslash_webhook.json +41 -0
  168. data/spec/mocks/responses/Webhooks/colon_webhook.json +41 -0
  169. data/spec/mocks/responses/Webhooks/forwardslash_webhook.json +41 -0
  170. data/spec/mocks/responses/Webhooks/mixed_webhook.json +41 -0
  171. data/spec/notification_spec.rb +9 -9
  172. data/spec/payments_spec.rb +39 -22
  173. data/spec/payouts_spec.rb +39 -15
  174. data/spec/pos_terminal_management_spec.rb +44 -0
  175. data/spec/recurring_spec.rb +8 -8
  176. data/spec/service_spec.rb +4 -0
  177. data/spec/spec_helper.rb +42 -46
  178. data/spec/stored_value_spec.rb +44 -0
  179. data/spec/terminal_cloud_api_spec.rb +91 -0
  180. data/spec/transfers_spec.rb +64 -0
  181. data/spec/utils/hmac_validator_spec.rb +53 -23
  182. data/templates/api-single.mustache +32 -0
  183. data/templates/api-small.mustache +39 -0
  184. data/templates/api.mustache +38 -0
  185. data/templates/config.yaml +10 -0
  186. metadata +160 -47
  187. data/.github/dependabot.yml +0 -8
  188. data/docs/checkout.html +0 -128
  189. data/docs/index.html +0 -50
  190. data/docs/install-library.html +0 -61
  191. data/docs/javascripts/prism.js +0 -5
  192. data/docs/javascripts/scale.fix.js +0 -17
  193. data/docs/marketpay.html +0 -171
  194. data/docs/params.json +0 -1
  195. data/docs/payment.html +0 -106
  196. data/docs/payout.html +0 -135
  197. data/docs/recurring.html +0 -113
  198. data/docs/stylesheets/github-light.css +0 -115
  199. data/docs/stylesheets/prism.css +0 -140
  200. data/docs/stylesheets/styles.css +0 -324
  201. data/docs/using-library.html +0 -67
  202. data/lib/adyen/services/bin_lookup.rb +0 -18
  203. data/lib/adyen/services/data_protection.rb +0 -17
  204. data/lib/adyen/services/dispute.rb +0 -20
  205. data/lib/adyen/services/payments.rb +0 -34
  206. data/lib/adyen/services/payouts.rb +0 -22
  207. data/lib/adyen/services/postfmapi.rb +0 -19
  208. data/spec/dispute_spec.rb +0 -17
  209. data/spec/mocks/requests/DisputeService/defend_dispute.json +0 -5
  210. data/spec/mocks/requests/DisputeService/delete_dispute_defense_document.json +0 -5
  211. data/spec/mocks/requests/DisputeService/retrieve_applicable_defense_reasons.json +0 -4
  212. data/spec/mocks/requests/DisputeService/supply_defense_document.json +0 -11
  213. data/spec/mocks/requests/Recurring/store_token.json +0 -15
  214. data/spec/mocks/responses/DisputeService/defend_dispute.json +0 -5
  215. data/spec/mocks/responses/DisputeService/delete_dispute_defense_document.json +0 -5
  216. data/spec/mocks/responses/DisputeService/retrieve_applicable_defense_reasons.json +0 -28
  217. data/spec/mocks/responses/DisputeService/supply_defense_document.json +0 -5
  218. data/spec/mocks/responses/Recurring/store_token.json +0 -7
  219. data/spec/postfmapi_spec.rb +0 -16
@@ -0,0 +1,37 @@
1
+ {
2
+ "amount": {
3
+ "currency": "str",
4
+ "value": 0
5
+ },
6
+ "lineItems": [
7
+ {
8
+ "amountExcludingTax": 0,
9
+ "amountIncludingTax": 0,
10
+ "description": "string",
11
+ "id": "string",
12
+ "imageUrl": "string",
13
+ "itemCategory": "string",
14
+ "productUrl": "string",
15
+ "quantity": 0,
16
+ "taxAmount": 0,
17
+ "taxPercentage": 0
18
+ }
19
+ ],
20
+ "merchantAccount": "TestMerchant",
21
+ "paymentPspReference": "123456789",
22
+ "pspReference": "12345",
23
+ "reference": "123456789",
24
+ "splits": [
25
+ {
26
+ "account": "string",
27
+ "amount": {
28
+ "currency": "str",
29
+ "value": 0
30
+ },
31
+ "description": "string",
32
+ "reference": "string",
33
+ "type": "BalanceAccount"
34
+ }
35
+ ],
36
+ "status": "received"
37
+ }
@@ -0,0 +1 @@
1
+ {"merchantAccount":"TestMerchantAccount", "shopperReference":"test-1234"}
@@ -0,0 +1,71 @@
1
+ {
2
+ "defenseReasons": [
3
+ {
4
+ "defenseDocumentTypes": [
5
+ {
6
+ "available": false,
7
+ "defenseDocumentTypeCode": "TIDorInvoice",
8
+ "requirementLevel": "Optional"
9
+ },
10
+ {
11
+ "available": false,
12
+ "defenseDocumentTypeCode": "GoodsNotReturned",
13
+ "requirementLevel": "Required"
14
+ }
15
+ ],
16
+ "defenseReasonCode": "GoodsNotReturned",
17
+ "satisfied": false
18
+ },
19
+ {
20
+ "defenseDocumentTypes": [
21
+ {
22
+ "available": false,
23
+ "defenseDocumentTypeCode": "TIDorInvoice",
24
+ "requirementLevel": "Optional"
25
+ },
26
+ {
27
+ "available": false,
28
+ "defenseDocumentTypeCode": "GoodsRepairedOrReplaced",
29
+ "requirementLevel": "Required"
30
+ }
31
+ ],
32
+ "defenseReasonCode": "GoodsRepairedOrReplaced",
33
+ "satisfied": false
34
+ },
35
+ {
36
+ "defenseDocumentTypes": [
37
+ {
38
+ "available": false,
39
+ "defenseDocumentTypeCode": "GoodsWereAsDescribed",
40
+ "requirementLevel": "Required"
41
+ },
42
+ {
43
+ "available": false,
44
+ "defenseDocumentTypeCode": "TIDorInvoice",
45
+ "requirementLevel": "Required"
46
+ }
47
+ ],
48
+ "defenseReasonCode": "GoodsWereAsDescribed",
49
+ "satisfied": false
50
+ },
51
+ {
52
+ "defenseDocumentTypes": [
53
+ {
54
+ "available": false,
55
+ "defenseDocumentTypeCode": "TIDorInvoice",
56
+ "requirementLevel": "Optional"
57
+ },
58
+ {
59
+ "available": false,
60
+ "defenseDocumentTypeCode": "DefenseMaterial",
61
+ "requirementLevel": "Required"
62
+ }
63
+ ],
64
+ "defenseReasonCode": "SupplyDefenseMaterial",
65
+ "satisfied": false
66
+ }
67
+ ],
68
+ "disputeServiceResult": {
69
+ "success": true
70
+ }
71
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "industryCode": "4531",
3
+ "legalEntityId": "YOUR_LEGAL_ENTITY",
4
+ "service": "banking",
5
+ "sourceOfFunds": {
6
+ "adyenProcessedFunds": false,
7
+ "description": "Funds from my flower shop business",
8
+ "type": "business"
9
+ },
10
+ "webData": [
11
+ {
12
+ "webAddress": "https://www.adyen.com",
13
+ "webAddressId": "SE322KH223222N5HN4HP54PZC"
14
+ }
15
+ ],
16
+ "id": "SE322KH223222N5HN4HP54PXD"
17
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "id": "YOUR_STORE_ID",
3
+ "address": {
4
+ "country": "US",
5
+ "line1": "200 Main Street",
6
+ "line2": "Building 5A",
7
+ "line3": "Suite 3",
8
+ "city": "Springfield",
9
+ "stateOrProvince": "NY",
10
+ "postalCode": "20250"
11
+ },
12
+ "description": "City centre store",
13
+ "merchantId": "YOUR_MERCHANT_ACCOUNT_ID",
14
+ "shopperStatement": "Springfield Shop",
15
+ "phoneNumber": "1813702551707653",
16
+ "reference": "Spring_store_2",
17
+ "status": "active",
18
+ "_links": {
19
+ "self": {
20
+ "href": "https://management-test.adyen.com/v1/stores/YOUR_STORE_ID"
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "_links": {
3
+ "first": {
4
+ "href": "https://management-test.adyen.com/v1/companies?pageNumber=1&pageSize=10"
5
+ },
6
+ "last": {
7
+ "href": "https://management-test.adyen.com/v1/companies?pageNumber=1&pageSize=10"
8
+ },
9
+ "self": {
10
+ "href": "https://management-test.adyen.com/v1/companies?pageNumber=1&pageSize=10"
11
+ }
12
+ },
13
+ "itemsTotal": 1,
14
+ "pagesTotal": 1,
15
+ "data": [
16
+ {
17
+ "id": "YOUR_COMPANY_ACCOUNT",
18
+ "name": "YOUR_COMPANY_NAME",
19
+ "status": "Active",
20
+ "dataCenters": [
21
+ {
22
+ "name": "default",
23
+ "livePrefix": ""
24
+ }
25
+ ],
26
+ "_links": {
27
+ "self": {
28
+ "href": "https://management-test.adyen.com/v1/companies/YOUR_COMPANY_ACCOUNT"
29
+ },
30
+ "apiCredentials": {
31
+ "href": "https://management-test.adyen.com/v1/companies/YOUR_COMPANY_ACCOUNT/apiCredentials"
32
+ },
33
+ "users": {
34
+ "href": "https://management-test.adyen.com/v1/companies/YOUR_COMPANY_ACCOUNT/users"
35
+ },
36
+ "webhooks": {
37
+ "href": "https://management-test.adyen.com/v1/companies/YOUR_COMPANY_ACCOUNT/webhooks"
38
+ }
39
+ }
40
+ }
41
+ ]
42
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "pspReference": "8815260599791117",
3
+ "permitResultList": [{"yadayada": "yadayada"}]
4
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "currentBalance": {
3
+ "currency": "EUR",
4
+ "value": 1000
5
+ },
6
+ "pspReference": "851564651069192J",
7
+ "resultCode": "Success",
8
+ "paymentMethod": {
9
+ "number": "7219627091701347",
10
+ "securityCode": "0140",
11
+ "type": "givex"
12
+ }
13
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "uniqueTerminalIds": [
3
+ "V400m-1234123412"
4
+ ]
5
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "SaleToPOIResponse":{
3
+ "MessageHeader":{},
4
+ "PaymentResponse":{
5
+ "POIData":{
6
+ "POITransactionID":{
7
+ "TransactionID": "oLkO0012498220087000.KHQC5N7G84BLNK43"
8
+ }
9
+ },
10
+ "Response":{
11
+ "Result":"Success",
12
+ "AdditionalResponse":"...shopperEmail=shoppersemail%40address.com..."
13
+ }
14
+ },
15
+ "PaymentReceipt":{}
16
+ }
17
+ }
18
+
@@ -0,0 +1,82 @@
1
+ {
2
+ "data": [
3
+ {
4
+ "accountHolderId": "AHA1B2C3D4E5F6G7H8I9J0",
5
+ "amount": {
6
+ "currency": "EUR",
7
+ "value": -9
8
+ },
9
+ "balanceAccountId": "BAB8B2C3D4E5F6G7H8D9J6GD4",
10
+ "balancePlatform": "YOUR_BALANCE_PLATFORM",
11
+ "bookingDate": "2022-03-11T11:21:24+01:00",
12
+ "category": "internal",
13
+ "counterparty": {
14
+ "balanceAccountId": "BA00000000000000000000001"
15
+ },
16
+ "createdAt": "2022-03-11T11:21:24+01:00",
17
+ "id": "1VVF0D5U66PIUIVP",
18
+ "instructedAmount": {
19
+ "currency": "EUR",
20
+ "value": -9
21
+ },
22
+ "reference": "REFERENCE_46e8c40e",
23
+ "status": "booked",
24
+ "transferId": "1VVF0D5U66PIUIVP",
25
+ "type": "fee",
26
+ "valueDate": "2022-03-11T11:21:24+01:00"
27
+ },
28
+ {
29
+ "accountHolderId": "AHA1B2C3D4E5F6G7H8I9J0",
30
+ "amount": {
31
+ "currency": "EUR",
32
+ "value": -46
33
+ },
34
+ "balanceAccountId": "BAB8B2C3D4E5F6G7H8D9J6GD4",
35
+ "balancePlatform": "YOUR_BALANCE_PLATFORM",
36
+ "bookingDate": "2022-03-12T14:22:52+01:00",
37
+ "category": "internal",
38
+ "counterparty": {
39
+ "balanceAccountId": "BA00000000000000000000001"
40
+ },
41
+ "createdAt": "2022-03-12T14:22:52+01:00",
42
+ "id": "1WEPGD5U6MS1CFK3",
43
+ "instructedAmount": {
44
+ "currency": "EUR",
45
+ "value": -46
46
+ },
47
+ "reference": "YOUR_REFERENCE",
48
+ "status": "booked",
49
+ "transferId": "1WEPGD5U6MS1CFK3",
50
+ "type": "fee",
51
+ "valueDate": "2022-03-12T14:22:52+01:00"
52
+ },
53
+ {
54
+ "accountHolderId": "AHA1B2C3D4E5F6G7H8I9J0",
55
+ "amount": {
56
+ "currency": "EUR",
57
+ "value": -8
58
+ },
59
+ "balanceAccountId": "BAB8B2C3D4E5F6G7H8D9J6GD4",
60
+ "balancePlatform": "YOUR_BALANCE_PLATFORM",
61
+ "bookingDate": "2022-03-14T21:00:48+01:00",
62
+ "createdAt": "2022-03-14T15:00:00+01:00",
63
+ "description": "YOUR_DESCRIPTION_2",
64
+ "id": "2QP32A5U7IWC5WKG",
65
+ "counterparty": {
66
+ "balanceAccountId": "BA00000000000000000000001"
67
+ },
68
+ "reference": "REFERENCE_46e8c40e",
69
+ "instructedAmount": {
70
+ "currency": "EUR",
71
+ "value": -8
72
+ },
73
+ "status": "booked",
74
+ "valueDate": "2022-03-14T21:00:48+01:00"
75
+ }
76
+ ],
77
+ "_links": {
78
+ "next": {
79
+ "href": "https://balanceplatform-api-test.adyen.com/btl/v2/transactions?balancePlatform=Bastronaut&createdUntil=2022-03-21T00%3A00%3A00Z&createdSince=2022-03-11T00%3A00%3A00Z&limit=3&cursor=S2B-TSAjOkIrYlIlbjdqe0RreHRyM32lKRSxubXBHRkhHL2E32XitQQz5SfzpucD5HbHwpM1p6NDR1eXVQLFF6MmY33J32sobDxQYT90MHIud1hwLnd6JitcX32xJ"
80
+ }
81
+ }
82
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "id": "1W1UG35U8A9J5ZLG",
3
+ "amount": {
4
+ "value": 110000,
5
+ "currency": "EUR"
6
+ },
7
+ "balanceAccountId": "BAB8B2C3D4E5F6G7H8D9J6GD4",
8
+ "category": "bank",
9
+ "counterparty": {
10
+ "bankAccount": {
11
+ "accountHolder": {
12
+ "fullName": "A. Klaassen",
13
+ "address": {
14
+ "city": "San Francisco",
15
+ "country": "US",
16
+ "postalCode": "94678",
17
+ "stateOrProvince": "CA",
18
+ "street": "Brannan Street",
19
+ "street2": "274"
20
+ }
21
+ },
22
+ "accountIdentification": {
23
+ "type": "numberAndBic",
24
+ "accountNumber": "123456789",
25
+ "bic": "BOFAUS3NXXX"
26
+ }
27
+ },
28
+ "priority": "crossBorder",
29
+ "referenceForBeneficiary": "Your-reference-sent-to-the-beneficiary",
30
+ "reference": "Your internal reference for the transfer",
31
+ "description": "Your description for the transfer",
32
+ "direction": "outgoing",
33
+ "reason": "approved",
34
+ "status": "authorised"
35
+ }
36
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "additionalData": {
3
+ "acquirerCode": "TestPmmAcquirer",
4
+ "acquirerReference": "DZMKWLXW6N6",
5
+ "authCode": "076181",
6
+ "avsResult": "5 No AVS data provided",
7
+ "avsResultRaw": "5",
8
+ "cardSummary": "1111",
9
+ "checkout.cardAddedBrand": "visa",
10
+ "cvcResult": "1 Matches",
11
+ "cvcResultRaw": "M",
12
+ "expiryDate": "03/2030",
13
+ "hmacSignature": "nIgT81gaB5oJpn2jPXupDq68iRo2wUlBsuYjtYfwKqo=",
14
+ "paymentMethod": "visa",
15
+ "refusalReasonRaw": "AUTHORISED",
16
+ "retry.attempt1.acquirer": "TestPmmAcquirer",
17
+ "retry.attempt1.acquirerAccount": "TestPmmAcquirerAccount",
18
+ "retry.attempt1.avsResultRaw": "5",
19
+ "retry.attempt1.rawResponse": "AUTHORISED",
20
+ "retry.attempt1.responseCode": "Approved",
21
+ "retry.attempt1.scaExemptionRequested": "lowValue",
22
+ "scaExemptionRequested": "lowValue"
23
+ },
24
+ "amount": {
25
+ "currency": "EUR",
26
+ "value": 1000
27
+ },
28
+ "eventCode": "AUTHORISATION",
29
+ "eventDate": "2023-01-09T16:27:29+01:00",
30
+ "merchantAccountCode": "AntoniStroinski",
31
+ "merchantReference": "\\\\slashes are fun",
32
+ "operations": [
33
+ "CANCEL",
34
+ "CAPTURE",
35
+ "REFUND"
36
+ ],
37
+ "paymentMethod": "visa",
38
+ "pspReference": "T7FD4VM4D3RZNN82",
39
+ "reason": "076181:1111:03/2030",
40
+ "success": "true"
41
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "additionalData": {
3
+ "acquirerCode": "TestPmmAcquirer",
4
+ "acquirerReference": "8NQH5BNF58M",
5
+ "authCode": "039404",
6
+ "avsResult": "5 No AVS data provided",
7
+ "avsResultRaw": "5",
8
+ "cardSummary": "1111",
9
+ "checkout.cardAddedBrand": "visa",
10
+ "cvcResult": "1 Matches",
11
+ "cvcResultRaw": "M",
12
+ "expiryDate": "03/2030",
13
+ "hmacSignature": "2EQYm7YJpKO4EtHSPu55SQTyWf8dkW5u2nD1tJFpViA=",
14
+ "paymentMethod": "visa",
15
+ "refusalReasonRaw": "AUTHORISED",
16
+ "retry.attempt1.acquirer": "TestPmmAcquirer",
17
+ "retry.attempt1.acquirerAccount": "TestPmmAcquirerAccount",
18
+ "retry.attempt1.avsResultRaw": "5",
19
+ "retry.attempt1.rawResponse": "AUTHORISED",
20
+ "retry.attempt1.responseCode": "Approved",
21
+ "retry.attempt1.scaExemptionRequested": "lowValue",
22
+ "scaExemptionRequested": "lowValue"
23
+ },
24
+ "amount": {
25
+ "currency": "EUR",
26
+ "value": 1000
27
+ },
28
+ "eventCode": "AUTHORISATION",
29
+ "eventDate": "2023-01-10T13:40:54+01:00",
30
+ "merchantAccountCode": "AntoniStroinski",
31
+ "merchantReference": ":slashes are fun",
32
+ "operations": [
33
+ "CANCEL",
34
+ "CAPTURE",
35
+ "REFUND"
36
+ ],
37
+ "paymentMethod": "visa",
38
+ "pspReference": "M8NB66SBZSGLNK82",
39
+ "reason": "039404:1111:03/2030",
40
+ "success": "true"
41
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "amount": {
3
+ "value": 1000,
4
+ "currency": "EUR"
5
+ },
6
+ "reason": "087330:1111:03/2030",
7
+ "success": "true",
8
+ "eventCode": "AUTHORISATION",
9
+ "eventDate": "2023-01-10T13:37:30+01:00",
10
+ "operations": [
11
+ "CANCEL",
12
+ "CAPTURE",
13
+ "REFUND"
14
+ ],
15
+ "pspReference": "X3GWNS6KJ8NKGK82",
16
+ "paymentMethod": "visa",
17
+ "additionalData": {
18
+ "authCode": "087330",
19
+ "avsResult": "5 No AVS data provided",
20
+ "cvcResult": "1 Matches",
21
+ "expiryDate": "03/2030",
22
+ "cardSummary": "1111",
23
+ "acquirerCode": "TestPmmAcquirer",
24
+ "avsResultRaw": "5",
25
+ "cvcResultRaw": "M",
26
+ "hmacSignature": "9Z0xdpG9Xi3zcmXv14t/BvMBut77O/Xq9D4CQXSDUi4=",
27
+ "paymentMethod": "visa",
28
+ "refusalReasonRaw": "AUTHORISED",
29
+ "acquirerReference": "HHCCC326PH6",
30
+ "scaExemptionRequested": "lowValue",
31
+ "checkout.cardAddedBrand": "visa",
32
+ "retry.attempt1.acquirer": "TestPmmAcquirer",
33
+ "retry.attempt1.rawResponse": "AUTHORISED",
34
+ "retry.attempt1.avsResultRaw": "5",
35
+ "retry.attempt1.responseCode": "Approved",
36
+ "retry.attempt1.acquirerAccount": "TestPmmAcquirerAccount",
37
+ "retry.attempt1.scaExemptionRequested": "lowValue"
38
+ },
39
+ "merchantReference": "//slashes are fun",
40
+ "merchantAccountCode": "AntoniStroinski"
41
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "additionalData": {
3
+ "acquirerCode": "TestPmmAcquirer",
4
+ "acquirerReference": "J8DXDJ2PV6P",
5
+ "authCode": "052095",
6
+ "avsResult": "5 No AVS data provided",
7
+ "avsResultRaw": "5",
8
+ "cardSummary": "1111",
9
+ "checkout.cardAddedBrand": "visa",
10
+ "cvcResult": "1 Matches",
11
+ "cvcResultRaw": "M",
12
+ "expiryDate": "03/2030",
13
+ "hmacSignature": "CZErGCNQaSsxbaQfZaJlakqo7KPP+mIa8a+wx3yNs9A=",
14
+ "paymentMethod": "visa",
15
+ "refusalReasonRaw": "AUTHORISED",
16
+ "retry.attempt1.acquirer": "TestPmmAcquirer",
17
+ "retry.attempt1.acquirerAccount": "TestPmmAcquirerAccount",
18
+ "retry.attempt1.avsResultRaw": "5",
19
+ "retry.attempt1.rawResponse": "AUTHORISED",
20
+ "retry.attempt1.responseCode": "Approved",
21
+ "retry.attempt1.scaExemptionRequested": "lowValue",
22
+ "scaExemptionRequested": "lowValue"
23
+ },
24
+ "amount": {
25
+ "currency": "EUR",
26
+ "value": 1000
27
+ },
28
+ "eventCode": "AUTHORISATION",
29
+ "eventDate": "2023-01-10T13:42:29+01:00",
30
+ "merchantAccountCode": "AntoniStroinski",
31
+ "merchantReference": "\\:/\\/slashes are fun",
32
+ "operations": [
33
+ "CANCEL",
34
+ "CAPTURE",
35
+ "REFUND"
36
+ ],
37
+ "paymentMethod": "visa",
38
+ "pspReference": "ZVWN7D3WSMK2WN82",
39
+ "reason": "052095:1111:03/2030",
40
+ "success": "true"
41
+ }
@@ -1,19 +1,19 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
- RSpec.describe Adyen::Payments, service: "marketpay fund service" do
3
+ RSpec.describe Adyen::Payment, service: 'marketpay fund service' do
4
4
  # client instance to be used in dynamically generated tests
5
5
  client = create_client(:basic)
6
6
 
7
7
  # methods / values to test for
8
8
  # format is defined in spec_helper
9
9
  test_sets = [
10
- ["create_notification_configuration", "pspReference", "8515077331535427"],
11
- ["delete_notification_configurations", "pspReference", "8515078085249090"],
12
- ["get_notification_configuration", "pspReference", "8815078078131377"],
13
- ["get_notification_configuration_list", "pspReference", "8515078078661665"],
14
- ["test_notification_configuration", "pspReference", "8515078087759211"],
15
- ["update_notification_configuration", "pspReference", "8515078084389038"]
10
+ %w[create_notification_configuration pspReference 8515077331535427],
11
+ %w[delete_notification_configurations pspReference 8515078085249090],
12
+ %w[get_notification_configuration pspReference 8815078078131377],
13
+ %w[get_notification_configuration_list pspReference 8515078078661665],
14
+ %w[test_notification_configuration pspReference 8515078087759211],
15
+ %w[update_notification_configuration pspReference 8515078084389038]
16
16
  ]
17
17
 
18
- generate_tests(client, "Notification", test_sets, client.marketpay.notification)
18
+ generate_tests(client, 'Notification', test_sets, client.marketpay.notification)
19
19
  end
@@ -1,26 +1,43 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
+ require 'json'
2
3
 
3
- RSpec.describe Adyen::Payments, service: "payments service" do
4
- # client instance to be used in dynamically generated tests
5
- client = create_client(:basic)
4
+ RSpec.describe Adyen::Payment, service: 'Payment' do
5
+ before(:all) do
6
+ @shared_values = {
7
+ client: create_client(:api_key),
8
+ service: 'Payment'
9
+ }
10
+ end
6
11
 
7
- # methods / values to test for
8
- # format is defined in spec_helper
9
- test_sets = [
10
- ["authorise", "resultCode", "Authorised"],
11
- ["adjust_authorisation", "response", "[adjustAuthorisation-received]"],
12
- ["authorise3d", "resultCode", "Authorised"],
13
- ["authorise3ds2", "resultCode", "ChallengeShopper"],
14
- ["cancel", "response", "[cancel-received]"],
15
- ["cancel_or_refund", "response", "[cancelOrRefund-received]"],
16
- ["capture", "response", "[capture-received]"],
17
- ["refund", "response", "[refund-received]"],
18
- ["donate", "response", "[donation-received]"],
19
- ["get_authentication_result", "threeDS2Result", {"transStatus" => "Y"}],
20
- ["retrieve_3ds2_result", "threeDS2Result", {"transStatus" => "Y"}],
21
- ["technical_cancel", "originalReference", "9914694372990637"],
22
- ["void_pending_refund", "pspReference", "9914694372990637"]
23
- ]
12
+ # must be created manually because every field in the response is an array
13
+ it 'makes an adjust_authorisation POST call' do
14
+ request_body = JSON.parse(json_from_file('mocks/requests/Payment/adjust_authorisation.json'))
24
15
 
25
- generate_tests(client, "Payment", test_sets, client.payments)
16
+ response_body = json_from_file('mocks/responses/Payment/adjust_authorisation.json')
17
+
18
+ url = @shared_values[:client].service_url(@shared_values[:service], 'adjustAuthorisation',
19
+ @shared_values[:client].payment.version)
20
+ WebMock.stub_request(:post, url)
21
+ .with(
22
+ body: request_body,
23
+ headers: {
24
+ 'x-api-key' => @shared_values[:client].api_key
25
+ }
26
+ )
27
+ .to_return(
28
+ body: response_body
29
+ )
30
+
31
+ result = @shared_values[:client].payment.adjust_authorisation(request_body)
32
+ response_hash = result.response
33
+
34
+ expect(result.status)
35
+ .to eq(200)
36
+ expect(response_hash)
37
+ .to eq(JSON.parse(response_body))
38
+ expect(response_hash)
39
+ .to be_a Adyen::HashWithAccessors
40
+ expect(response_hash)
41
+ .to be_a_kind_of Hash
42
+ end
26
43
  end