kintsugi_sdk 5.5.12 → 5.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/enum.rbi +17 -0
  3. data/lib/crystalline/metadata_fields.rb +94 -38
  4. data/lib/crystalline/module.rb +103 -13
  5. data/lib/crystalline/types.rb +100 -16
  6. data/lib/crystalline/utils.rb +13 -0
  7. data/lib/kintsugi_sdk/addressvalidation.rb +3 -3
  8. data/lib/kintsugi_sdk/customers.rb +10 -10
  9. data/lib/kintsugi_sdk/exemptions.rb +7 -7
  10. data/lib/kintsugi_sdk/models/errors/backend_src_address_validation_responses_validationerrorresponse.rb +0 -1
  11. data/lib/kintsugi_sdk/models/errors/backend_src_customers_responses_validationerrorresponse.rb +0 -1
  12. data/lib/kintsugi_sdk/models/errors/backend_src_exemptions_responses_validationerrorresponse.rb +0 -1
  13. data/lib/kintsugi_sdk/models/errors/backend_src_products_responses_validationerrorresponse.rb +0 -1
  14. data/lib/kintsugi_sdk/models/errors/backend_src_tax_estimation_responses_validationerrorresponse.rb +0 -1
  15. data/lib/kintsugi_sdk/models/errors/backend_src_transactions_responses_validationerrorresponse.rb +0 -1
  16. data/lib/kintsugi_sdk/models/errors/errorresponse.rb +0 -1
  17. data/lib/kintsugi_sdk/models/errors/httpvalidationerror.rb +0 -1
  18. data/lib/kintsugi_sdk/models/ops/createtransactionbycustomer_request.rb +0 -1
  19. data/lib/kintsugi_sdk/models/ops/estimate_tax_v1_tax_estimate_post_request.rb +2 -3
  20. data/lib/kintsugi_sdk/models/ops/get_customer_by_external_id_v1_customers_external_external_id_get_request.rb +0 -1
  21. data/lib/kintsugi_sdk/models/ops/get_customer_by_id_v1_customers_customer_id_get_request.rb +0 -1
  22. data/lib/kintsugi_sdk/models/ops/get_customers_v1_request.rb +0 -1
  23. data/lib/kintsugi_sdk/models/ops/get_exemption_by_id_v1_exemptions_exemption_id_get_request.rb +0 -1
  24. data/lib/kintsugi_sdk/models/ops/get_exemptions_v1_exemptions_get_request.rb +0 -1
  25. data/lib/kintsugi_sdk/models/ops/get_nexus_for_org_v1_nexus_get_request.rb +12 -5
  26. data/lib/kintsugi_sdk/models/ops/get_nexus_for_org_v1_nexus_get_request.rbi +4 -0
  27. data/lib/kintsugi_sdk/models/ops/get_product_by_id_v1_products_product_id_get_request.rb +0 -1
  28. data/lib/kintsugi_sdk/models/ops/get_transaction_by_id_v1_transactions_transaction_id_get_request.rb +0 -1
  29. data/lib/kintsugi_sdk/models/ops/get_transactions_v1_transactions_get_request.rb +0 -1
  30. data/lib/kintsugi_sdk/models/ops/getexemptionattachments_request.rb +0 -1
  31. data/lib/kintsugi_sdk/models/ops/gettransactionbyexternalid_request.rb +0 -1
  32. data/lib/kintsugi_sdk/models/ops/gettransactionsbycustomer_request.rb +0 -1
  33. data/lib/kintsugi_sdk/models/ops/gettransactionsbyfiling_request.rb +0 -1
  34. data/lib/kintsugi_sdk/models/ops/search_v1_address_validation_search_post_security.rb +0 -1
  35. data/lib/kintsugi_sdk/models/ops/update_customer_v1_customers_customer_id_put_request.rb +0 -1
  36. data/lib/kintsugi_sdk/models/ops/update_product_v1_products_product_id_put_request.rb +0 -1
  37. data/lib/kintsugi_sdk/models/ops/update_transaction_v1_transactions_transaction_id_put_request.rb +0 -1
  38. data/lib/kintsugi_sdk/models/ops/uploadexemptioncert_request.rb +0 -1
  39. data/lib/kintsugi_sdk/models/ops.rb +0 -1
  40. data/lib/kintsugi_sdk/models/shared/addressbase.rb +1 -2
  41. data/lib/kintsugi_sdk/models/shared/addresses.rb +3 -4
  42. data/lib/kintsugi_sdk/models/shared/addressresponsedata.rb +0 -1
  43. data/lib/kintsugi_sdk/models/shared/addresssearchresponse.rb +0 -1
  44. data/lib/kintsugi_sdk/models/shared/addressstatus.rb +0 -3
  45. data/lib/kintsugi_sdk/models/shared/addresssubmittedresponse.rb +0 -1
  46. data/lib/kintsugi_sdk/models/shared/addresstype.rb +0 -3
  47. data/lib/kintsugi_sdk/models/shared/appliedto.rb +0 -3
  48. data/lib/kintsugi_sdk/models/shared/attachmentread.rb +1 -2
  49. data/lib/kintsugi_sdk/models/shared/backend_src_address_validation_responses_validationerroritem.rb +0 -1
  50. data/lib/kintsugi_sdk/models/shared/backend_src_customers_responses_validationerroritem.rb +0 -1
  51. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_models_exemptionread.rb +4 -5
  52. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_responses_validationerroritem.rb +0 -1
  53. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_serializers_exemptionread.rb +4 -5
  54. data/lib/kintsugi_sdk/models/shared/backend_src_products_responses_validationerroritem.rb +0 -1
  55. data/lib/kintsugi_sdk/models/shared/backend_src_tax_estimation_responses_validationerroritem.rb +0 -1
  56. data/lib/kintsugi_sdk/models/shared/backend_src_transactions_responses_validationerroritem.rb +0 -1
  57. data/lib/kintsugi_sdk/models/shared/body_upload_exemption_certificate_v1_exemptions_exemption_id_attachments_post.rb +0 -1
  58. data/lib/kintsugi_sdk/models/shared/countrycodeenum.rb +1 -3
  59. data/lib/kintsugi_sdk/models/shared/currencyenum.rb +0 -3
  60. data/lib/kintsugi_sdk/models/shared/customerbase.rb +4 -5
  61. data/lib/kintsugi_sdk/models/shared/customerbasebase.rb +4 -5
  62. data/lib/kintsugi_sdk/models/shared/customerbasepublic.rb +4 -5
  63. data/lib/kintsugi_sdk/models/shared/customercreate.rb +14 -7
  64. data/lib/kintsugi_sdk/models/shared/customercreate.rbi +4 -0
  65. data/lib/kintsugi_sdk/models/shared/customerread.rb +14 -7
  66. data/lib/kintsugi_sdk/models/shared/customerread.rbi +4 -0
  67. data/lib/kintsugi_sdk/models/shared/customertaxregistrationread.rb +52 -0
  68. data/lib/kintsugi_sdk/models/shared/customertaxregistrationread.rbi +23 -0
  69. data/lib/kintsugi_sdk/models/shared/customertaxtypeenum.rb +25 -0
  70. data/lib/kintsugi_sdk/models/shared/customertaxtypeenum.rbi +11 -0
  71. data/lib/kintsugi_sdk/models/shared/customerupdate.rb +10 -7
  72. data/lib/kintsugi_sdk/models/shared/customerupdate.rbi +2 -0
  73. data/lib/kintsugi_sdk/models/shared/discountbuilder.rb +2 -3
  74. data/lib/kintsugi_sdk/models/shared/exemption.rb +5 -6
  75. data/lib/kintsugi_sdk/models/shared/exemptioncreate.rb +4 -5
  76. data/lib/kintsugi_sdk/models/shared/exemptionrequired.rb +6 -5
  77. data/lib/kintsugi_sdk/models/shared/exemptionstatus.rb +0 -3
  78. data/lib/kintsugi_sdk/models/shared/exemptiontype.rb +0 -3
  79. data/lib/kintsugi_sdk/models/shared/fastapi_pagination_default_page_exemptionread_2.rb +3 -4
  80. data/lib/kintsugi_sdk/models/shared/file.rb +0 -1
  81. data/lib/kintsugi_sdk/models/shared/findthresholdcrossingtransactionstate.rb +56 -0
  82. data/lib/kintsugi_sdk/models/shared/findthresholdcrossingtransactionstate.rbi +25 -0
  83. data/lib/kintsugi_sdk/models/shared/jurisdictiontype.rb +0 -3
  84. data/lib/kintsugi_sdk/models/shared/nexusresponse.rb +41 -26
  85. data/lib/kintsugi_sdk/models/shared/nexusresponse.rbi +10 -2
  86. data/lib/kintsugi_sdk/models/shared/nexusstateenum.rb +0 -3
  87. data/lib/kintsugi_sdk/models/shared/nexusstatusenum.rb +0 -3
  88. data/lib/kintsugi_sdk/models/shared/nexustypeenum.rb +0 -3
  89. data/lib/kintsugi_sdk/models/shared/page_customerread_.rb +3 -4
  90. data/lib/kintsugi_sdk/models/shared/page_nexusresponse_.rb +3 -4
  91. data/lib/kintsugi_sdk/models/shared/page_transactionestimateresponse_.rb +3 -4
  92. data/lib/kintsugi_sdk/models/shared/page_transactionread_.rb +3 -4
  93. data/lib/kintsugi_sdk/models/shared/periodmodelenum.rb +0 -3
  94. data/lib/kintsugi_sdk/models/shared/processingstatusenum.rb +1 -3
  95. data/lib/kintsugi_sdk/models/shared/productread.rb +12 -9
  96. data/lib/kintsugi_sdk/models/shared/productstatusenum.rb +0 -3
  97. data/lib/kintsugi_sdk/models/shared/productupdate.rb +10 -7
  98. data/lib/kintsugi_sdk/models/shared/registration.rb +0 -1
  99. data/lib/kintsugi_sdk/models/shared/registrationsregimeenum.rb +0 -3
  100. data/lib/kintsugi_sdk/models/shared/relatedentitytype.rb +0 -3
  101. data/lib/kintsugi_sdk/models/shared/salesortransactionsenum.rb +0 -3
  102. data/lib/kintsugi_sdk/models/shared/security.rb +0 -1
  103. data/lib/kintsugi_sdk/models/shared/sourceenum.rb +10 -4
  104. data/lib/kintsugi_sdk/models/shared/statusenum.rb +0 -3
  105. data/lib/kintsugi_sdk/models/shared/taxexemptionenum.rb +1 -3
  106. data/lib/kintsugi_sdk/models/shared/taxitembuilder.rb +4 -5
  107. data/lib/kintsugi_sdk/models/shared/taxitemestimate.rb +1 -2
  108. data/lib/kintsugi_sdk/models/shared/taxitemread.rb +4 -5
  109. data/lib/kintsugi_sdk/models/shared/taxitemreturnreasonenum.rb +2 -3
  110. data/lib/kintsugi_sdk/models/shared/taxitemtypeenum.rb +0 -3
  111. data/lib/kintsugi_sdk/models/shared/taxliabilitysourceenum.rb +0 -3
  112. data/lib/kintsugi_sdk/models/shared/transactionaddressbuilder.rb +3 -4
  113. data/lib/kintsugi_sdk/models/shared/transactionaddresspublic.rb +2 -3
  114. data/lib/kintsugi_sdk/models/shared/transactionaddressread_output.rb +3 -4
  115. data/lib/kintsugi_sdk/models/shared/transactioncreate.rb +23 -19
  116. data/lib/kintsugi_sdk/models/shared/transactioncreate.rbi +2 -2
  117. data/lib/kintsugi_sdk/models/shared/transactionestimatepublicrequest.rb +6 -11
  118. data/lib/kintsugi_sdk/models/shared/transactionestimatepublicrequest.rbi +0 -2
  119. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse.rb +7 -12
  120. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse.rbi +0 -2
  121. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse_addresses.rb +3 -4
  122. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse_type.rb +0 -3
  123. data/lib/kintsugi_sdk/models/shared/transactionexemptstatusenum.rb +2 -3
  124. data/lib/kintsugi_sdk/models/shared/transactionitembuilder.rb +8 -7
  125. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate.rb +8 -7
  126. data/lib/kintsugi_sdk/models/shared/transactionitemestimatebase.rb +9 -8
  127. data/lib/kintsugi_sdk/models/shared/transactionitemestimateresponse.rb +10 -9
  128. data/lib/kintsugi_sdk/models/shared/transactionitemread.rb +7 -6
  129. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest.rb +21 -17
  130. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest.rbi +2 -2
  131. data/lib/kintsugi_sdk/models/shared/transactionread.rb +24 -20
  132. data/lib/kintsugi_sdk/models/shared/transactionread.rbi +2 -2
  133. data/lib/kintsugi_sdk/models/shared/transactionrefundstatus.rb +0 -3
  134. data/lib/kintsugi_sdk/models/shared/transactionstatusenum.rb +0 -3
  135. data/lib/kintsugi_sdk/models/shared/transactiontypeenum.rb +0 -3
  136. data/lib/kintsugi_sdk/models/shared/transactionupdate.rb +19 -60
  137. data/lib/kintsugi_sdk/models/shared/transactionupdate.rbi +2 -24
  138. data/lib/kintsugi_sdk/models/shared/treatmentenum.rb +0 -3
  139. data/lib/kintsugi_sdk/models/shared/type.rb +0 -3
  140. data/lib/kintsugi_sdk/models/shared/validationaddress.rb +0 -1
  141. data/lib/kintsugi_sdk/models/shared/validationerror.rb +0 -1
  142. data/lib/kintsugi_sdk/models/shared.rb +3 -7
  143. data/lib/kintsugi_sdk/nexus.rb +1 -1
  144. data/lib/kintsugi_sdk/openapisdk.rb +13 -15
  145. data/lib/kintsugi_sdk/products.rb +6 -414
  146. data/lib/kintsugi_sdk/sdk_hooks/hooks.rb +0 -1
  147. data/lib/kintsugi_sdk/sdkconfiguration.rb +5 -10
  148. data/lib/kintsugi_sdk/taxestimation.rb +4 -4
  149. data/lib/kintsugi_sdk/transactions.rb +8 -8
  150. data/lib/kintsugi_sdk/utils/forms.rb +1 -1
  151. data/lib/kintsugi_sdk/utils/query_params.rb +4 -2
  152. data/lib/kintsugi_sdk/utils/request_bodies.rb +11 -6
  153. data/lib/kintsugi_sdk/utils/security.rb +10 -0
  154. data/lib/kintsugi_sdk/utils/url.rb +11 -5
  155. data/lib/kintsugi_sdk/utils/utils.rb +45 -3
  156. metadata +77 -41
  157. data/lib/kintsugi_sdk/models/ops/get_products_v1_products_get_request.rb +0 -61
  158. data/lib/kintsugi_sdk/models/ops/get_products_v1_products_get_request.rbi +0 -27
  159. data/lib/kintsugi_sdk/models/shared/page_productread_.rb +0 -49
  160. data/lib/kintsugi_sdk/models/shared/page_productread_.rbi +0 -21
  161. data/lib/kintsugi_sdk/models/shared/productcategories.rb +0 -38
  162. data/lib/kintsugi_sdk/models/shared/productcategories.rbi +0 -15
  163. data/lib/kintsugi_sdk/models/shared/productcategoryenum.rb +0 -25
  164. data/lib/kintsugi_sdk/models/shared/productcategoryenum.rbi +0 -11
  165. data/lib/kintsugi_sdk/models/shared/productcodeenum.rb +0 -82
  166. data/lib/kintsugi_sdk/models/shared/productcodeenum.rbi +0 -11
  167. data/lib/kintsugi_sdk/models/shared/productcreatemanual.rb +0 -61
  168. data/lib/kintsugi_sdk/models/shared/productcreatemanual.rbi +0 -27
  169. data/lib/kintsugi_sdk/models/shared/productsubcategory.rb +0 -46
  170. data/lib/kintsugi_sdk/models/shared/productsubcategory.rbi +0 -19
  171. data/lib/kintsugi_sdk/models/shared/productsubcategoryenum.rb +0 -83
  172. data/lib/kintsugi_sdk/models/shared/productsubcategoryenum.rbi +0 -11
