unit_ruby_sdk 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4427f4ca95ba8cf893f2e7c9ff5c21605419518429095a8aff3a41cd8876fed9
4
- data.tar.gz: 672fd892ed734631361b0f94b52b3ca95bc88780a6f4f9942b278c956526f245
3
+ metadata.gz: 8dffd0552f07ada33b8cf7784a77ed1920c614648fd98279ec5df4a0556ea3c2
4
+ data.tar.gz: c825b344c162333143e63902e68b4c5bbdae064c6578d077de9b70b927699403
5
5
  SHA512:
6
- metadata.gz: bef4edade650df1097bda85a10b7d81c614a4dc0d9e05247335e25d079a00fb2da81b71fd440963bd7bce69fede707bafd2c5c56230725dc9998b2ffdc8418af
7
- data.tar.gz: a5db0ecc8a1baa2a2d48f523f4e4e05ad8dc98c58ba9da7fb82bd4acd8be4ef22e1502607f764eec055bdc92e2b3b947fef9b479f8ac83841725c90bacc14c5a
6
+ metadata.gz: 7fbb567aac32e7fa8e30673fef006bdb02584ebab67a414798ebcd027cf477e652ece5366a0c672317f0a9fd69389349640c160b237d4539f7b0f35c8c36ef41
7
+ data.tar.gz: affbc56b24a3182ddaf5f060a9dedc68f7c49b51213e683a6854a9a78a88e5e7f1a8e515cd250a031f6c8c6b00435b46833744f94b7b44d8ce12dbbab8e458ce
data/.rubocop.yml CHANGED
@@ -5,6 +5,9 @@ Style/StringLiterals:
5
5
  Enabled: true
6
6
  EnforcedStyle: double_quotes
7
7
 
8
+ Lint/DuplicateMethods:
9
+ Enabled: false
10
+
8
11
  Style/StringLiteralsInInterpolation:
9
12
  Enabled: true
10
13
  EnforcedStyle: double_quotes
data/README.md CHANGED
@@ -14,7 +14,8 @@ gem install unit_ruby_sdk
14
14
 
15
15
  ## Usage
16
16
 
17
- Bellow are a few usage examples of Unit's Ruby SDK. For full documentation of Unit's API please refer to the full documentation at https://docs.unit.co/
17
+ Bellow are a few usage examples of Unit's Ruby SDK. For full documentation of Unit's API please refer to the full
18
+ documentation at https://docs.unit.co/
18
19
 
19
20
  ### Creating a Business Application
20
21
 
@@ -53,10 +54,10 @@ contents = file.read
53
54
  file.close
54
55
 
55
56
  upload_document_request = Unit::Application.upload_document(
56
- application_id: "836683",
57
- document_id: "125214",
58
- file: contents,
59
- file_type: Unit::Types::DocumentFileType::PDF,
57
+ application_id: "836683",
58
+ document_id: "125214",
59
+ file: contents,
60
+ file_type: Unit::Types::DocumentFileType::PDF,
60
61
  is_back_side: true)
61
62
 
62
63
  puts upload_document_request.data["id"]
@@ -72,54 +73,56 @@ phone = Unit::Types::Phone.new('380', '555123222')
72
73
  email = 'jone.doe@unit-finance.com'
73
74
  ssn = '123456789'
74
75
  trust_contact = Unit::Types::TrustContact.new(full_name, email, phone, address)
75
- beneficiaries = [Unit::Types::Beneficiary.new(full_name, date_of_birth).represent]
76
- grantor = Unit::Types::Grantor.new(full_name, ssn, email, phone, address, date_of_birth)
76
+ beneficiaries = [Unit::Types::Beneficiary.new(full_name, date_of_birth).represent]
77
+ grantor = Unit::Types::Grantor.new(full_name, ssn, email, phone, address, date_of_birth)
77
78
  trustees = [Unit::Types::Trustee.new(full_name, ssn, email, phone, address, date_of_birth).represent]
78
79
 
79
-
80
80
  response = Unit::Application.create_trust_application(
81
- name: "Trust me Inc.",
82
- state_of_incorporation: "CA",
83
- revocability: "Revocable",
84
- source_of_funds: "Salary",
85
- tax_id: "123456789",
86
- grantor: grantor,
87
- trustees: trustees,
88
- beneficiaries: beneficiaries,
89
- contact: trust_contact,
90
- ip: "127.0.0.2",
91
- tags: {
92
- "userId": "106a75e9-de77-4e25-9561-faffe59d7814"
93
- },
94
- idempotency_key: "3a1a33be-4e12-4603-9ed0-820922389fb8")
81
+ name: "Trust me Inc.",
82
+ state_of_incorporation: "CA",
83
+ revocability: "Revocable",
84
+ source_of_funds: "Salary",
85
+ tax_id: "123456789",
86
+ grantor: grantor,
87
+ trustees: trustees,
88
+ beneficiaries: beneficiaries,
89
+ contact: trust_contact,
90
+ ip: "127.0.0.2",
91
+ tags: {
92
+ "userId": "106a75e9-de77-4e25-9561-faffe59d7814"
93
+ },
94
+ idempotency_key: "3a1a33be-4e12-4603-9ed0-820922389fb8")
95
95
 
