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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: payload-api-0.4.1.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.1.tar.gz
Algorithm Hash digest
SHA256 4f407dc41fbd65ed8e5bafa0d55ac3e3345a60f935c5eb7ba4a58096babb5c6c
MD5 b5c0ef6f71d8928b4e69629aa3d91d72
BLAKE2b-256 c47a4cd2dc885ef195b2bd214c8692da75f86a1b4bbb68aa1f54fa223bd8a5cf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: payload_api-0.4.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c80976ba0284544bd07e07d94a3e7dd83cac2c55f7a9026e89b8ee9838bca36c
MD5 50620ebd37737f50e0e0f7796ff7fd98
BLAKE2b-256 b4ccaba74037f9961088a7fbf261afc561f066225650caad2326e61b923208a8

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