Skip to main content

Payload Python Library

Project description

Payload Python Library

A Python library for integrating Payload.

Installation

Install using pip

pip install payload-api

Get Started

Once you've installed the Payload Python library to your environment, import the payload module to get started. Note: We recommend using the shorthand name of pl when importing.

import payload as pl

API Authentication

To authenticate with the Payload API, you'll need a live or test API key. API keys are accessible from within the Payload dashboard.

import payload as pl
pl.api_key = 'secret_key_3bW9JMZtPVDOfFNzwRdfE'

Session based:

import payload
pl = payload.Session('secret_key_3bW9JMZtPVDOfFNzwRdfE')

Creating an Object

Interfacing with the Payload API is done primarily through Payload Objects. Below is an example of creating a customer using the pl.Customer object.

# Create a Customer
customer = pl.Customer.create(
	email='matt.perez@example.com',
	name='Matt Perez'
)
# Create a Payment
payment = pl.Payment.create(
    amount=100.0,
    payment_method=pl.Card(
        card_number='4242 4242 4242 4242'
    )
)

Accessing Object Attributes

Object attributes are accessible through dot notation.

customer.name

Updating an Object

Updating an object is a simple call to the update object method.

# Updating a customer's email
customer.update( email='matt.perez@newwork.com' )

Selecting Objects

Objects can be selected using any of their attributes.

# Select a customer by email
customers = pl.Customer.filter_by(
    email='matt.perez@example.com'
)

Use the pl.attr attribute helper interface to write powerful queries with a little extra syntax sugar.

payments = pl.Payment.filter_by(
    pl.attr.amount > 100,
    pl.attr.amount < 200,
    pl.attr.description.contains("Test"),
    pl.attr.created_at > datetime(2021,2,1)
).all()

Testing the Payload Python Library

Tests are contained within the tests/ directory. To run a test file, once within the pipenv shell, enter the command in terminal

TEST_SECRET_KEY=test_api_key pytest tests/{__FILENAME__}.py

Documentation

To get further information on Payload's Python library and API capabilities, visit the unabridged Payload Documentation.

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

payload-api-0.4.3.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

payload_api-0.4.3-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file payload-api-0.4.3.tar.gz.

File metadata

  • Download URL: payload-api-0.4.3.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

File hashes

Hashes for payload-api-0.4.3.tar.gz
Algorithm Hash digest
SHA256 af0d1d1a1f53587c79a5b1b15ec538475d0533bcc62e271e93b49a6281ffb6a6
MD5 e48797ba6171788d8dc4cd0690d42359
BLAKE2b-256 bcea9c8464d213f6e80fb4e98b40b54ac6c99e4f8b687659e70c3906adce2f09

See more details on using hashes here.

File details

Details for the file payload_api-0.4.3-py3-none-any.whl.

File metadata

  • Download URL: payload_api-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

File hashes

Hashes for payload_api-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 499950dd3be89badbb81ea1c920ea8e311f57ec5818ded5a5a9aa9ddd6768f3f
MD5 732b0e0d4139e5391e724f92e47fb2ce
BLAKE2b-256 42aea0d58cf6ce9795a53d57aab97efa5111ee5d31123684ce6ea7ebf4760d2e

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