96
96
  trust_application = response.data
97
97
  puts trust_application["id"]
98
98
  ```
99
99
 
100
100
  ### Creating a deposit account request
101
+
101
102
  ```ruby
102
103
  relationships = { "customer": Unit::Types::Relationship.new("customer", "111009").to_hash }
103
104
  response = Unit::Account::Deposit.create_deposit_account(
104
- deposit_product: "checking",
105
- tags: { "purpose": "checking" },
105
+ deposit_product: "checking",
106
+ tags: { "purpose": "checking" },
106
107
  relationships: relationships)
107
108
  deposit_account = response.data
108
109
  puts deposit_account["id"]
109
110
  ```
110
111
 
111
112
  ### Creating a credit account request
113
+
112
114
  ```ruby
113
115
  response = Unit::Account::Credit.create_credit_account(
114
- credit_terms: "credit_terms_test",
115
- credit_limit: 20_000,
116
- customer_id: "851228",
116
+ credit_terms: "credit_terms_test",
117
+ credit_limit: 20_000,
118
+ customer_id: "851228",
117
119
  tags: { "purpose": "tax" })
118
120
  credit_account = response.data
119
121
  puts credit_account["id"]
120
122
  ```
121
123
 
122
124
  ### Creating a batch release request
125
+
123
126
  ```ruby
124
127
  requests =
125
128
  [
@@ -128,10 +131,9 @@ requests =
128
131
  ]
129
132
  response = Unit::Payment.create_batch_release(requests)
130
133
  batch_release = response.data
131
- puts batch_release[0].id
134
+ puts batch_release[0]["id"]
132
135
  ```
133
136
 
134
-
135
137
  ### Fetching a Customer
136
138
 
137
139
  ```ruby
@@ -144,14 +146,14 @@ puts customer["id"]
144
146
  ```
145
147
 
146
148
  ### Creating a Payment
147
-
149
+
148
150
  ```ruby
149
151
  require 'unit_ruby_sdk'
150
152
 
151
153
  response = Unit::Payment.create_book_payment(
152
- amount: 1000,
153
- description: "test payment",
154
- account_id: "27573",
154
+ amount: 1000,
155
+ description: "test payment",
156
+ account_id: "27573",
155
157
  counterparty_account_id: "36981"
156
158
  )
157
159
  payment = response.data
@@ -174,11 +176,11 @@ response = Unit::Authorization.get_authorization(
174
176
  include_non_authorized: true
175
177
  )
176
178
  authorization = response.data
177
- puts authorization.id
179
+ puts authorization["id"]
178
180
  ```
179
181
 
180
-
181
182
  ### Creating an individual debit card
183
+
182
184
  ```ruby
