taxjar-ruby 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
  SHA1:
3
- metadata.gz: 6b8f47a3dccc5ce41e6c36297953638274b5f1f4
4
- data.tar.gz: ffb92cb9d29554225ee27380086850bd8763a688
3
+ metadata.gz: 0b7aa7c93c3a6dc05ffd13a0d6efd955033d841e
4
+ data.tar.gz: 1ef818356db3fb21e1b94bb6342ffae716eef57e
5
5
  SHA512:
6
- metadata.gz: 101575da685631cd9554afd16fff94c3e21af3bc540844694224b779f67c95e06a4de76fc9e4c958f58cb162f08955d94a3256b3eb3642a9f8fd6e8ba746720c
7
- data.tar.gz: 1ee17ce797f68e7d5521db14d3d257fa6c8b1eb51ce7bec999de1857f33560310ea2fc875586de954fcd96f0c5f6ba0bd656b1bed65d4fc8daddff47901a15c8
6
+ metadata.gz: 4cfe6ce5a86c1b2a4995152b76cbb016d3b64b3807f62fade7ee9b3dd8dd0f90aadf90116cf3a95131735b51d9efb3d50e6b98ee60bf313fe159047c99be10e4
7
+ data.tar.gz: 7240aad485c2d64e7ed8a1e5cf819c7837db1862c699f29991e567430ece0e102021353ff3cbbe4529905bb57508716d4216452a3d5b7cb1e143a7c0da81b19c
data/README.md CHANGED
@@ -72,19 +72,19 @@ client.categories
72
72
  ```ruby
73
73
  [
74
74
  #<Taxjar::Category:0x007f081dc3e278 @attrs={
75
- :name => "Digital Goods",
75
+ :name => 'Digital Goods',
76
76
  :product_tax_code => 31000,
77
- :description => "Digital products transferred electronically."
77
+ :description => 'Digital products transferred electronically.'
78
78
  }>,
79
79
  #<Taxjar::Category:0x007f081dc3de90 @attrs={
80
- :name => "Clothing",
80
+ :name => 'Clothing',
81
81
  :product_tax_code => 20010,
82
- :description => "All human wearing apparel suitable for general use"
82
+ :description => 'All human wearing apparel suitable for general use'
83
83
  }>,
84
84
  #<Taxjar::Category:0x007f081dc3da80 @attrs={
85
- :name => "Non-Prescription",
85
+ :name => 'Non-Prescription',
86
86
  :product_tax_code => 51010,
87
- :description => "Drugs for human use without a prescription"
87
+ :description => 'Drugs for human use without a prescription'
88
88
  }>
89
89
  ]
90
90
  ```