@@ -7,7 +7,6 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class ProductRead
13
12
  extend T::Sig
@@ -20,27 +19,31 @@ module KintsugiSDK
20
19
 
21
20
  field :sku, Crystalline::Array.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('sku'), required: true } }
22
21
 
23
- field :code, Models::Shared::ProductCodeEnum, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('code'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::ProductCodeEnum, false) } }
22
+ field :code, ::String, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('code'), required: true } }
24
23
 
25
24
  field :name, ::String, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('name'), required: true } }
26
25
 
27
26
  field :description, ::String, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('description'), required: true } }
28
27
 
29
- field :status, Models::Shared::ProductStatusEnum, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('status'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::ProductStatusEnum, false) } }
30
-
31
- field :product_category, Models::Shared::ProductCategoryEnum, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('product_category'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::ProductCategoryEnum, false) } }
32
-
33
- field :product_subcategory, Models::Shared::ProductSubCategoryEnum, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('product_subcategory'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::ProductSubCategoryEnum, false) } }
28
+ field :status, Models::Shared::ProductStatusEnum, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('status'), required: true, 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::ProductStatusEnum, false) } }
29
+ # Main category of the product.
30
+ # For example, Physical, Digital, etc. You can
31
+ # retrieve supported categories from [GET /products/categories endpoint](/reference/api/products/get-product-categories)
32
+ field :product_category, ::String, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('product_category'), required: true } }
33
+ # Subcategory of the product.
34
+ # For example, General Clothing, UNKNOWN, etc. You can
35
+ # retrieve supported subcategories from [GET /products/categories endpoint](/reference/api/products/get-product-categories)
36
+ field :product_subcategory, ::String, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('product_subcategory'), required: true } }
34
37
 
