Subscription
Subscription: Search
- Python
collection = gateway.subscription.search(
braintree.SubscriptionSearch.plan_id == "the_plan_id"
)
for subscription in collection.items:
print(subscription.billing_day_of_month)
Subscription: Find
instead.
Parameters
The number of billing cycles remaining in the subscription.
'created_at'
rangeThe date/time the subscription was created.
'days_past_due'
rangeThe number of days past due the subscription is.
'id'
textThe ID of the subscription.
'ids'
multipleA list of subscription IDs to search for.
'in_trial_period'
multipleWhether the subscription is in a trial period. Can be True or False. This parameter must be used in conjunction with status
.
'merchant_account_id'
multipleA list of merchant account IDs to search for.
A fragment of the merchant account ID to search for.
'contains'
textA part of the merchant account ID to search for.
'ends_with'
textA postfix for the merchant account ID to search for.
'is'
textAn exact merchant account ID to search for.
'is_not'
textA merchant account ID to be excluded from the search.
'starts_with'
textA prefix for the merchant account ID to search for.
'next_billing_date'
rangeThe date the subscription will next be billed.
'plan_id'
multipleA list of plan IDs to search for.
'price'
rangeThe price of the subscription.
'status'
multipleThe status of the subscription. Possible values:
Active
Canceled
PastDue
Pending
Expired
'transaction_id'
textThe transaction ID associated with the subscription.
Examples
Searching by price
Searching on price uses a range field.
- Python
search_results = gateway.subscription.search(
braintree.SubscriptionSearch.price >= Decimal("950")
)
Searching by plan ID
Searching on plan ID uses a multiple value field.
- Python
search_results = gateway.subscription.search(
braintree.SubscriptionSearch.plan_id.in_list("silver_plan", "gold_plan")
)
Searching by status
Searching on status uses a multiple value field.
- Python
search_results = gateway.subscription.search(
braintree.SubscriptionSearch.status == braintree.Subscription.Status.Active
)
search_results = gateway.subscription.search(
braintree.SubscriptionSearch.status.in_list(
braintree.Subscription.Status.Active,
braintree.Subscription.Status.Canceled,
braintree.Subscription.Status.Expired,
braintree.Subscription.Status.PastDue,
braintree.Subscription.Status.Pending
)
)
- Python
search_results = gateway.subscription.search(
braintree.SubscriptionSearch.status == braintree.Subscription.Status.Active
)
search_results = gateway.subscription.search(
braintree.SubscriptionSearch.status == braintree.Subscription.Status.Active,
braintree.SubscriptionSearch.in_trial_period == True
)
search_results = gateway.subscription.search(
braintree.SubscriptionSearch.status == braintree.Subscription.Status.Active,
braintree.SubscriptionSearch.in_trial_period == False
)
Searching by days past due
Searching on days past due uses a range field.
- Python
search_results = gateway.subscription.search(
braintree.SubscriptionSearch.days_past_due.between(2, 10)
)
Note
In versions prior to , you can only search on days past due
as a specific number, rather than using a range search. For these versions, if you want
subscriptions that have been past due between 1 and 5 days, you will need to run 5 searches.
Searching by merchant account ID
Searching on merchant account ID acts like a multiple value
field.
- Python
search_results = gateway.subscription.search(
braintree.SubscriptionSearch.merchant_account_id == "usd_merchant_account"
)
Searching by billing cycles remaining
Searching on billing cycles remaining will find subscriptions which have a set limit to the number
of times they will recur. It uses a range field.
- Python
search_results = gateway.subscription.search(
braintree.SubscriptionSearch.billing_cycles_remaining >= 7
)
Searching by next billing date
Searching on next billing date will return subscriptions that will bill again during the date range
you have given it. The example below will return any subscriptions that will be billed in the next
five days.
- Python
next_billing_date_cutoff = datetime.today() + timedelta(days=5)
search_results = gateway.subscription.search(
braintree.SubscriptionSearch.next_billing_date <= next_billing_date_cutoff
)
Searching by created-at date/time
Searching on created-at date/time will return subscriptions that were created during the range you
have given.
- Python
search_results = gateway.subscription.search(
braintree.SubscriptionSearch.created_at.between(
datetime.datetime.now() - datetime.timedelta(days=1),
datetime.datetime.now()
)
)
Searching a combination
You can combine any of the search fields into a single search.
- Python
search_results = gateway.subscription.search(
braintree.SubscriptionSearch.plan_id == "gold_plan",
braintree.SubscriptionSearch.status == braintree.Subscription.Status.Active
)
Searching prior to version 2.5.0
Prior to version 2.5.0, literal lists must be passed as arguments to all search methods.
- Python
search_results = gateway.subscription.search([
braintree.SubscriptionSearch.plan_id.in_list([
"silver_plan",
"gold_plan"
])
])