@@ -128,29 +128,29 @@ rates = client.rates_for_location('00150', {
128
128
 
129
129
  ```ruby
130
130
  #<Taxjar::Rate:0x007fc47056a928 @attrs={
131
- :zip => "90002",
132
- :state => "CA",
131
+ :zip => '90002',
132
+ :state => 'CA',
133
133
  :state_rate => 0.065,
134
- :county => "LOS ANGELES",
134
+ :county => 'LOS ANGELES',
135
135
  :county_rate => 0.01,
136
- :city => "WATTS",
136
+ :city => 'WATTS',
137
137
  :city_rate => 0,
138
138
  :combined_district_rate => 0.015,
139
139
  :combined_rate => 0.09
140
140
  }>
141
141
 
142
142
  #<Taxjar::Rate:0x007fc47056a928 @attrs={
143
- :zip => "V5K0A1",
144
- :city => "Vancouver",
145
- :state => "BC",
146
- :country => "CA",
147
- :combined_rate => "0.12"
143
+ :zip => 'V5K0A1',
144
+ :city => 'Vancouver',
145
+ :state => 'BC',
146
+ :country => 'CA',
147
+ :combined_rate => '0.12'
148
148
  }>
149
149
 
150
150
  #<Taxjar::Rate:0x007fc47056a928 @attrs={
151
- :country => "FI",
152
- :name => "Finland",
153
- :standard_rate => "0.24",
151
+ :country => 'FI',
152
+ :name => 'Finland',
153
+ :standard_rate => '0.24',
154
154
  :reduced_rate => nil,
155
155
  :super_reduced_rate => nil,
156
156
  :parking_rate => nil,
@@ -181,7 +181,7 @@ client.tax_for_order({
181
181
  :from_country => 'US',
182
182
  :from_zip => '92093',
183
183
  :from_city => 'San Diego',
184
- :amount => 15.0,
184
+ :amount => 15,
185
185
  :shipping => 1.5,
186
186
  :nexus_addresses => [{:address_id => 1,
187
187
  :country => 'US',
@@ -190,7 +190,7 @@ client.tax_for_order({
190
190
  :city => 'Santa Barbara',
191
191
  :street => '1218 State St.'}],
192
192
  :line_items => [{:quantity => 1,
193
- :unit_price => 15.0,
193
+ :unit_price => 15,
194
194
  :product_tax_code => 20010}]
195
195
  })
196
196
  ```
@@ -203,26 +203,26 @@ client.tax_for_order({
203
203
  :amount_to_collect => 1.35,
204
204
  :has_nexus => true,
205
205
  :freight_taxable => false,
206
- :tax_source => "destination",
206
+ :tax_source => 'destination',
207
207
  :breakdown => {
208
- :state_taxable_amount => 15.0,
208
+ :state_taxable_amount => 15,
209
209
  :state_tax_collectable => 0.98,
210
- :county_taxable_amount => 15.0,
210
+ :county_taxable_amount => 15,
211
211
  :county_tax_collectable => 0.15,
212
- :city_taxable_amount => 0.0,
213
- :city_tax_collectable => 0.0,
214
- :special_district_taxable_amount => 15.0,
212
+ :city_taxable_amount => 0,
213
+ :city_tax_collectable => 0,
214
+ :special_district_taxable_amount => 15,
215
215
  :special_district_tax_collectable => 0.22,
216
216
  :line_items => [
217
217
  {
218
218
  :id => 1,
219
- :state_taxable_amount => 15.0,
219
+ :state_taxable_amount => 15,
220
220
  :state_sales_tax_rate => 0.065,
221
- :county_taxable_amount => 15.0,
221
+ :county_taxable_amount => 15,
222
222
  :county_tax_rate => 0.01,
223
- :city_taxable_amount => 0.0,
224
- :city_tax_rate => 0.0,
225
- :special_district_taxable_amount => 15.0,
223
+ :city_taxable_amount => 0,
224
+ :city_tax_rate => 0,
225
+ :special_district_taxable_amount => 15,
226
226
  :special_tax_rate => 0.015
227
227
  }
228
228
  ]
@@ -237,7 +237,7 @@ client.tax_for_order({
237
237
  :rate => 0.2,
238
238
  :has_nexus => true,
239
239
  :freight_taxable => true,
240
- :tax_source => "origin"
240
+ :tax_source => 'origin'
241
241
  }>
242
242
  ```
243
243
 
@@ -286,33 +286,33 @@ client.show_order('123')
286
286
 
287
287
  ```ruby
288
288
  #<Taxjar::Order:0x007fd3e514a940 @attrs={
289
- :transaction_id => "123",
289
+ :transaction_id => '123',
290
290
  :user_id => 11836,
291
- :transaction_date => "2015-05-14T00:00:00Z",
291
+ :transaction_date => '2015-05-14T00:00:00Z',
292
292
  :transaction_reference_id => nil,
293
- :from_country => "US",
293
+ :from_country => 'US',
294
294
  :from_zip => 93107,
295
- :from_state => "CA",
296
- :from_city => "SANTA BARBARA",
297
- :from_street => "1281 State St",
298
- :to_country => "US",
295
+ :from_state => 'CA',
296
+ :from_city => 'SANTA BARBARA',
297
+ :from_street => '1281 State St',
298
+ :to_country => 'US',
299
299
  :to_zip => 90002,
300
- :to_state => "CA",
301
- :to_city => "LOS ANGELES",
302
- :to_street => "123 Palm Grove Ln",
303
- :amount => 17.95,
300
+ :to_state => 'CA',
301
+ :to_city => 'LOS ANGELES',
302
+ :to_street => '123 Palm Grove Ln',
303
+ :amount => 17,
304
304
  :shipping => 2,
305
305
  :sales_tax => 0.95,
306
306
  :line_items => [
307
307
  {
308
308
  :id => 1,
309
309
  :quantity => 1,
310
- :product_identifier => "12-34243-0",
310
+ :product_identifier => '12-34243-0',
311
311
  :product_tax_code => nil,
312
- :description => "Heavy Widget",
313
- :unit_price => "15.0",
314
- :discount => "0.0",
315
- :sales_tax => "0.95"
312
+ :description => 'Heavy Widget',
313
+ :unit_price => 15,
314
+ :discount => 0,
315
+ :sales_tax => 0.95
316
316
  }
317
317
  ]
318
318
  }>
@@ -345,13 +345,13 @@ order = client.create_order({
345
345
  :to_city => 'Los Angeles',
346
346
  :to_street => '123 Palm Grove Ln',
347
347
  :to_zip => '90002',
348
- :amount => 17.45,
348
+ :amount => 16.5,
349
349
  :shipping => 1.5,
350
350
  :sales_tax => 0.95,
351
351
  :line_items => [{:quantity => 1,
352
352
  :product_identifier => '12-34243-9',
353
353
  :description => 'Fuzzy Widget',
354
- :unit_price => 15.0,
354
+ :unit_price => 15,
355
355
  :sales_tax => 0.95}]
356
356
  })
357
357
  ```
@@ -360,33 +360,33 @@ order = client.create_order({
360
360
 
361
361
  ```ruby
362
362
  #<Taxjar::Order:0x007f6d65b252d0 @attrs={
363
- :transaction_id => "20",
363
+ :transaction_id => '20',
364
364
  :user_id => 11836,
365
- :transaction_date => "2015-05-14T00:00:00Z",
365
+ :transaction_date => '2015-05-14T00:00:00Z',
366
366
  :transaction_reference_id => nil,
367
- :from_country => "US",
367
+ :from_country => 'US',
368
368
  :from_zip => 93101,
369
- :from_state => "CA",
370
- :from_city => "SANTA BARBARA",
371
- :from_street => "1218 State St",
372
- :to_country => "US",
369
+ :from_state => 'CA',
370
+ :from_city => 'SANTA BARBARA',
371
+ :from_street => '1218 State St',
372
+ :to_country => 'US',
373
373
  :to_zip => 90002,
374
- :to_state => "CA",
375
- :to_city => "LOS ANGELES",
376
- :to_street => "123 Palm Grove Ln",
377
- :amount => 15.02,
374
+ :to_state => 'CA',
375
+ :to_city => 'LOS ANGELES',
376
+ :to_street => '123 Palm Grove Ln',
377
+ :amount => 16.5,
378
378
  :shipping => 1.5,
379
379
  :sales_tax => 0.95,
380
380
  :line_items => [
381
381
  {
382
382
  :id => 1,
383
383
  :quantity => 1,
384
- :product_identifier => "12-34243-9",
384
+ :product_identifier => '12-34243-9',
385
385
  :product_tax_code => nil,
386
- :description => "Fuzzy Widget",
387
- :unit_price => "15.0",
388
- :discount => "0.0",
389
- :sales_tax => "0.85"
386
+ :description => 'Fuzzy Widget',
387
+ :unit_price => 15,
388
+ :discount => 0,
389
+ :sales_tax => 0.95
390
390
  }
391
391
  ]
392
392
  }>
@@ -408,13 +408,13 @@ client = Taxjar::Client.new(api_key: '48ceecccc8af930bd02597aec0f84a78')
408
408
 
409
409
  order = client.update_order({
410
410
  :transaction_id => '123',
411
- :amount => 17.95,
412
- :shipping => 2.0,
411
+ :amount => 17,
412
+ :shipping => 2,
413
413
  :line_items => [{:quantity => 1,
414
414
  :product_identifier => '12-34243-0',
415
415
  :description => 'Heavy Widget',
416
- :unit_price => 15.0,
417
- :discount => 0.0,
416
+ :unit_price => 15,
417
+ :discount => 0,
418
418
  :sales_tax => 0.95}]
419
419
  })
420
420
  ```
@@ -423,33 +423,33 @@ order = client.update_order({
423
423
 
424
424
  ```ruby
425
425
  #<Taxjar::Order:0x007f6d65b252d0 @attrs={
426
- :transaction_id => "123",
426
+ :transaction_id => '123',
427
427
  :user_id => 11836,
428
- :transaction_date => "2015-05-14T00:00:00Z",
428
+ :transaction_date => '2015-05-14T00:00:00Z',
429
429
  :transaction_reference_id => nil,
430
- :from_country => "US",
430
+ :from_country => 'US',
431
431
  :from_zip => 93101,
432
- :from_state => "CA",
433
- :from_city => "SANTA BARBARA",
434
- :from_street => "1218 State St",
435
- :to_country => "US",
432
+ :from_state => 'CA',
433
+ :from_city => 'SANTA BARBARA',
434
+ :from_street => '1218 State St',
435
+ :to_country => 'US',
436
436
  :to_zip => 90002,
437
- :to_state => "CA",
438
- :to_city => "LOS ANGELES",
439
- :to_street => "123 Palm Grove Ln",
440
- :amount => 17.95,
441
- :shipping => 2.0,
437
+ :to_state => 'CA',
438
+ :to_city => 'LOS ANGELES',
439
+ :to_street => '123 Palm Grove Ln',
440
+ :amount => 17,
441
+ :shipping => 2,
442
442
  :sales_tax => 0.95,
443
443
  :line_items => [
444
444
  {
445
445
  :id => 1,
446
446
  :quantity => 1,
447
- :product_identifier => "12-34243-0",
447
+ :product_identifier => '12-34243-0',
448
448
  :product_tax_code => nil,
449
- :description => "Heavy Widget",
450
- :unit_price => "15.0",
451
- :discount => "0.0",
452
- :sales_tax => "0.95"
449
+ :description => 'Heavy Widget',
450
+ :unit_price => 15,
451
+ :discount => 0,
452
+ :sales_tax => 0.95
453
453
  }
454
454
  ]
455
455
  }>
@@ -476,33 +476,33 @@ client.delete_order(123)
476
476
 
477
477
  ```ruby
478
478
  #<Taxjar::Order:0x007f6d65b252d0 @attrs={
479
- :transaction_id => "123",
479
+ :transaction_id => '123',
480
480
  :user_id => 11836,
481
- :transaction_date => "2015-05-14T00:00:00Z",
481
+ :transaction_date => '2015-05-14T00:00:00Z',
482
482
  :transaction_reference_id => nil,
483
- :from_country => "US",
483
+ :from_country => 'US',
484
484
  :from_zip => 93101,
485
- :from_state => "CA",
486
- :from_city => "SANTA BARBARA",
487
- :from_street => "1218 State St",
488
- :to_country => "US",
485
+ :from_state => 'CA',
486
+ :from_city => 'SANTA BARBARA',
487
+ :from_street => '1218 State St',
488
+ :to_country => 'US',
489
489
  :to_zip => 90002,
490
- :to_state => "CA",
491
- :to_city => "LOS ANGELES",
492
- :to_street => "123 Palm Grove Ln",
493
- :amount => 17.95,
494
- :shipping => 2.0,
490
+ :to_state => 'CA',
491
+ :to_city => 'LOS ANGELES',
492
+ :to_street => '123 Palm Grove Ln',
493
+ :amount => 17,
494
+ :shipping => 2,
495
495
  :sales_tax => 0.95,
496
496
  :line_items => [
497
497
  {
498
498
  :id => 1,
499
499
  :quantity => 1,
500
- :product_identifier => "12-34243-0",
500
+ :product_identifier => '12-34243-0',
501
501
  :product_tax_code => nil,
502
- :description => "Heavy Widget",
503
- :unit_price => "15.0",
504
- :discount => "0.0",
505
- :sales_tax => "0.95"
502
+ :description => 'Heavy Widget',
503
+ :unit_price => 15,
504
+ :discount => 0,
505
+ :sales_tax => 0.95
506
506
  }
507
507
  ]
508
508
  }>
@@ -553,33 +553,33 @@ client.show_refund('321')
553
553
 
554
554
  ```ruby
555
555
  #<Taxjar::Refund:0x007f6da40e33a0 @attrs={
556
- :transaction_id => "321",
556
+ :transaction_id => '321',
557
557
  :user_id => 11836,
558
- :transaction_date => "2015-06-14T00:00:00Z",
558
+ :transaction_date => '2015-06-14T00:00:00Z',
559
559
  :transaction_reference_id => 123,
560
- :from_country => "US",
560
+ :from_country => 'US',
561
561
  :from_zip => 93107,
562
- :from_state => "CA",
563
- :from_city => "SANTA BARBARA",
564
- :from_street => "1218 State St",
565
- :to_country => "US",
562
+ :from_state => 'CA',
563
+ :from_city => 'SANTA BARBARA',
564
+ :from_street => '1218 State St',
565
+ :to_country => 'US',
566
566
  :to_zip => 90002,
567
- :to_state => "CA",
568
- :to_city => "LOS ANGELES",
569
- :to_street => "123 Palm Grove Ln",
570
- :amount => 17.95,
571
- :shipping => 2.0,
567
+ :to_state => 'CA',
568
+ :to_city => 'LOS ANGELES',
569
+ :to_street => '123 Palm Grove Ln',
570
+ :amount => 17,
571
+ :shipping => 2,
572
572
  :sales_tax => 0.95,
573
573
  :line_items => [
574
574
  {
575
575
  :id => 1,
576
576
  :quantity => 1,
577
- :product_identifier => "12-34243-0",
577
+ :product_identifier => '12-34243-0',
578
578
  :product_tax_code => nil,
579
- :description => "Heavy Widget",
580
- :unit_price => "15.0",
581
- :discount => "0.0",
582
- :sales_tax => "0.95"
579
+ :description => 'Heavy Widget',
580
+ :unit_price => 15,
581
+ :discount => 0,
582
+ :sales_tax => 0.95
583
583
  }
584
584
  ]
585
585
  }>
@@ -613,13 +613,13 @@ refund = client.create_refund({
613
613
  :to_state => 'CA',
614
614
  :to_city => 'Los Angeles',
615
615
  :to_street => '123 Palm Grove Ln',
616
- :amount => 17.45,
616
+ :amount => 16.5,
617
617
  :shipping => 1.5,
618
618
  :sales_tax => 0.95,
619
619
  :line_items => [{:quantity => 1,
620
620
  :product_identifier => '12-34243-9',
621
621
  :description => 'Fuzzy Widget',
622
- :unit_price => 15.0,
622
+ :unit_price => 15,
623
623
  :sales_tax => 0.95}]
624
624
  })
625
625
  ```
@@ -628,33 +628,33 @@ refund = client.create_refund({
628
628
 
629
629
  ```ruby
630
630
  #<Taxjar::Refund:0x007f6da40e33a0 @attrs={
631
- :transaction_id => "321",
631
+ :transaction_id => '321',
632
632
  :user_id => 11836,
633
- :transaction_date => "2015-06-14T00:00:00Z",
634
- :transaction_reference_id => "123",
635
- :from_country => "US",
633
+ :transaction_date => '2015-06-14T00:00:00Z',
634
+ :transaction_reference_id => '123',
635
+ :from_country => 'US',
636
636
  :from_zip => 93107,
637
- :from_state => "CA",
638
- :from_city => "SANTA BARBARA",
639
- :from_street => "1218 State St",
640
- :to_country => "US",
637
+ :from_state => 'CA',
638
+ :from_city => 'SANTA BARBARA',
639
+ :from_street => '1218 State St',
640
+ :to_country => 'US',
641
641
  :to_zip => 90002,
642
- :to_state => "CA",
643
- :to_city => "LOS ANGELES",
644
- :to_street => "123 Palm Grove Ln",
645
- :amount => 17.95,
646
- :shipping => 2.0,
642
+ :to_state => 'CA',
643
+ :to_city => 'LOS ANGELES',
644
+ :to_street => '123 Palm Grove Ln',
645
+ :amount => 16.5,
646
+ :shipping => 1.5,
647
647
  :sales_tax => 0.95,
648
648
  :line_items => [
649
649
  {
650
650
  :id => 1,
651
651
  :quantity => 1,
652
- :product_identifier => "12-34243-0",
652
+ :product_identifier => '12-34243-0',
653
653
  :product_tax_code => nil,
654
- :description => "Heavy Widget",
655
- :unit_price => "15.0",
656
- :discount => "0.0",
657
- :sales_tax => "0.95"
654
+ :description => 'Heavy Widget',
655
+ :unit_price => 15,
656
+ :discount => 0,
657
+ :sales_tax => 0.95
658
658
  }
659
659
  ]
660
660
  }>
@@ -676,13 +676,13 @@ client = Taxjar::Client.new(api_key: '48ceecccc8af930bd02597aec0f84a78')
676
676
 
677
677
  refund = client.update_refund({
678
678
  :transaction_id => '321',
679
- :amount => 17.95,
680
- :shipping => 2.0,
679
+ :amount => 17,
680
+ :shipping => 2,
681
681
  :sales_tax => 0.95,
682
682
  :line_items => [{:quantity => 1,
683
683
  :product_identifier => '12-34243-9',
684
684
  :description => 'Heavy Widget',
685
- :unit_price => 15.0,
685
+ :unit_price => 15,
686
686
  :sales_tax => 0.95}]
687
687
  })
688
688
  ```
@@ -691,33 +691,33 @@ refund = client.update_refund({
691
691
 
692
692
  ```ruby
693
693
  #<Taxjar::Refund:0x007f6da40e33a0 @attrs={
694
- :transaction_id => "321",
694
+ :transaction_id => '321',
695
695
  :user_id => 11836,
696
- :transaction_date => "2015-06-14T00:00:00Z",
697
- :transaction_reference_id => "123",
698
- :from_country => "US",
696
+ :transaction_date => '2015-06-14T00:00:00Z',
697
+ :transaction_reference_id => '123',
698
+ :from_country => 'US',
699
699
  :from_zip => 93107,
700
- :from_state => "CA",
701
- :from_city => "SANTA BARBARA",
702
- :from_street => "1218 State St",
703
- :to_country => "US",
700
+ :from_state => 'CA',
701
+ :from_city => 'SANTA BARBARA',
702
+ :from_street => '1218 State St',
703
+ :to_country => 'US',
704
704
  :to_zip => 90002,
705
- :to_state => "CA",
706
- :to_city => "LOS ANGELES",
707
- :to_street => "123 Palm Grove Ln",
705
+ :to_state => 'CA',
706
+ :to_city => 'LOS ANGELES',
707
+ :to_street => '123 Palm Grove Ln',
708
708
  :amount => 17.95,
709
- :shipping => 2.0,
709
+ :shipping => 2,
710
710
  :sales_tax => 0.95,
711
711
  :line_items => [
712
712
  {
713
713
  :id => 1,
714
714
  :quantity => 1,
715
- :product_identifier => "12-34243-9",
715
+ :product_identifier => '12-34243-9',
716
716
  :product_tax_code => nil,
717
- :description => "Heavy Widget",
718
- :unit_price => "15.0",
719
- :discount => "0.0",
720
- :sales_tax => "0.95"
717
+ :description => 'Heavy Widget',
718
+ :unit_price => 15,
719
+ :discount => 0,
720
+ :sales_tax => 0.95
721
721
  }
722
722
  ]
723
723
  }>