35
38
  field :tax_exempt, Crystalline::Boolean.new, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('tax_exempt'), required: true } }
36
39
 
37
- field :source, Models::Shared::SourceEnum, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('source'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::SourceEnum, false) } }
40
+ field :source, Models::Shared::SourceEnum, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('source'), required: true, 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::SourceEnum, false) } }
38
41
 
39
42
  field :connection_id, ::String, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('connection_id'), required: true } }
40
43
 
41
44
  field :classification_failed, Crystalline::Boolean.new, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('classification_failed'), required: true } }
42
45
 
43
- sig { params(id: ::String, external_id: ::String, sku: T::Array[::String], code: Models::Shared::ProductCodeEnum, name: ::String, description: ::String, status: Models::Shared::ProductStatusEnum, product_category: Models::Shared::ProductCategoryEnum, product_subcategory: Models::Shared::ProductSubCategoryEnum, tax_exempt: T::Boolean, source: Models::Shared::SourceEnum, connection_id: ::String, classification_failed: T::Boolean).void }
46
+ sig { params(id: ::String, external_id: ::String, sku: T::Array[::String], code: ::String, name: ::String, description: ::String, status: Models::Shared::ProductStatusEnum, product_category: ::String, product_subcategory: ::String, tax_exempt: T::Boolean, source: Models::Shared::SourceEnum, connection_id: ::String, classification_failed: T::Boolean).void }
44
47
  def initialize(id:, external_id:, sku:, code:, name:, description:, status:, product_category:, product_subcategory:, tax_exempt:, source:, connection_id:, classification_failed:)
45
48
  @id = id
46
49
  @external_id = external_id
@@ -7,11 +7,8 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class ProductStatusEnum < T::Enum
13
-
14
-
15
12
  enums do
16
13
  APPROVED = new('APPROVED')
17
14
  PARTIALLY_APPROVED = new('PARTIALLY_APPROVED')
@@ -7,7 +7,6 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class ProductUpdate
13
12
  extend T::Sig
@@ -15,10 +14,14 @@ module KintsugiSDK
15
14
 
16
15
  # Name of the product.
17
16
  field :name, ::String, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('name'), required: true } }
