diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..0083bf4 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,69 @@ +name: Release to PyPI + +on: + push: + tags: + - "v*" + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v5 + + - name: Verify tag matches package version + run: | + TAG_VERSION="${GITHUB_REF#refs/tags/v}" + PACKAGE_VERSION="$(cat chargebee/version.py | cut -d"'" -f2)" + + echo "Tag version: $TAG_VERSION" + echo "Package version: $PACKAGE_VERSION" + + if [ "$TAG_VERSION" != "$PACKAGE_VERSION" ]; then + echo "❌ Tag version ($TAG_VERSION) does not match package version ($PACKAGE_VERSION)" + exit 1 + fi + echo "✅ Tag matches package version." + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install build backend + run: | + python -m pip install --upgrade pip + pip install build twine + + - name: Build sdist + run: python setup.py sdist + + - name: Check metadata (twine) + run: twine check dist/* + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: dist + path: dist/* + + publish: + name: Publish to PyPI + needs: build + runs-on: ubuntu-latest + + steps: + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: dist + path: dist + + - name: Publish (PyPI) + uses: pypa/gh-action-pypi-publish@release/v1 + with: + password: ${{ secrets.PYPI_API_TOKEN }} + skip-existing: true diff --git a/CHANGELOG.md b/CHANGELOG.md index d15ee68..3b56350 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,535 @@ +### v2.60.1 (2025-12-30) + +--- + +### Bug Fixes + +* Fixed an issue where empty parameters were incorrectly parsed as a JSON string for `Content-Type: application/json` requests. They are now correctly handled as an empty JSON object (`{}`) instead of an empty string. + +### v2.60.0 (2025-12-30) +* * * + +### New Attributes: +* retry_engine has been added to Invoice#DunningAttempt. + +### New Endpoint: +* move action has been added to ItemPrice. + +### New Parameters: +* exclude_tax_type has been added to Estimate#RenewalEstimateInputParam. +* variant_id has been added to ItemPrice#MoveInputParam. +* custom has been added to PricingPageSession#CreateForNewSubscriptionInputParam. +* custom has been added to PricingPageSession#CreateForExistingSubscriptionInputParam. + +### New Enums: +* ELECTRONIC_PAYMENT_STANDARD has been added to PaymentMethodTypeEnum. +* KBC_PAYMENT_BUTTON has been added to PaymentMethodTypeEnum. +* PAY_BY_BANK has been added to PaymentMethodTypeEnum. +* TRUSTLY has been added to PaymentMethodTypeEnum. +* STABLECOIN has been added to PaymentMethodTypeEnum. + +### v2.59.0 (2025-11-26) +* * * + +### New Resources: +* Einvoice has been added. +* QuotedDeltaRamp has been added. + +### New Attributes: +* line_items_next_offset has been added to CreditNote. +* line_items_next_offset has been added to Invoice. +* credit_lines has been added to SalesOrder. +* billable_unit_price has been added to SalesOrder#LineItem. +* billable_quantity has been added to SalesOrder#LineItem. +* billable_amount has been added to SalesOrder#LineItem. + +### New Endpoint: +* move has been added to ItemPrice. + +### New Parameters: +* line_items_limit has been added to CreditNote#RetrieveRequest. +* line_items_offset has been added to CreditNote#RetrieveRequest. +* line_items_limit has been added to Invoice#RetrieveRequest. +* line_items_offset has been added to Invoice#RetrieveRequest. +* item_tiers has been added to Estimate#GiftSubscriptionForItemsRequest. +* unit_price has been added to Estimate#SubscriptionItems#GiftSubscriptionForItemsRequest. +* unit_price_in_decimal has been added to Estimate#SubscriptionItems#GiftSubscriptionForItemsRequest. +* item_tiers has been added to Gift#CreateForItemsRequest. +* meta_data has been added to Gift#CreateForItemsRequest. +* unit_price has been added to Gift#SubscriptionItems#CreateForItemsRequest. +* unit_price_in_decimal has been added to Gift#SubscriptionItems#CreateForItemsRequest. +* item_tiers has been added to HostedPage#CheckoutGiftForItemsRequest. +* unit_price has been added to HostedPage#SubscriptionItems#CheckoutGiftForItemsRequest. +* unit_price_in_decimal has been added to HostedPage#SubscriptionItems#CheckoutGiftForItemsRequest. +* auto_select_local_currency has been added to PricingPageSession#CreateForNewSubscriptionRequest. + +### New Enums: +* EZIDEBIT has been added to GatewayEnum. +* BUSINESS_RULE has been added to EntityTypeEnum. +* RULESET has been added to EntityTypeEnum. + +### v2.58.0 ( 2025-10-28) +* * * + +### New Attributes: +* reference_transactions has been added to Invoice. +* payment_attempts[] has been added to PaymentIntent. +* checkout_details has been added to PaymentIntent#PaymentAttempt. +* line_item_id has been added to CreditNoteEstimate#Discount. +* line_item_id has been added to CreditNote#Discount. +* line_item_id has been added to InvoiceEstimate#Discount. +* line_item_id has been added to Invoice#Discount. +* line_item_id has been added to InvoiceEstimate#Discount. +* line_item_id has been added to Quote#Discount. +* line_item_id has been added to QuoteLineGroup#Discount. + +### Modified Attributes: +* omnichannel_subscription_item_offers has been made optional attribute from required attribute. + +### New Input Parameters: +* discount[line_item_id] has been added to CreditNote#ImportCreditNoteRequest. +* discount[line_item_id] has been added to CreditNote#ImportInvoiceRequest. + +### New Enums: +* OMNICHANNEL_TRANSACTION_CREATED has been added to EventTypeEnum. +* DEUTSCHE_BANK has been added to Gateway. + +### v2.57.0 ( 2025-09-23) +* * * + +### New Resources: +* PersonalizedOffer has been added. +* OfferFulfillment has been added. +* OfferEvent has been added. +* OmnichannelSubscriptionItemOffer has been added. + +### New Attributes: +* business_entity_id has been added to Customer#Balance. +* processor_advice_code has been added to GatewayErrorDetail. +* processor_advice_code has been added to Transaction#GatewayErrorDetail. +* omnichannel_subscription_item_offers has been added to OmnichannelSubscriptionItem. +* linked_omnichannel_subscriptions has been added to OmnichannelTransaction. +* linked_omnichannel_one_time_orders has been added to OmnichannelTransaction. +* contract_term has been added to Ramp. +* charge_once has been added to Ramp#ItemsToAdd. +* charge_on_option has been added to Ramp#ItemsToAdd. +* charge_on_event has been added to Ramp#ItemsToAdd. +* charge_once has been added to Ramp#ItemsToUpdate. +* charge_on_option has been added to Ramp#ItemsToUpdate. +* charge_on_event has been added to Ramp#ItemsToUpdate. +* error_file_path has been added to UsageFile. +* error_file_url has been added to UsageFile. + +### New Endpoint: +* move has been added to OmnichannelSubscription. + +### New Parameters: +* offline_payment_method has been added to Estimate#CreateSubItemEstimateRequest. +* offline_payment_method has been added to Estimate#CreateSubItemForCustomerEstimateRequest. +* offline_payment_method has been added to HostedPage#CheckoutNewForItemsRequest. +* offline_payment_method has been added to Quote#SubscriptionCreateSubItemsForCustomerQuoteRequest. +* offline_payment_method has been added to Quote#SubscriptionEditCreateSubCustomerQuoteForItemsRequest. +* contract_term has been added to Ramp#CreateForSubscriptionRequest. +* items_to_add has been added to Ramp#CreateForSubscriptionRequest. +* items_to_update has been added to Ramp#CreateForSubscriptionRequest. +* contract_term has been added to Ramp#UpdateRequest. +* items_to_add has been added to Ramp#UpdateRequest. +* items_to_update has been added to Ramp#UpdateRequest. + +### New Enums: +* DUNNING_UPDATED has been added EventType. +* OMNICHANNEL_SUBSCRIPTION_MOVED_IN has been added to EventType. + + +### Bug Fixes: +* currency list action has been marked as ListRequest. +* index has been removed from CreditNote#ShippingAddress. +* index has been removed from Invoice#ShippingAddress +* index has been removed from Order#ShippingAddress. +* index has been removed from Quote#ShippingAddress. +* index has been removed from SubscriptionEstimate#ShippingAddress. +* index has been removed from Subscription#ShippingAddress. + +### v2.56.0 (2025-08-25) +* * * + +### New enhancement: +* Updated the `./chargebee/ssl/ca-certs.crt` to use the latest version of `DigiCert Global Root G2`. + + +### v2.55.0 (2025-08-19) +* * * + +### New Resources: +* WebhookEndpoints has been added. +* OmnichannelOneTimeOrder has been added. +* OmnichannelOneTimeOrderItem has been added. + +### New Attributes: +* business_entity_id has been added to Comment. +* business_entity_id has been added to PromotionalCredit. +* quantity has been added to Discount. +* business_entity_id has been added to PromotionalCredit. +* coupon_applicability_mappings[] has been added to QuotedCharge. +* linked_omnichannel_one_time_orders[] has been added to RecordedPurchase. +* quantity has been added to Subscripiton#Discount. + +### New Input Parameters: +* transaction[id] has been added to Customer#RecordExcessPaymentRequest. +* discounts[quantity][] has been added to Estimate#CreateSubItemEstimateRequest. +* consolidate_entitlements has been added to CustomerEntitlement#EntitlementsForCustomer. +* discounts[quantity][] has been added to Estimate#CreateSubItemEstimateRequest. +* discounts[quantity][] has been added to Estimate#CreateSubItemForCustomerEstimateRequest. +* discounts[quantity][] has been added to Estimate#UpdateSubscriptionForItemsRequest. +* discounts[quantity][] has been added to Estimate#CreateInvoiceForItemsRequest. +* discounts[quantity][] has been added to HostedPage#CheckoutOneTimeForItemsRequest. +* discounts[quantity][] has been added to HostedPage#CheckoutNewForItemsRequest. +* discounts[quantity][] has been added to HostedPage#CheckoutExistingForItemsRequest. +* discounts[quantity][] has been added to PricingPageSession#CreateForNewSubscriptionRequest. +* discounts[quantity][] has been added to PricingPageSession#CreateForExistingSubscriptionRequest. +* discounts[quantity][] has been added to Purchase#CreateRequest. +* discounts[quantity][] has been added to Purchase#EstimateRequest. +* discounts[quantity][] has been added to Quote#CreateSubItemsForCustomerQuoteRequest. +* discounts[quantity][] has been added to Quote#EditCreateSubCustomerQuoteForItemsRequest. +* discounts[quantity][] has been added to Quote#UpdateSubscriptionQuoteForItemsRequest. +* discounts[quantity][] has been added to Quote#EditUpdateSubscriptionQuoteForItemsRequest. +* discounts[quantity][] has been added to Quote#CreateForChargeItemsAndChargesRequest. +* discounts[quantity][] has been added to Quote#EditForChargeItemsAndChargesRequest. +* discounts[quantity][] has been added to Subscription#CreateWithItemsRequest. +* discounts[quantity][] has been added to Subscription#UpdateForItemsRequest. +* discounts[quantity][] has been added to Subscription#ImportForItemsRequest. +* google_play_store[product_id] has been added to RecordedPurchase#CreateRequest. +* google_play_store[order_id] has been added to RecordedPurchase#CreateRequest. + +### New Enums +* PAUSE has been added to OmnichannelSubscriptionItemScheduledChange#ChangeType. +* OFFER_QUANTITY has been added to Discount#Type. +* OFFER_QUANTITY has been added to Subscription#Discount#Type. +* OMNICHANNEL_ONE_TIME_ORDER has been added to EntityType. +* OMNICHANNEL_ONE_TIME_ORDER_ITEM has been added to EntityType. +* USAGE_FILE has been added to EntityType. +* OMNICHANNEL_ONE_TIME_ORDER_CREATED has been added to EventType. +* OMNICHANNEL_ONE_TIME_ORDER_ITEM_CANCELLED has been added to EventType. +* USAGE_FILE_INGESTED has been added to EventType. +* OMNICHANNEL_SUBSCRIPTION_ITEM_PAUSE_SCHEDULED has been added to EventType. + + +### v2.54.0 (2025-07-18) +* * * + +### New Resources: +* BillingConfiguration has been added. +* Brand has been added. + +### New Attributes: +* has_children has been added to Hierarchy +* coupon_applicability_mappings has been added to QuotedRamp. + +### New Endpoint: +* listHierarchyDetail has been added to Customer. + +### New Input parameters: +* change_reason children has been added to Entitlement#CreateRequest. +* entitlements[apply_grandfathering] has been added to Entitlement#CreateRequest. +* replace_primary_payment_source has been added to Purchase#CreateRequest. +* omnichannel_subscription has been added to RecordedPurchase#CreateRequest. +* contract_term has been added to Subscription#RemoveScheduledCancellationRequest. +* contract_term_billing_cycle_on_renewal has been added to Subscription#RemoveScheduledCancellationRequest. + +### New Enums: +* payconiq_by_bancontact has been added to PaymentMethodType. +* solidgate has been added to Gateway. +* solidgate has been added to PaymentMethod. + +### v2.53.0 (2025-06-19) +* * * + +### New Resources +* QuotedRamp has been added. + +### New Attributes +* chargebee_response_schema_type has been added to Configuration. +* linked_item has been added to OmnichannelSubscriptionItem. +* resumes_at has been added to OmnichannelSubscriptionItem. + +### Changed Attributes +* percentage changed to is_percentage_pricing in CreditNote. +* percentage changed to is_percentage_pricing in QuoteLineGroup. +* percentage changed to is_percentage_pricing in CreditNoteEstimate. +* percentage changed to is_percentage_pricing in Invoice. +* percentage changed to is_percentage_pricing in InvoiceEstimate. +* percentage changed to is_percentage_pricing in Quote. + + +### New Input Parameters +* is_percentage_pricing has been added to Item#UpdateRequest. +* line_item[subscription_id] has been added to CreditNote#RetrieveRequest. +* line_item[customer_id] has been added to CreditNote#RetrieveRequest. +* line_item[subscription_id] has been added to Invoice#RetrieveRequest. +* line_item[customer_id] has been added to Invoice#RetrieveRequest. +* billing_override[max_excess_payment_usage] has been added to Estimate#CreateSubItemForCustomerEstimateRequest. +* billing_override[max_refundable_credits_usage] has been added to Estimate#CreateSubItemForCustomerEstimateRequest. +* billing_override[max_excess_payment_usage] has been added to Estimate#UpdateSubscriptionForItemsRequest. +* billing_override[max_refundable_credits_usage] has been added to Estimate#UpdateSubscriptionForItemsRequest. +* billing_start_option has been added to Quote#CreateSubItemsForCustomerQuoteRequest. +* net_term_days has been added to Quote#CreateSubItemsForCustomerQuoteRequest. +* billing_address has been added to Quote#CreateSubItemsForCustomerQuoteRequest. +* subscription_items has been added to Quote#CreateSubItemsForCustomerQuoteRequest. +* discounts has been added to Quote#CreateSubItemsForCustomerQuoteRequest. +* billing_start_option has been added to Quote#EditCreateSubCustomerQuoteForItemsRequest. +* net_term_days has been added to Quote#EditCreateSubCustomerQuoteForItemsRequest. +* billing_address has been added to Quote#EditCreateSubCustomerQuoteForItemsRequest. +* subscription_items has been added to Quote#EditCreateSubCustomerQuoteForItemsRequest. +* discounts has been added to Quote#EditCreateSubCustomerQuoteForItemsRequest. +* net_term_days has been added to Quote#UpdateSubscriptionQuoteForItemsRequest. +* subscription_items has been added to Quote#UpdateSubscriptionQuoteForItemsRequest. +* discount has been added to Quote#UpdateSubscriptionQuoteForItemsRequest. +* coupons has been added to Quote#UpdateSubscriptionQuoteForItemsRequest. +* net_term_days has been added to Quote#EditUpdateSubscriptionQuoteForItemsRequest. +* subscription_items has been added to Quote#EditUpdateSubscriptionQuoteForItemsRequest. +* discounts has been added to Quote#EditUpdateSubscriptionQuoteForItemsRequest. +* coupons has been added to Quote#EditUpdateSubscriptionQuoteForItemsRequest. +* billing_address has been added to Quote#CreateForChargeItemsAndChargesRequest. +* billing_address has been added to Quote#EditForChargeItemsAndChargesRequest. +* sort_by[order] has been added to Subscription#SubscriptionContractTermsForSubscriptionRequest. +* item_tiers has been added to Quote#UpdateSubscriptionQuoteForItemsRequest. +* item_tiers has been added to Quote#EditUpdateSubscriptionQuoteForItemsRequest. +* item_tiers has been added to Quote#CreateSubItemsForCustomerQuoteRequest. +* item_tiers has been added to Quote#EditCreateSubCustomerQuoteForItemsRequest. + +### New Endpoints: +* PauseDunningRequest has been added to Invoice. +* ResumeDunningRequest has been added to Invoice. + +### Enum Attributes: +* BillingPeriodUnitEnum has been added. +* BillingStartOptionEnum has been added. +* OMNICHANNEL_SUBSCRIPTION_ITEM_RESUMED has been added to EventTypeEnum. + +### v2.52.0 (2025-05-15) +* * * + +### New Resources +* UsageFile has been added. + +### Input Parameter +* discount[apply_on] has been made optional from required in Estimate#CreateSubItemEstimateRequest. +* discount[apply_on] has been made optional from required in Estimate#CreateSubItemForCustomerEstimateRequest. +* discount[apply_on] has been made optional from required in Estimate#UpdateSubscriptionForItemsRequest. +* discount[apply_on] has been made optional from required in HostedPage#CheckoutNewForItemsRequest. +* discount[apply_on] has been made optional from required in HostedPage#CheckoutNewForItemsRequest. +* discount[apply_on] has been made optional from required in HostedPage#CheckoutNewForItemsRequest. +* discount[apply_on] has been made optional from required in HostedPage#CheckoutNewForItemsRequest. +* discount[apply_on] has been made optional from required in PricingPageSession#CheckoutNewForItemsRequest. +* discount[apply_on] has been made optional from required in PricingPageSession#CreateForExistingSubscriptionRequest. +* discount[apply_on] has been made optional from required in Quote#CreateSubItemsForCustomerQuoteRequest. +* discount[apply_on] has been made optional from required in Quote#EditCreateSubCustomerQuoteForItemsRequest. +* discount[apply_on] has been made optional from required in Quote#UpdateSubscriptionQuoteForItemsRequest. +* discount[apply_on] has been made optional from required in Quote#EditUpdateSubscriptionQuoteForItemsRequest. +* discount[apply_on] has been made optional from required in Subscription#CreateWithItemsRequest. +* discount[apply_on] has been made optional from required in Subscription#UpdateForItemsRequest. +* discount[apply_on] has been made optional from required in Subscription#ImportForItemsRequest. +* line_item_addresses[] has been added to Invoice#ImportInvoiceRequest. +* source has been added to OmnichannelSubscription#OmnichannelSubscriptionListRequest. + +### Attributes: +* swift_code has been made optional from required in VirtualBankAccount. + +### Enum Attributes: +* OMNICHANNEL_SUBSCRIPTION_ITEM_PAUSED has been added to EventTypeEnum. +* PAUSED has been added to OmnichannelSubscriptionItem#StatusEnum. +* MERCHANT_REVOKED has been added to OmnichannelSubscriptionItem#CancellationReasonEnum. + +### v2.51.0 (2025-04-23) +* * * + +### New Resources: +* OmnichannelSubscriptionItemScheduledChange has been added. + +### New Attributes: +* pricing_type has been added to DifferentialPrice#Tier. +* package_size has been added to DifferentialPrice#Tier. +* pricing_type has been added to ItemPrice#Tier. +* package_size has been added to ItemPrice#Tier. +* pricing_type has been added to Addon#Tier. +* package_size has been added to Addon#Tier. +* pricing_type has been added to Plan#Tier. +* package_size has been added to Plan#Tier. +* pricing_type has been added to CreditNote#LineItemTier. +* package_size has been added to CreditNote#LineItemTier. +* pricing_type has been added to CreditNoteEstimate#LineItemTier. +* package_size has been added to CreditNoteEstimate#LineItemTier. +* pricing_type has been added to DifferentialPrice#Tier. +* package_size has been added to DifferentialPrice#Tier. +* pricing_type has been added to Invoice#LineItemTier. +* package_size has been added to Invoice#LineItemTier. +* pricing_type has been added to InvoiceEstimate#LineItemTier. +* package_size has been added to InvoiceEstimate#LineItemTier. +* pricing_type has been added to Quote#LineItemTier. +* package_size has been added to Quote#LineItemTier. +* pricing_type has been added to QuotedCharge#LineItemTier. +* package_size has been added to QuotedCharge#LineItemTier. +* pricing_type has been added to QuotedSubscription#LineItemTier. +* package_size has been added to QuotedSubscription#LineItemTier. +* pricing_type has been added to Ramp#ItemTier. +* package_size has been added to Ramp#ItemTier. +* pricing_type has been added to Subscription#ItemTier. +* package_size has been added to Subscription#ItemTier. +* pricing_type has been added to UnbilledCharges#Tier. +* package_size has been added to UnbilledCharges#Tier. +* metered has been added to CreditNote#LineItem. +* metered has been added to CreditNoteEstimate#LineItem. +* metered has been added to Invoice#LineItem. +* metered has been added to Quote#LineItem. +* metered has been added to QuoteLineGroup#LineItem. +* usage_percentage has been changed to percentage in CreditNote#LineItem. +* usage_percentage has been changed to percentage in CreditNoteEstimate#LineItem. +* usage_percentage has been changed to percentage in Invoice#LineItem. +* usage_percentage has been changed to percentage in Quote#LineItem. +* usage_percentage has been changed to percentage in QuoteLineGroup#LineItem. +* line_item_addresses has been added to CreditNote. +* line_item_addresses has been added to Invoices. +* line_item_addresses has been added to InvoiceEstimate. +* has_scheduled_changes has been added on OmnichannelSubscriptionItem. +* item_parent_id_at_source has been added to OmnichannelSubscriptionItem. +* auto_renew_status has been added to OmnichannelSubscriptionItem. +* upcoming_renewal has been added to OmnichannelSubscriptionItem. +* is_percentage_pricing has been added to Item. + +### New Action: +* listOmniSubItemScheduleChanges has been added to OmnichannelSubscriptionItem. + +### Optional Attribute: +* price_currency has been made optional from requried in OmnichannelTransaction. +* price_units has been made optional from requried in OmnichannelTransaction. +* price_nanos has been made optional from requried in OmnichannelTransaction. +* transacted_at has been made optional from requried in OmnichannelTransaction. + +### New Input Params: +* item_tiers[pricing_type] has been added to DifferentialPrice#CreateInputParam. +* item_tiers[package_size] has been added to DifferentialPrice#CreateInputParam. +* item_tiers[pricing_type] has been added to ItemPrice#CreateInputParam. +* item_tiers[package_size] has been added to ItemPrice#CreateInputParam. +* tiers[pricing_type] has been added to DifferentialPrice#CreateInputParam. +* tiers[package_size] has been added to DifferentialPrice#CreateInputParam. +* item_tiers[pricing_type] has been added to Estimate#CreateSubItemEstimateRequestInputParam. +* item_tiers[package_size] has been added to Estimate#CreateSubItemEstimateRequestInputParam. +* item_tiers[pricing_type] has been added to Estimate#CreateSubItemForCustomerRequestInputParam. +* item_tiers[package_size] has been added to Estimate#CreateSubItemForCustomerRequestInputParam. +* item_tiers[pricing_type] has been added to Estimate#UpdateSubscriptionForItemsRequestInputParam. +* item_tiers[package_size] has been added to Estimate#UpdateSubscriptionForItemsRequestInputParam. +* item_tiers[pricing_type] has been added to Estimate#CreateInvoiceForItemsRequestInputParam. +* item_tiers[package_size] has been added to Estimate#CreateInvoiceForItemsRequestInputParam. +* item_tiers[pricing_type] has been added to Estimate#CheckoutNewForItemsRequestInputParam. +* item_tiers[package_size] has been added to Estimate#CheckoutNewForItemsRequestInputParam. +* item_tiers[pricing_type] has been added to Estimate#CheckoutOneTimeForItemsRequestInputParam. +* item_tiers[package_size] has been added to Estimate#CheckoutOneTimeForItemsRequestInputParam. +* item_tiers[pricing_type] has been added to Estimate#CheckoutExistingForItemsRequestInputParam. +* item_tiers[package_size] has been added to Estimate#CheckoutExistingForItemsRequestInputParam. +* item_tiers[pricing_type] has been added to Invoice#CreateForChargeItemsAndChargesRequestInputParam. +* item_tiers[package_size] has been added to Invoice#CreateForChargeItemsAndChargesRequestInputParam. +* item_tiers[pricing_type] has been added to Invoice#CreateForChargeItemRequestInputParam. +* item_tiers[package_size] has been added to Invoice#CreateForChargeItemRequestInputParam. +* item_tiers[pricing_type] has been added to Invoice#AddChargeItemRequestInputParam. +* item_tiers[package_size] has been added to Invoice#AddChargeItemRequestInputParam. +* item_tiers[pricing_type] has been added to Quote#CreateSubItemsForCustomerQuoteRequestInputParam. +* item_tiers[package_size] has been added to Quote#CreateSubItemsForCustomerQuoteRequestInputParam. +* item_tiers[pricing_type] has been added to Quote#EditCreateSubCustomerQuoteForItemsRequestInputParam. +* item_tiers[package_size] has been added to Quote#EditCreateSubCustomerQuoteForItemsRequestInputParam. +* item_tiers[pricing_type] has been added to Quote#UpdateSubscriptionQuoteForItemsRequestInputParam. +* item_tiers[package_size] has been added to Quote#UpdateSubscriptionQuoteForItemsRequestInputParam. +* item_tiers[pricing_type] has been added to Quote#EditUpdateSubscriptionQuoteForItemsRequestInputParam. +* item_tiers[package_size] has been added to Quote#EditUpdateSubscriptionQuoteForItemsRequestInputParam. +* item_tiers[pricing_type] has been added to Quote#CreateForChargeItemsAndChargesRequestInputParam. +* item_tiers[package_size] has been added to Quote#CreateForChargeItemsAndChargesRequestInputParam. +* item_tiers[pricing_type] has been added to Quote#EditForChargeItemsAndChargesRequestInputParam. +* item_tiers[package_size] has been added to Quote#EditForChargeItemsAndChargesRequestInputParam. +* item_tiers[pricing_type] has been added to Ramp#CreateForSubscriptionRequestInputParam. +* item_tiers[package_size] has been added to Ramp#CreateForSubscriptionRequestInputParam. +* item_tiers[pricing_type] has been added to Ramp#UpdateRequestInputParam. +* item_tiers[package_size] has been added to Ramp#UpdateRequestInputParam. +* item_tiers[pricing_type] has been added to Subscription#CreateWithItemsRequestInputParam. +* item_tiers[package_size] has been added to Subscription#CreateWithItemsRequestInputParam. +* item_tiers[pricing_type] has been added to Subscription#UpdateForItemsRequestInputParam. +* item_tiers[package_size] has been added to Subscription#UpdateForItemsRequestInputParam. +* item_tiers[pricing_type] has been added to Subscription#ImportForItemsRequestInputParam. +* item_tiers[package_size] has been added to Subscription#ImportForItemsRequestInputParam. +* item_tiers[pricing_type] has been added to UnbilledCharged#CreateRequestInputParam. +* item_tiers[package_size] has been added to UnbilledCharged#CreateRequestInputParam. +* billing_address has been added to Estimate#CreateInvoiceForItemsRequestInputParam. +* google_play_store[purchase_token] has been added to RecordedPurchase#CreateRequestInputParam. +* is_percentage_pricing has been added to Item#CreateRequest. +* include_deleted has been added to PaymentSource#ListRequest. + +### New Enums: +* OMNICHANNEL_SUBSCRIPTION_ITEM_SCHEDULED_CHANGE has been added to EntityType#Enum. +* OMNICHANNEL_SUBSCRIPTION_ITEM_CHANGE_SCHEDULED has been added to EventType#Enum. +* OMNICHANNEL_SUBSCRIPTION_ITEM_SCHEDULED_CHANGE_REMOVED has been added to EventType#Enum. +* OMNICHANNEL_SUBSCRIPTION_ITEM_REACTIVATED has been added to EventType#Enum. +* GOOGLE_PLAY_STORE has been added to OminchannelSubscription#SourceEnum. +* SPECIFIC_DATE has been added to ContractTermCancelOption. +* END_OF_SUBSCRIPTION_BILLING_TERM has been added to ContractTermCancelOption. +* PAYSTACK has been added to GatewayEnum. +* PricingType Enum has been added. +* JP_MORGAN has been added to GatewayEnum. + +### Deprecated Enums: +* OMNICHANNEL_SUBSCRIPTION_ITEM_DOWNGRADE_SCHEDULED has been deprecated from EntityType#Enum. +* OMNICHANNEL_SUBSCRIPTION_ITEM_SCHEDULED_DOWNGRADE_REMOVED has been deprecated from EntityType#Enum. +* REFUNDED_DUE_TO_APP_ISSUE has been added to OmnichannelSubscriptionItem#CancellationReasonEnum. +* REFUNDED_FOR_OTHER_REASON has been added to OmnichannelSubscriptionItem#CancellationReasonEnum. + +### v2.50.0 (2025-03-06) +* * * + +### New Input Params: +* created_at has been added to Invoice#LineItemsImportInputParams. +* PaymentIntent has been added to Purchase#CreateInputParams. + +### New Enums: +* SUBSCRIPTION_ENTITLEMENTS_UPDATED has been added to EventType#Enum. + +### v2.49.0 (2025-02-10) +* * * + +#### New Resources: +* Rule has been added. +* UsageEvent has been added. + +#### New Attribute: +* deleted has been added to AttachedItem. +* deleted has been added to Coupon. +* deleted has been added to DifferentialPrice. +* deleted has been added to ItemFamily. +* deleted has been added to ItemPrice. +* deleted has been added to Item. +* deleted has been added to PriceVariant. +* tax_application has abeend added to CreditNote#Allocation. +* tax_application has been added to Invoice#AppliedCredit. +* line_item_credit has been added to Invoice. + +#### New Input Params: +* exhausted_coupon_ids has been added to Subscription#ImportForItems. + +#### New Enums +* STORE has been added in CreditNote#TypeEnum. +* STORE has been added in CreditNoteEstimate#TypeEnum. +* STORE has been added in Order#TypeEnum. +* TaxApplicationEnum has been added in CreditNote#Application. +* TaxApplicationEnum has been added in Invoice#AppliedCredit. +* RECORDED_PURCHASE has been added in EntityTypeEnum. +* RECORD_PURCHASE_FAILED, has been added in EventTypeEnum. + +#### Deleted Input Params +* tax_providers_fields has been removed from Customer#MoveParams. +* tax_providers_fields has been removed from Customer#MergeParams + +#### Deprecated input params. +* deprecated label in discount_quantity has been removed from Coupon#CreateParams. +* deprecated label in discount_quantity has been removed from Coupon#UpdateParams. +* deprecated label in discount_quantity has been removed from Coupon#CreateForItemsParams. +* deprecated label in discount_quantity has been removed from Coupon#UpdateForItemsParams. + ### v2.48.0 (2024-12-19) * * * diff --git a/LICENSE b/LICENSE index f22d7e3..8eef1eb 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License -Copyright (c) 2011-2024 ChargeBee, Inc. +Copyright (c) 2011-2026 ChargeBee, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation diff --git a/README.md b/README.md index b3ae729..548bea8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +> [!WARNING] +> This branch contains the code for Chargebee Python SDK v2 which is deprecated. v2 will continue to receive updates till December 31, 2025. If you are using v2, we request you to upgrade to v3 by following [this migration guide](https://github.com/chargebee/chargebee-python/wiki/Migration-guide-for-v3) before December 31, 2025. + # Chargebee Python Client Library - API V2 [![PyPI](https://img.shields.io/pypi/v/chargebee.svg?maxAge=2)](https://pypi.python.org/pypi/chargebee) diff --git a/chargebee/__init__.py b/chargebee/__init__.py index ec43053..d6d52bd 100644 --- a/chargebee/__init__.py +++ b/chargebee/__init__.py @@ -1,4 +1,4 @@ -from chargebee.api_error import APIError,PaymentError,InvalidRequestError,OperationFailedError +from chargebee.api_error import APIError,PaymentError,InvalidRequestError,OperationFailedError,UbbBatchIngestionInvalidRequestError from chargebee.models import * from chargebee.main import ChargeBee diff --git a/chargebee/api_error.py b/chargebee/api_error.py index 6370663..df66b8d 100644 --- a/chargebee/api_error.py +++ b/chargebee/api_error.py @@ -9,7 +9,7 @@ def __init__(self, http_code,json_obj,headers=None): self.param = json_obj.get('param') self.error_cause_id = json_obj.get('error_cause_id', None) self.http_headers = headers - + self.error_code = json_obj['error_code'] self.http_code = http_code self.http_body = None @@ -27,3 +27,10 @@ def __init__(self, http_code,json_obj,headers=None): APIError.__init__(self, http_code,json_obj,headers) +class UbbBatchIngestionInvalidRequestError(APIError): + def __init__(self, http_code, json_obj, headers=None): + APIError.__init__(self, http_code, json_obj, headers) + self.batch_id=json_obj.get("batch_id") + self.failed_events=json_obj.get("failed_events") + + diff --git a/chargebee/environment.py b/chargebee/environment.py index c9b04a0..348c129 100644 --- a/chargebee/environment.py +++ b/chargebee/environment.py @@ -15,5 +15,11 @@ def __init__(self, options): else: self.api_endpoint = 'http://%s.%s/api/%s' % (self.site, self.chargebee_domain, self.API_VERSION) - def api_url(self, url): - return self.api_endpoint + url + def api_url(self, url, subDomain=None): + if subDomain is None: + return self.api_endpoint + url + else: + if self.chargebee_domain is None: + return 'https://%s.%s.chargebee.com/api/%s' % (self.site,subDomain, self.API_VERSION) + url + else: + return 'http://%s.%s.%s/api/%s' % (self.site, subDomain, self.chargebee_domain, self.API_VERSION) + url diff --git a/chargebee/http_request.py b/chargebee/http_request.py index 9ae26a4..106b2d8 100644 --- a/chargebee/http_request.py +++ b/chargebee/http_request.py @@ -3,7 +3,7 @@ import platform import requests -from chargebee import APIError,PaymentError,InvalidRequestError,OperationFailedError, compat +from chargebee import APIError,PaymentError,InvalidRequestError,OperationFailedError,UbbBatchIngestionInvalidRequestError, compat from chargebee.main import ChargeBee from chargebee.main import Environment from chargebee import compat @@ -15,19 +15,23 @@ def _basic_auth_str(username): return 'Basic ' + base64.b64encode(('%s:' % username).encode('latin1')).strip().decode('latin1') -def request(method, url, env, params=None, headers=None): +def request(method, url, env, params=None, headers=None, subDomain=None, isJsonRequest=None): if not env: raise Exception('No environment configured.') if headers is None: headers = {} - url = env.api_url(url) + url = env.api_url(url,subDomain) if method.lower() in ('get', 'head', 'delete'): url = '%s?%s' % (url, compat.urlencode(params)) payload = None else: - payload = compat.urlencode(params) - headers['Content-type'] = 'application/x-www-form-urlencoded' + if isJsonRequest: + payload = params + headers['Content-type'] = 'application/json;charset=UTF-8' + else: + payload = compat.urlencode(params) + headers['Content-type'] = 'application/x-www-form-urlencoded' headers.update({ 'User-Agent': 'ChargeBee-Python-Client v%s' % VERSION, @@ -36,7 +40,6 @@ def request(method, url, env, params=None, headers=None): 'Lang-Version': str(compat.py_major_v) + "." + str(compat.py_minor_v), 'OS-Version': platform.platform() }) - meta = compat.urlparse(url) request_args = { 'method': method.upper(), @@ -44,9 +47,7 @@ def request(method, url, env, params=None, headers=None): 'data': payload, 'headers': headers, } - uri = meta.netloc + meta.path + '?' + meta.query - if ChargeBee.verify_ca_certs: request_args.update({ 'verify': ChargeBee.ca_cert_path, @@ -83,7 +84,7 @@ def request(method, url, env, params=None, headers=None): def process_response(url,response, http_code, response_headers): try: - resp_json = compat.json.loads(response) + resp_json = response if http_code == 204 else compat.json.loads(response) except Exception as ex: if "503" in response: raise Exception("Sorry, the server is currently unable to handle the request due to a temporary overload or scheduled maintenance. Please retry after sometime. \n type: internal_temporary_error, \n http_status_code: 503, \n error_code: internal_temporary_error,\n content:" + response) @@ -95,7 +96,7 @@ def process_response(url,response, http_code, response_headers): if http_code < 200 or http_code > 299: handle_api_resp_error(url,http_code, resp_json, response_headers) - return resp_json, response_headers + return resp_json, response_headers, http_code def handle_api_resp_error(url,http_code, resp_json, response_headers=None): @@ -108,6 +109,8 @@ def handle_api_resp_error(url,http_code, resp_json, response_headers=None): raise OperationFailedError(http_code, resp_json, response_headers) elif 'invalid_request' == resp_json.get('type'): raise InvalidRequestError(http_code, resp_json, response_headers) + elif 'ubb_batch_ingestion_invalid_request' == resp_json.get('type'): + raise UbbBatchIngestionInvalidRequestError(http_code, resp_json, response_headers) else: raise APIError(http_code, resp_json, response_headers) diff --git a/chargebee/list_result.py b/chargebee/list_result.py index 4f69621..b77ad4f 100644 --- a/chargebee/list_result.py +++ b/chargebee/list_result.py @@ -3,10 +3,11 @@ class ListResult(list): - def __init__(self, response, next_offset, response_header=None): + def __init__(self, response, next_offset, response_header=None, http_status_code=None): self.response = response self.next_offset = next_offset self._response_header = response_header + self._http_status_code = http_status_code self._init_items() def _init_items(self): @@ -16,3 +17,7 @@ def _init_items(self): @property def get_response_headers(self): return self._response_header + + @property + def get_http_status_code(self): + return self._http_status_code diff --git a/chargebee/models/__init__.py b/chargebee/models/__init__.py index 5f0f261..9c9435d 100644 --- a/chargebee/models/__init__.py +++ b/chargebee/models/__init__.py @@ -3,6 +3,8 @@ from chargebee.models.advance_invoice_schedule import AdvanceInvoiceSchedule from chargebee.models.attached_item import AttachedItem from chargebee.models.attribute import Attribute +from chargebee.models.billing_configuration import BillingConfiguration +from chargebee.models.brand import Brand from chargebee.models.business_entity import BusinessEntity from chargebee.models.business_entity_transfer import BusinessEntityTransfer from chargebee.models.card import Card @@ -21,6 +23,7 @@ from chargebee.models.differential_price import DifferentialPrice from chargebee.models.discount import Discount from chargebee.models.download import Download +from chargebee.models.einvoice import Einvoice from chargebee.models.entitlement import Entitlement from chargebee.models.entitlement_override import EntitlementOverride from chargebee.models.estimate import Estimate @@ -31,6 +34,7 @@ from chargebee.models.gift import Gift from chargebee.models.hierarchy import Hierarchy from chargebee.models.hosted_page import HostedPage +from chargebee.models.impacted_customer import ImpactedCustomer from chargebee.models.impacted_item import ImpactedItem from chargebee.models.impacted_item_price import ImpactedItemPrice from chargebee.models.impacted_subscription import ImpactedSubscription @@ -41,10 +45,16 @@ from chargebee.models.item_entitlement import ItemEntitlement from chargebee.models.item_family import ItemFamily from chargebee.models.item_price import ItemPrice -from chargebee.models.non_subscription import NonSubscription from chargebee.models.metadata import Metadata +from chargebee.models.non_subscription import NonSubscription +from chargebee.models.offer_event import OfferEvent +from chargebee.models.offer_fulfillment import OfferFulfillment +from chargebee.models.omnichannel_one_time_order import OmnichannelOneTimeOrder +from chargebee.models.omnichannel_one_time_order_item import OmnichannelOneTimeOrderItem from chargebee.models.omnichannel_subscription import OmnichannelSubscription from chargebee.models.omnichannel_subscription_item import OmnichannelSubscriptionItem +from chargebee.models.omnichannel_subscription_item_offer import OmnichannelSubscriptionItemOffer +from chargebee.models.omnichannel_subscription_item_scheduled_change import OmnichannelSubscriptionItemScheduledChange from chargebee.models.omnichannel_transaction import OmnichannelTransaction from chargebee.models.order import Order from chargebee.models.payment_intent import PaymentIntent @@ -54,6 +64,7 @@ from chargebee.models.payment_schedule_scheme import PaymentScheduleScheme from chargebee.models.payment_source import PaymentSource from chargebee.models.payment_voucher import PaymentVoucher +from chargebee.models.personalized_offer import PersonalizedOffer from chargebee.models.plan import Plan from chargebee.models.portal_session import PortalSession from chargebee.models.price_variant import PriceVariant @@ -63,13 +74,18 @@ from chargebee.models.quote import Quote from chargebee.models.quote_line_group import QuoteLineGroup from chargebee.models.quoted_charge import QuotedCharge +from chargebee.models.quoted_delta_ramp import QuotedDeltaRamp +from chargebee.models.quoted_ramp import QuotedRamp from chargebee.models.quoted_subscription import QuotedSubscription from chargebee.models.ramp import Ramp from chargebee.models.recorded_purchase import RecordedPurchase from chargebee.models.resource_migration import ResourceMigration +from chargebee.models.rule import Rule from chargebee.models.site_migration_detail import SiteMigrationDetail from chargebee.models.subscription import Subscription from chargebee.models.subscription_entitlement import SubscriptionEntitlement +from chargebee.models.subscription_entitlements_created_detail import SubscriptionEntitlementsCreatedDetail +from chargebee.models.subscription_entitlements_updated_detail import SubscriptionEntitlementsUpdatedDetail from chargebee.models.subscription_estimate import SubscriptionEstimate from chargebee.models.tax_withheld import TaxWithheld from chargebee.models.third_party_payment_method import ThirdPartyPaymentMethod @@ -78,5 +94,8 @@ from chargebee.models.transaction import Transaction from chargebee.models.unbilled_charge import UnbilledCharge from chargebee.models.usage import Usage +from chargebee.models.usage_event import UsageEvent +from chargebee.models.usage_file import UsageFile from chargebee.models.virtual_bank_account import VirtualBankAccount +from chargebee.models.webhook_endpoint import WebhookEndpoint from chargebee.models.content import Content diff --git a/chargebee/models/addon.py b/chargebee/models/addon.py index 50df4de..867e93a 100644 --- a/chargebee/models/addon.py +++ b/chargebee/models/addon.py @@ -5,7 +5,7 @@ class Addon(Model): class Tier(Model): - fields = ["starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal"] + fields = ["starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal", "pricing_type", "package_size"] pass class TaxProvidersField(Model): fields = ["provider_name", "field_id", "field_value"] @@ -23,28 +23,44 @@ class TaxProvidersField(Model): @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("addons"), params, env, headers) + json_keys = { + "meta_data": 0, + } + return request.send('post', request.uri_path("addons"), params, env, headers, None, False,json_keys) @staticmethod def update(id, params, env=None, headers=None): - return request.send('post', request.uri_path("addons",id), params, env, headers) + json_keys = { + "meta_data": 0, + } + return request.send('post', request.uri_path("addons",id), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("addons"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("addons"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("addons",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("addons",id), None, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("addons",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("addons",id,"delete"), None, env, headers, None, False,json_keys) @staticmethod def copy(params, env=None, headers=None): - return request.send('post', request.uri_path("addons","copy"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("addons","copy"), params, env, headers, None, False,json_keys) @staticmethod def unarchive(id, env=None, headers=None): - return request.send('post', request.uri_path("addons",id,"unarchive"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("addons",id,"unarchive"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/address.py b/chargebee/models/address.py index 717abe7..373356a 100644 --- a/chargebee/models/address.py +++ b/chargebee/models/address.py @@ -11,8 +11,12 @@ class Address(Model): @staticmethod def retrieve(params, env=None, headers=None): - return request.send('get', request.uri_path("addresses"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("addresses"), params, env, headers, None, False,json_keys) @staticmethod def update(params, env=None, headers=None): - return request.send('post', request.uri_path("addresses"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("addresses"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/attached_item.py b/chargebee/models/attached_item.py index c190d9f..0cee100 100644 --- a/chargebee/models/attached_item.py +++ b/chargebee/models/attached_item.py @@ -7,25 +7,35 @@ class AttachedItem(Model): fields = ["id", "parent_item_id", "item_id", "type", "status", "quantity", "quantity_in_decimal", \ "billing_cycles", "charge_on_event", "charge_once", "created_at", "resource_version", "updated_at", \ - "channel", "business_entity_id"] + "channel", "business_entity_id", "deleted"] @staticmethod def create(id, params, env=None, headers=None): - return request.send('post', request.uri_path("items",id,"attached_items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("items",id,"attached_items"), params, env, headers, None, False,json_keys) @staticmethod def update(id, params, env=None, headers=None): - return request.send('post', request.uri_path("attached_items",id), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("attached_items",id), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, params, env=None, headers=None): - return request.send('get', request.uri_path("attached_items",id), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("attached_items",id), params, env, headers, None, False,json_keys) @staticmethod def delete(id, params, env=None, headers=None): - return request.send('post', request.uri_path("attached_items",id,"delete"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("attached_items",id,"delete"), params, env, headers, None, False,json_keys) @staticmethod def list(id, params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("items",id,"attached_items"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("items",id,"attached_items"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/billing_configuration.py b/chargebee/models/billing_configuration.py new file mode 100644 index 0000000..78a7673 --- /dev/null +++ b/chargebee/models/billing_configuration.py @@ -0,0 +1,12 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class BillingConfiguration(Model): + class BillingDate(Model): + fields = ["start_date", "end_date"] + pass + + fields = ["is_calendar_billing_enabled", "billing_dates"] + diff --git a/chargebee/models/brand.py b/chargebee/models/brand.py new file mode 100644 index 0000000..0c7535d --- /dev/null +++ b/chargebee/models/brand.py @@ -0,0 +1,9 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class Brand(Model): + + fields = ["id", "name"] + diff --git a/chargebee/models/business_entity.py b/chargebee/models/business_entity.py index bc8ec22..31615e0 100644 --- a/chargebee/models/business_entity.py +++ b/chargebee/models/business_entity.py @@ -10,8 +10,12 @@ class BusinessEntity(Model): @staticmethod def create_transfers(params, env=None, headers=None): - return request.send('post', request.uri_path("business_entities","transfers"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("business_entities","transfers"), params, env, headers, None, False,json_keys) @staticmethod def get_transfers(params=None, env=None, headers=None): - return request.send('get', request.uri_path("business_entities","transfers"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("business_entities","transfers"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/card.py b/chargebee/models/card.py index 750ada4..f94706b 100644 --- a/chargebee/models/card.py +++ b/chargebee/models/card.py @@ -14,20 +14,30 @@ class Card(Model): @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("cards",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("cards",id), None, env, headers, None, False,json_keys) @staticmethod def update_card_for_customer(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"credit_card"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"credit_card"), params, env, headers, None, False,json_keys) @staticmethod def switch_gateway_for_customer(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"switch_gateway"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"switch_gateway"), params, env, headers, None, False,json_keys) @staticmethod def copy_card_for_customer(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"copy_card"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"copy_card"), params, env, headers, None, False,json_keys) @staticmethod def delete_card_for_customer(id, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"delete_card"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"delete_card"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/comment.py b/chargebee/models/comment.py index 2205b7e..925e031 100644 --- a/chargebee/models/comment.py +++ b/chargebee/models/comment.py @@ -5,21 +5,30 @@ class Comment(Model): - fields = ["id", "entity_type", "added_by", "notes", "created_at", "type", "entity_id"] + fields = ["id", "entity_type", "added_by", "notes", "created_at", "type", "entity_id", \ + "business_entity_id"] @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("comments"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("comments"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("comments",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("comments",id), None, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("comments"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("comments"), params, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("comments",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("comments",id,"delete"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/configuration.py b/chargebee/models/configuration.py index 96a8f50..8e000e9 100644 --- a/chargebee/models/configuration.py +++ b/chargebee/models/configuration.py @@ -5,9 +5,11 @@ class Configuration(Model): - fields = ["domain", "product_catalog_version"] + fields = ["domain", "product_catalog_version", "chargebee_response_schema_type"] @staticmethod def list(env=None, headers=None): - return request.send_list_request('get', request.uri_path("configurations"), None, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("configurations"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/coupon.py b/chargebee/models/coupon.py index 5cff814..9e1dd06 100644 --- a/chargebee/models/coupon.py +++ b/chargebee/models/coupon.py @@ -19,41 +19,71 @@ class CouponConstraint(Model): "max_redemptions", "status", "apply_discount_on", "apply_on", "plan_constraint", "addon_constraint", \ "created_at", "archived_at", "resource_version", "updated_at", "included_in_mrr", "period", \ "period_unit", "plan_ids", "addon_ids", "item_constraints", "item_constraint_criteria", "redemptions", \ - "invoice_notes", "meta_data", "coupon_constraints"] + "invoice_notes", "meta_data", "coupon_constraints", "deleted"] @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("coupons"), params, env, headers) + json_keys = { + "meta_data": 0, + } + return request.send('post', request.uri_path("coupons"), params, env, headers, None, False,json_keys) @staticmethod def create_for_items(params, env=None, headers=None): - return request.send('post', request.uri_path("coupons","create_for_items"), params, env, headers) + json_keys = { + "meta_data": 0, + "item_price_ids": 1, + "item_family_ids": 1, + "currencies": 1, + "item_price_periods": 1, + } + return request.send('post', request.uri_path("coupons","create_for_items"), params, env, headers, None, False,json_keys) @staticmethod def update_for_items(id, params, env=None, headers=None): - return request.send('post', request.uri_path("coupons",id,"update_for_items"), params, env, headers) + json_keys = { + "meta_data": 0, + "item_price_ids": 1, + "item_family_ids": 1, + "currencies": 1, + "item_price_periods": 1, + } + return request.send('post', request.uri_path("coupons",id,"update_for_items"), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("coupons"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("coupons"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("coupons",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("coupons",id), None, env, headers, None, False,json_keys) @staticmethod def update(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("coupons",id), params, env, headers) + json_keys = { + "meta_data": 0, + } + return request.send('post', request.uri_path("coupons",id), params, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("coupons",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("coupons",id,"delete"), None, env, headers, None, False,json_keys) @staticmethod def copy(params, env=None, headers=None): - return request.send('post', request.uri_path("coupons","copy"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("coupons","copy"), params, env, headers, None, False,json_keys) @staticmethod def unarchive(id, env=None, headers=None): - return request.send('post', request.uri_path("coupons",id,"unarchive"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("coupons",id,"unarchive"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/coupon_code.py b/chargebee/models/coupon_code.py index 494c260..1caf95a 100644 --- a/chargebee/models/coupon_code.py +++ b/chargebee/models/coupon_code.py @@ -10,16 +10,24 @@ class CouponCode(Model): @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("coupon_codes"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("coupon_codes"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("coupon_codes",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("coupon_codes",id), None, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("coupon_codes"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("coupon_codes"), params, env, headers, None, False,json_keys) @staticmethod def archive(id, env=None, headers=None): - return request.send('post', request.uri_path("coupon_codes",id,"archive"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("coupon_codes",id,"archive"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/coupon_set.py b/chargebee/models/coupon_set.py index b346905..aafaf33 100644 --- a/chargebee/models/coupon_set.py +++ b/chargebee/models/coupon_set.py @@ -11,28 +11,44 @@ class CouponSet(Model): @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("coupon_sets"), params, env, headers) + json_keys = { + "meta_data": 0, + } + return request.send('post', request.uri_path("coupon_sets"), params, env, headers, None, False,json_keys) @staticmethod def add_coupon_codes(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("coupon_sets",id,"add_coupon_codes"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("coupon_sets",id,"add_coupon_codes"), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("coupon_sets"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("coupon_sets"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("coupon_sets",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("coupon_sets",id), None, env, headers, None, False,json_keys) @staticmethod def update(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("coupon_sets",id,"update"), params, env, headers) + json_keys = { + "meta_data": 0, + } + return request.send('post', request.uri_path("coupon_sets",id,"update"), params, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("coupon_sets",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("coupon_sets",id,"delete"), None, env, headers, None, False,json_keys) @staticmethod def delete_unused_coupon_codes(id, env=None, headers=None): - return request.send('post', request.uri_path("coupon_sets",id,"delete_unused_coupon_codes"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("coupon_sets",id,"delete_unused_coupon_codes"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/credit_note.py b/chargebee/models/credit_note.py index a218db8..a87b60a 100644 --- a/chargebee/models/credit_note.py +++ b/chargebee/models/credit_note.py @@ -4,108 +4,140 @@ from chargebee import APIError class CreditNote(Model): - class Einvoice(Model): - fields = ["id", "reference_number", "status", "message"] - pass class LineItem(Model): - fields = ["id", "subscription_id", "date_from", "date_to", "unit_amount", "quantity", "amount", "pricing_model", "is_taxed", "tax_amount", "tax_rate", "unit_amount_in_decimal", "quantity_in_decimal", "amount_in_decimal", "discount_amount", "item_level_discount_amount", "usage_percentage", "reference_line_item_id", "description", "entity_description", "entity_type", "tax_exempt_reason", "entity_id", "customer_id"] + fields = ["id", "subscription_id", "date_from", "date_to", "unit_amount", "quantity", "amount", "pricing_model", "is_taxed", "tax_amount", "tax_rate", "unit_amount_in_decimal", "quantity_in_decimal", "amount_in_decimal", "discount_amount", "item_level_discount_amount", "metered", "is_percentage_pricing", "reference_line_item_id", "description", "entity_description", "entity_type", "tax_exempt_reason", "entity_id", "customer_id"] pass - class Discount(Model): - fields = ["amount", "description", "entity_type", "discount_type", "entity_id", "coupon_set_code"] + class LineItemTier(Model): + fields = ["line_item_id", "starting_unit", "ending_unit", "quantity_used", "unit_amount", "starting_unit_in_decimal", "ending_unit_in_decimal", "quantity_used_in_decimal", "unit_amount_in_decimal", "pricing_type", "package_size"] pass class LineItemDiscount(Model): fields = ["line_item_id", "discount_type", "coupon_id", "entity_id", "discount_amount"] pass - class LineItemTier(Model): - fields = ["line_item_id", "starting_unit", "ending_unit", "quantity_used", "unit_amount", "starting_unit_in_decimal", "ending_unit_in_decimal", "quantity_used_in_decimal", "unit_amount_in_decimal"] + class LineItemTax(Model): + fields = ["line_item_id", "tax_name", "tax_rate", "date_to", "date_from", "prorated_taxable_amount", "is_partial_tax_applied", "is_non_compliance_tax", "taxable_amount", "tax_amount", "tax_juris_type", "tax_juris_name", "tax_juris_code", "tax_amount_in_local_currency", "local_currency_code"] + pass + class LineItemAddress(Model): + fields = ["line_item_id", "first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status"] + pass + class Discount(Model): + fields = ["amount", "description", "line_item_id", "entity_type", "discount_type", "entity_id", "coupon_set_code"] pass class Tax(Model): fields = ["name", "amount", "description"] pass - class LineItemTax(Model): - fields = ["line_item_id", "tax_name", "tax_rate", "date_to", "date_from", "prorated_taxable_amount", "is_partial_tax_applied", "is_non_compliance_tax", "taxable_amount", "tax_amount", "tax_juris_type", "tax_juris_name", "tax_juris_code", "tax_amount_in_local_currency", "local_currency_code"] + class TaxOrigin(Model): + fields = ["country", "registration_number"] pass class LinkedRefund(Model): fields = ["txn_id", "applied_amount", "applied_at", "txn_status", "txn_date", "txn_amount", "refund_reason_code"] pass class Allocation(Model): - fields = ["invoice_id", "allocated_amount", "allocated_at", "invoice_date", "invoice_status"] + fields = ["invoice_id", "allocated_amount", "allocated_at", "invoice_date", "invoice_status", "tax_application"] pass class ShippingAddress(Model): - fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status", "index"] + fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status"] pass class BillingAddress(Model): fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status"] pass + class Einvoice(Model): + fields = ["id", "reference_number", "status", "message"] + pass class SiteDetailsAtCreation(Model): fields = ["timezone", "organization_address"] pass - class TaxOrigin(Model): - fields = ["country", "registration_number"] - pass fields = ["id", "customer_id", "subscription_id", "reference_invoice_id", "type", "reason_code", \ "status", "vat_number", "date", "price_type", "currency_code", "total", "amount_allocated", \ "amount_refunded", "amount_available", "refunded_at", "voided_at", "generated_at", "resource_version", \ - "updated_at", "channel", "einvoice", "sub_total", "sub_total_in_local_currency", "total_in_local_currency", \ - "local_currency_code", "round_off_amount", "fractional_correction", "line_items", "discounts", \ - "line_item_discounts", "line_item_tiers", "taxes", "line_item_taxes", "linked_refunds", "allocations", \ - "deleted", "tax_category", "local_currency_exchange_rate", "create_reason_code", "vat_number_prefix", \ - "business_entity_id", "shipping_address", "billing_address", "site_details_at_creation", "tax_origin"] + "updated_at", "channel", "line_items_next_offset", "sub_total", "sub_total_in_local_currency", \ + "total_in_local_currency", "local_currency_code", "round_off_amount", "fractional_correction", \ + "line_items", "line_item_tiers", "line_item_discounts", "line_item_taxes", "line_item_addresses", \ + "discounts", "taxes", "tax_origin", "linked_refunds", "allocations", "deleted", "tax_category", \ + "local_currency_exchange_rate", "create_reason_code", "vat_number_prefix", "business_entity_id", \ + "shipping_address", "billing_address", "einvoice", "site_details_at_creation"] @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("credit_notes"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("credit_notes"), params, env, headers, None, False,json_keys) @staticmethod - def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("credit_notes",id), None, env, headers) + def retrieve(id, params=None, env=None, headers=None): + json_keys = { + } + return request.send('get', request.uri_path("credit_notes",id), params, env, headers, None, False,json_keys) @staticmethod def pdf(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("credit_notes",id,"pdf"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("credit_notes",id,"pdf"), params, env, headers, None, False,json_keys) @staticmethod def download_einvoice(id, env=None, headers=None): - return request.send('get', request.uri_path("credit_notes",id,"download_einvoice"), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("credit_notes",id,"download_einvoice"), None, env, headers, None, False,json_keys) @staticmethod def refund(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("credit_notes",id,"refund"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("credit_notes",id,"refund"), params, env, headers, None, False,json_keys) @staticmethod def record_refund(id, params, env=None, headers=None): - return request.send('post', request.uri_path("credit_notes",id,"record_refund"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("credit_notes",id,"record_refund"), params, env, headers, None, False,json_keys) @staticmethod def void_credit_note(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("credit_notes",id,"void"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("credit_notes",id,"void"), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("credit_notes"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("credit_notes"), params, env, headers, None, False,json_keys) @staticmethod def credit_notes_for_customer(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("customers",id,"credit_notes"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("customers",id,"credit_notes"), params, env, headers, None, False,json_keys) @staticmethod def delete(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("credit_notes",id,"delete"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("credit_notes",id,"delete"), params, env, headers, None, False,json_keys) @staticmethod def remove_tax_withheld_refund(id, params, env=None, headers=None): - return request.send('post', request.uri_path("credit_notes",id,"remove_tax_withheld_refund"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("credit_notes",id,"remove_tax_withheld_refund"), params, env, headers, None, False,json_keys) @staticmethod def resend_einvoice(id, env=None, headers=None): - return request.send('post', request.uri_path("credit_notes",id,"resend_einvoice"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("credit_notes",id,"resend_einvoice"), None, env, headers, None, False,json_keys) @staticmethod def send_einvoice(id, env=None, headers=None): - return request.send('post', request.uri_path("credit_notes",id,"send_einvoice"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("credit_notes",id,"send_einvoice"), None, env, headers, None, False,json_keys) @staticmethod def import_credit_note(params, env=None, headers=None): - return request.send('post', request.uri_path("credit_notes","import_credit_note"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("credit_notes","import_credit_note"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/credit_note_estimate.py b/chargebee/models/credit_note_estimate.py index 37c6e8d..55e5e68 100644 --- a/chargebee/models/credit_note_estimate.py +++ b/chargebee/models/credit_note_estimate.py @@ -5,25 +5,25 @@ class CreditNoteEstimate(Model): class LineItem(Model): - fields = ["id", "subscription_id", "date_from", "date_to", "unit_amount", "quantity", "amount", "pricing_model", "is_taxed", "tax_amount", "tax_rate", "unit_amount_in_decimal", "quantity_in_decimal", "amount_in_decimal", "discount_amount", "item_level_discount_amount", "usage_percentage", "reference_line_item_id", "description", "entity_description", "entity_type", "tax_exempt_reason", "entity_id", "customer_id"] + fields = ["id", "subscription_id", "date_from", "date_to", "unit_amount", "quantity", "amount", "pricing_model", "is_taxed", "tax_amount", "tax_rate", "unit_amount_in_decimal", "quantity_in_decimal", "amount_in_decimal", "discount_amount", "item_level_discount_amount", "metered", "is_percentage_pricing", "reference_line_item_id", "description", "entity_description", "entity_type", "tax_exempt_reason", "entity_id", "customer_id"] pass - class Discount(Model): - fields = ["amount", "description", "entity_type", "discount_type", "entity_id", "coupon_set_code"] + class LineItemTier(Model): + fields = ["line_item_id", "starting_unit", "ending_unit", "quantity_used", "unit_amount", "starting_unit_in_decimal", "ending_unit_in_decimal", "quantity_used_in_decimal", "unit_amount_in_decimal", "pricing_type", "package_size"] pass - class Tax(Model): - fields = ["name", "amount", "description"] + class LineItemDiscount(Model): + fields = ["line_item_id", "discount_type", "coupon_id", "entity_id", "discount_amount"] pass class LineItemTax(Model): fields = ["line_item_id", "tax_name", "tax_rate", "date_to", "date_from", "prorated_taxable_amount", "is_partial_tax_applied", "is_non_compliance_tax", "taxable_amount", "tax_amount", "tax_juris_type", "tax_juris_name", "tax_juris_code", "tax_amount_in_local_currency", "local_currency_code"] pass - class LineItemDiscount(Model): - fields = ["line_item_id", "discount_type", "coupon_id", "entity_id", "discount_amount"] + class Discount(Model): + fields = ["amount", "description", "line_item_id", "entity_type", "discount_type", "entity_id", "coupon_set_code"] pass - class LineItemTier(Model): - fields = ["line_item_id", "starting_unit", "ending_unit", "quantity_used", "unit_amount", "starting_unit_in_decimal", "ending_unit_in_decimal", "quantity_used_in_decimal", "unit_amount_in_decimal"] + class Tax(Model): + fields = ["name", "amount", "description"] pass fields = ["reference_invoice_id", "type", "price_type", "currency_code", "sub_total", "total", \ - "amount_allocated", "amount_available", "line_items", "discounts", "taxes", "line_item_taxes", \ - "line_item_discounts", "line_item_tiers", "round_off_amount", "customer_id"] + "amount_allocated", "amount_available", "line_items", "line_item_tiers", "line_item_discounts", \ + "line_item_taxes", "discounts", "taxes", "round_off_amount", "customer_id"] diff --git a/chargebee/models/currency.py b/chargebee/models/currency.py index 6806662..bb1847a 100644 --- a/chargebee/models/currency.py +++ b/chargebee/models/currency.py @@ -9,25 +9,37 @@ class Currency(Model): @staticmethod - def list(env=None, headers=None): - return request.send_list_request('get', request.uri_path("currencies","list"), None, env, headers) + def list(params=None, env=None, headers=None): + json_keys = { + } + return request.send_list_request('get', request.uri_path("currencies","list"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("currencies",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("currencies",id), None, env, headers, None, False,json_keys) @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("currencies"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("currencies"), params, env, headers, None, False,json_keys) @staticmethod def update(id, params, env=None, headers=None): - return request.send('post', request.uri_path("currencies",id), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("currencies",id), params, env, headers, None, False,json_keys) @staticmethod def add_schedule(id, params, env=None, headers=None): - return request.send('post', request.uri_path("currencies",id,"add_schedule"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("currencies",id,"add_schedule"), params, env, headers, None, False,json_keys) @staticmethod def remove_schedule(id, env=None, headers=None): - return request.send('post', request.uri_path("currencies",id,"remove_schedule"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("currencies",id,"remove_schedule"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/customer.py b/chargebee/models/customer.py index 07845bd..450f2d6 100644 --- a/chargebee/models/customer.py +++ b/chargebee/models/customer.py @@ -17,7 +17,7 @@ class PaymentMethod(Model): fields = ["type", "gateway", "gateway_account_id", "status", "reference_id"] pass class Balance(Model): - fields = ["promotional_credits", "excess_payments", "refundable_credits", "unbilled_charges", "currency_code", "balance_currency_code"] + fields = ["promotional_credits", "excess_payments", "refundable_credits", "unbilled_charges", "currency_code", "balance_currency_code", "business_entity_id"] pass class EntityIdentifier(Model): fields = ["id", "value", "scheme", "standard"] @@ -52,100 +52,164 @@ class ChildAccountAccess(Model): @staticmethod def create(params=None, env=None, headers=None): - return request.send('post', request.uri_path("customers"), params, env, headers) + json_keys = { + "exemption_details": 0, + "meta_data": 0, + "additional_information": 1, + "billing_address": 1, + } + return request.send('post', request.uri_path("customers"), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("customers"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("customers"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("customers",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("customers",id), None, env, headers, None, False,json_keys) @staticmethod def update(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("customers",id), params, env, headers) + json_keys = { + "exemption_details": 0, + "meta_data": 0, + } + return request.send('post', request.uri_path("customers",id), params, env, headers, None, False,json_keys) @staticmethod def update_payment_method(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"update_payment_method"), params, env, headers) + json_keys = { + "additional_information": 1, + } + return request.send('post', request.uri_path("customers",id,"update_payment_method"), params, env, headers, None, False,json_keys) @staticmethod def update_billing_info(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"update_billing_info"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"update_billing_info"), params, env, headers, None, False,json_keys) @staticmethod def contacts_for_customer(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("customers",id,"contacts"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("customers",id,"contacts"), params, env, headers, None, False,json_keys) @staticmethod def assign_payment_role(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"assign_payment_role"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"assign_payment_role"), params, env, headers, None, False,json_keys) @staticmethod def add_contact(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"add_contact"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"add_contact"), params, env, headers, None, False,json_keys) @staticmethod def update_contact(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"update_contact"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"update_contact"), params, env, headers, None, False,json_keys) @staticmethod def delete_contact(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"delete_contact"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"delete_contact"), params, env, headers, None, False,json_keys) @staticmethod def add_promotional_credits(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"add_promotional_credits"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"add_promotional_credits"), params, env, headers, None, False,json_keys) @staticmethod def deduct_promotional_credits(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"deduct_promotional_credits"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"deduct_promotional_credits"), params, env, headers, None, False,json_keys) @staticmethod def set_promotional_credits(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"set_promotional_credits"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"set_promotional_credits"), params, env, headers, None, False,json_keys) @staticmethod def record_excess_payment(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"record_excess_payment"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"record_excess_payment"), params, env, headers, None, False,json_keys) @staticmethod def collect_payment(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"collect_payment"), params, env, headers) + json_keys = { + "additional_information": 1, + } + return request.send('post', request.uri_path("customers",id,"collect_payment"), params, env, headers, None, False,json_keys) @staticmethod def delete(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"delete"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"delete"), params, env, headers, None, False,json_keys) @staticmethod def move(params, env=None, headers=None): - return request.send('post', request.uri_path("customers","move"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers","move"), params, env, headers, None, False,json_keys) @staticmethod def change_billing_date(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"change_billing_date"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"change_billing_date"), params, env, headers, None, False,json_keys) @staticmethod def merge(params, env=None, headers=None): - return request.send('post', request.uri_path("customers","merge"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers","merge"), params, env, headers, None, False,json_keys) @staticmethod def clear_personal_data(id, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"clear_personal_data"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"clear_personal_data"), None, env, headers, None, False,json_keys) @staticmethod def relationships(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"relationships"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"relationships"), params, env, headers, None, False,json_keys) @staticmethod def delete_relationship(id, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"delete_relationship"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"delete_relationship"), None, env, headers, None, False,json_keys) @staticmethod def hierarchy(id, params, env=None, headers=None): - return request.send('get', request.uri_path("customers",id,"hierarchy"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("customers",id,"hierarchy"), params, env, headers, None, False,json_keys) + + @staticmethod + def list_hierarchy_detail(id, params, env=None, headers=None): + json_keys = { + } + return request.send('get', request.uri_path("customers",id,"hierarchy_detail"), params, env, headers, None, False,json_keys) @staticmethod def update_hierarchy_settings(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"update_hierarchy_settings"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"update_hierarchy_settings"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/customer_entitlement.py b/chargebee/models/customer_entitlement.py index fab6cb0..b8bf1d9 100644 --- a/chargebee/models/customer_entitlement.py +++ b/chargebee/models/customer_entitlement.py @@ -10,4 +10,6 @@ class CustomerEntitlement(Model): @staticmethod def entitlements_for_customer(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("customers",id,"customer_entitlements"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("customers",id,"customer_entitlements"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/differential_price.py b/chargebee/models/differential_price.py index 7c450eb..fd73d53 100644 --- a/chargebee/models/differential_price.py +++ b/chargebee/models/differential_price.py @@ -5,7 +5,7 @@ class DifferentialPrice(Model): class Tier(Model): - fields = ["starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal"] + fields = ["starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal", "pricing_type", "package_size"] pass class ParentPeriod(Model): fields = ["period_unit", "period"] @@ -13,25 +13,37 @@ class ParentPeriod(Model): fields = ["id", "item_price_id", "parent_item_id", "price", "price_in_decimal", "status", \ "resource_version", "updated_at", "created_at", "modified_at", "tiers", "currency_code", "parent_periods", \ - "business_entity_id"] + "business_entity_id", "deleted"] @staticmethod def create(id, params, env=None, headers=None): - return request.send('post', request.uri_path("item_prices",id,"differential_prices"), params, env, headers) + json_keys = { + "period": 1, + } + return request.send('post', request.uri_path("item_prices",id,"differential_prices"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, params, env=None, headers=None): - return request.send('get', request.uri_path("differential_prices",id), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("differential_prices",id), params, env, headers, None, False,json_keys) @staticmethod def update(id, params, env=None, headers=None): - return request.send('post', request.uri_path("differential_prices",id), params, env, headers) + json_keys = { + "period": 1, + } + return request.send('post', request.uri_path("differential_prices",id), params, env, headers, None, False,json_keys) @staticmethod def delete(id, params, env=None, headers=None): - return request.send('post', request.uri_path("differential_prices",id,"delete"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("differential_prices",id,"delete"), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("differential_prices"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("differential_prices"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/discount.py b/chargebee/models/discount.py index 24e39d8..9628eb2 100644 --- a/chargebee/models/discount.py +++ b/chargebee/models/discount.py @@ -5,7 +5,7 @@ class Discount(Model): - fields = ["id", "invoice_name", "type", "percentage", "amount", "currency_code", "duration_type", \ - "period", "period_unit", "included_in_mrr", "apply_on", "item_price_id", "created_at", "apply_till", \ - "applied_count", "coupon_id", "index"] + fields = ["id", "invoice_name", "type", "percentage", "amount", "quantity", "currency_code", \ + "duration_type", "period", "period_unit", "included_in_mrr", "apply_on", "item_price_id", "created_at", \ + "apply_till", "applied_count", "coupon_id", "index"] diff --git a/chargebee/models/einvoice.py b/chargebee/models/einvoice.py new file mode 100644 index 0000000..31ee5af --- /dev/null +++ b/chargebee/models/einvoice.py @@ -0,0 +1,9 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class Einvoice(Model): + + fields = ["id", "reference_number", "status", "message"] + diff --git a/chargebee/models/entitlement.py b/chargebee/models/entitlement.py index 1bb0aec..b17f810 100644 --- a/chargebee/models/entitlement.py +++ b/chargebee/models/entitlement.py @@ -10,8 +10,12 @@ class Entitlement(Model): @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("entitlements"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("entitlements"), params, env, headers, None, False,json_keys) @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("entitlements"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("entitlements"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/entitlement_override.py b/chargebee/models/entitlement_override.py index 4f54c70..505a0e1 100644 --- a/chargebee/models/entitlement_override.py +++ b/chargebee/models/entitlement_override.py @@ -11,8 +11,12 @@ class EntitlementOverride(Model): @staticmethod def add_entitlement_override_for_subscription(id, params, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"entitlement_overrides"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"entitlement_overrides"), params, env, headers, None, False,json_keys) @staticmethod def list_entitlement_override_for_subscription(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("subscriptions",id,"entitlement_overrides"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("subscriptions",id,"entitlement_overrides"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/estimate.py b/chargebee/models/estimate.py index c89a20b..d289e92 100644 --- a/chargebee/models/estimate.py +++ b/chargebee/models/estimate.py @@ -12,80 +12,124 @@ class Estimate(Model): @staticmethod def create_subscription(params, env=None, headers=None): - return request.send('post', request.uri_path("estimates","create_subscription"), params, env, headers) + json_keys = { + "exemption_details": 1, + } + return request.send('post', request.uri_path("estimates","create_subscription"), params, env, headers, None, False,json_keys) @staticmethod def create_sub_item_estimate(params, env=None, headers=None): - return request.send('post', request.uri_path("estimates","create_subscription_for_items"), params, env, headers) + json_keys = { + "exemption_details": 1, + } + return request.send('post', request.uri_path("estimates","create_subscription_for_items"), params, env, headers, None, False,json_keys) @staticmethod def create_sub_for_customer_estimate(id, params, env=None, headers=None): - return request.send('get', request.uri_path("customers",id,"create_subscription_estimate"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("customers",id,"create_subscription_estimate"), params, env, headers, None, False,json_keys) @staticmethod def create_sub_item_for_customer_estimate(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"create_subscription_for_items_estimate"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"create_subscription_for_items_estimate"), params, env, headers, None, False,json_keys) @staticmethod def update_subscription(params, env=None, headers=None): - return request.send('post', request.uri_path("estimates","update_subscription"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("estimates","update_subscription"), params, env, headers, None, False,json_keys) @staticmethod def update_subscription_for_items(params, env=None, headers=None): - return request.send('post', request.uri_path("estimates","update_subscription_for_items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("estimates","update_subscription_for_items"), params, env, headers, None, False,json_keys) @staticmethod def renewal_estimate(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("subscriptions",id,"renewal_estimate"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("subscriptions",id,"renewal_estimate"), params, env, headers, None, False,json_keys) @staticmethod def advance_invoice_estimate(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"advance_invoice_estimate"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"advance_invoice_estimate"), params, env, headers, None, False,json_keys) @staticmethod def regenerate_invoice_estimate(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"regenerate_invoice_estimate"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"regenerate_invoice_estimate"), params, env, headers, None, False,json_keys) @staticmethod def upcoming_invoices_estimate(id, env=None, headers=None): - return request.send('get', request.uri_path("customers",id,"upcoming_invoices_estimate"), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("customers",id,"upcoming_invoices_estimate"), None, env, headers, None, False,json_keys) @staticmethod def change_term_end(id, params, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"change_term_end_estimate"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"change_term_end_estimate"), params, env, headers, None, False,json_keys) @staticmethod def cancel_subscription(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"cancel_subscription_estimate"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"cancel_subscription_estimate"), params, env, headers, None, False,json_keys) @staticmethod def cancel_subscription_for_items(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"cancel_subscription_for_items_estimate"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"cancel_subscription_for_items_estimate"), params, env, headers, None, False,json_keys) @staticmethod def pause_subscription(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"pause_subscription_estimate"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"pause_subscription_estimate"), params, env, headers, None, False,json_keys) @staticmethod def resume_subscription(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"resume_subscription_estimate"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"resume_subscription_estimate"), params, env, headers, None, False,json_keys) @staticmethod def gift_subscription(params, env=None, headers=None): - return request.send('post', request.uri_path("estimates","gift_subscription"), params, env, headers) + json_keys = { + "additional_information": 1, + } + return request.send('post', request.uri_path("estimates","gift_subscription"), params, env, headers, None, False,json_keys) @staticmethod def gift_subscription_for_items(params, env=None, headers=None): - return request.send('post', request.uri_path("estimates","gift_subscription_for_items"), params, env, headers) + json_keys = { + "additional_information": 1, + } + return request.send('post', request.uri_path("estimates","gift_subscription_for_items"), params, env, headers, None, False,json_keys) @staticmethod def create_invoice(params=None, env=None, headers=None): - return request.send('post', request.uri_path("estimates","create_invoice"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("estimates","create_invoice"), params, env, headers, None, False,json_keys) @staticmethod def create_invoice_for_items(params, env=None, headers=None): - return request.send('post', request.uri_path("estimates","create_invoice_for_items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("estimates","create_invoice_for_items"), params, env, headers, None, False,json_keys) @staticmethod def payment_schedules(params, env=None, headers=None): - return request.send('post', request.uri_path("estimates","payment_schedules"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("estimates","payment_schedules"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/event.py b/chargebee/models/event.py index 31ccfe4..a6e4900 100644 --- a/chargebee/models/event.py +++ b/chargebee/models/event.py @@ -33,8 +33,12 @@ def deserialize(json_data): @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("events"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("events"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("events",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("events",id), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/export.py b/chargebee/models/export.py index 4bc824e..328a199 100644 --- a/chargebee/models/export.py +++ b/chargebee/models/export.py @@ -29,72 +29,108 @@ def wait_for_export_completion(self, env=None, headers=None): @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("exports",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("exports",id), None, env, headers, None, False,json_keys) @staticmethod def revenue_recognition(params, env=None, headers=None): - return request.send('post', request.uri_path("exports","revenue_recognition"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","revenue_recognition"), params, env, headers, None, False,json_keys) @staticmethod def deferred_revenue(params, env=None, headers=None): - return request.send('post', request.uri_path("exports","deferred_revenue"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","deferred_revenue"), params, env, headers, None, False,json_keys) @staticmethod def plans(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","plans"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","plans"), params, env, headers, None, False,json_keys) @staticmethod def addons(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","addons"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","addons"), params, env, headers, None, False,json_keys) @staticmethod def coupons(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","coupons"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","coupons"), params, env, headers, None, False,json_keys) @staticmethod def customers(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","customers"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","customers"), params, env, headers, None, False,json_keys) @staticmethod def subscriptions(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","subscriptions"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","subscriptions"), params, env, headers, None, False,json_keys) @staticmethod def invoices(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","invoices"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","invoices"), params, env, headers, None, False,json_keys) @staticmethod def credit_notes(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","credit_notes"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","credit_notes"), params, env, headers, None, False,json_keys) @staticmethod def transactions(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","transactions"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","transactions"), params, env, headers, None, False,json_keys) @staticmethod def orders(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","orders"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","orders"), params, env, headers, None, False,json_keys) @staticmethod def item_families(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","item_families"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","item_families"), params, env, headers, None, False,json_keys) @staticmethod def items(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","items"), params, env, headers, None, False,json_keys) @staticmethod def item_prices(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","item_prices"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","item_prices"), params, env, headers, None, False,json_keys) @staticmethod def attached_items(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","attached_items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","attached_items"), params, env, headers, None, False,json_keys) @staticmethod def differential_prices(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","differential_prices"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","differential_prices"), params, env, headers, None, False,json_keys) @staticmethod def price_variants(params=None, env=None, headers=None): - return request.send('post', request.uri_path("exports","price_variants"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("exports","price_variants"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/feature.py b/chargebee/models/feature.py index befb700..a50b3a7 100644 --- a/chargebee/models/feature.py +++ b/chargebee/models/feature.py @@ -14,32 +14,48 @@ class Level(Model): @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("features"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("features"), params, env, headers, None, False,json_keys) @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("features"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("features"), params, env, headers, None, False,json_keys) @staticmethod def update(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("features",id), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("features",id), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("features",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("features",id), None, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("features",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("features",id,"delete"), None, env, headers, None, False,json_keys) @staticmethod def activate(id, env=None, headers=None): - return request.send('post', request.uri_path("features",id,"activate_command"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("features",id,"activate_command"), None, env, headers, None, False,json_keys) @staticmethod def archive(id, env=None, headers=None): - return request.send('post', request.uri_path("features",id,"archive_command"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("features",id,"archive_command"), None, env, headers, None, False,json_keys) @staticmethod def reactivate(id, env=None, headers=None): - return request.send('post', request.uri_path("features",id,"reactivate_command"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("features",id,"reactivate_command"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/gateway_error_detail.py b/chargebee/models/gateway_error_detail.py index 7b6f1b3..a2a886b 100644 --- a/chargebee/models/gateway_error_detail.py +++ b/chargebee/models/gateway_error_detail.py @@ -7,5 +7,6 @@ class GatewayErrorDetail(Model): fields = ["request_id", "error_category", "error_code", "error_message", "decline_code", \ "decline_message", "network_error_code", "network_error_message", "error_field", "recommendation_code", \ - "recommendation_message", "processor_error_code", "processor_error_message", "error_cause_id"] + "recommendation_message", "processor_error_code", "processor_error_message", "error_cause_id", \ + "processor_advice_code"] diff --git a/chargebee/models/gift.py b/chargebee/models/gift.py index fafa0a4..4375669 100644 --- a/chargebee/models/gift.py +++ b/chargebee/models/gift.py @@ -20,28 +20,45 @@ class GiftTimeline(Model): @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("gifts"), params, env, headers) + json_keys = { + "additional_information": 1, + } + return request.send('post', request.uri_path("gifts"), params, env, headers, None, False,json_keys) @staticmethod def create_for_items(params, env=None, headers=None): - return request.send('post', request.uri_path("gifts","create_for_items"), params, env, headers) + json_keys = { + "meta_data": 0, + "additional_information": 1, + } + return request.send('post', request.uri_path("gifts","create_for_items"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("gifts",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("gifts",id), None, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("gifts"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("gifts"), params, env, headers, None, False,json_keys) @staticmethod def claim(id, env=None, headers=None): - return request.send('post', request.uri_path("gifts",id,"claim"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("gifts",id,"claim"), None, env, headers, None, False,json_keys) @staticmethod def cancel(id, env=None, headers=None): - return request.send('post', request.uri_path("gifts",id,"cancel"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("gifts",id,"cancel"), None, env, headers, None, False,json_keys) @staticmethod def update_gift(id, params, env=None, headers=None): - return request.send('post', request.uri_path("gifts",id,"update_gift"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("gifts",id,"update_gift"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/hierarchy.py b/chargebee/models/hierarchy.py index 4d60ae6..1e0b1dd 100644 --- a/chargebee/models/hierarchy.py +++ b/chargebee/models/hierarchy.py @@ -5,5 +5,6 @@ class Hierarchy(Model): - fields = ["customer_id", "parent_id", "payment_owner_id", "invoice_owner_id", "children_ids"] + fields = ["customer_id", "parent_id", "payment_owner_id", "invoice_owner_id", "has_children", \ + "children_ids"] diff --git a/chargebee/models/hosted_page.py b/chargebee/models/hosted_page.py index af1717a..dcf64ca 100644 --- a/chargebee/models/hosted_page.py +++ b/chargebee/models/hosted_page.py @@ -17,88 +17,133 @@ def content(self): @staticmethod def checkout_new(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","checkout_new"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","checkout_new"), params, env, headers, None, False,json_keys) @staticmethod def checkout_one_time(params=None, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","checkout_one_time"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","checkout_one_time"), params, env, headers, None, False,json_keys) @staticmethod def checkout_one_time_for_items(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","checkout_one_time_for_items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","checkout_one_time_for_items"), params, env, headers, None, False,json_keys) @staticmethod def checkout_new_for_items(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","checkout_new_for_items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","checkout_new_for_items"), params, env, headers, None, False,json_keys) @staticmethod def checkout_existing(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","checkout_existing"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","checkout_existing"), params, env, headers, None, False,json_keys) @staticmethod def checkout_existing_for_items(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","checkout_existing_for_items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","checkout_existing_for_items"), params, env, headers, None, False,json_keys) @staticmethod def update_card(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","update_card"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","update_card"), params, env, headers, None, False,json_keys) @staticmethod def update_payment_method(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","update_payment_method"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","update_payment_method"), params, env, headers, None, False,json_keys) @staticmethod def manage_payment_sources(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","manage_payment_sources"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","manage_payment_sources"), params, env, headers, None, False,json_keys) @staticmethod def collect_now(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","collect_now"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","collect_now"), params, env, headers, None, False,json_keys) @staticmethod def accept_quote(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","accept_quote"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","accept_quote"), params, env, headers, None, False,json_keys) @staticmethod def extend_subscription(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","extend_subscription"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","extend_subscription"), params, env, headers, None, False,json_keys) @staticmethod def checkout_gift(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","checkout_gift"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","checkout_gift"), params, env, headers, None, False,json_keys) @staticmethod def checkout_gift_for_items(params=None, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","checkout_gift_for_items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","checkout_gift_for_items"), params, env, headers, None, False,json_keys) @staticmethod def claim_gift(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","claim_gift"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","claim_gift"), params, env, headers, None, False,json_keys) @staticmethod def retrieve_agreement_pdf(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","retrieve_agreement_pdf"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","retrieve_agreement_pdf"), params, env, headers, None, False,json_keys) @staticmethod def acknowledge(id, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages",id,"acknowledge"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages",id,"acknowledge"), None, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("hosted_pages",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("hosted_pages",id), None, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("hosted_pages"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("hosted_pages"), params, env, headers, None, False,json_keys) @staticmethod def pre_cancel(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","pre_cancel"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","pre_cancel"), params, env, headers, None, False,json_keys) @staticmethod def events(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","events"), params, env, headers) + json_keys = { + "event_data": 0, + } + return request.send('post', request.uri_path("hosted_pages","events"), params, env, headers, None, False,json_keys) @staticmethod def view_voucher(params, env=None, headers=None): - return request.send('post', request.uri_path("hosted_pages","view_voucher"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("hosted_pages","view_voucher"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/impacted_customer.py b/chargebee/models/impacted_customer.py new file mode 100644 index 0000000..7a32d60 --- /dev/null +++ b/chargebee/models/impacted_customer.py @@ -0,0 +1,12 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class ImpactedCustomer(Model): + class Download(Model): + fields = ["download_url", "valid_till", "mime_type"] + pass + + fields = ["action_type", "download"] + diff --git a/chargebee/models/in_app_subscription.py b/chargebee/models/in_app_subscription.py index fa263a9..bffe638 100644 --- a/chargebee/models/in_app_subscription.py +++ b/chargebee/models/in_app_subscription.py @@ -10,16 +10,24 @@ class InAppSubscription(Model): @staticmethod def process_receipt(id, params, env=None, headers=None): - return request.send('post', request.uri_path("in_app_subscriptions",id,"process_purchase_command"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("in_app_subscriptions",id,"process_purchase_command"), params, env, headers, None, False,json_keys) @staticmethod def import_receipt(id, params, env=None, headers=None): - return request.send('post', request.uri_path("in_app_subscriptions",id,"import_receipt"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("in_app_subscriptions",id,"import_receipt"), params, env, headers, None, False,json_keys) @staticmethod def import_subscription(id, params, env=None, headers=None): - return request.send('post', request.uri_path("in_app_subscriptions",id,"import_subscription"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("in_app_subscriptions",id,"import_subscription"), params, env, headers, None, False,json_keys) @staticmethod def retrieve_store_subs(id, params, env=None, headers=None): - return request.send('post', request.uri_path("in_app_subscriptions",id,"retrieve"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("in_app_subscriptions",id,"retrieve"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/invoice.py b/chargebee/models/invoice.py index a05d898..85162ed 100644 --- a/chargebee/models/invoice.py +++ b/chargebee/models/invoice.py @@ -5,31 +5,43 @@ class Invoice(Model): class LineItem(Model): - fields = ["id", "subscription_id", "date_from", "date_to", "unit_amount", "quantity", "amount", "pricing_model", "is_taxed", "tax_amount", "tax_rate", "unit_amount_in_decimal", "quantity_in_decimal", "amount_in_decimal", "discount_amount", "item_level_discount_amount", "usage_percentage", "reference_line_item_id", "description", "entity_description", "entity_type", "tax_exempt_reason", "entity_id", "customer_id"] + fields = ["id", "subscription_id", "date_from", "date_to", "unit_amount", "quantity", "amount", "pricing_model", "is_taxed", "tax_amount", "tax_rate", "unit_amount_in_decimal", "quantity_in_decimal", "amount_in_decimal", "discount_amount", "item_level_discount_amount", "metered", "is_percentage_pricing", "reference_line_item_id", "description", "entity_description", "entity_type", "tax_exempt_reason", "entity_id", "customer_id"] pass - class Discount(Model): - fields = ["amount", "description", "entity_type", "discount_type", "entity_id", "coupon_set_code"] + class LineItemTier(Model): + fields = ["line_item_id", "starting_unit", "ending_unit", "quantity_used", "unit_amount", "starting_unit_in_decimal", "ending_unit_in_decimal", "quantity_used_in_decimal", "unit_amount_in_decimal", "pricing_type", "package_size"] pass class LineItemDiscount(Model): fields = ["line_item_id", "discount_type", "coupon_id", "entity_id", "discount_amount"] pass - class Tax(Model): - fields = ["name", "amount", "description"] - pass class LineItemTax(Model): fields = ["line_item_id", "tax_name", "tax_rate", "date_to", "date_from", "prorated_taxable_amount", "is_partial_tax_applied", "is_non_compliance_tax", "taxable_amount", "tax_amount", "tax_juris_type", "tax_juris_name", "tax_juris_code", "tax_amount_in_local_currency", "local_currency_code"] pass - class LineItemTier(Model): - fields = ["line_item_id", "starting_unit", "ending_unit", "quantity_used", "unit_amount", "starting_unit_in_decimal", "ending_unit_in_decimal", "quantity_used_in_decimal", "unit_amount_in_decimal"] + class LineItemCredit(Model): + fields = ["cn_id", "applied_amount", "line_item_id"] + pass + class LineItemAddress(Model): + fields = ["line_item_id", "first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status"] + pass + class Discount(Model): + fields = ["amount", "description", "line_item_id", "entity_type", "discount_type", "entity_id", "coupon_set_code"] + pass + class Tax(Model): + fields = ["name", "amount", "description"] + pass + class TaxOrigin(Model): + fields = ["country", "registration_number"] pass class LinkedPayment(Model): fields = ["txn_id", "applied_amount", "applied_at", "txn_status", "txn_date", "txn_amount"] pass + class ReferenceTransaction(Model): + fields = ["applied_amount", "applied_at", "txn_id", "txn_status", "txn_date", "txn_amount", "txn_type", "amount_capturable", "authorization_reason"] + pass class DunningAttempt(Model): - fields = ["attempt", "transaction_id", "dunning_type", "created_at", "txn_status", "txn_amount"] + fields = ["attempt", "transaction_id", "dunning_type", "created_at", "txn_status", "txn_amount", "retry_engine"] pass class AppliedCredit(Model): - fields = ["cn_id", "applied_amount", "applied_at", "cn_reason_code", "cn_create_reason_code", "cn_date", "cn_status"] + fields = ["cn_id", "applied_amount", "applied_at", "cn_reason_code", "cn_create_reason_code", "cn_date", "cn_status", "tax_application"] pass class AdjustmentCreditNote(Model): fields = ["cn_id", "cn_reason_code", "cn_create_reason_code", "cn_date", "cn_total", "cn_status"] @@ -41,189 +53,279 @@ class LinkedOrder(Model): fields = ["id", "document_number", "status", "order_type", "reference_id", "fulfillment_status", "batch_id", "created_at"] pass class Note(Model): - fields = ["entity_type", "note", "entity_id"] + fields = ["note", "entity_id", "entity_type"] pass class ShippingAddress(Model): - fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status", "index"] - pass - class StatementDescriptor(Model): - fields = ["id", "descriptor"] + fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status"] pass class BillingAddress(Model): fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status"] pass + class StatementDescriptor(Model): + fields = ["id", "descriptor"] + pass class Einvoice(Model): fields = ["id", "reference_number", "status", "message"] pass class SiteDetailsAtCreation(Model): fields = ["timezone", "organization_address"] pass - class TaxOrigin(Model): - fields = ["country", "registration_number"] - pass - fields = ["id", "po_number", "customer_id", "subscription_id", "recurring", "status", "vat_number", \ - "price_type", "date", "due_date", "net_term_days", "exchange_rate", "currency_code", "total", \ - "amount_paid", "amount_adjusted", "write_off_amount", "credits_applied", "amount_due", "paid_at", \ - "dunning_status", "next_retry_at", "voided_at", "resource_version", "updated_at", "sub_total", \ - "sub_total_in_local_currency", "total_in_local_currency", "local_currency_code", "tax", "local_currency_exchange_rate", \ - "first_invoice", "new_sales_amount", "has_advance_charges", "term_finalized", "is_gifted", "generated_at", \ - "expected_payment_date", "amount_to_collect", "round_off_amount", "line_items", "discounts", \ - "line_item_discounts", "taxes", "line_item_taxes", "line_item_tiers", "linked_payments", "dunning_attempts", \ - "applied_credits", "adjustment_credit_notes", "issued_credit_notes", "linked_orders", "notes", \ - "shipping_address", "statement_descriptor", "billing_address", "einvoice", "payment_owner", \ - "void_reason_code", "deleted", "tax_category", "vat_number_prefix", "channel", "business_entity_id", \ - "site_details_at_creation", "tax_origin"] + fields = ["id", "customer_id", "payment_owner", "subscription_id", "recurring", "status", \ + "date", "due_date", "net_term_days", "po_number", "vat_number", "price_type", "exchange_rate", \ + "local_currency_exchange_rate", "currency_code", "local_currency_code", "tax", "sub_total", \ + "sub_total_in_local_currency", "total", "total_in_local_currency", "amount_due", "amount_adjusted", \ + "amount_paid", "paid_at", "write_off_amount", "credits_applied", "dunning_status", "next_retry_at", \ + "voided_at", "resource_version", "updated_at", "line_items_next_offset", "first_invoice", "new_sales_amount", \ + "has_advance_charges", "term_finalized", "is_gifted", "generated_at", "expected_payment_date", \ + "amount_to_collect", "round_off_amount", "line_items", "line_item_tiers", "line_item_discounts", \ + "line_item_taxes", "line_item_credits", "line_item_addresses", "discounts", "taxes", "tax_origin", \ + "linked_payments", "reference_transactions", "dunning_attempts", "applied_credits", "adjustment_credit_notes", \ + "issued_credit_notes", "linked_orders", "notes", "shipping_address", "billing_address", "statement_descriptor", \ + "einvoice", "void_reason_code", "deleted", "tax_category", "vat_number_prefix", "channel", "business_entity_id", \ + "site_details_at_creation"] @staticmethod def create(params=None, env=None, headers=None): - return request.send('post', request.uri_path("invoices"), params, env, headers) + json_keys = { + "additional_information": 1, + "billing_address": 1, + } + return request.send('post', request.uri_path("invoices"), params, env, headers, None, False,json_keys) @staticmethod def create_for_charge_items_and_charges(params, env=None, headers=None): - return request.send('post', request.uri_path("invoices","create_for_charge_items_and_charges"), params, env, headers) + json_keys = { + "additional_information": 1, + "billing_address": 1, + } + return request.send('post', request.uri_path("invoices","create_for_charge_items_and_charges"), params, env, headers, None, False,json_keys) @staticmethod def charge(params, env=None, headers=None): - return request.send('post', request.uri_path("invoices","charge"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices","charge"), params, env, headers, None, False,json_keys) @staticmethod def charge_addon(params, env=None, headers=None): - return request.send('post', request.uri_path("invoices","charge_addon"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices","charge_addon"), params, env, headers, None, False,json_keys) @staticmethod def create_for_charge_item(params, env=None, headers=None): - return request.send('post', request.uri_path("invoices","create_for_charge_item"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices","create_for_charge_item"), params, env, headers, None, False,json_keys) @staticmethod def stop_dunning(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"stop_dunning"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"stop_dunning"), params, env, headers, None, False,json_keys) + + @staticmethod + def pause_dunning(id, params, env=None, headers=None): + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"pause_dunning"), params, env, headers, None, False,json_keys) + + @staticmethod + def resume_dunning(id, params=None, env=None, headers=None): + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"resume_dunning"), params, env, headers, None, False,json_keys) @staticmethod def import_invoice(params, env=None, headers=None): - return request.send('post', request.uri_path("invoices","import_invoice"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices","import_invoice"), params, env, headers, None, False,json_keys) @staticmethod def apply_payments(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"apply_payments"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"apply_payments"), params, env, headers, None, False,json_keys) @staticmethod def sync_usages(id, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"sync_usages"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"sync_usages"), None, env, headers, None, False,json_keys) @staticmethod def delete_line_items(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"delete_line_items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"delete_line_items"), params, env, headers, None, False,json_keys) @staticmethod def apply_credits(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"apply_credits"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"apply_credits"), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("invoices"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("invoices"), params, env, headers, None, False,json_keys) @staticmethod def invoices_for_customer(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("customers",id,"invoices"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("customers",id,"invoices"), params, env, headers, None, False,json_keys) @staticmethod def invoices_for_subscription(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("subscriptions",id,"invoices"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("subscriptions",id,"invoices"), params, env, headers, None, False,json_keys) @staticmethod - def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("invoices",id), None, env, headers) + def retrieve(id, params=None, env=None, headers=None): + json_keys = { + } + return request.send('get', request.uri_path("invoices",id), params, env, headers, None, False,json_keys) @staticmethod def pdf(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"pdf"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"pdf"), params, env, headers, None, False,json_keys) @staticmethod def download_einvoice(id, env=None, headers=None): - return request.send('get', request.uri_path("invoices",id,"download_einvoice"), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("invoices",id,"download_einvoice"), None, env, headers, None, False,json_keys) @staticmethod def list_payment_reference_numbers(params=None, env=None, headers=None): - return request.send('get', request.uri_path("invoices","payment_reference_numbers"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("invoices","payment_reference_numbers"), params, env, headers, None, False,json_keys) @staticmethod def add_charge(id, params, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"add_charge"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"add_charge"), params, env, headers, None, False,json_keys) @staticmethod def add_addon_charge(id, params, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"add_addon_charge"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"add_addon_charge"), params, env, headers, None, False,json_keys) @staticmethod def add_charge_item(id, params, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"add_charge_item"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"add_charge_item"), params, env, headers, None, False,json_keys) @staticmethod def close(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"close"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"close"), params, env, headers, None, False,json_keys) @staticmethod def collect_payment(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"collect_payment"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"collect_payment"), params, env, headers, None, False,json_keys) @staticmethod def record_payment(id, params, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"record_payment"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"record_payment"), params, env, headers, None, False,json_keys) @staticmethod def record_tax_withheld(id, params, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"record_tax_withheld"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"record_tax_withheld"), params, env, headers, None, False,json_keys) @staticmethod def remove_tax_withheld(id, params, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"remove_tax_withheld"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"remove_tax_withheld"), params, env, headers, None, False,json_keys) @staticmethod def refund(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"refund"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"refund"), params, env, headers, None, False,json_keys) @staticmethod def record_refund(id, params, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"record_refund"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"record_refund"), params, env, headers, None, False,json_keys) @staticmethod def remove_payment(id, params, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"remove_payment"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"remove_payment"), params, env, headers, None, False,json_keys) @staticmethod def remove_credit_note(id, params, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"remove_credit_note"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"remove_credit_note"), params, env, headers, None, False,json_keys) @staticmethod def void_invoice(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"void"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"void"), params, env, headers, None, False,json_keys) @staticmethod def write_off(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"write_off"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"write_off"), params, env, headers, None, False,json_keys) @staticmethod def delete(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"delete"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"delete"), params, env, headers, None, False,json_keys) @staticmethod def update_details(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"update_details"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"update_details"), params, env, headers, None, False,json_keys) @staticmethod def apply_payment_schedule_scheme(id, params, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"apply_payment_schedule_scheme"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"apply_payment_schedule_scheme"), params, env, headers, None, False,json_keys) @staticmethod def payment_schedules(id, env=None, headers=None): - return request.send('get', request.uri_path("invoices",id,"payment_schedules"), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("invoices",id,"payment_schedules"), None, env, headers, None, False,json_keys) @staticmethod def resend_einvoice(id, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"resend_einvoice"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"resend_einvoice"), None, env, headers, None, False,json_keys) @staticmethod def send_einvoice(id, env=None, headers=None): - return request.send('post', request.uri_path("invoices",id,"send_einvoice"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("invoices",id,"send_einvoice"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/invoice_estimate.py b/chargebee/models/invoice_estimate.py index 777958a..cbdf64f 100644 --- a/chargebee/models/invoice_estimate.py +++ b/chargebee/models/invoice_estimate.py @@ -5,25 +5,31 @@ class InvoiceEstimate(Model): class LineItem(Model): - fields = ["id", "subscription_id", "date_from", "date_to", "unit_amount", "quantity", "amount", "pricing_model", "is_taxed", "tax_amount", "tax_rate", "unit_amount_in_decimal", "quantity_in_decimal", "amount_in_decimal", "discount_amount", "item_level_discount_amount", "usage_percentage", "reference_line_item_id", "description", "entity_description", "entity_type", "tax_exempt_reason", "entity_id", "customer_id"] + fields = ["id", "subscription_id", "date_from", "date_to", "unit_amount", "quantity", "amount", "pricing_model", "is_taxed", "tax_amount", "tax_rate", "unit_amount_in_decimal", "quantity_in_decimal", "amount_in_decimal", "discount_amount", "item_level_discount_amount", "metered", "is_percentage_pricing", "reference_line_item_id", "description", "entity_description", "entity_type", "tax_exempt_reason", "entity_id", "customer_id"] pass - class Discount(Model): - fields = ["amount", "description", "entity_type", "discount_type", "entity_id", "coupon_set_code"] + class LineItemTier(Model): + fields = ["line_item_id", "starting_unit", "ending_unit", "quantity_used", "unit_amount", "starting_unit_in_decimal", "ending_unit_in_decimal", "quantity_used_in_decimal", "unit_amount_in_decimal", "pricing_type", "package_size"] pass - class Tax(Model): - fields = ["name", "amount", "description"] + class LineItemDiscount(Model): + fields = ["line_item_id", "discount_type", "coupon_id", "entity_id", "discount_amount"] pass class LineItemTax(Model): fields = ["line_item_id", "tax_name", "tax_rate", "date_to", "date_from", "prorated_taxable_amount", "is_partial_tax_applied", "is_non_compliance_tax", "taxable_amount", "tax_amount", "tax_juris_type", "tax_juris_name", "tax_juris_code", "tax_amount_in_local_currency", "local_currency_code"] pass - class LineItemTier(Model): - fields = ["line_item_id", "starting_unit", "ending_unit", "quantity_used", "unit_amount", "starting_unit_in_decimal", "ending_unit_in_decimal", "quantity_used_in_decimal", "unit_amount_in_decimal"] + class LineItemCredit(Model): + fields = ["cn_id", "applied_amount", "line_item_id"] pass - class LineItemDiscount(Model): - fields = ["line_item_id", "discount_type", "coupon_id", "entity_id", "discount_amount"] + class LineItemAddress(Model): + fields = ["line_item_id", "first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status"] + pass + class Discount(Model): + fields = ["amount", "description", "line_item_id", "entity_type", "discount_type", "entity_id", "coupon_set_code"] + pass + class Tax(Model): + fields = ["name", "amount", "description"] pass fields = ["recurring", "price_type", "currency_code", "sub_total", "total", "credits_applied", \ - "amount_paid", "amount_due", "line_items", "discounts", "taxes", "line_item_taxes", "line_item_tiers", \ - "line_item_discounts", "round_off_amount", "customer_id"] + "amount_paid", "amount_due", "line_items", "line_item_tiers", "line_item_discounts", "line_item_taxes", \ + "line_item_credits", "line_item_addresses", "discounts", "taxes", "round_off_amount", "customer_id"] diff --git a/chargebee/models/item.py b/chargebee/models/item.py index d724c41..9810e31 100644 --- a/chargebee/models/item.py +++ b/chargebee/models/item.py @@ -17,26 +17,38 @@ class BundleConfiguration(Model): fields = ["id", "name", "external_name", "description", "status", "resource_version", "updated_at", \ "item_family_id", "type", "is_shippable", "is_giftable", "redirect_url", "enabled_for_checkout", \ "enabled_in_portal", "included_in_mrr", "item_applicability", "gift_claim_redirect_url", "unit", \ - "metered", "usage_calculation", "archived_at", "channel", "applicable_items", "bundle_items", \ - "bundle_configuration", "metadata", "business_entity_id"] + "metered", "usage_calculation", "is_percentage_pricing", "archived_at", "channel", "applicable_items", \ + "bundle_items", "bundle_configuration", "metadata", "deleted", "business_entity_id"] @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("items"), params, env, headers) + json_keys = { + "metadata": 0, + } + return request.send('post', request.uri_path("items"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("items",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("items",id), None, env, headers, None, False,json_keys) @staticmethod def update(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("items",id), params, env, headers) + json_keys = { + "metadata": 0, + } + return request.send('post', request.uri_path("items",id), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("items"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("items"), params, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("items",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("items",id,"delete"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/item_entitlement.py b/chargebee/models/item_entitlement.py index 11adb4d..e4fc610 100644 --- a/chargebee/models/item_entitlement.py +++ b/chargebee/models/item_entitlement.py @@ -10,16 +10,24 @@ class ItemEntitlement(Model): @staticmethod def item_entitlements_for_item(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("items",id,"item_entitlements"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("items",id,"item_entitlements"), params, env, headers, None, False,json_keys) @staticmethod def item_entitlements_for_feature(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("features",id,"item_entitlements"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("features",id,"item_entitlements"), params, env, headers, None, False,json_keys) @staticmethod def add_item_entitlements(id, params, env=None, headers=None): - return request.send('post', request.uri_path("features",id,"item_entitlements"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("features",id,"item_entitlements"), params, env, headers, None, False,json_keys) @staticmethod def upsert_or_remove_item_entitlements_for_item(id, params, env=None, headers=None): - return request.send('post', request.uri_path("items",id,"item_entitlements"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("items",id,"item_entitlements"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/item_family.py b/chargebee/models/item_family.py index a11d2cc..1d05fbb 100644 --- a/chargebee/models/item_family.py +++ b/chargebee/models/item_family.py @@ -6,25 +6,35 @@ class ItemFamily(Model): fields = ["id", "name", "description", "status", "resource_version", "updated_at", "channel", \ - "business_entity_id"] + "business_entity_id", "deleted"] @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("item_families"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("item_families"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("item_families",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("item_families",id), None, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("item_families"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("item_families"), params, env, headers, None, False,json_keys) @staticmethod def update(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("item_families",id), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("item_families",id), params, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("item_families",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("item_families",id,"delete"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/item_price.py b/chargebee/models/item_price.py index 7720fc5..d916ce4 100644 --- a/chargebee/models/item_price.py +++ b/chargebee/models/item_price.py @@ -5,7 +5,7 @@ class ItemPrice(Model): class Tier(Model): - fields = ["starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal"] + fields = ["starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal", "pricing_type", "package_size"] pass class TaxDetail(Model): fields = ["tax_profile_id", "avalara_sale_type", "avalara_transaction_type", "avalara_service_type", "avalara_tax_code", "hsn_code", "taxjar_product_code"] @@ -24,33 +24,55 @@ class AccountingDetail(Model): "resource_version", "updated_at", "created_at", "usage_accumulation_reset_frequency", "archived_at", \ "invoice_notes", "tiers", "is_taxable", "tax_detail", "tax_providers_fields", "accounting_detail", \ "metadata", "item_type", "archivable", "parent_item_id", "show_description_in_invoices", "show_description_in_quotes", \ - "business_entity_id"] + "deleted", "business_entity_id"] @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("item_prices"), params, env, headers) + json_keys = { + "metadata": 0, + } + return request.send('post', request.uri_path("item_prices"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("item_prices",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("item_prices",id), None, env, headers, None, False,json_keys) @staticmethod def update(id, params, env=None, headers=None): - return request.send('post', request.uri_path("item_prices",id), params, env, headers) + json_keys = { + "metadata": 0, + } + return request.send('post', request.uri_path("item_prices",id), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("item_prices"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("item_prices"), params, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("item_prices",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("item_prices",id,"delete"), None, env, headers, None, False,json_keys) @staticmethod def find_applicable_items(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("item_prices",id,"applicable_items"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("item_prices",id,"applicable_items"), params, env, headers, None, False,json_keys) @staticmethod def find_applicable_item_prices(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("item_prices",id,"applicable_item_prices"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("item_prices",id,"applicable_item_prices"), params, env, headers, None, False,json_keys) + + @staticmethod + def move_item_price(id, params, env=None, headers=None): + json_keys = { + } + return request.send('post', request.uri_path("item_prices",id,"move"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/non_subscription.py b/chargebee/models/non_subscription.py index 3a074a1..52fc21f 100644 --- a/chargebee/models/non_subscription.py +++ b/chargebee/models/non_subscription.py @@ -10,4 +10,6 @@ class NonSubscription(Model): @staticmethod def process_receipt(id, params, env=None, headers=None): - return request.send('post', request.uri_path("non_subscriptions",id,"one_time_purchase"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("non_subscriptions",id,"one_time_purchase"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/offer_event.py b/chargebee/models/offer_event.py new file mode 100644 index 0000000..9f74933 --- /dev/null +++ b/chargebee/models/offer_event.py @@ -0,0 +1,14 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class OfferEvent(Model): + + + + @staticmethod + def offer_events(params, env=None, headers=None): + json_keys = { + } + return request.send('post', request.uri_path("offer_events"), params, env, headers, "grow", True,json_keys) diff --git a/chargebee/models/offer_fulfillment.py b/chargebee/models/offer_fulfillment.py new file mode 100644 index 0000000..7e43a88 --- /dev/null +++ b/chargebee/models/offer_fulfillment.py @@ -0,0 +1,31 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class OfferFulfillment(Model): + class Error(Model): + fields = ["code", "message"] + pass + + fields = ["id", "personalized_offer_id", "option_id", "processing_type", "status", "redirect_url", \ + "failed_at", "created_at", "completed_at", "error"] + + + @staticmethod + def offer_fulfillments(params, env=None, headers=None): + json_keys = { + } + return request.send('post', request.uri_path("offer_fulfillments"), params, env, headers, "grow", True,json_keys) + + @staticmethod + def offer_fulfillments_get(id, env=None, headers=None): + json_keys = { + } + return request.send('get', request.uri_path("offer_fulfillments",id), None, env, headers, "grow", True,json_keys) + + @staticmethod + def offer_fulfillments_update(id, params, env=None, headers=None): + json_keys = { + } + return request.send('post', request.uri_path("offer_fulfillments",id), params, env, headers, "grow", True,json_keys) diff --git a/chargebee/models/omnichannel_one_time_order.py b/chargebee/models/omnichannel_one_time_order.py new file mode 100644 index 0000000..763ecfe --- /dev/null +++ b/chargebee/models/omnichannel_one_time_order.py @@ -0,0 +1,22 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class OmnichannelOneTimeOrder(Model): + + fields = ["id", "app_id", "customer_id", "id_at_source", "origin", "source", "created_at", \ + "resource_version", "omnichannel_one_time_order_items", "purchase_transaction"] + + + @staticmethod + def retrieve(id, env=None, headers=None): + json_keys = { + } + return request.send('get', request.uri_path("omnichannel_one_time_orders",id), None, env, headers, None, False,json_keys) + + @staticmethod + def list(params=None, env=None, headers=None): + json_keys = { + } + return request.send_list_request('get', request.uri_path("omnichannel_one_time_orders"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/omnichannel_one_time_order_item.py b/chargebee/models/omnichannel_one_time_order_item.py new file mode 100644 index 0000000..19f2e1f --- /dev/null +++ b/chargebee/models/omnichannel_one_time_order_item.py @@ -0,0 +1,10 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class OmnichannelOneTimeOrderItem(Model): + + fields = ["id", "item_id_at_source", "item_type_at_source", "quantity", "cancelled_at", \ + "cancellation_reason", "created_at", "resource_version"] + diff --git a/chargebee/models/omnichannel_subscription.py b/chargebee/models/omnichannel_subscription.py index 16d8f36..7a9c509 100644 --- a/chargebee/models/omnichannel_subscription.py +++ b/chargebee/models/omnichannel_subscription.py @@ -4,9 +4,6 @@ from chargebee import APIError class OmnichannelSubscription(Model): - class OmnichannelTransaction(Model): - fields = ["id", "id_at_source", "app_id", "price_currency", "price_units", "price_nanos", "type", "transacted_at", "created_at", "resource_version"] - pass fields = ["id", "id_at_source", "app_id", "source", "customer_id", "created_at", "resource_version", \ "omnichannel_subscription_items", "initial_purchase_transaction"] @@ -14,12 +11,24 @@ class OmnichannelTransaction(Model): @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("omnichannel_subscriptions",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("omnichannel_subscriptions",id), None, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("omnichannel_subscriptions"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("omnichannel_subscriptions"), params, env, headers, None, False,json_keys) @staticmethod def omnichannel_transactions_for_omnichannel_subscription(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("omnichannel_subscriptions",id,"omnichannel_transactions"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("omnichannel_subscriptions",id,"omnichannel_transactions"), params, env, headers, None, False,json_keys) + + @staticmethod + def move(id, params, env=None, headers=None): + json_keys = { + } + return request.send('post', request.uri_path("omnichannel_subscriptions",id,"move"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/omnichannel_subscription_item.py b/chargebee/models/omnichannel_subscription_item.py index 25a9390..b22dac3 100644 --- a/chargebee/models/omnichannel_subscription_item.py +++ b/chargebee/models/omnichannel_subscription_item.py @@ -4,8 +4,21 @@ from chargebee import APIError class OmnichannelSubscriptionItem(Model): + class UpcomingRenewal(Model): + fields = ["price_currency", "price_units", "price_nanos"] + pass + class LinkedItem(Model): + fields = ["id", "linked_at"] + pass - fields = ["id", "item_id_at_source", "status", "current_term_start", "current_term_end", \ - "expired_at", "expiration_reason", "cancelled_at", "cancellation_reason", "grace_period_expires_at", \ - "resource_version"] + fields = ["id", "item_id_at_source", "item_parent_id_at_source", "status", "auto_renew_status", \ + "current_term_start", "current_term_end", "expired_at", "expiration_reason", "cancelled_at", \ + "cancellation_reason", "grace_period_expires_at", "resumes_at", "has_scheduled_changes", "resource_version", \ + "omnichannel_subscription_item_offers", "upcoming_renewal", "linked_item"] + + @staticmethod + def list_omni_sub_item_schedule_changes(id, params=None, env=None, headers=None): + json_keys = { + } + return request.send('get', request.uri_path("omnichannel_subscription_items",id,"scheduled_changes"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/omnichannel_subscription_item_offer.py b/chargebee/models/omnichannel_subscription_item_offer.py new file mode 100644 index 0000000..59ca649 --- /dev/null +++ b/chargebee/models/omnichannel_subscription_item_offer.py @@ -0,0 +1,11 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class OmnichannelSubscriptionItemOffer(Model): + + fields = ["id", "offer_id_at_source", "category", "category_at_source", "type", "type_at_source", \ + "discount_type", "duration", "percentage", "price_currency", "price_units", "price_nanos", "offer_term_start", \ + "offer_term_end", "resource_version"] + diff --git a/chargebee/models/omnichannel_subscription_item_scheduled_change.py b/chargebee/models/omnichannel_subscription_item_scheduled_change.py new file mode 100644 index 0000000..b231626 --- /dev/null +++ b/chargebee/models/omnichannel_subscription_item_scheduled_change.py @@ -0,0 +1,16 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class OmnichannelSubscriptionItemScheduledChange(Model): + class CurrentState(Model): + fields = ["item_id_at_source"] + pass + class ScheduledState(Model): + fields = ["item_id_at_source"] + pass + + fields = ["id", "omnichannel_subscription_item_id", "scheduled_at", "change_type", "created_at", \ + "modified_at", "resource_version", "current_state", "scheduled_state"] + diff --git a/chargebee/models/omnichannel_transaction.py b/chargebee/models/omnichannel_transaction.py index 71c49ed..9ebc145 100644 --- a/chargebee/models/omnichannel_transaction.py +++ b/chargebee/models/omnichannel_transaction.py @@ -4,7 +4,14 @@ from chargebee import APIError class OmnichannelTransaction(Model): + class LinkedOmnichannelSubscription(Model): + fields = ["omnichannel_subscription_id"] + pass + class LinkedOmnichannelOneTimeOrder(Model): + fields = ["omnichannel_one_time_order_id"] + pass fields = ["id", "id_at_source", "app_id", "price_currency", "price_units", "price_nanos", \ - "type", "transacted_at", "created_at", "resource_version"] + "type", "transacted_at", "created_at", "resource_version", "linked_omnichannel_subscriptions", \ + "linked_omnichannel_one_time_orders"] diff --git a/chargebee/models/order.py b/chargebee/models/order.py index 849ec77..0295057 100644 --- a/chargebee/models/order.py +++ b/chargebee/models/order.py @@ -8,7 +8,7 @@ class OrderLineItem(Model): fields = ["id", "invoice_id", "invoice_line_item_id", "unit_price", "description", "amount", "fulfillment_quantity", "fulfillment_amount", "tax_amount", "amount_paid", "amount_adjusted", "refundable_credits_issued", "refundable_credits", "is_shippable", "sku", "status", "entity_type", "item_level_discount_amount", "discount_amount", "entity_id"] pass class ShippingAddress(Model): - fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status", "index"] + fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status"] pass class BillingAddress(Model): fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status"] @@ -40,48 +40,72 @@ class ResentOrder(Model): @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("orders"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("orders"), params, env, headers, None, False,json_keys) @staticmethod def update(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("orders",id), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("orders",id), params, env, headers, None, False,json_keys) @staticmethod def import_order(params, env=None, headers=None): - return request.send('post', request.uri_path("orders","import_order"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("orders","import_order"), params, env, headers, None, False,json_keys) @staticmethod def assign_order_number(id, env=None, headers=None): - return request.send('post', request.uri_path("orders",id,"assign_order_number"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("orders",id,"assign_order_number"), None, env, headers, None, False,json_keys) @staticmethod def cancel(id, params, env=None, headers=None): - return request.send('post', request.uri_path("orders",id,"cancel"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("orders",id,"cancel"), params, env, headers, None, False,json_keys) @staticmethod def create_refundable_credit_note(id, params, env=None, headers=None): - return request.send('post', request.uri_path("orders",id,"create_refundable_credit_note"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("orders",id,"create_refundable_credit_note"), params, env, headers, None, False,json_keys) @staticmethod def reopen(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("orders",id,"reopen"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("orders",id,"reopen"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("orders",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("orders",id), None, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("orders",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("orders",id,"delete"), None, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("orders"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("orders"), params, env, headers, None, False,json_keys) @staticmethod def orders_for_invoice(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("invoices",id,"orders"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("invoices",id,"orders"), params, env, headers, None, False,json_keys) @staticmethod def resend(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("orders",id,"resend"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("orders",id,"resend"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/payment_intent.py b/chargebee/models/payment_intent.py index b18ccc3..6a0d5ce 100644 --- a/chargebee/models/payment_intent.py +++ b/chargebee/models/payment_intent.py @@ -5,22 +5,32 @@ class PaymentIntent(Model): class PaymentAttempt(Model): - fields = ["id", "status", "payment_method_type", "id_at_gateway", "error_code", "error_text", "created_at", "modified_at", "error_detail"] + fields = ["id", "status", "payment_method_type", "id_at_gateway", "error_code", "error_text", "checkout_details", "created_at", "modified_at", "error_detail"] + pass + class PaymentAttempt(Model): + fields = ["id", "status", "payment_method_type", "id_at_gateway", "error_code", "error_text", "checkout_details", "created_at", "modified_at", "error_detail"] pass fields = ["id", "status", "currency_code", "amount", "gateway_account_id", "expires_at", \ "reference_id", "payment_method_type", "success_url", "failure_url", "created_at", "modified_at", \ - "resource_version", "updated_at", "customer_id", "gateway", "active_payment_attempt", "business_entity_id"] + "resource_version", "updated_at", "customer_id", "gateway", "active_payment_attempt", "payment_attempts", \ + "business_entity_id"] @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("payment_intents"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("payment_intents"), params, env, headers, None, False,json_keys) @staticmethod def update(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("payment_intents",id), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("payment_intents",id), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("payment_intents",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("payment_intents",id), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/payment_schedule_scheme.py b/chargebee/models/payment_schedule_scheme.py index 39d616f..3cfa660 100644 --- a/chargebee/models/payment_schedule_scheme.py +++ b/chargebee/models/payment_schedule_scheme.py @@ -14,12 +14,18 @@ class PreferredSchedule(Model): @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("payment_schedule_schemes"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("payment_schedule_schemes"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("payment_schedule_schemes",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("payment_schedule_schemes",id), None, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("payment_schedule_schemes",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("payment_schedule_schemes",id,"delete"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/payment_source.py b/chargebee/models/payment_source.py index da5d8e0..cd5e378 100644 --- a/chargebee/models/payment_source.py +++ b/chargebee/models/payment_source.py @@ -43,64 +43,105 @@ class Mandate(Model): @staticmethod def create_using_temp_token(params, env=None, headers=None): - return request.send('post', request.uri_path("payment_sources","create_using_temp_token"), params, env, headers) + json_keys = { + "additional_information": 0, + } + return request.send('post', request.uri_path("payment_sources","create_using_temp_token"), params, env, headers, None, False,json_keys) @staticmethod def create_using_permanent_token(params, env=None, headers=None): - return request.send('post', request.uri_path("payment_sources","create_using_permanent_token"), params, env, headers) + json_keys = { + "additional_information": 0, + } + return request.send('post', request.uri_path("payment_sources","create_using_permanent_token"), params, env, headers, None, False,json_keys) @staticmethod def create_using_token(params, env=None, headers=None): - return request.send('post', request.uri_path("payment_sources","create_using_token"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("payment_sources","create_using_token"), params, env, headers, None, False,json_keys) @staticmethod def create_using_payment_intent(params, env=None, headers=None): - return request.send('post', request.uri_path("payment_sources","create_using_payment_intent"), params, env, headers) + json_keys = { + "additional_info": 1, + "additional_information": 1, + } + return request.send('post', request.uri_path("payment_sources","create_using_payment_intent"), params, env, headers, None, False,json_keys) @staticmethod def create_voucher_payment_source(params, env=None, headers=None): - return request.send('post', request.uri_path("payment_sources","create_voucher_payment_source"), params, env, headers) + json_keys = { + "billing_address": 1, + } + return request.send('post', request.uri_path("payment_sources","create_voucher_payment_source"), params, env, headers, None, False,json_keys) @staticmethod def create_card(params, env=None, headers=None): - return request.send('post', request.uri_path("payment_sources","create_card"), params, env, headers) + json_keys = { + "additional_information": 1, + } + return request.send('post', request.uri_path("payment_sources","create_card"), params, env, headers, None, False,json_keys) @staticmethod def create_bank_account(params, env=None, headers=None): - return request.send('post', request.uri_path("payment_sources","create_bank_account"), params, env, headers) + json_keys = { + "billing_address": 1, + } + return request.send('post', request.uri_path("payment_sources","create_bank_account"), params, env, headers, None, False,json_keys) @staticmethod def update_card(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("payment_sources",id,"update_card"), params, env, headers) + json_keys = { + "gateway_meta_data": 0, + "additional_information": 1, + } + return request.send('post', request.uri_path("payment_sources",id,"update_card"), params, env, headers, None, False,json_keys) @staticmethod def update_bank_account(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("payment_sources",id,"update_bank_account"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("payment_sources",id,"update_bank_account"), params, env, headers, None, False,json_keys) @staticmethod def verify_bank_account(id, params, env=None, headers=None): - return request.send('post', request.uri_path("payment_sources",id,"verify_bank_account"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("payment_sources",id,"verify_bank_account"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("payment_sources",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("payment_sources",id), None, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("payment_sources"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("payment_sources"), params, env, headers, None, False,json_keys) @staticmethod def switch_gateway_account(id, params, env=None, headers=None): - return request.send('post', request.uri_path("payment_sources",id,"switch_gateway_account"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("payment_sources",id,"switch_gateway_account"), params, env, headers, None, False,json_keys) @staticmethod def export_payment_source(id, params, env=None, headers=None): - return request.send('post', request.uri_path("payment_sources",id,"export_payment_source"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("payment_sources",id,"export_payment_source"), params, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("payment_sources",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("payment_sources",id,"delete"), None, env, headers, None, False,json_keys) @staticmethod def delete_local(id, env=None, headers=None): - return request.send('post', request.uri_path("payment_sources",id,"delete_local"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("payment_sources",id,"delete_local"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/payment_voucher.py b/chargebee/models/payment_voucher.py index d9833fa..5eb9d69 100644 --- a/chargebee/models/payment_voucher.py +++ b/chargebee/models/payment_voucher.py @@ -16,16 +16,24 @@ class LinkedInvoice(Model): @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("payment_vouchers"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("payment_vouchers"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("payment_vouchers",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("payment_vouchers",id), None, env, headers, None, False,json_keys) @staticmethod def payment_vouchers_for_invoice(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("invoices",id,"payment_vouchers"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("invoices",id,"payment_vouchers"), params, env, headers, None, False,json_keys) @staticmethod def payment_vouchers_for_customer(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("customers",id,"payment_vouchers"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("customers",id,"payment_vouchers"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/personalized_offer.py b/chargebee/models/personalized_offer.py new file mode 100644 index 0000000..d131518 --- /dev/null +++ b/chargebee/models/personalized_offer.py @@ -0,0 +1,22 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class PersonalizedOffer(Model): + class Content(Model): + fields = ["title", "description"] + pass + class Option(Model): + fields = ["id", "label", "processing_type", "processing_layout", "redirect_url"] + pass + + fields = ["id", "offer_id", "content", "options"] + + + @staticmethod + def personalized_offers(params, env=None, headers=None): + json_keys = { + "custom": 0, + } + return request.send('post', request.uri_path("personalized_offers"), params, env, headers, "grow", True,json_keys) diff --git a/chargebee/models/plan.py b/chargebee/models/plan.py index 41942b6..0830314 100644 --- a/chargebee/models/plan.py +++ b/chargebee/models/plan.py @@ -5,7 +5,7 @@ class Plan(Model): class Tier(Model): - fields = ["starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal"] + fields = ["starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal", "pricing_type", "package_size"] pass class TaxProvidersField(Model): fields = ["provider_name", "field_id", "field_value"] @@ -35,28 +35,44 @@ class EventBasedAddon(Model): @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("plans"), params, env, headers) + json_keys = { + "meta_data": 0, + } + return request.send('post', request.uri_path("plans"), params, env, headers, None, False,json_keys) @staticmethod def update(id, params, env=None, headers=None): - return request.send('post', request.uri_path("plans",id), params, env, headers) + json_keys = { + "meta_data": 0, + } + return request.send('post', request.uri_path("plans",id), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("plans"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("plans"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("plans",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("plans",id), None, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("plans",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("plans",id,"delete"), None, env, headers, None, False,json_keys) @staticmethod def copy(params, env=None, headers=None): - return request.send('post', request.uri_path("plans","copy"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("plans","copy"), params, env, headers, None, False,json_keys) @staticmethod def unarchive(id, env=None, headers=None): - return request.send('post', request.uri_path("plans",id,"unarchive"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("plans",id,"unarchive"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/portal_session.py b/chargebee/models/portal_session.py index 887b7ff..ec8963c 100644 --- a/chargebee/models/portal_session.py +++ b/chargebee/models/portal_session.py @@ -14,16 +14,24 @@ class LinkedCustomer(Model): @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("portal_sessions"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("portal_sessions"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("portal_sessions",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("portal_sessions",id), None, env, headers, None, False,json_keys) @staticmethod def logout(id, env=None, headers=None): - return request.send('post', request.uri_path("portal_sessions",id,"logout"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("portal_sessions",id,"logout"), None, env, headers, None, False,json_keys) @staticmethod def activate(id, params, env=None, headers=None): - return request.send('post', request.uri_path("portal_sessions",id,"activate"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("portal_sessions",id,"activate"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/price_variant.py b/chargebee/models/price_variant.py index 48b14f9..befa272 100644 --- a/chargebee/models/price_variant.py +++ b/chargebee/models/price_variant.py @@ -9,25 +9,35 @@ class Attribute(Model): pass fields = ["id", "name", "external_name", "variant_group", "description", "status", "created_at", \ - "resource_version", "updated_at", "archived_at", "attributes", "business_entity_id"] + "resource_version", "updated_at", "archived_at", "attributes", "business_entity_id", "deleted"] @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("price_variants"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("price_variants"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("price_variants",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("price_variants",id), None, env, headers, None, False,json_keys) @staticmethod def update(id, params, env=None, headers=None): - return request.send('post', request.uri_path("price_variants",id), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("price_variants",id), params, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("price_variants",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("price_variants",id,"delete"), None, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("price_variants"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("price_variants"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/pricing_page_session.py b/chargebee/models/pricing_page_session.py index 0b5c288..57ad627 100644 --- a/chargebee/models/pricing_page_session.py +++ b/chargebee/models/pricing_page_session.py @@ -10,8 +10,14 @@ class PricingPageSession(Model): @staticmethod def create_for_new_subscription(params, env=None, headers=None): - return request.send('post', request.uri_path("pricing_page_sessions","create_for_new_subscription"), params, env, headers) + json_keys = { + "custom": 0, + } + return request.send('post', request.uri_path("pricing_page_sessions","create_for_new_subscription"), params, env, headers, None, False,json_keys) @staticmethod def create_for_existing_subscription(params, env=None, headers=None): - return request.send('post', request.uri_path("pricing_page_sessions","create_for_existing_subscription"), params, env, headers) + json_keys = { + "custom": 0, + } + return request.send('post', request.uri_path("pricing_page_sessions","create_for_existing_subscription"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/promotional_credit.py b/chargebee/models/promotional_credit.py index 5a68da4..ddd9312 100644 --- a/chargebee/models/promotional_credit.py +++ b/chargebee/models/promotional_credit.py @@ -6,25 +6,35 @@ class PromotionalCredit(Model): fields = ["id", "customer_id", "type", "amount_in_decimal", "amount", "currency_code", \ - "description", "credit_type", "reference", "closing_balance", "done_by", "created_at"] + "description", "credit_type", "reference", "closing_balance", "done_by", "created_at", "business_entity_id"] @staticmethod def add(params, env=None, headers=None): - return request.send('post', request.uri_path("promotional_credits","add"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("promotional_credits","add"), params, env, headers, None, False,json_keys) @staticmethod def deduct(params, env=None, headers=None): - return request.send('post', request.uri_path("promotional_credits","deduct"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("promotional_credits","deduct"), params, env, headers, None, False,json_keys) @staticmethod def set(params, env=None, headers=None): - return request.send('post', request.uri_path("promotional_credits","set"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("promotional_credits","set"), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("promotional_credits"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("promotional_credits"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("promotional_credits",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("promotional_credits",id), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/purchase.py b/chargebee/models/purchase.py index 49c1794..a37cd47 100644 --- a/chargebee/models/purchase.py +++ b/chargebee/models/purchase.py @@ -10,8 +10,15 @@ class Purchase(Model): @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("purchases"), params, env, headers) + json_keys = { + "additional_information": 1, + "meta_data": 1, + } + return request.send('post', request.uri_path("purchases"), params, env, headers, None, False,json_keys) @staticmethod def estimate(params, env=None, headers=None): - return request.send('post', request.uri_path("purchases","estimate"), params, env, headers) + json_keys = { + "exemption_details": 1, + } + return request.send('post', request.uri_path("purchases","estimate"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/quote.py b/chargebee/models/quote.py index d1116dc..73ab5ef 100644 --- a/chargebee/models/quote.py +++ b/chargebee/models/quote.py @@ -5,25 +5,25 @@ class Quote(Model): class LineItem(Model): - fields = ["id", "subscription_id", "date_from", "date_to", "unit_amount", "quantity", "amount", "pricing_model", "is_taxed", "tax_amount", "tax_rate", "unit_amount_in_decimal", "quantity_in_decimal", "amount_in_decimal", "discount_amount", "item_level_discount_amount", "usage_percentage", "reference_line_item_id", "description", "entity_description", "entity_type", "tax_exempt_reason", "entity_id", "customer_id"] + fields = ["id", "subscription_id", "date_from", "date_to", "unit_amount", "quantity", "amount", "pricing_model", "is_taxed", "tax_amount", "tax_rate", "unit_amount_in_decimal", "quantity_in_decimal", "amount_in_decimal", "discount_amount", "item_level_discount_amount", "metered", "is_percentage_pricing", "reference_line_item_id", "description", "entity_description", "entity_type", "tax_exempt_reason", "entity_id", "customer_id"] pass - class Discount(Model): - fields = ["amount", "description", "entity_type", "discount_type", "entity_id", "coupon_set_code"] + class LineItemTier(Model): + fields = ["line_item_id", "starting_unit", "ending_unit", "quantity_used", "unit_amount", "starting_unit_in_decimal", "ending_unit_in_decimal", "quantity_used_in_decimal", "unit_amount_in_decimal", "pricing_type", "package_size"] pass class LineItemDiscount(Model): fields = ["line_item_id", "discount_type", "coupon_id", "entity_id", "discount_amount"] pass - class Tax(Model): - fields = ["name", "amount", "description"] - pass class LineItemTax(Model): fields = ["line_item_id", "tax_name", "tax_rate", "date_to", "date_from", "prorated_taxable_amount", "is_partial_tax_applied", "is_non_compliance_tax", "taxable_amount", "tax_amount", "tax_juris_type", "tax_juris_name", "tax_juris_code", "tax_amount_in_local_currency", "local_currency_code"] pass - class LineItemTier(Model): - fields = ["line_item_id", "starting_unit", "ending_unit", "quantity_used", "unit_amount", "starting_unit_in_decimal", "ending_unit_in_decimal", "quantity_used_in_decimal", "unit_amount_in_decimal"] + class Discount(Model): + fields = ["amount", "description", "line_item_id", "entity_type", "discount_type", "entity_id", "coupon_set_code"] + pass + class Tax(Model): + fields = ["name", "amount", "description"] pass class ShippingAddress(Model): - fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status", "index"] + fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status"] pass class BillingAddress(Model): fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status"] @@ -32,88 +32,128 @@ class BillingAddress(Model): fields = ["id", "name", "po_number", "customer_id", "subscription_id", "invoice_id", "status", \ "operation_type", "vat_number", "price_type", "valid_till", "date", "total_payable", "charge_on_acceptance", \ "sub_total", "total", "credits_applied", "amount_paid", "amount_due", "version", "resource_version", \ - "updated_at", "vat_number_prefix", "line_items", "discounts", "line_item_discounts", "taxes", \ - "line_item_taxes", "line_item_tiers", "tax_category", "currency_code", "notes", "shipping_address", \ - "billing_address", "contract_term_start", "contract_term_end", "contract_term_termination_fee", \ - "business_entity_id", "deleted"] + "updated_at", "vat_number_prefix", "line_items", "line_item_tiers", "line_item_discounts", "line_item_taxes", \ + "discounts", "taxes", "tax_category", "currency_code", "notes", "shipping_address", "billing_address", \ + "contract_term_start", "contract_term_end", "contract_term_termination_fee", "business_entity_id", \ + "deleted", "total_contract_value", "total_discount"] @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("quotes",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("quotes",id), None, env, headers, None, False,json_keys) @staticmethod def create_sub_for_customer_quote(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"create_subscription_quote"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"create_subscription_quote"), params, env, headers, None, False,json_keys) @staticmethod def edit_create_sub_for_customer_quote(id, params, env=None, headers=None): - return request.send('post', request.uri_path("quotes",id,"edit_create_subscription_quote"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes",id,"edit_create_subscription_quote"), params, env, headers, None, False,json_keys) @staticmethod def update_subscription_quote(params, env=None, headers=None): - return request.send('post', request.uri_path("quotes","update_subscription_quote"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes","update_subscription_quote"), params, env, headers, None, False,json_keys) @staticmethod def edit_update_subscription_quote(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("quotes",id,"edit_update_subscription_quote"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes",id,"edit_update_subscription_quote"), params, env, headers, None, False,json_keys) @staticmethod def create_for_onetime_charges(params, env=None, headers=None): - return request.send('post', request.uri_path("quotes","create_for_onetime_charges"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes","create_for_onetime_charges"), params, env, headers, None, False,json_keys) @staticmethod def edit_one_time_quote(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("quotes",id,"edit_one_time_quote"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes",id,"edit_one_time_quote"), params, env, headers, None, False,json_keys) @staticmethod def create_sub_items_for_customer_quote(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"create_subscription_quote_for_items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("customers",id,"create_subscription_quote_for_items"), params, env, headers, None, False,json_keys) @staticmethod def edit_create_sub_customer_quote_for_items(id, params, env=None, headers=None): - return request.send('post', request.uri_path("quotes",id,"edit_create_subscription_quote_for_items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes",id,"edit_create_subscription_quote_for_items"), params, env, headers, None, False,json_keys) @staticmethod def update_subscription_quote_for_items(params, env=None, headers=None): - return request.send('post', request.uri_path("quotes","update_subscription_quote_for_items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes","update_subscription_quote_for_items"), params, env, headers, None, False,json_keys) @staticmethod def edit_update_subscription_quote_for_items(id, params, env=None, headers=None): - return request.send('post', request.uri_path("quotes",id,"edit_update_subscription_quote_for_items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes",id,"edit_update_subscription_quote_for_items"), params, env, headers, None, False,json_keys) @staticmethod def create_for_charge_items_and_charges(params, env=None, headers=None): - return request.send('post', request.uri_path("quotes","create_for_charge_items_and_charges"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes","create_for_charge_items_and_charges"), params, env, headers, None, False,json_keys) @staticmethod def edit_for_charge_items_and_charges(id, params, env=None, headers=None): - return request.send('post', request.uri_path("quotes",id,"edit_for_charge_items_and_charges"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes",id,"edit_for_charge_items_and_charges"), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("quotes"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("quotes"), params, env, headers, None, False,json_keys) @staticmethod def quote_line_groups_for_quote(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("quotes",id,"quote_line_groups"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("quotes",id,"quote_line_groups"), params, env, headers, None, False,json_keys) @staticmethod def convert(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("quotes",id,"convert"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes",id,"convert"), params, env, headers, None, False,json_keys) @staticmethod def update_status(id, params, env=None, headers=None): - return request.send('post', request.uri_path("quotes",id,"update_status"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes",id,"update_status"), params, env, headers, None, False,json_keys) @staticmethod def extend_expiry_date(id, params, env=None, headers=None): - return request.send('post', request.uri_path("quotes",id,"extend_expiry_date"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes",id,"extend_expiry_date"), params, env, headers, None, False,json_keys) @staticmethod def delete(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("quotes",id,"delete"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes",id,"delete"), params, env, headers, None, False,json_keys) @staticmethod def pdf(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("quotes",id,"pdf"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("quotes",id,"pdf"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/quote_line_group.py b/chargebee/models/quote_line_group.py index b81f2b1..3e6b487 100644 --- a/chargebee/models/quote_line_group.py +++ b/chargebee/models/quote_line_group.py @@ -5,22 +5,22 @@ class QuoteLineGroup(Model): class LineItem(Model): - fields = ["id", "subscription_id", "date_from", "date_to", "unit_amount", "quantity", "amount", "pricing_model", "is_taxed", "tax_amount", "tax_rate", "unit_amount_in_decimal", "quantity_in_decimal", "amount_in_decimal", "discount_amount", "item_level_discount_amount", "usage_percentage", "reference_line_item_id", "description", "entity_description", "entity_type", "tax_exempt_reason", "entity_id", "customer_id"] - pass - class Discount(Model): - fields = ["amount", "description", "entity_type", "discount_type", "entity_id", "coupon_set_code"] + fields = ["id", "subscription_id", "date_from", "date_to", "unit_amount", "quantity", "amount", "pricing_model", "is_taxed", "tax_amount", "tax_rate", "unit_amount_in_decimal", "quantity_in_decimal", "amount_in_decimal", "discount_amount", "item_level_discount_amount", "metered", "is_percentage_pricing", "reference_line_item_id", "description", "entity_description", "entity_type", "tax_exempt_reason", "entity_id", "customer_id"] pass class LineItemDiscount(Model): fields = ["line_item_id", "discount_type", "coupon_id", "entity_id", "discount_amount"] pass - class Tax(Model): - fields = ["name", "amount", "description"] - pass class LineItemTax(Model): fields = ["line_item_id", "tax_name", "tax_rate", "date_to", "date_from", "prorated_taxable_amount", "is_partial_tax_applied", "is_non_compliance_tax", "taxable_amount", "tax_amount", "tax_juris_type", "tax_juris_name", "tax_juris_code", "tax_amount_in_local_currency", "local_currency_code"] pass + class Discount(Model): + fields = ["amount", "description", "line_item_id", "entity_type", "discount_type", "entity_id", "coupon_set_code"] + pass + class Tax(Model): + fields = ["name", "amount", "description"] + pass fields = ["version", "id", "sub_total", "total", "credits_applied", "amount_paid", "amount_due", \ - "charge_event", "billing_cycle_number", "line_items", "discounts", "line_item_discounts", "taxes", \ - "line_item_taxes"] + "charge_event", "billing_cycle_number", "line_items", "line_item_discounts", "line_item_taxes", \ + "discounts", "taxes"] diff --git a/chargebee/models/quoted_charge.py b/chargebee/models/quoted_charge.py index 5a32148..32b7bb0 100644 --- a/chargebee/models/quoted_charge.py +++ b/chargebee/models/quoted_charge.py @@ -14,11 +14,14 @@ class InvoiceItem(Model): fields = ["item_price_id", "quantity", "quantity_in_decimal", "unit_price", "unit_price_in_decimal", "service_period_days"] pass class ItemTier(Model): - fields = ["item_price_id", "starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal", "index"] + fields = ["item_price_id", "starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal", "pricing_type", "package_size", "index"] pass class Coupon(Model): fields = ["coupon_id"] pass + class CouponApplicabilityMapping(Model): + fields = ["coupon_id", "applicable_item_price_ids"] + pass - fields = ["charges", "addons", "invoice_items", "item_tiers", "coupons"] + fields = ["charges", "addons", "invoice_items", "item_tiers", "coupons", "coupon_applicability_mappings"] diff --git a/chargebee/models/quoted_delta_ramp.py b/chargebee/models/quoted_delta_ramp.py new file mode 100644 index 0000000..ade8b0c --- /dev/null +++ b/chargebee/models/quoted_delta_ramp.py @@ -0,0 +1,12 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class QuotedDeltaRamp(Model): + class LineItem(Model): + fields = ["item_level_discount_per_billing_cycle_in_decimal"] + pass + + fields = ["line_items"] + diff --git a/chargebee/models/quoted_ramp.py b/chargebee/models/quoted_ramp.py new file mode 100644 index 0000000..d495a37 --- /dev/null +++ b/chargebee/models/quoted_ramp.py @@ -0,0 +1,21 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class QuotedRamp(Model): + class LineItem(Model): + fields = ["item_price_id", "item_type", "quantity", "quantity_in_decimal", "metered_quantity", "unit_price", "unit_price_in_decimal", "amount", "amount_in_decimal", "billing_period", "billing_period_unit", "free_quantity", "free_quantity_in_decimal", "billing_cycles", "service_period_days", "charge_on_event", "charge_once", "charge_on_option", "start_date", "end_date", "ramp_tier_id", "discount_per_billing_cycle", "discount_per_billing_cycle_in_decimal", "item_level_discount_per_billing_cycle", "item_level_discount_per_billing_cycle_in_decimal", "amount_per_billing_cycle", "amount_per_billing_cycle_in_decimal", "net_amount_per_billing_cycle", "net_amount_per_billing_cycle_in_decimal"] + pass + class Discount(Model): + fields = ["id", "invoice_name", "type", "percentage", "amount", "duration_type", "entity_type", "entity_id", "period", "period_unit", "included_in_mrr", "apply_on", "item_price_id", "created_at", "updated_at", "start_date", "end_date"] + pass + class ItemTier(Model): + fields = ["item_price_id", "starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal", "ramp_tier_id", "pricing_type", "package_size"] + pass + class CouponApplicabilityMapping(Model): + fields = ["coupon_id", "applicable_item_price_ids"] + pass + + fields = ["id", "line_items", "discounts", "item_tiers", "coupon_applicability_mappings"] + diff --git a/chargebee/models/quoted_subscription.py b/chargebee/models/quoted_subscription.py index cd50d72..e0709be 100644 --- a/chargebee/models/quoted_subscription.py +++ b/chargebee/models/quoted_subscription.py @@ -17,7 +17,7 @@ class SubscriptionItem(Model): fields = ["item_price_id", "item_type", "quantity", "quantity_in_decimal", "metered_quantity", "last_calculated_at", "unit_price", "unit_price_in_decimal", "amount", "current_term_start", "current_term_end", "next_billing_at", "amount_in_decimal", "billing_period", "billing_period_unit", "free_quantity", "free_quantity_in_decimal", "trial_end", "billing_cycles", "service_period_days", "charge_on_event", "charge_once", "charge_on_option", "proration_type", "usage_accumulation_reset_frequency"] pass class ItemTier(Model): - fields = ["item_price_id", "starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal", "index"] + fields = ["item_price_id", "starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal", "pricing_type", "package_size", "index"] pass class QuotedContractTerm(Model): fields = ["contract_start", "contract_end", "billing_cycle", "action_at_term_end", "total_contract_value", "cancellation_cutoff_period"] diff --git a/chargebee/models/ramp.py b/chargebee/models/ramp.py index d5ef54f..d715de7 100644 --- a/chargebee/models/ramp.py +++ b/chargebee/models/ramp.py @@ -5,10 +5,10 @@ class Ramp(Model): class ItemsToAdd(Model): - fields = ["item_price_id", "item_type", "quantity", "quantity_in_decimal", "unit_price", "unit_price_in_decimal", "amount", "amount_in_decimal", "free_quantity", "free_quantity_in_decimal", "billing_cycles", "service_period_days", "metered_quantity"] + fields = ["item_price_id", "item_type", "quantity", "quantity_in_decimal", "unit_price", "unit_price_in_decimal", "amount", "amount_in_decimal", "free_quantity", "free_quantity_in_decimal", "billing_cycles", "service_period_days", "metered_quantity", "charge_once", "charge_on_option", "charge_on_event"] pass class ItemsToUpdate(Model): - fields = ["item_price_id", "item_type", "quantity", "quantity_in_decimal", "unit_price", "unit_price_in_decimal", "amount", "amount_in_decimal", "free_quantity", "free_quantity_in_decimal", "billing_cycles", "service_period_days", "metered_quantity"] + fields = ["item_price_id", "item_type", "quantity", "quantity_in_decimal", "unit_price", "unit_price_in_decimal", "amount", "amount_in_decimal", "free_quantity", "free_quantity_in_decimal", "billing_cycles", "service_period_days", "metered_quantity", "charge_once", "charge_on_option", "charge_on_event"] pass class CouponsToAdd(Model): fields = ["coupon_id", "apply_till"] @@ -17,7 +17,10 @@ class DiscountsToAdd(Model): fields = ["id", "invoice_name", "type", "percentage", "amount", "duration_type", "period", "period_unit", "included_in_mrr", "apply_on", "item_price_id", "created_at"] pass class ItemTier(Model): - fields = ["item_price_id", "starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal", "index"] + fields = ["item_price_id", "starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal", "pricing_type", "package_size", "index"] + pass + class ContractTerm(Model): + fields = ["cancellation_cutoff_period", "renewal_billing_cycles", "action_at_term_end"] pass class StatusTransitionReason(Model): fields = ["code", "message"] @@ -25,25 +28,36 @@ class StatusTransitionReason(Model): fields = ["id", "description", "subscription_id", "effective_from", "status", "created_at", \ "resource_version", "updated_at", "items_to_add", "items_to_update", "coupons_to_add", "discounts_to_add", \ - "item_tiers", "items_to_remove", "coupons_to_remove", "discounts_to_remove", "deleted", "status_transition_reason"] + "item_tiers", "items_to_remove", "coupons_to_remove", "discounts_to_remove", "contract_term", \ + "deleted", "status_transition_reason"] @staticmethod def create_for_subscription(id, params, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"create_ramp"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"create_ramp"), params, env, headers, None, False,json_keys) @staticmethod def update(id, params, env=None, headers=None): - return request.send('post', request.uri_path("ramps",id,"update"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("ramps",id,"update"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("ramps",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("ramps",id), None, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("ramps",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("ramps",id,"delete"), None, env, headers, None, False,json_keys) @staticmethod def list(params, env=None, headers=None): - return request.send_list_request('get', request.uri_path("ramps"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("ramps"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/recorded_purchase.py b/chargebee/models/recorded_purchase.py index 4e084d7..fa61eab 100644 --- a/chargebee/models/recorded_purchase.py +++ b/chargebee/models/recorded_purchase.py @@ -7,18 +7,26 @@ class RecordedPurchase(Model): class LinkedOmnichannelSubscription(Model): fields = ["omnichannel_subscription_id"] pass + class LinkedOmnichannelOneTimeOrder(Model): + fields = ["omnichannel_one_time_order_id"] + pass class ErrorDetail(Model): fields = ["error_message"] pass fields = ["id", "customer_id", "app_id", "source", "status", "omnichannel_transaction_id", \ - "created_at", "resource_version", "linked_omnichannel_subscriptions", "error_detail"] + "created_at", "resource_version", "linked_omnichannel_subscriptions", "linked_omnichannel_one_time_orders", \ + "error_detail"] @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("recorded_purchases"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("recorded_purchases"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("recorded_purchases",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("recorded_purchases",id), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/resource_migration.py b/chargebee/models/resource_migration.py index 898ee17..d7f2d9c 100644 --- a/chargebee/models/resource_migration.py +++ b/chargebee/models/resource_migration.py @@ -10,4 +10,6 @@ class ResourceMigration(Model): @staticmethod def retrieve_latest(params, env=None, headers=None): - return request.send('get', request.uri_path("resource_migrations","retrieve_latest"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("resource_migrations","retrieve_latest"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/rule.py b/chargebee/models/rule.py new file mode 100644 index 0000000..d508f7e --- /dev/null +++ b/chargebee/models/rule.py @@ -0,0 +1,16 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class Rule(Model): + + fields = ["id", "namespace", "rule_name", "rule_order", "status", "conditions", "outcome", \ + "deleted", "created_at", "modified_at"] + + + @staticmethod + def retrieve(id, env=None, headers=None): + json_keys = { + } + return request.send('get', request.uri_path("rules",id), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/site_migration_detail.py b/chargebee/models/site_migration_detail.py index c12ef57..8f3c482 100644 --- a/chargebee/models/site_migration_detail.py +++ b/chargebee/models/site_migration_detail.py @@ -11,4 +11,6 @@ class SiteMigrationDetail(Model): @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("site_migration_details"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("site_migration_details"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/subscription.py b/chargebee/models/subscription.py index b71cbf3..136a5d1 100644 --- a/chargebee/models/subscription.py +++ b/chargebee/models/subscription.py @@ -10,7 +10,7 @@ class SubscriptionItem(Model): fields = ["item_price_id", "item_type", "quantity", "quantity_in_decimal", "metered_quantity", "last_calculated_at", "unit_price", "unit_price_in_decimal", "amount", "current_term_start", "current_term_end", "next_billing_at", "amount_in_decimal", "billing_period", "billing_period_unit", "free_quantity", "free_quantity_in_decimal", "trial_end", "billing_cycles", "service_period_days", "charge_on_event", "charge_once", "charge_on_option", "proration_type", "usage_accumulation_reset_frequency"] pass class ItemTier(Model): - fields = ["item_price_id", "starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal", "index"] + fields = ["item_price_id", "starting_unit", "ending_unit", "price", "starting_unit_in_decimal", "ending_unit_in_decimal", "price_in_decimal", "pricing_type", "package_size", "index"] pass class ChargedItem(Model): fields = ["item_price_id", "last_charged_at"] @@ -28,7 +28,7 @@ class Coupon(Model): fields = ["coupon_id", "apply_till", "applied_count", "coupon_code"] pass class ShippingAddress(Model): - fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status", "index"] + fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status"] pass class ReferralInfo(Model): fields = ["referral_code", "coupon_code", "referrer_id", "external_reference_id", "reward_status", "referral_system", "account_id", "campaign_id", "external_campaign_id", "friend_offer_type", "referrer_reward_type", "notify_referral_system", "destination_url", "post_purchase_widget_enabled"] @@ -40,7 +40,7 @@ class ContractTerm(Model): fields = ["id", "status", "contract_start", "contract_end", "billing_cycle", "action_at_term_end", "total_contract_value", "total_contract_value_before_tax", "cancellation_cutoff_period", "created_at", "subscription_id", "remaining_billing_cycles"] pass class Discount(Model): - fields = ["id", "invoice_name", "type", "percentage", "amount", "currency_code", "duration_type", "period", "period_unit", "included_in_mrr", "apply_on", "item_price_id", "created_at", "apply_till", "applied_count", "coupon_id", "index"] + fields = ["id", "invoice_name", "type", "percentage", "amount", "quantity", "currency_code", "duration_type", "period", "period_unit", "included_in_mrr", "apply_on", "item_price_id", "created_at", "apply_till", "applied_count", "coupon_id", "index"] pass fields = ["id", "currency_code", "plan_id", "plan_quantity", "plan_unit_price", "setup_fee", \ @@ -80,148 +80,240 @@ def metadata(self, value): @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions"), params, env, headers) + json_keys = { + "meta_data": 0, + "exemption_details": 1, + "additional_information": 1, + "billing_address": 1, + } + return request.send('post', request.uri_path("subscriptions"), params, env, headers, None, False,json_keys) @staticmethod def create_for_customer(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"subscriptions"), params, env, headers) + json_keys = { + "meta_data": 0, + "additional_information": 1, + } + return request.send('post', request.uri_path("customers",id,"subscriptions"), params, env, headers, None, False,json_keys) @staticmethod def create_with_items(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"subscription_for_items"), params, env, headers) + json_keys = { + "meta_data": 0, + "additional_information": 1, + } + return request.send('post', request.uri_path("customers",id,"subscription_for_items"), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("subscriptions"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("subscriptions"), params, env, headers, None, False,json_keys) @staticmethod def subscriptions_for_customer(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("customers",id,"subscriptions"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("customers",id,"subscriptions"), params, env, headers, None, False,json_keys) @staticmethod def contract_terms_for_subscription(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("subscriptions",id,"contract_terms"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("subscriptions",id,"contract_terms"), params, env, headers, None, False,json_keys) @staticmethod def list_discounts(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("subscriptions",id,"discounts"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("subscriptions",id,"discounts"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("subscriptions",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("subscriptions",id), None, env, headers, None, False,json_keys) @staticmethod def retrieve_with_scheduled_changes(id, env=None, headers=None): - return request.send('get', request.uri_path("subscriptions",id,"retrieve_with_scheduled_changes"), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("subscriptions",id,"retrieve_with_scheduled_changes"), None, env, headers, None, False,json_keys) @staticmethod def remove_scheduled_changes(id, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"remove_scheduled_changes"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"remove_scheduled_changes"), None, env, headers, None, False,json_keys) @staticmethod def remove_scheduled_cancellation(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"remove_scheduled_cancellation"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"remove_scheduled_cancellation"), params, env, headers, None, False,json_keys) @staticmethod def remove_coupons(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"remove_coupons"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"remove_coupons"), params, env, headers, None, False,json_keys) @staticmethod def update(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id), params, env, headers) + json_keys = { + "meta_data": 0, + "additional_information": 1, + } + return request.send('post', request.uri_path("subscriptions",id), params, env, headers, None, False,json_keys) @staticmethod def update_for_items(id, params, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"update_for_items"), params, env, headers) + json_keys = { + "meta_data": 0, + "additional_information": 1, + } + return request.send('post', request.uri_path("subscriptions",id,"update_for_items"), params, env, headers, None, False,json_keys) @staticmethod def change_term_end(id, params, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"change_term_end"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"change_term_end"), params, env, headers, None, False,json_keys) @staticmethod def reactivate(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"reactivate"), params, env, headers) + json_keys = { + "additional_information": 1, + } + return request.send('post', request.uri_path("subscriptions",id,"reactivate"), params, env, headers, None, False,json_keys) @staticmethod def add_charge_at_term_end(id, params, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"add_charge_at_term_end"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"add_charge_at_term_end"), params, env, headers, None, False,json_keys) @staticmethod def charge_addon_at_term_end(id, params, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"charge_addon_at_term_end"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"charge_addon_at_term_end"), params, env, headers, None, False,json_keys) @staticmethod def charge_future_renewals(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"charge_future_renewals"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"charge_future_renewals"), params, env, headers, None, False,json_keys) @staticmethod def edit_advance_invoice_schedule(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"edit_advance_invoice_schedule"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"edit_advance_invoice_schedule"), params, env, headers, None, False,json_keys) @staticmethod def retrieve_advance_invoice_schedule(id, env=None, headers=None): - return request.send('get', request.uri_path("subscriptions",id,"retrieve_advance_invoice_schedule"), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("subscriptions",id,"retrieve_advance_invoice_schedule"), None, env, headers, None, False,json_keys) @staticmethod def remove_advance_invoice_schedule(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"remove_advance_invoice_schedule"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"remove_advance_invoice_schedule"), params, env, headers, None, False,json_keys) @staticmethod def regenerate_invoice(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"regenerate_invoice"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"regenerate_invoice"), params, env, headers, None, False,json_keys) @staticmethod def import_subscription(params, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions","import_subscription"), params, env, headers) + json_keys = { + "meta_data": 0, + "additional_information": 1, + } + return request.send('post', request.uri_path("subscriptions","import_subscription"), params, env, headers, None, False,json_keys) @staticmethod def import_for_customer(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"import_subscription"), params, env, headers) + json_keys = { + "meta_data": 0, + } + return request.send('post', request.uri_path("customers",id,"import_subscription"), params, env, headers, None, False,json_keys) @staticmethod def import_contract_term(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"import_contract_term"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"import_contract_term"), params, env, headers, None, False,json_keys) @staticmethod def import_unbilled_charges(id, params, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"import_unbilled_charges"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"import_unbilled_charges"), params, env, headers, None, False,json_keys) @staticmethod def import_for_items(id, params, env=None, headers=None): - return request.send('post', request.uri_path("customers",id,"import_for_items"), params, env, headers) + json_keys = { + "meta_data": 0, + } + return request.send('post', request.uri_path("customers",id,"import_for_items"), params, env, headers, None, False,json_keys) @staticmethod def override_billing_profile(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"override_billing_profile"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"override_billing_profile"), params, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"delete"), None, env, headers, None, False,json_keys) @staticmethod def pause(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"pause"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"pause"), params, env, headers, None, False,json_keys) @staticmethod def cancel(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"cancel"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"cancel"), params, env, headers, None, False,json_keys) @staticmethod def cancel_for_items(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"cancel_for_items"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"cancel_for_items"), params, env, headers, None, False,json_keys) @staticmethod def resume(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"resume"), params, env, headers) + json_keys = { + "additional_information": 1, + } + return request.send('post', request.uri_path("subscriptions",id,"resume"), params, env, headers, None, False,json_keys) @staticmethod def remove_scheduled_pause(id, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"remove_scheduled_pause"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"remove_scheduled_pause"), None, env, headers, None, False,json_keys) @staticmethod def remove_scheduled_resumption(id, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"remove_scheduled_resumption"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"remove_scheduled_resumption"), None, env, headers, None, False,json_keys) @staticmethod def move(id, params, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"move"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"move"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/subscription_entitlement.py b/chargebee/models/subscription_entitlement.py index 84255e6..49f26ef 100644 --- a/chargebee/models/subscription_entitlement.py +++ b/chargebee/models/subscription_entitlement.py @@ -15,8 +15,12 @@ class Component(Model): @staticmethod def subscription_entitlements_for_subscription(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("subscriptions",id,"subscription_entitlements"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("subscriptions",id,"subscription_entitlements"), params, env, headers, None, False,json_keys) @staticmethod def set_subscription_entitlement_availability(id, params, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"subscription_entitlements/set_availability"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"subscription_entitlements/set_availability"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/subscription_entitlements_created_detail.py b/chargebee/models/subscription_entitlements_created_detail.py new file mode 100644 index 0000000..2aaa8a5 --- /dev/null +++ b/chargebee/models/subscription_entitlements_created_detail.py @@ -0,0 +1,9 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class SubscriptionEntitlementsCreatedDetail(Model): + + fields = ["subscription_id", "has_next"] + diff --git a/chargebee/models/subscription_entitlements_updated_detail.py b/chargebee/models/subscription_entitlements_updated_detail.py new file mode 100644 index 0000000..12a0a0b --- /dev/null +++ b/chargebee/models/subscription_entitlements_updated_detail.py @@ -0,0 +1,9 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class SubscriptionEntitlementsUpdatedDetail(Model): + + fields = ["subscription_id", "has_next"] + diff --git a/chargebee/models/subscription_estimate.py b/chargebee/models/subscription_estimate.py index 878f741..96f2801 100644 --- a/chargebee/models/subscription_estimate.py +++ b/chargebee/models/subscription_estimate.py @@ -5,7 +5,7 @@ class SubscriptionEstimate(Model): class ShippingAddress(Model): - fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status", "index"] + fields = ["first_name", "last_name", "email", "company", "phone", "line1", "line2", "line3", "city", "state_code", "state", "country", "zip", "validation_status"] pass class ContractTerm(Model): fields = ["id", "status", "contract_start", "contract_end", "billing_cycle", "action_at_term_end", "total_contract_value", "total_contract_value_before_tax", "cancellation_cutoff_period", "created_at", "subscription_id", "remaining_billing_cycles"] diff --git a/chargebee/models/time_machine.py b/chargebee/models/time_machine.py index 7198bfe..9bf5642 100644 --- a/chargebee/models/time_machine.py +++ b/chargebee/models/time_machine.py @@ -36,12 +36,18 @@ def wait_for_time_travel_completion(self, env = None): @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("time_machines",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("time_machines",id), None, env, headers, None, False,json_keys) @staticmethod def start_afresh(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("time_machines",id,"start_afresh"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("time_machines",id,"start_afresh"), params, env, headers, None, False,json_keys) @staticmethod def travel_forward(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("time_machines",id,"travel_forward"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("time_machines",id,"travel_forward"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/transaction.py b/chargebee/models/transaction.py index 15278f7..073a1c9 100644 --- a/chargebee/models/transaction.py +++ b/chargebee/models/transaction.py @@ -17,7 +17,7 @@ class LinkedPayment(Model): fields = ["id", "status", "amount", "date"] pass class GatewayErrorDetail(Model): - fields = ["request_id", "error_category", "error_code", "error_message", "decline_code", "decline_message", "network_error_code", "network_error_message", "error_field", "recommendation_code", "recommendation_message", "processor_error_code", "processor_error_message", "error_cause_id"] + fields = ["request_id", "error_category", "error_code", "error_message", "decline_code", "decline_message", "network_error_code", "network_error_message", "error_field", "recommendation_code", "recommendation_message", "processor_error_code", "processor_error_message", "error_cause_id", "processor_advice_code"] pass fields = ["id", "customer_id", "subscription_id", "gateway_account_id", "payment_source_id", \ @@ -33,44 +33,66 @@ class GatewayErrorDetail(Model): @staticmethod def create_authorization(params, env=None, headers=None): - return request.send('post', request.uri_path("transactions","create_authorization"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("transactions","create_authorization"), params, env, headers, None, False,json_keys) @staticmethod def void_transaction(id, env=None, headers=None): - return request.send('post', request.uri_path("transactions",id,"void"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("transactions",id,"void"), None, env, headers, None, False,json_keys) @staticmethod def record_refund(id, params, env=None, headers=None): - return request.send('post', request.uri_path("transactions",id,"record_refund"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("transactions",id,"record_refund"), params, env, headers, None, False,json_keys) @staticmethod def reconcile(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("transactions",id,"reconcile"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("transactions",id,"reconcile"), params, env, headers, None, False,json_keys) @staticmethod def refund(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("transactions",id,"refund"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("transactions",id,"refund"), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("transactions"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("transactions"), params, env, headers, None, False,json_keys) @staticmethod def transactions_for_customer(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("customers",id,"transactions"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("customers",id,"transactions"), params, env, headers, None, False,json_keys) @staticmethod def transactions_for_subscription(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("subscriptions",id,"transactions"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("subscriptions",id,"transactions"), params, env, headers, None, False,json_keys) @staticmethod def payments_for_invoice(id, params=None, env=None, headers=None): - return request.send('get', request.uri_path("invoices",id,"payments"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("invoices",id,"payments"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("transactions",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("transactions",id), None, env, headers, None, False,json_keys) @staticmethod def delete_offline_transaction(id, params=None, env=None, headers=None): - return request.send('post', request.uri_path("transactions",id,"delete_offline_transaction"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("transactions",id,"delete_offline_transaction"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/unbilled_charge.py b/chargebee/models/unbilled_charge.py index 24b8e77..590511d 100644 --- a/chargebee/models/unbilled_charge.py +++ b/chargebee/models/unbilled_charge.py @@ -5,7 +5,7 @@ class UnbilledCharge(Model): class Tier(Model): - fields = ["starting_unit", "ending_unit", "quantity_used", "unit_amount", "starting_unit_in_decimal", "ending_unit_in_decimal", "quantity_used_in_decimal", "unit_amount_in_decimal"] + fields = ["starting_unit", "ending_unit", "quantity_used", "unit_amount", "starting_unit_in_decimal", "ending_unit_in_decimal", "quantity_used_in_decimal", "unit_amount_in_decimal", "pricing_type", "package_size"] pass fields = ["id", "customer_id", "subscription_id", "date_from", "date_to", "unit_amount", \ @@ -16,24 +16,36 @@ class Tier(Model): @staticmethod def create_unbilled_charge(params, env=None, headers=None): - return request.send('post', request.uri_path("unbilled_charges","create"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("unbilled_charges","create"), params, env, headers, None, False,json_keys) @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("unbilled_charges"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("unbilled_charges"), params, env, headers, None, False,json_keys) @staticmethod def invoice_unbilled_charges(params=None, env=None, headers=None): - return request.send('post', request.uri_path("unbilled_charges","invoice_unbilled_charges"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("unbilled_charges","invoice_unbilled_charges"), params, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("unbilled_charges",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("unbilled_charges",id,"delete"), None, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("unbilled_charges"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("unbilled_charges"), params, env, headers, None, False,json_keys) @staticmethod def invoice_now_estimate(params=None, env=None, headers=None): - return request.send('post', request.uri_path("unbilled_charges","invoice_now_estimate"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("unbilled_charges","invoice_now_estimate"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/usage.py b/chargebee/models/usage.py index 81e3533..4f15be0 100644 --- a/chargebee/models/usage.py +++ b/chargebee/models/usage.py @@ -11,20 +11,30 @@ class Usage(Model): @staticmethod def create(id, params, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"usages"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"usages"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, params, env=None, headers=None): - return request.send('get', request.uri_path("subscriptions",id,"usages"), params, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("subscriptions",id,"usages"), params, env, headers, None, False,json_keys) @staticmethod def delete(id, params, env=None, headers=None): - return request.send('post', request.uri_path("subscriptions",id,"delete_usage"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("subscriptions",id,"delete_usage"), params, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("usages"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("usages"), params, env, headers, None, False,json_keys) @staticmethod def pdf(params, env=None, headers=None): - return request.send('post', request.uri_path("usages","pdf"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("usages","pdf"), params, env, headers, None, False,json_keys) diff --git a/chargebee/models/usage_event.py b/chargebee/models/usage_event.py new file mode 100644 index 0000000..b21fc6f --- /dev/null +++ b/chargebee/models/usage_event.py @@ -0,0 +1,23 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class UsageEvent(Model): + + fields = ["subscription_id", "deduplication_id", "usage_timestamp", "properties"] + + + @staticmethod + def create(params, env=None, headers=None): + json_keys = { + "properties": 0, + } + return request.send('post', request.uri_path("usage_events"), params, env, headers, "ingest", True,json_keys) + + @staticmethod + def batch_ingest(params, env=None, headers=None): + json_keys = { + "properties": 1, + } + return request.send('post', request.uri_path("batch","usage_events"), params, env, headers, "ingest", True,json_keys) diff --git a/chargebee/models/usage_file.py b/chargebee/models/usage_file.py new file mode 100644 index 0000000..0f7e9aa --- /dev/null +++ b/chargebee/models/usage_file.py @@ -0,0 +1,27 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class UsageFile(Model): + class UploadDetail(Model): + fields = ["url", "expires_at"] + pass + + fields = ["id", "name", "mime_type", "error_code", "error_reason", "status", "total_records_count", \ + "processed_records_count", "failed_records_count", "file_size_in_bytes", "processing_started_at", \ + "processing_completed_at", "uploaded_by", "uploaded_at", "error_file_path", "error_file_url", \ + "upload_details"] + + + @staticmethod + def upload_url(params, env=None, headers=None): + json_keys = { + } + return request.send('post', request.uri_path("usage_files","upload_url"), params, env, headers, "file-ingest", False,json_keys) + + @staticmethod + def processing_status(id, env=None, headers=None): + json_keys = { + } + return request.send('get', request.uri_path("usage_files",id,"processing_status"), None, env, headers, "file-ingest", False,json_keys) diff --git a/chargebee/models/virtual_bank_account.py b/chargebee/models/virtual_bank_account.py index f1b16e4..2a7e542 100644 --- a/chargebee/models/virtual_bank_account.py +++ b/chargebee/models/virtual_bank_account.py @@ -12,24 +12,36 @@ class VirtualBankAccount(Model): @staticmethod def create_using_permanent_token(params, env=None, headers=None): - return request.send('post', request.uri_path("virtual_bank_accounts","create_using_permanent_token"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("virtual_bank_accounts","create_using_permanent_token"), params, env, headers, None, False,json_keys) @staticmethod def create(params, env=None, headers=None): - return request.send('post', request.uri_path("virtual_bank_accounts"), params, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("virtual_bank_accounts"), params, env, headers, None, False,json_keys) @staticmethod def retrieve(id, env=None, headers=None): - return request.send('get', request.uri_path("virtual_bank_accounts",id), None, env, headers) + json_keys = { + } + return request.send('get', request.uri_path("virtual_bank_accounts",id), None, env, headers, None, False,json_keys) @staticmethod def list(params=None, env=None, headers=None): - return request.send_list_request('get', request.uri_path("virtual_bank_accounts"), params, env, headers) + json_keys = { + } + return request.send_list_request('get', request.uri_path("virtual_bank_accounts"), params, env, headers, None, False,json_keys) @staticmethod def delete(id, env=None, headers=None): - return request.send('post', request.uri_path("virtual_bank_accounts",id,"delete"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("virtual_bank_accounts",id,"delete"), None, env, headers, None, False,json_keys) @staticmethod def delete_local(id, env=None, headers=None): - return request.send('post', request.uri_path("virtual_bank_accounts",id,"delete_local"), None, env, headers) + json_keys = { + } + return request.send('post', request.uri_path("virtual_bank_accounts",id,"delete_local"), None, env, headers, None, False,json_keys) diff --git a/chargebee/models/webhook_endpoint.py b/chargebee/models/webhook_endpoint.py new file mode 100644 index 0000000..8c77840 --- /dev/null +++ b/chargebee/models/webhook_endpoint.py @@ -0,0 +1,40 @@ +import json +from chargebee.model import Model +from chargebee import request +from chargebee import APIError + +class WebhookEndpoint(Model): + + fields = ["id", "name", "url", "send_card_resource", "disabled", "primary_url", "api_version", \ + "chargebee_response_schema_type", "enabled_events"] + + + @staticmethod + def create(params, env=None, headers=None): + json_keys = { + } + return request.send('post', request.uri_path("webhook_endpoints"), params, env, headers, None, False,json_keys) + + @staticmethod + def update(id, params=None, env=None, headers=None): + json_keys = { + } + return request.send('post', request.uri_path("webhook_endpoints",id), params, env, headers, None, False,json_keys) + + @staticmethod + def retrieve(id, env=None, headers=None): + json_keys = { + } + return request.send('get', request.uri_path("webhook_endpoints",id), None, env, headers, None, False,json_keys) + + @staticmethod + def delete(id, env=None, headers=None): + json_keys = { + } + return request.send('post', request.uri_path("webhook_endpoints",id,"delete"), None, env, headers, None, False,json_keys) + + @staticmethod + def list(params=None, env=None, headers=None): + json_keys = { + } + return request.send_list_request('get', request.uri_path("webhook_endpoints"), params, env, headers, None, False,json_keys) diff --git a/chargebee/request.py b/chargebee/request.py index dfa7877..8a56c07 100644 --- a/chargebee/request.py +++ b/chargebee/request.py @@ -5,7 +5,7 @@ import json -def send_list_request(method, url, params=None, env=None, headers=None): +def send_list_request(method, url, params=None, env=None, headers=None, subDomain=None, isJsonRequest=None, json_keys=None): serialized = {} if params is None: @@ -15,24 +15,27 @@ def send_list_request(method, url, params=None, env=None, headers=None): if isinstance(v, list): v = json.dumps(v) serialized.update({k: v}) - return send(method, url, serialized, env, headers) + return send(method, url, serialized, env, headers, subDomain, isJsonRequest=None, json_keys=None) -def send(method, url, params=None, env=None, headers=None): +def send(method, url, params=None, env=None, headers=None, subDomain=None, isJsonRequest=None, json_keys=None): if params is None: params = {} env = env or ChargeBee.default_env - ser_params = util.serialize(params) + if isJsonRequest: + ser_params = json.dumps(params) if params else {} + else: + ser_params = util.serialize(params, None, None, json_keys) - response, response_headers = http_request.request(method, url, env, ser_params, headers) + response, response_headers, http_status_code = http_request.request(method, url, env, ser_params, headers, subDomain, isJsonRequest) from chargebee.result import Result from chargebee.list_result import ListResult if 'list' in response: - return ListResult(response['list'], response.get('next_offset', None), response_headers) - return Result(response, response_headers) + return ListResult(response['list'], response.get('next_offset', None), response_headers, http_status_code) + return Result(response, response_headers, http_status_code) def uri_path(*paths): diff --git a/chargebee/result.py b/chargebee/result.py index 9d75a9f..fe5e24f 100644 --- a/chargebee/result.py +++ b/chargebee/result.py @@ -6,15 +6,20 @@ class Result(object): IDEMPOTENCY_REPLAYED_HEADER = 'chargebee-idempotency-replayed' - def __init__(self, response, response_header=None): + def __init__(self, response, response_header=None, http_status_code=None): self._response = response self._response_obj = {} self._response_header = response_header + self._http_status_code = http_status_code @property def get_response_headers(self): return self._response_header + @property + def get_http_status_code(self): + return self._http_status_code + @property def is_idempotency_replayed(self): value = self._response_header.get(self.IDEMPOTENCY_REPLAYED_HEADER) @@ -100,7 +105,7 @@ def promotional_credit(self): @property def invoice(self): invoice = self._get('invoice', Invoice, - {'line_items' : Invoice.LineItem, 'discounts' : Invoice.Discount, 'line_item_discounts' : Invoice.LineItemDiscount, 'taxes' : Invoice.Tax, 'line_item_taxes' : Invoice.LineItemTax, 'line_item_tiers' : Invoice.LineItemTier, 'linked_payments' : Invoice.LinkedPayment, 'dunning_attempts' : Invoice.DunningAttempt, 'applied_credits' : Invoice.AppliedCredit, 'adjustment_credit_notes' : Invoice.AdjustmentCreditNote, 'issued_credit_notes' : Invoice.IssuedCreditNote, 'linked_orders' : Invoice.LinkedOrder, 'notes' : Invoice.Note, 'shipping_address' : Invoice.ShippingAddress, 'statement_descriptor' : Invoice.StatementDescriptor, 'billing_address' : Invoice.BillingAddress, 'einvoice' : Invoice.Einvoice, 'site_details_at_creation' : Invoice.SiteDetailsAtCreation, 'tax_origin' : Invoice.TaxOrigin}); + {'line_items' : Invoice.LineItem, 'line_item_tiers' : Invoice.LineItemTier, 'line_item_discounts' : Invoice.LineItemDiscount, 'line_item_taxes' : Invoice.LineItemTax, 'line_item_credits' : Invoice.LineItemCredit, 'line_item_addresses' : Invoice.LineItemAddress, 'discounts' : Invoice.Discount, 'taxes' : Invoice.Tax, 'tax_origin' : Invoice.TaxOrigin, 'linked_payments' : Invoice.LinkedPayment, 'reference_transactions' : Invoice.ReferenceTransaction, 'dunning_attempts' : Invoice.DunningAttempt, 'applied_credits' : Invoice.AppliedCredit, 'adjustment_credit_notes' : Invoice.AdjustmentCreditNote, 'issued_credit_notes' : Invoice.IssuedCreditNote, 'linked_orders' : Invoice.LinkedOrder, 'notes' : Invoice.Note, 'shipping_address' : Invoice.ShippingAddress, 'billing_address' : Invoice.BillingAddress, 'statement_descriptor' : Invoice.StatementDescriptor, 'einvoice' : Invoice.Einvoice, 'site_details_at_creation' : Invoice.SiteDetailsAtCreation}); return invoice; @property @@ -114,6 +119,11 @@ def payment_schedule(self): {'schedule_entries' : PaymentSchedule.ScheduleEntry}); return payment_schedule; + @property + def einvoice(self): + einvoice = self._get('einvoice', Einvoice); + return einvoice; + @property def tax_withheld(self): tax_withheld = self._get('tax_withheld', TaxWithheld); @@ -122,7 +132,7 @@ def tax_withheld(self): @property def credit_note(self): credit_note = self._get('credit_note', CreditNote, - {'einvoice' : CreditNote.Einvoice, 'line_items' : CreditNote.LineItem, 'discounts' : CreditNote.Discount, 'line_item_discounts' : CreditNote.LineItemDiscount, 'line_item_tiers' : CreditNote.LineItemTier, 'taxes' : CreditNote.Tax, 'line_item_taxes' : CreditNote.LineItemTax, 'linked_refunds' : CreditNote.LinkedRefund, 'allocations' : CreditNote.Allocation, 'shipping_address' : CreditNote.ShippingAddress, 'billing_address' : CreditNote.BillingAddress, 'site_details_at_creation' : CreditNote.SiteDetailsAtCreation, 'tax_origin' : CreditNote.TaxOrigin}); + {'line_items' : CreditNote.LineItem, 'line_item_tiers' : CreditNote.LineItemTier, 'line_item_discounts' : CreditNote.LineItemDiscount, 'line_item_taxes' : CreditNote.LineItemTax, 'line_item_addresses' : CreditNote.LineItemAddress, 'discounts' : CreditNote.Discount, 'taxes' : CreditNote.Tax, 'tax_origin' : CreditNote.TaxOrigin, 'linked_refunds' : CreditNote.LinkedRefund, 'allocations' : CreditNote.Allocation, 'shipping_address' : CreditNote.ShippingAddress, 'billing_address' : CreditNote.BillingAddress, 'einvoice' : CreditNote.Einvoice, 'site_details_at_creation' : CreditNote.SiteDetailsAtCreation}); return credit_note; @property @@ -161,17 +171,17 @@ def estimate(self): estimate.init_dependant(self._response['estimate'], 'subscription_estimate', {'shipping_address' : SubscriptionEstimate.ShippingAddress, 'contract_term' : SubscriptionEstimate.ContractTerm}); estimate.init_dependant(self._response['estimate'], 'invoice_estimate', - {'line_items' : InvoiceEstimate.LineItem, 'discounts' : InvoiceEstimate.Discount, 'taxes' : InvoiceEstimate.Tax, 'line_item_taxes' : InvoiceEstimate.LineItemTax, 'line_item_tiers' : InvoiceEstimate.LineItemTier, 'line_item_discounts' : InvoiceEstimate.LineItemDiscount}); + {'line_items' : InvoiceEstimate.LineItem, 'line_item_tiers' : InvoiceEstimate.LineItemTier, 'line_item_discounts' : InvoiceEstimate.LineItemDiscount, 'line_item_taxes' : InvoiceEstimate.LineItemTax, 'line_item_credits' : InvoiceEstimate.LineItemCredit, 'line_item_addresses' : InvoiceEstimate.LineItemAddress, 'discounts' : InvoiceEstimate.Discount, 'taxes' : InvoiceEstimate.Tax}); estimate.init_dependant(self._response['estimate'], 'next_invoice_estimate', - {'line_items' : InvoiceEstimate.LineItem, 'discounts' : InvoiceEstimate.Discount, 'taxes' : InvoiceEstimate.Tax, 'line_item_taxes' : InvoiceEstimate.LineItemTax, 'line_item_tiers' : InvoiceEstimate.LineItemTier, 'line_item_discounts' : InvoiceEstimate.LineItemDiscount}); + {'line_items' : InvoiceEstimate.LineItem, 'line_item_tiers' : InvoiceEstimate.LineItemTier, 'line_item_discounts' : InvoiceEstimate.LineItemDiscount, 'line_item_taxes' : InvoiceEstimate.LineItemTax, 'line_item_credits' : InvoiceEstimate.LineItemCredit, 'line_item_addresses' : InvoiceEstimate.LineItemAddress, 'discounts' : InvoiceEstimate.Discount, 'taxes' : InvoiceEstimate.Tax}); estimate.init_dependant_list(self._response['estimate'], 'subscription_estimates', {'shipping_address' : SubscriptionEstimate.ShippingAddress, 'contract_term' : SubscriptionEstimate.ContractTerm}); estimate.init_dependant_list(self._response['estimate'], 'invoice_estimates', - {'line_items' : InvoiceEstimate.LineItem, 'discounts' : InvoiceEstimate.Discount, 'taxes' : InvoiceEstimate.Tax, 'line_item_taxes' : InvoiceEstimate.LineItemTax, 'line_item_tiers' : InvoiceEstimate.LineItemTier, 'line_item_discounts' : InvoiceEstimate.LineItemDiscount}); + {'line_items' : InvoiceEstimate.LineItem, 'line_item_tiers' : InvoiceEstimate.LineItemTier, 'line_item_discounts' : InvoiceEstimate.LineItemDiscount, 'line_item_taxes' : InvoiceEstimate.LineItemTax, 'line_item_credits' : InvoiceEstimate.LineItemCredit, 'line_item_addresses' : InvoiceEstimate.LineItemAddress, 'discounts' : InvoiceEstimate.Discount, 'taxes' : InvoiceEstimate.Tax}); estimate.init_dependant_list(self._response['estimate'], 'payment_schedule_estimates', {'schedule_entries' : PaymentScheduleEstimate.ScheduleEntry}); estimate.init_dependant_list(self._response['estimate'], 'credit_note_estimates', - {'line_items' : CreditNoteEstimate.LineItem, 'discounts' : CreditNoteEstimate.Discount, 'taxes' : CreditNoteEstimate.Tax, 'line_item_taxes' : CreditNoteEstimate.LineItemTax, 'line_item_discounts' : CreditNoteEstimate.LineItemDiscount, 'line_item_tiers' : CreditNoteEstimate.LineItemTier}); + {'line_items' : CreditNoteEstimate.LineItem, 'line_item_tiers' : CreditNoteEstimate.LineItemTier, 'line_item_discounts' : CreditNoteEstimate.LineItemDiscount, 'line_item_taxes' : CreditNoteEstimate.LineItemTax, 'discounts' : CreditNoteEstimate.Discount, 'taxes' : CreditNoteEstimate.Tax}); estimate.init_dependant_list(self._response['estimate'], 'unbilled_charge_estimates', {'tiers' : UnbilledCharge.Tier}); return estimate; @@ -179,7 +189,7 @@ def estimate(self): @property def quote(self): quote = self._get('quote', Quote, - {'line_items' : Quote.LineItem, 'discounts' : Quote.Discount, 'line_item_discounts' : Quote.LineItemDiscount, 'taxes' : Quote.Tax, 'line_item_taxes' : Quote.LineItemTax, 'line_item_tiers' : Quote.LineItemTier, 'shipping_address' : Quote.ShippingAddress, 'billing_address' : Quote.BillingAddress}); + {'line_items' : Quote.LineItem, 'line_item_tiers' : Quote.LineItemTier, 'line_item_discounts' : Quote.LineItemDiscount, 'line_item_taxes' : Quote.LineItemTax, 'discounts' : Quote.Discount, 'taxes' : Quote.Tax, 'shipping_address' : Quote.ShippingAddress, 'billing_address' : Quote.BillingAddress}); return quote; @property @@ -191,13 +201,31 @@ def quoted_subscription(self): @property def quoted_charge(self): quoted_charge = self._get('quoted_charge', QuotedCharge, - {'charges' : QuotedCharge.Charge, 'addons' : QuotedCharge.Addon, 'invoice_items' : QuotedCharge.InvoiceItem, 'item_tiers' : QuotedCharge.ItemTier, 'coupons' : QuotedCharge.Coupon}); + {'charges' : QuotedCharge.Charge, 'addons' : QuotedCharge.Addon, 'invoice_items' : QuotedCharge.InvoiceItem, 'item_tiers' : QuotedCharge.ItemTier, 'coupons' : QuotedCharge.Coupon, 'coupon_applicability_mappings' : QuotedCharge.CouponApplicabilityMapping}); return quoted_charge; + @property + def quoted_ramp(self): + quoted_ramp = self._get('quoted_ramp', QuotedRamp, + {'line_items' : QuotedRamp.LineItem, 'discounts' : QuotedRamp.Discount, 'item_tiers' : QuotedRamp.ItemTier, 'coupon_applicability_mappings' : QuotedRamp.CouponApplicabilityMapping}); + return quoted_ramp; + + @property + def quoted_delta_ramp(self): + quoted_delta_ramp = self._get('quoted_delta_ramp', QuotedDeltaRamp, + {'line_items' : QuotedDeltaRamp.LineItem}); + return quoted_delta_ramp; + + @property + def billing_configuration(self): + billing_configuration = self._get('billing_configuration', BillingConfiguration, + {'billing_dates' : BillingConfiguration.BillingDate}); + return billing_configuration; + @property def quote_line_group(self): quote_line_group = self._get('quote_line_group', QuoteLineGroup, - {'line_items' : QuoteLineGroup.LineItem, 'discounts' : QuoteLineGroup.Discount, 'line_item_discounts' : QuoteLineGroup.LineItemDiscount, 'taxes' : QuoteLineGroup.Tax, 'line_item_taxes' : QuoteLineGroup.LineItemTax}); + {'line_items' : QuoteLineGroup.LineItem, 'line_item_discounts' : QuoteLineGroup.LineItemDiscount, 'line_item_taxes' : QuoteLineGroup.LineItemTax, 'discounts' : QuoteLineGroup.Discount, 'taxes' : QuoteLineGroup.Tax}); return quote_line_group; @property @@ -284,7 +312,7 @@ def export(self): @property def payment_intent(self): payment_intent = self._get('payment_intent', PaymentIntent, - {'payment_attempt' : PaymentIntent.PaymentAttempt}); + {'payment_attempt' : PaymentIntent.PaymentAttempt, 'payment_attempts' : PaymentIntent.PaymentAttempt}); return payment_intent; @property @@ -425,7 +453,7 @@ def currency(self): @property def ramp(self): ramp = self._get('ramp', Ramp, - {'items_to_add' : Ramp.ItemsToAdd, 'items_to_update' : Ramp.ItemsToUpdate, 'coupons_to_add' : Ramp.CouponsToAdd, 'discounts_to_add' : Ramp.DiscountsToAdd, 'item_tiers' : Ramp.ItemTier, 'status_transition_reason' : Ramp.StatusTransitionReason}); + {'items_to_add' : Ramp.ItemsToAdd, 'items_to_update' : Ramp.ItemsToUpdate, 'coupons_to_add' : Ramp.CouponsToAdd, 'discounts_to_add' : Ramp.DiscountsToAdd, 'item_tiers' : Ramp.ItemTier, 'contract_term' : Ramp.ContractTerm, 'status_transition_reason' : Ramp.StatusTransitionReason}); return ramp; @property @@ -442,27 +470,113 @@ def pricing_page_session(self): @property def omnichannel_subscription(self): omnichannel_subscription = self._get('omnichannel_subscription', OmnichannelSubscription, {}, - {'omnichannel_subscription_items' : OmnichannelSubscriptionItem}); + {'omnichannel_subscription_items' : OmnichannelSubscriptionItem, 'initial_purchase_transaction' : OmnichannelTransaction}); + omnichannel_subscription.init_dependant(self._response['omnichannel_subscription'], 'initial_purchase_transaction', + {'linked_omnichannel_subscriptions' : OmnichannelTransaction.LinkedOmnichannelSubscription, 'linked_omnichannel_one_time_orders' : OmnichannelTransaction.LinkedOmnichannelOneTimeOrder}); omnichannel_subscription.init_dependant_list(self._response['omnichannel_subscription'], 'omnichannel_subscription_items', - {}); + {'upcoming_renewal' : OmnichannelSubscriptionItem.UpcomingRenewal, 'linked_item' : OmnichannelSubscriptionItem.LinkedItem}); return omnichannel_subscription; @property def omnichannel_transaction(self): - omnichannel_transaction = self._get('omnichannel_transaction', OmnichannelTransaction); + omnichannel_transaction = self._get('omnichannel_transaction', OmnichannelTransaction, + {'linked_omnichannel_subscriptions' : OmnichannelTransaction.LinkedOmnichannelSubscription, 'linked_omnichannel_one_time_orders' : OmnichannelTransaction.LinkedOmnichannelOneTimeOrder}); return omnichannel_transaction; @property def omnichannel_subscription_item(self): - omnichannel_subscription_item = self._get('omnichannel_subscription_item', OmnichannelSubscriptionItem); + omnichannel_subscription_item = self._get('omnichannel_subscription_item', OmnichannelSubscriptionItem, {}, + {'omnichannel_subscription_item_offers' : OmnichannelSubscriptionItemOffer}); + omnichannel_subscription_item.init_dependant_list(self._response['omnichannel_subscription_item'], 'omnichannel_subscription_item_offers', + {}); return omnichannel_subscription_item; @property def recorded_purchase(self): recorded_purchase = self._get('recorded_purchase', RecordedPurchase, - {'linked_omnichannel_subscriptions' : RecordedPurchase.LinkedOmnichannelSubscription, 'error_detail' : RecordedPurchase.ErrorDetail}); + {'linked_omnichannel_subscriptions' : RecordedPurchase.LinkedOmnichannelSubscription, 'linked_omnichannel_one_time_orders' : RecordedPurchase.LinkedOmnichannelOneTimeOrder, 'error_detail' : RecordedPurchase.ErrorDetail}); return recorded_purchase; + @property + def omnichannel_one_time_order(self): + omnichannel_one_time_order = self._get('omnichannel_one_time_order', OmnichannelOneTimeOrder, {}, + {'omnichannel_one_time_order_items' : OmnichannelOneTimeOrderItem, 'purchase_transaction' : OmnichannelTransaction}); + omnichannel_one_time_order.init_dependant(self._response['omnichannel_one_time_order'], 'purchase_transaction', + {'linked_omnichannel_subscriptions' : OmnichannelTransaction.LinkedOmnichannelSubscription, 'linked_omnichannel_one_time_orders' : OmnichannelTransaction.LinkedOmnichannelOneTimeOrder}); + omnichannel_one_time_order.init_dependant_list(self._response['omnichannel_one_time_order'], 'omnichannel_one_time_order_items', + {}); + return omnichannel_one_time_order; + + @property + def omnichannel_one_time_order_item(self): + omnichannel_one_time_order_item = self._get('omnichannel_one_time_order_item', OmnichannelOneTimeOrderItem); + return omnichannel_one_time_order_item; + + @property + def rule(self): + rule = self._get('rule', Rule); + return rule; + + @property + def usage_event(self): + usage_event = self._get('usage_event', UsageEvent); + return usage_event; + + @property + def omnichannel_subscription_item_scheduled_change(self): + omnichannel_subscription_item_scheduled_change = self._get('omnichannel_subscription_item_scheduled_change', OmnichannelSubscriptionItemScheduledChange, + {'current_state' : OmnichannelSubscriptionItemScheduledChange.CurrentState, 'scheduled_state' : OmnichannelSubscriptionItemScheduledChange.ScheduledState}); + return omnichannel_subscription_item_scheduled_change; + + @property + def usage_file(self): + usage_file = self._get('usage_file', UsageFile, + {'upload_detail' : UsageFile.UploadDetail}); + return usage_file; + + @property + def personalized_offer(self): + personalized_offer = self._get('personalized_offer', PersonalizedOffer, + {'content' : PersonalizedOffer.Content, 'options' : PersonalizedOffer.Option}); + return personalized_offer; + + @property + def brand(self): + brand = self._get('brand', Brand); + return brand; + + @property + def offer_fulfillment(self): + offer_fulfillment = self._get('offer_fulfillment', OfferFulfillment, + {'error' : OfferFulfillment.Error}); + return offer_fulfillment; + + @property + def offer_event(self): + offer_event = self._get('offer_event', OfferEvent); + return offer_event; + + @property + def webhook_endpoint(self): + webhook_endpoint = self._get('webhook_endpoint', WebhookEndpoint); + return webhook_endpoint; + + @property + def impacted_customer(self): + impacted_customer = self._get('impacted_customer', ImpactedCustomer, + {'download' : ImpactedCustomer.Download}); + return impacted_customer; + + @property + def subscription_entitlements_updated_detail(self): + subscription_entitlements_updated_detail = self._get('subscription_entitlements_updated_detail', SubscriptionEntitlementsUpdatedDetail); + return subscription_entitlements_updated_detail; + + @property + def subscription_entitlements_created_detail(self): + subscription_entitlements_created_detail = self._get('subscription_entitlements_created_detail', SubscriptionEntitlementsCreatedDetail); + return subscription_entitlements_created_detail; + @property def advance_invoice_schedules(self): advance_invoice_schedules = self._get_list('advance_invoice_schedules', AdvanceInvoiceSchedule, @@ -478,15 +592,9 @@ def hierarchies(self): @property def invoices(self): invoices = self._get_list('invoices', Invoice, - {'line_items' : Invoice.LineItem, 'discounts' : Invoice.Discount, 'line_item_discounts' : Invoice.LineItemDiscount, 'taxes' : Invoice.Tax, 'line_item_taxes' : Invoice.LineItemTax, 'line_item_tiers' : Invoice.LineItemTier, 'linked_payments' : Invoice.LinkedPayment, 'dunning_attempts' : Invoice.DunningAttempt, 'applied_credits' : Invoice.AppliedCredit, 'adjustment_credit_notes' : Invoice.AdjustmentCreditNote, 'issued_credit_notes' : Invoice.IssuedCreditNote, 'linked_orders' : Invoice.LinkedOrder, 'notes' : Invoice.Note, 'shipping_address' : Invoice.ShippingAddress, 'statement_descriptor' : Invoice.StatementDescriptor, 'billing_address' : Invoice.BillingAddress, 'einvoice' : Invoice.Einvoice, 'site_details_at_creation' : Invoice.SiteDetailsAtCreation, 'tax_origin' : Invoice.TaxOrigin}); + {'line_items' : Invoice.LineItem, 'line_item_tiers' : Invoice.LineItemTier, 'line_item_discounts' : Invoice.LineItemDiscount, 'line_item_taxes' : Invoice.LineItemTax, 'line_item_credits' : Invoice.LineItemCredit, 'line_item_addresses' : Invoice.LineItemAddress, 'discounts' : Invoice.Discount, 'taxes' : Invoice.Tax, 'tax_origin' : Invoice.TaxOrigin, 'linked_payments' : Invoice.LinkedPayment, 'reference_transactions' : Invoice.ReferenceTransaction, 'dunning_attempts' : Invoice.DunningAttempt, 'applied_credits' : Invoice.AppliedCredit, 'adjustment_credit_notes' : Invoice.AdjustmentCreditNote, 'issued_credit_notes' : Invoice.IssuedCreditNote, 'linked_orders' : Invoice.LinkedOrder, 'notes' : Invoice.Note, 'shipping_address' : Invoice.ShippingAddress, 'billing_address' : Invoice.BillingAddress, 'statement_descriptor' : Invoice.StatementDescriptor, 'einvoice' : Invoice.Einvoice, 'site_details_at_creation' : Invoice.SiteDetailsAtCreation}); return invoices; - @property - def differential_prices(self): - differential_prices = self._get_list('differential_prices', DifferentialPrice, - {'tiers' : DifferentialPrice.Tier, 'parent_periods' : DifferentialPrice.ParentPeriod}); - return differential_prices; - @property def payment_schedules(self): payment_schedules = self._get_list('payment_schedules', PaymentSchedule, @@ -496,7 +604,7 @@ def payment_schedules(self): @property def credit_notes(self): credit_notes = self._get_list('credit_notes', CreditNote, - {'einvoice' : CreditNote.Einvoice, 'line_items' : CreditNote.LineItem, 'discounts' : CreditNote.Discount, 'line_item_discounts' : CreditNote.LineItemDiscount, 'line_item_tiers' : CreditNote.LineItemTier, 'taxes' : CreditNote.Tax, 'line_item_taxes' : CreditNote.LineItemTax, 'linked_refunds' : CreditNote.LinkedRefund, 'allocations' : CreditNote.Allocation, 'shipping_address' : CreditNote.ShippingAddress, 'billing_address' : CreditNote.BillingAddress, 'site_details_at_creation' : CreditNote.SiteDetailsAtCreation, 'tax_origin' : CreditNote.TaxOrigin}); + {'line_items' : CreditNote.LineItem, 'line_item_tiers' : CreditNote.LineItemTier, 'line_item_discounts' : CreditNote.LineItemDiscount, 'line_item_taxes' : CreditNote.LineItemTax, 'line_item_addresses' : CreditNote.LineItemAddress, 'discounts' : CreditNote.Discount, 'taxes' : CreditNote.Tax, 'tax_origin' : CreditNote.TaxOrigin, 'linked_refunds' : CreditNote.LinkedRefund, 'allocations' : CreditNote.Allocation, 'shipping_address' : CreditNote.ShippingAddress, 'billing_address' : CreditNote.BillingAddress, 'einvoice' : CreditNote.Einvoice, 'site_details_at_creation' : CreditNote.SiteDetailsAtCreation}); return credit_notes; @property @@ -523,6 +631,12 @@ def in_app_subscriptions(self): {}); return in_app_subscriptions; + @property + def personalized_offers(self): + personalized_offers = self._get_list('personalized_offers', PersonalizedOffer, + {'content' : PersonalizedOffer.Content, 'options' : PersonalizedOffer.Option}); + return personalized_offers; + def _get_list(self, type, cls, sub_types={}, dependant_types={}, dependant_sub_types={}): if not type in self._response: diff --git a/chargebee/ssl/ca-certs.crt b/chargebee/ssl/ca-certs.crt index 2a40e3a..8e34b20 100644 --- a/chargebee/ssl/ca-certs.crt +++ b/chargebee/ssl/ca-certs.crt @@ -3383,3 +3383,53 @@ A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y 7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh 1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 -----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEyDCCA7CgAwIBAgIQDPW9BitWAvR6uFAsI8zwZjANBgkqhkiG9w0BAQsFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH +MjAeFw0yMTAzMzAwMDAwMDBaFw0zMTAzMjkyMzU5NTlaMFkxCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxMzAxBgNVBAMTKkRpZ2lDZXJ0IEdsb2Jh +bCBHMiBUTFMgUlNBIFNIQTI1NiAyMDIwIENBMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAMz3EGJPprtjb+2QUlbFbSd7ehJWivH0+dbn4Y+9lavyYEEV +cNsSAPonCrVXOFt9slGTcZUOakGUWzUb+nv6u8W+JDD+Vu/E832X4xT1FE3LpxDy +FuqrIvAxIhFhaZAmunjZlx/jfWardUSVc8is/+9dCopZQ+GssjoP80j812s3wWPc +3kbW20X+fSP9kOhRBx5Ro1/tSUZUfyyIxfQTnJcVPAPooTncaQwywa8WV0yUR0J8 +osicfebUTVSvQpmowQTCd5zWSOTOEeAqgJnwQ3DPP3Zr0UxJqyRewg2C/Uaoq2yT +zGJSQnWS+Jr6Xl6ysGHlHx+5fwmY6D36g39HaaECAwEAAaOCAYIwggF+MBIGA1Ud +EwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHSFgMBmx9833s+9KTeqAx2+7c0XMB8G +A1UdIwQYMBaAFE4iVCAYlebjbuYP+vq5Eu0GF485MA4GA1UdDwEB/wQEAwIBhjAd +BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwdgYIKwYBBQUHAQEEajBoMCQG +CCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQAYIKwYBBQUHMAKG +NGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RH +Mi5jcnQwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQuY29t +L0RpZ2lDZXJ0R2xvYmFsUm9vdEcyLmNybDA9BgNVHSAENjA0MAsGCWCGSAGG/WwC +ATAHBgVngQwBATAIBgZngQwBAgEwCAYGZ4EMAQICMAgGBmeBDAECAzANBgkqhkiG +9w0BAQsFAAOCAQEAkPFwyyiXaZd8dP3A+iZ7U6utzWX9upwGnIrXWkOH7U1MVl+t +wcW1BSAuWdH/SvWgKtiwla3JLko716f2b4gp/DA/JIS7w7d7kwcsr4drdjPtAFVS +slme5LnQ89/nD/7d+MS5EHKBCQRfz5eeLjJ1js+aWNJXMX43AYGyZm0pGrFmCW3R +bpD0ufovARTFXFZkAdl9h6g4U5+LXUZtXMYnhIHUfoyMo5tS58aI7Dd8KvvwVVo4 +chDYABPPTHPbqjc1qCmBaZx2vN4Ye5DUys/vZwP9BFohFrH/6j/f3IL16/RZkiMN +JCqVJUzKoZHm1Lesh3Sz8W2jmdv51b2EQJ8HmA== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH +MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI +2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx +1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ +q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz +tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ +vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV +5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY +1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4 +NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG +Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91 +8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe +pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/chargebee/util.py b/chargebee/util.py index d7d7c38..544e530 100644 --- a/chargebee/util.py +++ b/chargebee/util.py @@ -1,19 +1,24 @@ from chargebee import compat from collections import OrderedDict -def serialize(value, prefix=None, idx=None): +def serialize(value, prefix=None, idx=None, json_keys = None, level = 0): + if level is None: + level = 0 + + if json_keys is None: + json_keys = {} + serialized = OrderedDict() - if isinstance(value, dict): for k, v in list(value.items()): - # these fields are encoded as a JSON string instead of URL-encoded. - if k in ('meta_data', 'metaData', 'checkout_info', 'metadata') and isinstance(v, dict): - serialized.update({k: v}) - elif k in ('exemption_details', 'item_family_ids', 'item_price_periods', 'currencies') and isinstance(v, list): - serialized.update({k: v}) + should_json_encode = k in json_keys and json_keys[k] == level + if should_json_encode: + key = f"{prefix or ''}{f'[{k}]' if prefix else k}{f'[{idx}]' if idx is not None else ''}" + serialized.update({key : v}) elif isinstance(v, (dict, list, tuple)): - serialized.update(serialize(v, k)) + temp_prefix = f"{prefix}[{k}]" if prefix is not None else k + serialized.update(serialize(v, temp_prefix, None, json_keys, level+1)) else: key = ''.join([ prefix or '', @@ -24,7 +29,7 @@ def serialize(value, prefix=None, idx=None): elif isinstance(value, (list, tuple)): for i, v in enumerate(value): - serialized.update(serialize(v, prefix, i)) + serialized.update(serialize(v, prefix, i, json_keys, level)) else: if prefix is not None and idx is not None: diff --git a/chargebee/version.py b/chargebee/version.py index 6b39864..86dfcc2 100644 --- a/chargebee/version.py +++ b/chargebee/version.py @@ -1 +1 @@ -VERSION = '2.48.0' +VERSION = '2.60.1'