@@ -96,6 +96,13 @@ public class ProductUpdateParams extends ApiRequestParams {
9696 @ SerializedName ("tax_code" )
9797 Object taxCode ;
9898
99+ /**
100+ * Tax details for this product, including the <a href="https://stripe.com/tax/tax-codes">tax
101+ * code</a> and an optional performance location.
102+ */
103+ @ SerializedName ("tax_details" )
104+ Object taxDetails ;
105+
99106 /**
100107 * A label that represents units of this product. When set, this will be included in customers'
101108 * receipts, invoices, Checkout, and the customer portal. May only be set if {@code type=service}.
@@ -121,6 +128,7 @@ private ProductUpdateParams(
121128 Boolean shippable ,
122129 Object statementDescriptor ,
123130 Object taxCode ,
131+ Object taxDetails ,
124132 Object unitLabel ,
125133 Object url ) {
126134 this .active = active ;
@@ -136,6 +144,7 @@ private ProductUpdateParams(
136144 this .shippable = shippable ;
137145 this .statementDescriptor = statementDescriptor ;
138146 this .taxCode = taxCode ;
147+ this .taxDetails = taxDetails ;
139148 this .unitLabel = unitLabel ;
140149 this .url = url ;
141150 }
@@ -171,6 +180,8 @@ public static class Builder {
171180
172181 private Object taxCode ;
173182
183+ private Object taxDetails ;
184+
174185 private Object unitLabel ;
175186
176187 private Object url ;
@@ -191,6 +202,7 @@ public ProductUpdateParams build() {
191202 this .shippable ,
192203 this .statementDescriptor ,
193204 this .taxCode ,
205+ this .taxDetails ,
194206 this .unitLabel ,
195207 this .url );
196208 }
@@ -506,6 +518,24 @@ public Builder setTaxCode(EmptyParam taxCode) {
506518 return this ;
507519 }
508520
521+ /**
522+ * Tax details for this product, including the <a href="https://stripe.com/tax/tax-codes">tax
523+ * code</a> and an optional performance location.
524+ */
525+ public Builder setTaxDetails (ProductUpdateParams .TaxDetails taxDetails ) {
526+ this .taxDetails = taxDetails ;
527+ return this ;
528+ }
529+
530+ /**
531+ * Tax details for this product, including the <a href="https://stripe.com/tax/tax-codes">tax
532+ * code</a> and an optional performance location.
533+ */
534+ public Builder setTaxDetails (EmptyParam taxDetails ) {
535+ this .taxDetails = taxDetails ;
536+ return this ;
537+ }
538+
509539 /**
510540 * A label that represents units of this product. When set, this will be included in customers'
511541 * receipts, invoices, Checkout, and the customer portal. May only be set if {@code
@@ -727,4 +757,88 @@ public Builder setWidth(BigDecimal width) {
727757 }
728758 }
729759 }
760+
761+ @ Getter
762+ @ EqualsAndHashCode (callSuper = false )
763+ public static class TaxDetails {
764+ /**
765+ * Map of extra parameters for custom features not available in this client library. The content
766+ * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each
767+ * key/value pair is serialized as if the key is a root-level field (serialized) name in this
768+ * param object. Effectively, this map is flattened to its parent instance.
769+ */
770+ @ SerializedName (ApiRequestParams .EXTRA_PARAMS_KEY )
771+ Map <String , Object > extraParams ;
772+
773+ /**
774+ * <strong>Required.</strong> A <a href="https://docs.stripe.com/tax/tax-categories">tax
775+ * code</a> ID.
776+ */
777+ @ SerializedName ("tax_code" )
778+ Object taxCode ;
779+
780+ private TaxDetails (Map <String , Object > extraParams , Object taxCode ) {
781+ this .extraParams = extraParams ;
782+ this .taxCode = taxCode ;
783+ }
784+
785+ public static Builder builder () {
786+ return new Builder ();
787+ }
788+
789+ public static class Builder {
790+ private Map <String , Object > extraParams ;
791+
792+ private Object taxCode ;
793+
794+ /** Finalize and obtain parameter instance from this builder. */
795+ public ProductUpdateParams .TaxDetails build () {
796+ return new ProductUpdateParams .TaxDetails (this .extraParams , this .taxCode );
797+ }
798+
799+ /**
800+ * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll`
801+ * call, and subsequent calls add additional key/value pairs to the original map. See {@link
802+ * ProductUpdateParams.TaxDetails#extraParams} for the field documentation.
803+ */
804+ public Builder putExtraParam (String key , Object value ) {
805+ if (this .extraParams == null ) {
806+ this .extraParams = new HashMap <>();
807+ }
808+ this .extraParams .put (key , value );
809+ return this ;
810+ }
811+
812+ /**
813+ * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
814+ * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map.
815+ * See {@link ProductUpdateParams.TaxDetails#extraParams} for the field documentation.
816+ */
817+ public Builder putAllExtraParam (Map <String , Object > map ) {
818+ if (this .extraParams == null ) {
819+ this .extraParams = new HashMap <>();
820+ }
821+ this .extraParams .putAll (map );
822+ return this ;
823+ }
824+
825+ /**
826+ * <strong>Required.</strong> A <a href="https://docs.stripe.com/tax/tax-categories">tax
827+ * code</a> ID.
828+ */
829+ public Builder setTaxCode (String taxCode ) {
830+ this .taxCode = taxCode ;
831+ return this ;
832+ }
833+
834+ /**
835+ * <strong>Required.</strong> A <a href="https://docs.stripe.com/tax/tax-categories">tax
836+ * code</a> ID.
837+ */
838+ public Builder setTaxCode (EmptyParam taxCode ) {
839+ this .taxCode = taxCode ;
840+ return this ;
841+ }
842+ }
843+ }
730844}
0 commit comments