18
-
19
- field :product_category, Models::Shared::ProductCategoryEnum, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('product_category'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::ProductCategoryEnum, false) } }
20
-
21
- field :product_subcategory, Models::Shared::ProductSubCategoryEnum, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('product_subcategory'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::ProductSubCategoryEnum, false) } }
17
+ # Main category of the product.
18
+ # For example, Physical, Digital, etc. You can
19
+ # retrieve supported categories from [GET /products/categories endpoint](/reference/api/products/get-product-categories)
20
+ field :product_category, ::String, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('product_category'), required: true } }
21
+ # Subcategory of the product.
22
+ # For example, General Clothing, UNKNOWN, etc. You can
23
+ # retrieve supported subcategories from [GET /products/categories endpoint](/reference/api/products/get-product-categories)
24
+ field :product_subcategory, ::String, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('product_subcategory'), required: true } }
22
25
  # Indicates whether the product is tax-exempt.
23
26
  field :tax_exempt, Crystalline::Boolean.new, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('tax_exempt'), required: true } }
24
27
  # The unique identifier of the product to be updated.
@@ -31,11 +34,11 @@ module KintsugiSDK
31
34
  # Description of the product.
32
35
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('description') } }
33
36
 
34
- field :status, Crystalline::Nilable.new(Models::Shared::ProductStatusEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('status'), 'decoder': Utils.enum_from_string(Models::Shared::ProductStatusEnum, true) } }
37
+ field :status, Crystalline::Nilable.new(Models::Shared::ProductStatusEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('status'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::ProductStatusEnum, true) } }
35
38
  # Indicates if the product classification failed.
36
39
  field :classification_failed, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('classification_failed') } }
37
40
 
38
- sig { params(name: ::String, product_category: Models::Shared::ProductCategoryEnum, product_subcategory: Models::Shared::ProductSubCategoryEnum, tax_exempt: T::Boolean, id: T.nilable(::String), external_id: T.nilable(::String), sku: T.nilable(T::Array[::String]), description: T.nilable(::String), status: T.nilable(Models::Shared::ProductStatusEnum), classification_failed: T.nilable(T::Boolean)).void }
41
+ sig { params(name: ::String, product_category: ::String, product_subcategory: ::String, tax_exempt: T::Boolean, id: T.nilable(::String), external_id: T.nilable(::String), sku: T.nilable(T::Array[::String]), description: T.nilable(::String), status: T.nilable(Models::Shared::ProductStatusEnum), classification_failed: T.nilable(T::Boolean)).void }
39
42
  def initialize(name:, product_category:, product_subcategory:, tax_exempt:, id: nil, external_id: nil, sku: nil, description: nil, status: nil, classification_failed: false)
40
43
  @name = name
41
44
  @product_category = product_category
@@ -7,7 +7,6 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class Registration
13
12
  extend T::Sig
@@ -7,11 +7,8 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class RegistrationsRegimeEnum < T::Enum
13
-
14
-
15
12
  enums do
16
13
  STANDARD = new('STANDARD')
17
14
  SIMPLIFIED = new('SIMPLIFIED')
@@ -7,11 +7,8 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class RelatedEntityType < T::Enum
13
-
14
-
15
12
  enums do
16
13
  EXEMPTION = new('EXEMPTION')
17
14
  REGISTRATION = new('REGISTRATION')
@@ -7,11 +7,8 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class SalesOrTransactionsEnum < T::Enum
13
-
14
-
15
12
  enums do
16
13
  EITHER = new('EITHER')
17
14
  SALES = new('SALES')
@@ -7,7 +7,6 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class Security
13
12
  extend T::Sig
@@ -7,13 +7,12 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class SourceEnum < T::Enum
13
-
14
-
15
12
  enums do
16
13
  BIGCOMMERCE = new('BIGCOMMERCE')
14
+ BESTBUY = new('BESTBUY')
15
+ BUNNY = new('BUNNY')
17
16
  CHARGEBEE = new('CHARGEBEE')
18
17
  SHOPIFY = new('SHOPIFY')
19
18
  STRIPE = new('STRIPE')
@@ -47,6 +46,7 @@ module KintsugiSDK
47
46
  GUSTO = new('GUSTO')
48
47
  FACEBOOK = new('FACEBOOK')
49
48
  OTHER = new('OTHER')
49
+ ORDWAY = new('ORDWAY')
50
50
  INSTAGRAM = new('INSTAGRAM')
51
51
  PINTEREST = new('PINTEREST')
52
52
  WAYFAIR = new('WAYFAIR')
@@ -63,7 +63,13 @@ module KintsugiSDK
63
63
  FAIRE = new('FAIRE')
64
64
  SHOPWARE = new('SHOPWARE')
65
65
  ZOHO = new('ZOHO')
66
- SAGE_INTACCT = new('SAGE_INTACCT')
66
+ SAGE_INTACCT = new('SAGE-INTACCT')
67
+ AIRWALLEX = new('AIRWALLEX')
68
+ ORB = new('ORB')
69
+ ZENSKAR = new('ZENSKAR')
70
+ MICROSOFT_DYNAMICS_365 = new('MICROSOFT_DYNAMICS_365')
71
+ KICKSTARTER = new('KICKSTARTER')
72
+ INTERNAL_ERP = new('INTERNAL_ERP')
67
73
  end
68
74
  end
69
75
  end
@@ -7,11 +7,8 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class StatusEnum < T::Enum
13
-
14
-
15
12
  enums do
16
13
  ACTIVE = new('ACTIVE')
17
14
  ARCHIVED = new('ARCHIVED')
@@ -7,11 +7,8 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
  # TaxExemptionEnum - This enum is used to determine if a transaction is exempt from tax.
12
11
  class TaxExemptionEnum < T::Enum
13
-
14
-
15
12
  enums do
16
13
  PRODUCT = new('PRODUCT')
17
14
  TRANSACTION = new('TRANSACTION')
@@ -24,6 +21,7 @@ module KintsugiSDK
24
21
  ZERO_VALUE_ITEM = new('ZERO_VALUE_ITEM')
25
22
  NO_RULE_FOUND = new('NO_RULE_FOUND')
26
23
  IMPORTED = new('IMPORTED')
24
+ ZERO_RATE_NOT_EXEMPT = new('ZERO_RATE_NOT_EXEMPT')
27
25
  end
28
26
  end
29
27
  end
@@ -7,7 +7,6 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class TaxItemBuilder
13
12
  extend T::Sig
@@ -24,15 +23,15 @@ module KintsugiSDK
24
23
 
25
24
  field :converted_amount, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('converted_amount') } }
26
25
 
27
- field :currency, Crystalline::Nilable.new(Models::Shared::CurrencyEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('currency'), 'decoder': Utils.enum_from_string(Models::Shared::CurrencyEnum, true) } }
26
+ field :currency, Crystalline::Nilable.new(Models::Shared::CurrencyEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('currency'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::CurrencyEnum, true) } }
28
27
 