@@ -744,33 +744,33 @@ client.delete_refund(321)
744
744
 
745
745
  ```ruby
746
746
  #<Taxjar::Refund:0x007f6da40e33a0 @attrs={
747
- :transaction_id => "321",
747
+ :transaction_id => '321',
748
748
  :user_id => 11836,
749
- :transaction_date => "2015-06-14T00:00:00Z",
750
- :transaction_reference_id => "123",
751
- :from_country => "US",
749
+ :transaction_date => '2015-06-14T00:00:00Z',
750
+ :transaction_reference_id => '123',
751
+ :from_country => 'US',
752
752
  :from_zip => 93107,
753
- :from_state => "CA",
754
- :from_city => "SANTA BARBARA",
755
- :from_street => "1218 State St",
756
- :to_country => "US",
753
+ :from_state => 'CA',
754
+ :from_city => 'SANTA BARBARA',
755
+ :from_street => '1218 State St',
756
+ :to_country => 'US',
757
757
  :to_zip => 90002,
758
- :to_state => "CA",
759
- :to_city => "LOS ANGELES",
760
- :to_street => "123 Palm Grove Ln",
758
+ :to_state => 'CA',
759
+ :to_city => 'LOS ANGELES',
760
+ :to_street => '123 Palm Grove Ln',
761
761
  :amount => 17.95,
762
- :shipping => 2.0,
762
+ :shipping => 2,
763
763
  :sales_tax => 0.95,
764
764
  :line_items => [
765
765
  {
766
766
  :id => 1,
767
767
  :quantity => 1,
768
- :product_identifier => "12-34243-9",
768
+ :product_identifier => '12-34243-9',
769
769
  :product_tax_code => nil,
770
- :description => "Heavy Widget",
771
- :unit_price => "15.0",
772
- :discount => "0.0",
773
- :sales_tax => "0.95"
770
+ :description => 'Heavy Widget',
771
+ :unit_price => 15,
772
+ :discount => 0,
773
+ :sales_tax => 0.95
774
774
  }
775
775
  ]
776
776
  }>
@@ -786,8 +786,8 @@ client.nexus_regions
786
786
  #### Example Request
787
787
 
788
788
  ```ruby
