ibanity 2.3 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +27 -7
- data/ibanity.gemspec +1 -1
- data/lib/ibanity/api/consent.rb +2 -0
- data/lib/ibanity/api/isabel_connect.rb +9 -0
- data/lib/ibanity/api/ponto_connect/payment_request.rb +20 -0
- data/lib/ibanity/api/ponto_connect/pending_transaction.rb +22 -0
- data/lib/ibanity/api/ponto_connect.rb +18 -0
- data/lib/ibanity/api/sandbox/financial_institution_account.rb +9 -24
- data/lib/ibanity/api/sandbox/financial_institution_holding.rb +9 -28
- data/lib/ibanity/api/sandbox/financial_institution_transaction.rb +11 -35
- data/lib/ibanity/api/sandbox/financial_institution_user.rb +11 -12
- data/lib/ibanity/api/webhooks/ponto_connect.rb +11 -0
- data/lib/ibanity/api/webhooks/xs2a.rb +27 -0
- data/lib/ibanity/api/webhooks.rb +3 -0
- data/lib/ibanity/api/xs2a/holding.rb +2 -2
- data/lib/ibanity/api/xs2a/pending_transaction.rb +2 -2
- data/lib/ibanity/api/xs2a/sandbox/financial_institution_account.rb +43 -0
- data/lib/ibanity/api/xs2a/sandbox/financial_institution_holding.rb +47 -0
- data/lib/ibanity/api/xs2a/sandbox/financial_institution_transaction.rb +57 -0
- data/lib/ibanity/api/xs2a/sandbox/financial_institution_user.rb +34 -0
- data/lib/ibanity/api/xs2a/transaction.rb +2 -2
- data/lib/ibanity/api/xs2a/transaction_delete_request.rb +25 -0
- data/lib/ibanity/api/xs2a.rb +23 -0
- data/lib/ibanity/version.rb +1 -1
- data/lib/ibanity/webhook.rb +28 -38
- data/lib/ibanity.rb +10 -54
- data/spec/lib/ibanity/webhook_signature_spec.rb +75 -0
- data/spec/support/fixture.rb +10 -0
- data/spec/support/fixtures/json/webhooks/example_payload.json +1 -0
- data/spec/support/fixtures/signature/webhooks/example_signature.sig +1 -0
- metadata +23 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e092383f84fc0b8c6df811fe2d1af6bc87de9e344eb1ee799b55c15ab67f54d
|
4
|
+
data.tar.gz: ec5240d8803bae7ce90f13fc013855a66ecc20ff9e6178e22782888d5b24bd2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f006d8c7a773864e6430883439aa6c522b40a758464614e7f543ee1c02637b5df3256f5dc88058c4d6ac518829f9113e607c42c99e46baa066479889427a29e
|
7
|
+
data.tar.gz: c533b786a60213eaf6d3735f18bf1beb3a1831fb2053c7e01f434741703b4a6ed6b577063f1cc4bc736056ab08ea7edf400b7601c9db8b27fc27918659415768
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,25 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 2.5
|
4
|
+
|
5
|
+
* [Ponto Connect] Add payment requests
|
6
|
+
* [Ponto Connect] Add PendingTransaction
|
7
|
+
* [Ponto Connect] Add additional webhooks event
|
8
|
+
|
9
|
+
* `Ibanity::Webhooks::PontoConnect::Account::PendingTransactionsCreated`
|
10
|
+
* `Ibanity::Webhooks::PontoConnect::Account::PendingTransactionsUpdated`
|
11
|
+
|
12
|
+
## 2.4
|
13
|
+
|
14
|
+
* New TransactionDeleteRequest service
|
15
|
+
* New Webhooks for Bulk Payment Initiation Request, Payment Initiation Request, and Periodic Payment Initiation Request
|
16
|
+
* Refactor library structure
|
17
|
+
* Move module Ibanty::Sandbox (FinancialInstitutionAccount, FinancialInstitutionHolding, FinancialInstitutionTransaction, FinancialInstitutionUser) to Ibanty::Xs2a::Sandbox
|
18
|
+
|
19
|
+
## 2.3.1
|
20
|
+
|
21
|
+
* Migrate from Jose to JWT gem following incompatibly with OpenSSL 3. Only used in webhooks signature validation.
|
22
|
+
|
3
23
|
## 2.3
|
4
24
|
|
5
25
|
* [Ponto Connect] Add IntegrationAccount
|
@@ -12,13 +32,13 @@
|
|
12
32
|
## 2.2
|
13
33
|
|
14
34
|
* [Ponto Connect] Add additional webhook events
|
15
|
-
* `Ibanity::Webhooks::Account::Reauthorized`
|
16
|
-
* `Ibanity::Webhooks::Integration::AccountAdded`
|
17
|
-
* `Ibanity::Webhooks::Integration::AccountRevoked`
|
18
|
-
* `Ibanity::Webhooks::Integration::Created`
|
19
|
-
* `Ibanity::Webhooks::Integration::Revoked`
|
20
|
-
* `Ibanity::Webhooks::Organization::Blocked`
|
21
|
-
* `Ibanity::Webhooks::Organization::Unblocked`
|
35
|
+
* `Ibanity::Webhooks::PontoConnect::Account::Reauthorized`
|
36
|
+
* `Ibanity::Webhooks::PontoConnect::Integration::AccountAdded`
|
37
|
+
* `Ibanity::Webhooks::PontoConnect::Integration::AccountRevoked`
|
38
|
+
* `Ibanity::Webhooks::PontoConnect::Integration::Created`
|
39
|
+
* `Ibanity::Webhooks::PontoConnect::Integration::Revoked`
|
40
|
+
* `Ibanity::Webhooks::PontoConnect::Organization::Blocked`
|
41
|
+
* `Ibanity::Webhooks::PontoConnect::Organization::Unblocked`
|
22
42
|
|
23
43
|
## 2.1
|
24
44
|
|
data/ibanity.gemspec
CHANGED
@@ -0,0 +1,9 @@
|
|
1
|
+
require_relative "isabel_connect/account"
|
2
|
+
require_relative "isabel_connect/balance"
|
3
|
+
require_relative "isabel_connect/transaction"
|
4
|
+
require_relative "isabel_connect/intraday_transaction"
|
5
|
+
require_relative "isabel_connect/account_report"
|
6
|
+
require_relative "isabel_connect/access_token"
|
7
|
+
require_relative "isabel_connect/refresh_token"
|
8
|
+
require_relative "isabel_connect/token"
|
9
|
+
require_relative "isabel_connect/bulk_payment_initiation_request"
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Ibanity
|
2
|
+
module PontoConnect
|
3
|
+
class PaymentRequest < Ibanity::BaseResource
|
4
|
+
def self.find(access_token:, account_id:, id:)
|
5
|
+
uri = Ibanity.ponto_connect_api_schema["account"]["paymentRequests"].sub("{accountId}", account_id).sub("{paymentRequestId}", id)
|
6
|
+
find_by_uri(uri: uri, customer_access_token: access_token)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.create(account_id:, access_token: nil, **attributes)
|
10
|
+
uri = Ibanity.ponto_connect_api_schema["account"]["paymentRequests"].gsub("{accountId}", account_id).gsub("{paymentRequestId}", "")
|
11
|
+
create_by_uri(uri: uri, resource_type: "payment", attributes: attributes, customer_access_token: access_token)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.delete(id:, account_id:, access_token:)
|
15
|
+
uri = Ibanity.ponto_connect_api_schema["account"]["paymentRequests"].gsub("{accountId}", account_id).gsub("{paymentRequestId}", id)
|
16
|
+
destroy_by_uri(uri: uri, customer_access_token: access_token)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Ibanity
|
2
|
+
module PontoConnect
|
3
|
+
class PendingTransaction < Ibanity::BaseResource
|
4
|
+
def self.list(access_token:, account_id: nil, synchronization_id: nil, **query_params)
|
5
|
+
uri = if synchronization_id
|
6
|
+
Ibanity.ponto_connect_api_schema["synchronization"]["updatedPendingTransactions"]
|
7
|
+
.sub("{synchronizationId}", synchronization_id)
|
8
|
+
else
|
9
|
+
Ibanity.ponto_connect_api_schema["account"]["pendingTransactions"]
|
10
|
+
.sub("{accountId}", account_id)
|
11
|
+
.sub("{pendingTransactionId}", "")
|
12
|
+
end
|
13
|
+
list_by_uri(uri: uri, query_params: query_params, customer_access_token: access_token)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.find(access_token:, account_id:, id:)
|
17
|
+
uri = Ibanity.ponto_connect_api_schema["account"]["pendingTransactions"].sub("{accountId}", account_id).sub("{pendingTransactionId}", id)
|
18
|
+
find_by_uri(uri: uri, customer_access_token: access_token)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative "ponto_connect/token"
|
2
|
+
require_relative "ponto_connect/financial_institution"
|
3
|
+
require_relative "ponto_connect/account"
|
4
|
+
require_relative "ponto_connect/transaction"
|
5
|
+
require_relative "ponto_connect/pending_transaction"
|
6
|
+
require_relative "ponto_connect/synchronization"
|
7
|
+
require_relative "ponto_connect/payment"
|
8
|
+
require_relative "ponto_connect/bulk_payment"
|
9
|
+
require_relative "ponto_connect/payment_request"
|
10
|
+
require_relative "ponto_connect/user_info"
|
11
|
+
require_relative "ponto_connect/usage"
|
12
|
+
require_relative "ponto_connect/integration"
|
13
|
+
require_relative "ponto_connect/sandbox/financial_institution_account"
|
14
|
+
require_relative "ponto_connect/sandbox/financial_institution_transaction"
|
15
|
+
require_relative "ponto_connect/onboarding_details"
|
16
|
+
require_relative "ponto_connect/reauthorization_request"
|
17
|
+
require_relative "ponto_connect/payment_activation_request"
|
18
|
+
require_relative "ponto_connect/integration_account"
|
@@ -1,40 +1,25 @@
|
|
1
1
|
module Ibanity
|
2
2
|
module Sandbox
|
3
|
+
# <b>DEPRECATED:</b> Please use <tt>Ibanity::Xs2a::Sandbox::FinancialInstitutionAccount</tt> instead.
|
3
4
|
class FinancialInstitutionAccount < Ibanity::BaseResource
|
4
5
|
def self.create(financial_institution_user_id:, financial_institution_id:, idempotency_key: nil, **attributes)
|
5
|
-
|
6
|
-
|
7
|
-
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
8
|
-
.gsub("{financialInstitutionAccountId}", "")
|
9
|
-
uri = Ibanity.client.build_uri(path)
|
10
|
-
create_by_uri(uri: uri, resource_type: "financialInstitutionAccount", attributes: attributes, idempotency_key: idempotency_key)
|
6
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionAccount.create` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionAccount.create instead"
|
7
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionAccount.create(financial_institution_user_id: financial_institution_user_id, financial_institution_id: financial_institution_id, idempotency_key: idempotency_key, attributes)
|
11
8
|
end
|
12
9
|
|
13
10
|
def self.list(financial_institution_id:, financial_institution_user_id:, **query_params)
|
14
|
-
|
15
|
-
|
16
|
-
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
17
|
-
.gsub("{financialInstitutionAccountId}", "")
|
18
|
-
uri = Ibanity.client.build_uri(path)
|
19
|
-
list_by_uri(uri: uri, query_params: query_params)
|
11
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionAccount.list` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionAccount.list instead"
|
12
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionAccount.list(financial_institution_id: financial_institution_id, financial_institution_user_id: financial_institution_user_id, query_params)
|
20
13
|
end
|
21
14
|
|
22
15
|
def self.find(id:, financial_institution_user_id:, financial_institution_id:)
|
23
|
-
|
24
|
-
|
25
|
-
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
26
|
-
.gsub("{financialInstitutionAccountId}", id)
|
27
|
-
uri = Ibanity.client.build_uri(path)
|
28
|
-
find_by_uri(uri: uri)
|
16
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionAccount.find` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionAccount.find instead"
|
17
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionAccount.find(id: id, financial_institution_user_id: financial_institution_user_id, financial_institution_id: financial_institution_id)
|
29
18
|
end
|
30
19
|
|
31
20
|
def self.delete(id:, financial_institution_user_id:, financial_institution_id:)
|
32
|
-
|
33
|
-
|
34
|
-
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
35
|
-
.gsub("{financialInstitutionAccountId}", id)
|
36
|
-
uri = Ibanity.client.build_uri(path)
|
37
|
-
destroy_by_uri(uri: uri)
|
21
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionAccount.delete` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionAccount.delete instead"
|
22
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionAccount.delete(id: id, financial_institution_user_id: financial_institution_user_id, financial_institution_id: financial_institution_id)
|
38
23
|
end
|
39
24
|
end
|
40
25
|
end
|
@@ -1,44 +1,25 @@
|
|
1
1
|
module Ibanity
|
2
2
|
module Sandbox
|
3
|
+
# <b>DEPRECATED:</b> Please use <tt>Ibanity::Xs2a::Sandbox::FinancialInstitutionHolding</tt> instead.
|
3
4
|
class FinancialInstitutionHolding < Ibanity::BaseResource
|
4
5
|
def self.create(financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:, idempotency_key: nil, **attributes)
|
5
|
-
|
6
|
-
|
7
|
-
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
8
|
-
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
9
|
-
.gsub("{financialInstitutionHoldingId}", "")
|
10
|
-
uri = Ibanity.client.build_uri(path)
|
11
|
-
create_by_uri(uri: uri, resource_type: "financialInstitutionHolding", attributes: attributes, idempotency_key: idempotency_key)
|
6
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionHolding.create` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionHolding.create instead"
|
7
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionHolding.create(financial_institution_user_id: financial_institution_user_id, financial_institution_id: financial_institution_id, financial_institution_account_id: financial_institution_account_id, idempotency_key: idempotency_key, attributes)
|
12
8
|
end
|
13
9
|
|
14
10
|
def self.list(financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:, **query_params)
|
15
|
-
|
16
|
-
|
17
|
-
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
18
|
-
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
19
|
-
.gsub("{financialInstitutionHoldingId}", "")
|
20
|
-
uri = Ibanity.client.build_uri(path)
|
21
|
-
list_by_uri(uri: uri, query_params: query_params)
|
11
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionHolding.list` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionHolding.list instead"
|
12
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionHolding.list(financial_institution_user_id: financial_institution_user_id, financial_institution_id: financial_institution_id, financial_institution_account_id: financial_institution_account_id, query_params)
|
22
13
|
end
|
23
14
|
|
24
15
|
def self.find(id:, financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:)
|
25
|
-
|
26
|
-
|
27
|
-
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
28
|
-
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
29
|
-
.gsub("{financialInstitutionHoldingId}", id)
|
30
|
-
uri = Ibanity.client.build_uri(path)
|
31
|
-
find_by_uri(uri: uri)
|
16
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionHolding.find` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionHolding.find instead"
|
17
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionHolding.find(id: id, financial_institution_user_id: financial_institution_user_id, financial_institution_id: financial_institution_id, financial_institution_account_id: financial_institution_account_id)
|
32
18
|
end
|
33
19
|
|
34
20
|
def self.delete(id:, financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:)
|
35
|
-
|
36
|
-
|
37
|
-
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
38
|
-
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
39
|
-
.gsub("{financialInstitutionHoldingId}", id)
|
40
|
-
uri = Ibanity.client.build_uri(path)
|
41
|
-
destroy_by_uri(uri: uri)
|
21
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionHolding.delete` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionHolding.delete instead"
|
22
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionHolding.find(id: id, financial_institution_user_id: financial_institution_user_id, financial_institution_id: financial_institution_id, financial_institution_account_id: financial_institution_account_id)
|
42
23
|
end
|
43
24
|
end
|
44
25
|
end
|
@@ -1,54 +1,30 @@
|
|
1
1
|
module Ibanity
|
2
2
|
module Sandbox
|
3
|
+
# <b>DEPRECATED:</b> Please use <tt>Ibanity::Xs2a::Sandbox::FinancialInstitutionTransaction</tt> instead.
|
3
4
|
class FinancialInstitutionTransaction < Ibanity::BaseResource
|
4
5
|
def self.create(financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:, idempotency_key: nil, **attributes)
|
5
|
-
|
6
|
-
|
7
|
-
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
8
|
-
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
9
|
-
.gsub("{financialInstitutionTransactionId}", "")
|
10
|
-
uri = Ibanity.client.build_uri(path)
|
11
|
-
create_by_uri(uri: uri, resource_type: "financialInstitutionTransaction", attributes: attributes, idempotency_key: idempotency_key)
|
6
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionTransaction.create` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionTransaction.create instead"
|
7
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionTransaction.create(financial_institution_user_id: financial_institution_user_id, financial_institution_id: financial_institution_id, financial_institution_account_id: financial_institution_account_id, idempotency_key: idempotency_key, attributes)
|
12
8
|
end
|
13
9
|
|
14
10
|
def self.list(financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:, **query_params)
|
15
|
-
|
16
|
-
|
17
|
-
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
18
|
-
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
19
|
-
.gsub("{financialInstitutionTransactionId}", "")
|
20
|
-
uri = Ibanity.client.build_uri(path)
|
21
|
-
list_by_uri(uri: uri, query_params: query_params)
|
11
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionTransaction.list` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionTransaction.list instead"
|
12
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionTransaction.list(financial_institution_user_id: financial_institution_user_id, financial_institution_id: financial_institution_id, financial_institution_account_id: financial_institution_account_id, query_params)
|
22
13
|
end
|
23
14
|
|
24
15
|
def self.find(id:, financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:)
|
25
|
-
|
26
|
-
|
27
|
-
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
28
|
-
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
29
|
-
.gsub("{financialInstitutionTransactionId}", id)
|
30
|
-
uri = Ibanity.client.build_uri(path)
|
31
|
-
find_by_uri(uri: uri)
|
16
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionTransaction.find` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionTransaction.find instead"
|
17
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionTransaction.find(id: id, financial_institution_user_id: financial_institution_user_id, financial_institution_id: financial_institution_id, financial_institution_account_id: financial_institution_account_id)
|
32
18
|
end
|
33
19
|
|
34
20
|
def self.update(id:, financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:, idempotency_key: nil, **attributes)
|
35
|
-
|
36
|
-
|
37
|
-
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
38
|
-
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
39
|
-
.gsub("{financialInstitutionTransactionId}", id)
|
40
|
-
uri = Ibanity.client.build_uri(path)
|
41
|
-
update_by_uri(uri: uri, resource_type: "financialInstitutionTransaction", attributes: attributes, idempotency_key: idempotency_key)
|
21
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionTransaction.create` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionTransaction.create instead"
|
22
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionTransaction.create(id: id, financial_institution_user_id: financial_institution_user_id, financial_institution_id: financial_institution_id, financial_institution_account_id: financial_institution_account_id, idempotency_key: idempotency_key, attributes)
|
42
23
|
end
|
43
24
|
|
44
25
|
def self.delete(id:, financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:)
|
45
|
-
|
46
|
-
|
47
|
-
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
48
|
-
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
49
|
-
.gsub("{financialInstitutionTransactionId}", id)
|
50
|
-
uri = Ibanity.client.build_uri(path)
|
51
|
-
destroy_by_uri(uri: uri)
|
26
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionTransaction.delete` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionTransaction.delete instead"
|
27
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionTransaction.find(id: id, financial_institution_user_id: financial_institution_user_id, financial_institution_id: financial_institution_id, financial_institution_account_id: financial_institution_account_id)
|
52
28
|
end
|
53
29
|
end
|
54
30
|
end
|
@@ -1,31 +1,30 @@
|
|
1
1
|
module Ibanity
|
2
2
|
module Sandbox
|
3
|
+
# <b>DEPRECATED:</b> Please use <tt>Ibanity::Xs2a::Sandbox::FinancialInstitutionUser</tt> instead.
|
3
4
|
class FinancialInstitutionUser < Ibanity::BaseResource
|
4
5
|
def self.create(idempotency_key: nil, **attributes)
|
5
|
-
|
6
|
-
|
7
|
-
create_by_uri(uri: uri, resource_type: "financialInstitutionUser", attributes: attributes, idempotency_key: idempotency_key)
|
6
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionUser.create` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionUser.create instead"
|
7
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionUser.create(idempotency_key: idempotency_key, attributes)
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.list(**query_params)
|
11
|
-
|
12
|
-
|
11
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionUser.list` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionUser.list instead"
|
12
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionUser.list(query_params)
|
13
13
|
end
|
14
14
|
|
15
15
|
def self.find(id:)
|
16
|
-
|
17
|
-
|
16
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionUser.find` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionUser.find instead"
|
17
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionUser.find(id: id)
|
18
18
|
end
|
19
19
|
|
20
20
|
def self.update(id:, idempotency_key: nil, **attributes)
|
21
|
-
|
22
|
-
|
23
|
-
update_by_uri(uri: uri, resource_type: "financialInstitutionUser", attributes: attributes, idempotency_key: idempotency_key)
|
21
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionUser.update` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionUser.update instead"
|
22
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionUser.find(id: id, idempotency_key: idempotency_key, attributes)
|
24
23
|
end
|
25
24
|
|
26
25
|
def self.delete(id:)
|
27
|
-
|
28
|
-
|
26
|
+
warn "[DEPRECATION] `Ibanity::Sandbox::FinancialInstitutionUser.delete` is deprecated. Please use Ibanity::Xs2a::Sandbox::FinancialInstitutionUser.delete instead"
|
27
|
+
Ibanity::Xs2a::Sandbox::FinancialInstitutionUser.delete(id: id)
|
29
28
|
end
|
30
29
|
end
|
31
30
|
end
|
@@ -19,6 +19,12 @@ module Ibanity
|
|
19
19
|
class TransactionsUpdated < Ibanity::BaseResource
|
20
20
|
end
|
21
21
|
|
22
|
+
class PendingTransactionsCreated < Ibanity::BaseResource
|
23
|
+
end
|
24
|
+
|
25
|
+
class PendingTransactionsUpdated < Ibanity::BaseResource
|
26
|
+
end
|
27
|
+
|
22
28
|
class Reauthorized < Ibanity::BaseResource
|
23
29
|
end
|
24
30
|
end
|
@@ -44,6 +50,11 @@ module Ibanity
|
|
44
50
|
class Unblocked < Ibanity::BaseResource
|
45
51
|
end
|
46
52
|
end
|
53
|
+
|
54
|
+
module PaymentRequest
|
55
|
+
class Closed < Ibanity::BaseResource
|
56
|
+
end
|
57
|
+
end
|
47
58
|
end
|
48
59
|
end
|
49
60
|
end
|
@@ -16,6 +16,9 @@ module Ibanity
|
|
16
16
|
class TransactionsCreated < Ibanity::BaseResource
|
17
17
|
end
|
18
18
|
|
19
|
+
class TransactionsDeleted < Ibanity::BaseResource
|
20
|
+
end
|
21
|
+
|
19
22
|
class TransactionsUpdated < Ibanity::BaseResource
|
20
23
|
end
|
21
24
|
|
@@ -25,6 +28,30 @@ module Ibanity
|
|
25
28
|
class PendingTransactionsUpdated < Ibanity::BaseResource
|
26
29
|
end
|
27
30
|
end
|
31
|
+
|
32
|
+
module BulkPaymentInitiationRequest
|
33
|
+
class AuthorizationCompleted < Ibanity::BaseResource
|
34
|
+
end
|
35
|
+
|
36
|
+
class StatusUpdated < Ibanity::BaseResource
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
module PaymentInitiationRequest
|
41
|
+
class AuthorizationCompleted < Ibanity::BaseResource
|
42
|
+
end
|
43
|
+
|
44
|
+
class StatusUpdated < Ibanity::BaseResource
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
module PeriodicPaymentInitiationRequest
|
49
|
+
class AuthorizationCompleted < Ibanity::BaseResource
|
50
|
+
end
|
51
|
+
|
52
|
+
class StatusUpdated < Ibanity::BaseResource
|
53
|
+
end
|
54
|
+
end
|
28
55
|
end
|
29
56
|
end
|
30
57
|
end
|
@@ -2,7 +2,7 @@ module Ibanity
|
|
2
2
|
module Xs2a
|
3
3
|
class Holding < Ibanity::BaseResource
|
4
4
|
def self.list(financial_institution_id:, account_id:, customer_access_token:, headers: nil, **query_params)
|
5
|
-
uri = Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["holdings"]
|
5
|
+
uri = Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["account"]["holdings"]
|
6
6
|
.sub("{financialInstitutionId}", financial_institution_id)
|
7
7
|
.sub("{accountId}", account_id)
|
8
8
|
.sub("{holdingId}", "")
|
@@ -10,7 +10,7 @@ module Ibanity
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def self.find(id:, financial_institution_id:, account_id:, customer_access_token:)
|
13
|
-
uri = Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["holdings"]
|
13
|
+
uri = Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["account"]["holdings"]
|
14
14
|
.sub("{financialInstitutionId}", financial_institution_id)
|
15
15
|
.sub("{accountId}", account_id)
|
16
16
|
.sub("{holdingId}", id)
|
@@ -6,7 +6,7 @@ module Ibanity
|
|
6
6
|
Ibanity.xs2a_api_schema["customer"]["synchronization"]["updatedPendingTransactions"]
|
7
7
|
.sub("{synchronizationId}", synchronization_id)
|
8
8
|
else
|
9
|
-
Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["pendingTransactions"]
|
9
|
+
Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["account"]["pendingTransactions"]
|
10
10
|
.sub("{financialInstitutionId}", financial_institution_id)
|
11
11
|
.sub("{accountId}", account_id)
|
12
12
|
.sub("{pendingTransactionId}", "")
|
@@ -16,7 +16,7 @@ module Ibanity
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.find(id:, financial_institution_id:, account_id:, customer_access_token:)
|
19
|
-
uri = Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["pendingTransactions"]
|
19
|
+
uri = Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["account"]["pendingTransactions"]
|
20
20
|
.sub("{financialInstitutionId}", financial_institution_id)
|
21
21
|
.sub("{accountId}", account_id)
|
22
22
|
.sub("{pendingTransactionId}", id)
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Ibanity
|
2
|
+
module Xs2a
|
3
|
+
module Sandbox
|
4
|
+
class FinancialInstitutionAccount < Ibanity::BaseResource
|
5
|
+
def self.create(financial_institution_user_id:, financial_institution_id:, idempotency_key: nil, **attributes)
|
6
|
+
path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccounts"]
|
7
|
+
.gsub("{financialInstitutionId}", financial_institution_id)
|
8
|
+
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
9
|
+
.gsub("{financialInstitutionAccountId}", "")
|
10
|
+
uri = Ibanity.client.build_uri(path)
|
11
|
+
create_by_uri(uri: uri, resource_type: "financialInstitutionAccount", attributes: attributes, idempotency_key: idempotency_key)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.list(financial_institution_id:, financial_institution_user_id:, **query_params)
|
15
|
+
path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccounts"]
|
16
|
+
.gsub("{financialInstitutionId}", financial_institution_id)
|
17
|
+
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
18
|
+
.gsub("{financialInstitutionAccountId}", "")
|
19
|
+
uri = Ibanity.client.build_uri(path)
|
20
|
+
list_by_uri(uri: uri, query_params: query_params)
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.find(id:, financial_institution_user_id:, financial_institution_id:)
|
24
|
+
path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccounts"]
|
25
|
+
.gsub("{financialInstitutionId}", financial_institution_id)
|
26
|
+
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
27
|
+
.gsub("{financialInstitutionAccountId}", id)
|
28
|
+
uri = Ibanity.client.build_uri(path)
|
29
|
+
find_by_uri(uri: uri)
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.delete(id:, financial_institution_user_id:, financial_institution_id:)
|
33
|
+
path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccounts"]
|
34
|
+
.gsub("{financialInstitutionId}", financial_institution_id)
|
35
|
+
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
36
|
+
.gsub("{financialInstitutionAccountId}", id)
|
37
|
+
uri = Ibanity.client.build_uri(path)
|
38
|
+
destroy_by_uri(uri: uri)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Ibanity
|
2
|
+
module Xs2a
|
3
|
+
module Sandbox
|
4
|
+
class FinancialInstitutionHolding < Ibanity::BaseResource
|
5
|
+
def self.create(financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:, idempotency_key: nil, **attributes)
|
6
|
+
path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionHoldings"]
|
7
|
+
.gsub("{financialInstitutionId}", financial_institution_id)
|
8
|
+
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
9
|
+
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
10
|
+
.gsub("{financialInstitutionHoldingId}", "")
|
11
|
+
uri = Ibanity.client.build_uri(path)
|
12
|
+
create_by_uri(uri: uri, resource_type: "financialInstitutionHolding", attributes: attributes, idempotency_key: idempotency_key)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.list(financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:, **query_params)
|
16
|
+
path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionHoldings"]
|
17
|
+
.gsub("{financialInstitutionId}", financial_institution_id)
|
18
|
+
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
19
|
+
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
20
|
+
.gsub("{financialInstitutionHoldingId}", "")
|
21
|
+
uri = Ibanity.client.build_uri(path)
|
22
|
+
list_by_uri(uri: uri, query_params: query_params)
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.find(id:, financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:)
|
26
|
+
path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionHoldings"]
|
27
|
+
.gsub("{financialInstitutionId}", financial_institution_id)
|
28
|
+
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
29
|
+
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
30
|
+
.gsub("{financialInstitutionHoldingId}", id)
|
31
|
+
uri = Ibanity.client.build_uri(path)
|
32
|
+
find_by_uri(uri: uri)
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.delete(id:, financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:)
|
36
|
+
path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionHoldings"]
|
37
|
+
.gsub("{financialInstitutionId}", financial_institution_id)
|
38
|
+
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
39
|
+
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
40
|
+
.gsub("{financialInstitutionHoldingId}", id)
|
41
|
+
uri = Ibanity.client.build_uri(path)
|
42
|
+
destroy_by_uri(uri: uri)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module Ibanity
|
2
|
+
module Xs2a
|
3
|
+
module Sandbox
|
4
|
+
class FinancialInstitutionTransaction < Ibanity::BaseResource
|
5
|
+
def self.create(financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:, idempotency_key: nil, **attributes)
|
6
|
+
path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionTransactions"]
|
7
|
+
.gsub("{financialInstitutionId}", financial_institution_id)
|
8
|
+
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
9
|
+
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
10
|
+
.gsub("{financialInstitutionTransactionId}", "")
|
11
|
+
uri = Ibanity.client.build_uri(path)
|
12
|
+
create_by_uri(uri: uri, resource_type: "financialInstitutionTransaction", attributes: attributes, idempotency_key: idempotency_key)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.list(financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:, **query_params)
|
16
|
+
path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionTransactions"]
|
17
|
+
.gsub("{financialInstitutionId}", financial_institution_id)
|
18
|
+
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
19
|
+
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
20
|
+
.gsub("{financialInstitutionTransactionId}", "")
|
21
|
+
uri = Ibanity.client.build_uri(path)
|
22
|
+
list_by_uri(uri: uri, query_params: query_params)
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.find(id:, financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:)
|
26
|
+
path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionTransactions"]
|
27
|
+
.gsub("{financialInstitutionId}", financial_institution_id)
|
28
|
+
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
29
|
+
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
30
|
+
.gsub("{financialInstitutionTransactionId}", id)
|
31
|
+
uri = Ibanity.client.build_uri(path)
|
32
|
+
find_by_uri(uri: uri)
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.update(id:, financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:, idempotency_key: nil, **attributes)
|
36
|
+
path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionTransactions"]
|
37
|
+
.gsub("{financialInstitutionId}", financial_institution_id)
|
38
|
+
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
39
|
+
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
40
|
+
.gsub("{financialInstitutionTransactionId}", id)
|
41
|
+
uri = Ibanity.client.build_uri(path)
|
42
|
+
update_by_uri(uri: uri, resource_type: "financialInstitutionTransaction", attributes: attributes, idempotency_key: idempotency_key)
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.delete(id:, financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:)
|
46
|
+
path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionTransactions"]
|
47
|
+
.gsub("{financialInstitutionId}", financial_institution_id)
|
48
|
+
.gsub("{financialInstitutionUserId}", financial_institution_user_id)
|
49
|
+
.gsub("{financialInstitutionAccountId}", financial_institution_account_id)
|
50
|
+
.gsub("{financialInstitutionTransactionId}", id)
|
51
|
+
uri = Ibanity.client.build_uri(path)
|
52
|
+
destroy_by_uri(uri: uri)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Ibanity
|
2
|
+
module Xs2a
|
3
|
+
module Sandbox
|
4
|
+
class FinancialInstitutionUser < Ibanity::BaseResource
|
5
|
+
def self.create(idempotency_key: nil, **attributes)
|
6
|
+
path = Ibanity.sandbox_api_schema["financialInstitutionUsers"].gsub("{financialInstitutionUserId}", "")
|
7
|
+
uri = Ibanity.client.build_uri(path)
|
8
|
+
create_by_uri(uri: uri, resource_type: "financialInstitutionUser", attributes: attributes, idempotency_key: idempotency_key)
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.list(**query_params)
|
12
|
+
uri = Ibanity.sandbox_api_schema["financialInstitutionUsers"].sub("{financialInstitutionUserId}", "")
|
13
|
+
list_by_uri(uri: uri, query_params: query_params)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.find(id:)
|
17
|
+
uri = Ibanity.sandbox_api_schema["financialInstitutionUsers"].sub("{financialInstitutionUserId}", id)
|
18
|
+
find_by_uri(uri: uri)
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.update(id:, idempotency_key: nil, **attributes)
|
22
|
+
path = Ibanity.sandbox_api_schema["financialInstitutionUsers"].sub("{financialInstitutionUserId}", id)
|
23
|
+
uri = Ibanity.client.build_uri(path)
|
24
|
+
update_by_uri(uri: uri, resource_type: "financialInstitutionUser", attributes: attributes, idempotency_key: idempotency_key)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.delete(id:)
|
28
|
+
uri = Ibanity.sandbox_api_schema["financialInstitutionUsers"].sub("{financialInstitutionUserId}", id)
|
29
|
+
destroy_by_uri(uri: uri)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -6,7 +6,7 @@ module Ibanity
|
|
6
6
|
Ibanity.xs2a_api_schema["customer"]["synchronization"]["updatedTransactions"]
|
7
7
|
.sub("{synchronizationId}", synchronization_id)
|
8
8
|
else
|
9
|
-
Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["transactions"]
|
9
|
+
Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["account"]["transactions"]
|
10
10
|
.sub("{financialInstitutionId}", financial_institution_id)
|
11
11
|
.sub("{accountId}", account_id)
|
12
12
|
.sub("{transactionId}", "")
|
@@ -15,7 +15,7 @@ module Ibanity
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.find(id:, financial_institution_id:, account_id:, customer_access_token:)
|
18
|
-
uri = Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["transactions"]
|
18
|
+
uri = Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["account"]["transactions"]
|
19
19
|
.sub("{financialInstitutionId}", financial_institution_id)
|
20
20
|
.sub("{accountId}", account_id)
|
21
21
|
.sub("{transactionId}", id)
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Ibanity
|
2
|
+
module Xs2a
|
3
|
+
class TransactionDeleteRequest < Ibanity::BaseResource
|
4
|
+
def self.create_for_application(idempotency_key: nil, **attributes)
|
5
|
+
path = Ibanity.xs2a_api_schema["transactionDeleteRequests"]
|
6
|
+
uri = Ibanity.client.build_uri(path)
|
7
|
+
create_by_uri(uri: uri, resource_type: "transactionDeleteRequest", attributes: attributes, idempotency_key: idempotency_key)
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.create_for_customer(idempotency_key: nil, customer_access_token:, **attributes)
|
11
|
+
path = Ibanity.xs2a_api_schema["customer"]["transactionDeleteRequests"]
|
12
|
+
uri = Ibanity.client.build_uri(path)
|
13
|
+
create_by_uri(uri: uri, resource_type: "transactionDeleteRequest", attributes: attributes, idempotency_key: idempotency_key, customer_access_token: customer_access_token)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.create_for_financial_institution_and_account(idempotency_key: nil, financial_institution_id:, account_id:, customer_access_token:, **attributes)
|
17
|
+
path = Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["account"]["transactionDeleteRequests"]
|
18
|
+
.sub("{financialInstitutionId}", financial_institution_id)
|
19
|
+
.sub("{accountId}", account_id)
|
20
|
+
uri = Ibanity.client.build_uri(path)
|
21
|
+
create_by_uri(uri: uri, resource_type: "transactionDeleteRequest", attributes: attributes, idempotency_key: idempotency_key, customer_access_token: customer_access_token)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require_relative "xs2a/account"
|
2
|
+
require_relative "xs2a/pending_transaction"
|
3
|
+
require_relative "xs2a/transaction"
|
4
|
+
require_relative "xs2a/holding"
|
5
|
+
require_relative "xs2a/batch_synchronization"
|
6
|
+
require_relative "xs2a/financial_institution"
|
7
|
+
require_relative "xs2a/financial_institution_country"
|
8
|
+
require_relative "xs2a/account_information_access_request"
|
9
|
+
require_relative "xs2a/account_information_access_request_authorization"
|
10
|
+
require_relative "xs2a/payment_initiation_request_authorization"
|
11
|
+
require_relative "xs2a/customer_access_token"
|
12
|
+
require_relative "xs2a/customer"
|
13
|
+
require_relative "xs2a/payment_initiation_request"
|
14
|
+
require_relative "xs2a/transaction_delete_request"
|
15
|
+
require_relative "xs2a/bulk_payment_initiation_request"
|
16
|
+
require_relative "xs2a/bulk_payment_initiation_request_authorization"
|
17
|
+
require_relative "xs2a/periodic_payment_initiation_request"
|
18
|
+
require_relative "xs2a/periodic_payment_initiation_request_authorization"
|
19
|
+
require_relative "xs2a/synchronization"
|
20
|
+
require_relative "xs2a/sandbox/financial_institution_account"
|
21
|
+
require_relative "xs2a/sandbox/financial_institution_transaction"
|
22
|
+
require_relative "xs2a/sandbox/financial_institution_holding"
|
23
|
+
require_relative "xs2a/sandbox/financial_institution_user"
|
data/lib/ibanity/version.rb
CHANGED
data/lib/ibanity/webhook.rb
CHANGED
@@ -26,66 +26,56 @@ module Ibanity
|
|
26
26
|
#
|
27
27
|
# Returns true otherwise
|
28
28
|
def self.verify!(payload, signature_header, tolerance)
|
29
|
-
|
30
|
-
|
31
|
-
raise unless key_details["alg"] == SIGNING_ALGORITHM && key_details["kid"]
|
32
|
-
rescue
|
33
|
-
raise Ibanity::Error.new("Key details could not be parsed from the header", nil)
|
34
|
-
end
|
35
|
-
|
36
|
-
key = Ibanity.webhook_keys.find { |key| key.kid == key_details["kid"] }
|
29
|
+
jwks_loader = ->(options) do
|
30
|
+
raise Ibanity::Error.new("The key id from the header didn't match an available signing key", nil) if options[:kid_not_found]
|
37
31
|
|
38
|
-
|
39
|
-
|
32
|
+
keys = Ibanity.webhook_keys.select { |key| key.use == "sig" }
|
33
|
+
.map { |key| JWT::JWK.new(key.to_h {|key, value| [key.to_s, value] }) }
|
34
|
+
JWT::JWK::Set.new(keys)
|
40
35
|
end
|
41
|
-
signer = JOSE::JWK.from(key.to_h {|key, value| [key.to_s, value] })
|
42
|
-
verified, claims_string, _jws = JOSE::JWT.verify_strict(signer, [SIGNING_ALGORITHM], signature_header)
|
43
|
-
|
44
|
-
raise Ibanity::Error.new("The signature verification failed", nil) unless verified
|
45
36
|
|
46
|
-
|
37
|
+
options = {
|
38
|
+
aud: Ibanity.client.application_id,
|
39
|
+
algorithm: SIGNING_ALGORITHM,
|
40
|
+
exp_leeway: tolerance,
|
41
|
+
iss: Ibanity.client.base_uri,
|
42
|
+
jwks: jwks_loader,
|
43
|
+
verify_aud: true,
|
44
|
+
verify_iss: true
|
45
|
+
}
|
46
|
+
jwts = JWT.decode(signature_header, nil, true, options)
|
47
|
+
jwt = jwts.first
|
47
48
|
|
48
49
|
validate_digest!(jwt, payload)
|
49
50
|
validate_issued_at!(jwt, tolerance)
|
50
|
-
validate_expiration!(jwt, tolerance)
|
51
|
-
validate_issuer!(jwt)
|
52
|
-
validate_audience!(jwt)
|
53
51
|
|
54
52
|
true
|
53
|
+
rescue JWT::ExpiredSignature
|
54
|
+
raise_invalid_signature_error!("exp")
|
55
|
+
rescue JWT::IncorrectAlgorithm
|
56
|
+
raise Ibanity::Error.new("Incorrect algorithm for signature", nil)
|
57
|
+
rescue JWT::InvalidAudError
|
58
|
+
raise_invalid_signature_error!("aud")
|
59
|
+
rescue JWT::InvalidIssuerError
|
60
|
+
raise_invalid_signature_error!("iss")
|
61
|
+
rescue JWT::DecodeError
|
62
|
+
raise Ibanity::Error.new("The signature verification failed", nil)
|
55
63
|
end
|
56
64
|
|
57
65
|
private
|
58
66
|
|
59
67
|
def self.validate_digest!(jwt, payload)
|
60
|
-
unless Digest::SHA512.base64digest(payload) == jwt
|
68
|
+
unless Digest::SHA512.base64digest(payload) == jwt["digest"]
|
61
69
|
raise_invalid_signature_error!("digest")
|
62
70
|
end
|
63
71
|
end
|
64
72
|
|
65
73
|
def self.validate_issued_at!(jwt, tolerance)
|
66
|
-
unless jwt
|
74
|
+
unless jwt["iat"] <= Time.now.to_i + tolerance
|
67
75
|
raise_invalid_signature_error!("iat")
|
68
76
|
end
|
69
77
|
end
|
70
78
|
|
71
|
-
def self.validate_expiration!(jwt, tolerance)
|
72
|
-
unless jwt.fields["exp"] >= Time.now.to_i - tolerance
|
73
|
-
raise_invalid_signature_error!("exp")
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
def self.validate_issuer!(jwt)
|
78
|
-
unless jwt.fields["iss"] == Ibanity.client.base_uri
|
79
|
-
raise_invalid_signature_error!("iss")
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
def self.validate_audience!(jwt)
|
84
|
-
unless jwt.fields["aud"] == Ibanity.client.application_id
|
85
|
-
raise_invalid_signature_error!("aud")
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
79
|
def self.raise_invalid_signature_error!(field)
|
90
80
|
raise Ibanity::Error.new("The signature #{field} is invalid", nil)
|
91
81
|
end
|
data/lib/ibanity.rb
CHANGED
@@ -4,69 +4,25 @@ require "uri"
|
|
4
4
|
require "rest_client"
|
5
5
|
require "json"
|
6
6
|
require "securerandom"
|
7
|
-
require "
|
7
|
+
require "jwt"
|
8
8
|
|
9
9
|
require_relative "ibanity/util"
|
10
10
|
require_relative "ibanity/error"
|
11
11
|
require_relative "ibanity/collection"
|
12
12
|
require_relative "ibanity/client"
|
13
13
|
require_relative "ibanity/http_signature"
|
14
|
+
require_relative "ibanity/webhook"
|
15
|
+
|
14
16
|
require_relative "ibanity/api/base_resource"
|
15
17
|
require_relative "ibanity/api/flat_resource"
|
16
|
-
|
17
|
-
require_relative "ibanity/api/xs2a/account"
|
18
|
-
require_relative "ibanity/api/xs2a/pending_transaction"
|
19
|
-
require_relative "ibanity/api/xs2a/transaction"
|
20
|
-
require_relative "ibanity/api/xs2a/holding"
|
21
|
-
require_relative "ibanity/api/xs2a/batch_synchronization"
|
22
|
-
require_relative "ibanity/api/xs2a/financial_institution"
|
23
|
-
require_relative "ibanity/api/xs2a/financial_institution_country"
|
24
|
-
require_relative "ibanity/api/xs2a/account_information_access_request"
|
25
|
-
require_relative "ibanity/api/xs2a/account_information_access_request_authorization"
|
26
|
-
require_relative "ibanity/api/xs2a/payment_initiation_request_authorization"
|
27
|
-
require_relative "ibanity/api/xs2a/customer_access_token"
|
28
|
-
require_relative "ibanity/api/xs2a/customer"
|
29
|
-
require_relative "ibanity/api/xs2a/payment_initiation_request"
|
30
|
-
require_relative "ibanity/api/xs2a/bulk_payment_initiation_request"
|
31
|
-
require_relative "ibanity/api/xs2a/bulk_payment_initiation_request_authorization"
|
32
|
-
require_relative "ibanity/api/xs2a/periodic_payment_initiation_request"
|
33
|
-
require_relative "ibanity/api/xs2a/periodic_payment_initiation_request_authorization"
|
34
|
-
require_relative "ibanity/api/xs2a/synchronization"
|
18
|
+
|
35
19
|
require_relative "ibanity/api/o_auth_resource"
|
36
|
-
|
37
|
-
require_relative "ibanity/api/
|
38
|
-
require_relative "ibanity/api/
|
39
|
-
require_relative "ibanity/api/isabel_connect
|
40
|
-
require_relative "ibanity/api/
|
41
|
-
require_relative "ibanity/api/
|
42
|
-
require_relative "ibanity/api/isabel_connect/refresh_token"
|
43
|
-
require_relative "ibanity/api/isabel_connect/token"
|
44
|
-
require_relative "ibanity/api/isabel_connect/bulk_payment_initiation_request"
|
45
|
-
require_relative "ibanity/api/sandbox/financial_institution_account"
|
46
|
-
require_relative "ibanity/api/sandbox/financial_institution_transaction"
|
47
|
-
require_relative "ibanity/api/sandbox/financial_institution_holding"
|
48
|
-
require_relative "ibanity/api/sandbox/financial_institution_user"
|
49
|
-
require_relative "ibanity/api/ponto_connect/token"
|
50
|
-
require_relative "ibanity/api/ponto_connect/financial_institution"
|
51
|
-
require_relative "ibanity/api/ponto_connect/account"
|
52
|
-
require_relative "ibanity/api/ponto_connect/transaction"
|
53
|
-
require_relative "ibanity/api/ponto_connect/synchronization"
|
54
|
-
require_relative "ibanity/api/consent/consent"
|
55
|
-
require_relative "ibanity/api/consent/processing_operation"
|
56
|
-
require_relative "ibanity/api/ponto_connect/payment"
|
57
|
-
require_relative "ibanity/api/ponto_connect/bulk_payment"
|
58
|
-
require_relative "ibanity/api/ponto_connect/user_info"
|
59
|
-
require_relative "ibanity/api/ponto_connect/usage"
|
60
|
-
require_relative "ibanity/api/ponto_connect/integration"
|
61
|
-
require_relative "ibanity/api/ponto_connect/sandbox/financial_institution_account"
|
62
|
-
require_relative "ibanity/api/ponto_connect/sandbox/financial_institution_transaction"
|
63
|
-
require_relative "ibanity/api/ponto_connect/onboarding_details"
|
64
|
-
require_relative "ibanity/api/ponto_connect/reauthorization_request"
|
65
|
-
require_relative "ibanity/api/ponto_connect/payment_activation_request"
|
66
|
-
require_relative "ibanity/api/ponto_connect/integration_account"
|
67
|
-
require_relative "ibanity/api/webhooks/key"
|
68
|
-
require_relative "ibanity/api/webhooks/xs2a"
|
69
|
-
require_relative "ibanity/api/webhooks/ponto_connect"
|
20
|
+
|
21
|
+
require_relative "ibanity/api/consent"
|
22
|
+
require_relative "ibanity/api/ponto_connect"
|
23
|
+
require_relative "ibanity/api/isabel_connect"
|
24
|
+
require_relative "ibanity/api/webhooks"
|
25
|
+
require_relative "ibanity/api/xs2a"
|
70
26
|
|
71
27
|
module Ibanity
|
72
28
|
class << self
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'ibanity'
|
2
|
+
|
3
|
+
RSpec.describe Ibanity::Webhook::Signature do
|
4
|
+
subject(:signature_module) { described_class }
|
5
|
+
|
6
|
+
let(:client) { instance_double("Ibanity::Client") }
|
7
|
+
|
8
|
+
before do
|
9
|
+
allow(Ibanity).to receive(:client).and_return(client)
|
10
|
+
allow(Ibanity).to receive(:webhook_keys).and_return(
|
11
|
+
[
|
12
|
+
Ibanity::Webhooks::Key.new(
|
13
|
+
alg: "RS512",
|
14
|
+
e: "AQAB",
|
15
|
+
kid: "sandbox_events_signature_1",
|
16
|
+
kty: "RSA",
|
17
|
+
n: "v9qVZmotpil47Pw2NOmP11bpE5B_GtG6ICfqtm13Uusa4asf4FWedclr-kQTV2Ly5rSItq2f3RGRNyove_4TiTIbx21rwM5HP0iFhlVaqHjkr1iSmKzCFojOnTM4UwKQNROhDVDC6TWIzSafZkBacUrCX5l0PLSh2aEK8aiopu5ajYpOr8Ipjw_mbKXxBfcxtjgskbXPyEcf6xlB_Dygl9-btAvRTKiuie4qAWANTdVAgSnddjZMJxFnndZMCH1h-z4ISwphBYbwG2aZrZ7RfHnoIROxsdmKeostYtHy3gMR4_poufzFRR8lpvODd3m7lzdXKBTCvzlQYBNpmf6gmG9p08laE-h67F1GoqvuqspcvRlVpGZEzEwRIbPMAaS4_omCSj4HFZyo58PLUsAp--AD8GGFfVMyBdFhTEkr2235O5AP4UMdHuvyP-NPFCsqibqKK1GIl_Hy0UXnqg7-MCGqs4jX1k4IZZ3wDwza30f1O6tUtaOT8YXzZ2ZWnVWyMLcNx6gep8t3A7gTzEXcselrJgO6SLFRhYA0QmtIRtTwnl-8OmjEi5AJVzO0e-yiRj7g_JLEmgG3pDwmvbiXzEqkY5mPqJMB9G5qcd0SWgvvZs02_1tRRhvw0D5BTKfcEcLW9PKm8Nts1_BGSXKOhTSeQgxuw4iC63ST3dtpl-0=",
|
18
|
+
status: "ACTIVE",
|
19
|
+
use: "sig"
|
20
|
+
)
|
21
|
+
]
|
22
|
+
)
|
23
|
+
allow(client).to receive(:application_id).and_return("e643b5be-ccb1-4a38-b7b6-36689853bef5")
|
24
|
+
allow(client).to receive(:base_uri).and_return("https://api.ibanity.com")
|
25
|
+
end
|
26
|
+
|
27
|
+
describe ".verify!" do
|
28
|
+
let(:payload) { Fixture.load_unparsed_json("webhooks/example_payload.json") }
|
29
|
+
let(:signature) { Fixture.load_signature("webhooks/example_signature.sig") }
|
30
|
+
let(:tolerance) { Time.now.to_i + 10 - 1691670985 }
|
31
|
+
|
32
|
+
it "returns true for a correct signature" do
|
33
|
+
expect(signature_module.verify!(payload, signature, tolerance)).to be_truthy
|
34
|
+
end
|
35
|
+
|
36
|
+
it "raises an error if the contents are altered" do
|
37
|
+
expect do
|
38
|
+
signature_module.verify!(payload + "altered", signature, tolerance)
|
39
|
+
end.to raise_error(Ibanity::Error, /The signature digest is invalid/)
|
40
|
+
end
|
41
|
+
|
42
|
+
it "raises an error if the signature is expired" do
|
43
|
+
expect do
|
44
|
+
signature_module.verify!(payload, signature, 0)
|
45
|
+
end.to raise_error(Ibanity::Error, /The signature exp is invalid/)
|
46
|
+
end
|
47
|
+
|
48
|
+
it "raises an error if the audience is invalid" do
|
49
|
+
allow(client).to receive(:application_id).and_return("invalid")
|
50
|
+
expect do
|
51
|
+
signature_module.verify!(payload, signature, tolerance)
|
52
|
+
end.to raise_error(Ibanity::Error, /The signature aud is invalid/)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "raises an error if the issuer is invalid" do
|
56
|
+
allow(client).to receive(:base_uri).and_return("invalid")
|
57
|
+
expect do
|
58
|
+
signature_module.verify!(payload, signature, tolerance)
|
59
|
+
end.to raise_error(Ibanity::Error, /The signature iss is invalid/)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "raises an error if the signing key is unavailable" do
|
63
|
+
allow(Ibanity).to receive(:webhook_keys).and_return([])
|
64
|
+
expect do
|
65
|
+
signature_module.verify!(payload, signature, tolerance)
|
66
|
+
end.to raise_error(Ibanity::Error, /The key id from the header didn't match an available signing key/)
|
67
|
+
end
|
68
|
+
|
69
|
+
it "raises an error if the signature is altered" do
|
70
|
+
expect do
|
71
|
+
signature_module.verify!(payload, signature + "altered", tolerance)
|
72
|
+
end.to raise_error(Ibanity::Error, /The signature verification failed/)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
data/spec/support/fixture.rb
CHANGED
@@ -5,4 +5,14 @@ module Fixture
|
|
5
5
|
path = Pathname([File.dirname(__FILE__ ), "fixtures", "json", filename].join("/"))
|
6
6
|
JSON.parse(File.read(path))
|
7
7
|
end
|
8
|
+
|
9
|
+
def self.load_unparsed_json(filename)
|
10
|
+
path = Pathname([File.dirname(__FILE__ ), "fixtures", "json", filename].join("/"))
|
11
|
+
File.read(path)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.load_signature(filename)
|
15
|
+
path = Pathname([File.dirname(__FILE__ ), "fixtures", "signature", filename].join("/"))
|
16
|
+
File.read(path)
|
17
|
+
end
|
8
18
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{"data":{"attributes":{"createdAt":"2023-08-10T12:24:42.224Z","synchronizationSubtype":"accountTransactions"},"id":"3465fd2f-6c9a-484e-971e-56bf44c9181a","relationships":{"account":{"data":{"id":"1d89d411-e310-4802-bbb7-aad7d98371e7","type":"account"}},"organization":{"data":{"id":"9315d6b3-129a-481a-9604-e2a95e0f967d","type":"organization"}},"synchronization":{"data":{"id":"178b59a6-679f-43d4-b5ad-28caea0bc08b","type":"synchronization"}}},"type":"pontoConnect.synchronization.succeededWithoutChange"}}
|
@@ -0,0 +1 @@
|
|
1
|
+
eyJhbGciOiJSUzUxMiIsImtpZCI6InNhbmRib3hfZXZlbnRzX3NpZ25hdHVyZV8xIn0.eyJhdWQiOiJlNjQzYjViZS1jY2IxLTRhMzgtYjdiNi0zNjY4OTg1M2JlZjUiLCJkaWdlc3QiOiJDZEJPWGwzMGsyM0lsVVdkM2JPL1FtazhXek5lN1NERjVCV3FUQnIyVzQ0VjlqRnhjZW4wSEFHVGsra0Nka0NjWVZsRW9PYmtZM0JCc2lPRnNFV0hIUT09IiwiZXhwIjoxNjkxNjcwOTg1LCJpYXQiOjE2OTE2NzA5MjUsImlzcyI6Imh0dHBzOi8vYXBpLmliYW5pdHkuY29tIiwianRpIjoiMWMyOTNkNTYtOTk1Yi00NDg5LTlhODMtMDEzZTg2ZTk4NjQ2In0.ooEZQDTfGmfYr5DmD7wVxdIN_0YXDBiwwL1_fFwSlTiIcr8vehAbDtcsyf3XrycySkUbWvtZYbhYXJw1BH4eDKdhCd2MnrxNX8BzxEjbAKzsGTT4l1YnrbBEIfcL_Z3qCzxJOzWErkSAgIi1XbiNFbw1YTU0c_Y0bBwxY6EEZgQVpG0-OXbzxhT7GRnsdSmYCAEkbLUzhRDj37fOz0oTfuimn04ANqVNJbTrOnQ2md_lOIS1XWl_WaDrk8pExUQ5JQii7dIxnzaHLB5J6U8zAOUchNLYJW1tcJmpVE_3baO_W6MvsWfEG9wY5Jud55WsnSHOOA4ak0KQJx3owqXt3uzlKH0MjPe6UeuJagZo1nXPW8IV6QCyvqtJ6TMwXqN67GHzh2YTS-Ct7qFxgHKFutlSfBfV4PaTTRd0ywqgTIVXY9P_hQmTSL_J0WiTg_2Di0ty10ehCau9rF1Bmpf2ZnSMK2Rr4JRPIMnFQsU-W5jZbZNF_tDaECzzkDoZgMDRrQT1TsdfSWU-XWG2f0ytiHKVcFJE9mMd25b2SJ6rx2e-TZaQwb5jO61uL1Q8zjvPWqofWZ5emiby9FWNFS-0fqF0UUJdlb7XU1fo_cQi0q4pYGgN2_2sgNETXr99zcTT2vpCf9x9RZGUzXne_WhZP_gp49m0kTX1W0s8O_2g2Do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ibanity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ibanity
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -25,19 +25,19 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.8.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: jwt
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,9 +72,11 @@ files:
|
|
72
72
|
- ibanity.gemspec
|
73
73
|
- lib/ibanity.rb
|
74
74
|
- lib/ibanity/api/base_resource.rb
|
75
|
+
- lib/ibanity/api/consent.rb
|
75
76
|
- lib/ibanity/api/consent/consent.rb
|
76
77
|
- lib/ibanity/api/consent/processing_operation.rb
|
77
78
|
- lib/ibanity/api/flat_resource.rb
|
79
|
+
- lib/ibanity/api/isabel_connect.rb
|
78
80
|
- lib/ibanity/api/isabel_connect/access_token.rb
|
79
81
|
- lib/ibanity/api/isabel_connect/account.rb
|
80
82
|
- lib/ibanity/api/isabel_connect/account_report.rb
|
@@ -85,6 +87,7 @@ files:
|
|
85
87
|
- lib/ibanity/api/isabel_connect/token.rb
|
86
88
|
- lib/ibanity/api/isabel_connect/transaction.rb
|
87
89
|
- lib/ibanity/api/o_auth_resource.rb
|
90
|
+
- lib/ibanity/api/ponto_connect.rb
|
88
91
|
- lib/ibanity/api/ponto_connect/account.rb
|
89
92
|
- lib/ibanity/api/ponto_connect/bulk_payment.rb
|
90
93
|
- lib/ibanity/api/ponto_connect/financial_institution.rb
|
@@ -93,6 +96,8 @@ files:
|
|
93
96
|
- lib/ibanity/api/ponto_connect/onboarding_details.rb
|
94
97
|
- lib/ibanity/api/ponto_connect/payment.rb
|
95
98
|
- lib/ibanity/api/ponto_connect/payment_activation_request.rb
|
99
|
+
- lib/ibanity/api/ponto_connect/payment_request.rb
|
100
|
+
- lib/ibanity/api/ponto_connect/pending_transaction.rb
|
96
101
|
- lib/ibanity/api/ponto_connect/reauthorization_request.rb
|
97
102
|
- lib/ibanity/api/ponto_connect/sandbox/financial_institution_account.rb
|
98
103
|
- lib/ibanity/api/ponto_connect/sandbox/financial_institution_transaction.rb
|
@@ -105,9 +110,11 @@ files:
|
|
105
110
|
- lib/ibanity/api/sandbox/financial_institution_holding.rb
|
106
111
|
- lib/ibanity/api/sandbox/financial_institution_transaction.rb
|
107
112
|
- lib/ibanity/api/sandbox/financial_institution_user.rb
|
113
|
+
- lib/ibanity/api/webhooks.rb
|
108
114
|
- lib/ibanity/api/webhooks/key.rb
|
109
115
|
- lib/ibanity/api/webhooks/ponto_connect.rb
|
110
116
|
- lib/ibanity/api/webhooks/xs2a.rb
|
117
|
+
- lib/ibanity/api/xs2a.rb
|
111
118
|
- lib/ibanity/api/xs2a/account.rb
|
112
119
|
- lib/ibanity/api/xs2a/account_information_access_request.rb
|
113
120
|
- lib/ibanity/api/xs2a/account_information_access_request_authorization.rb
|
@@ -124,8 +131,13 @@ files:
|
|
124
131
|
- lib/ibanity/api/xs2a/pending_transaction.rb
|
125
132
|
- lib/ibanity/api/xs2a/periodic_payment_initiation_request.rb
|
126
133
|
- lib/ibanity/api/xs2a/periodic_payment_initiation_request_authorization.rb
|
134
|
+
- lib/ibanity/api/xs2a/sandbox/financial_institution_account.rb
|
135
|
+
- lib/ibanity/api/xs2a/sandbox/financial_institution_holding.rb
|
136
|
+
- lib/ibanity/api/xs2a/sandbox/financial_institution_transaction.rb
|
137
|
+
- lib/ibanity/api/xs2a/sandbox/financial_institution_user.rb
|
127
138
|
- lib/ibanity/api/xs2a/synchronization.rb
|
128
139
|
- lib/ibanity/api/xs2a/transaction.rb
|
140
|
+
- lib/ibanity/api/xs2a/transaction_delete_request.rb
|
129
141
|
- lib/ibanity/client.rb
|
130
142
|
- lib/ibanity/collection.rb
|
131
143
|
- lib/ibanity/error.rb
|
@@ -136,6 +148,7 @@ files:
|
|
136
148
|
- spec/lib/ibanity/base_resource_spec.rb
|
137
149
|
- spec/lib/ibanity/http_signature_spec.rb
|
138
150
|
- spec/lib/ibanity/util_spec.rb
|
151
|
+
- spec/lib/ibanity/webhook_signature_spec.rb
|
139
152
|
- spec/spec_helper.rb
|
140
153
|
- spec/support/crypto_helper.rb
|
141
154
|
- spec/support/fixture.rb
|
@@ -143,9 +156,11 @@ files:
|
|
143
156
|
- spec/support/fixtures/json/relationships/data_without_type.json
|
144
157
|
- spec/support/fixtures/json/relationships/meta_with_type.json
|
145
158
|
- spec/support/fixtures/json/relationships/no_links_related.json
|
159
|
+
- spec/support/fixtures/json/webhooks/example_payload.json
|
146
160
|
- spec/support/fixtures/signature/test-certificate.pem
|
147
161
|
- spec/support/fixtures/signature/test-private_key.pem
|
148
162
|
- spec/support/fixtures/signature/test-public_key.pem
|
163
|
+
- spec/support/fixtures/signature/webhooks/example_signature.sig
|
149
164
|
homepage: https://documentation.ibanity.com/api/ruby
|
150
165
|
licenses:
|
151
166
|
- MIT
|
@@ -173,6 +188,7 @@ test_files:
|
|
173
188
|
- spec/lib/ibanity/base_resource_spec.rb
|
174
189
|
- spec/lib/ibanity/http_signature_spec.rb
|
175
190
|
- spec/lib/ibanity/util_spec.rb
|
191
|
+
- spec/lib/ibanity/webhook_signature_spec.rb
|
176
192
|
- spec/spec_helper.rb
|
177
193
|
- spec/support/crypto_helper.rb
|
178
194
|
- spec/support/fixture.rb
|
@@ -180,6 +196,8 @@ test_files:
|
|
180
196
|
- spec/support/fixtures/json/relationships/data_without_type.json
|
181
197
|
- spec/support/fixtures/json/relationships/meta_with_type.json
|
182
198
|
- spec/support/fixtures/json/relationships/no_links_related.json
|
199
|
+
- spec/support/fixtures/json/webhooks/example_payload.json
|
183
200
|
- spec/support/fixtures/signature/test-certificate.pem
|
184
201
|
- spec/support/fixtures/signature/test-private_key.pem
|
185
202
|
- spec/support/fixtures/signature/test-public_key.pem
|
203
|
+
- spec/support/fixtures/signature/webhooks/example_signature.sig
|