29
- field :destination_currency, Crystalline::Nilable.new(Models::Shared::CurrencyEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('destination_currency'), 'decoder': Utils.enum_from_string(Models::Shared::CurrencyEnum, true) } }
28
+ field :destination_currency, Crystalline::Nilable.new(Models::Shared::CurrencyEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('destination_currency'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::CurrencyEnum, true) } }
30
29
 
31
30
  field :external_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('external_id') } }
32
31
 
33
- field :type, Crystalline::Nilable.new(Models::Shared::TaxItemTypeEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Models::Shared::TaxItemTypeEnum, true) } }
32
+ field :type, Crystalline::Nilable.new(Models::Shared::TaxItemTypeEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('type'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::TaxItemTypeEnum, true) } }
34
33
 
35
- field :jurisdiction_type, Crystalline::Nilable.new(Models::Shared::JurisdictionType), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('jurisdiction_type'), 'decoder': Utils.enum_from_string(Models::Shared::JurisdictionType, true) } }
34
+ field :jurisdiction_type, Crystalline::Nilable.new(Models::Shared::JurisdictionType), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('jurisdiction_type'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::JurisdictionType, true) } }
36
35
 
37
36
  field :jurisdiction_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('jurisdiction_name') } }
38
37
  # The rule ID of the tax item
@@ -7,7 +7,6 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class TaxItemEstimate
13
12
  extend T::Sig
@@ -16,7 +15,7 @@ module KintsugiSDK
16
15
 
17
16
  field :name, ::String, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('name'), required: true } }
18
17
  # We use this to understand the response from get_tax_items
19
- field :exempt_reason, Crystalline::Nilable.new(Models::Shared::TaxItemReturnReasonEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('exempt_reason'), 'decoder': Utils.enum_from_string(Models::Shared::TaxItemReturnReasonEnum, true) } }
18
+ field :exempt_reason, Crystalline::Nilable.new(Models::Shared::TaxItemReturnReasonEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('exempt_reason'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::TaxItemReturnReasonEnum, true) } }
20
19
 
21
20
  field :rule, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('rule') } }
22
21
 
@@ -7,7 +7,6 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class TaxItemRead
13
12
  extend T::Sig
@@ -22,15 +21,15 @@ module KintsugiSDK
22
21
 
23
22
  field :converted_amount, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('converted_amount') } }
24
23
 
25
- field :currency, Crystalline::Nilable.new(Models::Shared::CurrencyEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('currency'), 'decoder': Utils.enum_from_string(Models::Shared::CurrencyEnum, true) } }
24
+ field :currency, Crystalline::Nilable.new(Models::Shared::CurrencyEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('currency'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::CurrencyEnum, true) } }
26
25
 
27
- field :destination_currency, Crystalline::Nilable.new(Models::Shared::CurrencyEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('destination_currency'), 'decoder': Utils.enum_from_string(Models::Shared::CurrencyEnum, true) } }
26
+ field :destination_currency, Crystalline::Nilable.new(Models::Shared::CurrencyEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('destination_currency'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::CurrencyEnum, true) } }
28
27
 
29
28
  field :external_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('external_id') } }
30
29
 
31
- field :type, Crystalline::Nilable.new(Models::Shared::TaxItemTypeEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Models::Shared::TaxItemTypeEnum, true) } }
30
+ field :type, Crystalline::Nilable.new(Models::Shared::TaxItemTypeEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('type'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::TaxItemTypeEnum, true) } }
32
31
 
33
- field :jurisdiction_type, Crystalline::Nilable.new(Models::Shared::JurisdictionType), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('jurisdiction_type'), 'decoder': Utils.enum_from_string(Models::Shared::JurisdictionType, true) } }
32
+ field :jurisdiction_type, Crystalline::Nilable.new(Models::Shared::JurisdictionType), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('jurisdiction_type'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::JurisdictionType, true) } }
34
33
 
35
34
  field :jurisdiction_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('jurisdiction_name') } }
36
35
  # The rule ID of the tax item
@@ -7,17 +7,16 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
  # TaxItemReturnReasonEnum - We use this to understand the response from get_tax_items
12
11
  class TaxItemReturnReasonEnum < T::Enum
13
-
14
-
15
12
  enums do
16
13
  NO_RULE_FOUND = new('NO_RULE_FOUND')
17
14
  RULE_FOUND_TAXABLE = new('RULE_FOUND_TAXABLE')
18
15
  RULE_FOUND_NOT_TAXABLE = new('RULE_FOUND_NOT_TAXABLE')
16
+ RULE_FOUND_TAXABLE_ZERO_RATE = new('RULE_FOUND_TAXABLE_ZERO_RATE')
19
17
  PRODUCT_EXEMPT = new('PRODUCT_EXEMPT')
20
18
  FROM_IMPORT = new('FROM_IMPORT')
19
+ RULE_EXCLUDED_IN_CALCULATION = new('RULE_EXCLUDED_IN_CALCULATION')
21
20
  end
22
21
  end
23
22
  end
@@ -7,11 +7,8 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class TaxItemTypeEnum < T::Enum
13
-
14
-
15
12
  enums do
16
13
  IMPORTED_ORIGINAL = new('IMPORTED_ORIGINAL')
17
14
  IMPORTED = new('IMPORTED')
@@ -7,11 +7,8 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class TaxLiabilitySourceEnum < T::Enum
13
-
14
-
15
12
  enums do
16
13
  CALCULATED = new('CALCULATED')
17
14
  COLLECTED = new('COLLECTED')
@@ -7,14 +7,13 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class TransactionAddressBuilder
13
12
  extend T::Sig
14
13
  include Crystalline::MetadataFields
15
14
 
16
15
 
17
- field :type, Models::Shared::AddressType, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('type'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::AddressType, false) } }
16
+ field :type, Models::Shared::AddressType, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('type'), required: true, 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::AddressType, false) } }
18
17
  # Phone number associated with the address.
19
18
  field :phone, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('phone') } }
20
19
  # Primary street address.
@@ -30,13 +29,13 @@ module KintsugiSDK
30
29
  # ZIP or Postal code of the customer.
31
30
  field :postal_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('postal_code') } }
32
31
 
33
- field :country, Crystalline::Nilable.new(Models::Shared::CountryCodeEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('country'), 'decoder': Utils.enum_from_string(Models::Shared::CountryCodeEnum, true) } }
32
+ field :country, Crystalline::Nilable.new(Models::Shared::CountryCodeEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('country'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::CountryCodeEnum, true) } }
34
33
  # Complete address string of the customer, which can be used as an alternative to individual fields.
35
34
  field :full_address, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('full_address') } }
