Plans API
The Plans API enables you to create, modify, and manage recurring billing plans.
To initialize the Plans class, use the following:
from plans import Plans
from config import get_api_key
plans_api = Plans(api_key=get_api_key(), mode='test')
Create a Plan
Creates a new recurring billing plan.
Usage Example
response = plans_api.create(
name='Monthly Plan',
amount=1000,
interval=1,
interval_unit='month',
currency='AUD',
setup_amount=500,
customer_permissions=["update", "cancel"]
)
print(response)
Response Example
{
"response": {
"token": "plan_token_1",
"name": "Monthly Plan",
"amount": 1000,
"interval": 1,
"interval_unit": "month",
"currency": "AUD",
"setup_amount": 500
},
"status": 201
}
List Plans
Retrieves a paginated list of all plans.
Usage Example
response = plans_api.list()
print(response)
Response Example
{
"response": [
{
"token": "plan_token_1",
"name": "Monthly Plan",
"amount": 1000,
"interval": 1,
"interval_unit": "month",
"currency": "AUD"
}
],
"status": 200
}
Retrieve Plan Details
Gets details of a specific plan by its token.
Usage Example
response = plans_api.details(plan_token="plan_token_1")
print(response)
Response Example
{
"response": {
"token": "plan_token_1",
"name": "Monthly Plan",
"amount": 1000,
"interval": 1,
"interval_unit": "month",
"currency": "AUD"
},
"status": 200
}
Update a Plan
Updates details of an existing plan.
Usage Example
response = plans_api.update(
plan_token="plan_token_1",
name="Updated Plan Name",
customer_permissions=["cancel"]
)
print(response)
Response Example
{
"response": {
"token": "plan_token_1",
"name": "Updated Plan Name",
"customer_permissions": ["cancel"]
},
"status": 200
}
—
Delete a Plan
Deletes a plan along with its subscriptions.
Usage Example
response = plans_api.delete(plan_token="plan_token_1")
print(response)
Response Example
{
"status": 204
}
Create a Subscription
Creates a new subscription under a specific plan.
Usage Example
response = plans_api.create_subscription(
plan_token="plan_token_1",
customer_token="customer_token_1",
card_token="card_token_1"
)
print(response)
Response Example
{
"response": {
"token": "subscription_token_1",
"status": "active",
"plan_token": "plan_token_1",
"customer_token": "customer_token_1"
},
"status": 200
}
List Subscriptions
Lists all subscriptions under a specific plan.
Usage Example
response = plans_api.list_subscriptions(plan_token="plan_token_1")
print(response)
Response Example
{
"response": [
{
"token": "subscription_token_1",
"status": "active",
"plan_token": "plan_token_1",
"customer_token": "customer_token_1"
}
],
"status": 200
}
Tip
Learn More
To learn more about plans functionality, refer to: pin_payments.plans