processout 2.20.0 → 2.22.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +52 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Dockerfile +7 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/Makefile +4 -0
  9. data/README.md +12 -0
  10. data/Rakefile +6 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/lib/processout/activity.rb +206 -0
  14. data/lib/processout/addon.rb +401 -0
  15. data/lib/processout/alternative_merchant_certificate.rb +115 -0
  16. data/lib/processout/api_request.rb +295 -0
  17. data/lib/processout/api_version.rb +92 -0
  18. data/lib/processout/apple_pay_alternative_merchant_certificates.rb +121 -0
  19. data/lib/processout/balance.rb +92 -0
  20. data/lib/processout/balances.rb +111 -0
  21. data/lib/processout/card.rb +503 -0
  22. data/lib/processout/card_information.rb +164 -0
  23. data/lib/processout/coupon.rb +352 -0
  24. data/lib/processout/customer.rb +755 -0
  25. data/lib/processout/customer_action.rb +81 -0
  26. data/lib/processout/discount.rb +360 -0
  27. data/lib/processout/dunning_action.rb +81 -0
  28. data/lib/processout/errors/authentication_error.rb +9 -0
  29. data/lib/processout/errors/generic_error.rb +9 -0
  30. data/lib/processout/errors/internal_error.rb +9 -0
  31. data/lib/processout/errors/notfound_error.rb +9 -0
  32. data/lib/processout/errors/validation_error.rb +9 -0
  33. data/lib/processout/event.rb +237 -0
  34. data/lib/processout/gateway.rb +210 -0
  35. data/lib/processout/gateway_configuration.rb +346 -0
  36. data/lib/processout/gateway_request.rb +26 -0
  37. data/lib/processout/invoice.rb +985 -0
  38. data/lib/processout/invoice_detail.rb +235 -0
  39. data/lib/processout/invoice_device.rb +92 -0
  40. data/lib/processout/invoice_external_fraud_tools.rb +70 -0
  41. data/lib/processout/invoice_risk.rb +81 -0
  42. data/lib/processout/invoice_shipping.rb +202 -0
  43. data/lib/processout/invoice_tax.rb +81 -0
  44. data/lib/processout/networking/request.rb +102 -0
  45. data/lib/processout/networking/response.rb +67 -0
  46. data/lib/processout/payment_data_network_authentication.rb +70 -0
  47. data/lib/processout/payment_data_three_ds_authentication.rb +70 -0
  48. data/lib/processout/payment_data_three_ds_request.rb +103 -0
  49. data/lib/processout/payout.rb +379 -0
  50. data/lib/processout/payout_item.rb +238 -0
  51. data/lib/processout/plan.rb +368 -0
  52. data/lib/processout/product.rb +368 -0
  53. data/lib/processout/project.rb +353 -0
  54. data/lib/processout/refund.rb +277 -0
  55. data/lib/processout/subscription.rb +910 -0
  56. data/lib/processout/three_ds.rb +158 -0
  57. data/lib/processout/token.rb +493 -0
  58. data/lib/processout/transaction.rb +905 -0
  59. data/lib/processout/transaction_operation.rb +418 -0
  60. data/lib/processout/version.rb +3 -0
  61. data/lib/processout/webhook.rb +237 -0
  62. data/lib/processout/webhook_endpoint.rb +149 -0
  63. data/lib/processout.rb +263 -0
  64. data/processout.gemspec +26 -0
  65. metadata +66 -3
