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.2.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

payload_api-0.4.2-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: payload-api-0.4.2.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.2.tar.gz
Algorithm Hash digest
SHA256 f2370da2aefa6b44cd4be94d489c933de33ca7a68d004c10f366ba2543b95e12
MD5 4f7fbeae36cfe8a1688a5e29b9d2ab27
BLAKE2b-256 d3eb428ce681e75d93bb8e36b787df20b567b66df364bf1ce71bd82c81dd703e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: payload_api-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 17.5 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a9382634dc15bdac58fea60277e9ddd6d0786d7a497af3b47d38211fc7499cfd
MD5 aa7b3b47fce885d9597cf7cd739eea3e
BLAKE2b-256 4f06ea3d22208505fa33cdb69810257a2e4902367ab154a47c403039b368e4d3

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