36
35
  # Optional additional enriched data for the address.
37
36
  field :enriched_fields, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('enriched_fields') } }
38
37
 
39
- field :status, Crystalline::Nilable.new(Models::Shared::AddressStatus), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('status'), 'decoder': Utils.enum_from_string(Models::Shared::AddressStatus, true) } }
38
+ field :status, Crystalline::Nilable.new(Models::Shared::AddressStatus), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('status'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::AddressStatus, true) } }
40
39
 
41
40
  field :organization_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('organization_id') } }
42
41
 
@@ -7,14 +7,13 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
  # Public address class for transaction addresses
12
11
  class TransactionAddressPublic
13
12
  extend T::Sig
14
13
  include Crystalline::MetadataFields
15
14
 
16
15
 
17
- field :type, Models::Shared::AddressType, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('type'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::AddressType, false) } }
16
+ field :type, Models::Shared::AddressType, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('type'), required: true, 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::AddressType, false) } }
18
17
  # Phone number associated with the address.
19
18
  field :phone, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('phone') } }
20
19
  # Primary street address.
@@ -30,7 +29,7 @@ module KintsugiSDK
30
29
  # ZIP or Postal code of the customer.
31
30
  field :postal_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('postal_code') } }
32
31
 
33
- field :country, Crystalline::Nilable.new(Models::Shared::CountryCodeEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('country'), 'decoder': Utils.enum_from_string(Models::Shared::CountryCodeEnum, true) } }
32
+ field :country, Crystalline::Nilable.new(Models::Shared::CountryCodeEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('country'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::CountryCodeEnum, true) } }
34
33
  # Complete address string of the customer, which can be used as an alternative to individual fields.
35
34
  field :full_address, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('full_address') } }
36
35
 
@@ -7,14 +7,13 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class TransactionAddressReadOutput
13
12
  extend T::Sig
14
13
  include Crystalline::MetadataFields
15
14
 
16
15
 
17
- field :type, Models::Shared::AddressType, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('type'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::AddressType, false) } }
16
+ field :type, Models::Shared::AddressType, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('type'), required: true, 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::AddressType, false) } }
18
17
  # Phone number associated with the address.
19
18
  field :phone, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('phone') } }
20
19
  # Primary street address.
@@ -30,11 +29,11 @@ module KintsugiSDK
30
29
  # ZIP or Postal code of the customer.
31
30
  field :postal_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('postal_code') } }
32
31
 
33
- field :country, Crystalline::Nilable.new(Models::Shared::CountryCodeEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('country'), 'decoder': Utils.enum_from_string(Models::Shared::CountryCodeEnum, true) } }
32
+ field :country, Crystalline::Nilable.new(Models::Shared::CountryCodeEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('country'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::CountryCodeEnum, true) } }
34
33
  # Complete address string of the customer, which can be used as an alternative to individual fields.
35
34
  field :full_address, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('full_address') } }
36
35
 
37
- field :status, Crystalline::Nilable.new(Models::Shared::AddressStatus), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('status'), 'decoder': Utils.enum_from_string(Models::Shared::AddressStatus, true) } }
36
+ field :status, Crystalline::Nilable.new(Models::Shared::AddressStatus), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('status'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::AddressStatus, true) } }
38
37
  # Unique identifier of the address being updated.
39
38
  field :id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('id') } }
40
39
  # ID of the transaction associated with the address.
@@ -7,18 +7,19 @@
7
7
  module KintsugiSDK
8
8
  module Models
9
9
  module Shared
10
-
11
10
 
12
11
  class TransactionCreate
13
12
  extend T::Sig
14
13
  include Crystalline::MetadataFields
15
14
 
16
- # Unique identifier of the organization.
15
+ # Unique identifier of the organization. This field is deprecated, and should no longer be used. The value is populated through the 'x-organization-id' header.
16
+ #
17
+ # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
17
18
  field :organization_id, ::String, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('organization_id'), required: true } }
18
19
  # External identifier of the transaction.
19
20
  field :external_id, ::String, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('external_id'), required: true } }
20
21
  # Transaction date and time
21
- field :date, ::DateTime, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('date'), required: true, 'decoder': Utils.datetime_from_iso_format(false) } }
22
+ field :date, ::DateTime, { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('date'), required: true, 'decoder': ::KintsugiSDK::Utils.datetime_from_iso_format(false) } }
22
23
 
23
24
  field :addresses, Crystalline::Array.new(Models::Shared::TransactionAddressBuilder), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('addresses'), required: true } }
24
25
 
@@ -29,21 +30,20 @@ module KintsugiSDK
29
30
  field :shop_date, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('shop_date') } }
30
31
  # Timezone of the shop
31
32
  field :shop_date_tz, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('shop_date_tz') } }
32
-
33
- field :status, Crystalline::Nilable.new(Models::Shared::TransactionStatusEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('status'), 'decoder': Utils.enum_from_string(Models::Shared::TransactionStatusEnum, true) } }
34
33
  # Description of the transaction.
35
34
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('description') } }
36
35
  # Shopify has 2 order statuses for refund case: refunded and partially_refunded
37
36
  # If the given order has different status from these 2, we will set the
38
37
  # transaction's refund_status to PARTIALLY_REFUNDED by default.
39
- field :refund_status, Crystalline::Nilable.new(Models::Shared::TransactionRefundStatus), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('refund_status'), 'decoder': Utils.enum_from_string(Models::Shared::TransactionRefundStatus, true) } }
38
+ field :refund_status, Crystalline::Nilable.new(Models::Shared::TransactionRefundStatus), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('refund_status'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::TransactionRefundStatus, true) } }
40
39
  # Unique identifier of the customer.
41
40
  field :customer_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('customer_id') } }
42
41
  # Based on transaction item exempt status.
43
42
  # NOT EXEMPT: None of the items are NOT EXEMPT
44
43
  # PARTIALLY EXEMPT: At least some of the items are NOT EXEMPT
45
44
  # FULLY_EXEMPT: All items sold in the transaction are EXEMPT
46
- field :exempt, Crystalline::Nilable.new(Models::Shared::TransactionExemptStatusEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('exempt'), 'decoder': Utils.enum_from_string(Models::Shared::TransactionExemptStatusEnum, true) } }
45
+ # ZERO_RATE_NOT_EXEMPT: All items sold in the transaction are zero-rated
46
+ field :exempt, Crystalline::Nilable.new(Models::Shared::TransactionExemptStatusEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('exempt'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::TransactionExemptStatusEnum, true) } }
47
47
  # List of exemptions applied (if any).
48
48
  field :exemptions, Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::Exemption)), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('exemptions') } }
49
49
  # Related transaction identifier.
@@ -55,11 +55,11 @@ module KintsugiSDK
55
55
  # Friendly identifier of the original item.
56
56
  field :external_friendly_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('external_friendly_id') } }