789
- require "taxjar"
790
- client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")
789
+ require 'taxjar'
790
+ client = Taxjar::Client.new(api_key: '9e0cd62a22f451701f29c3bde214')
791
791
 
792
792
  nexus_regions = client.nexus_regions
793
793
  ```
@@ -797,22 +797,22 @@ nexus_regions = client.nexus_regions
797
797
  ```ruby
798
798
  [
799
799
  {
800
- :country_code => "US",
801
- :country => "United States",
802
- :region_code => "CA",
803
- :region => "California"
800
+ :country_code => 'US',
801
+ :country => 'United States',
802
+ :region_code => 'CA',
803
+ :region => 'California'
804
804
  },
805
805
  {
806
- :country_code => "US",
807
- :country => "United States",
808
- :region_code => "NY",
809
- :region => "New York"
806
+ :country_code => 'US',
807
+ :country => 'United States',
808
+ :region_code => 'NY',
809
+ :region => 'New York'
810
810
  },
811
811
  {
812
- :country_code => "US",
813
- :country => "United States",
814
- :region_code => "WA",
815
- :region => "Washington"
812
+ :country_code => 'US',
813
+ :country => 'United States',
814
+ :region_code => 'WA',
815
+ :region => 'Washington'
816
816
  }
817
817
  ]
818
818
  ```
@@ -844,11 +844,11 @@ validation = client.validate({
844
844
  :exists => true,
845
845
  :vies_available => true,
846
846
  :vies_response => {
847
- :country_code => "FR",
848
- :vat_number => "40303265045",
849
- :request_date => "2016-02-10",
847
+ :country_code => 'FR',
848
+ :vat_number => '40303265045',
849
+ :request_date => '2016-02-10',
850
850
  :valid => true,
851
- :name => "SA SODIMAS",
851
+ :name => 'SA SODIMAS',
852
852
  :address => "11 RUE AMPERE\n26600 PONT DE L ISERE"
853
853
  }
854
854
  }>
@@ -876,44 +876,44 @@ summarized_rates = client.summary_rates
876
876
  ```ruby