183
185
  response = Unit::Card.create_individual_debit_card(
184
186
  account_id: '1234',
@@ -193,14 +195,17 @@ puts card["id"]
193
195
  ```
194
196
 
195
197
  ### Updating a received payment
198
+
196
199
  ```ruby
197
200
  response = Unit::ReceivedPayment.update_payment(
198
- payment_id: "1232",
201
+ payment_id: "1232",
199
202
  tags: { purpose: "test" })
200
203
  received_payment = response.data
201
204
  puts received_payment["id"]
205
+ ```
202
206
 
203
207
  ### Creating a business credit card
208
+
204
209
  ```ruby
205
210
  full_name = Unit::Types::FullName.new('John', 'Doe')
206
211
  date_of_birth = '1980-08-10'
@@ -208,18 +213,19 @@ address = Unit::Types::Address.new('123 Main St', 'San Francisco', 'CA', '94205'
208
213
  phone = Unit::Types::Phone.new('380', '555123222')
209
214
  email = 'jone.doe@unit-finance.com'
210
215
  response = Unit::Card.create_business_credit_card(
211
- account_id: "1234",
216
+ account_id: "1234",
212
217
  full_name: full_name,
213
- date_of_birth: date_of_birth,
214
- address: address,
215
- phone: phone,
218
+ date_of_birth: date_of_birth,
219
+ address: address,
220
+ phone: phone,
216
221
  email: email
217
222
  )
218
223
  charge_card = response.data
219
- puts charge_card.id
224
+ puts charge_card["id"]
220
225
  ```
221
226
 
222
227
  ### Creating a check deposit
228
+
223
229
  ```ruby
224
230
  response = Unit::CheckDeposit.create_deposit(
225
231
  account_id: account_id,
@@ -231,54 +237,57 @@ puts deposit["id"]
231
237
  ```
232
238
 
233
239
  ### Creating a counterparty with a plaid token
240
+
234
241
  ```ruby
235
242
  response = Unit::Counterparty.create_with_plaid_token(
236
- customer_id: "823139",
237
- type: "Business",
238
- name: "Jo Joel",
243
+ customer_id: "823139",
244
+ type: "Business",
245
+ name: "Jo Joel",
239
246
  plaid_processor_token: "processor-sandbox-plaid-token")
240
247
 
241
248
  counterparty = response.data
242
249
  puts counterparty["id"]
243
250
  ```
244
251
 
245
-
246
252
  ### Creating a Payment to linked counterparty
253
+
247
254
  ```ruby
248
255
  response = Unit::Payment.create_ach_payment_linked(
249
- account_id: "123456",
250
- counterparty_id: "56784",
251
- amount: 1000,
252
- direction: "Credit",
253
- description: "test payment"
254
- )
255
- ach_payment = response.data
256
- puts ach_payment["id"]
256
+ account_id: "123456",
257
+ counterparty_id: "56784",
258
+ amount: 1000,
259
+ direction: "Credit",
260
+ description: "test payment"
261
+ )
262
+ ach_payment = response.data
263
+ puts ach_payment["id"]
257
264
  ```
258
265
 
259
266
  ### Creating a recurring payment
267
+
260
268
  ```ruby
261
269
  schedule = Unit::Types::CreateSchedule.new("Monthly", 3)
262
- response = Unit::RecurringPayment.create_recurring_credit_book_payment(account_id: "27573", counterparty_id: "36099", amount: 1000,
263
- description: "test payme", schedule: schedule)
264
- recurring_payment = response.data
265
- puts recurring_payment["id"]
270
+ response = Unit::RecurringPayment.create_recurring_credit_book_payment(account_id: "27573", counterparty_id: "36099", amount: 1000,
271
+ description: "test payme", schedule: schedule)
272
+ recurring_payment = response.data
273
+ puts recurring_payment["id"]
266
274
  ```
267
275
 
268
-
269
276
  ### Creating a wire payment
277
+
270
278
  ```ruby
271
279
  address = Unit::Types::Address.new('123 Main St', 'San Francisco', 'CA', '94205', 'US')
272
- response = Unit::Payment.create_wire_payment(
273
- account_id: "1234",
274
- amount: 1000,
275
- description: "test payment",
276
- counterparty: Unit::Types::WireCounterparty.new("Jane Doe", "27573", "812345678", address))
277
- wire_payment = response.data
278
- puts wire_payment["id"]
280
+ response = Unit::Payment.create_wire_payment(
281
+ account_id: "1234",
282
+ amount: 1000,
283
+ description: "test payment",
284
+ counterparty: Unit::Types::WireCounterparty.new("Jane Doe", "27573", "812345678", address))
285
+ wire_payment = response.data
286
+ puts wire_payment["id"]
279
287
  ```
280
288
 
281
289
  ### Get an event by id
290
+
282
291
  ```ruby
283
292
  response = Unit::Event.get_event(event_id: "12605774")
284
293
  event = response.data
@@ -286,6 +295,7 @@ puts event.id
286
295
  ```
287
296
 
288
297
  ### Creating a bulk payment
298
+
289
299
  ```ruby
290
300
  address = Unit::Types::Address.new('123 Main St', 'San Francisco', 'CA', '94205', 'US')
291
301
  wire_counterparty = Unit::Types::WireCounterparty.new("Jane Doe", "27573", "812345678", address)
@@ -302,21 +312,36 @@ bulk_payment = response.data
302
312
  puts bulk_payment["id"]
303
313
  ```
304
314
 
315
+ ### Creating a stop payment
316
+
317
+ ```ruby
318
+ response = Unit::StopPayment.create_stop_payment(
319
+ account_id: "165432",
320
+ amount: 10_345,
321
+ check_number: "123456",
322
+ tags: { "test": "122" }
323
+ )
324
+ stop_payment = response.data
325
+ puts stop_payment["id"]
326
+ ```
327
+
305
328
  ### Creating a book repayment
329
+
306
330
  ```ruby
307
331
  response = Unit::Repayment.create_book_repayment(
308
332
  account_id: "10001",
309
333
  credit_account_id: "10002",
310
- counterparty_account_id: "10003",
334
+ counterparty_account_id: "10003",
311
335
  description: "test", amount: 100,
312
- transaction_summary_override: "override",
313
- tags: { purpose: "test" },
336
+ transaction_summary_override: "override",
337
+ tags: { purpose: "test" },
314
338
  idempotency_key: "3a1a33be-4e12-4603-9ed0-820922389fb8")
315
339
  book_repayment = response.data
316
340
  puts book_repayment["id"]
317
341
  ```
318
342
 
319
343
  ### Creating a control agreement
344
+
320
345
  ```ruby
321
346
  response = Unit::Account::DACA.activate_control_agreement(account_id: "1234")
322
347
  control_agreement = response.data
@@ -324,22 +349,21 @@ puts control_agreement["id"]
324
349
  ```
325
350
 
326
351
  ### Get a check payment by id
352
+
327
353
  ```ruby
328
354
  response = Unit::CheckPayment.get_payment(payment_id: "199")
329
355
  check_payment = response.data
330
356
  puts check_payment["id"]
331
357
  ```
332
- ### Logging Errors
333
-
334
- ### Handling Response
335
358
 
336
359
  ### Creating a webhook
360
+
337
361
  ```ruby
338
362
  response = Unit::Webhook.create_webhook(
339
- label: "some label",
363
+ label: "some label",
340
364
  url: "https://webhook.site/81ee6b53-fde4-4b7d-85a0-0b6249a4488d",
341
- token: "MyToken",
342
- content_type: "Json",
365
+ token: "MyToken",
366
+ content_type: "Json",
343
367
  delivery_mode: "AtLeastOnce",
344
368
  include_resources: false,
345
369
  subscription_type: "OnlyAuthorizationRequest")
@@ -348,20 +372,23 @@ puts webhook["id"]
348
372
  ```
349
373
 
350
374
  ### Creating a fee
375
+
351
376
  ```ruby
352
377
  response = Unit::Fee.create_fee(
353
- account_id: "27573",
354
- amount: 12_345,
355
- description: "test",
356
- tags: { purpose: "test" },
378
+ account_id: "27573",
379
+ amount: 12_345,
380
+ description: "test",
381
+ tags: { purpose: "test" },
357
382
  idempotency_key: "123"
358
383
  )
359
384
  fee = response.data
360
385
  puts fee["id"]
361
386
  ```
362
387
 
388
+ ### Logging Errors
363
389
 
364
390
  ### Handling Response
391
+
365
392
  ```ruby
366
393
  require 'unit_ruby_sdk'
367
394
 
@@ -375,6 +402,6 @@ if response.instance_of?(Unit::UnitResponse)
375
402
  # handle response
376
403
  else
377
404
  # handle error
378
- response.errors.each{|error| puts error.title}
405
+ response.errors.each { |error| puts error.title }
379
406
  end
380
407
  ```
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "./base_resource"
4
+ require_relative "../utils/http_helper"
5
+ require "json"
6
+
7
+ # class for creating request for stop payments to Unit API and parsing responses
8
+ # @see https://docs.unit.co/stop-payments
9
+ module Unit
10
+ module Resource
11
+ class StopPaymentResource < Unit::Resource::BaseResource
12
+ class << self
13
+ # Create a stop payment by calling Unit's API
14
+ # @param request [CreateStopPaymentRequest]
15
+ # @return [UnitResponse, UnitError]
16
+ def create_payment(request)
17
+ payload = request.to_json_api
18
+ response = HttpHelper.post("#{api_url}/stop-payments", body: payload, headers: headers)
19
+ response_handler(response)
20
+ end
21
+
22
+ # Get a stop payment by calling Unit's API
23
+ # @param payment_id [String]
24
+ # @return [UnitResponse, UnitError]
25
+ def get(payment_id)
26
+ response = HttpHelper.get("#{api_url}/stop-payments/#{payment_id}", headers: headers)
27
+ response_handler(response)
28
+ end
29
+
30
+ # Get a list of stop payments by calling Unit's API
31
+ # @param params [ListStopPaymentParams]
32
+ # @return [UnitResponse, UnitError]
33
+ def list(params = nil)
34
+ response = HttpHelper.get("#{api_url}/stop-payments", params: params.to_hash, headers: headers)
35
+ response_handler(response)
36
+ end
37
+
38
+ # Disable a stop payment by calling Unit's API
39
+ # @param payment_id [String]
40
+ # @return [UnitResponse, UnitError]
41
+ def disable_payment(payment_id)
42
+ response = HttpHelper.post("#{api_url}/stop-payments/#{payment_id}/disable", headers: headers)
43
+ response_handler(response)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -99,16 +99,12 @@ module Unit
99
99
  # @param phone [Phone]
100
100
  # @param email [String]
101
101
  # @param sole_proprietorship [Boolean]
102
- # @param industry [String]
103
102
  # @param ssn [String] - optional
104
103
  # @param passport [String] - optional
105
104
  # @param ein [String] - optional
106
105
  # @param dba [String] - optional
107
106
  # @param power_of_attorney_agent [PowerOfAttorneyAgent] - optional
108
107
  # @param evaluation_params [EvaluationParams] - optional
109
- # @param occupation [String] - optional
110
- # @param annual_income [String] - optional
111
- # @param source_of_income [String] - optional
112
108
  # @param annual_revenue [String] - optional
113
109
  # @param number_of_employees [String] - optional
114
110
  # @param business_vertical [String] - optional
@@ -120,13 +116,12 @@ module Unit
120
116
  # @param jwt_subject [String] - optional
121
117
  # @return [UnitResponse, UnitError]
122
118
  def create_sole_proprietor_application(nationality:, full_name:, date_of_birth:, address:, phone:,
123
- email:, industry:, ssn: nil, passport: nil, ein: nil, dba: nil, power_of_attorney_agent: nil, evaluation_params: nil,
124
- occupation: nil, annual_income: nil, source_of_income: nil, annual_revenue: nil,
125
- number_of_employees: nil, business_vertical: nil, website: nil, ip: nil, tags: nil,
119
+ email:, ssn: nil, passport: nil, ein: nil, dba: nil, power_of_attorney_agent: nil, evaluation_params: nil,
120
+ annual_revenue: nil, number_of_employees: nil, business_vertical: nil, website: nil, ip: nil, tags: nil,
126
121
  idempotency_key: nil, device_fingerprints: nil, jwt_subject: nil, sole_proprietorship: true)
127
122
  request = CreateSoleProprietorApplicationRequest.new(nationality, full_name, date_of_birth, address, phone,
128
- email, industry, ssn, passport, ein, dba, power_of_attorney_agent, evaluation_params,
129
- occupation, annual_income, source_of_income, annual_revenue, number_of_employees,
123
+ email, ssn, passport, ein, dba, power_of_attorney_agent, evaluation_params,
124
+ annual_revenue, number_of_employees,
130
125
  business_vertical, website, ip, tags, idempotency_key,
131
126
  device_fingerprints, jwt_subject, sole_proprietorship: sole_proprietorship)
132
127
  Unit::Resource::ApplicationResource.create_application(request)
@@ -83,10 +83,10 @@ module Unit
83
83
  ip: ip,
84
84
  website: website,
85
85
  tags: tags,
86
- idempotency_key: idempotency_key,
87
- device_fingerprints: device_fingerprints,
88
- annual_revenue: annual_revenue,
89
- number_of_employees: number_of_employees,
86
+ idempotencyKey: idempotency_key,
87
+ deviceFingerprints: device_fingerprints,
88
+ annualRevenue: annual_revenue,
89
+ numberOfEmployees: number_of_employees,
90
90
  cashFlow: cash_flow,
91
91
  yearOfIncorporation: year_of_incorporation,
92
92
  countriesOfOperation: countries_of_operation&.join(","),
@@ -77,7 +77,7 @@ module Unit
77
77
  soleProprietorship: sole_proprietorship,
78
78
  passport: passport,
79
79
  nationality: nationality,
80
- device_fingerprints: device_fingerprints,
80
+ deviceFingerprints: device_fingerprints,
81
81
  idempotencyKey: idempotency_key,
82
82
  tags: tags,
83
83
  jwtSubject: jwt_subject,
@@ -6,9 +6,9 @@ module Unit
6
6
  module Application
7
7
  class CreateSoleProprietorApplicationRequest
8
8
  attr_reader :ssn, :passport, :nationality, :full_name, :date_of_birth,
9
- :address, :phone, :email, :sole_proprietorship, :ein, :industry,
10
- :dba, :power_of_attorney_agent, :evaluation_params, :occupation,
11
- :annual_income, :source_of_income, :annual_revenue, :number_of_employees,
9
+ :address, :phone, :email, :sole_proprietorship, :ein,
10
+ :dba, :power_of_attorney_agent, :evaluation_params,
11
+ :annual_revenue, :number_of_employees,
12
12
  :business_vertical, :website, :ip, :tags, :idempotency_key,
13
13
  :device_fingerprints, :jwt_subject
14
14
 
@@ -19,16 +19,12 @@ module Unit
19
19
  # @param phone [Phone]
20
20
  # @param email [String]
21
21
  # @param sole_proprietorship [Boolean]
22
- # @param industry [String]
23
22
  # @param ssn [String] - optional
24
23
  # @param passport [String] - optional
25
24
  # @param ein [String] - optional
26
25
  # @param dba [String] - optional
27
26
  # @param power_of_attorney_agent [PowerOfAttorneyAgent] - optional
28
27
  # @param evaluation_params [EvaluationParams] - optional
29
- # @param occupation [String] - optional
30
- # @param annual_income [String] - optional
31
- # @param source_of_income [String] - optional
32
28
  # @param annual_revenue [String] - optional
33
29
  # @param number_of_employees [String] - optional
34
30
  # @param business_vertical [String] - optional
@@ -39,9 +35,8 @@ module Unit
39
35
  # @param device_fingerprints [Array<DeviceFingerprint>] - optional
40
36
  # @param jwt_subject [String] - optional
41
37
  def initialize(nationality, full_name, date_of_birth, address, phone,
42
- email, industry, ssn = nil, passport = nil, ein = nil, dba = nil, power_of_attorney_agent = nil, evaluation_params = nil,
43
- occupation = nil, annual_income = nil, source_of_income = nil, annual_revenue = nil,
44
- number_of_employees = nil, business_vertical = nil, website = nil, ip = nil, tags = nil,
38
+ email, ssn = nil, passport = nil, ein = nil, dba = nil, power_of_attorney_agent = nil, evaluation_params = nil,
39
+ annual_revenue = nil, number_of_employees = nil, business_vertical = nil, website = nil, ip = nil, tags = nil,
45
40
  idempotency_key = nil, device_fingerprints = nil, jwt_subject = nil, sole_proprietorship: true)
46
41
  @ssn = ssn
47
42
  @passport = passport
@@ -53,13 +48,9 @@ module Unit
53
48
  @email = email
54
49
  @sole_proprietorship = sole_proprietorship
55
50
  @ein = ein
56
- @industry = industry
57
51
  @dba = dba
58
52
  @power_of_attorney_agent = power_of_attorney_agent
59
53
  @evaluation_params = evaluation_params
60
- @occupation = occupation
61
- @annual_income = annual_income
62
- @source_of_income = source_of_income
63
54
  @annual_revenue = annual_revenue
64
55
  @number_of_employees = number_of_employees
65
56
  @business_vertical = business_vertical
@@ -86,13 +77,9 @@ module Unit
86
77
  email: email,
87
78
  soleProprietorship: sole_proprietorship,
88
79
  ein: ein,
89
- industry: industry,
90
80
  dba: dba,
91
81
  powerOfAttorneyAgent: power_of_attorney_agent&.represent,
92
82
  evaluationParams: evaluation_params&.represent,
93
- occupation: occupation,
94
- annualIncome: annual_income,
95
- sourceOfIncome: source_of_income,
96
83
  annualRevenue: annual_revenue,
97
84
  numberOfEmployees: number_of_employees,
98
85
  businessVertical: business_vertical,
@@ -28,7 +28,7 @@ module Unit
28
28
  amount: amount,
29
29
  description: description,
30
30
  tags: tags,
31
- idempotency_key: idempotency_key
31
+ idempotencyKey: idempotency_key
32
32
  },
33
33
  "relationships": {
34
34
  "account": Unit::Types::Relationship.new("account", account_id).to_hash
@@ -34,7 +34,7 @@ module Unit
34
34
  address: address&.represent,
35
35
  phone: phone&.represent,
36
36
  contact: contact&.represent,
37
- authorized_users: authorized_users&.map(&:represent),
37
+ authorizedUsers: authorized_users&.map(&:represent),
38
38
  dba: dba,
39
39
  tags: tags
40
40
  }
@@ -35,7 +35,7 @@ module Unit
35
35
  phone: phone&.represent,
36
36
  email: email,
37
37
  dba: dba,
38
- authorized_users: authorized_users&.map(&:represent),
38
+ authorizedUsers: authorized_users&.map(&:represent),
39
39
  tags: tags
40
40
  }
41
41
  }
@@ -16,6 +16,7 @@ module Unit
16
16
  autoload :BulkPaymentRequest, "unit/models/payment/bulk_payment_request"
17
17
  autoload :CreateBatchReleaseRequest, "unit/models/payment/create_batch_release_request"
18
18
  autoload :BatchReleaseRequestBuilder, "unit/models/payment/batch_release_request_builder"
19
+
19
20
  class << self
20
21
  # Create a new book payment by calling Unit's API
21
22
  # @see https://docs.unit.co/book-payments#book-payments
@@ -201,6 +202,6 @@ module Unit
201
202
  end
202
203
  Unit::Resource::PaymentResource.create_batch_release(payload.to_hash)
203
204
  end
204
- end
205
+ end
205
206
  end
206
207
  end
@@ -35,7 +35,7 @@ module Unit
35
35
  "amount": amount,
36
36
  "description": description,
37
37
  "schedule": schedule&.represent,
38
- "transaction_summary_override": transaction_summary_override,
38
+ "transactionSummaryOverride": transaction_summary_override,
39
39
  "idempotencyKey": idempotency_key,
40
40
  "tags": tags
41
41
  },
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Request to create a stop payment
4
+ # @see https://docs.unit.co/stop-payments#create-stop-payment
5
+ module Unit
6
+ module StopPayment
7
+ class CreateStopPaymentRequest
8
+ attr_reader :account_id, :amount, :check_number, :tags, :idempotency_key
9
+
10
+ # @param account_id [String]
11
+ # @param amount [Integer]
12
+ # @param check_number [String]
13
+ # @param tags [Hash] - optional
14
+ # @param idempotency_key [String] - optional
15
+ def initialize(account_id, amount, check_number, tags = nil, idempotency_key = nil)
16
+ @account_id = account_id
17
+ @amount = amount
18
+ @check_number = check_number
19
+ @tags = tags
20
+ @idempotency_key = idempotency_key
21
+ end
22
+
23
+ def to_json_api
24
+ payload = {
25
+ data: {
26
+ type: "stopPayment",
27
+ attributes: {
28
+ amount: amount,
29
+ checkNumber: check_number,
30
+ tags: tags,
31
+ idempotencyKey: idempotency_key
32
+ },
33
+ "relationships": {
34
+ "account": Unit::Types::Relationship.new("depositAccount", account_id).to_hash
35
+ }
36
+ }
37
+ }
38
+ payload[:data][:attributes].compact!
39
+ payload.to_json
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Request to list stop payments
4
+ # @see https://docs.unit.co/stop-payments#list-stop-payments
5
+ module Unit
6
+ module StopPayment
7
+ class ListStopPaymentParams
8
+ attr_reader :limit, :offset, :account_id, :customer_id, :tags, :sort,
9
+ :since, :_until, :status, :from_amount, :to_amount, :check_number, :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 tags [Hash] - optional
16
+ # @param sort [String] - optional
17
+ # @param since [String] - optional
18
+ # @param _until [String] - optional
19
+ # @param status [Array<String>] - optional
20
+ # @param from_amount [String] - optional
21
+ # @param to_amount [String] - optional
22
+ # @param check_number [String] - optional
23
+ # @param include [Array<String>] - optional
24
+ def initialize(limit = STOP_PAYMENT_LIMIT, offset = STOP_PAYMENT_OFFSET, account_id = nil,
25
+ customer_id = nil, tags = nil, sort = nil, since = nil, _until = nil, status = nil, from_amount = nil,
26
+ to_amount = nil, check_number = nil, include = nil)
27
+ @limit = limit
28
+ @offset = offset
29
+ @account_id = account_id
30
+ @customer_id = customer_id
31
+ @tags = tags
32
+ @sort = sort
33
+ @since = since
34
+ @until = _until
35
+ @status = status
36
+ @from_amount = from_amount
37
+ @to_amount = to_amount
38
+ @check_number = check_number
39
+ @include = include
40
+ end
41
+
42
+ def to_hash
43
+ params = {
44
+ "page[limit]": limit,
45
+ "page[offset]": offset,
46
+ "filter[accountId]": account_id,
47
+ "filter[customerId]": customer_id,
48
+ "filter[tags]": tags,
49
+ "sort": sort,
50
+ "filter[since]": since,
51
+ "filter[until]": _until,
52
+ "filter[fromAmount]": from_amount,
53
+ "filter[toAmount]": to_amount,
54
+ "filter[checkNumber]": check_number,
55
+ "include": include&.join(",")
56
+ }
57
+ status&.each_with_index&.map do |val, index|
58
+ params.merge!({ "filter[status][#{index}]": val })
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Unit
4
+ module StopPayment
5
+ STOP_PAYMENT_LIMIT = 100
6
+ STOP_PAYMENT_OFFSET = 0
7
+
8
+ autoload :CreateStopPaymentRequest, "unit/models/stop_payment/create_stop_payment_request"
9
+ autoload :ListStopPaymentParams, "unit/models/stop_payment/list_stop_payment_params"
10
+
11
+ class << self
12
+ # Create a stop payment
13
+ # @see https://docs.unit.co/stop-payments#create-stop-payment
14
+ # @param amount [Integer]
15
+ # @param check_number [String]
16
+ # @param tags [Hash] - optional
17
+ # @param idempotency_key [String] - optional
18
+ def create_stop_payment(account_id:, amount:, check_number:, tags: nil, idempotency_key: nil)
19
+ request = CreateStopPaymentRequest.new(account_id, amount, check_number, tags, idempotency_key)
20
+ Unit::Resource::StopPaymentResource.create_payment(request)
21
+ end
22
+
23
+ # Get a stop payment
24
+ # @see https://docs.unit.co/stop-payments#get-specific-stop-payment
25
+ # @param payment_id [String]
26
+ def get_payment(payment_id:)
27
+ Unit::Resource::StopPaymentResource.get(payment_id)
28
+ end
29
+
30
+ # Request to list stop payments
31
+ # @see https://docs.unit.co/stop-payments#list-stop-payments
32
+ # @param limit [Integer] - optional
33
+ # @param offset [Integer] - optional
34
+ # @param account_id [String] - optional
35
+ # @param customer_id [String] - optional
36
+ # @param tags [Hash] - optional
37
+ # @param sort [String] - optional
38
+ # @param since [String] - optional
39
+ # @param _until [String] - optional
40
+ # @param status [Array<String>] - optional
41
+ # @param from_amount [String] - optional
42
+ # @param to_amount [String] - optional
43
+ # @param check_number [String] - optional
44
+ # @param include [Array<String>] - optional
45
+ def list_stop_payment(limit: STOP_PAYMENT_LIMIT, offset: STOP_PAYMENT_OFFSET, account_id: nil,
46
+ customer_id: nil, tags: nil, sort: nil, since: nil, _until: nil, status: nil,
47
+ from_amount: nil, to_amount: nil, check_number: nil, include: nil)
48
+ request = ListStopPaymentParams.new(limit, offset, account_id, customer_id, tags, sort, since, _until,
49
+ status, from_amount, to_amount, check_number, include)
50
+ Unit::Resource::StopPaymentResource.list(request)
51
+ end
52
+
53
+ # Disable a stop payment
54
+ # @see https://docs.unit.co/stop-payments#disable-stop-payment
55
+ # @param payment_id [String]
56
+ def disable_stop_payment(payment_id:)
57
+ Unit::Resource::StopPaymentResource.disable_payment(payment_id)
58
+ end
59
+ end
60
+ end
61
+ end
@@ -32,10 +32,10 @@ module Unit
32
32
  attributes: {
33
33
  label: label,
34
34
  url: url,
35
- content_type: content_type,
35
+ contentType: content_type,
36
36
  token: token,
37
- include_resources: include_resources,
38
- subscription_type: subscription_type
37
+ includeResources: include_resources,
38
+ subscriptionType: subscription_type
39
39
  }
40
40
  }
41
41
  }
@@ -2,13 +2,13 @@
2
2
 
3
3
  module Unit
4
4
  module Webhook
5
- class << self
6
- WEBHOOK_LIMIT = 100
7
- WEBHOOK_OFFSET = 0
8
- autoload :CreateWebhookRequest, "unit/models/webhook/create_webhook_request"
9
- autoload :ListWebhookParams, "unit/models/webhook/list_webhook_params"
10
- autoload :PatchWebhookRequest, "unit/models/webhook/patch_webhook_request"
5
+ WEBHOOK_LIMIT = 100
6
+ WEBHOOK_OFFSET = 0
7
+ autoload :CreateWebhookRequest, "unit/models/webhook/create_webhook_request"
8
+ autoload :ListWebhookParams, "unit/models/webhook/list_webhook_params"
9
+ autoload :PatchWebhookRequest, "unit/models/webhook/patch_webhook_request"
11
10
 
11
+ class << self
12
12
  # Create a webhook
13
13
  # @see https://docs.unit.co/webhooks#create-webhook
14
14
  # @param label [String]
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.4.0"
4
+ VERSION = "1.5.0"
5
5
  end
data/lib/unit_ruby_sdk.rb CHANGED
@@ -11,6 +11,7 @@ module Unit
11
11
  autoload :Payment, "unit/models/payment/payment"
12
12
  autoload :ReceivedPayment, "unit/models/received_payment/received_payment"
13
13
  autoload :CheckPayment, "unit/models/check_payment/check_payment"
14
+ autoload :StopPayment, "unit/models/stop_payment/stop_payment"
14
15
  autoload :Transaction, "unit/models/transaction/transaction"
15
16
  autoload :Card, "unit/models/card/card"
16
17
  autoload :Statement, "unit/models/statement/statement"
@@ -35,6 +36,7 @@ module Unit
35
36
  autoload :AccountResource, "unit/api_resources/account_resource"
36
37
  autoload :ApiTokenResource, "unit/api_resources/api_token_resource"
37
38
  autoload :PaymentResource, "unit/api_resources/payment_resource"
39
+ autoload :StopPaymentResource, "unit/api_resources/stop_payment_resource"
38
40
  autoload :ReceivedPaymentResource, "unit/api_resources/received_payment_resource"
39
41
  autoload :CheckPaymentResource, "unit/api_resources/check_payment_resource"
40
42
  autoload :TransactionResource, "unit/api_resources/transaction_resource"
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.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Unit
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-08-08 00:00:00.000000000 Z
11
+ date: 2023-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: factory_bot_rails
@@ -116,6 +116,7 @@ files:
116
116
  - lib/unit/api_resources/repayment_resource.rb
117
117
  - lib/unit/api_resources/reward_resource.rb
118
118
  - lib/unit/api_resources/statement_resource.rb
119
+ - lib/unit/api_resources/stop_payment_resource.rb
119
120
  - lib/unit/api_resources/transaction_resource.rb
120
121
  - lib/unit/api_resources/webhook_resource.rb
121
122
  - lib/unit/errors/unit_error.rb
@@ -239,6 +240,9 @@ files:
239
240
  - lib/unit/models/statement/get_pdf_by_id_request.rb
240
241
  - lib/unit/models/statement/list_statement_params.rb
241
242
  - lib/unit/models/statement/statement.rb
243
+ - lib/unit/models/stop_payment/create_stop_payment_request.rb
244
+ - lib/unit/models/stop_payment/list_stop_payment_params.rb
245
+ - lib/unit/models/stop_payment/stop_payment.rb
242
246
  - lib/unit/models/transaction/get_transaction_params.rb
243
247
  - lib/unit/models/transaction/list_transaction_params.rb
244
248
  - lib/unit/models/transaction/patch_book_transaction_request.rb
@@ -283,7 +287,7 @@ homepage: https://github.com/unit-finance/unit-ruby-sdk
283
287
  licenses:
284
288
  - Mozilla Public License 2.0
285
289
  metadata: {}
286
- post_install_message:
290
+ post_install_message:
287
291
  rdoc_options: []
288
292
  require_paths:
289
293
  - lib
@@ -298,8 +302,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
298
302
  - !ruby/object:Gem::Version
299
303
  version: '0'
300
304
  requirements: []
301
- rubygems_version: 3.4.10
302
- signing_key:
305
+ rubygems_version: 3.0.3.1
306
+ signing_key:
303
307
  specification_version: 4
304
308
  summary: This library provides a Ruby wrapper to http://unit.co API. See https://docs.unit.co/
305
309
  test_files: []