unit_ruby_sdk 1.0.3 → 1.0.4

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 (28) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +48 -0
  3. data/lib/unit/api_resources/account_resource.rb +1 -1
  4. data/lib/unit/api_resources/payment_resource.rb +24 -5
  5. data/lib/unit/api_resources/transaction_resource.rb +9 -0
  6. data/lib/unit/models/account/account.rb +108 -0
  7. data/lib/unit/models/account/credit/balance_history_request.rb +39 -0
  8. data/lib/unit/models/account/credit/close_account_request.rb +36 -0
  9. data/lib/unit/models/account/credit/create_account_request.rb +44 -0
  10. data/lib/unit/models/account/credit/freeze_account_request.rb +36 -0
  11. data/lib/unit/models/account/credit/list_account_params.rb +51 -0
  12. data/lib/unit/models/account/credit/patch_account_request.rb +36 -0
  13. data/lib/unit/models/payment/create_ach_payment_inline_request.rb +60 -0
  14. data/lib/unit/models/payment/create_payment_linked_request.rb +65 -0
  15. data/lib/unit/models/payment/create_wire_payment_request.rb +44 -0
  16. data/lib/unit/models/payment/create_with_plaid_token_request.rb +69 -0
  17. data/lib/unit/models/payment/get_request.rb +22 -0
  18. data/lib/unit/models/payment/list_payment_params.rb +79 -0
  19. data/lib/unit/models/payment/patch_ach_payment_request.rb +31 -0
  20. data/lib/unit/models/payment/payment.rb +142 -1
  21. data/lib/unit/models/transaction/patch_book_transaction_request.rb +39 -0
  22. data/lib/unit/models/transaction/patch_chargeback_transaction_request.rb +39 -0
  23. data/lib/unit/models/transaction/transaction.rb +24 -0
  24. data/lib/unit/types/counterparty.rb +31 -0
  25. data/lib/unit/types/wire_counterparty.rb +31 -0
  26. data/lib/unit/version.rb +1 -1
  27. data/lib/unit_ruby_sdk.rb +2 -0
  28. metadata +19 -2
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Request to create a wire payment by calling Unit's API
4
+ # @see https://docs.unit.co/wires#wire-payments
5
+ module Unit
6
+ module Payment
7
+ class CreateWirePaymentRequest
8
+ attr_reader :account_id, :amount, :description, :counterparty, :idempotency_key, :tags
9
+
10
+ # @param account_id [String]
11
+ # @param amount [Integer]
12
+ # @param description [String]
13
+ # @param counterparty [WireCounterparty]
14
+ # @param idempotency_key [String] - optional
15
+ # @param tags [Hash] - optional
16
+ def initialize(account_id, amount, description, counterparty, idempotency_key = nil, tags = nil)
17
+ @account_id = account_id
18
+ @amount = amount
19
+ @description = description
20
+ @counterparty = counterparty
21
+ @idempotency_key = idempotency_key
22
+ @tags = tags
23
+ end
24
+
25
+ def to_json_api
26
+ payload = {
27
+ data: {
28
+ type: "wirePayment",
29
+ attributes: {
30
+ amount: amount,
31
+ description: description,
32
+ counterparty: counterparty.represent,
33
+ idempotencyKey: idempotency_key,
34
+ tags: tags
35
+ },
36
+ relationships: { account: Unit::Types::Relationship.new("account", account_id).to_hash }
37
+ }
38
+ }
39
+ payload[:data][:attributes].compact!
40
+ payload.to_json
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Request to create a new ach payment with a plaid token by calling Unit's API
4
+ # @see https://docs.unit.co/ach-origination#create-ach-payment-with-plaid-token
5
+ module Unit
6
+ module Payment
7
+ class CreateWithPlaidTokenRequest
8
+ attr_reader :account_id, :amount, :direction, :description,
9
+ :plaid_processor_token, :addenda, :idempotency_key,
10
+ :counterparty_name, :tags, :verify_counterparty_balance,
11
+ :same_day, :sec_code
12
+
13
+ # @param account_id [String]
14
+ # @param amount [Integer]
15
+ # @param direction [String]
16
+ # @param description [String]
17
+ # @param plaid_processor_token [String]
18
+ # @param addenda [String] - optional
19
+ # @param idempotency_key [String] - optional
20
+ # @param counterparty_name [String] - optional
21
+ # @param tags [Hash] - optional
22
+ # @param verify_counterparty_balance [Boolean] - optional
23
+ # @param same_day [Boolean] - optional
24
+ # @param sec_code [String] - optional
25
+ def initialize(account_id, amount, direction, description, plaid_processor_token,
26
+ addenda = nil, idempotency_key = nil, counterparty_name = nil, tags = nil,
27
+ verify_counterparty_balance = nil, same_day = nil, sec_code = nil)
28
+ @account_id = account_id
29
+ @amount = amount
30
+ @direction = direction
31
+ @description = description
32
+ @plaid_processor_token = plaid_processor_token
33
+ @addenda = addenda
34
+ @idempotency_key = idempotency_key
35
+ @counterparty_name = counterparty_name
36
+ @tags = tags
37
+ @verify_counterparty_balance = verify_counterparty_balance
38
+ @same_day = same_day
39
+ @sec_code = sec_code
40
+ end
41
+
42
+ def to_json_api
43
+ payload = {
44
+ "data": {
45
+ "type": "achPayment",
46
+ "attributes": {
47
+ amount: amount,
48
+ direction: direction,
49
+ description: description,
50
+ plaidProcessorToken: plaid_processor_token,
51
+ addenda: addenda,
52
+ idempotencyKey: idempotency_key,
53
+ counterpartyName: counterparty_name,
54
+ tags: tags,
55
+ verifyCounterpartyBalance: verify_counterparty_balance,
56
+ sameDay: same_day,
57
+ secCode: sec_code
58
+ },
59
+ "relationships": {
60
+ "account": Unit::Types::Relationship.new("account", account_id).to_hash
61
+ }
62
+ }
63
+ }
64
+ payload[:data][:attributes].compact!
65
+ payload.to_json
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Request to get payment by id
4
+ # @see https://docs.unit.co/payments#get-specific-payment
5
+ module Unit
6
+ module Payment
7
+ class GetRequest
8
+ attr_reader :payment_id, :include
9
+
10
+ # @param payment_id [String]
11
+ # @param include [Array<String>] - optional
12
+ def initialize(payment_id, include = nil)
13
+ @payment_id = payment_id
14
+ @include = include
15
+ end
16
+
17
+ def to_hash
18
+ { include: include&.join(",") }.compact
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Params to list payments
4
+ # @see https://docs.unit.co/payments#list-payments
5
+
6
+ module Unit
7
+ module Payment
8
+ class ListPaymentParams
9
+ attr_reader :limit, :offset, :account_id, :customer_id, :counterparty_account_id, :tags, :status, :type, :direction, :since, :_until, :from_amount, :to_amount, :recurring_payment_id, :feature, :sort, :include
10
+
11
+ # @param limit [Integer] - optional
12
+ # @param offset [Integer] - optional
13
+ # @param account_id [String] - optional
14
+ # @param customer_id [String] - optional
15
+ # @param counterparty_account_id [String] - optional
16
+ # @param tags [Hash] - optional
17
+ # @param status [Array<String>] - optional
18
+ # @param type [Array<String>] - optional
19
+ # @param direction [Array<String>] - optional
20
+ # @param since [String] - optional
21
+ # @param _until [String] - optional
22
+ # @param from_amount [Integer] - optional
23
+ # @param to_amount [Integer] - optional
24
+ # @param recurring_payment_id [String] - optional
25
+ # @param feature [Array<String>] - optional
26
+ # @param sort [String] - optional
27
+ # @param include [Array<String>] - optional
28
+ def initialize(limit = PAYMENT_LIMIT, offset = PAYMENT_OFFSET, account_id = nil, customer_id = nil,
29
+ counterparty_account_id = nil, tags = nil, status = nil,
30
+ type = nil, direction = nil, since = nil, _until = nil,
31
+ from_amount = nil, to_amount = nil, recurring_payment_id = nil,
32
+ feature = nil, sort = nil, include = nil)
33
+ @limit = limit
34
+ @offset = offset
35
+ @account_id = account_id
36
+ @customer_id = customer_id
37
+ @counterparty_account_id = counterparty_account_id
38
+ @tags = tags
39
+ @status = status
40
+ @type = type
41
+ @direction = direction
42
+ @since = since
43
+ @until = _until
44
+ @from_amount = from_amount
45
+ @to_amount = to_amount
46
+ @recurring_payment_id = recurring_payment_id
47
+ @feature = feature
48
+ @sort = sort
49
+ @include = include
50
+ end
51
+
52
+ def to_hash
53
+ params = {
54
+ "page[limit]": limit,
55
+ "page[offset]": offset,
56
+ "filter[accountId]": account_id,
57
+ "filter[customerId]": customer_id,
58
+ "filter[counterpartyAccountId]": counterparty_account_id,
59
+ "filter[tags]": tags,
60
+ "filter[since]": since,
61
+ "filter[until]": _until,
62
+ "filter[fromAmount]": from_amount,
63
+ "filter[toAmount]": to_amount,
64
+ "filter[recurringPaymentId]": recurring_payment_id,
65
+ sort: sort,
66
+ include: include&.join(",")
67
+ }
68
+ filters = %i[status type direction feature]
69
+ filters.each do |filter|
70
+ values = send(filter)
71
+ values&.each_with_index&.map do |val, index|
72
+ params.merge!({ "filter[#{filter}][#{index}]": val })
73
+ end
74
+ end
75
+ params.compact
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Request to update an ACH payment
4
+ # @see https://docs.unit.co/ach-origination#update-ach-payment
5
+ module Unit
6
+ module Payment
7
+ class PatchAchPaymentRequest
8
+ attr_reader :payment_id, :tags
9
+
10
+ # @param payment_id [String]
11
+ # @param tags [Hash] - optional
12
+ def initialize(payment_id, tags = nil)
13
+ @payment_id = payment_id
14
+ @tags = tags
15
+ end
16
+
17
+ def to_json_api
18
+ payload = {
19
+ "data": {
20
+ "type": "achPayment",
21
+ "attributes": {
22
+ tags: tags
23
+ }
24
+ }
25
+ }
26
+ payload[:data][:attributes].compact!
27
+ payload.to_json
28
+ end
29
+ end
30
+ end
31
+ end
@@ -2,9 +2,17 @@
2
2
 