877
877
  [
878
878
  {
879
- :country_code => "US",
880
- :country => "United States",
881
- :region_code => "CA",
882
- :region => "California",
879
+ :country_code => 'US',
880
+ :country => 'United States',
881
+ :region_code => 'CA',
882
+ :region => 'California',
883
883
  :minimum_rate => {
884
- :label => "State Tax",
884
+ :label => 'State Tax',
885
885
  :rate => 0.065
886
886
  },
887
887
  :average_rate => {
888
- :label => "Tax",
888
+ :label => 'Tax',
889
889
  :rate => 0.0827
890
890
  }
891
891
  },
892
892
  {
893
- :country_code => "CA",
894
- :country => "Canada",
895
- :region_code => "BC",
896
- :region => "British Columbia",
893
+ :country_code => 'CA',
894
+ :country => 'Canada',
895
+ :region_code => 'BC',
896
+ :region => 'British Columbia',
897
897
  :minimum_rate => {
898
- :label => "GST",
898
+ :label => 'GST',
899
899
  :rate => 0.05
900
900
  },
901
901
  :average_rate => {
902
- :label => "PST",
902
+ :label => 'PST',
903
903
  :rate => 0.12
904
904
  }
905
905
  },
906
906
  {
907
- :country_code => "UK",
908
- :country => "United Kingdom",
907
+ :country_code => 'UK',
908
+ :country => 'United Kingdom',
909
909
  :region_code => nil,
910
910
  :region => nil,
911
911
  :minimum_rate => {
912
- :label => "VAT",
912
+ :label => 'VAT',
913
913
  :rate => 0.2
914
914
  },
915
915
  :average_rate => {
916
- :label => "VAT",
916
+ :label => 'VAT',
917
917
  :rate => 0.2
918
918
  }
919
919
  }
@@ -5,15 +5,38 @@ module Taxjar
5
5
  class Breakdown < Taxjar::Base
6
6
  extend ModelAttribute
7
7
 
8
+ attribute :taxable_amount, :float
9
+ attribute :tax_collectable, :float
10
+ attribute :combined_tax_rate, :float
8
11
  attribute :state_taxable_amount, :float
12
+ attribute :state_tax_rate, :float
9
13
  attribute :state_tax_collectable, :float
10
14
  attribute :county_taxable_amount, :float
15
+ attribute :county_tax_rate, :float
11
16
  attribute :county_tax_collectable, :float
12
17
  attribute :city_taxable_amount, :float
18
+ attribute :city_tax_rate, :float
13
19
  attribute :city_tax_collectable, :float
14
20
  attribute :special_district_taxable_amount, :float
21
+ attribute :special_tax_rate, :float
15
22
  attribute :special_district_tax_collectable, :float
16
23
 
24
+ # International
25
+ attribute :country_taxable_amount, :float
26
+ attribute :country_tax_rate, :float
27
+ attribute :country_tax_collectable, :float
28
+
29
+ # Canada
30
+ attribute :gst_taxable_amount, :float
31
+ attribute :gst_tax_rate, :float
32
+ attribute :gst, :float
33
+ attribute :pst_taxable_amount, :float
34
+ attribute :pst_tax_rate, :float
35
+ attribute :pst, :float
36
+ attribute :qst_taxable_amount, :float
37
+ attribute :qst_tax_rate, :float
38
+ attribute :qst, :float
39
+
17
40
  object_attr_reader Taxjar::Shipping, :shipping
18
41
 
19
42
  def line_items
@@ -5,7 +5,9 @@ module Taxjar
5
5
  extend ModelAttribute
6
6
 
7
7
  attribute :id, :integer
8
+ attribute :taxable_amount, :float
8
9
  attribute :tax_collectable, :float
10
+ attribute :combined_tax_rate, :float
9
11
  attribute :state_taxable_amount, :float
10
12
  attribute :state_sales_tax_rate, :float
11
13
  attribute :state_amount, :float
@@ -18,5 +20,21 @@ module Taxjar
18
20
  attribute :special_district_taxable_amount, :float
19
21
  attribute :special_tax_rate, :float
20
22
  attribute :special_district_amount, :float
23
+
24
+ # International
25
+ attribute :country_taxable_amount, :float
26
+ attribute :country_tax_rate, :float
27
+ attribute :country_tax_collectable, :float
28
+
29
+ # Canada
30
+ attribute :gst_taxable_amount, :float
31
+ attribute :gst_tax_rate, :float
32
+ attribute :gst, :float
33
+ attribute :pst_taxable_amount, :float
34
+ attribute :pst_tax_rate, :float
35
+ attribute :pst, :float
36
+ attribute :qst_taxable_amount, :float
37
+ attribute :qst_tax_rate, :float
38
+ attribute :qst, :float
21
39
  end
22
40
  end
@@ -3,16 +3,37 @@ require 'taxjar/base'
3
3
  module Taxjar
4
4
  class Shipping < Taxjar::Base
5
5
  extend ModelAttribute
6
-
6
+
7
7
  attribute :taxable_amount, :float
8
8
  attribute :tax_collectable, :float
9
- attribute :state_amount, :float
9
+ attribute :combined_tax_rate, :float
10
+ attribute :state_taxable_amount, :float
10
11
  attribute :state_sales_tax_rate, :float
11
- attribute :county_amount, :float
12
+ attribute :state_amount, :float
13
+ attribute :county_taxable_amount, :float
12
14
  attribute :county_tax_rate, :float
13
- attribute :city_amount, :float
15
+ attribute :county_amount, :float
16
+ attribute :city_taxable_amount, :float
14
17
  attribute :city_tax_rate, :float
15
- attribute :special_district_amount, :float
18
+ attribute :city_amount, :float
19
+ attribute :special_taxable_amount, :float
16
20
  attribute :special_tax_rate, :float
21
+ attribute :special_district_amount, :float
22
+
23
+ # International
24
+ attribute :country_taxable_amount, :float
25
+ attribute :country_tax_rate, :float
26
+ attribute :country_tax_collectable, :float
27
+
28
+ # Canada
29
+ attribute :gst_taxable_amount, :float
30
+ attribute :gst_tax_rate, :float
31
+ attribute :gst, :float
32
+ attribute :pst_taxable_amount, :float
33
+ attribute :pst_tax_rate, :float
34
+ attribute :pst, :float
35
+ attribute :qst_taxable_amount, :float
36
+ attribute :qst_tax_rate, :float
37
+ attribute :qst, :float
17
38
  end
18
39
  end
@@ -6,7 +6,7 @@ module Taxjar
6
6
  end
7
7
 
8
8
  def minor
9
- 4
9
+ 5
10
10
  end
11
11
 
12
12
  def patch
@@ -1,42 +1,66 @@
1
1
  {
2
2
  "tax": {
3
3
  "order_total_amount": 16.5,
4
+ "shipping": 1.5,
5
+ "taxable_amount": 16.5,
4
6
  "amount_to_collect": 1.16,
7
+ "rate": 0.07,
5
8
  "has_nexus": true,
6
9
  "freight_taxable": true,
7
10
  "tax_source": "destination",
8
11
  "breakdown": {
9
- "shipping": {
10
- "state_amount": 0.11,
11
- "state_sales_tax_rate": 0.07,
12
- "county_amount": 0,
13
- "county_tax_rate": 0,
14
- "city_amount": 0,
15
- "city_tax_rate": 0,
16
- "special_district_amount": 0,
17
- "special_tax_rate": 0
18
- },
12
+ "taxable_amount": 16.5,
13
+ "tax_collectable": 1.16,
14
+ "combined_tax_rate": 0.07,
19
15
  "state_taxable_amount": 16.5,
16
+ "state_tax_rate": 0.07,
20
17
  "state_tax_collectable": 1.16,
21
18
  "county_taxable_amount": 0,
19
+ "county_tax_rate": 0,
22
20
  "county_tax_collectable": 0,
23
21
  "city_taxable_amount": 0,
22
+ "city_tax_rate": 0,
24
23
  "city_tax_collectable": 0,
25
24
  "special_district_taxable_amount": 0,
25
+ "special_tax_rate": 0,
26
26
  "special_district_tax_collectable": 0,
27
+ "shipping": {
28
+ "taxable_amount": 1.5,
29
+ "tax_collectable": 0.11,
30
+ "combined_tax_rate": 0.07,
31
+ "state_taxable_amount": 1.5,
32
+ "state_sales_tax_rate": 0.07,
33
+ "state_amount": 0.11,
34
+ "county_taxable_amount": 0,
35
+ "county_tax_rate": 0,
36
+ "county_amount": 0,
37
+ "city_taxable_amount": 0,
38
+ "city_tax_rate": 0,
39
+ "city_amount": 0,
40
+ "special_taxable_amount": 0,
41
+ "special_tax_rate": 0,
42
+ "special_district_amount": 0
43
+ },
27
44
  "line_items": [
28
45
  {
29
46
  "id": "1",
47
+ "taxable_amount": 15,
48
+ "tax_collectable": 1.05,
49
+ "combined_tax_rate": 0.07,
30
50
  "state_taxable_amount": 15,
31
51
  "state_sales_tax_rate": 0.07,
52
+ "state_amount": 1.05,
32
53
  "county_taxable_amount": 0,
33
54
  "county_tax_rate": 0,
55
+ "county_amount": 0,
34
56
  "city_taxable_amount": 0,
35
57
  "city_tax_rate": 0,
58
+ "city_amount": 0,
36
59
  "special_district_taxable_amount": 0,
37
- "special_tax_rate": 0
60
+ "special_tax_rate": 0,
61
+ "special_district_amount": 0
38
62
  }
39
63
  ]
40
64
  }
41
65
  }
42
- }
66
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "tax": {
3
+ "order_total_amount": 26.95,
4
+ "shipping": 10,
5
+ "taxable_amount": 26.95,
6
+ "amount_to_collect": 3.5,
7
+ "rate": 0.13,
8
+ "has_nexus": true,
9
+ "freight_taxable": true,
10
+ "tax_source": "destination",
11
+ "breakdown": {
12
+ "taxable_amount": 26.95,
13
+ "tax_collectable": 3.5,
14
+ "combined_tax_rate": 0.13,
15
+ "gst_taxable_amount": 26.95,
16
+ "gst_tax_rate": 0.05,
17
+ "gst": 1.35,
18
+ "pst_taxable_amount": 26.95,
19
+ "pst_tax_rate": 0.08,
20
+ "pst": 2.16,
21
+ "qst_taxable_amount": 0,
22
+ "qst_tax_rate": 0,
23
+ "qst": 0,
24
+ "shipping": {
25
+ "taxable_amount": 10,
26
+ "tax_collectable": 1.3,
27
+ "combined_tax_rate": 0.13,
28
+ "gst_taxable_amount": 10,
29
+ "gst_tax_rate": 0.05,
30
+ "gst": 0.5,
31
+ "pst_taxable_amount": 10,
32
+ "pst_tax_rate": 0.08,
33
+ "pst": 0.8,
34
+ "qst_taxable_amount": 0,
35
+ "qst_tax_rate": 0,
36
+ "qst": 0
37
+ },
38
+ "line_items": [
39
+ {
40
+ "id": "1",
41
+ "taxable_amount": 16.95,
42
+ "tax_collectable": 2.2,
43
+ "combined_tax_rate": 0.13,
44
+ "gst_taxable_amount": 16.95,
45
+ "gst_tax_rate": 0.05,
46
+ "gst": 0.85,
47
+ "pst_taxable_amount": 16.95,
48
+ "pst_tax_rate": 0.08,
49
+ "pst": 1.36,
50
+ "qst_taxable_amount": 0,
51
+ "qst_tax_rate": 0,
52
+ "qst": 0
53
+ }
54
+ ]
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "tax": {
3
+ "order_total_amount": 26.95,
4
+ "shipping": 10,
5
+ "taxable_amount": 26.95,
6
+ "amount_to_collect": 6.47,
7
+ "rate": 0.24,
8
+ "has_nexus": true,
9
+ "freight_taxable": true,
10
+ "tax_source": "destination",
11
+ "breakdown": {
12
+ "taxable_amount": 26.95,
13
+ "tax_collectable": 6.47,
14
+ "combined_tax_rate": 0.24,
15
+ "country_taxable_amount": 26.95,
16
+ "country_tax_rate": 0.24,
17
+ "country_tax_collectable": 6.47,
18
+ "shipping": {
19
+ "taxable_amount": 10,
20
+ "tax_collectable": 2.4,
21
+ "combined_tax_rate": 0.24,
22
+ "country_taxable_amount": 10,
23
+ "country_tax_rate": 0.24,
24
+ "country_tax_collectable": 2.4
25
+ },
26
+ "line_items": [
27
+ {
28
+ "id": "1",
29
+ "taxable_amount": 16.95,
30
+ "tax_collectable": 4.07,
31
+ "combined_tax_rate": 0.24,
32
+ "country_taxable_amount": 16.95,
33
+ "country_tax_rate": 0.24,
34
+ "country_tax_collectable": 4.07
35
+ }
36
+ ]
37
+ }
38
+ }
39
+ }
@@ -85,8 +85,7 @@ describe Taxjar::API do
85
85
 
86
86
  describe "#tax_for_order" do
87
87
  before do
88
- stub_post("/v2/taxes").to_return(body: fixture('taxes.json'),
89
- headers: {content_type: 'application/json; charset=utf-8'})
88
+ stub_post("/v2/taxes").to_return(body: fixture('taxes.json'), headers: {content_type: 'application/json; charset=utf-8'})
90
89
 
91
90
  @order = {:from_country => 'US',
92
91
  :from_zip => '07001',
@@ -109,7 +108,10 @@ describe Taxjar::API do
109
108
  tax = @client.tax_for_order(@order)
110
109
  expect(tax).to be_a Taxjar::Tax
111
110
  expect(tax.order_total_amount).to eq(16.5)
111
+ expect(tax.shipping).to eq(1.5)
112
+ expect(tax.taxable_amount).to eq(16.5)
112
113
  expect(tax.amount_to_collect).to eq(1.16)
114
+ expect(tax.rate).to eq(0.07)
113
115
  expect(tax.has_nexus).to eq(true)
114
116
  expect(tax.freight_taxable).to eq(true)
115
117
  expect(tax.tax_source).to eq('destination')
@@ -119,37 +121,176 @@ describe Taxjar::API do
119
121
  tax = @client.tax_for_order(@order)
120
122
  expect(tax.breakdown.state_taxable_amount).to eq(16.5)
121
123
  expect(tax.breakdown.state_tax_collectable).to eq(1.16)
124
+ expect(tax.breakdown.combined_tax_rate).to eq(0.07)
125
+ expect(tax.breakdown.state_taxable_amount).to eq(16.5)
126
+ expect(tax.breakdown.state_tax_rate).to eq(0.07)
127
+ expect(tax.breakdown.state_tax_collectable).to eq(1.16)
122
128
  expect(tax.breakdown.county_taxable_amount).to eq(0)
129
+ expect(tax.breakdown.county_tax_rate).to eq(0)
123
130
  expect(tax.breakdown.county_tax_collectable).to eq(0)
124
131
  expect(tax.breakdown.city_taxable_amount).to eq(0)
132
+ expect(tax.breakdown.city_tax_rate).to eq(0)
125
133
  expect(tax.breakdown.city_tax_collectable).to eq(0)
126
134
  expect(tax.breakdown.special_district_taxable_amount).to eq(0)
135
+ expect(tax.breakdown.special_tax_rate).to eq(0)
127
136
  expect(tax.breakdown.special_district_tax_collectable).to eq(0)
128
137
  end
129
138
 
130
139
  it 'allows access to breakdown.shipping' do
131
140
  tax = @client.tax_for_order(@order)
141
+ expect(tax.breakdown.shipping.taxable_amount).to eq(1.5)
142
+ expect(tax.breakdown.shipping.tax_collectable).to eq(0.11)
143
+ expect(tax.breakdown.shipping.state_taxable_amount).to eq(1.5)
132
144
  expect(tax.breakdown.shipping.state_amount).to eq(0.11)
133
145
  expect(tax.breakdown.shipping.state_sales_tax_rate).to eq(0.07)
134
- expect(tax.breakdown.shipping.county_amount).to eq(0)
146
+ expect(tax.breakdown.shipping.state_amount).to eq(0.11)
147
+ expect(tax.breakdown.shipping.county_taxable_amount).to eq(0)
135
148
  expect(tax.breakdown.shipping.county_tax_rate).to eq(0)
136
- expect(tax.breakdown.shipping.city_amount).to eq(0)
149
+ expect(tax.breakdown.shipping.county_amount).to eq(0)
150
+ expect(tax.breakdown.shipping.city_taxable_amount).to eq(0)
137
151
  expect(tax.breakdown.shipping.city_tax_rate).to eq(0)
138
- expect(tax.breakdown.shipping.special_district_amount).to eq(0)
152
+ expect(tax.breakdown.shipping.city_amount).to eq(0)
153
+ expect(tax.breakdown.shipping.special_taxable_amount).to eq(0)
139
154
  expect(tax.breakdown.shipping.special_tax_rate).to eq(0)
155
+ expect(tax.breakdown.shipping.special_district_amount).to eq(0)
140
156
  end
141
157
 
142
158
  it 'allows access to breakdown.line_items' do
143
159
  tax = @client.tax_for_order(@order)
144
160
  expect(tax.breakdown.line_items[0].id).to eq(1)
161
+ expect(tax.breakdown.line_items[0].taxable_amount).to eq(15)
162
+ expect(tax.breakdown.line_items[0].tax_collectable).to eq(1.05)
163
+ expect(tax.breakdown.line_items[0].combined_tax_rate).to eq(0.07)
145
164
  expect(tax.breakdown.line_items[0].state_taxable_amount).to eq(15)
146
165
  expect(tax.breakdown.line_items[0].state_sales_tax_rate).to eq(0.07)
166
+ expect(tax.breakdown.line_items[0].state_amount).to eq(1.05)
147
167
  expect(tax.breakdown.line_items[0].county_taxable_amount).to eq(0)
148
168
  expect(tax.breakdown.line_items[0].county_tax_rate).to eq(0)
169
+ expect(tax.breakdown.line_items[0].county_amount).to eq(0)
149
170
  expect(tax.breakdown.line_items[0].city_taxable_amount).to eq(0)
150
171
  expect(tax.breakdown.line_items[0].city_tax_rate).to eq(0)
172
+ expect(tax.breakdown.line_items[0].city_amount).to eq(0)
151
173
  expect(tax.breakdown.line_items[0].special_district_taxable_amount).to eq(0)
152
174
  expect(tax.breakdown.line_items[0].special_tax_rate).to eq(0)
175
+ expect(tax.breakdown.line_items[0].special_district_amount).to eq(0)
176
+ end
177
+
178
+ describe "international orders" do
179
+ before do
180
+ stub_post("/v2/taxes").to_return(body: fixture('taxes_international.json'), headers: {content_type: 'application/json; charset=utf-8'})
181
+ end
182
+
183
+ it 'returns the requested taxes' do
184
+ tax = @client.tax_for_order(@order)
185
+ expect(tax).to be_a Taxjar::Tax
186
+ expect(tax.order_total_amount).to eq(26.95)
187
+ expect(tax.shipping).to eq(10)
188
+ expect(tax.taxable_amount).to eq(26.95)
189
+ expect(tax.amount_to_collect).to eq(6.47)
190
+ expect(tax.rate).to eq(0.24)
191
+ expect(tax.has_nexus).to eq(true)
192
+ expect(tax.freight_taxable).to eq(true)
193
+ expect(tax.tax_source).to eq('destination')
194
+ end
195
+
196
+ it 'allows access to breakdown' do
197
+ tax = @client.tax_for_order(@order)
198
+ expect(tax.breakdown.taxable_amount).to eq(26.95)
199
+ expect(tax.breakdown.tax_collectable).to eq(6.47)
200
+ expect(tax.breakdown.combined_tax_rate).to eq(0.24)
201
+ expect(tax.breakdown.country_taxable_amount).to eq(26.95)
202
+ expect(tax.breakdown.country_tax_rate).to eq(0.24)
203
+ expect(tax.breakdown.country_tax_collectable).to eq(6.47)
204
+ end
205
+
206
+ it 'allows access to breakdown.shipping' do
207
+ tax = @client.tax_for_order(@order)
208
+ expect(tax.breakdown.shipping.taxable_amount).to eq(10)
209
+ expect(tax.breakdown.shipping.tax_collectable).to eq(2.4)
210
+ expect(tax.breakdown.shipping.combined_tax_rate).to eq(0.24)
211
+ expect(tax.breakdown.shipping.country_taxable_amount).to eq(10)
212
+ expect(tax.breakdown.shipping.country_tax_rate).to eq(0.24)
213
+ expect(tax.breakdown.shipping.country_tax_collectable).to eq(2.4)
214
+ end
215
+
216
+ it 'allows access to breakdown.line_items' do
217
+ tax = @client.tax_for_order(@order)
218
+ expect(tax.breakdown.line_items[0].id).to eq(1)
219
+ expect(tax.breakdown.line_items[0].taxable_amount).to eq(16.95)
220
+ expect(tax.breakdown.line_items[0].tax_collectable).to eq(4.07)
221
+ expect(tax.breakdown.line_items[0].combined_tax_rate).to eq(0.24)
222
+ expect(tax.breakdown.line_items[0].country_taxable_amount).to eq(16.95)
223
+ expect(tax.breakdown.line_items[0].country_tax_rate).to eq(0.24)
224
+ expect(tax.breakdown.line_items[0].country_tax_collectable).to eq(4.07)
225
+ end
226
+ end
227
+
228
+ describe "canadian orders" do
229
+ before do
230
+ stub_post("/v2/taxes").to_return(body: fixture('taxes_canada.json'), headers: {content_type: 'application/json; charset=utf-8'})
231
+ end
232
+
233
+ it 'returns the requested taxes' do
234
+ tax = @client.tax_for_order(@order)
235
+ expect(tax).to be_a Taxjar::Tax
236
+ expect(tax.order_total_amount).to eq(26.95)
237
+ expect(tax.shipping).to eq(10)
238
+ expect(tax.taxable_amount).to eq(26.95)
239
+ expect(tax.amount_to_collect).to eq(3.5)
240
+ expect(tax.rate).to eq(0.13)
241
+ expect(tax.has_nexus).to eq(true)
242
+ expect(tax.freight_taxable).to eq(true)
243
+ expect(tax.tax_source).to eq('destination')
244
+ end
245
+
246
+ it 'allows access to breakdown' do
247
+ tax = @client.tax_for_order(@order)
248
+ expect(tax.breakdown.taxable_amount).to eq(26.95)
249
+ expect(tax.breakdown.tax_collectable).to eq(3.5)
250
+ expect(tax.breakdown.combined_tax_rate).to eq(0.13)
251
+ expect(tax.breakdown.gst_taxable_amount).to eq(26.95)
252
+ expect(tax.breakdown.gst_tax_rate).to eq(0.05)
253
+ expect(tax.breakdown.gst).to eq(1.35)
254
+ expect(tax.breakdown.pst_taxable_amount).to eq(26.95)
255
+ expect(tax.breakdown.pst_tax_rate).to eq(0.08)
256
+ expect(tax.breakdown.pst).to eq(2.16)
257
+ expect(tax.breakdown.qst_taxable_amount).to eq(0)
258
+ expect(tax.breakdown.qst_tax_rate).to eq(0)
259
+ expect(tax.breakdown.qst).to eq(0)
260
+ end
261
+
262
+ it 'allows access to breakdown.shipping' do
263
+ tax = @client.tax_for_order(@order)
264
+ expect(tax.breakdown.shipping.taxable_amount).to eq(10)
265
+ expect(tax.breakdown.shipping.tax_collectable).to eq(1.3)
266
+ expect(tax.breakdown.shipping.combined_tax_rate).to eq(0.13)
267
+ expect(tax.breakdown.shipping.gst_taxable_amount).to eq(10)
268
+ expect(tax.breakdown.shipping.gst_tax_rate).to eq(0.05)
269
+ expect(tax.breakdown.shipping.gst).to eq(0.5)
270
+ expect(tax.breakdown.shipping.pst_taxable_amount).to eq(10)
271
+ expect(tax.breakdown.shipping.pst_tax_rate).to eq(0.08)
272
+ expect(tax.breakdown.shipping.pst).to eq(0.8)
273
+ expect(tax.breakdown.shipping.qst_taxable_amount).to eq(0)
274
+ expect(tax.breakdown.shipping.qst_tax_rate).to eq(0)
275
+ expect(tax.breakdown.shipping.qst).to eq(0)
276
+ end
277
+
278
+ it 'allows access to breakdown.line_items' do
279
+ tax = @client.tax_for_order(@order)
280
+ expect(tax.breakdown.line_items[0].id).to eq(1)
281
+ expect(tax.breakdown.line_items[0].taxable_amount).to eq(16.95)
282
+ expect(tax.breakdown.line_items[0].tax_collectable).to eq(2.2)
283
+ expect(tax.breakdown.line_items[0].combined_tax_rate).to eq(0.13)
284
+ expect(tax.breakdown.line_items[0].gst_taxable_amount).to eq(16.95)
285
+ expect(tax.breakdown.line_items[0].gst_tax_rate).to eq(0.05)
286
+ expect(tax.breakdown.line_items[0].gst).to eq(0.85)
287
+ expect(tax.breakdown.line_items[0].pst_taxable_amount).to eq(16.95)
288
+ expect(tax.breakdown.line_items[0].pst_tax_rate).to eq(0.08)
289
+ expect(tax.breakdown.line_items[0].pst).to eq(1.36)
290
+ expect(tax.breakdown.line_items[0].qst_taxable_amount).to eq(0)
291
+ expect(tax.breakdown.line_items[0].qst_tax_rate).to eq(0)
292
+ expect(tax.breakdown.line_items[0].qst).to eq(0)
293
+ end
153
294
  end
154
295
  end
155
296
 
data/taxjar-ruby.gemspec CHANGED
@@ -18,9 +18,9 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency 'addressable', '~>2.3'
22
- spec.add_dependency 'http', '~>0.9.4'
23
- spec.add_dependency 'memoizable', '~>0.4.0'
21
+ spec.add_dependency 'addressable', '~> 2.3.8'
22
+ spec.add_dependency 'http', '~> 0.9.4'
23
+ spec.add_dependency 'memoizable', '~> 0.4.0'
24
24
  spec.add_dependency 'taxjar-model_attribute', '~> 3.1'
25
25
  spec.add_development_dependency "bundler", "~> 1.7"
26
26
  spec.add_development_dependency "rake", "~> 10.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taxjar-ruby
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
  - TaxJar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-05 00:00:00.000000000 Z
11
+ date: 2016-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.3'
19
+ version: 2.3.8
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.3'
26
+ version: 2.3.8
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: http
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -141,6 +141,8 @@ files:
141
141
  - spec/fixtures/refunds.json
142
142
  - spec/fixtures/summary_rates.json
143
143
  - spec/fixtures/taxes.json
144
+ - spec/fixtures/taxes_canada.json
145
+ - spec/fixtures/taxes_international.json
144
146
  - spec/fixtures/validation.json
145
147
  - spec/helper.rb
146
148
  - spec/taxjar/api/api_spec.rb
@@ -186,6 +188,8 @@ test_files:
186
188
  - spec/fixtures/refunds.json
187
189
  - spec/fixtures/summary_rates.json
188
190
  - spec/fixtures/taxes.json
191
+ - spec/fixtures/taxes_canada.json
192
+ - spec/fixtures/taxes_international.json
189
193
  - spec/fixtures/validation.json
190
194
  - spec/helper.rb
191
195
  - spec/taxjar/api/api_spec.rb