57
57
 
58
- field :tax_liability_source, Crystalline::Nilable.new(Models::Shared::TaxLiabilitySourceEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('tax_liability_source'), 'decoder': Utils.enum_from_string(Models::Shared::TaxLiabilitySourceEnum, true) } }
58
+ field :tax_liability_source, Crystalline::Nilable.new(Models::Shared::TaxLiabilitySourceEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('tax_liability_source'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::TaxLiabilitySourceEnum, true) } }
59
59
 
60
- field :currency, Crystalline::Nilable.new(Models::Shared::CurrencyEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('currency'), 'decoder': Utils.enum_from_string(Models::Shared::CurrencyEnum, true) } }
60
+ field :currency, Crystalline::Nilable.new(Models::Shared::CurrencyEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('currency'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::CurrencyEnum, true) } }
61
61
 
62
- field :source, Crystalline::Nilable.new(Models::Shared::SourceEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('source'), 'decoder': Utils.enum_from_string(Models::Shared::SourceEnum, true) } }
62
+ field :source, Crystalline::Nilable.new(Models::Shared::SourceEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('source'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::SourceEnum, true) } }
63
63
  # Connection Identifier
64
64
  field :connection_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('connection_id') } }
65
65
  # Filing identifier.
@@ -71,18 +71,22 @@ module KintsugiSDK
71
71
  # State of the transaction address.
72
72
  field :state, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('state') } }
73
73
 
74
- field :country, Crystalline::Nilable.new(Models::Shared::CountryCodeEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('country'), 'decoder': Utils.enum_from_string(Models::Shared::CountryCodeEnum, true) } }
74
+ field :country, Crystalline::Nilable.new(Models::Shared::CountryCodeEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('country'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::CountryCodeEnum, true) } }
75
75
  # Postal code of the transaction.
76
76
  field :postal_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('postal_code') } }
77
- # Tax ID associated with the transaction
77
+ # Tax ID associated with the transaction. DEPRECATED: This field is only populated for QuickBooks integrations and will be removed in a future version.
78
+ #
79
+ # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
78
80
  field :tax_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('tax_id') } }
79
81
 
80
- field :address_status, Crystalline::Nilable.new(Models::Shared::AddressStatus), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('address_status'), 'decoder': Utils.enum_from_string(Models::Shared::AddressStatus, true) } }
82
+ field :status, Crystalline::Nilable.new(Models::Shared::TransactionStatusEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('status'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::TransactionStatusEnum, true) } }
83
+
84
+ field :address_status, Crystalline::Nilable.new(Models::Shared::AddressStatus), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('address_status'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::AddressStatus, true) } }
81
85
  # Our transaction state, used to determine when/if a transaction needs additional
82
86
  # processing.
83
- field :processing_status, Crystalline::Nilable.new(Models::Shared::ProcessingStatusEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('processing_status'), 'decoder': Utils.enum_from_string(Models::Shared::ProcessingStatusEnum, true) } }
87
+ field :processing_status, Crystalline::Nilable.new(Models::Shared::ProcessingStatusEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('processing_status'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::ProcessingStatusEnum, true) } }
84
88
 
85
- field :destination_currency, Crystalline::Nilable.new(Models::Shared::CurrencyEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('destination_currency'), 'decoder': Utils.enum_from_string(Models::Shared::CurrencyEnum, true) } }
89
+ field :destination_currency, Crystalline::Nilable.new(Models::Shared::CurrencyEnum), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('destination_currency'), 'decoder': ::KintsugiSDK::Utils.enum_from_string(Models::Shared::CurrencyEnum, true) } }
86
90
  # Converted total amount.
87
91
  field :converted_total_amount, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('converted_total_amount') } }
88
92
  # Converted imported tax amount.
@@ -120,8 +124,8 @@ module KintsugiSDK
120
124
  # Transaction lock status.
121
125
  field :locked, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::KintsugiSDK::Utils.field_name('locked') } }
122
126
 