3
3
  module Unit
4
4
  module Payment
5
+ PAYMENT_LIMIT = 100
6
+ PAYMENT_OFFSET = 0
5
7
  autoload :CreateBookPaymentRequest, "unit/models/payment/create_book_payment_request"
6
8
  autoload :PatchBookPaymentRequest, "unit/models/payment/patch_book_payment_request"
7
-
9
+ autoload :CreateAchPaymentInlineRequest, "unit/models/payment/create_ach_payment_inline_request"
10
+ autoload :CreatePaymentLinkedRequest, "unit/models/payment/create_payment_linked_request"
11
+ autoload :CreateWithPlaidTokenRequest, "unit/models/payment/create_with_plaid_token_request"
12
+ autoload :PatchReceivedPaymentRequest, "unit/models/payment/patch_received_payment_request"
13
+ autoload :CreateWirePaymentRequest, "unit/models/payment/create_wire_payment_request"
14
+ autoload :ListPaymentParams, "unit/models/payment/list_payment_params"
15
+ autoload :GetRequest, "unit/models/payment/get_request"
8
16
  class << self
9
17
  # Create a new book payment by calling Unit's API
10
18
  # @see https://docs.unit.co/book-payments#book-payments
@@ -32,6 +40,139 @@ module Unit
32
40
  request = Unit::Payment::PatchBookPaymentRequest.new(payment_id, tags)
