recurly 4.2.0 → 4.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/.bumpversion.cfg +1 -1
  3. data/CHANGELOG.md +45 -0
  4. data/GETTING_STARTED.md +1 -1
  5. data/lib/recurly/client.rb +5 -3
  6. data/lib/recurly/client/operations.rb +25 -1
  7. data/lib/recurly/requests/address.rb +1 -1
  8. data/lib/recurly/requests/billing_info_create.rb +4 -4
  9. data/lib/recurly/requests/billing_info_verify.rb +14 -0
  10. data/lib/recurly/requests/invoice_address.rb +1 -1
  11. data/lib/recurly/requests/shipping_address_create.rb +1 -1
  12. data/lib/recurly/requests/shipping_address_update.rb +1 -1
  13. data/lib/recurly/requests/subscription_change_billing_info_create.rb +14 -0
  14. data/lib/recurly/requests/subscription_change_create.rb +4 -0
  15. data/lib/recurly/requests/subscription_create.rb +1 -1
  16. data/lib/recurly/requests/subscription_purchase.rb +1 -1
  17. data/lib/recurly/resources/address.rb +1 -1
  18. data/lib/recurly/resources/address_with_name.rb +1 -1
  19. data/lib/recurly/resources/billing_info.rb +2 -2
  20. data/lib/recurly/resources/billing_info_updated_by.rb +1 -1
  21. data/lib/recurly/resources/invoice.rb +1 -1
  22. data/lib/recurly/resources/invoice_address.rb +1 -1
  23. data/lib/recurly/resources/payment_method.rb +4 -0
  24. data/lib/recurly/resources/shipping_address.rb +1 -1
  25. data/lib/recurly/resources/subscription_change.rb +4 -0
  26. data/lib/recurly/resources/subscription_change_billing_info.rb +14 -0
  27. data/lib/recurly/resources/tax_detail.rb +26 -0
  28. data/lib/recurly/resources/tax_info.rb +4 -0
  29. data/lib/recurly/resources/transaction.rb +1 -1
  30. data/lib/recurly/version.rb +1 -1
  31. data/openapi/api.yaml +267 -53
  32. metadata +7 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86a12242c76e7a5797ceb93597b6042871b5b6b27d6fd8f5dd193ae2ef198a59
4
- data.tar.gz: 3f254d1aec8ee0f487c701e3db0835feae00878bbd4342b38d1fb5f7e46a9bf0
3
+ metadata.gz: 4b355c5446a85f7911c3f383a4c4a5f54ab5153fc2764680c4bd739aba9b3bc9
4
+ data.tar.gz: 1fa2e60c2bf6970b0d6187ae18130c0813551ccec839b9ee4e80e6e4a5e1a77c
5
5
  SHA512:
6
- metadata.gz: 4998b18d4434ea368beb5d145e531ba593b694782fb76a43f14b9735fb55f70780e5b92978ec951cea9e4b8ffa38675bb1228c7d099a29771bc8c56aa1d96693
7
- data.tar.gz: bcb489bdb2ef9f1f7abdbe0d321ab7d42343dae8df66aac610eb652de005c829c90193126c782b4dc5604cf4ae0e8632b0e262e172124c95d84c7f914b3558d7
6
+ metadata.gz: 3a71c147eb618bd49ef0350bf6492f1c8d0d0cafedfd6aebaf6a3ac35b9e13f11fa3ad7133baae2ec11b8e5ac7994e77ea768eceeaf90d2681e6c189e3723ced
7
+ data.tar.gz: 7dba56f22aacea3aad801bd5a5fd3d7f26a72b2d0a5aab7f1418865cbaf8d56da51d6682514a2752989b49b7e3bf04cb06d75aecd00f13fc3880317aee2f1915
data/.bumpversion.cfg CHANGED
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 4.2.0
2
+ current_version = 4.6.0
3
3
  parse = (?P<major>\d+)
4
4
  \.(?P<minor>\d+)
5
5
  \.(?P<patch>\d+)
