{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Python client library 3.9.0 changelog","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"python-client-library-390-changelog","__idx":0},"children":["Python client library 3.9.0 changelog"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"__init__","__idx":1},"children":["__init__"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new model ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ActionType"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new model ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AssociationRule"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new models related to commitments: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentBaseAttributes"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentCycleAttributes"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentInput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentOutput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentOutputSegmentsInner"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentSegmentAttributes"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentSegmentBaseAttributes"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentSegmentInput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentTypeEnum"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new models ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommonRevenueAttributes"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommonTaxationAttributes"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new model ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CyclePeriodTypeEnum"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new model ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ExpandedCommitmentCycle"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new model ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ProrationOptionEnum"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new model ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["QueryCommitmentCyclesResponse"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new models related to upsert operations: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpsertCommitmentInput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpsertCommitmentSegmentInput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpsertCreateCommitmentInput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpsertCreateCommitmentInputAllOfSegments"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpsertCreateCommitmentSegmentInput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpsertUpdateCommitmentInput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpsertUpdateCommitmentSegmentInput"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"invoices_api","__idx":2},"children":["invoices_api"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added pagination support with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page_size"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page"]}," parameters to control the number of records returned per page and the index of the page to retrieve."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"object_queries_api","__idx":3},"children":["object_queries_api"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Resource path for commitment segment queries has been changed from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/object-query/commitmentSegment"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/object-query/commitment-segment"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new method ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["query_commitment_cycle_by_key"]}," to query CommitmentCycle by key with filters, expands, and sort capabilities."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new method ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["query_commitment_cycles"]}," to query CommitmentCycles with filters, expands, and sort capabilities."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"models__init__","__idx":4},"children":["models/__init__"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new model ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ActionType"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new model ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AssociationRule"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new models related to commitments: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentBaseAttributes"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentCycleAttributes"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentInput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentOutput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentOutputSegmentsInner"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentSegmentAttributes"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentSegmentBaseAttributes"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentSegmentInput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommitmentTypeEnum"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new models ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommonRevenueAttributes"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CommonTaxationAttributes"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new model ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CyclePeriodTypeEnum"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new model ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ExpandedCommitmentCycle"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new model ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ProrationOptionEnum"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new model ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["QueryCommitmentCyclesResponse"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new models related to upsert operations: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpsertCommitmentInput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpsertCommitmentSegmentInput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpsertCreateCommitmentInput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpsertCreateCommitmentInputAllOfSegments"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpsertCreateCommitmentSegmentInput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpsertUpdateCommitmentInput"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpsertUpdateCommitmentSegmentInput"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"accounting_code_type","__idx":5},"children":["accounting_code_type"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new accounting code types: UNBILLEDRECEIVABLES, CONTRACTASSETS, CONTRACTLIABILITIES, ADJUSTMENTLIABILITIES, and ADJUSTMENTREVENUE."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"charge_override","__idx":6},"children":["charge_override"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pricingAttributes"]}," field to support dynamic pricing with the DynamicPricing permission."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Introduced ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["negotiatedPriceTable"]}," field to handle negotiated price table information with the NegotiatedPriceTable permission."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"charge_update","__idx":7},"children":["charge_update"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_dimensional_price"]}," field to indicate if the charge uses dimensional pricing."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Introduced ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pricing_attributes"]}," field for dynamic pricing attributes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["negotiated_price_table"]}," field for negotiated price table information."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"collect_debit_memo_request_payment","__idx":8},"children":["collect_debit_memo_request_payment"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added a new optional field ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cryptogram"]}," to the CollectDebitMemoRequestPayment model, which allows specifying a cryptogram value supplied by the token provider."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create_authorization_request","__idx":9},"children":["create_authorization_request"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cryptogram"]}," field to CreateAuthorizationRequest model with a maximum length of 50 characters."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create_credit_card_payment_method","__idx":10},"children":["create_credit_card_payment_method"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added a new optional field ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cryptogram"]}," to the CreateCreditCardPaymentMethod model, which allows for the inclusion of a cryptogram value supplied by the token provider if a DPAN or network scheme token is present."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create_order_charge_update","__idx":11},"children":["create_order_charge_update"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pricingAttributes"]}," field to support dynamic pricing with the DynamicPricing permission."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Introduced ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["negotiatedPriceTable"]}," field to handle negotiated price table information with the NegotiatedPriceTable permission."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create_order_request","__idx":12},"children":["create_order_request"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["commitments"]}," field to CreateOrderRequest, allowing developers to include a list of commitments to create or update."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create_order_response","__idx":13},"children":["create_order_response"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added a new field ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["commitments"]}," to the CreateOrderResponse model, which includes a list of CommitmentOutput objects. This allows developers to access commitments created by an order request."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create_order_result","__idx":14},"children":["create_order_result"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added a new optional field ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["commitments"]}," of type List[CommitmentOutput] to the CreateOrderResult model."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create_payment_request","__idx":15},"children":["create_payment_request"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added a new optional field ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cryptogram"]}," to the CreatePaymentRequest model for handling cryptogram values supplied by the token provider."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"expanded_daily_consumption_summary","__idx":16},"children":["expanded_daily_consumption_summary"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added new fields ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["adjustmentRevenueGLString"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recognizedRevenueGLString"]}," to the ExpandedDailyConsumptionSummary model."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"expanded_rate_plan","__idx":17},"children":["expanded_rate_plan"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added a new optional field ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pricingAttributes"]}," to the ExpandedRatePlan model."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"expanded_rate_plan_charge","__idx":18},"children":["expanded_rate_plan_charge"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pricingAttributes"]}," as an optional field in the ExpandedRatePlanCharge model."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["negotiatedPriceTable"]}," as an optional field in the ExpandedRatePlanCharge model."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"get_async_create_order_job_response","__idx":19},"children":["get_async_create_order_job_response"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added a new optional field ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["commitments"]}," of type List[CommitmentOutput] to the GetAsyncCreateOrderJobResponse model."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"get_charge_override","__idx":20},"children":["get_charge_override"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_dimensional_price"]}," field to indicate if the charge uses dimensional pricing."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Introduced ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pricing_attributes"]}," field for dynamic pricing attributes, requiring DynamicPricing permission."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["negotiated_price_table"]}," field for negotiated price table information, requiring NegotiatedPriceTable permission."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"get_invoice_application_part_request","__idx":21},"children":["get_invoice_application_part_request"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["created_date"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["updated_date"]}," fields have changed from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["datetime"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["StrictStr"]},". This may require developers to update their code to handle these fields as strings instead of datetime objects."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"order","__idx":22},"children":["order"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added a new field ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["commitments"]}," to the Order model, which is a list of UpsertCommitmentInput objects. This allows developers to include commitments in their order processing."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"rate_plan_charge_segment","__idx":23},"children":["rate_plan_charge_segment"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pricingAttributes"]}," field for dynamic pricing, available when DynamicPricing permission is enabled."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isDimensionalPrice"]}," field to indicate dimensional pricing, available when DynamicPricing permission is enabled."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isPriceNegotiated"]}," field to indicate negotiated pricing, available when NegotiatedPriceTable permission is enabled."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"rate_plan_charge_segment_info","__idx":24},"children":["rate_plan_charge_segment_info"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pricingAttributes"]}," field for dynamic pricing, available with DynamicPricing permission."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isDimensionalPrice"]}," field to indicate dimensional pricing, available with DynamicPricing permission."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isPriceNegotiated"]}," field to indicate negotiated pricing, available with NegotiatedPriceTable permission."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"update_order_request","__idx":25},"children":["update_order_request"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["commitments"]}," field to the UpdateOrderRequest model, allowing developers to include a list of UpsertCommitmentInput objects in their order updates."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"usage_tiered_with_overage_pricing_override","__idx":26},"children":["usage_tiered_with_overage_pricing_override"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["originalListPrice"]}," field to the UsageTieredWithOveragePricingOverride model, allowing developers to access the original list price of a product or service."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"usage_tiered_with_overage_pricing_update","__idx":27},"children":["usage_tiered_with_overage_pricing_update"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["originalListPrice"]}," field to the UsageTieredWithOveragePricingUpdate model, allowing developers to access or set the original list price of a product or service."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"verify_payment_method_request","__idx":28},"children":["verify_payment_method_request"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added a new optional field ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cryptogram"]}," to the VerifyPaymentMethodRequest model, which allows developers to include a cryptogram value supplied by the token provider."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"zuora_client","__idx":29},"children":["zuora_client"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added automatic token refresh functionality with a background thread."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Introduced retry logic with exponential backoff for authentication failures."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added methods to configure and retrieve token refresh intervals and retry configurations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provided manual token refresh capability."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implemented thread safety measures for token and configuration operations."]}]}]},"headings":[{"value":"Python client library 3.9.0 changelog","id":"python-client-library-390-changelog","depth":1},{"value":"__init__","id":"__init__","depth":2},{"value":"invoices_api","id":"invoices_api","depth":2},{"value":"object_queries_api","id":"object_queries_api","depth":2},{"value":"models/__init__","id":"models__init__","depth":2},{"value":"accounting_code_type","id":"accounting_code_type","depth":2},{"value":"charge_override","id":"charge_override","depth":2},{"value":"charge_update","id":"charge_update","depth":2},{"value":"collect_debit_memo_request_payment","id":"collect_debit_memo_request_payment","depth":2},{"value":"create_authorization_request","id":"create_authorization_request","depth":2},{"value":"create_credit_card_payment_method","id":"create_credit_card_payment_method","depth":2},{"value":"create_order_charge_update","id":"create_order_charge_update","depth":2},{"value":"create_order_request","id":"create_order_request","depth":2},{"value":"create_order_response","id":"create_order_response","depth":2},{"value":"create_order_result","id":"create_order_result","depth":2},{"value":"create_payment_request","id":"create_payment_request","depth":2},{"value":"expanded_daily_consumption_summary","id":"expanded_daily_consumption_summary","depth":2},{"value":"expanded_rate_plan","id":"expanded_rate_plan","depth":2},{"value":"expanded_rate_plan_charge","id":"expanded_rate_plan_charge","depth":2},{"value":"get_async_create_order_job_response","id":"get_async_create_order_job_response","depth":2},{"value":"get_charge_override","id":"get_charge_override","depth":2},{"value":"get_invoice_application_part_request","id":"get_invoice_application_part_request","depth":2},{"value":"order","id":"order","depth":2},{"value":"rate_plan_charge_segment","id":"rate_plan_charge_segment","depth":2},{"value":"rate_plan_charge_segment_info","id":"rate_plan_charge_segment_info","depth":2},{"value":"update_order_request","id":"update_order_request","depth":2},{"value":"usage_tiered_with_overage_pricing_override","id":"usage_tiered_with_overage_pricing_override","depth":2},{"value":"usage_tiered_with_overage_pricing_update","id":"usage_tiered_with_overage_pricing_update","depth":2},{"value":"verify_payment_method_request","id":"verify_payment_method_request","depth":2},{"value":"zuora_client","id":"zuora_client","depth":2}],"frontmatter":{"markdown":{"toc":{"hide":false}},"seo":{"title":"Python client library 3.9.0 changelog"}},"lastModified":"2026-01-28T16:35:30.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/sdk-changelogs/python/changelog-390","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}