33
41
  Unit::Resource::PaymentResource.update_payment(request)
34
42
  end
43
+
44
+ # Create a new ach payment to inline counterparty by calling Unit's API
45
+ # @see https://docs.unit.co/ach-origination#payment-inline-counterparty
46
+ # @param account_id [String]
47
+ # @param amount [Integer]
48
+ # @param direction [String]
49
+ # @param counterparty [Counterparty]
50
+ # @param description [String]
51
+ # @param addenda [String] - optional
52
+ # @param idempotency_key [String] - optional
53
+ # @param tags [Hash] - optional
54
+ # @param same_day [Boolean] - optional
55
+ # @param sec_code [String] - optional
56
+ def create_ach_payment_inline(account_id:, amount:, direction:, counterparty:,
57
+ description:, addenda: nil, idempotency_key: nil, tags: nil,
58
+ same_day: nil, sec_code: nil)
59
+ request = Unit::Payment::CreateAchPaymentInlineRequest.new(account_id, amount, direction, counterparty, description,
60
+ addenda, idempotency_key, tags, same_day, sec_code)
61
+ Unit::Resource::PaymentResource.create_payment(request)
62
+ end
63
+
64
+ # Create a new ach payment to linked counterparty by calling Unit's API
65
+ # @see https://docs.unit.co/ach-origination#payment-linked-counterparty
66
+ # @param account_id [String]
67
+ # @param counterparty_id [String]
68
+ # @param amount [Integer]
69
+ # @param direction [String]
70
+ # @param description [String]
71
+ # @param addenda [String] - optional
72
+ # @param idempotency_key [String] - optional
73
+ # @param tags [Hash] - optional
74
+ # @param verify_counterparty_balance [Boolean] - optional
75
+ # @param same_day [Boolean] - optional
76
+ # @param sec_code [String] - optional
77
+ def create_ach_payment_linked(account_id:, counterparty_id:, amount:, direction:,
78
+ description:, addenda: nil, idempotency_key: nil, tags: nil,
79
+ verify_counterparty_balance: nil, same_day: nil, sec_code: nil)
80
+ request = Unit::Payment::CreatePaymentLinkedRequest.new(account_id, counterparty_id, amount, direction,
81
+ description, addenda, idempotency_key, tags,
82
+ verify_counterparty_balance, same_day, sec_code)
83
+ Unit::Resource::PaymentResource.create_payment(request)
84
+ end
85
+
86
+ # Create a new ach payment with a plaid token by calling Unit's API
87
+ # @see https://docs.unit.co/ach-origination#create-ach-payment-with-plaid-token
88
+ # @param account_id [String]
89
+ # @param amount [Integer]
90
+ # @param direction [String]
91
+ # @param description [String]
92
+ # @param plaid_processor_token [String]
93
+ # @param addenda [String] - optional
94
+ # @param idempotency_key [String] - optional
95
+ # @param counterparty_name [String] - optional
96
+ # @param tags [Hash] - optional
97
+ # @param verify_counterparty_balance [Boolean] - optional
98
+ # @param same_day [Boolean] - optional
99
+ # @param sec_code [String] - optional
100
+ def create_ach_payment_with_plaid_token(account_id:, amount:, direction:, description:, plaid_processor_token:,
101
+ addenda: nil, idempotency_key: nil, counterparty_name: nil, tags: nil,
102
+ verify_counterparty_balance: nil, same_day: nil, sec_code: nil)
103
+ request = Unit::Payment::CreateWithPlaidTokenRequest.new(account_id, amount, direction, description, plaid_processor_token,
104
+ addenda, idempotency_key, counterparty_name, tags,
105
+ verify_counterparty_balance, same_day, sec_code)
106
+ Unit::Resource::PaymentResource.create_payment(request)
107
+ end
108
+
109
+ # Update an ACH payment by calling Unit's API
110
+ # @see https://docs.unit.co/ach-origination#update-ach-payment
111
+ # @param payment_id [String]
112
+ # @param tags [Hash] - optional
113
+ def update_ach_payment(payment_id:, tags: nil)
114
+ request = Unit::Payment::PatchAchPaymentRequest.new(payment_id, tags)
115
+ Unit::Resource::PaymentResource.update_payment(request)
116
+ end
117
+
118
+ # Cancel a payment by calling Unit's API
119
+ # @see https://docs.unit.co/ach-origination#cancel-ach-payment
120
+ # @param payment_id [String]
121
+ def cancel_payment(payment_id:)
122
+ Unit::Resource::PaymentResource.cancel_payment(payment_id)
123
+ end
124
+
125
+ # Create a wire payment by calling Unit's API
126
+ # @see https://docs.unit.co/wires#wire-payments
127
+ # @param account_id [String]
128
+ # @param amount [Integer]
129
+ # @param description [String]
130
+ # @param counterparty [WireCounterparty]
131
+ # @param idempotency_key [String] - optional
132
+ # @param tags [Hash] - optional
133
+ def create_wire_payment(account_id:, amount:, description:, counterparty:, idempotency_key: nil, tags: nil)
134
+ request = Unit::Payment::CreateWirePaymentRequest.new(account_id, amount, description, counterparty, idempotency_key, tags)
135
+ Unit::Resource::PaymentResource.create_payment(request)
136
+ end
137
+
138
+ # List payments by calling Unit's API
139
+ # @see https://docs.unit.co/payments#list-payments
140
+ # @param limit [Integer] - optional
141
+ # @param offset [Integer] - optional
142
+ # @param account_id [String] - optional
143
+ # @param customer_id [String] - optional
144
+ # @param counterparty_account_id [String] - optional
145
+ # @param tags [Hash] - optional
146
+ # @param status [Array<String>] - optional
147
+ # @param type [Array<String>] - optional
148
+ # @param direction [Array<String>] - optional
149
+ # @param since [String] - optional
150
+ # @param _until [String] - optional
151
+ # @param from_amount [Integer] - optional
152
+ # @param to_amount [Integer] - optional
153
+ # @param recurring_payment_id [String] - optional
154
+ # @param feature [Array<String>] - optional
155
+ # @param sort [String] - optional
156
+ # @param include [Array<String>] - optional
157
+ def list_payments(limit: PAYMENT_LIMIT, offset: PAYMENT_OFFSET, account_id: nil, customer_id: nil,
158
+ counterparty_account_id: nil, tags: nil, status: nil,
159
+ type: nil, direction: nil, since: nil, until_: nil,
160
+ from_amount: nil, to_amount: nil, recurring_payment_id: nil,
161
+ feature: nil, sort: nil, include: nil)
162
+ request = Unit::Payment::ListPaymentParams.new(limit, offset, account_id, customer_id,
163
+ counterparty_account_id, tags, status, type, direction, since, until_,
164
+ from_amount, to_amount, recurring_payment_id, feature, sort, include)
165
+ Unit::Resource::PaymentResource.list_payments(request)
166
+ end
167
+
168
+ # Get a payment by calling Unit's API
169
+ # @see https://docs.unit.co/payments#get-specific-payment
170
+ # @param payment_id [String]
171
+ # @param include [Array<String>] - optional
172
+ def get_payment(payment_id:, include: nil)
173
+ request = Unit::Payment::GetRequest.new(payment_id, include)
174
+ Unit::Resource::PaymentResource.get_payment(request)
175
+ end
35
176
  end