data/CHANGELOG.md CHANGED
@@ -1,5 +1,50 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.6.0](https://github.com/recurly/recurly-client-ruby/tree/4.6.0) (2021-08-11)
4
+
5
+ [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.5.0...4.6.0)
6
+
7
+
8
+ **Merged Pull Requests**
9
+
10
+ - Generated Latest Changes for v2021-02-25 [#720](https://github.com/recurly/recurly-client-ruby/pull/720) ([recurly-integrations](https://github.com/recurly-integrations))
11
+
12
+
13
+
14
+ ## [4.5.0](https://github.com/recurly/recurly-client-ruby/tree/4.5.0) (2021-08-02)
15
+
16
+ [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.4.0...4.5.0)
17
+
18
+
19
+ **Merged Pull Requests**
20
+
21
+ - Generated Latest Changes for v2021-02-25 [#714](https://github.com/recurly/recurly-client-ruby/pull/714) ([recurly-integrations](https://github.com/recurly-integrations))
22
+
23
+
24
+
25
+ ## [4.4.0](https://github.com/recurly/recurly-client-ruby/tree/4.4.0) (2021-06-15)
26
+
27
+ [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.3.0...4.4.0)
28
+
29
+
30
+ **Merged Pull Requests**
31
+
32
+ - Generated Latest Changes for v2021-02-25 [#705](https://github.com/recurly/recurly-client-ruby/pull/705) ([recurly-integrations](https://github.com/recurly-integrations))
33
+
34
+
35
+
36
+ ## [4.3.0](https://github.com/recurly/recurly-client-ruby/tree/4.3.0) (2021-06-04)
37
+
38
+ [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.2.0...4.3.0)
39
+
40
+
41
+ **Merged Pull Requests**
42
+
43
+ - Generated Latest Changes for v2021-02-25 [#702](https://github.com/recurly/recurly-client-ruby/pull/702) ([recurly-integrations](https://github.com/recurly-integrations))
44
+ - Making #post allow a nil body [#699](https://github.com/recurly/recurly-client-ruby/pull/699) ([douglasmiller](https://github.com/douglasmiller))
45
+
46
+
47
+
3
48
  ## [4.2.0](https://github.com/recurly/recurly-client-ruby/tree/4.2.0) (2021-04-21)
4
49
 
5
50
  [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.1.0...4.2.0)
data/GETTING_STARTED.md CHANGED
@@ -5,7 +5,7 @@ This repository houses the official ruby client for Recurly's V3 API.
5
5
  In your Gemfile, add `recurly` as a dependency.
6
6
 
7
7
  ```ruby
8
- gem 'recurly', '~> 4.2'
8
+ gem 'recurly', '~> 4.6'
9
9
  ```
10
10
 
11
11
  > *Note*: We try to follow [semantic versioning](https://semver.org/) and will only apply breaking changes to major versions.
@@ -113,13 +113,15 @@ module Recurly
113
113
  handle_response! request, http_response
114
114
  end
115
115
 
116
- def post(path, request_data, request_class, **options)
116
+ def post(path, request_data = nil, request_class = nil, **options)
117
117
  validate_options!(**options)
118
- request_class.new(request_data).validate!
119
118
  request = Net::HTTP::Post.new build_url(path, options)
120
119
  request.set_content_type(JSON_CONTENT_TYPE)
121
120
  set_headers(request, options[:headers])
122
- request.body = JSON.dump(request_data)
121
+ if request_data
122
+ request_class.new(request_data).validate!
123
+ request.body = JSON.dump(request_data)
124
+ end
123
125
  http_response = run_request(request, options)
124
126
  handle_response! request, http_response
125
127
  end
@@ -452,6 +452,30 @@ module Recurly
452
452
  delete(path, **options)
453
453
  end
454
454
 
455
+ # Verify an account's credit card billing information
456
+ #
457
+ # {https://developers.recurly.com/api/v2021-02-25#operation/verify_billing_info verify_billing_info api documenation}
458
+ #
459
+ # @param account_id [String] Account ID or code. For ID no prefix is used e.g. +e28zov4fw0v2+. For code use prefix +code-+, e.g. +code-bob+.
460
+ # @param params [Hash] Optional query string parameters:
461
+ # :body [Requests::BillingInfoVerify] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::BillingInfoVerify}
462
+ #
463
+ # @return [Resources::Transaction] Transaction information from verify.
464
+ # @example
465
+ # begin
466
+ # transaction = @client.verify_billing_info(account_id: account_id)
467
+ # puts "Got Transaction #{transaction}"
468
+ # rescue Recurly::Errors::NotFoundError
469
+ # # If the resource was not found, you may want to alert the user or
470
+ # # just return nil
471
+ # puts "Resource Not Found"
472
+ # end
473
+ #
474
+ def verify_billing_info(account_id:, **options)
475
+ path = interpolate_path("/accounts/{account_id}/billing_info/verify", account_id: account_id)
476
+ post(path, options[:body], Requests::BillingInfoVerify, **options)
477
+ end
478
+
455
479
  # Get the list of billing information associated with an account
456
480
  #
457
481
  # {https://developers.recurly.com/api/v2021-02-25#operation/list_billing_infos list_billing_infos api documenation}
@@ -488,7 +512,7 @@ module Recurly
488
512
  pager(path, **options)
489
513
  end
490
514
 
491
- # Set an account's billing information when the wallet feature is enabled
515
+ # Add new billing information on an account
492
516
  #
493
517
  # {https://developers.recurly.com/api/v2021-02-25#operation/create_billing_info create_billing_info api documenation}
494
518
  #
@@ -11,7 +11,7 @@ module Recurly
11
11
  define_attribute :city, String
12
12
 
13
13
  # @!attribute country
14
- # @return [String] Country, 2-letter ISO code.
14
+ # @return [String] Country, 2-letter ISO 3166-1 alpha-2 code.
15
15
  define_attribute :country, String
16
16
 
17
17
  # @!attribute phone
@@ -15,7 +15,7 @@ module Recurly
15
15
  define_attribute :amazon_billing_agreement_id, String
16
16
 
17
17
  # @!attribute backup_payment_method
18
- # @return [Boolean] The `backup_payment_method` indicator is used to designate a billing info as a backup on the account that will be tried if the billing info marked `primary_payment_method` fails. All payment methods, including the billing info marked `primary_payment_method` can be set as a backup. An account can have a maximum of 1 backup, if a user sets a different payment method as a backup, the existing backup will no longer be marked as such.
18
+ # @return [Boolean] The `backup_payment_method` field is used to designate a billing info as a backup on the account that will be tried if the initial billing info used for an invoice is declined. All payment methods, including the billing info marked `primary_payment_method` can be set as a backup. An account can have a maximum of 1 backup, if a user sets a different payment method as a backup, the existing backup will no longer be marked as such.
19
19
  define_attribute :backup_payment_method, :Boolean
20
20
 
21
21
  # @!attribute company
@@ -67,15 +67,15 @@ module Recurly
67
67
  define_attribute :paypal_billing_agreement_id, String
68
68
 
69
69
  # @!attribute primary_payment_method
70
- # @return [Boolean] The `primary_payment_method` indicator is used to designate the primary billing info on the account. The first billing info created on an account will always become primary. Adding additional billing infos provides the flexibility to mark another billing info as primary, or adding additional non-primary billing infos. This can be accomplished by passing the `primary_payment_method` indicator. When adding billing infos via the billing_info and /accounts endpoints, this value is not permitted, and will return an error if provided.
70
+ # @return [Boolean] The `primary_payment_method` field is used to designate the primary billing info on the account. The first billing info created on an account will always become primary. Adding additional billing infos provides the flexibility to mark another billing info as primary, or adding additional non-primary billing infos. This can be accomplished by passing the `primary_payment_method` with a value of `true`. When adding billing infos via the billing_info and /accounts endpoints, this value is not permitted, and will return an error if provided.
71
71
  define_attribute :primary_payment_method, :Boolean
72
72
 
73
73
  # @!attribute tax_identifier
74
- # @return [String] Tax identifier is required if adding a billing info that is a consumer card in Brazil. This would be the customer's CPF, CPF is a Brazilian tax identifier for all tax paying residents.
74
+ # @return [String] Tax identifier is required if adding a billing info that is a consumer card in Brazil or in Argentina. This would be the customer's CPF (Brazil) and CUIT (Argentina). CPF and CUIT are tax identifiers for all residents who pay taxes in Brazil and Argentina respectively.
75
75
  define_attribute :tax_identifier, String
76
76
 
77
77
  # @!attribute tax_identifier_type
78
- # @return [String] this field and a value of 'cpf' are required if adding a billing info that is an elo or hipercard type in Brazil.
78
+ # @return [String] This field and a value of `cpf` or `cuit` are required if adding a billing info that is an elo or hipercard type in Brazil or in Argentina.
79
79
  define_attribute :tax_identifier_type, String
80
80
 
81
81
  # @!attribute three_d_secure_action_result_token_id
@@ -0,0 +1,14 @@
1
+ # This file is automatically created by Recurly's OpenAPI generation process
2
+ # and thus any edits you make by hand will be lost. If you wish to make a
3
+ # change to this file, please create a Github issue explaining the changes you
4
+ # need and we will usher them to the appropriate places.
5
+ module Recurly
6
+ module Requests
7
+ class BillingInfoVerify < Request
8
+
9
+ # @!attribute gateway_code
10
+ # @return [String] An identifier for a specific payment gateway.
11
+ define_attribute :gateway_code, String
12
+ end
13
+ end
14
+ end
@@ -15,7 +15,7 @@ module Recurly
15
15
  define_attribute :company, String
16
16
 
17
17
  # @!attribute country
18
- # @return [String] Country, 2-letter ISO code.
18
+ # @return [String] Country, 2-letter ISO 3166-1 alpha-2 code.
19
19
  define_attribute :country, String
20
20
 
21
21
  # @!attribute first_name
@@ -15,7 +15,7 @@ module Recurly
15
15
  define_attribute :company, String
16
16
 
17
17
  # @!attribute country
18
- # @return [String] Country, 2-letter ISO code.
18
+ # @return [String] Country, 2-letter ISO 3166-1 alpha-2 code.
19
19
  define_attribute :country, String
20
20
 
21
21
  # @!attribute email
@@ -15,7 +15,7 @@ module Recurly
15
15
  define_attribute :company, String
16
16
 
17
17
  # @!attribute country
18
- # @return [String] Country, 2-letter ISO code.
18
+ # @return [String] Country, 2-letter ISO 3166-1 alpha-2 code.
19
19
  define_attribute :country, String
20
20
 
21
21
  # @!attribute email
@@ -0,0 +1,14 @@
1
+ # This file is automatically created by Recurly's OpenAPI generation process
2
+ # and thus any edits you make by hand will be lost. If you wish to make a
3
+ # change to this file, please create a Github issue explaining the changes you
4
+ # need and we will usher them to the appropriate places.
5
+ module Recurly
6
+ module Requests
7
+ class SubscriptionChangeBillingInfoCreate < Request
8
+
9
+ # @!attribute three_d_secure_action_result_token_id
10
+ # @return [String] A token generated by Recurly.js after completing a 3-D Secure device fingerprinting or authentication challenge.
11
+ define_attribute :three_d_secure_action_result_token_id, String
12
+ end
13
+ end
14
+ end
@@ -10,6 +10,10 @@ module Recurly
10
10
  # @return [Array[SubscriptionAddOnUpdate]] If you provide a value for this field it will replace any existing add-ons. So, when adding or modifying an add-on, you need to include the existing subscription add-ons. Unchanged add-ons can be included just using the subscription add-on''s ID: `{"id": "abc123"}`. If this value is omitted your existing add-ons will be unaffected. To remove all existing add-ons, this value should be an empty array.' If a subscription add-on's `code` is supplied without the `id`, `{"code": "def456"}`, the subscription add-on attributes will be set to the current values of the plan add-on unless provided in the request. - If an `id` is passed, any attributes not passed in will pull from the existing subscription add-on - If a `code` is passed, any attributes not passed in will pull from the current values of the plan add-on - Attributes passed in as part of the request will override either of the above scenarios
11
11
  define_attribute :add_ons, Array, { :item_type => :SubscriptionAddOnUpdate }
12
12
 
13
+ # @!attribute billing_info
14
+ # @return [SubscriptionChangeBillingInfoCreate]
15
+ define_attribute :billing_info, :SubscriptionChangeBillingInfoCreate
16
+
13
17
  # @!attribute collection_method
14
18
  # @return [String] Collection method
15
19
  define_attribute :collection_method, String
@@ -99,7 +99,7 @@ module Recurly
99
99
  define_attribute :transaction_type, String
100
100
 
101
101
  # @!attribute trial_ends_at
102
- # @return [DateTime] If set, overrides the default trial behavior for the subscription. The date must be in the future.
102
+ # @return [DateTime] If set, overrides the default trial behavior for the subscription. When the current date time or a past date time is provided the subscription will begin with no trial phase (overriding any plan default trial). When a future date time is provided the subscription will begin with a trial phase ending at the specified date time.
103
103
  define_attribute :trial_ends_at, DateTime
104
104
 
105
105
  # @!attribute unit_amount
@@ -55,7 +55,7 @@ module Recurly
55
55
  define_attribute :total_billing_cycles, Integer
56
56
 
57
57
  # @!attribute trial_ends_at
58
- # @return [DateTime] If set, overrides the default trial behavior for the subscription. The date must be in the future.
58
+ # @return [DateTime] If set, overrides the default trial behavior for the subscription. When the current date time or a past date time is provided the subscription will begin with no trial phase (overriding any plan default trial). When a future date time is provided the subscription will begin with a trial phase ending at the specified date time.
59
59
  define_attribute :trial_ends_at, DateTime
60
60
 
61
61
  # @!attribute unit_amount
@@ -11,7 +11,7 @@ module Recurly
11
11
  define_attribute :city, String
12
12
 
13
13
  # @!attribute country
14
- # @return [String] Country, 2-letter ISO code.
14
+ # @return [String] Country, 2-letter ISO 3166-1 alpha-2 code.
15
15
  define_attribute :country, String
16
16
 
17
17
  # @!attribute phone
@@ -11,7 +11,7 @@ module Recurly
11
11
  define_attribute :city, String
12
12
 
13
13
  # @!attribute country
14
- # @return [String] Country, 2-letter ISO code.
14
+ # @return [String] Country, 2-letter ISO 3166-1 alpha-2 code.
15
15
  define_attribute :country, String
16
16
 
17
17
  # @!attribute first_name
@@ -15,7 +15,7 @@ module Recurly
15
15
  define_attribute :address, :Address
16
16
 
17
17
  # @!attribute backup_payment_method
18
- # @return [Boolean] The `backup_payment_method` indicator is used to designate a billing info as a backup on the account that will be tried if the billing info marked `primary_payment_method` fails.
18
+ # @return [Boolean] The `backup_payment_method` field is used to indicate a billing info as a backup on the account that will be tried if the initial billing info used for an invoice is declined.
19
19
  define_attribute :backup_payment_method, :Boolean
20
20
 
21
21
  # @!attribute company
@@ -51,7 +51,7 @@ module Recurly
51
51
  define_attribute :payment_method, :PaymentMethod
52
52
 
53
53
  # @!attribute primary_payment_method
54
- # @return [Boolean] The `primary_payment_method` indicator is used to designate the primary billing info on the account. The first billing info created on an account will always become primary. Adding additional billing infos provides the flexibility to mark another billing info as primary, or adding additional non-primary billing infos. This can be accomplished by passing the `primary_payment_method` indicator. When adding billing infos via the billing_info and /accounts endpoints, this value is not permitted, and will return an error if provided.
54
+ # @return [Boolean] The `primary_payment_method` field is used to indicate the primary billing info on the account. The first billing info created on an account will always become primary. This payment method will be used
55
55
  define_attribute :primary_payment_method, :Boolean
56
56
 
57
57
  # @!attribute updated_at
@@ -7,7 +7,7 @@ module Recurly
7
7
  class BillingInfoUpdatedBy < Resource
8
8
 
9
9
  # @!attribute country
10
- # @return [String] Country of IP address, if known by Recurly.
10
+ # @return [String] Country, 2-letter ISO 3166-1 alpha-2 code matching the origin IP address, if known by Recurly.
11
11
  define_attribute :country, String
12
12
 
13
13
  # @!attribute ip
@@ -111,7 +111,7 @@ module Recurly
111
111
  define_attribute :subscription_ids, Array, { :item_type => String }
112
112
 
113
113
  # @!attribute subtotal
114
- # @return [Float] The summation of charges, discounts, and credits, before tax.
114
+ # @return [Float] The summation of charges and credits, before discounts and taxes.
115
115
  define_attribute :subtotal, Float
116
116
 
117
117
  # @!attribute tax
@@ -15,7 +15,7 @@ module Recurly
15
15
  define_attribute :company, String
16
16
 
17
17
  # @!attribute country
18
- # @return [String] Country, 2-letter ISO code.
18
+ # @return [String] Country, 2-letter ISO 3166-1 alpha-2 code.
19
19
  define_attribute :country, String
20
20
 
21
21
  # @!attribute first_name
@@ -18,6 +18,10 @@ module Recurly
18
18
  # @return [String] Visa, MasterCard, American Express, Discover, JCB, etc.
19
19
  define_attribute :card_type, String
20
20
 
21
+ # @!attribute cc_bin_country
22
+ # @return [String] The 2-letter ISO 3166-1 alpha-2 country code associated with the credit card BIN, if known by Recurly. Available on the BillingInfo object only. Available when the BIN country lookup feature is enabled.
23
+ define_attribute :cc_bin_country, String
24
+
21
25
  # @!attribute exp_month
22
26
  # @return [Integer] Expiration month.
23
27
  define_attribute :exp_month, Integer
@@ -19,7 +19,7 @@ module Recurly
19
19
  define_attribute :company, String
20
20
 
21
21
  # @!attribute country
22
- # @return [String] Country, 2-letter ISO code.
22
+ # @return [String] Country, 2-letter ISO 3166-1 alpha-2 code.
23
23
  define_attribute :country, String
24
24
 
25
25
  # @!attribute created_at
@@ -18,6 +18,10 @@ module Recurly
18
18
  # @return [Array[SubscriptionAddOn]] These add-ons will be used when the subscription renews.
19
19
  define_attribute :add_ons, Array, { :item_type => :SubscriptionAddOn }
20
20
 
21
+ # @!attribute billing_info
22
+ # @return [SubscriptionChangeBillingInfo] Accept nested attributes for three_d_secure_action_result_token_id
23
+ define_attribute :billing_info, :SubscriptionChangeBillingInfo
24
+
21
25
  # @!attribute created_at
22
26
  # @return [DateTime] Created at
23
27
  define_attribute :created_at, DateTime
@@ -0,0 +1,14 @@
1
+ # This file is automatically created by Recurly's OpenAPI generation process
2
+ # and thus any edits you make by hand will be lost. If you wish to make a
3
+ # change to this file, please create a Github issue explaining the changes you
4
+ # need and we will usher them to the appropriate places.
5
+ module Recurly
6
+ module Resources
7
+ class SubscriptionChangeBillingInfo < Resource
8
+
9
+ # @!attribute three_d_secure_action_result_token_id
10
+ # @return [String] A token generated by Recurly.js after completing a 3-D Secure device fingerprinting or authentication challenge.
11
+ define_attribute :three_d_secure_action_result_token_id, String
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,26 @@
1
+ # This file is automatically created by Recurly's OpenAPI generation process
2
+ # and thus any edits you make by hand will be lost. If you wish to make a
3
+ # change to this file, please create a Github issue explaining the changes you
4
+ # need and we will usher them to the appropriate places.
5
+ module Recurly
6
+ module Resources
7
+ class TaxDetail < Resource
8
+
9
+ # @!attribute rate
10
+ # @return [Float] Provides the tax rate for the region.
11
+ define_attribute :rate, Float
12
+
13
+ # @!attribute region
14
+ # @return [String] Provides the tax region applied on an invoice. For Canadian Sales Tax, this will be either the 2 letter province code or country code.
15
+ define_attribute :region, String
16
+
17
+ # @!attribute tax
18
+ # @return [Float] The total tax applied for this tax type.
19
+ define_attribute :tax, Float
20
+
21
+ # @!attribute type
22
+ # @return [String] Provides the tax type for the region. For Canadian Sales Tax, this will be GST, HST, QST or PST.
23
+ define_attribute :type, String
24
+ end
25
+ end
26
+ end
@@ -14,6 +14,10 @@ module Recurly
14
14
  # @return [String] Provides the tax region applied on an invoice. For U.S. Sales Tax, this will be the 2 letter state code. For EU VAT this will be the 2 letter country code. For all country level tax types, this will display the regional tax, like VAT, GST, or PST.
15
15
  define_attribute :region, String
16
16
 
17
+ # @!attribute tax_details
18
+ # @return [Array[TaxDetail]] Provides additional tax details for Canadian Sales Tax when there is tax applied at both the country and province levels. This will only be populated for the Invoice response when fetching a single invoice and not for the InvoiceList or LineItem.
19
+ define_attribute :tax_details, Array, { :item_type => :TaxDetail }
20
+
17
21
  # @!attribute type
18
22
  # @return [String] Provides the tax type as "vat" for EU VAT, "usst" for U.S. Sales Tax, or the 2 letter country code for country level tax types like Canada, Australia, New Zealand, Israel, and all non-EU European countries.
19
23
  define_attribute :type, String
@@ -87,7 +87,7 @@ module Recurly
87
87
  define_attribute :invoice, :InvoiceMini
88
88
 
89
89
  # @!attribute ip_address_country
90
- # @return [String] IP address's country
90
+ # @return [String] Origin IP address country, 2-letter ISO 3166-1 alpha-2 code, if known by Recurly.
91
91
  define_attribute :ip_address_country, String
92
92
 
93
93
  # @!attribute ip_address_v4
@@ -1,3 +1,3 @@
1
1
  module Recurly
2
- VERSION = "4.2.0"
2
+ VERSION = "4.6.0"
3
3
  end
data/openapi/api.yaml CHANGED
@@ -111,9 +111,11 @@ info:
111
111
  developers and those who are familiar with API technology. When using the
112
112
  API and passing error messages to target systems, be mindful that
113
113
  these messages may not make sense in the context of the target system.
114
- Please consider changing these messages in target system to be better
114
+ Please consider changing these messages in the target system to be better
115
115
  suited to the audience of the system.
116
116
 
117
+ Please see [transaction error codes](https://developers.recurly.com/pages/api-transaction-errors.html) for more details.
118
+
117
119
  ## Pagination
118
120
  ### Response Schema
119
121
  Every GET listing endpoint returns a response with the same schema:
@@ -190,6 +192,7 @@ x-tagGroups:
190
192
  - note
191
193
  - account_acquisition
192
194
  - billing_info
195
+ - billing_infos
193
196
  - subscription
194
197
  - subscription_change
195
198
  - shipping_address
@@ -260,9 +263,15 @@ tags:
260
263
  to match this data with revenue and billing data events in Recurly.
261
264
  - name: billing_info
262
265
  x-displayName: Billing Info
263
- description: An account can have one stored payment method at a time. This can be
264
- a credit card, PayPal, or bank account. Billing info is usually filled out by
265
- the customer upon purchase or when they update their information.
266
+ description: Without the premium Wallet feature, an account can only have one stored
267
+ payment method at a time. Examples include credit cards, PayPal, or bank accounts.
268
+ Billing info is filled out by the customer upon purchase or when they update their
269
+ information.
270
+ - name: billing_infos
271
+ x-displayName: Billing Infos
272
+ description: If the premium Wallet feature is enabled, an account can have multiple
273
+ payment methods stored. Examples include credit cards, PayPal, or bank accounts.
274
+ Primary or backup billing infos can be designated from these endpoints.
266
275
  - name: subscription
267
276
  x-displayName: Subscription
268
277
  description: Subscriptions are created when your customers subscribe to one of your
@@ -2297,10 +2306,141 @@ paths:
2297
2306
  {\n\t\tfmt.Printf(\"Resource not found: %v\", e)\n\t\treturn nil, err\n\t}\n\tfmt.Printf(\"Unexpected
2298
2307
  Recurly error: %v\", e)\n\treturn nil, err\n}\n\nfmt.Printf(\"Removed Billing
2299
2308
  Info: %v\", billingInfo)"
2309
+ "/accounts/{account_id}/billing_info/verify":
2310
+ post:
2311
+ tags:
2312
+ - billing_info
2313
+ operationId: verify_billing_info
2314
+ summary: Verify an account's credit card billing information
2315
+ parameters:
2316
+ - "$ref": "#/components/parameters/account_id"
2317
+ requestBody:
2318
+ content:
2319
+ application/json:
2320
+ schema:
2321
+ "$ref": "#/components/schemas/BillingInfoVerify"
2322
+ required: false
2323
+ responses:
2324
+ '200':
2325
+ description: Transaction information from verify.
2326
+ content:
2327
+ application/json:
2328
+ schema:
2329
+ "$ref": "#/components/schemas/Transaction"
2330
+ '404':
2331
+ description: Account has no billing information, or incorrect site or account
2332
+ ID.
2333
+ content:
2334
+ application/json:
2335
+ schema:
2336
+ "$ref": "#/components/schemas/Error"
2337
+ default:
2338
+ description: Unexpected error.
2339
+ content:
2340
+ application/json:
2341
+ schema:
2342
+ "$ref": "#/components/schemas/Error"
2343
+ '422':
2344
+ description: Invalid billing information, or error running the verification
2345
+ transaction.
2346
+ content:
2347
+ application/json:
2348
+ schema:
2349
+ "$ref": "#/components/schemas/ErrorMayHaveTransaction"
2350
+ x-code-samples:
2351
+ - lang: Node.js
2352
+ source: |
2353
+ try {
2354
+ const transaction = await client.verifyBillingInfo(accountId)
2355
+ console.log('Fetched Transaction: ', transaction.id)
2356
+ } catch (err) {
2357
+ if (err instanceof recurly.errors.NotFoundError) {
2358
+ // If the request was not found, you may want to alert the user or
2359
+ // just return null
2360
+ console.log('Resource Not Found')
2361
+ } else {
2362
+ // If we don't know what to do with the err, we should
2363
+ // probably re-raise and let our web framework and logger handle it
2364
+ console.log('Unknown Error: ', err)
2365
+ }
2366
+ }
2367
+ - lang: Python
2368
+ source: |
2369
+ try:
2370
+ transaction = client.verify_billing_info(account_id)
2371
+ print("Got Transaction %s" % transaction)
2372
+ except recurly.errors.NotFoundError:
2373
+ # If the resource was not found, you may want to alert the user or
2374
+ # just return nil
2375
+ print("Resource Not Found")
2376
+ - lang: ".NET"
2377
+ source: |
2378
+ try
2379
+ {
2380
+ Transaction transaction = client.VerifyBillingInfo(accountId);
2381
+ Console.WriteLine($"Fetched transaction {transaction.Id}");
2382
+ }
2383
+ catch (Recurly.Errors.NotFound ex)
2384
+ {
2385
+ // If the resource was not found
2386
+ // we may want to alert the user or just return null
2387
+ Console.WriteLine($"Resource Not Found: {ex.Error.Message}");
2388
+ }
2389
+ catch (Recurly.Errors.ApiError ex)
2390
+ {
2391
+ // Use ApiError to catch a generic error from the API
2392
+ Console.WriteLine($"Unexpected Recurly Error: {ex.Error.Message}");
2393
+ }
2394
+ - lang: Ruby
2395
+ source: |
2396
+ begin
2397
+ transaction = @client.verify_billing_info(account_id: account_id)
2398
+ puts "Got Transaction #{transaction}"
2399
+ rescue Recurly::Errors::NotFoundError
2400
+ # If the resource was not found, you may want to alert the user or
2401
+ # just return nil
2402
+ puts "Resource Not Found"
2403
+ end
2404
+ - lang: Java
2405
+ source: |
2406
+ try {
2407
+ final Transaction transaction = client.verifyBillingInfo(accountId);
2408
+ System.out.println("Fetched transaction " + transaction.getId());
2409
+ } catch (NotFoundException e) {
2410
+ // If the resource was not found
2411
+ // we may want to alert the user or just return null
2412
+ System.out.println("Resource Not Found: " + e.getError().getMessage());
2413
+ } catch (ApiException e) {
2414
+ // Use ApiException to catch a generic error from the API
2415
+ System.out.println("Unexpected Recurly Error: " + e.getError().getMessage());
2416
+ }
2417
+ - lang: PHP
2418
+ source: |
2419
+ try {
2420
+ $transaction = $client->verifyBillingInfo($account_id);
2421
+
2422
+ echo 'Got Transaction:' . PHP_EOL;
2423
+ var_dump($transaction);
2424
+ } catch (\Recurly\Errors\NotFound $e) {
2425
+ // Could not find the resource, you may want to inform the user
2426
+ // or just return a NULL
2427
+ echo 'Could not find resource.' . PHP_EOL;
2428
+ var_dump($e);
2429
+ } catch (\Recurly\RecurlyError $e) {
2430
+ // Something bad happened... tell the user so that they can fix it?
2431
+ echo 'Some unexpected Recurly error happened. Try again later.' . PHP_EOL;
2432
+ }
2433
+ - lang: Go
2434
+ source: "verifyBillingInfoParams := &recurly.VerifyBillingInfoParams{}\ntransaction,
2435
+ err := client.VerifyBillingInfo(accountID, verifyBillingInfoParams)\nif
2436
+ e, ok := err.(*recurly.Error); ok {\n\tif e.Type == recurly.ErrorTypeNotFound
2437
+ {\n\t\tfmt.Printf(\"Resource not found: %v\", e)\n\t\treturn nil, err\n\t}\n\tfmt.Printf(\"Unexpected
2438
+ Recurly error: %v\", e)\n\treturn nil, err\n}\n\nfmt.Printf(\"Fetched Transaction:
2439
+ %v\", transaction)"
2300
2440
  "/accounts/{account_id}/billing_infos":
2301
2441
  get:
2302
2442
  tags:
2303
- - billing_info
2443
+ - billing_infos
2304
2444
  operationId: list_billing_infos
2305
2445
  summary: Get the list of billing information associated with an account
2306
2446
  description: See the [Pagination Guide](/guides/pagination.html) to learn how
@@ -2333,9 +2473,9 @@ paths:
2333
2473
  x-code-samples: []
2334
2474
  post:
2335
2475
  tags:
2336
- - billing_info
2476
+ - billing_infos
2337
2477
  operationId: create_billing_info
2338
- summary: Set an account's billing information when the wallet feature is enabled
2478
+ summary: Add new billing information on an account
2339
2479
  description: |
2340
2480
  If you're using Recurly.js to securely submit data from webforms without sending it through your server,
2341
2481
  you can associate the billing information with an account by passing in the `token_id`. The only other
@@ -2393,7 +2533,7 @@ paths:
2393
2533
  "/accounts/{account_id}/billing_infos/{billing_info_id}":
2394
2534
  get:
2395
2535
  tags:
2396
- - billing_info
2536
+ - billing_infos
2397
2537
  operationId: get_a_billing_info
2398
2538
  summary: Fetch a billing info
2399
2539
  parameters:
@@ -2415,7 +2555,7 @@ paths:
2415
2555
  x-code-samples: []
2416
2556
  put:
2417
2557
  tags:
2418
- - billing_info
2558
+ - billing_infos
2419
2559
  operationId: update_a_billing_info
2420
2560
  summary: Update an account's billing information
2421
2561
  description: |
@@ -2475,7 +2615,7 @@ paths:
2475
2615
  x-code-samples: []
2476
2616
  delete:
2477
2617
  tags:
2478
- - billing_info
2618
+ - billing_infos
2479
2619
  operationId: remove_a_billing_info
2480
2620
  summary: Remove an account's billing information
2481
2621
  parameters:
@@ -3706,7 +3846,7 @@ paths:
3706
3846
  try {
3707
3847
  LineItemCreate lineItemCreate = new LineItemCreate();
3708
3848
  lineItemCreate.setCurrency("USD");
3709
- lineItemCreate.setUnitAmount(1000.0f);
3849
+ lineItemCreate.setUnitAmount(new BigDecimal("1000.0"));
3710
3850
  lineItemCreate.setType(Constants.LineItemType.CHARGE); // choose "credit" for a credit
3711
3851
 
3712
3852
  LineItem lineItem = client.createLineItem(accountId, lineItemCreate);
@@ -5286,7 +5426,7 @@ paths:
5286
5426
  List<CouponPricing> currencies = new ArrayList<CouponPricing>();
5287
5427
  CouponPricing couponPrice = new CouponPricing();
5288
5428
  couponPrice.setCurrency("USD");
5289
- couponPrice.setDiscount(10.0f);
5429
+ couponPrice.setDiscount(new BigDecimal("10.0"));
5290
5430
  currencies.add(couponPrice);
5291
5431
 
5292
5432
  couponCreate.setCurrencies(currencies);
@@ -8817,7 +8957,7 @@ paths:
8817
8957
  final InvoiceRefund invoiceRefund = new InvoiceRefund();
8818
8958
  invoiceRefund.setCreditCustomerNotes("Notes on credits");
8819
8959
  invoiceRefund.setType(Constants.InvoiceRefundType.AMOUNT); // could also be "line_items"
8820
- invoiceRefund.setAmount(100f);
8960
+ invoiceRefund.setAmount(new BigDecimal("100"));
8821
8961
 
8822
8962
  final Invoice invoice = client.refundInvoice(invoiceId, invoiceRefund);
8823
8963
  System.out.println("Refunded invoice " + invoice.getNumber());
@@ -9447,7 +9587,7 @@ paths:
9447
9587
  List<PlanPricing> currencies = new ArrayList<PlanPricing>();
9448
9588
  PlanPricing planPrice = new PlanPricing();
9449
9589
  planPrice.setCurrency("USD");
9450
- planPrice.setUnitAmount(10000.0f);
9590
+ planPrice.setUnitAmount(new BigDecimal("10000"));
9451
9591
  currencies.add(planPrice);
9452
9592
 
9453
9593
  planCreate.setCurrencies(currencies);
@@ -10116,7 +10256,7 @@ paths:
10116
10256
  List<AddOnPricing> currencies = new ArrayList<AddOnPricing>();
10117
10257
  AddOnPricing addOnPrice = new AddOnPricing();
10118
10258
  addOnPrice.setCurrency("USD");
10119
- addOnPrice.setUnitAmount(10000.0f);
10259
+ addOnPrice.setUnitAmount(new BigDecimal("10000.0"));
10120
10260
  currencies.add(addOnPrice);
10121
10261
 
10122
10262
  addOnCreate.setCurrencies(currencies);
@@ -13751,7 +13891,14 @@ paths:
13751
13891
  // why. You can find the invalid params and reasons in e.getError().getParams()
13752
13892
  System.out.println("Failed validation: " + e.getError().getMessage());
13753
13893
  System.out.println("Params: " + e.getError().getParams());
13754
- } catch (ApiException e) {
13894
+ } catch (TransactionException e) {
13895
+ TransactionError tError = e.getError().getTransactionError();
13896
+ if (tError.getCategory() == Constants.ErrorCategory.THREE_D_SECURE_ACTION_REQUIRED) {
13897
+ String actionTokenId = tError.getThreeDSecureActionTokenId();
13898
+ System.out.println("Got 3DSecure TransactionError token: " + actionTokenId);
13899
+ }
13900
+ }
13901
+ catch (ApiException e) {
13755
13902
  // Use ApiException to catch a generic error from the API
13756
13903
  System.out.println("Unexpected Recurly Error: " + e.getError().getMessage());
13757
13904
  }
@@ -15342,7 +15489,7 @@ components:
15342
15489
  country:
15343
15490
  type: string
15344
15491
  title: Country
15345
- description: Country, 2-letter ISO code.
15492
+ description: Country, 2-letter ISO 3166-1 alpha-2 code.
15346
15493
  AddressWithName:
15347
15494
  allOf:
15348
15495
  - "$ref": "#/components/schemas/Address"
@@ -15897,19 +16044,14 @@ components:
15897
16044
  title: Kount rules
15898
16045
  primary_payment_method:
15899
16046
  type: boolean
15900
- description: The `primary_payment_method` indicator is used to designate
15901
- the primary billing info on the account. The first billing info created
15902
- on an account will always become primary. Adding additional billing infos
15903
- provides the flexibility to mark another billing info as primary, or adding
15904
- additional non-primary billing infos. This can be accomplished by passing
15905
- the `primary_payment_method` indicator. When adding billing infos via
15906
- the billing_info and /accounts endpoints, this value is not permitted,
15907
- and will return an error if provided.
16047
+ description: The `primary_payment_method` field is used to indicate the
16048
+ primary billing info on the account. The first billing info created on
16049
+ an account will always become primary. This payment method will be used
15908
16050
  backup_payment_method:
15909
16051
  type: boolean
15910
- description: The `backup_payment_method` indicator is used to designate
15911
- a billing info as a backup on the account that will be tried if the billing
15912
- info marked `primary_payment_method` fails.
16052
+ description: The `backup_payment_method` field is used to indicate a billing
16053
+ info as a backup on the account that will be tried if the initial billing
16054
+ info used for an invoice is declined.
15913
16055
  created_at:
15914
16056
  type: string
15915
16057
  format: date-time
@@ -15931,7 +16073,8 @@ components:
15931
16073
  maxLength: 20
15932
16074
  country:
15933
16075
  type: string
15934
- description: Country of IP address, if known by Recurly.
16076
+ description: Country, 2-letter ISO 3166-1 alpha-2 code matching the
16077
+ origin IP address, if known by Recurly.
15935
16078
  maxLength: 2
15936
16079
  BillingInfoCreate:
15937
16080
  type: object
@@ -16021,32 +16164,39 @@ components:
16021
16164
  tax_identifier:
16022
16165
  type: string
16023
16166
  description: Tax identifier is required if adding a billing info that is
16024
- a consumer card in Brazil. This would be the customer's CPF, CPF is a
16025
- Brazilian tax identifier for all tax paying residents.
16167
+ a consumer card in Brazil or in Argentina. This would be the customer's
16168
+ CPF (Brazil) and CUIT (Argentina). CPF and CUIT are tax identifiers for
16169
+ all residents who pay taxes in Brazil and Argentina respectively.
16026
16170
  tax_identifier_type:
16027
- description: this field and a value of 'cpf' are required if adding a billing
16028
- info that is an elo or hipercard type in Brazil.
16171
+ description: This field and a value of `cpf` or `cuit` are required if adding
16172
+ a billing info that is an elo or hipercard type in Brazil or in Argentina.
16029
16173
  "$ref": "#/components/schemas/TaxIdentifierTypeEnum"
16030
16174
  primary_payment_method:
16031
16175
  type: boolean
16032
16176
  title: Primary Payment Method
16033
- description: The `primary_payment_method` indicator is used to designate
16034
- the primary billing info on the account. The first billing info created
16035
- on an account will always become primary. Adding additional billing infos
16177
+ description: The `primary_payment_method` field is used to designate the
16178
+ primary billing info on the account. The first billing info created on
16179
+ an account will always become primary. Adding additional billing infos
16036
16180
  provides the flexibility to mark another billing info as primary, or adding
16037
16181
  additional non-primary billing infos. This can be accomplished by passing
16038
- the `primary_payment_method` indicator. When adding billing infos via
16039
- the billing_info and /accounts endpoints, this value is not permitted,
16040
- and will return an error if provided.
16182
+ the `primary_payment_method` with a value of `true`. When adding billing
16183
+ infos via the billing_info and /accounts endpoints, this value is not
16184
+ permitted, and will return an error if provided.
16041
16185
  backup_payment_method:
16042
16186
  type: boolean
16043
- description: The `backup_payment_method` indicator is used to designate
16044
- a billing info as a backup on the account that will be tried if the billing
16045
- info marked `primary_payment_method` fails. All payment methods, including
16046
- the billing info marked `primary_payment_method` can be set as a backup.
16047
- An account can have a maximum of 1 backup, if a user sets a different
16048
- payment method as a backup, the existing backup will no longer be marked
16049
- as such.
16187
+ description: The `backup_payment_method` field is used to designate a billing
16188
+ info as a backup on the account that will be tried if the initial billing
16189
+ info used for an invoice is declined. All payment methods, including the
16190
+ billing info marked `primary_payment_method` can be set as a backup. An
16191
+ account can have a maximum of 1 backup, if a user sets a different payment
16192
+ method as a backup, the existing backup will no longer be marked as such.
16193
+ BillingInfoVerify:
16194
+ type: object
16195
+ properties:
16196
+ gateway_code:
16197
+ type: string
16198
+ description: An identifier for a specific payment gateway.
16199
+ maxLength: 13
16050
16200
  Coupon:
16051
16201
  type: object
16052
16202
  properties:
@@ -17088,7 +17238,8 @@ components:
17088
17238
  type: number
17089
17239
  format: float
17090
17240
  title: Subtotal
17091
- description: The summation of charges, discounts, and credits, before tax.
17241
+ description: The summation of charges and credits, before discounts and
17242
+ taxes.
17092
17243
  tax:
17093
17244
  type: number
17094
17245
  format: float
@@ -18601,7 +18752,7 @@ components:
18601
18752
  country:
18602
18753
  type: string
18603
18754
  maxLength: 50
18604
- description: Country, 2-letter ISO code.
18755
+ description: Country, 2-letter ISO 3166-1 alpha-2 code.
18605
18756
  created_at:
18606
18757
  type: string
18607
18758
  title: Created at
@@ -18656,7 +18807,7 @@ components:
18656
18807
  country:
18657
18808
  type: string
18658
18809
  maxLength: 50
18659
- description: Country, 2-letter ISO code.
18810
+ description: Country, 2-letter ISO 3166-1 alpha-2 code.
18660
18811
  required:
18661
18812
  - first_name
18662
18813
  - last_name
@@ -18906,7 +19057,7 @@ components:
18906
19057
  country:
18907
19058
  type: string
18908
19059
  maxLength: 50
18909
- description: Country, 2-letter ISO code.
19060
+ description: Country, 2-letter ISO 3166-1 alpha-2 code.
18910
19061
  Site:
18911
19062
  type: object
18912
19063
  properties:
@@ -19455,6 +19606,21 @@ components:
19455
19606
  format: date-time
19456
19607
  title: Deleted at
19457
19608
  readOnly: true
19609
+ billing_info:
19610
+ "$ref": "#/components/schemas/SubscriptionChangeBillingInfo"
19611
+ SubscriptionChangeBillingInfo:
19612
+ type: object
19613
+ description: Accept nested attributes for three_d_secure_action_result_token_id
19614
+ properties:
19615
+ three_d_secure_action_result_token_id:
19616
+ type: string
19617
+ title: 3-D Secure action result token ID
19618
+ description: A token generated by Recurly.js after completing a 3-D Secure
19619
+ device fingerprinting or authentication challenge.
19620
+ maxLength: 22
19621
+ SubscriptionChangeBillingInfoCreate:
19622
+ allOf:
19623
+ - "$ref": "#/components/schemas/SubscriptionChangeBillingInfo"
19458
19624
  SubscriptionChangeCreate:
19459
19625
  type: object
19460
19626
  properties:
@@ -19559,6 +19725,8 @@ components:
19559
19725
  created by this request. Supports 'moto' value, which is the acronym for
19560
19726
  mail order and telephone transactions.
19561
19727
  "$ref": "#/components/schemas/GatewayTransactionTypeEnum"
19728
+ billing_info:
19729
+ "$ref": "#/components/schemas/SubscriptionChangeBillingInfoCreate"
19562
19730
  SubscriptionChangeShippingCreate:
19563
19731
  type: object
19564
19732
  title: Shipping details that will be changed on a subscription
@@ -19656,7 +19824,10 @@ components:
19656
19824
  format: date-time
19657
19825
  title: Trial ends at
19658
19826
  description: If set, overrides the default trial behavior for the subscription.
19659
- The date must be in the future.
19827
+ When the current date time or a past date time is provided the subscription
19828
+ will begin with no trial phase (overriding any plan default trial). When
19829
+ a future date time is provided the subscription will begin with a trial
19830
+ phase ending at the specified date time.
19660
19831
  starts_at:
19661
19832
  type: string
19662
19833
  format: date-time
@@ -19782,7 +19953,10 @@ components:
19782
19953
  format: date-time
19783
19954
  title: Trial ends at
19784
19955
  description: If set, overrides the default trial behavior for the subscription.
19785
- The date must be in the future.
19956
+ When the current date time or a past date time is provided the subscription
19957
+ will begin with no trial phase (overriding any plan default trial). When
19958
+ a future date time is provided the subscription will begin with a trial
19959
+ phase ending at the specified date time.
19786
19960
  starts_at:
19787
19961
  type: string
19788
19962
  format: date-time
@@ -20010,6 +20184,38 @@ components:
20010
20184
  type: number
20011
20185
  format: float
20012
20186
  title: Rate
20187
+ tax_details:
20188
+ type: array
20189
+ description: Provides additional tax details for Canadian Sales Tax when
20190
+ there is tax applied at both the country and province levels. This will
20191
+ only be populated for the Invoice response when fetching a single invoice
20192
+ and not for the InvoiceList or LineItem.
20193
+ items:
20194
+ "$ref": "#/components/schemas/TaxDetail"
20195
+ TaxDetail:
20196
+ type: object
20197
+ title: Tax detail
20198
+ properties:
20199
+ type:
20200
+ type: string
20201
+ title: Type
20202
+ description: Provides the tax type for the region. For Canadian Sales Tax,
20203
+ this will be GST, HST, QST or PST.
20204
+ region:
20205
+ type: string
20206
+ title: Region
20207
+ description: Provides the tax region applied on an invoice. For Canadian
20208
+ Sales Tax, this will be either the 2 letter province code or country code.
20209
+ rate:
20210
+ type: number
20211
+ format: float
20212
+ title: Rate
20213
+ description: Provides the tax rate for the region.
20214
+ tax:
20215
+ type: number
20216
+ format: float
20217
+ title: Tax
20218
+ description: The total tax applied for this tax type.
20013
20219
  Transaction:
20014
20220
  type: object
20015
20221
  properties:
@@ -20106,7 +20312,8 @@ components:
20106
20312
  - When the merchant enters billing information using the UI, no IP address is recorded.
20107
20313
  ip_address_country:
20108
20314
  type: string
20109
- title: IP address's country
20315
+ title: Origin IP address country, 2-letter ISO 3166-1 alpha-2 code, if known
20316
+ by Recurly.
20110
20317
  status_code:
20111
20318
  type: string
20112
20319
  title: Status code
@@ -20591,6 +20798,11 @@ components:
20591
20798
  description: A token used in place of a credit card in order to perform
20592
20799
  transactions.
20593
20800
  maxLength: 50
20801
+ cc_bin_country:
20802
+ type: string
20803
+ description: The 2-letter ISO 3166-1 alpha-2 country code associated with
20804
+ the credit card BIN, if known by Recurly. Available on the BillingInfo
20805
+ object only. Available when the BIN country lookup feature is enabled.
20594
20806
  gateway_code:
20595
20807
  type: string
20596
20808
  description: An identifier for a specific payment gateway.
@@ -21311,6 +21523,7 @@ components:
21311
21523
  - invalid_data
21312
21524
  - invalid_email
21313
21525
  - invalid_gateway_configuration
21526
+ - invalid_gateway_access_token
21314
21527
  - invalid_issuer
21315
21528
  - invalid_login
21316
21529
  - invalid_merchant_type
@@ -21403,3 +21616,4 @@ components:
21403
21616
  type: string
21404
21617
  enum:
21405
21618
  - cpf
21619
+ - cuit
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recurly
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0
4
+ version: 4.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Recurly
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-21 00:00:00.000000000 Z
11
+ date: 2021-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -155,6 +155,7 @@ files:
155
155
  - lib/recurly/requests/add_on_update.rb
156
156
  - lib/recurly/requests/address.rb
157
157
  - lib/recurly/requests/billing_info_create.rb
158
+ - lib/recurly/requests/billing_info_verify.rb
158
159
  - lib/recurly/requests/coupon_bulk_create.rb
159
160
  - lib/recurly/requests/coupon_create.rb
160
161
  - lib/recurly/requests/coupon_pricing.rb
@@ -190,6 +191,7 @@ files:
190
191
  - lib/recurly/requests/subscription_add_on_tier.rb
191
192
  - lib/recurly/requests/subscription_add_on_update.rb
192
193
  - lib/recurly/requests/subscription_cancel.rb
194
+ - lib/recurly/requests/subscription_change_billing_info_create.rb
193
195
  - lib/recurly/requests/subscription_change_create.rb
194
196
  - lib/recurly/requests/subscription_change_shipping_create.rb
195
197
  - lib/recurly/requests/subscription_create.rb
@@ -258,7 +260,9 @@ files:
258
260
  - lib/recurly/resources/subscription_add_on.rb
259
261
  - lib/recurly/resources/subscription_add_on_tier.rb
260
262
  - lib/recurly/resources/subscription_change.rb
263
+ - lib/recurly/resources/subscription_change_billing_info.rb
261
264
  - lib/recurly/resources/subscription_shipping.rb
265
+ - lib/recurly/resources/tax_detail.rb
262
266
  - lib/recurly/resources/tax_info.rb
263
267
  - lib/recurly/resources/tier.rb
264
268
  - lib/recurly/resources/tier_pricing.rb
@@ -293,7 +297,7 @@ metadata:
293
297
  changelog_uri: https://github.com/recurly/recurly-client-ruby/blob/master/CHANGELOG.md
294
298
  documentation_uri: https://recurly.github.io/recurly-client-ruby/
295
299
  homepage_uri: https://github.com/recurly/recurly-client-ruby
296
- source_code_uri: https://github.com/recurly/recurly-client-ruby/tree/4.2.0
300
+ source_code_uri: https://github.com/recurly/recurly-client-ruby/tree/4.6.0
297
301
  post_install_message:
298
302
  rdoc_options: []
299
303
  require_paths: