processout 2.20.0 → 2.22.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.
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