36
177
  end
37
178
  end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Request to update a transaction's tags
4
+ # @see https://docs.unit.co/transactions#update-transaction-tags
5
+ module Unit
6
+ module Transaction
7
+ class PatchBookTransactionRequest
8
+ attr_reader :account_id, :transaction_id, :summary, :tags
9
+
10
+ # @param account_id [String]
11
+ # @param transaction_id [String]
12
+ # @param summary [String] - optional
13
+ # @param tags [Hash] - optional
14
+ def initialize(account_id, transaction_id, summary = nil, tags = nil)
15
+ @account_id = account_id
16
+ @transaction_id = transaction_id
17
+ @summary = summary
18
+ @tags = tags
19
+ end
20
+
21
+ def to_json_api
22
+ payload = {
23
+ data: {
24
+ type: "bookTransaction",
25
+ attributes: {
26
+ summary: summary,
27
+ tags: tags
28
+ },
29
+ relationships: {
30
+ account: Unit::Types::Relationship.new("account", account_id).to_hash
31
+ }
32
+ }
33
+ }
34
+ payload[:data][:attributes].compact!
35
+ payload.to_json
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Request to update a transaction's tags
4
+ # @see https://docs.unit.co/transactions#update-transaction-tags
5
+ module Unit
6
+ module Transaction
7
+ class PatchChargebackTransactionRequest
8
+ attr_reader :account_id, :transaction_id, :summary, :tags
9
+
10
+ # @param account_id [String]
11
+ # @param transaction_id [String]
12
+ # @param summary [String] - optional
13
+ # @param tags [Hash] - optional
14
+ def initialize(account_id, transaction_id, summary = nil, tags = nil)
15
+ @account_id = account_id
16
+ @summary = summary
17
+ @tags = tags
18
+ @transaction_id = transaction_id
19
+ end
20
+
21
+ def to_json_api
22
+ payload = {
23
+ data: {
24
+ type: "chargebackTransaction",
25
+ attributes: {
26
+ summary: summary,
27
+ tags: tags
28
+ },
29
+ relationships: {
30
+ account: Unit::Types::Relationship.new("account", account_id).to_hash
31
+ }
32
+ }
33
+ }
34
+ payload[:data][:attributes].compact!
35
+ payload.to_json
36
+ end
37
+ end
38
+ end
39
+ end
@@ -7,6 +7,8 @@ module Unit
7
7
  autoload :GetTransactionParams, "unit/models/transaction/get_transaction_params"
