From 1a582484e63482120d66b261889b4f992953b9c3 Mon Sep 17 00:00:00 2001
From: maciej-nedza <76946708+maciej-nedza@users.noreply.github.com>
Date: Thu, 17 Oct 2024 16:28:12 +0200
Subject: [PATCH] [DE-1013] Release 5.2.0 (#52)
- Added `tax_exempt_reason` and `default_auto_renewal_profile_id` to `Customer`
- Added `received_on` to `InvoicePayment` and `CreateInvoicePayment`
- Added `product_price_point_id` and `product_price_point_handle` to `UpdateSubscription`
- Improved some properties descriptions
---
README.md | 80 +-
.../controllers/api_exports_controller.py | 3 +-
.../controllers/base_controller.py | 2 +-
.../controllers/billing_portal_controller.py | 6 +-
.../controllers/components_controller.py | 9 +-
.../controllers/coupons_controller.py | 688 +++++++++---------
.../controllers/custom_fields_controller.py | 3 +-
.../controllers/customers_controller.py | 3 +-
...vents_based_billing_segments_controller.py | 9 +-
.../controllers/events_controller.py | 7 +-
.../controllers/insights_controller.py | 3 +-
.../controllers/invoices_controller.py | 19 +-
.../payment_profiles_controller.py | 35 +-
.../product_families_controller.py | 3 +-
.../controllers/products_controller.py | 6 +-
.../proforma_invoices_controller.py | 6 +-
.../sales_commissions_controller.py | 15 +-
.../controllers/sites_controller.py | 4 +-
.../subscription_components_controller.py | 18 +-
...iption_group_invoice_account_controller.py | 3 +-
.../subscription_group_status_controller.py | 3 +-
.../subscription_products_controller.py | 26 +-
.../subscription_status_controller.py | 11 +-
.../controllers/subscriptions_controller.py | 64 +-
advancedbilling/models/account_balance.py | 3 +-
advancedbilling/models/ach_agreement.py | 6 +-
.../models/agreement_acceptance.py | 3 +-
advancedbilling/models/allocation.py | 3 +-
advancedbilling/models/allocation_preview.py | 3 +-
.../models/apply_credit_note_event_data.py | 3 +-
.../models/apply_debit_note_event_data.py | 3 +-
.../models/bank_account_attributes.py | 3 +-
.../models/bank_account_payment_profile.py | 3 +-
advancedbilling/models/base_string_error.py | 3 +-
.../models/bulk_update_segments_item.py | 3 +-
advancedbilling/models/component.py | 3 +-
.../models/component_price_points_response.py | 3 +-
.../models/create_debit_note_event.py | 3 +-
advancedbilling/models/create_invoice_item.py | 3 +-
.../models/create_invoice_payment.py | 19 +-
.../models/create_payment_profile.py | 6 +-
advancedbilling/models/create_segment.py | 3 +-
advancedbilling/models/create_subscription.py | 3 +-
.../models/credit_card_payment_profile.py | 3 +-
advancedbilling/models/credit_note.py | 6 +-
advancedbilling/models/customer.py | 23 +-
advancedbilling/models/customer_attributes.py | 18 +-
advancedbilling/models/debit_note.py | 3 +-
.../models/failed_payment_event_data.py | 3 +-
advancedbilling/models/invoice.py | 12 +-
advancedbilling/models/invoice_issued.py | 3 +-
advancedbilling/models/invoice_payment.py | 26 +-
.../models/item_price_point_changed.py | 6 +-
.../list_components_price_points_response.py | 3 +-
advancedbilling/models/list_coupons_filter.py | 3 +-
.../models/list_proforma_invoices_response.py | 3 +-
.../prepaid_subscription_balance_changed.py | 3 +-
advancedbilling/models/product.py | 3 +-
advancedbilling/models/product_price_point.py | 3 +-
advancedbilling/models/proforma_invoice.py | 6 +-
.../models/reactivate_subscription_request.py | 3 +-
advancedbilling/models/renewal_preview.py | 3 +-
advancedbilling/models/sale_rep.py | 3 +-
advancedbilling/models/site.py | 3 +-
advancedbilling/models/subscription.py | 6 +-
advancedbilling/models/subscription_filter.py | 3 +-
.../models/subscription_group_bank_account.py | 3 +-
.../subscription_group_prepayment_request.py | 3 +-
.../subscription_migration_preview_options.py | 3 +-
...subscription_migration_preview_response.py | 3 +-
.../models/subscription_mrr_response.py | 3 +-
.../models/subscription_product_migration.py | 3 +-
.../subscription_product_migration_request.py | 3 +-
advancedbilling/models/subscription_state.py | 102 ++-
advancedbilling/models/update_metafield.py | 3 +-
advancedbilling/models/update_segment.py | 3 +-
advancedbilling/models/update_subscription.py | 20 +-
.../models/void_invoice_event_data.py | 3 +-
doc/models/create-invoice-payment.md | 5 +-
doc/models/customer-attributes.md | 1 +
doc/models/customer.md | 4 +-
doc/models/invoice-payment.md | 2 +
doc/models/update-subscription.md | 2 +
pyproject.toml | 2 +-
84 files changed, 700 insertions(+), 721 deletions(-)
diff --git a/README.md b/README.md
index d806a2c8..a102ad98 100644
--- a/README.md
+++ b/README.md
@@ -31,15 +31,15 @@ The package is compatible with Python versions `3 >=3.7, <= 3.11`.
Install the package from PyPi using the following pip command:
```python
-pip install maxio-advanced-billing-sdk==5.1.0
+pip install maxio-advanced-billing-sdk==5.2.0
```
You can also view the package at:
-https://pypi.python.org/pypi/maxio-advanced-billing-sdk/5.1.0
+https://pypi.python.org/pypi/maxio-advanced-billing-sdk/5.2.0
## Initialize the API Client
-**_Note:_** Documentation for the client can be found [here.](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/client.md)
+**_Note:_** Documentation for the client can be found [here.](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/client.md)
The following parameters are configurable for the API Client:
@@ -56,7 +56,7 @@ The following parameters are configurable for the API Client:
| `backoff_factor` | `float` | A backoff factor to apply between attempts after the second try.
**Default: 2** |
| `retry_statuses` | `Array of int` | The http statuses on which retry is to be done.
**Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524]** |
| `retry_methods` | `Array of string` | The http methods on which retry is to be done.
**Default: ['GET', 'PUT']** |
-| `basic_auth_credentials` | [`BasicAuthCredentials`](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/auth/basic-authentication.md) | The credential object for Basic Authentication |
+| `basic_auth_credentials` | [`BasicAuthCredentials`](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/auth/basic-authentication.md) | The credential object for Basic Authentication |
The API client can be initialized as follows:
@@ -87,46 +87,46 @@ The SDK can be configured to use a different environment for making API calls. A
This API uses the following authentication schemes.
-* [`BasicAuth (Basic Authentication)`](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/auth/basic-authentication.md)
+* [`BasicAuth (Basic Authentication)`](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/auth/basic-authentication.md)
## List of APIs
-* [API Exports](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/api-exports.md)
-* [Advance Invoice](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/advance-invoice.md)
-* [Billing Portal](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/billing-portal.md)
-* [Component Price Points](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/component-price-points.md)
-* [Custom Fields](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/custom-fields.md)
-* [Events-Based Billing Segments](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/events-based-billing-segments.md)
-* [Payment Profiles](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/payment-profiles.md)
-* [Product Families](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/product-families.md)
-* [Product Price Points](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/product-price-points.md)
-* [Proforma Invoices](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/proforma-invoices.md)
-* [Reason Codes](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/reason-codes.md)
-* [Referral Codes](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/referral-codes.md)
-* [Sales Commissions](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/sales-commissions.md)
-* [Subscription Components](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/subscription-components.md)
-* [Subscription Groups](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/subscription-groups.md)
-* [Subscription Group Invoice Account](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/subscription-group-invoice-account.md)
-* [Subscription Group Status](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/subscription-group-status.md)
-* [Subscription Invoice Account](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/subscription-invoice-account.md)
-* [Subscription Notes](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/subscription-notes.md)
-* [Subscription Products](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/subscription-products.md)
-* [Subscription Status](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/subscription-status.md)
-* [Coupons](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/coupons.md)
-* [Components](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/components.md)
-* [Customers](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/customers.md)
-* [Events](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/events.md)
-* [Insights](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/insights.md)
-* [Invoices](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/invoices.md)
-* [Offers](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/offers.md)
-* [Products](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/products.md)
-* [Sites](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/sites.md)
-* [Subscriptions](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/subscriptions.md)
-* [Webhooks](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/controllers/webhooks.md)
+* [API Exports](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/api-exports.md)
+* [Advance Invoice](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/advance-invoice.md)
+* [Billing Portal](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/billing-portal.md)
+* [Component Price Points](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/component-price-points.md)
+* [Custom Fields](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/custom-fields.md)
+* [Events-Based Billing Segments](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/events-based-billing-segments.md)
+* [Payment Profiles](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/payment-profiles.md)
+* [Product Families](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/product-families.md)
+* [Product Price Points](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/product-price-points.md)
+* [Proforma Invoices](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/proforma-invoices.md)
+* [Reason Codes](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/reason-codes.md)
+* [Referral Codes](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/referral-codes.md)
+* [Sales Commissions](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/sales-commissions.md)
+* [Subscription Components](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/subscription-components.md)
+* [Subscription Groups](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/subscription-groups.md)
+* [Subscription Group Invoice Account](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/subscription-group-invoice-account.md)
+* [Subscription Group Status](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/subscription-group-status.md)
+* [Subscription Invoice Account](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/subscription-invoice-account.md)
+* [Subscription Notes](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/subscription-notes.md)
+* [Subscription Products](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/subscription-products.md)
+* [Subscription Status](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/subscription-status.md)
+* [Coupons](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/coupons.md)
+* [Components](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/components.md)
+* [Customers](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/customers.md)
+* [Events](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/events.md)
+* [Insights](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/insights.md)
+* [Invoices](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/invoices.md)
+* [Offers](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/offers.md)
+* [Products](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/products.md)
+* [Sites](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/sites.md)
+* [Subscriptions](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/subscriptions.md)
+* [Webhooks](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/controllers/webhooks.md)
## Classes Documentation
-* [Utility Classes](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/utility-classes.md)
-* [HttpResponse](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/http-response.md)
-* [HttpRequest](https://www.github.com/maxio-com/ab-python-sdk/tree/5.1.0/doc/http-request.md)
+* [Utility Classes](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/utility-classes.md)
+* [HttpResponse](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/http-response.md)
+* [HttpRequest](https://www.github.com/maxio-com/ab-python-sdk/tree/5.2.0/doc/http-request.md)
diff --git a/advancedbilling/controllers/api_exports_controller.py b/advancedbilling/controllers/api_exports_controller.py
index bb8d619e..7e5da23e 100644
--- a/advancedbilling/controllers/api_exports_controller.py
+++ b/advancedbilling/controllers/api_exports_controller.py
@@ -308,8 +308,7 @@ def export_invoices(self):
def export_subscriptions(self):
"""Does a POST request to /api_exports/subscriptions.json.
- This API creates a subscriptions export and returns a batchjob
- object.
+ This API creates a subscriptions export and returns a batchjob object.
Returns:
BatchJobResponse: Response from the API. Created
diff --git a/advancedbilling/controllers/base_controller.py b/advancedbilling/controllers/base_controller.py
index f9d0e058..9c1004cb 100644
--- a/advancedbilling/controllers/base_controller.py
+++ b/advancedbilling/controllers/base_controller.py
@@ -30,7 +30,7 @@ class BaseController(object):
@staticmethod
def user_agent():
- return 'AB SDK Python:5.1.0 on OS {os-info}'
+ return 'AB SDK Python:5.2.0 on OS {os-info}'
@staticmethod
def user_agent_parameters():
diff --git a/advancedbilling/controllers/billing_portal_controller.py b/advancedbilling/controllers/billing_portal_controller.py
index fcf06917..56004c5a 100644
--- a/advancedbilling/controllers/billing_portal_controller.py
+++ b/advancedbilling/controllers/billing_portal_controller.py
@@ -67,8 +67,7 @@ def enable_billing_portal_for_customer(self,
customer_id (int): The Chargify id of the customer
auto_invite (AutoInvite, optional): When set to 1, an Invitation
email will be sent to the Customer. When set to 0, or not
- sent, an email will not be sent. Use in query:
- `auto_invite=1`.
+ sent, an email will not be sent. Use in query: `auto_invite=1`.
Returns:
CustomerResponse: Response from the API. OK
@@ -215,8 +214,7 @@ def revoke_billing_portal_access(self,
You can revoke a customer's Billing Portal invitation.
If you attempt to revoke an invitation when the Billing Portal is
- already disabled for a Customer, you will receive a 422 error
- response.
+ already disabled for a Customer, you will receive a 422 error response.
## Limitations
This endpoint will only return a JSON response.
diff --git a/advancedbilling/controllers/components_controller.py b/advancedbilling/controllers/components_controller.py
index 775d6305..3eb65467 100644
--- a/advancedbilling/controllers/components_controller.py
+++ b/advancedbilling/controllers/components_controller.py
@@ -101,8 +101,7 @@ def create_quantity_based_component(self,
**quantity_based_component** under the specified product family.
Quantity Based component can then be added and “allocated” for a
subscription.
- When defining Quantity Based component, You can choose one of 2
- types:
+ When defining Quantity Based component, You can choose one of 2 types:
#### Recurring
Recurring quantity-based components are used to bill for the number of
some unit (think monthly software user licenses or the number of pairs
@@ -180,8 +179,7 @@ def create_on_off_component(self,
Args:
product_family_id (str): Either the product family's id or its
handle prefixed with `handle:`
- body (CreateOnOffComponent, optional): TODO: type description
- here.
+ body (CreateOnOffComponent, optional): TODO: type description here.
Returns:
ComponentResponse: Response from the API. Created
@@ -228,8 +226,7 @@ def create_prepaid_usage_component(self,
This request will create a component definition of kind
**prepaid_usage_component** under the specified product family.
- Prepaid component can then be added and “allocated” for a
- subscription.
+ Prepaid component can then be added and “allocated” for a subscription.
Prepaid components allow customers to pre-purchase units that can be
used up over time on their subscription. In a sense, they are the
mirror image of metered components; while metered components charge at
diff --git a/advancedbilling/controllers/coupons_controller.py b/advancedbilling/controllers/coupons_controller.py
index 96df13b7..c6ff4dbe 100644
--- a/advancedbilling/controllers/coupons_controller.py
+++ b/advancedbilling/controllers/coupons_controller.py
@@ -37,41 +37,40 @@ def create_coupon(self,
body=None):
"""Does a POST request to /product_families/{product_family_id}/coupons.json.
- ## Coupons Documentation
- Coupons can be administered in the Advanced Billing application or
- created via API. Please view our section on [creating
- coupons](https://maxio.zendesk.com/hc/en-us/articles/24261212433165-Cre
- ating-Editing-Deleting-Coupons) for more information.
- Additionally, for documentation on how to apply a coupon to a
- subscription within the Advanced Billing UI, please see our
- documentation
- [here](https://maxio.zendesk.com/hc/en-us/articles/24261259337101-Coupo
- ns-and-Subscriptions).
- ## Create Coupon
- This request will create a coupon, based on the provided information.
- When creating a coupon, you must specify a product family using the
- `product_family_id`. If no `product_family_id` is passed, the first
- product family available is used. You will also need to formulate your
- URL to cite the Product Family ID in your request.
- You can restrict a coupon to only apply to specific products /
- components by optionally passing in hashes of `restricted_products`
- and/or `restricted_components` in the format:
- `{ "": boolean_value }`
+ ## Coupons Documentation
+ Coupons can be administered in the Advanced Billing application or
+ created via API. Please view our section on [creating
+ coupons](https://maxio.zendesk.com/hc/en-us/articles/24261212433165-Cre
+ ating-Editing-Deleting-Coupons) for more information.
+ Additionally, for documentation on how to apply a coupon to a
+ subscription within the Advanced Billing UI, please see our
+ documentation
+ [here](https://maxio.zendesk.com/hc/en-us/articles/24261259337101-Coupo
+ ns-and-Subscriptions).
+ ## Create Coupon
+ This request will create a coupon, based on the provided information.
+ When creating a coupon, you must specify a product family using the
+ `product_family_id`. If no `product_family_id` is passed, the first
+ product family available is used. You will also need to formulate your
+ URL to cite the Product Family ID in your request.
+ You can restrict a coupon to only apply to specific products /
+ components by optionally passing in hashes of `restricted_products`
+ and/or `restricted_components` in the format:
+ `{ "": boolean_value }`
Args:
- product_family_id (int): The Advanced Billing id of the product
- family to which the coupon belongs
- body (CreateOrUpdateCoupon, optional): TODO: type description
- here.
+ product_family_id (int): The Advanced Billing id of the product
+ family to which the coupon belongs
+ body (CreateOrUpdateCoupon, optional): TODO: type description here.
Returns:
- CouponResponse: Response from the API. Created
+ CouponResponse: Response from the API. Created
Raises:
- APIException: When an error occurs while fetching the data from
- the remote API. This exception includes the HTTP Response
- code, an error message, and the HTTP body that was received in
- the request.
+ APIException: When an error occurs while fetching the data from
+ the remote API. This exception includes the HTTP Response
+ code, an error message, and the HTTP body that was received in
+ the request.
"""
@@ -105,50 +104,50 @@ def list_coupons_for_product_family(self,
options=dict()):
"""Does a GET request to /product_families/{product_family_id}/coupons.json.
- List coupons for a specific Product Family in a Site.
- If the coupon is set to `use_site_exchange_rate: true`, it will return
- pricing based on the current exchange rate. If the flag is set to
- false, it will return all of the defined prices for each currency.
+ List coupons for a specific Product Family in a Site.
+ If the coupon is set to `use_site_exchange_rate: true`, it will return
+ pricing based on the current exchange rate. If the flag is set to
+ false, it will return all of the defined prices for each currency.
Args:
- options (dict, optional): Key-value pairs for any of the
- parameters to this API Endpoint. All parameters to the
- endpoint are supplied through the dictionary with their names
- being the key and their desired values being the value. A list
+ options (dict, optional): Key-value pairs for any of the
+ parameters to this API Endpoint. All parameters to the
+ endpoint are supplied through the dictionary with their names
+ being the key and their desired values being the value. A list
of parameters that can be used are::
-
- product_family_id -- int -- The Advanced Billing id of the
- product family to which the coupon belongs
- page -- int -- Result records are organized in pages. By
- default, the first page of results is displayed. The
- page parameter specifies a page number of results to
- fetch. You can start navigating through the pages to
- consume the results. You do this by passing in a page
- parameter. Retrieve the next page by adding ?page=2 to
- the query string. If there are no results to return,
- then an empty result set will be returned. Use in
- query `page=1`.
- per_page -- int -- This parameter indicates how many
- records to fetch in each request. Default value is 30.
- The maximum allowed values is 200; any per_page value
- over 200 will be changed to 200. Use in query
- `per_page=200`.
- filter -- ListCouponsFilter -- Filter to use for List
- Coupons operations
- currency_prices -- bool -- When fetching coupons, if you
- have defined multiple currencies at the site level,
- you can optionally pass the `?currency_prices=true`
- query param to include an array of currency price data
- in the response. Use in query `currency_prices=true`.
+
+ product_family_id -- int -- The Advanced Billing id of the
+ product family to which the coupon belongs
+ page -- int -- Result records are organized in pages. By
+ default, the first page of results is displayed. The
+ page parameter specifies a page number of results to
+ fetch. You can start navigating through the pages to
+ consume the results. You do this by passing in a page
+ parameter. Retrieve the next page by adding ?page=2 to
+ the query string. If there are no results to return,
+ then an empty result set will be returned. Use in
+ query `page=1`.
+ per_page -- int -- This parameter indicates how many
+ records to fetch in each request. Default value is 30.
+ The maximum allowed values is 200; any per_page value
+ over 200 will be changed to 200. Use in query
+ `per_page=200`.
+ filter -- ListCouponsFilter -- Filter to use for List
+ Coupons operations
+ currency_prices -- bool -- When fetching coupons, if you
+ have defined multiple currencies at the site level,
+ you can optionally pass the `?currency_prices=true`
+ query param to include an array of currency price data
+ in the response. Use in query `currency_prices=true`.
Returns:
- List[CouponResponse]: Response from the API. OK
+ List[CouponResponse]: Response from the API. OK
Raises:
- APIException: When an error occurs while fetching the data from
- the remote API. This exception includes the HTTP Response
- code, an error message, and the HTTP body that was received in
- the request.
+ APIException: When an error occurs while fetching the data from
+ the remote API. This exception includes the HTTP Response
+ code, an error message, and the HTTP body that was received in
+ the request.
"""
@@ -189,27 +188,27 @@ def find_coupon(self,
code=None):
"""Does a GET request to /coupons/find.json.
- You can search for a coupon via the API with the find method. By
- passing a code parameter, the find will attempt to locate a coupon
- that matches that code. If no coupon is found, a 404 is returned.
- If you have more than one product family and if the coupon you are
- trying to find does not belong to the default product family in your
- site, then you will need to specify (either in the url or as a query
- string param) the product family id.
+ You can search for a coupon via the API with the find method. By
+ passing a code parameter, the find will attempt to locate a coupon
+ that matches that code. If no coupon is found, a 404 is returned.
+ If you have more than one product family and if the coupon you are
+ trying to find does not belong to the default product family in your
+ site, then you will need to specify (either in the url or as a query
+ string param) the product family id.
Args:
- product_family_id (int, optional): The Advanced Billing id of the
- product family to which the coupon belongs
- code (str, optional): The code of the coupon
+ product_family_id (int, optional): The Advanced Billing id of the
+ product family to which the coupon belongs
+ code (str, optional): The code of the coupon
Returns:
- CouponResponse: Response from the API. OK
+ CouponResponse: Response from the API. OK
Raises:
- APIException: When an error occurs while fetching the data from
- the remote API. This exception includes the HTTP Response
- code, an error message, and the HTTP body that was received in
- the request.
+ APIException: When an error occurs while fetching the data from
+ the remote API. This exception includes the HTTP Response
+ code, an error message, and the HTTP body that was received in
+ the request.
"""
@@ -238,31 +237,31 @@ def read_coupon(self,
coupon_id):
"""Does a GET request to /product_families/{product_family_id}/coupons/{coupon_id}.json.
- You can retrieve the Coupon via the API with the Show method. You must
- identify the Coupon in this call by the ID parameter that Advanced
- Billing assigns.
- If instead you would like to find a Coupon using a Coupon code, see
- the Coupon Find method.
- When fetching a coupon, if you have defined multiple currencies at the
- site level, you can optionally pass the `?currency_prices=true` query
- param to include an array of currency price data in the response.
- If the coupon is set to `use_site_exchange_rate: true`, it will return
- pricing based on the current exchange rate. If the flag is set to
- false, it will return all of the defined prices for each currency.
+ You can retrieve the Coupon via the API with the Show method. You must
+ identify the Coupon in this call by the ID parameter that Advanced
+ Billing assigns.
+ If instead you would like to find a Coupon using a Coupon code, see
+ the Coupon Find method.
+ When fetching a coupon, if you have defined multiple currencies at the
+ site level, you can optionally pass the `?currency_prices=true` query
+ param to include an array of currency price data in the response.
+ If the coupon is set to `use_site_exchange_rate: true`, it will return
+ pricing based on the current exchange rate. If the flag is set to
+ false, it will return all of the defined prices for each currency.
Args:
- product_family_id (int): The Advanced Billing id of the product
- family to which the coupon belongs
- coupon_id (int): The Advanced Billing id of the coupon
+ product_family_id (int): The Advanced Billing id of the product
+ family to which the coupon belongs
+ coupon_id (int): The Advanced Billing id of the coupon
Returns:
- CouponResponse: Response from the API. OK
+ CouponResponse: Response from the API. OK
Raises:
- APIException: When an error occurs while fetching the data from
- the remote API. This exception includes the HTTP Response
- code, an error message, and the HTTP body that was received in
- the request.
+ APIException: When an error occurs while fetching the data from
+ the remote API. This exception includes the HTTP Response
+ code, an error message, and the HTTP body that was received in
+ the request.
"""
@@ -296,29 +295,28 @@ def update_coupon(self,
body=None):
"""Does a PUT request to /product_families/{product_family_id}/coupons/{coupon_id}.json.
- ## Update Coupon
- You can update a Coupon via the API with a PUT request to the resource
- endpoint.
- You can restrict a coupon to only apply to specific products /
- components by optionally passing in hashes of `restricted_products`
- and/or `restricted_components` in the format:
- `{ "": boolean_value }`
+ ## Update Coupon
+ You can update a Coupon via the API with a PUT request to the resource
+ endpoint.
+ You can restrict a coupon to only apply to specific products /
+ components by optionally passing in hashes of `restricted_products`
+ and/or `restricted_components` in the format:
+ `{ "": boolean_value }`
Args:
- product_family_id (int): The Advanced Billing id of the product
- family to which the coupon belongs
- coupon_id (int): The Advanced Billing id of the coupon
- body (CreateOrUpdateCoupon, optional): TODO: type description
- here.
+ product_family_id (int): The Advanced Billing id of the product
+ family to which the coupon belongs
+ coupon_id (int): The Advanced Billing id of the coupon
+ body (CreateOrUpdateCoupon, optional): TODO: type description here.
Returns:
- CouponResponse: Response from the API. OK
+ CouponResponse: Response from the API. OK
Raises:
- APIException: When an error occurs while fetching the data from
- the remote API. This exception includes the HTTP Response
- code, an error message, and the HTTP body that was received in
- the request.
+ APIException: When an error occurs while fetching the data from
+ the remote API. This exception includes the HTTP Response
+ code, an error message, and the HTTP body that was received in
+ the request.
"""
@@ -357,25 +355,25 @@ def archive_coupon(self,
coupon_id):
"""Does a DELETE request to /product_families/{product_family_id}/coupons/{coupon_id}.json.
- You can archive a Coupon via the API with the archive method.
- Archiving makes that Coupon unavailable for future use, but allows it
- to remain attached and functional on existing Subscriptions that are
- using it.
- The `archived_at` date and time will be assigned.
+ You can archive a Coupon via the API with the archive method.
+ Archiving makes that Coupon unavailable for future use, but allows it
+ to remain attached and functional on existing Subscriptions that are
+ using it.
+ The `archived_at` date and time will be assigned.
Args:
- product_family_id (int): The Advanced Billing id of the product
- family to which the coupon belongs
- coupon_id (int): The Advanced Billing id of the coupon
+ product_family_id (int): The Advanced Billing id of the product
+ family to which the coupon belongs
+ coupon_id (int): The Advanced Billing id of the coupon
Returns:
- CouponResponse: Response from the API. OK
+ CouponResponse: Response from the API. OK
Raises:
- APIException: When an error occurs while fetching the data from
- the remote API. This exception includes the HTTP Response
- code, an error message, and the HTTP body that was received in
- the request.
+ APIException: When an error occurs while fetching the data from
+ the remote API. This exception includes the HTTP Response
+ code, an error message, and the HTTP body that was received in
+ the request.
"""
@@ -407,48 +405,48 @@ def list_coupons(self,
options=dict()):
"""Does a GET request to /coupons.json.
- You can retrieve a list of coupons.
- If the coupon is set to `use_site_exchange_rate: true`, it will return
- pricing based on the current exchange rate. If the flag is set to
- false, it will return all of the defined prices for each currency.
+ You can retrieve a list of coupons.
+ If the coupon is set to `use_site_exchange_rate: true`, it will return
+ pricing based on the current exchange rate. If the flag is set to
+ false, it will return all of the defined prices for each currency.
Args:
- options (dict, optional): Key-value pairs for any of the
- parameters to this API Endpoint. All parameters to the
- endpoint are supplied through the dictionary with their names
- being the key and their desired values being the value. A list
+ options (dict, optional): Key-value pairs for any of the
+ parameters to this API Endpoint. All parameters to the
+ endpoint are supplied through the dictionary with their names
+ being the key and their desired values being the value. A list
of parameters that can be used are::
-
- page -- int -- Result records are organized in pages. By
- default, the first page of results is displayed. The
- page parameter specifies a page number of results to
- fetch. You can start navigating through the pages to
- consume the results. You do this by passing in a page
- parameter. Retrieve the next page by adding ?page=2 to
- the query string. If there are no results to return,
- then an empty result set will be returned. Use in
- query `page=1`.
- per_page -- int -- This parameter indicates how many
- records to fetch in each request. Default value is 30.
- The maximum allowed values is 200; any per_page value
- over 200 will be changed to 200. Use in query
- `per_page=200`.
- filter -- ListCouponsFilter -- Filter to use for List
- Coupons operations
- currency_prices -- bool -- When fetching coupons, if you
- have defined multiple currencies at the site level,
- you can optionally pass the `?currency_prices=true`
- query param to include an array of currency price data
- in the response. Use in query `currency_prices=true`.
+
+ page -- int -- Result records are organized in pages. By
+ default, the first page of results is displayed. The
+ page parameter specifies a page number of results to
+ fetch. You can start navigating through the pages to
+ consume the results. You do this by passing in a page
+ parameter. Retrieve the next page by adding ?page=2 to
+ the query string. If there are no results to return,
+ then an empty result set will be returned. Use in
+ query `page=1`.
+ per_page -- int -- This parameter indicates how many
+ records to fetch in each request. Default value is 30.
+ The maximum allowed values is 200; any per_page value
+ over 200 will be changed to 200. Use in query
+ `per_page=200`.
+ filter -- ListCouponsFilter -- Filter to use for List
+ Coupons operations
+ currency_prices -- bool -- When fetching coupons, if you
+ have defined multiple currencies at the site level,
+ you can optionally pass the `?currency_prices=true`
+ query param to include an array of currency price data
+ in the response. Use in query `currency_prices=true`.
Returns:
- List[CouponResponse]: Response from the API. OK
+ List[CouponResponse]: Response from the API. OK
Raises:
- APIException: When an error occurs while fetching the data from
- the remote API. This exception includes the HTTP Response
- code, an error message, and the HTTP body that was received in
- the request.
+ APIException: When an error occurs while fetching the data from
+ the remote API. This exception includes the HTTP Response
+ code, an error message, and the HTTP body that was received in
+ the request.
"""
@@ -484,22 +482,22 @@ def read_coupon_usage(self,
coupon_id):
"""Does a GET request to /product_families/{product_family_id}/coupons/{coupon_id}/usage.json.
- This request will provide details about the coupon usage as an array
- of data hashes, one per product.
+ This request will provide details about the coupon usage as an array
+ of data hashes, one per product.
Args:
- product_family_id (int): The Advanced Billing id of the product
- family to which the coupon belongs
- coupon_id (int): The Advanced Billing id of the coupon
+ product_family_id (int): The Advanced Billing id of the product
+ family to which the coupon belongs
+ coupon_id (int): The Advanced Billing id of the coupon
Returns:
- List[CouponUsage]: Response from the API. OK
+ List[CouponUsage]: Response from the API. OK
Raises:
- APIException: When an error occurs while fetching the data from
- the remote API. This exception includes the HTTP Response
- code, an error message, and the HTTP body that was received in
- the request.
+ APIException: When an error occurs while fetching the data from
+ the remote API. This exception includes the HTTP Response
+ code, an error message, and the HTTP body that was received in
+ the request.
"""
@@ -532,46 +530,46 @@ def validate_coupon(self,
product_family_id=None):
"""Does a GET request to /coupons/validate.json.
- You can verify if a specific coupon code is valid using the `validate`
- method. This method is useful for validating coupon codes that are
- entered by a customer. If the coupon is found and is valid, the coupon
- will be returned with a 200 status code.
- If the coupon is invalid, the status code will be 404 and the response
- will say why it is invalid. If the coupon is valid, the status code
- will be 200 and the coupon will be returned. The following reasons for
- invalidity are supported:
- + Coupon not found
- + Coupon is invalid
- + Coupon expired
- If you have more than one product family and if the coupon you are
- validating does not belong to the first product family in your site,
- then you will need to specify the product family, either in the url or
- as a query string param. This can be done by supplying the id or the
- handle in the `handle:my-family` format.
- Eg.
- ```
- https://.chargify.com/product_families/handle:/coupons/validate.?code=
- ```
- Or:
- ```
- https://.chargify.com/coupons/validate.?code=&product_family_id=
- ```
+ You can verify if a specific coupon code is valid using the `validate`
+ method. This method is useful for validating coupon codes that are
+ entered by a customer. If the coupon is found and is valid, the coupon
+ will be returned with a 200 status code.
+ If the coupon is invalid, the status code will be 404 and the response
+ will say why it is invalid. If the coupon is valid, the status code
+ will be 200 and the coupon will be returned. The following reasons for
+ invalidity are supported:
+ + Coupon not found
+ + Coupon is invalid
+ + Coupon expired
+ If you have more than one product family and if the coupon you are
+ validating does not belong to the first product family in your site,
+ then you will need to specify the product family, either in the url or
+ as a query string param. This can be done by supplying the id or the
+ handle in the `handle:my-family` format.
+ Eg.
+ ```
+ https://.chargify.com/product_families/handle:/coupons/validate.?code=
+ ```
+ Or:
+ ```
+ https://.chargify.com/coupons/validate.?code=&product_family_id=
+ ```
Args:
- code (str): The code of the coupon
- product_family_id (int, optional): The Advanced Billing id of the
- product family to which the coupon belongs
+ code (str): The code of the coupon
+ product_family_id (int, optional): The Advanced Billing id of the
+ product family to which the coupon belongs
Returns:
- CouponResponse: Response from the API. OK
+ CouponResponse: Response from the API. OK
Raises:
- APIException: When an error occurs while fetching the data from
- the remote API. This exception includes the HTTP Response
- code, an error message, and the HTTP body that was received in
- the request.
+ APIException: When an error occurs while fetching the data from
+ the remote API. This exception includes the HTTP Response
+ code, an error message, and the HTTP body that was received in
+ the request.
"""
@@ -602,28 +600,28 @@ def create_or_update_coupon_currency_prices(self,
body=None):
"""Does a PUT request to /coupons/{coupon_id}/currency_prices.json.
- This endpoint allows you to create and/or update currency prices for
- an existing coupon. Multiple prices can be created or updated in a
- single request but each of the currencies must be defined on the site
- level already and the coupon must be an amount-based coupon, not
- percentage.
- Currency pricing for coupons must mirror the setup of the primary
- coupon pricing - if the primary coupon is percentage based, you will
- not be able to define pricing in non-primary currencies.
+ This endpoint allows you to create and/or update currency prices for
+ an existing coupon. Multiple prices can be created or updated in a
+ single request but each of the currencies must be defined on the site
+ level already and the coupon must be an amount-based coupon, not
+ percentage.
+ Currency pricing for coupons must mirror the setup of the primary
+ coupon pricing - if the primary coupon is percentage based, you will
+ not be able to define pricing in non-primary currencies.
Args:
- coupon_id (int): The Advanced Billing id of the coupon
- body (CouponCurrencyRequest, optional): TODO: type description
- here.
+ coupon_id (int): The Advanced Billing id of the coupon
+ body (CouponCurrencyRequest, optional): TODO: type description
+ here.
Returns:
- CouponCurrencyResponse: Response from the API. OK
+ CouponCurrencyResponse: Response from the API. OK
Raises:
- APIException: When an error occurs while fetching the data from
- the remote API. This exception includes the HTTP Response
- code, an error message, and the HTTP body that was received in
- the request.
+ APIException: When an error occurs while fetching the data from
+ the remote API. This exception includes the HTTP Response
+ code, an error message, and the HTTP body that was received in
+ the request.
"""
@@ -657,60 +655,59 @@ def create_coupon_subcodes(self,
body=None):
"""Does a POST request to /coupons/{coupon_id}/codes.json.
- ## Coupon Subcodes Intro
- Coupon Subcodes allow you to create a set of unique codes that allow
- you to expand the use of one coupon.
- For example:
- Master Coupon Code:
- + SPRING2020
- Coupon Subcodes:
- + SPRING90210
- + DP80302
- + SPRINGBALTIMORE
- Coupon subcodes can be administered in the Admin Interface or via the
- API.
- When creating a coupon subcode, you must specify a coupon to attach it
- to using the coupon_id. Valid coupon subcodes are all capital letters,
- contain only letters and numbers, and do not have any spaces.
- Lowercase letters will be capitalized before the subcode is created.
- ## Coupon Subcodes Documentation
- Full documentation on how to create coupon subcodes in the Advanced
- Billing UI can be located
- [here](https://maxio.zendesk.com/hc/en-us/articles/24261208729229-Coupo
- n-Codes).
- Additionally, for documentation on how to apply a coupon to a
- Subscription within the Advanced Billing UI, please see our
- documentation
- [here](https://maxio.zendesk.com/hc/en-us/articles/24261259337101-Coupo
- ns-and-Subscriptions).
- ## Create Coupon Subcode
- This request allows you to create specific subcodes underneath an
- existing coupon code.
- *Note*: If you are using any of the allowed special characters ("%",
- "@", "+", "-", "_", and "."), you must encode them for use in the
- URL.
- % to %25
- @ to %40
- + to %2B
- - to %2D
- _ to %5F
- . to %2E
- So, if the coupon subcode is `20%OFF`, the URL to delete this coupon
- subcode would be:
- `https://.chargify.com/coupons/567/codes/20%25OFF.`
-
+ ## Coupon Subcodes Intro
+ Coupon Subcodes allow you to create a set of unique codes that allow
+ you to expand the use of one coupon.
+ For example:
+ Master Coupon Code:
+ + SPRING2020
+ Coupon Subcodes:
+ + SPRING90210
+ + DP80302
+ + SPRINGBALTIMORE
+ Coupon subcodes can be administered in the Admin Interface or via the
+ API.
+ When creating a coupon subcode, you must specify a coupon to attach it
+ to using the coupon_id. Valid coupon subcodes are all capital letters,
+ contain only letters and numbers, and do not have any spaces.
+ Lowercase letters will be capitalized before the subcode is created.
+ ## Coupon Subcodes Documentation
+ Full documentation on how to create coupon subcodes in the Advanced
+ Billing UI can be located
+ [here](https://maxio.zendesk.com/hc/en-us/articles/24261208729229-Coupo
+ n-Codes).
+ Additionally, for documentation on how to apply a coupon to a
+ Subscription within the Advanced Billing UI, please see our
+ documentation
+ [here](https://maxio.zendesk.com/hc/en-us/articles/24261259337101-Coupo
+ ns-and-Subscriptions).
+ ## Create Coupon Subcode
+ This request allows you to create specific subcodes underneath an
+ existing coupon code.
+ *Note*: If you are using any of the allowed special characters ("%",
+ "@", "+", "-", "_", and "."), you must encode them for use in the URL.
+ % to %25
+ @ to %40
+ + to %2B
+ - to %2D
+ _ to %5F
+ . to %2E
+ So, if the coupon subcode is `20%OFF`, the URL to delete this coupon
+ subcode would be:
+ `https://.chargify.com/coupons/567/codes/20%25OFF.`
+
Args:
- coupon_id (int): The Advanced Billing id of the coupon
- body (CouponSubcodes, optional): TODO: type description here.
+ coupon_id (int): The Advanced Billing id of the coupon
+ body (CouponSubcodes, optional): TODO: type description here.
Returns:
- CouponSubcodesResponse: Response from the API. OK
+ CouponSubcodesResponse: Response from the API. OK
Raises:
- APIException: When an error occurs while fetching the data from
- the remote API. This exception includes the HTTP Response
- code, an error message, and the HTTP body that was received in
- the request.
+ APIException: When an error occurs while fetching the data from
+ the remote API. This exception includes the HTTP Response
+ code, an error message, and the HTTP body that was received in
+ the request.
"""
@@ -743,40 +740,40 @@ def list_coupon_subcodes(self,
options=dict()):
"""Does a GET request to /coupons/{coupon_id}/codes.json.
- This request allows you to request the subcodes that are attached to a
- coupon.
+ This request allows you to request the subcodes that are attached to a
+ coupon.
Args:
- options (dict, optional): Key-value pairs for any of the
- parameters to this API Endpoint. All parameters to the
- endpoint are supplied through the dictionary with their names
- being the key and their desired values being the value. A list
+ options (dict, optional): Key-value pairs for any of the
+ parameters to this API Endpoint. All parameters to the
+ endpoint are supplied through the dictionary with their names
+ being the key and their desired values being the value. A list
of parameters that can be used are::
-
- coupon_id -- int -- The Advanced Billing id of the coupon
- page -- int -- Result records are organized in pages. By
- default, the first page of results is displayed. The
- page parameter specifies a page number of results to
- fetch. You can start navigating through the pages to
- consume the results. You do this by passing in a page
- parameter. Retrieve the next page by adding ?page=2 to
- the query string. If there are no results to return,
- then an empty result set will be returned. Use in
- query `page=1`.
- per_page -- int -- This parameter indicates how many
- records to fetch in each request. Default value is 20.
- The maximum allowed values is 200; any per_page value
- over 200 will be changed to 200. Use in query
- `per_page=200`.
+
+ coupon_id -- int -- The Advanced Billing id of the coupon
+ page -- int -- Result records are organized in pages. By
+ default, the first page of results is displayed. The
+ page parameter specifies a page number of results to
+ fetch. You can start navigating through the pages to
+ consume the results. You do this by passing in a page
+ parameter. Retrieve the next page by adding ?page=2 to
+ the query string. If there are no results to return,
+ then an empty result set will be returned. Use in
+ query `page=1`.
+ per_page -- int -- This parameter indicates how many
+ records to fetch in each request. Default value is 20.
+ The maximum allowed values is 200; any per_page value
+ over 200 will be changed to 200. Use in query
+ `per_page=200`.
Returns:
- CouponSubcodes: Response from the API. OK
+ CouponSubcodes: Response from the API. OK
Raises:
- APIException: When an error occurs while fetching the data from
- the remote API. This exception includes the HTTP Response
- code, an error message, and the HTTP body that was received in
- the request.
+ APIException: When an error occurs while fetching the data from
+ the remote API. This exception includes the HTTP Response
+ code, an error message, and the HTTP body that was received in
+ the request.
"""
@@ -810,28 +807,28 @@ def update_coupon_subcodes(self,
body=None):
"""Does a PUT request to /coupons/{coupon_id}/codes.json.
- You can update the subcodes for the given Coupon via the API with a
- PUT request to the resource endpoint.
- Send an array of new coupon subcodes.
- **Note**: All current subcodes for that Coupon will be deleted first,
- and replaced with the list of subcodes sent to this endpoint.
- The response will contain:
- + The created subcodes,
- + Subcodes that were not created because they already exist,
- + Any subcodes not created because they are invalid.
+ You can update the subcodes for the given Coupon via the API with a
+ PUT request to the resource endpoint.
+ Send an array of new coupon subcodes.
+ **Note**: All current subcodes for that Coupon will be deleted first,
+ and replaced with the list of subcodes sent to this endpoint.
+ The response will contain:
+ + The created subcodes,
+ + Subcodes that were not created because they already exist,
+ + Any subcodes not created because they are invalid.
Args:
- coupon_id (int): The Advanced Billing id of the coupon
- body (CouponSubcodes, optional): TODO: type description here.
+ coupon_id (int): The Advanced Billing id of the coupon
+ body (CouponSubcodes, optional): TODO: type description here.
Returns:
- CouponSubcodesResponse: Response from the API. OK
+ CouponSubcodesResponse: Response from the API. OK
Raises:
- APIException: When an error occurs while fetching the data from
- the remote API. This exception includes the HTTP Response
- code, an error message, and the HTTP body that was received in
- the request.
+ APIException: When an error occurs while fetching the data from
+ the remote API. This exception includes the HTTP Response
+ code, an error message, and the HTTP body that was received in
+ the request.
"""
@@ -865,41 +862,40 @@ def delete_coupon_subcode(self,
subcode):
"""Does a DELETE request to /coupons/{coupon_id}/codes/{subcode}.json.
- ## Example
- Given a coupon with an ID of 567, and a coupon subcode of 20OFF, the
- URL to `DELETE` this coupon subcode would be:
- ```
- http://subdomain.chargify.com/coupons/567/codes/20OFF.
- ```
- Note: If you are using any of the allowed special characters (“%”,
- “@”, “+”, “-”, “_”, and “.”), you must encode them for use in the
- URL.
- | Special character | Encoding |
- |-------------------|----------|
- | % | %25 |
- | @ | %40 |
- | + | %2B |
- | – | %2D |
- | _ | %5F |
- | . | %2E |
- ## Percent Encoding Example
- Or if the coupon subcode is 20%OFF, the URL to delete this coupon
- subcode would be:
- @https://.chargify.com/coupons/567/codes/20%25OFF.
+ ## Example
+ Given a coupon with an ID of 567, and a coupon subcode of 20OFF, the
+ URL to `DELETE` this coupon subcode would be:
+ ```
+ http://subdomain.chargify.com/coupons/567/codes/20OFF.
+ ```
+ Note: If you are using any of the allowed special characters (“%”,
+ “@”, “+”, “-”, “_”, and “.”), you must encode them for use in the URL.
+ | Special character | Encoding |
+ |-------------------|----------|
+ | % | %25 |
+ | @ | %40 |
+ | + | %2B |
+ | – | %2D |
+ | _ | %5F |
+ | . | %2E |
+ ## Percent Encoding Example
+ Or if the coupon subcode is 20%OFF, the URL to delete this coupon
+ subcode would be:
+ @https://.chargify.com/coupons/567/codes/20%25OFF.
Args:
- coupon_id (int): The Advanced Billing id of the coupon to which
- the subcode belongs
- subcode (str): The subcode of the coupon
+ coupon_id (int): The Advanced Billing id of the coupon to which
+ the subcode belongs
+ subcode (str): The subcode of the coupon
Returns:
- void: Response from the API. OK
+ void: Response from the API. OK
Raises:
- APIException: When an error occurs while fetching the data from
- the remote API. This exception includes the HTTP Response
- code, an error message, and the HTTP body that was received in
- the request.
+ APIException: When an error occurs while fetching the data from
+ the remote API. This exception includes the HTTP Response
+ code, an error message, and the HTTP body that was received in
+ the request.
"""
diff --git a/advancedbilling/controllers/custom_fields_controller.py b/advancedbilling/controllers/custom_fields_controller.py
index d5635e3d..f2df1133 100644
--- a/advancedbilling/controllers/custom_fields_controller.py
+++ b/advancedbilling/controllers/custom_fields_controller.py
@@ -539,8 +539,7 @@ def delete_metadata(self,
subscription for which the metadata applies
name (str, optional): Name of field to be removed.
names (List[str], optional): Names of fields to be removed. Use in
- query:
- `names[]=field1&names[]=my-field&names[]=another-field`.
+ query: `names[]=field1&names[]=my-field&names[]=another-field`.
Returns:
void: Response from the API. OK
diff --git a/advancedbilling/controllers/customers_controller.py b/advancedbilling/controllers/customers_controller.py
index 23946cfe..e9e97439 100644
--- a/advancedbilling/controllers/customers_controller.py
+++ b/advancedbilling/controllers/customers_controller.py
@@ -354,8 +354,7 @@ def read_customer_by_reference(self,
"""Does a GET request to /customers/lookup.json.
Use this method to return the customer object if you have the unique
- **Reference ID (Your App)** value handy. It will return a single
- match.
+ **Reference ID (Your App)** value handy. It will return a single match.
Args:
reference (str): Customer reference
diff --git a/advancedbilling/controllers/events_based_billing_segments_controller.py b/advancedbilling/controllers/events_based_billing_segments_controller.py
index 5a2917b7..35b36601 100644
--- a/advancedbilling/controllers/events_based_billing_segments_controller.py
+++ b/advancedbilling/controllers/events_based_billing_segments_controller.py
@@ -47,8 +47,7 @@ def create_segment(self,
component_id (str): ID or Handle for the Component
price_point_id (str): ID or Handle for the Price Point belonging
to the Component
- body (CreateSegmentRequest, optional): TODO: type description
- here.
+ body (CreateSegmentRequest, optional): TODO: type description here.
Returns:
SegmentResponse: Response from the API. Created
@@ -187,8 +186,7 @@ def update_segment(self,
"""Does a PUT request to /components/{component_id}/price_points/{price_point_id}/segments/{id}.json.
This endpoint updates a single Segment for a Component with a
- segmented Metric. It allows you to update the pricing for the
- segment.
+ segmented Metric. It allows you to update the pricing for the segment.
You may specify component and/or price point by using either the
numeric ID or the `handle:gold` syntax.
@@ -197,8 +195,7 @@ def update_segment(self,
price_point_id (str): ID or Handle of the Price Point belonging to
the Component
id (float): The ID of the Segment
- body (UpdateSegmentRequest, optional): TODO: type description
- here.
+ body (UpdateSegmentRequest, optional): TODO: type description here.
Returns:
SegmentResponse: Response from the API. OK
diff --git a/advancedbilling/controllers/events_controller.py b/advancedbilling/controllers/events_controller.py
index c8e60ef6..514cc5dd 100644
--- a/advancedbilling/controllers/events_controller.py
+++ b/advancedbilling/controllers/events_controller.py
@@ -63,7 +63,7 @@ def list_events(self,
"id": 351,
"key": "subscription_product_change",
"message": "Product changed on Marky Mark's subscription from
- 'Basic' to 'Pro'",
+ 'Basic' to 'Pro'",
"subscription_id": 205,
"event_specific_data": {
"new_product_id": 3,
@@ -80,7 +80,7 @@ def list_events(self,
"id": 353,
"key": "subscription_state_change",
"message": "State changed on Marky Mark's subscription to Pro
- from trialing to active",
+ from trialing to active",
"subscription_id": 205,
"event_specific_data": {
"new_subscription_state": "active",
@@ -210,8 +210,7 @@ def list_subscription_events(self,
options=dict()):
"""Does a GET request to /subscriptions/{subscription_id}/events.json.
- The following request will return a list of events for a
- subscription.
+ The following request will return a list of events for a subscription.
Each event type has its own `event_specific_data` specified.
Args:
diff --git a/advancedbilling/controllers/insights_controller.py b/advancedbilling/controllers/insights_controller.py
index c510a8dc..180d497e 100644
--- a/advancedbilling/controllers/insights_controller.py
+++ b/advancedbilling/controllers/insights_controller.py
@@ -34,8 +34,7 @@ def read_site_stats(self):
"""Does a GET request to /stats.json.
The Stats API is a very basic view of some Site-level stats. This API
- call only answers with JSON responses. An XML version is not
- provided.
+ call only answers with JSON responses. An XML version is not provided.
## Stats Documentation
There currently is not a complimentary matching set of documentation
that compliments this endpoint. However, each Site's dashboard will
diff --git a/advancedbilling/controllers/invoices_controller.py b/advancedbilling/controllers/invoices_controller.py
index 7612b801..5dff3500 100644
--- a/advancedbilling/controllers/invoices_controller.py
+++ b/advancedbilling/controllers/invoices_controller.py
@@ -53,8 +53,7 @@ def refund_invoice(self,
Args:
uid (str): The unique identifier for the invoice, this does not
refer to the public facing invoice number.
- body (RefundInvoiceRequest, optional): TODO: type description
- here.
+ body (RefundInvoiceRequest, optional): TODO: type description here.
Returns:
Invoice: Response from the API. OK
@@ -546,8 +545,8 @@ def record_payment_for_multiple_invoices(self,
This API call should be used when you want to record an external
payment against multiple invoices.
In order apply a payment to multiple invoices, at minimum, specify
- the `amount` and `applications` (i.e., `invoice_uid` and `amount`)
- details.
+ the `amount` and `applications` (i.e., `invoice_uid` and `amount`)
+ details.
```
{
"payment": {
@@ -752,8 +751,7 @@ def record_payment_for_subscription(self,
Args:
subscription_id (int): The Chargify id of the subscription
- body (RecordPaymentRequest, optional): TODO: type description
- here.
+ body (RecordPaymentRequest, optional): TODO: type description here.
Returns:
RecordPaymentResponse: Response from the API. OK
@@ -1153,8 +1151,7 @@ def create_invoice(self,
Args:
subscription_id (int): The Chargify id of the subscription
- body (CreateInvoiceRequest, optional): TODO: type description
- here.
+ body (CreateInvoiceRequest, optional): TODO: type description here.
Returns:
InvoiceResponse: Response from the API. OK
@@ -1206,8 +1203,7 @@ def send_invoice(self,
Please note that if no recipient email addresses are specified in the
request, then the subscription's default email configuration will be
used. For example, if `recipient_emails` is left blank, then the
- invoice will be delivered to the subscription's customer email
- address.
+ invoice will be delivered to the subscription's customer email address.
On success, a 204 no-content response will be returned. Please note
that this does not indicate that email(s) have been delivered, but
instead indicates that emails have been successfully queued for
@@ -1380,8 +1376,7 @@ def issue_invoice(self,
Args:
uid (str): The unique identifier for the invoice, this does not
refer to the public facing invoice number.
- body (IssueInvoiceRequest, optional): TODO: type description
- here.
+ body (IssueInvoiceRequest, optional): TODO: type description here.
Returns:
Invoice: Response from the API. OK
diff --git a/advancedbilling/controllers/payment_profiles_controller.py b/advancedbilling/controllers/payment_profiles_controller.py
index 38fa242c..899983bc 100644
--- a/advancedbilling/controllers/payment_profiles_controller.py
+++ b/advancedbilling/controllers/payment_profiles_controller.py
@@ -113,8 +113,7 @@ def create_payment_profile(self,
Secure. Instead, we have provided
[Chargify.js](https://developers.chargify.com/docs/developer-docs/ZG9jO
jE0NjAzNDI0-overview) which is continuously improved and supports
- Credit Cards (along with 3D Secure), PayPal and ApplePay payment
- types.
+ Credit Cards (along with 3D Secure), PayPal and ApplePay payment types.
## GoCardless
For more information on GoCardless, please view the following
resources:
@@ -179,9 +178,8 @@ def create_payment_profile(self,
"current_vault": "gocardless",
"bank_name": "French Bank",
"bank_account_number": [Last Four Of The Existing Account Number
- or IBAN if applicable],
- "bank_routing_number": [Last Four Of The Existing Routing
- Number],
+ or IBAN if applicable],
+ "bank_routing_number": [Last Four Of The Existing Routing Number],
"payment_type": "bank_account",
"billing_address": "20 Place de la Gare",
"billing_city": "Colombes",
@@ -297,23 +295,20 @@ def create_payment_profile(self,
{
"title": "This card requires 3DSecure verification.",
"detail": "This card requires 3D secure authentication.
- Redirect the customer to the URL from the action_link
- attribute to authenticate. Attach callback_url param to
- this URL if you want to be notified about the result of 3D
- Secure authentication. Attach redirect_url param to this
- URL if you want to redirect a customer back to your page
- after 3D Secure authentication. Example:
- https://checkout-test.chargifypay.test/3d-secure/checkout/p
- ay_uerzhsxd5uhkbodx5jhvkg6yeu?one_time_token_id=93&callback
- _url=http://localhost:4000&redirect_url=https://yourpage.co
- m will do a POST request to https://localhost:4000 after
- credit card is authenticated and will redirect a customer
- to https://yourpage.com after 3DS authentication.",
+ Redirect the customer to the URL from the action_link attribute to
+ authenticate. Attach callback_url param to this URL if you want to be
+ notified about the result of 3D Secure authentication. Attach
+ redirect_url param to this URL if you want to redirect a customer back
+ to your page after 3D Secure authentication. Example:
+ https://checkout-test.chargifypay.test/3d-secure/checkout/pay_uerzhsxd5
+ uhkbodx5jhvkg6yeu?one_time_token_id=93&callback_url=http://localhost:40
+ 00&redirect_url=https://yourpage.com will do a POST request to
+ https://localhost:4000 after credit card is authenticated and will
+ redirect a customer to https://yourpage.com after 3DS authentication.",
"links": {
"action_link":
- "https://checkout-test.chargifypay.test/3d-secure/check
- out/pay_uerzhsxd5uhkbodx5jhvkg6yeu?one_time_token_id=93
- "
+ "https://checkout-test.chargifypay.test/3d-secure/checkout/pay_uerzhsxd
+ 5uhkbodx5jhvkg6yeu?one_time_token_id=93"
}
}
]
diff --git a/advancedbilling/controllers/product_families_controller.py b/advancedbilling/controllers/product_families_controller.py
index cbf4a002..f60e5c92 100644
--- a/advancedbilling/controllers/product_families_controller.py
+++ b/advancedbilling/controllers/product_families_controller.py
@@ -284,8 +284,7 @@ def read_product_family(self,
"""Does a GET request to /product_families/{id}.json.
This method allows to retrieve a Product Family via the
- `product_family_id`. The response will contain a Product Family
- object.
+ `product_family_id`. The response will contain a Product Family object.
The product family can be specified either with the id number, or with
the `handle:my-family` format.
diff --git a/advancedbilling/controllers/products_controller.py b/advancedbilling/controllers/products_controller.py
index 62c8b0b0..f243c0bb 100644
--- a/advancedbilling/controllers/products_controller.py
+++ b/advancedbilling/controllers/products_controller.py
@@ -31,8 +31,7 @@ def create_product(self,
body=None):
"""Does a POST request to /product_families/{product_family_id}/products.json.
- Use this method to create a product within your Advanced Billing
- site.
+ Use this method to create a product within your Advanced Billing site.
+ [Products
Documentation](https://maxio.zendesk.com/hc/en-us/articles/242610901176
45-Products-Overview)
@@ -268,8 +267,7 @@ def list_products(self,
options=dict()):
"""Does a GET request to /products.json.
- This method allows to retrieve a list of Products belonging to a
- Site.
+ This method allows to retrieve a list of Products belonging to a Site.
Args:
options (dict, optional): Key-value pairs for any of the
diff --git a/advancedbilling/controllers/proforma_invoices_controller.py b/advancedbilling/controllers/proforma_invoices_controller.py
index 38d405b6..a6957fe9 100644
--- a/advancedbilling/controllers/proforma_invoices_controller.py
+++ b/advancedbilling/controllers/proforma_invoices_controller.py
@@ -153,8 +153,7 @@ def read_proforma_invoice(self,
proforma_invoice_uid):
"""Does a GET request to /proforma_invoices/{proforma_invoice_uid}.json.
- Use this endpoint to read the details of an existing proforma
- invoice.
+ Use this endpoint to read the details of an existing proforma invoice.
## Restrictions
Proforma invoices are only available on Relationship Invoicing sites.
@@ -361,8 +360,7 @@ def void_proforma_invoice(self,
body=None):
"""Does a POST request to /proforma_invoices/{proforma_invoice_uid}/void.json.
- This endpoint will void a proforma invoice that has the status
- "draft".
+ This endpoint will void a proforma invoice that has the status "draft".
## Restrictions
Proforma invoices are only available on Relationship Invoicing sites.
Only proforma invoices that have the appropriate status may be
diff --git a/advancedbilling/controllers/sales_commissions_controller.py b/advancedbilling/controllers/sales_commissions_controller.py
index 66d41e76..8c6b1748 100644
--- a/advancedbilling/controllers/sales_commissions_controller.py
+++ b/advancedbilling/controllers/sales_commissions_controller.py
@@ -55,8 +55,7 @@ def list_sales_commission_settings(self,
being the key and their desired values being the value. A list
of parameters that can be used are::
- seller_id -- str -- The Chargify id of your seller
- account
+ seller_id -- str -- The Chargify id of your seller account
authorization -- str -- For authorization use user API
key. See details
[here](https://developers.chargify.com/docs/developer-d
@@ -75,8 +74,7 @@ def list_sales_commission_settings(self,
then an empty result set will be returned. Use in
query `page=1`.
per_page -- int -- This parameter indicates how many
- records to fetch in each request. Default value is
- 100.
+ records to fetch in each request. Default value is 100.
Returns:
List[SaleRepSettings]: Response from the API. OK
@@ -149,8 +147,7 @@ def list_sales_reps(self,
being the key and their desired values being the value. A list
of parameters that can be used are::
- seller_id -- str -- The Chargify id of your seller
- account
+ seller_id -- str -- The Chargify id of your seller account
authorization -- str -- For authorization use user API
key. See details
[here](https://developers.chargify.com/docs/developer-d
@@ -169,8 +166,7 @@ def list_sales_reps(self,
then an empty result set will be returned. Use in
query `page=1`.
per_page -- int -- This parameter indicates how many
- records to fetch in each request. Default value is
- 100.
+ records to fetch in each request. Default value is 100.
Returns:
List[ListSaleRepItem]: Response from the API. OK
@@ -249,8 +245,7 @@ def read_sales_rep(self,
[here](https://developers.chargify.com/docs/developer-docs/ZG9j
OjMyNzk5NTg0-2020-04-20-new-api-authentication).
live_mode (bool, optional): This parameter indicates if records
- should be fetched from live mode sites. Default value is
- true.
+ should be fetched from live mode sites. Default value is true.
page (int, optional): Result records are organized in pages. By
default, the first page of results is displayed. The page
parameter specifies a page number of results to fetch. You can
diff --git a/advancedbilling/controllers/sites_controller.py b/advancedbilling/controllers/sites_controller.py
index 62f4124d..09cc19c0 100644
--- a/advancedbilling/controllers/sites_controller.py
+++ b/advancedbilling/controllers/sites_controller.py
@@ -43,8 +43,8 @@ def read_site(self):
"whopays_default_payer": "self"
You can read more about these settings here:
[Who Pays & Customer
- Hierarchy](https://maxio.zendesk.com/hc/en-us/articles/24252185211533-
- Customer-Hierarchies-WhoPays)
+ Hierarchy](https://maxio.zendesk.com/hc/en-us/articles/24252185211533-C
+ ustomer-Hierarchies-WhoPays)
Returns:
SiteResponse: Response from the API. OK
diff --git a/advancedbilling/controllers/subscription_components_controller.py b/advancedbilling/controllers/subscription_components_controller.py
index 2e6c88f4..32d3cb9f 100644
--- a/advancedbilling/controllers/subscription_components_controller.py
+++ b/advancedbilling/controllers/subscription_components_controller.py
@@ -225,8 +225,7 @@ def bulk_update_subscription_components_price_points(self,
body=None):
"""Does a POST request to /subscriptions/{subscription_id}/price_points.json.
- Updates the price points on one or more of a subscription's
- components.
+ Updates the price points on one or more of a subscription's components.
The `price_point` key can take either a:
1. Price point id (integer)
2. Price point handle (string)
@@ -281,8 +280,7 @@ def bulk_reset_subscription_components_price_points(self,
Resets all of a subscription's components to use the current default.
**Note**: this will update the price point for all of the
- subscription's components, even ones that have not been allocated
- yet.
+ subscription's components, even ones that have not been allocated yet.
Args:
subscription_id (int): The Chargify id of the subscription
@@ -654,8 +652,7 @@ def update_prepaid_usage_allocation_expiration_date(self,
call must be made to the allocation's endpoint with a new expiration
date.
## Limitations
- A few limitations exist when changing an allocation's expiration
- date:
+ A few limitations exist when changing an allocation's expiration date:
- An expiration date can only be changed for an allocation that
belongs to a price point with expiration interval options explicitly
set.
@@ -737,8 +734,7 @@ def delete_prepaid_usage_allocation(self,
subscription_id (int): The Chargify id of the subscription
component_id (int): The Advanced Billing id of the component
allocation_id (int): The Advanced Billing id of the allocation
- body (CreditSchemeRequest, optional): TODO: type description
- here.
+ body (CreditSchemeRequest, optional): TODO: type description here.
Returns:
void: Response from the API. OK
@@ -1038,8 +1034,7 @@ def activate_event_based_component(self,
component usage at renewal.*
Args:
- subscription_id (int): The Advanced Billing id of the
- subscription
+ subscription_id (int): The Advanced Billing id of the subscription
component_id (int): The Advanced Billing id of the component
body (ActivateEventBasedComponent, optional): TODO: type
description here.
@@ -1088,8 +1083,7 @@ def deactivate_event_based_component(self,
Billing to ignore related events at subscription renewal.
Args:
- subscription_id (int): The Advanced Billing id of the
- subscription
+ subscription_id (int): The Advanced Billing id of the subscription
component_id (int): The Advanced Billing id of the component
Returns:
diff --git a/advancedbilling/controllers/subscription_group_invoice_account_controller.py b/advancedbilling/controllers/subscription_group_invoice_account_controller.py
index b735ba74..a24ccad5 100644
--- a/advancedbilling/controllers/subscription_group_invoice_account_controller.py
+++ b/advancedbilling/controllers/subscription_group_invoice_account_controller.py
@@ -114,8 +114,7 @@ def list_prepayments_for_subscription_group(self,
Prepayments operations
Returns:
- ListSubscriptionGroupPrepaymentResponse: Response from the API.
- OK
+ ListSubscriptionGroupPrepaymentResponse: Response from the API. OK
Raises:
APIException: When an error occurs while fetching the data from
diff --git a/advancedbilling/controllers/subscription_group_status_controller.py b/advancedbilling/controllers/subscription_group_status_controller.py
index b0a642ff..64be3388 100644
--- a/advancedbilling/controllers/subscription_group_status_controller.py
+++ b/advancedbilling/controllers/subscription_group_status_controller.py
@@ -37,8 +37,7 @@ def cancel_subscriptions_in_group(self,
automatic billing or they must be prepaid.
In order to cancel a subscription group while also charging for any
unbilled usage on metered or prepaid components, the
- `charge_unbilled_usage=true` parameter must be included in the
- request.
+ `charge_unbilled_usage=true` parameter must be included in the request.
Args:
uid (str): The uid of the subscription group
diff --git a/advancedbilling/controllers/subscription_products_controller.py b/advancedbilling/controllers/subscription_products_controller.py
index 115d5bf4..2718fd41 100644
--- a/advancedbilling/controllers/subscription_products_controller.py
+++ b/advancedbilling/controllers/subscription_products_controller.py
@@ -67,23 +67,23 @@ def migrate_subscription_product(self,
{
"errors": [
"Your card was declined. This transaction requires 3D secure
- authentication."
+ authentication."
],
"gateway_payment_id": "pi_1F0aGoJ2UDb3Q4av7zU3sHPh",
"description": "This card requires 3D secure authentication.
- Redirect the customer to the URL from the action_link attribute to
- authenticate. Attach callback_url param to this URL if you want to
- be notified about the result of 3D Secure authentication. Attach
- redirect_url param to this URL if you want to redirect a customer
- back to your page after 3D Secure authentication. Example:
- https://mysite.chargify.com/3d-secure/pi_1FCm4RKDeye4C0XfbqquXRYm?one
- _time_token_id=128&callback_url=https://localhost:4000&redirect_url=h
- ttps://yourpage.com will do a POST request to https://localhost:4000
- after payment is authenticated and will redirect a customer to
- https://yourpage.com after 3DS authentication.",
+ Redirect the customer to the URL from the action_link attribute to
+ authenticate. Attach callback_url param to this URL if you want to be
+ notified about the result of 3D Secure authentication. Attach
+ redirect_url param to this URL if you want to redirect a customer back
+ to your page after 3D Secure authentication. Example:
+ https://mysite.chargify.com/3d-secure/pi_1FCm4RKDeye4C0XfbqquXRYm?one_t
+ ime_token_id=128&callback_url=https://localhost:4000&redirect_url=https
+ ://yourpage.com will do a POST request to https://localhost:4000 after
+ payment is authenticated and will redirect a customer to
+ https://yourpage.com after 3DS authentication.",
"action_link":
- "http://acme.chargify.com/3d-secure/pi_1F0aGoJ2UDb3Q4av7zU3sHPh?one_t
- ime_token_id=242"
+ "http://acme.chargify.com/3d-secure/pi_1F0aGoJ2UDb3Q4av7zU3sHPh?one_tim
+ e_token_id=242"
}
```
To let the customer go through 3D Secure Authentication, they need to
diff --git a/advancedbilling/controllers/subscription_status_controller.py b/advancedbilling/controllers/subscription_status_controller.py
index 3b26159f..19d0f2ff 100644
--- a/advancedbilling/controllers/subscription_status_controller.py
+++ b/advancedbilling/controllers/subscription_status_controller.py
@@ -84,8 +84,7 @@ def cancel_subscription(self,
Args:
subscription_id (int): The Chargify id of the subscription
- body (CancellationRequest, optional): TODO: type description
- here.
+ body (CancellationRequest, optional): TODO: type description here.
Returns:
SubscriptionResponse: Response from the API. OK
@@ -304,8 +303,7 @@ def reactivate_subscription(self,
"Trial Ended".
## Resume the current billing period for a subscription
A subscription is considered "resumable" if you are attempting to
- reactivate within the billing period the subscription was canceled
- in.
+ reactivate within the billing period the subscription was canceled in.
A resumed subscription's billing date remains the same as before it
was canceled. In other words, it does not start a new billing period.
Payment may or may not be collected for a resumed subscription,
@@ -402,7 +400,7 @@ def reactivate_subscription(self,
```
{
"errors": ["Request was 'resume only', but this subscription
- cannot be resumed."]
+ cannot be resumed."]
}
```
#### Results
@@ -485,8 +483,7 @@ def initiate_delayed_cancellation(self,
Args:
subscription_id (int): The Chargify id of the subscription
- body (CancellationRequest, optional): TODO: type description
- here.
+ body (CancellationRequest, optional): TODO: type description here.
Returns:
DelayedCancellationResponse: Response from the API. OK
diff --git a/advancedbilling/controllers/subscriptions_controller.py b/advancedbilling/controllers/subscriptions_controller.py
index 9e25e9dc..7dd7461b 100644
--- a/advancedbilling/controllers/subscriptions_controller.py
+++ b/advancedbilling/controllers/subscriptions_controller.py
@@ -84,8 +84,7 @@ def create_subscription(self,
m-Taxes), there are a few considerations to be made regarding
collecting subscription data.
For subscribers to be eligible to be taxed, the following information
- for the `customer` object or `payment_profile` object must by
- supplied:
+ for the `customer` object or `payment_profile` object must by supplied:
+ A subscription to a [taxable
product](https://maxio.zendesk.com/hc/en-us/articles/24261076617869-Pro
duct-Editing#tax-settings)
@@ -159,8 +158,7 @@ def create_subscription(self,
For a custom priced product, pass the custom_price object in place of
`product_price_point_id`. For a custom priced component, pass the
`custom_price` object within the component object.
- Custom prices and price points can exist in harmony on a
- subscription.
+ Custom prices and price points can exist in harmony on a subscription.
# Passing Payment Information
## Subscription with Chargify.js token
The `chargify_token` can be obtained using
@@ -495,23 +493,23 @@ def create_subscription(self,
{
"errors": [
"Your card was declined. This transaction requires 3D secure
- authentication."
+ authentication."
],
"gateway_payment_id": "pi_1F0aGoJ2UDb3Q4av7zU3sHPh",
"description": "This card requires 3D secure authentication.
- Redirect the customer to the URL from the action_link attribute to
- authenticate. Attach callback_url param to this URL if you want to
- be notified about the result of 3D Secure authentication. Attach
- redirect_url param to this URL if you want to redirect a customer
- back to your page after 3D Secure authentication. Example:
- https://mysite.chargify.com/3d-secure/pi_1FCm4RKDeye4C0XfbqquXRYm?one
- _time_token_id=128&callback_url=https://localhost:4000&redirect_url=h
- ttps://yourpage.com will do a POST request to https://localhost:4000
- after payment is authenticated and will redirect a customer to
- https://yourpage.com after 3DS authentication.",
+ Redirect the customer to the URL from the action_link attribute to
+ authenticate. Attach callback_url param to this URL if you want to be
+ notified about the result of 3D Secure authentication. Attach
+ redirect_url param to this URL if you want to redirect a customer back
+ to your page after 3D Secure authentication. Example:
+ https://mysite.chargify.com/3d-secure/pi_1FCm4RKDeye4C0XfbqquXRYm?one_t
+ ime_token_id=128&callback_url=https://localhost:4000&redirect_url=https
+ ://yourpage.com will do a POST request to https://localhost:4000 after
+ payment is authenticated and will redirect a customer to
+ https://yourpage.com after 3DS authentication.",
"action_link":
- "http://acme.chargify.com/3d-secure/pi_1F0aGoJ2UDb3Q4av7zU3sHPh?one_t
- ime_token_id=242"
+ "http://acme.chargify.com/3d-secure/pi_1F0aGoJ2UDb3Q4av7zU3sHPh?one_tim
+ e_token_id=242"
}
```
To let the customer go through 3D Secure Authentication, they need to
@@ -547,24 +545,23 @@ def create_subscription(self,
{
"errors": [
"Your card was declined. This transaction requires 3D secure
- authentication."
+ authentication."
],
"gateway_payment_id": "pay_6gjofv7dlyrkpizlolsuspvtiu",
"description": "This card requires 3D secure authentication.
- Redirect the customer to the URL from the action_link attribute to
- authenticate. Attach callback_url param to this URL if you want to
- be notified about the result of 3D Secure authentication. Attach
- redirect_url param to this URL if you want to redirect a customer
- back to your page after 3D Secure authentication. Example:
- https://mysite.chargify.com/3d-secure/pay_6gjofv7dlyrkpizlolsuspvtiu?
- one_time_token_id=123&callback_url=https://localhost:4000&redirect_ur
- l=https://yourpage.com will do a POST request to
- https://localhost:4000 after payment is authenticated and will
- redirect a customer to https://yourpage.com after 3DS
- authentication.",
+ Redirect the customer to the URL from the action_link attribute to
+ authenticate. Attach callback_url param to this URL if you want to be
+ notified about the result of 3D Secure authentication. Attach
+ redirect_url param to this URL if you want to redirect a customer back
+ to your page after 3D Secure authentication. Example:
+ https://mysite.chargify.com/3d-secure/pay_6gjofv7dlyrkpizlolsuspvtiu?on
+ e_time_token_id=123&callback_url=https://localhost:4000&redirect_url=ht
+ tps://yourpage.com will do a POST request to https://localhost:4000
+ after payment is authenticated and will redirect a customer to
+ https://yourpage.com after 3DS authentication.",
"action_link":
- "http://mysite.chargify.com/3d-secure/pay_6gjofv7dlyrkpizlolsuspvtiu?
- one_time_token_id=123"
+ "http://mysite.chargify.com/3d-secure/pay_6gjofv7dlyrkpizlolsuspvtiu?on
+ e_time_token_id=123"
}
```
To let the customer go through 3D Secure Authentication, they need to
@@ -807,7 +804,7 @@ def create_subscription(self,
"return_refund_policy_url": "https://return_refund_policy.url",
"delivery_policy_url": "https://delivery_policy.url",
"secure_checkout_policy_url":
- "https://secure_checkout_policy.url"
+ "https://secure_checkout_policy.url"
}
}
}
@@ -971,8 +968,7 @@ def list_subscriptions(self,
direction -- SortingDirection -- Controls the order in
which results are returned. Use in query
`direction=asc`.
- sort -- SubscriptionSort -- The attribute by which to
- sort
+ sort -- SubscriptionSort -- The attribute by which to sort
include -- List[SubscriptionListInclude] -- Allows
including additional data in the response. Use in
query: `include[]=self_service_page_token`.
diff --git a/advancedbilling/models/account_balance.py b/advancedbilling/models/account_balance.py
index 87c76170..89069dff 100644
--- a/advancedbilling/models/account_balance.py
+++ b/advancedbilling/models/account_balance.py
@@ -17,8 +17,7 @@ class AccountBalance(object):
Attributes:
balance_in_cents (long|int): The balance in cents.
- automatic_balance_in_cents (long|int): The automatic balance in
- cents.
+ automatic_balance_in_cents (long|int): The automatic balance in cents.
remittance_balance_in_cents (long|int): The remittance balance in
cents.
diff --git a/advancedbilling/models/ach_agreement.py b/advancedbilling/models/ach_agreement.py
index ff8e4106..8bea6d93 100644
--- a/advancedbilling/models/ach_agreement.py
+++ b/advancedbilling/models/ach_agreement.py
@@ -20,11 +20,9 @@ class ACHAgreement(object):
agreement_terms (str): (Required when providing ACH agreement params)
The ACH authorization agreement terms.
authorizer_first_name (str): (Required when providing ACH agreement
- params) The first name of the person authorizing the ACH
- agreement.
+ params) The first name of the person authorizing the ACH agreement.
authorizer_last_name (str): (Required when providing ACH agreement
- params) The last name of the person authorizing the ACH
- agreement.
+ params) The last name of the person authorizing the ACH agreement.
ip_address (str): (Required when providing ACH agreement params) The
IP address of the person authorizing the ACH agreement.
diff --git a/advancedbilling/models/agreement_acceptance.py b/advancedbilling/models/agreement_acceptance.py
index a11c8594..9de8fcc5 100644
--- a/advancedbilling/models/agreement_acceptance.py
+++ b/advancedbilling/models/agreement_acceptance.py
@@ -16,8 +16,7 @@ class AgreementAcceptance(object):
Required when creating a subscription with Maxio Payments.
Attributes:
- ip_address (str): Required when providing agreement acceptance
- params.
+ ip_address (str): Required when providing agreement acceptance params.
terms_url (str): Required when creating a subscription with Maxio
Payments. Either terms_url or provacy_policy_url required when
providing agreement_acceptance params.
diff --git a/advancedbilling/models/allocation.py b/advancedbilling/models/allocation.py
index 23015bc4..e0fb1b13 100644
--- a/advancedbilling/models/allocation.py
+++ b/advancedbilling/models/allocation.py
@@ -19,8 +19,7 @@ class Allocation(object):
Attributes:
allocation_id (int): The allocation unique id
component_id (int): The integer component ID for the allocation. This
- references a component that you have created in your Product
- setup
+ references a component that you have created in your Product setup
component_handle (str): The handle of the component. This references a
component that you have created in your Product setup
subscription_id (int): The integer subscription ID for the allocation.
diff --git a/advancedbilling/models/allocation_preview.py b/advancedbilling/models/allocation_preview.py
index 55847fc2..8fd813e3 100644
--- a/advancedbilling/models/allocation_preview.py
+++ b/advancedbilling/models/allocation_preview.py
@@ -29,8 +29,7 @@ class AllocationPreview(object):
line_items (List[AllocationPreviewLineItem]): TODO: type description
here.
accrue_charge (bool): TODO: type description here.
- allocations (List[AllocationPreviewItem]): TODO: type description
- here.
+ allocations (List[AllocationPreviewItem]): TODO: type description here.
period_type (str): TODO: type description here.
existing_balance_in_cents (long|int): An integer representing the
amount of the subscription's current balance
diff --git a/advancedbilling/models/apply_credit_note_event_data.py b/advancedbilling/models/apply_credit_note_event_data.py
index 0d4293b1..66f11d55 100644
--- a/advancedbilling/models/apply_credit_note_event_data.py
+++ b/advancedbilling/models/apply_credit_note_event_data.py
@@ -26,8 +26,7 @@ class ApplyCreditNoteEventData(object):
generated automatically by Chargify and has the prefix "cn_"
followed by alphanumeric characters.
original_amount (str): The full, original amount of the credit note.
- applied_amount (str): The amount of the credit note applied to
- invoice.
+ applied_amount (str): The amount of the credit note applied to invoice.
transaction_time (datetime): The time the credit note was applied, in
ISO 8601 format, i.e. "2019-06-07T17:20:06Z"
memo (str): The credit note memo.
diff --git a/advancedbilling/models/apply_debit_note_event_data.py b/advancedbilling/models/apply_debit_note_event_data.py
index 48e202dc..020c7d35 100644
--- a/advancedbilling/models/apply_debit_note_event_data.py
+++ b/advancedbilling/models/apply_debit_note_event_data.py
@@ -22,8 +22,7 @@ class ApplyDebitNoteEventData(object):
generated automatically by Chargify and has the prefix "db_"
followed by alphanumeric characters.
original_amount (str): The full, original amount of the debit note.
- applied_amount (str): The amount of the debit note applied to
- invoice.
+ applied_amount (str): The amount of the debit note applied to invoice.
memo (str): The debit note memo.
transaction_time (datetime): The time the debit note was applied, in
ISO 8601 format, i.e. "2019-06-07T17:20:06Z"
diff --git a/advancedbilling/models/bank_account_attributes.py b/advancedbilling/models/bank_account_attributes.py
index 2026ae09..c8027a6f 100644
--- a/advancedbilling/models/bank_account_attributes.py
+++ b/advancedbilling/models/bank_account_attributes.py
@@ -33,8 +33,7 @@ class BankAccountAttributes(object):
bank_iban (str): (Optional when creating a subscription with
GoCardless). International Bank Account Number. Alternatively,
local bank details can be provided
- bank_account_holder_type (BankAccountHolderType): Defaults to
- personal
+ bank_account_holder_type (BankAccountHolderType): Defaults to personal
payment_type (PaymentType): TODO: type description here.
current_vault (BankAccountVault): The vault that stores the payment
profile with the provided vault_token. Use `bogus` for testing.
diff --git a/advancedbilling/models/bank_account_payment_profile.py b/advancedbilling/models/bank_account_payment_profile.py
index c89ddf7b..f8d1480b 100644
--- a/advancedbilling/models/bank_account_payment_profile.py
+++ b/advancedbilling/models/bank_account_payment_profile.py
@@ -52,8 +52,7 @@ class BankAccountPaymentProfile(object):
stored bank account number with all but the last 4 digits marked
with X’s (i.e. ‘XXXXXXX1111’)
bank_account_type (BankAccountType): Defaults to checking
- bank_account_holder_type (BankAccountHolderType): Defaults to
- personal
+ bank_account_holder_type (BankAccountHolderType): Defaults to personal
payment_type (PaymentType): TODO: type description here.
verified (bool): denotes whether a bank account has been verified by
providing the amounts of two small deposits made into the account
diff --git a/advancedbilling/models/base_string_error.py b/advancedbilling/models/base_string_error.py
index e1bc00cd..b722f28c 100644
--- a/advancedbilling/models/base_string_error.py
+++ b/advancedbilling/models/base_string_error.py
@@ -13,8 +13,7 @@ class BaseStringError(object):
"""Implementation of the 'Base String Error' model.
- The error is base if it is not directly associated with a single
- attribute.
+ The error is base if it is not directly associated with a single attribute.
Attributes:
base (List[str]): TODO: type description here.
diff --git a/advancedbilling/models/bulk_update_segments_item.py b/advancedbilling/models/bulk_update_segments_item.py
index ae62dd6d..d42812ec 100644
--- a/advancedbilling/models/bulk_update_segments_item.py
+++ b/advancedbilling/models/bulk_update_segments_item.py
@@ -21,8 +21,7 @@ class BulkUpdateSegmentsItem(object):
See [Product
Components](https://help.chargify.com/products/product-components.h
tml) for an overview of pricing schemes.
- prices (List[CreateOrUpdateSegmentPrice]): TODO: type description
- here.
+ prices (List[CreateOrUpdateSegmentPrice]): TODO: type description here.
"""
diff --git a/advancedbilling/models/component.py b/advancedbilling/models/component.py
index 15c111fa..499b2c4b 100644
--- a/advancedbilling/models/component.py
+++ b/advancedbilling/models/component.py
@@ -32,8 +32,7 @@ class Component(object):
Component belongs
product_family_name (str): The name of the Product Family to which the
Component belongs
- price_per_unit_in_cents (long|int): deprecated - use unit_price
- instead
+ price_per_unit_in_cents (long|int): deprecated - use unit_price instead
kind (ComponentKind): A handle for the component type
archived (bool): Boolean flag describing whether a component is
archived or not.
diff --git a/advancedbilling/models/component_price_points_response.py b/advancedbilling/models/component_price_points_response.py
index cfd3609c..12942349 100644
--- a/advancedbilling/models/component_price_points_response.py
+++ b/advancedbilling/models/component_price_points_response.py
@@ -18,8 +18,7 @@ class ComponentPricePointsResponse(object):
TODO: type model description here.
Attributes:
- price_points (List[ComponentPricePoint]): TODO: type description
- here.
+ price_points (List[ComponentPricePoint]): TODO: type description here.
meta (ListPublicKeysMeta): TODO: type description here.
"""
diff --git a/advancedbilling/models/create_debit_note_event.py b/advancedbilling/models/create_debit_note_event.py
index b7f66fb8..1d628252 100644
--- a/advancedbilling/models/create_debit_note_event.py
+++ b/advancedbilling/models/create_debit_note_event.py
@@ -23,8 +23,7 @@ class CreateDebitNoteEvent(object):
timestamp (datetime): TODO: type description here.
invoice (Invoice): TODO: type description here.
event_type (InvoiceEventType): TODO: type description here.
- event_data (DebitNote): Example schema for an `create_debit_note`
- event
+ event_data (DebitNote): Example schema for an `create_debit_note` event
"""
diff --git a/advancedbilling/models/create_invoice_item.py b/advancedbilling/models/create_invoice_item.py
index 415f7795..4d045a60 100644
--- a/advancedbilling/models/create_invoice_item.py
+++ b/advancedbilling/models/create_invoice_item.py
@@ -35,8 +35,7 @@ class CreateInvoiceItem(object):
component_id (str | int | None): Component handle or component id.
price_point_id (str | int | None): Price point handle or id. For
component.
- product_price_point_id (str | int | None): TODO: type description
- here.
+ product_price_point_id (str | int | None): TODO: type description here.
description (str): TODO: type description here.
"""
diff --git a/advancedbilling/models/create_invoice_payment.py b/advancedbilling/models/create_invoice_payment.py
index fb283246..275e9724 100644
--- a/advancedbilling/models/create_invoice_payment.py
+++ b/advancedbilling/models/create_invoice_payment.py
@@ -6,6 +6,8 @@
This file was automatically generated for Maxio by APIMATIC v3.0 (
https://www.apimatic.io ).
"""
+import dateutil.parser
+
from advancedbilling.api_helper import APIHelper
@@ -18,13 +20,17 @@ class CreateInvoicePayment(object):
Attributes:
amount (str | float | None): A string of the dollar amount to be
refunded (eg. "10.50" => $10.50)
- memo (str): A description to be attached to the payment.
+ memo (str): A description to be attached to the payment. Applicable
+ only to `external` payments.
method (InvoicePaymentMethodType): The type of payment method used.
Defaults to other.
details (str): Additional information related to the payment method
- (eg. Check #)
+ (eg. Check #). Applicable only to `external` payments.
payment_profile_id (int): The ID of the payment profile to be used for
the payment.
+ received_on (date): Date reflecting when the payment was received from
+ a customer. Must be in the past. Applicable only to `external`
+ payments.
"""
@@ -34,7 +40,8 @@ class CreateInvoicePayment(object):
"memo": 'memo',
"method": 'method',
"details": 'details',
- "payment_profile_id": 'payment_profile_id'
+ "payment_profile_id": 'payment_profile_id',
+ "received_on": 'received_on'
}
_optionals = [
@@ -43,6 +50,7 @@ class CreateInvoicePayment(object):
'method',
'details',
'payment_profile_id',
+ 'received_on',
]
def __init__(self,
@@ -51,6 +59,7 @@ def __init__(self,
method=APIHelper.SKIP,
details=APIHelper.SKIP,
payment_profile_id=APIHelper.SKIP,
+ received_on=APIHelper.SKIP,
additional_properties={}):
"""Constructor for the CreateInvoicePayment class"""
@@ -65,6 +74,8 @@ def __init__(self,
self.details = details
if payment_profile_id is not APIHelper.SKIP:
self.payment_profile_id = payment_profile_id
+ if received_on is not APIHelper.SKIP:
+ self.received_on = received_on
# Add additional model properties to the instance
self.additional_properties = additional_properties
@@ -94,6 +105,7 @@ def from_dictionary(cls,
method = dictionary.get("method") if dictionary.get("method") else APIHelper.SKIP
details = dictionary.get("details") if dictionary.get("details") else APIHelper.SKIP
payment_profile_id = dictionary.get("payment_profile_id") if dictionary.get("payment_profile_id") else APIHelper.SKIP
+ received_on = dateutil.parser.parse(dictionary.get('received_on')).date() if dictionary.get('received_on') else APIHelper.SKIP
# Clean out expected properties from dictionary
for key in cls._names.values():
if key in dictionary:
@@ -104,4 +116,5 @@ def from_dictionary(cls,
method,
details,
payment_profile_id,
+ received_on,
dictionary)
diff --git a/advancedbilling/models/create_payment_profile.py b/advancedbilling/models/create_payment_profile.py
index 228b65fc..cdc53a8b 100644
--- a/advancedbilling/models/create_payment_profile.py
+++ b/advancedbilling/models/create_payment_profile.py
@@ -91,8 +91,7 @@ class CreatePaymentProfile(object):
Alternatively, local bank details can be provided
bank_routing_number (str): (Required when creating with ACH. Optional
when creating a subscription with GoCardless). The routing number
- of the bank. It becomes bank_code while passing via GoCardless
- API
+ of the bank. It becomes bank_code while passing via GoCardless API
bank_account_number (str): (Required when creating with ACH,
GoCardless, Stripe BECS or BACS Direct Debit, and bank_iban is
blank) The customerʼs bank account number
@@ -100,8 +99,7 @@ class CreatePaymentProfile(object):
required with Stripe BECS or BACS Direct Debit) Branch/Sort code.
Alternatively, an IBAN can be provided
bank_account_type (BankAccountType): Defaults to checking
- bank_account_holder_type (BankAccountHolderType): Defaults to
- personal
+ bank_account_holder_type (BankAccountHolderType): Defaults to personal
last_four (str): (Optional) Used for creating subscription with
payment profile imported using vault_token, for proper display in
Advanced Billing UI
diff --git a/advancedbilling/models/create_segment.py b/advancedbilling/models/create_segment.py
index 70830abc..f65c5e10 100644
--- a/advancedbilling/models/create_segment.py
+++ b/advancedbilling/models/create_segment.py
@@ -37,8 +37,7 @@ class CreateSegment(object):
See [Product
Components](https://help.chargify.com/products/product-components.h
tml) for an overview of pricing schemes.
- prices (List[CreateOrUpdateSegmentPrice]): TODO: type description
- here.
+ prices (List[CreateOrUpdateSegmentPrice]): TODO: type description here.
"""
diff --git a/advancedbilling/models/create_subscription.py b/advancedbilling/models/create_subscription.py
index 8931d03a..509566e3 100644
--- a/advancedbilling/models/create_subscription.py
+++ b/advancedbilling/models/create_subscription.py
@@ -106,8 +106,7 @@ class CreateSubscription(object):
`bank_account` > id)
reference (str): The reference value (provided by your app) for the
subscription itelf.
- customer_attributes (CustomerAttributes): TODO: type description
- here.
+ customer_attributes (CustomerAttributes): TODO: type description here.
payment_profile_attributes (PaymentProfileAttributes): alias to
credit_card_attributes
credit_card_attributes (PaymentProfileAttributes): Credit Card data to
diff --git a/advancedbilling/models/credit_card_payment_profile.py b/advancedbilling/models/credit_card_payment_profile.py
index 69aa0321..f9fc5129 100644
--- a/advancedbilling/models/credit_card_payment_profile.py
+++ b/advancedbilling/models/credit_card_payment_profile.py
@@ -37,8 +37,7 @@ class CreditCardPaymentProfile(object):
profile with the provided `vault_token`. Use `bogus` for testing.
vault_token (str): The “token” provided by your vault storage for an
already stored payment profile.
- billing_address (str): The current billing street address for the
- card.
+ billing_address (str): The current billing street address for the card.
billing_city (str): The current billing address city for the card.
billing_state (str): The current billing address state for the card.
billing_zip (str): The current billing address zip code for the card.
diff --git a/advancedbilling/models/credit_note.py b/advancedbilling/models/credit_note.py
index f947391f..a5ce84cc 100644
--- a/advancedbilling/models/credit_note.py
+++ b/advancedbilling/models/credit_note.py
@@ -31,8 +31,7 @@ class CreditNote(object):
automatically by Chargify and has the prefix "cn_" followed by
alphanumeric characters.
site_id (int): ID of the site to which the credit note belongs.
- customer_id (int): ID of the customer to which the credit note
- belongs.
+ customer_id (int): ID of the customer to which the credit note belongs.
subscription_id (int): ID of the subscription that generated the
credit note.
number (str): A unique, identifying string that appears on the credit
@@ -73,8 +72,7 @@ class CreditNote(object):
being credited back to the customer (i.e. a credit on an earlier
discount). For example, if the original purchase was $1.00 and the
original discount was $0.10, a credit of $0.50 of the original
- purchase (half) would have a discount credit of $0.05 (also
- half).
+ purchase (half) would have a discount credit of $0.05 (also half).
tax_amount (str): Total tax of the credit note. Note that this is a
positive amount representing a previously taxex amount being
credited back to the customer (i.e. a credit of an earlier tax).
diff --git a/advancedbilling/models/customer.py b/advancedbilling/models/customer.py
index 376256b2..a60ebeca 100644
--- a/advancedbilling/models/customer.py
+++ b/advancedbilling/models/customer.py
@@ -45,7 +45,7 @@ class Customer(object):
country_name (str): The customer's full name of country
phone (str): The phone number of the customer
verified (bool): Is the customer verified to use ACH as a payment
- method. Available only on Authorize.Net gateway
+ method.
portal_customer_created_at (datetime): The timestamp of when the
Billing Portal entry was created at for the customer
portal_invite_last_sent_at (datetime): The timestamp of when the
@@ -64,6 +64,9 @@ class Customer(object):
locale (str): The locale for the customer to identify language-region
default_subscription_group_uid (str): TODO: type description here.
salesforce_id (str): The Salesforce ID for the customer
+ tax_exempt_reason (str): The Tax Exemption Reason Code for the customer
+ default_auto_renewal_profile_id (int): The default auto-renewal
+ profile ID for the customer
"""
@@ -96,7 +99,9 @@ class Customer(object):
"parent_id": 'parent_id',
"locale": 'locale',
"default_subscription_group_uid": 'default_subscription_group_uid',
- "salesforce_id": 'salesforce_id'
+ "salesforce_id": 'salesforce_id',
+ "tax_exempt_reason": 'tax_exempt_reason',
+ "default_auto_renewal_profile_id": 'default_auto_renewal_profile_id'
}
_optionals = [
@@ -128,6 +133,8 @@ class Customer(object):
'locale',
'default_subscription_group_uid',
'salesforce_id',
+ 'tax_exempt_reason',
+ 'default_auto_renewal_profile_id',
]
_nullables = [
@@ -152,6 +159,8 @@ class Customer(object):
'locale',
'default_subscription_group_uid',
'salesforce_id',
+ 'tax_exempt_reason',
+ 'default_auto_renewal_profile_id',
]
def __init__(self,
@@ -183,6 +192,8 @@ def __init__(self,
locale=APIHelper.SKIP,
default_subscription_group_uid=APIHelper.SKIP,
salesforce_id=APIHelper.SKIP,
+ tax_exempt_reason=APIHelper.SKIP,
+ default_auto_renewal_profile_id=APIHelper.SKIP,
additional_properties={}):
"""Constructor for the Customer class"""
@@ -243,6 +254,10 @@ def __init__(self,
self.default_subscription_group_uid = default_subscription_group_uid
if salesforce_id is not APIHelper.SKIP:
self.salesforce_id = salesforce_id
+ if tax_exempt_reason is not APIHelper.SKIP:
+ self.tax_exempt_reason = tax_exempt_reason
+ if default_auto_renewal_profile_id is not APIHelper.SKIP:
+ self.default_auto_renewal_profile_id = default_auto_renewal_profile_id
# Add additional model properties to the instance
self.additional_properties = additional_properties
@@ -303,6 +318,8 @@ def from_dictionary(cls,
locale = dictionary.get("locale") if "locale" in dictionary.keys() else APIHelper.SKIP
default_subscription_group_uid = dictionary.get("default_subscription_group_uid") if "default_subscription_group_uid" in dictionary.keys() else APIHelper.SKIP
salesforce_id = dictionary.get("salesforce_id") if "salesforce_id" in dictionary.keys() else APIHelper.SKIP
+ tax_exempt_reason = dictionary.get("tax_exempt_reason") if "tax_exempt_reason" in dictionary.keys() else APIHelper.SKIP
+ default_auto_renewal_profile_id = dictionary.get("default_auto_renewal_profile_id") if "default_auto_renewal_profile_id" in dictionary.keys() else APIHelper.SKIP
# Clean out expected properties from dictionary
for key in cls._names.values():
if key in dictionary:
@@ -336,6 +353,8 @@ def from_dictionary(cls,
locale,
default_subscription_group_uid,
salesforce_id,
+ tax_exempt_reason,
+ default_auto_renewal_profile_id,
dictionary)
@classmethod
diff --git a/advancedbilling/models/customer_attributes.py b/advancedbilling/models/customer_attributes.py
index bc8705a8..cb65dd98 100644
--- a/advancedbilling/models/customer_attributes.py
+++ b/advancedbilling/models/customer_attributes.py
@@ -24,8 +24,7 @@ class CustomerAttributes(object):
a customer via attributes.
cc_emails (str): A list of emails that should be cc’d on all customer
communications. Optional.
- organization (str): The organization/company of the customer.
- Optional.
+ organization (str): The organization/company of the customer. Optional.
reference (str): A customer “reference”, or unique identifier from
your app, stored in Chargify. Can be used so that you may
reference your customer’s within Chargify using the same unique
@@ -49,8 +48,7 @@ class CustomerAttributes(object):
phone (str): (Optional) The phone number of the customer.
verified (bool): TODO: type description here.
tax_exempt (bool): (Optional) The tax_exempt status of the customer.
- Acceptable values are true or 1 for true and false or 0 for
- false.
+ Acceptable values are true or 1 for true and false or 0 for false.
vat_number (str): (Optional) Supplying the VAT number allows EU
customer’s to opt-out of the Value Added Tax assuming the merchant
address and customer billing address are not within the same EU
@@ -64,6 +62,8 @@ class CustomerAttributes(object):
parent_id (int): The parent ID in Chargify if applicable. Parent is
another Customer object.
salesforce_id (str): (Optional) The Salesforce ID of the customer.
+ default_auto_renewal_profile_id (int): (Optional) The default
+ auto-renewal profile ID for the customer
"""
@@ -87,7 +87,8 @@ class CustomerAttributes(object):
"vat_number": 'vat_number',
"metafields": 'metafields',
"parent_id": 'parent_id',
- "salesforce_id": 'salesforce_id'
+ "salesforce_id": 'salesforce_id',
+ "default_auto_renewal_profile_id": 'default_auto_renewal_profile_id'
}
_optionals = [
@@ -110,12 +111,14 @@ class CustomerAttributes(object):
'metafields',
'parent_id',
'salesforce_id',
+ 'default_auto_renewal_profile_id',
]
_nullables = [
'address_2',
'parent_id',
'salesforce_id',
+ 'default_auto_renewal_profile_id',
]
def __init__(self,
@@ -138,6 +141,7 @@ def __init__(self,
metafields=APIHelper.SKIP,
parent_id=APIHelper.SKIP,
salesforce_id=APIHelper.SKIP,
+ default_auto_renewal_profile_id=APIHelper.SKIP,
additional_properties={}):
"""Constructor for the CustomerAttributes class"""
@@ -180,6 +184,8 @@ def __init__(self,
self.parent_id = parent_id
if salesforce_id is not APIHelper.SKIP:
self.salesforce_id = salesforce_id
+ if default_auto_renewal_profile_id is not APIHelper.SKIP:
+ self.default_auto_renewal_profile_id = default_auto_renewal_profile_id
# Add additional model properties to the instance
self.additional_properties = additional_properties
@@ -222,6 +228,7 @@ def from_dictionary(cls,
metafields = dictionary.get("metafields") if dictionary.get("metafields") else APIHelper.SKIP
parent_id = dictionary.get("parent_id") if "parent_id" in dictionary.keys() else APIHelper.SKIP
salesforce_id = dictionary.get("salesforce_id") if "salesforce_id" in dictionary.keys() else APIHelper.SKIP
+ default_auto_renewal_profile_id = dictionary.get("default_auto_renewal_profile_id") if "default_auto_renewal_profile_id" in dictionary.keys() else APIHelper.SKIP
# Clean out expected properties from dictionary
for key in cls._names.values():
if key in dictionary:
@@ -246,6 +253,7 @@ def from_dictionary(cls,
metafields,
parent_id,
salesforce_id,
+ default_auto_renewal_profile_id,
dictionary)
@classmethod
diff --git a/advancedbilling/models/debit_note.py b/advancedbilling/models/debit_note.py
index 14fe1ce6..33d04475 100644
--- a/advancedbilling/models/debit_note.py
+++ b/advancedbilling/models/debit_note.py
@@ -29,8 +29,7 @@ class DebitNote(object):
automatically by Chargify and has the prefix "db_" followed by
alphanumeric characters.
site_id (int): ID of the site to which the debit note belongs.
- customer_id (int): ID of the customer to which the debit note
- belongs.
+ customer_id (int): ID of the customer to which the debit note belongs.
subscription_id (int): ID of the subscription that generated the debit
note.
number (int): A unique, identifier that appears on the debit note and
diff --git a/advancedbilling/models/failed_payment_event_data.py b/advancedbilling/models/failed_payment_event_data.py
index d397fdd0..03571b8c 100644
--- a/advancedbilling/models/failed_payment_event_data.py
+++ b/advancedbilling/models/failed_payment_event_data.py
@@ -22,8 +22,7 @@ class FailedPaymentEventData(object):
applied_amount (int): The monetary value of the payment, expressed in
dollars.
memo (str): The memo passed when the payment was created.
- payment_method (InvoicePaymentMethodType): TODO: type description
- here.
+ payment_method (InvoicePaymentMethodType): TODO: type description here.
transaction_id (int): The transaction ID of the failed payment.
"""
diff --git a/advancedbilling/models/invoice.py b/advancedbilling/models/invoice.py
index a57d8f61..c13b9b4c 100644
--- a/advancedbilling/models/invoice.py
+++ b/advancedbilling/models/invoice.py
@@ -56,8 +56,7 @@ class Invoice(object):
`"YYYY-MM-DD"`.
paid_date (date): Date the invoice became fully paid. If partial
payments are applied to the invoice, this date will not be present
- until payment has been made in full. The format is
- `"YYYY-MM-DD"`.
+ until payment has been made in full. The format is `"YYYY-MM-DD"`.
status (InvoiceStatus): The current status of the invoice. See
[Invoice
Statuses](https://maxio.zendesk.com/hc/en-us/articles/2425228782964
@@ -119,8 +118,7 @@ class Invoice(object):
total_amount (str): The invoice total, which is `subtotal_amount -
discount_amount + tax_amount`.'
credit_amount (str): The amount of credit (from credit notes) applied
- to this invoice. Credits offset the amount due from the
- customer.
+ to this invoice. Credits offset the amount due from the customer.
refund_amount (str): TODO: type description here.
paid_amount (str): The amount paid on the invoice by the customer.
due_amount (str): Amount due on the invoice, which is `total_amount -
@@ -131,10 +129,8 @@ class Invoice(object):
credits (List[InvoiceCredit]): TODO: type description here.
refunds (List[InvoiceRefund]): TODO: type description here.
payments (List[InvoicePayment]): TODO: type description here.
- custom_fields (List[InvoiceCustomField]): TODO: type description
- here.
- display_settings (InvoiceDisplaySettings): TODO: type description
- here.
+ custom_fields (List[InvoiceCustomField]): TODO: type description here.
+ display_settings (InvoiceDisplaySettings): TODO: type description here.
public_url (str): The public URL of the invoice
previous_balance_data (InvoicePreviousBalance): TODO: type description
here.
diff --git a/advancedbilling/models/invoice_issued.py b/advancedbilling/models/invoice_issued.py
index a399c490..1891a165 100644
--- a/advancedbilling/models/invoice_issued.py
+++ b/advancedbilling/models/invoice_issued.py
@@ -26,8 +26,7 @@ class InvoiceIssued(object):
due_date (date): TODO: type description here.
issue_date (str): Invoice issue date. Can be an empty string if value
is missing.
- paid_date (str): Paid date. Can be an empty string if value is
- missing.
+ paid_date (str): Paid date. Can be an empty string if value is missing.
due_amount (str): TODO: type description here.
paid_amount (str): TODO: type description here.
tax_amount (str): TODO: type description here.
diff --git a/advancedbilling/models/invoice_payment.py b/advancedbilling/models/invoice_payment.py
index d1421327..d4917079 100644
--- a/advancedbilling/models/invoice_payment.py
+++ b/advancedbilling/models/invoice_payment.py
@@ -6,6 +6,8 @@
This file was automatically generated for Maxio by APIMATIC v3.0 (
https://www.apimatic.io ).
"""
+import dateutil.parser
+
from advancedbilling.api_helper import APIHelper
from advancedbilling.models.invoice_payment_method import InvoicePaymentMethod
@@ -28,6 +30,10 @@ class InvoicePayment(object):
gateway_used (str): TODO: type description here.
gateway_transaction_id (str): The transaction ID for the payment as
returned from the payment gateway
+ received_on (date): Date reflecting when the payment was received from
+ a customer. Must be in the past. Applicable only to `external`
+ payments.
+ uid (str): TODO: type description here.
"""
@@ -42,7 +48,9 @@ class InvoicePayment(object):
"prepayment": 'prepayment',
"gateway_handle": 'gateway_handle',
"gateway_used": 'gateway_used',
- "gateway_transaction_id": 'gateway_transaction_id'
+ "gateway_transaction_id": 'gateway_transaction_id',
+ "received_on": 'received_on',
+ "uid": 'uid'
}
_optionals = [
@@ -56,11 +64,14 @@ class InvoicePayment(object):
'gateway_handle',
'gateway_used',
'gateway_transaction_id',
+ 'received_on',
+ 'uid',
]
_nullables = [
'gateway_handle',
'gateway_transaction_id',
+ 'received_on',
]
def __init__(self,
@@ -74,6 +85,8 @@ def __init__(self,
gateway_handle=APIHelper.SKIP,
gateway_used=APIHelper.SKIP,
gateway_transaction_id=APIHelper.SKIP,
+ received_on=APIHelper.SKIP,
+ uid=APIHelper.SKIP,
additional_properties={}):
"""Constructor for the InvoicePayment class"""
@@ -98,6 +111,10 @@ def __init__(self,
self.gateway_used = gateway_used
if gateway_transaction_id is not APIHelper.SKIP:
self.gateway_transaction_id = gateway_transaction_id
+ if received_on is not APIHelper.SKIP:
+ self.received_on = received_on
+ if uid is not APIHelper.SKIP:
+ self.uid = uid
# Add additional model properties to the instance
self.additional_properties = additional_properties
@@ -131,6 +148,11 @@ def from_dictionary(cls,
gateway_handle = dictionary.get("gateway_handle") if "gateway_handle" in dictionary.keys() else APIHelper.SKIP
gateway_used = dictionary.get("gateway_used") if dictionary.get("gateway_used") else APIHelper.SKIP
gateway_transaction_id = dictionary.get("gateway_transaction_id") if "gateway_transaction_id" in dictionary.keys() else APIHelper.SKIP
+ if 'received_on' in dictionary.keys():
+ received_on = dateutil.parser.parse(dictionary.get('received_on')).date() if dictionary.get('received_on') else None
+ else:
+ received_on = APIHelper.SKIP
+ uid = dictionary.get("uid") if dictionary.get("uid") else APIHelper.SKIP
# Clean out expected properties from dictionary
for key in cls._names.values():
if key in dictionary:
@@ -146,6 +168,8 @@ def from_dictionary(cls,
gateway_handle,
gateway_used,
gateway_transaction_id,
+ received_on,
+ uid,
dictionary)
@classmethod
diff --git a/advancedbilling/models/item_price_point_changed.py b/advancedbilling/models/item_price_point_changed.py
index 27c6ad87..60b4a142 100644
--- a/advancedbilling/models/item_price_point_changed.py
+++ b/advancedbilling/models/item_price_point_changed.py
@@ -21,10 +21,8 @@ class ItemPricePointChanged(object):
item_type (str): TODO: type description here.
item_handle (str): TODO: type description here.
item_name (str): TODO: type description here.
- previous_price_point (ItemPricePointData): TODO: type description
- here.
- current_price_point (ItemPricePointData): TODO: type description
- here.
+ previous_price_point (ItemPricePointData): TODO: type description here.
+ current_price_point (ItemPricePointData): TODO: type description here.
"""
diff --git a/advancedbilling/models/list_components_price_points_response.py b/advancedbilling/models/list_components_price_points_response.py
index 97873b26..dde50549 100644
--- a/advancedbilling/models/list_components_price_points_response.py
+++ b/advancedbilling/models/list_components_price_points_response.py
@@ -16,8 +16,7 @@ class ListComponentsPricePointsResponse(object):
TODO: type model description here.
Attributes:
- price_points (List[ComponentPricePoint]): TODO: type description
- here.
+ price_points (List[ComponentPricePoint]): TODO: type description here.
"""
diff --git a/advancedbilling/models/list_coupons_filter.py b/advancedbilling/models/list_coupons_filter.py
index 42387460..1d13aa87 100644
--- a/advancedbilling/models/list_coupons_filter.py
+++ b/advancedbilling/models/list_coupons_filter.py
@@ -19,8 +19,7 @@ class ListCouponsFilter(object):
Attributes:
date_field (BasicDateField): The type of filter you would like to
- apply to your search. Use in query
- `filter[date_field]=created_at`.
+ apply to your search. Use in query `filter[date_field]=created_at`.
start_date (date): The start date (format YYYY-MM-DD) with which to
filter the date_field. Returns coupons with a timestamp at or
after midnight (12:00:00 AM) in your site’s time zone on the date
diff --git a/advancedbilling/models/list_proforma_invoices_response.py b/advancedbilling/models/list_proforma_invoices_response.py
index e9cbfd5f..bde08f60 100644
--- a/advancedbilling/models/list_proforma_invoices_response.py
+++ b/advancedbilling/models/list_proforma_invoices_response.py
@@ -18,8 +18,7 @@ class ListProformaInvoicesResponse(object):
TODO: type model description here.
Attributes:
- proforma_invoices (List[ProformaInvoice]): TODO: type description
- here.
+ proforma_invoices (List[ProformaInvoice]): TODO: type description here.
meta (ListProformaInvoicesMeta): TODO: type description here.
"""
diff --git a/advancedbilling/models/prepaid_subscription_balance_changed.py b/advancedbilling/models/prepaid_subscription_balance_changed.py
index 44b1a6cb..71e854e6 100644
--- a/advancedbilling/models/prepaid_subscription_balance_changed.py
+++ b/advancedbilling/models/prepaid_subscription_balance_changed.py
@@ -21,8 +21,7 @@ class PrepaidSubscriptionBalanceChanged(object):
here.
prepayment_account_balance_in_cents (long|int): TODO: type description
here.
- current_usage_amount_in_cents (long|int): TODO: type description
- here.
+ current_usage_amount_in_cents (long|int): TODO: type description here.
"""
diff --git a/advancedbilling/models/product.py b/advancedbilling/models/product.py
index 42d7adbf..b1cbe60e 100644
--- a/advancedbilling/models/product.py
+++ b/advancedbilling/models/product.py
@@ -76,8 +76,7 @@ class Product(object):
request a billing address on any Self-Service Pages that are used
by subscribers of this product.
require_billing_address (bool): A boolean indicating whether a billing
- address is required to add a payment profile, especially at
- signup.
+ address is required to add a payment profile, especially at signup.
require_shipping_address (bool): A boolean indicating whether a
shipping address is required for the customer, especially at
signup.
diff --git a/advancedbilling/models/product_price_point.py b/advancedbilling/models/product_price_point.py
index aae27e32..b7a62f6a 100644
--- a/advancedbilling/models/product_price_point.py
+++ b/advancedbilling/models/product_price_point.py
@@ -58,8 +58,7 @@ class ProductPricePoint(object):
multiple currencies defined.
mtype (PricePointType): The type of price point
tax_included (bool): Whether or not the price point includes tax
- subscription_id (int): The subscription id this price point belongs
- to
+ subscription_id (int): The subscription id this price point belongs to
currency_prices (List[CurrencyPrice]): An array of currency pricing
data is available when multiple currencies are defined for the
site. It varies based on the use_site_exchange_rate setting for
diff --git a/advancedbilling/models/proforma_invoice.py b/advancedbilling/models/proforma_invoice.py
index 6e7e60b4..161b41b9 100644
--- a/advancedbilling/models/proforma_invoice.py
+++ b/advancedbilling/models/proforma_invoice.py
@@ -74,13 +74,11 @@ class ProformaInvoice(object):
refund_amount (str): TODO: type description here.
due_amount (str): TODO: type description here.
line_items (List[InvoiceLineItem]): TODO: type description here.
- discounts (List[ProformaInvoiceDiscount]): TODO: type description
- here.
+ discounts (List[ProformaInvoiceDiscount]): TODO: type description here.
taxes (List[ProformaInvoiceTax]): TODO: type description here.
credits (List[ProformaInvoiceCredit]): TODO: type description here.
payments (List[ProformaInvoicePayment]): TODO: type description here.
- custom_fields (List[InvoiceCustomField]): TODO: type description
- here.
+ custom_fields (List[InvoiceCustomField]): TODO: type description here.
public_url (str): TODO: type description here.
"""
diff --git a/advancedbilling/models/reactivate_subscription_request.py b/advancedbilling/models/reactivate_subscription_request.py
index fe8c3151..83dafe4b 100644
--- a/advancedbilling/models/reactivate_subscription_request.py
+++ b/advancedbilling/models/reactivate_subscription_request.py
@@ -32,8 +32,7 @@ class ReactivateSubscriptionRequest(object):
resume (bool | ResumeOptions | None): If `true`, Chargify will attempt
to resume the subscription's billing period. if not resumable, the
subscription will be reactivated with a new billing period. If
- `false`: Chargify will only attempt to reactivate the
- subscription.
+ `false`: Chargify will only attempt to reactivate the subscription.
"""
diff --git a/advancedbilling/models/renewal_preview.py b/advancedbilling/models/renewal_preview.py
index 4353a2a7..edac3aab 100644
--- a/advancedbilling/models/renewal_preview.py
+++ b/advancedbilling/models/renewal_preview.py
@@ -27,8 +27,7 @@ class RenewalPreview(object):
total_discount_in_cents (long|int): An integer representing the amount
of the coupon discounts that will be applied to the next renewal
total_in_cents (long|int): An integer representing the total amount
- owed, less any discounts, that will be assessed at the next
- renewal
+ owed, less any discounts, that will be assessed at the next renewal
existing_balance_in_cents (long|int): An integer representing the
amount of the subscription’s current balance
total_amount_due_in_cents (long|int): An integer representing the
diff --git a/advancedbilling/models/sale_rep.py b/advancedbilling/models/sale_rep.py
index 745dd3a2..b1f6ca62 100644
--- a/advancedbilling/models/sale_rep.py
+++ b/advancedbilling/models/sale_rep.py
@@ -21,8 +21,7 @@ class SaleRep(object):
full_name (str): TODO: type description here.
subscriptions_count (int): TODO: type description here.
test_mode (bool): TODO: type description here.
- subscriptions (List[SaleRepSubscription]): TODO: type description
- here.
+ subscriptions (List[SaleRepSubscription]): TODO: type description here.
"""
diff --git a/advancedbilling/models/site.py b/advancedbilling/models/site.py
index d7d0c64b..9e4a690a 100644
--- a/advancedbilling/models/site.py
+++ b/advancedbilling/models/site.py
@@ -30,8 +30,7 @@ class Site(object):
customer_hierarchy_enabled (bool): TODO: type description here.
whopays_enabled (bool): TODO: type description here.
whopays_default_payer (str): TODO: type description here.
- allocation_settings (AllocationSettings): TODO: type description
- here.
+ allocation_settings (AllocationSettings): TODO: type description here.
default_payment_collection_method (str): TODO: type description here.
organization_address (OrganizationAddress): TODO: type description
here.
diff --git a/advancedbilling/models/subscription.py b/advancedbilling/models/subscription.py
index 256c8c5c..8796852a 100644
--- a/advancedbilling/models/subscription.py
+++ b/advancedbilling/models/subscription.py
@@ -158,8 +158,7 @@ class Subscription(object):
product (Product): TODO: type description here.
credit_card (CreditCardPaymentProfile): TODO: type description here.
group (NestedSubscriptionGroup): TODO: type description here.
- bank_account (BankAccountPaymentProfile): TODO: type description
- here.
+ bank_account (BankAccountPaymentProfile): TODO: type description here.
payment_type (str): The payment profile type for the active profile on
file.
referral_code (str): The subscription's unique code that can be given
@@ -208,8 +207,7 @@ class Subscription(object):
charged successfully at renewal.
reference (str): The reference value (provided by your app) for the
subscription itelf.
- on_hold_at (datetime): The timestamp of the most recent on hold
- action.
+ on_hold_at (datetime): The timestamp of the most recent on hold action.
prepaid_dunning (bool): Boolean representing whether the subscription
is prepaid and currently in dunning. Only returned for
Relationship Invoicing sites with the feature enabled
diff --git a/advancedbilling/models/subscription_filter.py b/advancedbilling/models/subscription_filter.py
index 127e2e15..7ec68553 100644
--- a/advancedbilling/models/subscription_filter.py
+++ b/advancedbilling/models/subscription_filter.py
@@ -27,8 +27,7 @@ class SubscriptionFilter(object):
.
date_field (SubscriptionListDateField): The type of filter you'd like
to apply to your search. To use this filter you also have to
- include the following param in the request
- `include=subscription`.
+ include the following param in the request `include=subscription`.
start_date (date): The start date (format YYYY-MM-DD) with which to
filter the date_field. Returns components that belong to the
subscription with a timestamp at or after midnight (12:00:00 AM)
diff --git a/advancedbilling/models/subscription_group_bank_account.py b/advancedbilling/models/subscription_group_bank_account.py
index 2f6eda18..7a2d61d5 100644
--- a/advancedbilling/models/subscription_group_bank_account.py
+++ b/advancedbilling/models/subscription_group_bank_account.py
@@ -32,8 +32,7 @@ class SubscriptionGroupBankAccount(object):
bank_branch_code (str): (Optional when creating a subscription with
GoCardless) Branch code. Alternatively, an IBAN can be provided
bank_account_type (BankAccountType): Defaults to checking
- bank_account_holder_type (BankAccountHolderType): Defaults to
- personal
+ bank_account_holder_type (BankAccountHolderType): Defaults to personal
payment_type (PaymentType): TODO: type description here.
billing_address (str): TODO: type description here.
billing_city (str): TODO: type description here.
diff --git a/advancedbilling/models/subscription_group_prepayment_request.py b/advancedbilling/models/subscription_group_prepayment_request.py
index 5c71ef3c..990772b7 100644
--- a/advancedbilling/models/subscription_group_prepayment_request.py
+++ b/advancedbilling/models/subscription_group_prepayment_request.py
@@ -16,8 +16,7 @@ class SubscriptionGroupPrepaymentRequest(object):
TODO: type model description here.
Attributes:
- prepayment (SubscriptionGroupPrepayment): TODO: type description
- here.
+ prepayment (SubscriptionGroupPrepayment): TODO: type description here.
"""
diff --git a/advancedbilling/models/subscription_migration_preview_options.py b/advancedbilling/models/subscription_migration_preview_options.py
index 1753b34b..eea78304 100644
--- a/advancedbilling/models/subscription_migration_preview_options.py
+++ b/advancedbilling/models/subscription_migration_preview_options.py
@@ -23,8 +23,7 @@ class SubscriptionMigrationPreviewOptions(object):
Product Family. Note: Going to another Product Family, components
will not be migrated as well.
product_price_point_id (int): The ID of the specified product's price
- point. This can be passed to migrate to a non-default price
- point.
+ point. This can be passed to migrate to a non-default price point.
include_trial (bool): Whether to include the trial period configured
for the product price point when starting a new billing period.
Note that if preserve_period is set, then include_trial will be
diff --git a/advancedbilling/models/subscription_migration_preview_response.py b/advancedbilling/models/subscription_migration_preview_response.py
index 6b3fb493..67a0a6c2 100644
--- a/advancedbilling/models/subscription_migration_preview_response.py
+++ b/advancedbilling/models/subscription_migration_preview_response.py
@@ -16,8 +16,7 @@ class SubscriptionMigrationPreviewResponse(object):
TODO: type model description here.
Attributes:
- migration (SubscriptionMigrationPreview): TODO: type description
- here.
+ migration (SubscriptionMigrationPreview): TODO: type description here.
"""
diff --git a/advancedbilling/models/subscription_mrr_response.py b/advancedbilling/models/subscription_mrr_response.py
index 8eff417b..a3434cdc 100644
--- a/advancedbilling/models/subscription_mrr_response.py
+++ b/advancedbilling/models/subscription_mrr_response.py
@@ -16,8 +16,7 @@ class SubscriptionMRRResponse(object):
TODO: type model description here.
Attributes:
- subscriptions_mrr (List[SubscriptionMRR]): TODO: type description
- here.
+ subscriptions_mrr (List[SubscriptionMRR]): TODO: type description here.
"""
diff --git a/advancedbilling/models/subscription_product_migration.py b/advancedbilling/models/subscription_product_migration.py
index 2c827be5..73a61f70 100644
--- a/advancedbilling/models/subscription_product_migration.py
+++ b/advancedbilling/models/subscription_product_migration.py
@@ -23,8 +23,7 @@ class SubscriptionProductMigration(object):
Product Family. Note: Going to another Product Family, components
will not be migrated as well.
product_price_point_id (int): The ID of the specified product's price
- point. This can be passed to migrate to a non-default price
- point.
+ point. This can be passed to migrate to a non-default price point.
include_trial (bool): Whether to include the trial period configured
for the product price point when starting a new billing period.
Note that if preserve_period is set, then include_trial will be
diff --git a/advancedbilling/models/subscription_product_migration_request.py b/advancedbilling/models/subscription_product_migration_request.py
index 670670c5..fd1e6ee2 100644
--- a/advancedbilling/models/subscription_product_migration_request.py
+++ b/advancedbilling/models/subscription_product_migration_request.py
@@ -16,8 +16,7 @@ class SubscriptionProductMigrationRequest(object):
TODO: type model description here.
Attributes:
- migration (SubscriptionProductMigration): TODO: type description
- here.
+ migration (SubscriptionProductMigration): TODO: type description here.
"""
diff --git a/advancedbilling/models/subscription_state.py b/advancedbilling/models/subscription_state.py
index 051ef170..bbc51323 100644
--- a/advancedbilling/models/subscription_state.py
+++ b/advancedbilling/models/subscription_state.py
@@ -15,76 +15,74 @@ class SubscriptionState(object):
The state of a subscription.
* **Live States**
* `active` - A normal, active subscription. It is not in a trial and
- is paid and up to date.
+ is paid and up to date.
* `assessing` - An internal (transient) state that indicates a
- subscription is in the middle of periodic assessment. Do not base any
- access decisions in your app on this state, as it may not always be
- exposed.
+ subscription is in the middle of periodic assessment. Do not base any
+ access decisions in your app on this state, as it may not always be
+ exposed.
* `pending` - An internal (transient) state that indicates a
- subscription is in the creation process. Do not base any access
- decisions in your app on this state, as it may not always be exposed.
+ subscription is in the creation process. Do not base any access decisions
+ in your app on this state, as it may not always be exposed.
* `trialing` - A subscription in trialing state has a valid trial
- subscription. This type of subscription may transition to active once
- payment is received when the trial has ended. Otherwise, it may go to
- a Problem or End of Life state.
+ subscription. This type of subscription may transition to active once
+ payment is received when the trial has ended. Otherwise, it may go to a
+ Problem or End of Life state.
* `paused` - An internal state that indicates that your account with
- Advanced Billing is in arrears.
+ Advanced Billing is in arrears.
* **Problem States**
* `past_due` - Indicates that the most recent payment has failed, and
- payment is past due for this subscription. If you have enabled our
- automated dunning, this subscription will be in the dunning process
- (additional status and callbacks from the dunning process will be
- available in the future). If you are handling dunning and payment
- updates yourself, you will want to use this state to initiate a
- payment update from your customers.
+ payment is past due for this subscription. If you have enabled our
+ automated dunning, this subscription will be in the dunning process
+ (additional status and callbacks from the dunning process will be
+ available in the future). If you are handling dunning and payment updates
+ yourself, you will want to use this state to initiate a payment update
+ from your customers.
* `soft_failure` - Indicates that normal assessment/processing of the
- subscription has failed for a reason that cannot be fixed by the
- Customer. For example, a Soft Fail may result from a timeout at the
- gateway or incorrect credentials on your part. The subscriptions
- should be retried automatically. An interface is being built for you
- to review problems resulting from these events to take manual action
- when needed.
+ subscription has failed for a reason that cannot be fixed by the Customer.
+ For example, a Soft Fail may result from a timeout at the gateway or
+ incorrect credentials on your part. The subscriptions should be retried
+ automatically. An interface is being built for you to review problems
+ resulting from these events to take manual action when needed.
* `unpaid` - Indicates an unpaid subscription. A subscription is
- marked unpaid if the retry period expires and you have configured your
- [Dunning](https://maxio.zendesk.com/hc/en-us/articles/24287076583565-Du
- nning-Overview) settings to have a Final Action of `mark the
- subscription unpaid`.
+ marked unpaid if the retry period expires and you have configured your
+ [Dunning](https://maxio.zendesk.com/hc/en-us/articles/24287076583565-Dunnin
+ g-Overview) settings to have a Final Action of `mark the subscription
+ unpaid`.
* **End of Life States**
* `canceled` - Indicates a canceled subscription. This may happen at
- your request (via the API or the web interface) or due to the
- expiration of the
- [Dunning](https://maxio.zendesk.com/hc/en-us/articles/24287076583565-Du
- nning-Overview) process without payment. See the
- [Reactivation](https://maxio.zendesk.com/hc/en-us/articles/242521095036
- 29-Reactivating-and-Resuming) documentation for info on how to restart
- a canceled subscription.
+ your request (via the API or the web interface) or due to the expiration
+ of the
+ [Dunning](https://maxio.zendesk.com/hc/en-us/articles/24287076583565-Dunnin
+ g-Overview) process without payment. See the
+ [Reactivation](https://maxio.zendesk.com/hc/en-us/articles/24252109503629-R
+ eactivating-and-Resuming) documentation for info on how to restart a
+ canceled subscription.
While a subscription is canceled, its period will not advance, it will
- not accrue any new charges, and Advanced Billing will not attempt to
- collect the overdue balance.
+ not accrue any new charges, and Advanced Billing will not attempt to
+ collect the overdue balance.
* `expired` - Indicates a subscription that has expired due to running
- its normal life cycle. Some products may be configured to have an
- expiration period. An expired subscription then is one that stayed
- active until it fulfilled its full period.
+ its normal life cycle. Some products may be configured to have an
+ expiration period. An expired subscription then is one that stayed active
+ until it fulfilled its full period.
* `failed_to_create` - Indicates that signup has failed. (You may see
- this state in a signup_failure webhook.)
+ this state in a signup_failure webhook.)
* `on_hold` - Indicates that a subscription’s billing has been
- temporarily stopped. While it is expected that the subscription will
- resume and return to active status, this is still treated as an “End
- of Life” state because the customer is not paying for services during
- this time.
+ temporarily stopped. While it is expected that the subscription will
+ resume and return to active status, this is still treated as an “End of
+ Life” state because the customer is not paying for services during this
+ time.
* `suspended` - Indicates that a prepaid subscription has used up all
- their prepayment balance. If a prepayment is applied, it will return
- to an active state.
+ their prepayment balance. If a prepayment is applied, it will return to an
+ active state.
* `trial_ended` - A subscription in a trial_ended state is a
- subscription that completed a no-obligation trial and did not have a
- card on file at the expiration of the trial period. See [Product
- Pricing – No Obligation
- Trials](https://maxio.zendesk.com/hc/en-us/articles/24261076617869-Prod
- uct-Editing) for more details.
+ subscription that completed a no-obligation trial and did not have a card
+ on file at the expiration of the trial period. See [Product Pricing – No
+ Obligation
+ Trials](https://maxio.zendesk.com/hc/en-us/articles/24261076617869-Product-
+ Editing) for more details.
See [Subscription
States](https://maxio.zendesk.com/hc/en-us/articles/24252119027853-Subscrip
- tion-States) for more info about subscription states and state
- transitions.
+ tion-States) for more info about subscription states and state transitions.
Attributes:
PENDING: TODO: type description here.
diff --git a/advancedbilling/models/update_metafield.py b/advancedbilling/models/update_metafield.py
index 1cea1cb2..2dadf71c 100644
--- a/advancedbilling/models/update_metafield.py
+++ b/advancedbilling/models/update_metafield.py
@@ -28,8 +28,7 @@ class UpdateMetafield(object):
hand, dropdown and radio have a set of allowed values that can be
input, and appear differently on a Public Signup Page. Defaults to
'text'
- enum (List[str]): Only applicable when input_type is radio or
- dropdown
+ enum (List[str]): Only applicable when input_type is radio or dropdown
"""
diff --git a/advancedbilling/models/update_segment.py b/advancedbilling/models/update_segment.py
index bdd79707..f3d8e9b5 100644
--- a/advancedbilling/models/update_segment.py
+++ b/advancedbilling/models/update_segment.py
@@ -21,8 +21,7 @@ class UpdateSegment(object):
See [Product
Components](https://help.chargify.com/products/product-components.h
tml) for an overview of pricing schemes.
- prices (List[CreateOrUpdateSegmentPrice]): TODO: type description
- here.
+ prices (List[CreateOrUpdateSegmentPrice]): TODO: type description here.
"""
diff --git a/advancedbilling/models/update_subscription.py b/advancedbilling/models/update_subscription.py
index 96cae80f..cd2f48e7 100644
--- a/advancedbilling/models/update_subscription.py
+++ b/advancedbilling/models/update_subscription.py
@@ -48,6 +48,10 @@ class UpdateSubscription(object):
`dunning_communication_delay_time_zone` attribute.
dunning_communication_delay_time_zone (str): Time zone for the Dunning
Communication Delay feature.
+ product_price_point_id (int): Set to change the current product's
+ price point.
+ product_price_point_handle (str): Set to change the current product's
+ price point.
"""
@@ -69,7 +73,9 @@ class UpdateSubscription(object):
"custom_price": 'custom_price',
"components": 'components',
"dunning_communication_delay_enabled": 'dunning_communication_delay_enabled',
- "dunning_communication_delay_time_zone": 'dunning_communication_delay_time_zone'
+ "dunning_communication_delay_time_zone": 'dunning_communication_delay_time_zone',
+ "product_price_point_id": 'product_price_point_id',
+ "product_price_point_handle": 'product_price_point_handle'
}
_optionals = [
@@ -90,6 +96,8 @@ class UpdateSubscription(object):
'components',
'dunning_communication_delay_enabled',
'dunning_communication_delay_time_zone',
+ 'product_price_point_id',
+ 'product_price_point_handle',
]
_nullables = [
@@ -115,6 +123,8 @@ def __init__(self,
components=APIHelper.SKIP,
dunning_communication_delay_enabled=APIHelper.SKIP,
dunning_communication_delay_time_zone=APIHelper.SKIP,
+ product_price_point_id=APIHelper.SKIP,
+ product_price_point_handle=APIHelper.SKIP,
additional_properties={}):
"""Constructor for the UpdateSubscription class"""
@@ -153,6 +163,10 @@ def __init__(self,
self.dunning_communication_delay_enabled = dunning_communication_delay_enabled
if dunning_communication_delay_time_zone is not APIHelper.SKIP:
self.dunning_communication_delay_time_zone = dunning_communication_delay_time_zone
+ if product_price_point_id is not APIHelper.SKIP:
+ self.product_price_point_id = product_price_point_id
+ if product_price_point_handle is not APIHelper.SKIP:
+ self.product_price_point_handle = product_price_point_handle
# Add additional model properties to the instance
self.additional_properties = additional_properties
@@ -198,6 +212,8 @@ def from_dictionary(cls,
components = APIHelper.SKIP
dunning_communication_delay_enabled = dictionary.get("dunning_communication_delay_enabled") if "dunning_communication_delay_enabled" in dictionary.keys() else APIHelper.SKIP
dunning_communication_delay_time_zone = dictionary.get("dunning_communication_delay_time_zone") if "dunning_communication_delay_time_zone" in dictionary.keys() else APIHelper.SKIP
+ product_price_point_id = dictionary.get("product_price_point_id") if dictionary.get("product_price_point_id") else APIHelper.SKIP
+ product_price_point_handle = dictionary.get("product_price_point_handle") if dictionary.get("product_price_point_handle") else APIHelper.SKIP
# Clean out expected properties from dictionary
for key in cls._names.values():
if key in dictionary:
@@ -220,4 +236,6 @@ def from_dictionary(cls,
components,
dunning_communication_delay_enabled,
dunning_communication_delay_time_zone,
+ product_price_point_id,
+ product_price_point_handle,
dictionary)
diff --git a/advancedbilling/models/void_invoice_event_data.py b/advancedbilling/models/void_invoice_event_data.py
index bef6bb54..70cc75ce 100644
--- a/advancedbilling/models/void_invoice_event_data.py
+++ b/advancedbilling/models/void_invoice_event_data.py
@@ -22,8 +22,7 @@ class VoidInvoiceEventData(object):
applied_amount (str): The amount of the void.
transaction_time (datetime): The time the refund was applied, in ISO
8601 format, i.e. "2019-06-07T17:20:06Z"
- is_advance_invoice (bool): If true, the invoice is an advance
- invoice.
+ is_advance_invoice (bool): If true, the invoice is an advance invoice.
reason (str): The reason for the void.
"""
diff --git a/doc/models/create-invoice-payment.md b/doc/models/create-invoice-payment.md
index 86acd040..537b1e02 100644
--- a/doc/models/create-invoice-payment.md
+++ b/doc/models/create-invoice-payment.md
@@ -10,10 +10,11 @@
| Name | Type | Tags | Description |
| --- | --- | --- | --- |
| `amount` | str \| float \| None | Optional | This is a container for one-of cases. |
-| `memo` | `str` | Optional | A description to be attached to the payment. |
+| `memo` | `str` | Optional | A description to be attached to the payment. Applicable only to `external` payments. |
| `method` | [`InvoicePaymentMethodType`](../../doc/models/invoice-payment-method-type.md) | Optional | The type of payment method used. Defaults to other. |
-| `details` | `str` | Optional | Additional information related to the payment method (eg. Check #) |
+| `details` | `str` | Optional | Additional information related to the payment method (eg. Check #). Applicable only to `external` payments. |
| `payment_profile_id` | `int` | Optional | The ID of the payment profile to be used for the payment. |
+| `received_on` | `date` | Optional | Date reflecting when the payment was received from a customer. Must be in the past. Applicable only to
`external` payments. |
## Example (as JSON)
diff --git a/doc/models/customer-attributes.md b/doc/models/customer-attributes.md
index 2052deed..3f793681 100644
--- a/doc/models/customer-attributes.md
+++ b/doc/models/customer-attributes.md
@@ -28,6 +28,7 @@
| `metafields` | `Dict[str, str]` | Optional | (Optional) A set of key/value pairs representing custom fields and their values. Metafields will be created “on-the-fly” in your site for a given key, if they have not been created yet. |
| `parent_id` | `int` | Optional | The parent ID in Chargify if applicable. Parent is another Customer object. |
| `salesforce_id` | `str` | Optional | (Optional) The Salesforce ID of the customer. |
+| `default_auto_renewal_profile_id` | `int` | Optional | (Optional) The default auto-renewal profile ID for the customer |
## Example (as JSON)
diff --git a/doc/models/customer.md b/doc/models/customer.md
index 937a4739..89a98fcf 100644
--- a/doc/models/customer.md
+++ b/doc/models/customer.md
@@ -27,7 +27,7 @@
| `country` | `str` | Optional | The customer shipping address country |
| `country_name` | `str` | Optional | The customer's full name of country |
| `phone` | `str` | Optional | The phone number of the customer |
-| `verified` | `bool` | Optional | Is the customer verified to use ACH as a payment method. Available only on Authorize.Net gateway |
+| `verified` | `bool` | Optional | Is the customer verified to use ACH as a payment method. |
| `portal_customer_created_at` | `datetime` | Optional | The timestamp of when the Billing Portal entry was created at for the customer |
| `portal_invite_last_sent_at` | `datetime` | Optional | The timestamp of when the Billing Portal invite was last sent at |
| `portal_invite_last_accepted_at` | `datetime` | Optional | The timestamp of when the Billing Portal invite was last accepted |
@@ -37,6 +37,8 @@
| `locale` | `str` | Optional | The locale for the customer to identify language-region |
| `default_subscription_group_uid` | `str` | Optional | - |
| `salesforce_id` | `str` | Optional | The Salesforce ID for the customer |
+| `tax_exempt_reason` | `str` | Optional | The Tax Exemption Reason Code for the customer |
+| `default_auto_renewal_profile_id` | `int` | Optional | The default auto-renewal profile ID for the customer |
## Example (as JSON)
diff --git a/doc/models/invoice-payment.md b/doc/models/invoice-payment.md
index fa204fff..414155c1 100644
--- a/doc/models/invoice-payment.md
+++ b/doc/models/invoice-payment.md
@@ -19,6 +19,8 @@
| `gateway_handle` | `str` | Optional | - |
| `gateway_used` | `str` | Optional | - |
| `gateway_transaction_id` | `str` | Optional | The transaction ID for the payment as returned from the payment gateway |
+| `received_on` | `date` | Optional | Date reflecting when the payment was received from a customer. Must be in the past. Applicable only to
`external` payments. |
+| `uid` | `str` | Optional | - |
## Example (as JSON)
diff --git a/doc/models/update-subscription.md b/doc/models/update-subscription.md
index bf42c78d..928ac7b8 100644
--- a/doc/models/update-subscription.md
+++ b/doc/models/update-subscription.md
@@ -26,6 +26,8 @@
| `components` | [`List[UpdateSubscriptionComponent]`](../../doc/models/update-subscription-component.md) | Optional | (Optional) An array of component ids and custom prices to be added to the subscription. |
| `dunning_communication_delay_enabled` | `bool` | Optional | Enable Communication Delay feature, making sure no communication (email or SMS) is sent to the Customer between 9PM and 8AM in time zone set by the `dunning_communication_delay_time_zone` attribute. |
| `dunning_communication_delay_time_zone` | `str` | Optional | Time zone for the Dunning Communication Delay feature. |
+| `product_price_point_id` | `int` | Optional | Set to change the current product's price point. |
+| `product_price_point_handle` | `str` | Optional | Set to change the current product's price point. |
## Example (as JSON)
diff --git a/pyproject.toml b/pyproject.toml
index 28fb7e70..c4883e38 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,7 +4,7 @@ requires = ["setuptools>=61.0"]
[project]
name = "maxio-advanced-billing-sdk"
description = "Ultimate billing and pricing flexibility for B2B SaaS.\nMaxio integrates directly into your product, so you can seamlessly manage your product catalog, bill customers, and collect payments."
-version = "5.1.0"
+version = "5.2.0"
readme = "README.md"
requires-python = ">=3.7"
keywords = ["Maxio", "Advaced Billing", "Payments", "Subscription"]