123
- sig { params(organization_id: ::String, external_id: ::String, date: ::DateTime, addresses: T::Array[Models::Shared::TransactionAddressBuilder], transaction_items: T::Array[Models::Shared::TransactionItemCreateUpdate], requires_exemption: T.nilable(Models::Shared::ExemptionRequired), shop_date: T.nilable(::String), shop_date_tz: T.nilable(::String), status: T.nilable(Models::Shared::TransactionStatusEnum), description: T.nilable(::String), refund_status: T.nilable(Models::Shared::TransactionRefundStatus), customer_id: T.nilable(::String), exempt: T.nilable(Models::Shared::TransactionExemptStatusEnum), exemptions: T.nilable(T::Array[Models::Shared::Exemption]), related_to: T.nilable(::String), secondary_external_id: T.nilable(::String), secondary_source: T.nilable(::String), external_friendly_id: T.nilable(::String), tax_liability_source: T.nilable(Models::Shared::TaxLiabilitySourceEnum), currency: T.nilable(Models::Shared::CurrencyEnum), source: T.nilable(Models::Shared::SourceEnum), connection_id: T.nilable(::String), filing_id: T.nilable(::String), city: T.nilable(::String), county: T.nilable(::String), state: T.nilable(::String), country: T.nilable(Models::Shared::CountryCodeEnum), postal_code: T.nilable(::String), tax_id: T.nilable(::String), address_status: T.nilable(Models::Shared::AddressStatus), processing_status: T.nilable(Models::Shared::ProcessingStatusEnum), destination_currency: T.nilable(Models::Shared::CurrencyEnum), converted_total_amount: T.nilable(::Float), converted_total_tax_amount_imported: T.nilable(::Float), converted_total_tax_amount_calculated: T.nilable(::Float), conversion_rate: T.nilable(::Float), converted_taxable_amount: T.nilable(::Float), converted_total_discount: T.nilable(::Float), converted_subtotal: T.nilable(::Float), converted_total_tax_liability_amount: T.nilable(::Float), customer: T.nilable(Models::Shared::CustomerCreate), total_amount: T.nilable(::Float), marketplace: T.nilable(T::Boolean), total_tax_amount_imported: T.nilable(::Float), tax_rate_imported: T.nilable(::Float), total_tax_amount_calculated: T.nilable(::Float), tax_rate_calculated: T.nilable(::Float), total_tax_liability_amount: T.nilable(::Float), taxable_amount: T.nilable(::Float), locked: T.nilable(T::Boolean)).void }
124
- def initialize(organization_id:, external_id:, date:, addresses:, transaction_items:, requires_exemption: nil, shop_date: nil, shop_date_tz: nil, status: nil, description: nil, refund_status: nil, customer_id: nil, exempt: nil, exemptions: nil, related_to: nil, secondary_external_id: nil, secondary_source: nil, external_friendly_id: nil, tax_liability_source: nil, currency: nil, source: nil, connection_id: nil, filing_id: nil, city: nil, county: nil, state: nil, country: nil, postal_code: nil, tax_id: nil, address_status: nil, processing_status: nil, destination_currency: nil, converted_total_amount: nil, converted_total_tax_amount_imported: nil, converted_total_tax_amount_calculated: nil, conversion_rate: nil, converted_taxable_amount: nil, converted_total_discount: nil, converted_subtotal: nil, converted_total_tax_liability_amount: nil, customer: nil, total_amount: 0.00, marketplace: false, total_tax_amount_imported: 0.00, tax_rate_imported: 0.00, total_tax_amount_calculated: 0.00, tax_rate_calculated: 0.00, total_tax_liability_amount: 0.00, taxable_amount: 0.00, locked: false)
127
+ sig { params(organization_id: ::String, external_id: ::String, date: ::DateTime, addresses: T::Array[Models::Shared::TransactionAddressBuilder], transaction_items: T::Array[Models::Shared::TransactionItemCreateUpdate], requires_exemption: T.nilable(Models::Shared::ExemptionRequired), shop_date: T.nilable(::String), shop_date_tz: T.nilable(::String), description: T.nilable(::String), refund_status: T.nilable(Models::Shared::TransactionRefundStatus), customer_id: T.nilable(::String), exempt: T.nilable(Models::Shared::TransactionExemptStatusEnum), exemptions: T.nilable(T::Array[Models::Shared::Exemption]), related_to: T.nilable(::String), secondary_external_id: T.nilable(::String), secondary_source: T.nilable(::String), external_friendly_id: T.nilable(::String), tax_liability_source: T.nilable(Models::Shared::TaxLiabilitySourceEnum), currency: T.nilable(Models::Shared::CurrencyEnum), source: T.nilable(Models::Shared::SourceEnum), connection_id: T.nilable(::String), filing_id: T.nilable(::String), city: T.nilable(::String), county: T.nilable(::String), state: T.nilable(::String), country: T.nilable(Models::Shared::CountryCodeEnum), postal_code: T.nilable(::String), tax_id: T.nilable(::String), status: T.nilable(Models::Shared::TransactionStatusEnum), address_status: T.nilable(Models::Shared::AddressStatus), processing_status: T.nilable(Models::Shared::ProcessingStatusEnum), destination_currency: T.nilable(Models::Shared::CurrencyEnum), converted_total_amount: T.nilable(::Float), converted_total_tax_amount_imported: T.nilable(::Float), converted_total_tax_amount_calculated: T.nilable(::Float), conversion_rate: T.nilable(::Float), converted_taxable_amount: T.nilable(::Float), converted_total_discount: T.nilable(::Float), converted_subtotal: T.nilable(::Float), converted_total_tax_liability_amount: T.nilable(::Float), customer: T.nilable(Models::Shared::CustomerCreate), total_amount: T.nilable(::Float), marketplace: T.nilable(T::Boolean), total_tax_amount_imported: T.nilable(::Float), tax_rate_imported: T.nilable(::Float), total_tax_amount_calculated: T.nilable(::Float), tax_rate_calculated: T.nilable(::Float), total_tax_liability_amount: T.nilable(::Float), taxable_amount: T.nilable(::Float), locked: T.nilable(T::Boolean)).void }
128
+ def initialize(organization_id:, external_id:, date:, addresses:, transaction_items:, requires_exemption: nil, shop_date: nil, shop_date_tz: nil, description: nil, refund_status: nil, customer_id: nil, exempt: nil, exemptions: nil, related_to: nil, secondary_external_id: nil, secondary_source: nil, external_friendly_id: nil, tax_liability_source: nil, currency: nil, source: nil, connection_id: nil, filing_id: nil, city: nil, county: nil, state: nil, country: nil, postal_code: nil, tax_id: nil, status: nil, address_status: nil, processing_status: nil, destination_currency: nil, converted_total_amount: nil, converted_total_tax_amount_imported: nil, converted_total_tax_amount_calculated: nil, conversion_rate: nil, converted_taxable_amount: nil, converted_total_discount: nil, converted_subtotal: nil, converted_total_tax_liability_amount: nil, customer: nil, total_amount: 0.0, marketplace: false, total_tax_amount_imported: 0.0, tax_rate_imported: 0.0, total_tax_amount_calculated: 0.0, tax_rate_calculated: 0.0, total_tax_liability_amount: 0.0, taxable_amount: 0.0, locked: false)
125
129
  @organization_id = organization_id
126
130
  @external_id = external_id
127
131
  @date = date
@@ -130,7 +134,6 @@ module KintsugiSDK
130
134
  @requires_exemption = requires_exemption
131
135
  @shop_date = shop_date
132
136
  @shop_date_tz = shop_date_tz
133
- @status = status
134
137
  @description = description
135
138
  @refund_status = refund_status
136
139
  @customer_id = customer_id
@@ -151,6 +154,7 @@ module KintsugiSDK
151
154
  @country = country
152
155
  @postal_code = postal_code
153
156
  @tax_id = tax_id
157
+ @status = status
154
158
  @address_status = address_status
155
159
  @processing_status = processing_status
156
160
  @destination_currency = destination_currency
@@ -185,7 +189,6 @@ module KintsugiSDK
185
189
  return false unless @requires_exemption == other.requires_exemption
186
190
  return false unless @shop_date == other.shop_date
187
191
  return false unless @shop_date_tz == other.shop_date_tz
188
- return false unless @status == other.status
189
192
  return false unless @description == other.description
190
193
  return false unless @refund_status == other.refund_status
191
194
  return false unless @customer_id == other.customer_id
@@ -206,6 +209,7 @@ module KintsugiSDK
206
209
  return false unless @country == other.country
207
210
  return false unless @postal_code == other.postal_code
208
211
  return false unless @tax_id == other.tax_id
212
+ return false unless @status == other.status
209
213
  return false unless @address_status == other.address_status
210
214
  return false unless @processing_status == other.processing_status
211
215
  return false unless @destination_currency == other.destination_currency
@@ -24,8 +24,6 @@ class KintsugiSDK::Models::Shared::TransactionCreate
24
24
  def shop_date=(str_); end
25
25
  def shop_date_tz(); end
26
26
  def shop_date_tz=(str_); end
27
- def status(); end
28
- def status=(str_); end
29
27
  def description(); end
30
28
  def description=(str_); end
31
29
  def refund_status(); end
@@ -66,6 +64,8 @@ class KintsugiSDK::Models::Shared::TransactionCreate
66
64
  def postal_code=(str_); end
67
65
  def tax_id(); end
68
66
  def tax_id=(str_); end
67
+ def status(); end
68
+ def status=(str_); end
69
69
  def address_status(); end
70
70
  def address_status=(str_); end
71
71
  def processing_status(); end