8
8
  autoload :ListTransactionParams, "unit/models/transaction/list_transaction_params"
9
9
  autoload :PatchTagsRequest, "unit/models/transaction/patch_tags_request"
10
+ autoload :PatchBookTransactionRequest, "unit/models/transaction/patch_book_transaction_request"
11
+ autoload :PatchChargebackTransactionRequest, "unit/models/transaction/patch_chargeback_transaction_request"
10
12
 
11
13
  class << self
12
14
  # Get a transaction by id
@@ -55,6 +57,28 @@ module Unit
55
57
  request = PatchTagsRequest.new(account_id, transaction_id, tags)
56
58
  Unit::Resource::TransactionResource.update_tags(request)
57
59
  end
60
+
61
+ # Update a book transaction
62
+ # @see https://docs.unit.co/transactions#update-book-transaction
63
+ # @param account_id [String]
64
+ # @param transaction_id [String]
65
+ # @param summary [String] - optional
66
+ # @param tags [Hash] - optional
67
+ def update_book_transaction(account_id:, transaction_id:, summary:, tags: nil)
68
+ request = PatchBookTransactionRequest.new(account_id, transaction_id, summary, tags)
69
+ Unit::Resource::TransactionResource.update_transaction(request)
70
+ end
71
+
72
+ # Update a chargeback transaction
73
+ # @see https://docs.unit.co/transactions#update-chargeback-transaction
74
+ # @param account_id [String]
75
+ # @param transaction_id [String]
76
+ # @param summary [String] - optional
77
+ # @param tags [Hash] - optional
78
+ def update_chargeback_transaction(account_id:, transaction_id:, summary:, tags: nil)
79
+ request = PatchChargebackTransactionRequest.new(account_id, transaction_id, summary, tags)
80
+ Unit::Resource::TransactionResource.update_transaction(request)
81
+ end
58
82
  end