@@ -0,0 +1,755 @@
1
+ # The content of this file was automatically generated
2
+
3
+ require "cgi"
4
+ require "json"
5
+ require "processout/networking/request"
6
+ require "processout/networking/response"
7
+
8
+ module ProcessOut
9
+ class Customer
10
+
11
+ attr_reader :id
12
+ attr_reader :project
13
+ attr_reader :project_id
14
+ attr_reader :default_token
15
+ attr_reader :default_token_id
16
+ attr_reader :tokens
17
+ attr_reader :subscriptions
18
+ attr_reader :transactions
19
+ attr_reader :balance
20
+ attr_reader :currency
21
+ attr_reader :email
22
+ attr_reader :first_name
23
+ attr_reader :last_name
24
+ attr_reader :address1
25
+ attr_reader :address2
26
+ attr_reader :city
27
+ attr_reader :state
28
+ attr_reader :zip
29
+ attr_reader :country_code
30
+ attr_reader :ip_address
31
+ attr_reader :phone_number
32
+ attr_reader :legal_document
33
+ attr_reader :sex
34
+ attr_reader :is_business
35
+ attr_reader :metadata
36
+ attr_reader :sandbox
37
+ attr_reader :created_at
38
+ attr_reader :registered_at
39
+ attr_reader :date_of_birth
40
+
41
+
42
+ def id=(val)
43
+ @id = val
44
+ end
45
+
46
+ def project=(val)
47
+ if val.nil?
48
+ @project = val
49
+ return
50
+ end
51
+
52
+ if val.instance_of? Project
53
+ @project = val
54
+ else
55
+ obj = Project.new(@client)
56
+ obj.fill_with_data(val)
57
+ @project = obj
58
+ end
59
+
60
+ end
61
+
62
+ def project_id=(val)
63
+ @project_id = val
64
+ end
65
+
66
+ def default_token=(val)
67
+ if val.nil?
68
+ @default_token = val
69
+ return
70
+ end
71
+
72
+ if val.instance_of? Token
73
+ @default_token = val
74
+ else
75
+ obj = Token.new(@client)
76
+ obj.fill_with_data(val)
77
+ @default_token = obj
78
+ end
79
+
80
+ end
81
+
82
+ def default_token_id=(val)
83
+ @default_token_id = val
84
+ end
85
+
86
+ def tokens=(val)
87
+ if val.nil?
88
+ @tokens = []
89
+ return
90
+ end
91
+
92
+ if val.length > 0 and val[0].instance_of? Token
93
+ @tokens = val
94
+ else
95
+ l = Array.new
96
+ for v in val
97
+ obj = Token.new(@client)
98
+ obj.fill_with_data(v)
99
+ l.push(obj)
100
+ end
101
+ @tokens = l
102
+ end
103
+
104
+ end
105
+
106
+ def subscriptions=(val)
107
+ if val.nil?
108
+ @subscriptions = []
109
+ return
110
+ end
111
+
112
+ if val.length > 0 and val[0].instance_of? Subscription
113
+ @subscriptions = val
114
+ else
115
+ l = Array.new
116
+ for v in val
117
+ obj = Subscription.new(@client)
118
+ obj.fill_with_data(v)
119
+ l.push(obj)
120
+ end
121
+ @subscriptions = l
122
+ end
123
+
124
+ end
125
+
126
+ def transactions=(val)
127
+ if val.nil?
128
+ @transactions = []
129
+ return
130
+ end
131
+
132
+ if val.length > 0 and val[0].instance_of? Transaction
133
+ @transactions = val
134
+ else
135
+ l = Array.new
136
+ for v in val
137
+ obj = Transaction.new(@client)
138
+ obj.fill_with_data(v)
139
+ l.push(obj)
140
+ end
141
+ @transactions = l
142
+ end
143
+
144
+ end
145
+
146
+ def balance=(val)
147
+ @balance = val
148
+ end
149
+
150
+ def currency=(val)
151
+ @currency = val
152
+ end
153
+
154
+ def email=(val)
155
+ @email = val
156
+ end
157
+
158
+ def first_name=(val)
159
+ @first_name = val
160
+ end
161
+
162
+ def last_name=(val)
163
+ @last_name = val
164
+ end
165
+
166
+ def address1=(val)
167
+ @address1 = val
168
+ end
169
+
170
+ def address2=(val)
171
+ @address2 = val
172
+ end
173
+
174
+ def city=(val)
175
+ @city = val
176
+ end
177
+
178
+ def state=(val)
179
+ @state = val
180
+ end
181
+
182
+ def zip=(val)
183
+ @zip = val
184
+ end
185
+
186
+ def country_code=(val)
187
+ @country_code = val
188
+ end
189
+
190
+ def ip_address=(val)
191
+ @ip_address = val
192
+ end
193
+
194
+ def phone_number=(val)
195
+ @phone_number = val
196
+ end
197
+
198
+ def legal_document=(val)
199
+ @legal_document = val
200
+ end
201
+
202
+ def sex=(val)
203
+ @sex = val
204
+ end
205
+
206
+ def is_business=(val)
207
+ @is_business = val
208
+ end
209
+
210
+ def metadata=(val)
211
+ @metadata = val
212
+ end
213
+
214
+ def sandbox=(val)
215
+ @sandbox = val
216
+ end
217
+
218
+ def created_at=(val)
219
+ @created_at = val
220
+ end
221
+
222
+ def registered_at=(val)
223
+ @registered_at = val
224
+ end
225
+
226
+ def date_of_birth=(val)
227
+ @date_of_birth = val
228
+ end
229
+
230
+
231
+ # Initializes the Customer object
232
+ # Params:
233
+ # +client+:: +ProcessOut+ client instance
234
+ # +data+:: data that can be used to fill the object
235
+ def initialize(client, data = {})
236
+ @client = client
237
+
238
+ self.id = data.fetch(:id, nil)
239
+ self.project = data.fetch(:project, nil)
240
+ self.project_id = data.fetch(:project_id, nil)
241
+ self.default_token = data.fetch(:default_token, nil)
242
+ self.default_token_id = data.fetch(:default_token_id, nil)
243
+ self.tokens = data.fetch(:tokens, nil)
244
+ self.subscriptions = data.fetch(:subscriptions, nil)
245
+ self.transactions = data.fetch(:transactions, nil)
246
+ self.balance = data.fetch(:balance, nil)
247
+ self.currency = data.fetch(:currency, nil)
248
+ self.email = data.fetch(:email, nil)
249
+ self.first_name = data.fetch(:first_name, nil)
250
+ self.last_name = data.fetch(:last_name, nil)
251
+ self.address1 = data.fetch(:address1, nil)
252
+ self.address2 = data.fetch(:address2, nil)
253
+ self.city = data.fetch(:city, nil)
254
+ self.state = data.fetch(:state, nil)
255
+ self.zip = data.fetch(:zip, nil)
256
+ self.country_code = data.fetch(:country_code, nil)
257
+ self.ip_address = data.fetch(:ip_address, nil)
258
+ self.phone_number = data.fetch(:phone_number, nil)
259
+ self.legal_document = data.fetch(:legal_document, nil)
260
+ self.sex = data.fetch(:sex, nil)
261
+ self.is_business = data.fetch(:is_business, nil)
262
+ self.metadata = data.fetch(:metadata, nil)
263
+ self.sandbox = data.fetch(:sandbox, nil)
264
+ self.created_at = data.fetch(:created_at, nil)
265
+ self.registered_at = data.fetch(:registered_at, nil)
266
+ self.date_of_birth = data.fetch(:date_of_birth, nil)
267
+
268
+ end
269
+
270
+ # Create a new Customer using the current client
271
+ def new(data = {})
272
+ Customer.new(@client, data)
273
+ end
274
+
275
+ # Overrides the JSON marshaller to only send the fields we want
276
+ def to_json(options)
277
+ {
278
+ "id": self.id,
279
+ "project": self.project,
280
+ "project_id": self.project_id,
281
+ "default_token": self.default_token,
282
+ "default_token_id": self.default_token_id,
283
+ "tokens": self.tokens,
284
+ "subscriptions": self.subscriptions,
285
+ "transactions": self.transactions,
286
+ "balance": self.balance,
287
+ "currency": self.currency,
288
+ "email": self.email,
289
+ "first_name": self.first_name,
290
+ "last_name": self.last_name,
291
+ "address1": self.address1,
292
+ "address2": self.address2,
293
+ "city": self.city,
294
+ "state": self.state,
295
+ "zip": self.zip,
296
+ "country_code": self.country_code,
297
+ "ip_address": self.ip_address,
298
+ "phone_number": self.phone_number,
299
+ "legal_document": self.legal_document,
300
+ "sex": self.sex,
301
+ "is_business": self.is_business,
302
+ "metadata": self.metadata,
303
+ "sandbox": self.sandbox,
304
+ "created_at": self.created_at,
305
+ "registered_at": self.registered_at,
306
+ "date_of_birth": self.date_of_birth,
307
+ }.to_json
308
+ end
309
+
310
+ # Fills the object with data coming from the API
311
+ # Params:
312
+ # +data+:: +Hash+ of data coming from the API
313
+ def fill_with_data(data)
314
+ if data.nil?
315
+ return self
316
+ end
317
+ if data.include? "id"
318
+ self.id = data["id"]
319
+ end
320
+ if data.include? "project"
321
+ self.project = data["project"]
322
+ end
323
+ if data.include? "project_id"
324
+ self.project_id = data["project_id"]
325
+ end
326
+ if data.include? "default_token"
327
+ self.default_token = data["default_token"]
328
+ end
329
+ if data.include? "default_token_id"
330
+ self.default_token_id = data["default_token_id"]
331
+ end
332
+ if data.include? "tokens"
333
+ self.tokens = data["tokens"]
334
+ end
335
+ if data.include? "subscriptions"
336
+ self.subscriptions = data["subscriptions"]
337
+ end
338
+ if data.include? "transactions"
339
+ self.transactions = data["transactions"]
340
+ end
341
+ if data.include? "balance"
342
+ self.balance = data["balance"]
343
+ end
344
+ if data.include? "currency"
345
+ self.currency = data["currency"]
346
+ end
347
+ if data.include? "email"
348
+ self.email = data["email"]
349
+ end
350
+ if data.include? "first_name"
351
+ self.first_name = data["first_name"]
352
+ end
353
+ if data.include? "last_name"
354
+ self.last_name = data["last_name"]
355
+ end
356
+ if data.include? "address1"
357
+ self.address1 = data["address1"]
358
+ end
359
+ if data.include? "address2"
360
+ self.address2 = data["address2"]
361
+ end
362
+ if data.include? "city"
363
+ self.city = data["city"]
364
+ end
365
+ if data.include? "state"
366
+ self.state = data["state"]
367
+ end
368
+ if data.include? "zip"
369
+ self.zip = data["zip"]
370
+ end
371
+ if data.include? "country_code"
372
+ self.country_code = data["country_code"]
373
+ end
374
+ if data.include? "ip_address"
375
+ self.ip_address = data["ip_address"]
376
+ end
377
+ if data.include? "phone_number"
378
+ self.phone_number = data["phone_number"]
379
+ end
380
+ if data.include? "legal_document"
381
+ self.legal_document = data["legal_document"]
382
+ end
383
+ if data.include? "sex"
384
+ self.sex = data["sex"]
385
+ end
386
+ if data.include? "is_business"
387
+ self.is_business = data["is_business"]
388
+ end
389
+ if data.include? "metadata"
390
+ self.metadata = data["metadata"]
391
+ end
392
+ if data.include? "sandbox"
393
+ self.sandbox = data["sandbox"]
394
+ end
395
+ if data.include? "created_at"
396
+ self.created_at = data["created_at"]
397
+ end
398
+ if data.include? "registered_at"
399
+ self.registered_at = data["registered_at"]
400
+ end
401
+ if data.include? "date_of_birth"
402
+ self.date_of_birth = data["date_of_birth"]
403
+ end
404
+
405
+ self
406
+ end
407
+
408
+ # Prefills the object with the data passed as parameters
409
+ # Params:
410
+ # +data+:: +Hash+ of data
411
+ def prefill(data)
412
+ if data.nil?
413
+ return self
414
+ end
415
+ self.id = data.fetch(:id, self.id)
416
+ self.project = data.fetch(:project, self.project)
417
+ self.project_id = data.fetch(:project_id, self.project_id)
418
+ self.default_token = data.fetch(:default_token, self.default_token)
419
+ self.default_token_id = data.fetch(:default_token_id, self.default_token_id)
420
+ self.tokens = data.fetch(:tokens, self.tokens)
421
+ self.subscriptions = data.fetch(:subscriptions, self.subscriptions)
422
+ self.transactions = data.fetch(:transactions, self.transactions)
423
+ self.balance = data.fetch(:balance, self.balance)
424
+ self.currency = data.fetch(:currency, self.currency)
425
+ self.email = data.fetch(:email, self.email)
426
+ self.first_name = data.fetch(:first_name, self.first_name)
427
+ self.last_name = data.fetch(:last_name, self.last_name)
428
+ self.address1 = data.fetch(:address1, self.address1)
429
+ self.address2 = data.fetch(:address2, self.address2)
430
+ self.city = data.fetch(:city, self.city)
431
+ self.state = data.fetch(:state, self.state)
432
+ self.zip = data.fetch(:zip, self.zip)
433
+ self.country_code = data.fetch(:country_code, self.country_code)
434
+ self.ip_address = data.fetch(:ip_address, self.ip_address)
435
+ self.phone_number = data.fetch(:phone_number, self.phone_number)
436
+ self.legal_document = data.fetch(:legal_document, self.legal_document)
437
+ self.sex = data.fetch(:sex, self.sex)
438
+ self.is_business = data.fetch(:is_business, self.is_business)
439
+ self.metadata = data.fetch(:metadata, self.metadata)
440
+ self.sandbox = data.fetch(:sandbox, self.sandbox)
441
+ self.created_at = data.fetch(:created_at, self.created_at)
442
+ self.registered_at = data.fetch(:registered_at, self.registered_at)
443
+ self.date_of_birth = data.fetch(:date_of_birth, self.date_of_birth)
444
+
445
+ self
446
+ end
447
+
448
+ # Get the subscriptions belonging to the customer.
449
+ # Params:
450
+ # +options+:: +Hash+ of options
451
+ def fetch_subscriptions(options = {})
452
+ self.prefill(options)
453
+
454
+ request = Request.new(@client)
455
+ path = "/customers/" + CGI.escape(@id) + "/subscriptions"
456
+ data = {
457
+
458
+ }
459
+
460
+ response = Response.new(request.get(path, data, options))
461
+ return_values = Array.new
462
+
463
+ a = Array.new
464
+ body = response.body
465
+ for v in body['subscriptions']
466
+ tmp = Subscription.new(@client)
467
+ tmp.fill_with_data(v)
468
+ a.push(tmp)
469
+ end
470
+
471
+ return_values.push(a)
472
+
473
+
474
+
475
+ return_values[0]
476
+ end
477
+
478
+ # Get the customer's tokens.
479
+ # Params:
480
+ # +options+:: +Hash+ of options
481
+ def fetch_tokens(options = {})
482
+ self.prefill(options)
483
+
484
+ request = Request.new(@client)
485
+ path = "/customers/" + CGI.escape(@id) + "/tokens"
486
+ data = {
487
+
488
+ }
489
+
490
+ response = Response.new(request.get(path, data, options))
491
+ return_values = Array.new
492
+
493
+ a = Array.new
494
+ body = response.body
495
+ for v in body['tokens']
496
+ tmp = Token.new(@client)
497
+ tmp.fill_with_data(v)
498
+ a.push(tmp)
499
+ end
500
+
501
+ return_values.push(a)
502
+
503
+
504
+
505
+ return_values[0]
506
+ end
507
+
508
+ # Find a customer's token by its ID.
509
+ # Params:
510
+ # +token_id+:: ID of the token
511
+ # +options+:: +Hash+ of options
512
+ def find_token(token_id, options = {})
513
+ self.prefill(options)
514
+
515
+ request = Request.new(@client)
516
+ path = "/customers/" + CGI.escape(@id) + "/tokens/" + CGI.escape(token_id) + ""
517
+ data = {
518
+
519
+ }
520
+
521
+ response = Response.new(request.get(path, data, options))
522
+ return_values = Array.new
523
+
524
+ body = response.body
525
+ body = body["token"]
526
+ token = Token.new(@client)
527
+ return_values.push(token.fill_with_data(body))
528
+
529
+
530
+ return_values[0]
531
+ end
532
+
533
+ # Delete a customer's token by its ID.
534
+ # Params:
535
+ # +token_id+:: ID of the token
536
+ # +options+:: +Hash+ of options
537
+ def delete_token(token_id, options = {})
538
+ self.prefill(options)
539
+
540
+ request = Request.new(@client)
541
+ path = "/customers/" + CGI.escape(@id) + "/tokens/" + CGI.escape(token_id) + ""
542
+ data = {
543
+
544
+ }
545
+
546
+ response = Response.new(request.delete(path, data, options))
547
+ return_values = Array.new
548
+
549
+ return_values.push(response.success)
550
+
551
+
552
+ return_values[0]
553
+ end
554
+
555
+ # Get the transactions belonging to the customer.
556
+ # Params:
557
+ # +options+:: +Hash+ of options
558
+ def fetch_transactions(options = {})
559
+ self.prefill(options)
560
+
561
+ request = Request.new(@client)
562
+ path = "/customers/" + CGI.escape(@id) + "/transactions"
563
+ data = {
564
+
565
+ }
566
+
567
+ response = Response.new(request.get(path, data, options))
568
+ return_values = Array.new
569
+
570
+ a = Array.new
571
+ body = response.body
572
+ for v in body['transactions']
573
+ tmp = Transaction.new(@client)
574
+ tmp.fill_with_data(v)
575
+ a.push(tmp)
576
+ end
577
+
578
+ return_values.push(a)
579
+
580
+
581
+
582
+ return_values[0]
583
+ end
584
+
585
+ # Get all the customers.
586
+ # Params:
587
+ # +options+:: +Hash+ of options
588
+ def all(options = {})
589
+ self.prefill(options)
590
+
591
+ request = Request.new(@client)
592
+ path = "/customers"
593
+ data = {
594
+
595
+ }
596
+
597
+ response = Response.new(request.get(path, data, options))
598
+ return_values = Array.new
599
+
600
+ a = Array.new
601
+ body = response.body
602
+ for v in body['customers']
603
+ tmp = Customer.new(@client)
604
+ tmp.fill_with_data(v)
605
+ a.push(tmp)
606
+ end
607
+
608
+ return_values.push(a)
609
+
610
+
611
+
612
+ return_values[0]
613
+ end
614
+
615
+ # Create a new customer.
616
+ # Params:
617
+ # +options+:: +Hash+ of options
618
+ def create(options = {})
619
+ self.prefill(options)
620
+
621
+ request = Request.new(@client)
622
+ path = "/customers"
623
+ data = {
624
+ "balance" => @balance,
625
+ "currency" => @currency,
626
+ "email" => @email,
627
+ "first_name" => @first_name,
628
+ "last_name" => @last_name,
629
+ "address1" => @address1,
630
+ "address2" => @address2,
631
+ "city" => @city,
632
+ "state" => @state,
633
+ "zip" => @zip,
634
+ "country_code" => @country_code,
635
+ "ip_address" => @ip_address,
636
+ "phone_number" => @phone_number,
637
+ "legal_document" => @legal_document,
638
+ "date_of_birth" => @date_of_birth,
639
+ "is_business" => @is_business,
640
+ "sex" => @sex,
641
+ "metadata" => @metadata,
642
+ "id" => @id,
643
+ "registered_at" => @registered_at
644
+ }
645
+
646
+ response = Response.new(request.post(path, data, options))
647
+ return_values = Array.new
648
+
649
+ body = response.body
650
+ body = body["customer"]
651
+
652
+
653
+ return_values.push(self.fill_with_data(body))
654
+
655
+
656
+
657
+ return_values[0]
658
+ end
659
+
660
+ # Find a customer by its ID.
661
+ # Params:
662
+ # +customer_id+:: ID of the customer
663
+ # +options+:: +Hash+ of options
664
+ def find(customer_id, options = {})
665
+ self.prefill(options)
666
+
667
+ request = Request.new(@client)
668
+ path = "/customers/" + CGI.escape(customer_id) + ""
669
+ data = {
670
+
671
+ }
672
+
673
+ response = Response.new(request.get(path, data, options))
674
+ return_values = Array.new
675
+
676
+ body = response.body
677
+ body = body["customer"]
678
+
679
+
680
+ obj = Customer.new(@client)
681
+ return_values.push(obj.fill_with_data(body))
682
+
683
+
684
+
685
+ return_values[0]
686
+ end
687
+
688
+ # Save the updated customer attributes.
689
+ # Params:
690
+ # +options+:: +Hash+ of options
691
+ def save(options = {})
692
+ self.prefill(options)
693
+
694
+ request = Request.new(@client)
695
+ path = "/customers/" + CGI.escape(@id) + ""
696
+ data = {
697
+ "balance" => @balance,
698
+ "default_token_id" => @default_token_id,
699
+ "email" => @email,
700
+ "first_name" => @first_name,
701
+ "last_name" => @last_name,
702
+ "address1" => @address1,
703
+ "address2" => @address2,
704
+ "city" => @city,
705
+ "state" => @state,
706
+ "zip" => @zip,
707
+ "country_code" => @country_code,
708
+ "ip_address" => @ip_address,
709
+ "phone_number" => @phone_number,
710
+ "legal_document" => @legal_document,
711
+ "date_of_birth" => @date_of_birth,
712
+ "is_business" => @is_business,
713
+ "sex" => @sex,
714
+ "metadata" => @metadata,
715
+ "registered_at" => @registered_at
716
+ }
717
+
718
+ response = Response.new(request.put(path, data, options))
719
+ return_values = Array.new
720
+
721
+ body = response.body
722
+ body = body["customer"]
723
+
724
+
725
+ return_values.push(self.fill_with_data(body))
726
+
727
+
728
+
729
+ return_values[0]
730
+ end
731
+
732
+ # Delete the customer.
733
+ # Params:
734
+ # +options+:: +Hash+ of options
735
+ def delete(options = {})
736
+ self.prefill(options)
737
+
738
+ request = Request.new(@client)
739
+ path = "/customers/" + CGI.escape(@id) + ""
740
+ data = {
741
+
742
+ }
743
+
744
+ response = Response.new(request.delete(path, data, options))
745
+ return_values = Array.new
746
+
747
+ return_values.push(response.success)
748
+
749
+
750
+ return_values[0]
751
+ end
752
+
753
+
754
+ end
755
+ end