Skip to main content

Lago Python API Client

Project description

Lago Python Client

This is a python wrapper for Lago API

PyPI version

Installation

Install the lago-python-client via pip from PyPI:

$ pip install lago-python-client

Usage

from lago_python_client import Client

client = Client(api_key = 'key')

Events

Api reference

from lago_python_client.models import Event, BatchEvent

event = Event(
    customer_id="5eb02857-a71e-4ea2-bcf9-57d8885990ba",
    transaction_id="__UNIQUE_ID__",
    code="123",
    timestamp=1650893379,
    properties={"custom_field": "custom"}
)

client.events().create(event)

event = BatchEvent(
    subscription_ids=[
      "5eb02857-a71e-4ea2-bcf9-57d8885990ba", "8ztrg2857-a71e-4ea2-bcf9-57d8885990ba"],
    transaction_id="__UNIQUE_ID__",
    code="123",
    timestamp=1650893379,
    properties={"custom_field": "custom"}
)

client.events().batch_create(event)
transaction_id = "6afadc2a-f28c-40a4-a868-35636f229765"
event = client.events().find(transaction_id)

Customers

Api reference

from lago_python_client.models import Customer, BillingConfiguration

customer = Customer(
    customer_id="5eb02857-a71e-4ea2-bcf9-57d8885990ba",
    address_line1=None,
    address_line2=None,
    city=None,
    country=None,
    email="test@example.com",
    legal_name=None,
    legal_number=None,
    logo_url=None,
    name="test name",
    phone=None,
    state=None,
    url=None,
    vat_rate=None,
    zipcode=None,
    billing_configuration=BillingConfiguration(
      payment_provider=None,
      provider_customer_id=None,
      sync=None
    )
)
client.customers().create(customer)
customer_usage = client.customers().current_usage('customer_id', 'subscription_id')

Invoices

Api reference

from lago_python_client.models import InvoiceStatusChange

status_change = InvoiceStatusChange(
    status="succeeded"
)
client.invoices().update(status_change, '5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba')

client.invoices().find('5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba')

client.invoices().find_all({'per_page': 2, 'page': 1})

Organizations

Api reference

from lago_python_client.models import Organization

params = Organization(
    webhook_url="https://new.url",
    vat_rate=14.2
)
client.organizations().update(params)

Invoice Download

invoice = client.invoices().download('5eb02857-a71e-4ea2-bcf9-57d8885990ba')

Subscriptions

Api reference

from lago_python_client.models import Subscription

subscription = Subscription(
    customer_id="5eb02857-a71e-4ea2-bcf9-57d8885990ba",
    plan_code="code",
    unique_id="12345",
    name="display name"
)
client.subscriptions().create(subscription)

update_params = Subscription(
    name='new name'
)
client.subscriptions().update(update_params, 'id')

client.subscriptions().destroy('id')

client.subscriptions().find_all({'customer_id': '123'})

Applied coupons

Api reference

from lago_python_client.models import AppliedCoupon

applied_coupon = AppliedCoupon(
  customer_id="5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
  coupon_code="code",
  amount_cents=123,
  amount_currency="EUR"
)

client.applied_coupons().create(applied_coupon)

Applied add-ons

Api reference

from lago_python_client.models import AppliedAddOn

applied_add_on = AppliedAddOn(
  customer_id="5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
  add_on_code="code",
  amount_cents=123,
  amount_currency="EUR"
)

client.applied_add_ons().create(applied_add_on)

Billable metrics

Api reference

from lago_python_client.models import BillableMetric

billable_metric = BillableMetric(
    name='name',
    code='code_first',
    description='desc',
    aggregation_type='sum_agg',
    field_name='amount_sum'
)
client.billable_metrics().create(billable_metric)

update_params = BillableMetric(
    name='new name'
)
client.billable_metrics().update(update_params, 'code')

client.billable_metrics().find('code')

client.billable_metrics().destroy('code')

client.billable_metrics().find_all({'per_page': 2, 'page': 1})

Coupons

Api reference

from lago_python_client.models import Coupon

coupon = Coupon(
    name='name',
    code='code_first',
    amount_cents=1000,
    amount_currency='EUR',
    expiration='no_expiration',
    expiration_duration=10
)
client.coupons().create(coupon)

update_params = Coupon(
    name='new name'
)
client.coupons().update(update_params, 'code')

client.coupons().find('code')

client.coupons().destroy('code')

client.coupons().find_all({'per_page': 2, 'page': 1})

Add-ons

Api reference

from lago_python_client.models import AddOn

add_on = AddOn(
    name='name',
    code='code_first',
    amount_cents=1000,
    amount_currency='EUR',
    description='desc'
)
client.add_ons().create(add_on)

update_params = AddOn(
    name='new name'
)
client.add_ons().update(update_params, 'code')

client.add_ons().find('code')

client.add_ons().destroy('code')

client.add_ons().find_all({'per_page': 2, 'page': 1})

Plans

Api reference

from lago_python_client.models import Plan, Charges, Charge

charge = Charge(
    billable_metric_id='id',
    charge_model='standard',
    amount_currency='EUR',
    properties={
        'amount': '0.22'
    }
)
charges = Charges(__root__=[charge])

plan = Plan(
    name='name',
    code='code_first',
    amount_cents=1000,
    amount_currency='EUR',
    description='desc',
    interval='weekly',
    pay_in_advance=True,
    charges=charges
)
client.plans().create(plan)

update_params = Plan(
    name='new name'
)
client.plans().update(update_params, 'code')

client.plans().find('code')

client.plans().destroy('code')

client.plans().find_all({'per_page': 2, 'page': 1})

Development

Install the dependencies

pip install .

Run tests

python3 -m unittest tests

Documentation

The Lago documentation is available at doc.getlago.com.

Contributing

The contribution documentation is available here

License

Lago Python client is distributed under AGPL-3.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lago-python-client-0.3.1.tar.gz (25.8 kB view details)

Uploaded Source

Built Distribution

lago_python_client-0.3.1-py3-none-any.whl (41.1 kB view details)

Uploaded Python 3

File details

Details for the file lago-python-client-0.3.1.tar.gz.

File metadata

  • Download URL: lago-python-client-0.3.1.tar.gz
  • Upload date:
  • Size: 25.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for lago-python-client-0.3.1.tar.gz
Algorithm Hash digest
SHA256 2764bff5b8b6b6d02d28995d3bd5c01ff0be02ddb9506340bd2dd27e0967ec79
MD5 ee41cd56a8d42530237abc352fe00964
BLAKE2b-256 8434951926adc9ca4da3b78cc1be2820e9f8b5ab89b289c257dba8e25eaafb1c

See more details on using hashes here.

File details

Details for the file lago_python_client-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for lago_python_client-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fc68c0d9f156485f4726ef92254019fcc22723a46e72f98df90644d023402ada
MD5 7e6302d1071d3737eb5a5a373a0392a1
BLAKE2b-256 5833d3553ea80dd4950be7366bbc849da8b31442bb4fa22cfaaeb892e0791a78

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page