59
83
  end
60
84
  end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @see https://docs.unit.co/types/#counterparty
4
+ module Unit
5
+ module Types
6
+ class Counterparty
7
+ attr_reader :name, :account_number, :routing_number, :account_type
8
+
9
+ # @param name [String]
10
+ # @param account_number [String]
11
+ # @param routing_number [String]
12
+ # @param account_type [String]
13
+ def initialize(name, account_number, routing_number, account_type)
14
+ @name = name
15
+ @account_number = account_number
16
+ @routing_number = routing_number
17
+ @account_type = account_type
18
+ end
19
+
20
+ def represent
21
+ params = {
22
+ name: name,
23
+ accountNumber: account_number,
24
+ routingNumber: routing_number,
25
+ accountType: account_type
26
+ }
27
+ params.compact
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @see https://docs.unit.co/types/#wire-counterparty
4
+ module Unit
5
+ module Types
6
+ class WireCounterparty
7
+ attr_reader :name, :account_number, :routing_number, :address
8
+
9
+ # @param name [String]
10
+ # @param account_number [String]
11
+ # @param routing_number [String]
12
+ # @param address [Address]
13
+ def initialize(name, account_number, routing_number, address)
14
+ @name = name
15
+ @account_number = account_number
16
+ @routing_number = routing_number
17
+ @address = address
18
+ end
19
+
20
+ def represent
21
+ params = {
22
+ name: name,
23
+ accountNumber: account_number,
24
+ routingNumber: routing_number,
25
+ address: address&.represent
26
+ }
27
+ params.compact
28
+ end
29
+ end
30
+ end
31
+ end
data/lib/unit/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Unit
4
- VERSION = "1.0.3"
4
+ VERSION = "1.0.4"
5
5
  end
data/lib/unit_ruby_sdk.rb CHANGED
@@ -36,6 +36,8 @@ module Unit
36
36
  autoload :BusinessContact, "unit/types/business_contact"
37
37
  autoload :DeviceFingerprint, "unit/types/device_fingerprint"
38
38
  autoload :EvaluationParams, "unit/types/evaluation_params"
39
+ autoload :Counterparty, "unit/types/counterparty"
40
+ autoload :WireCounterparty, "unit/types/wire_counterparty"
39
41
  autoload :FullName, "unit/types/full_name"
40
42
  autoload :Officer, "unit/types/officer"
41
43
  autoload :Phone, "unit/types/phone"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unit_ruby_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Unit
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-12 00:00:00.000000000 Z
11
+ date: 2023-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: factory_bot_rails
@@ -109,6 +109,12 @@ files:
109
109
  - lib/unit/errors/unit_error.rb
110
110
  - lib/unit/errors/unit_error_payload.rb
111
111
  - lib/unit/models/account/account.rb
112
+ - lib/unit/models/account/credit/balance_history_request.rb
113
+ - lib/unit/models/account/credit/close_account_request.rb
114
+ - lib/unit/models/account/credit/create_account_request.rb
115
+ - lib/unit/models/account/credit/freeze_account_request.rb
116
+ - lib/unit/models/account/credit/list_account_params.rb
117
+ - lib/unit/models/account/credit/patch_account_request.rb
112
118
  - lib/unit/models/account/deposit/account_owners_request.rb
113
119
  - lib/unit/models/account/deposit/balance_history_request.rb
114
120
  - lib/unit/models/account/deposit/close_deposit_account_request.rb
@@ -157,7 +163,14 @@ files:
157
163
  - lib/unit/models/customer/patch_business_customer_request.rb
158
164
  - lib/unit/models/customer/patch_individual_customer_request.rb
159
165
  - lib/unit/models/customer/remove_authorized_users_request.rb
166
+ - lib/unit/models/payment/create_ach_payment_inline_request.rb
160
167
  - lib/unit/models/payment/create_book_payment_request.rb
168
+ - lib/unit/models/payment/create_payment_linked_request.rb
169
+ - lib/unit/models/payment/create_wire_payment_request.rb
170
+ - lib/unit/models/payment/create_with_plaid_token_request.rb
171
+ - lib/unit/models/payment/get_request.rb
172
+ - lib/unit/models/payment/list_payment_params.rb
173
+ - lib/unit/models/payment/patch_ach_payment_request.rb
161
174
  - lib/unit/models/payment/patch_book_payment_request.rb
162
175
  - lib/unit/models/payment/payment.rb
163
176
  - lib/unit/models/statement/get_bank_verification_pdf.rb
@@ -167,6 +180,8 @@ files:
167
180
  - lib/unit/models/statement/statement.rb
168
181
  - lib/unit/models/transaction/get_transaction_params.rb
169
182
  - lib/unit/models/transaction/list_transaction_params.rb
183
+ - lib/unit/models/transaction/patch_book_transaction_request.rb
184
+ - lib/unit/models/transaction/patch_chargeback_transaction_request.rb
170
185
  - lib/unit/models/transaction/patch_tags_request.rb
171
186
  - lib/unit/models/transaction/transaction.rb
172
187
  - lib/unit/models/unit_resource.rb
@@ -176,6 +191,7 @@ files:
176
191
  - lib/unit/types/beneficial_owner.rb
177
192
  - lib/unit/types/business_contact.rb
178
193
  - lib/unit/types/coordinates.rb
194
+ - lib/unit/types/counterparty.rb
179
195
  - lib/unit/types/device_fingerprint.rb
180
196
  - lib/unit/types/document_file_type.rb
181
197
  - lib/unit/types/evaluation_params.rb
@@ -186,6 +202,7 @@ files:
186
202
  - lib/unit/types/relationship.rb
187
203
  - lib/unit/types/relationship_array.rb
188
204
  - lib/unit/types/restricted_resource.rb
205
+ - lib/unit/types/wire_counterparty.rb
189
206
  - lib/unit/utils/http_helper.rb
190
207
  - lib/unit/version.rb
191
208
  - lib/unit_ruby_sdk.rb