Skip to main content

Peach Partner Library

Overview

Peach Partner Library is a platform-agnostic Python package to help Payment Service Providers in integrating with PeachPayments.

Documentation:

Source Code: https://gitlab.com/peachpayments/peach-partner-python/


Key terms

Term Definition
Partner API A service provided by Peach Payments to enable Payment Service Providers to become available on the Peach Platform
Payment Service Provider A payment service provider who integrates with the Partner API
Outbound API call API calls sent from Partner API to the Payment Service Provider
Inbound API call API calls sent from Payment Service Provider to Partner API

Installation

Package requires Python 3.12+

# pip
$ pip3 install peachpayments-partner
# poetry
$ poetry add peachpayments-partner

Result codes

from peachpayments_partner.result_codes import result_codes

result_codes.TRANSACTION_SUCCEEDED.code == "000.000.000"
result_codes.get("000.000.000").name == "TRANSACTION_SUCCEEDED"
result_codes.get("000.000.000").description == "Transaction succeeded"

Authentication

Requests to Payment Service Provider

PeachPayments uses an authorization token (JWT) in each request made to the Payment Service Provider. This library provides the authentication.is_authenticated method, which takes the token as an argument and the authentication.get_key to collect the signing_key.

The is_authenticated method has only one required argument, the token. If it's called without the optional signing_key it will collect the key using the get_key method. If it's called without the optional audience it will try to use the environment variable AUTH0_AUDIENCE.

The method decodes the token. If that succeeds, it returns True. Otherwise, it raises an AuthError exception.

Formatting error responses

PeachPayments requires the error responses to be formatted in a specific way. This library provides the format_error_response method, which takes a dict containing error response as an argument and returns a formatted error response.

def format_error_response(code, errors, data):

The errors dict might look like this:

{
    "status": ["Not a valid string."],
    "code": ["Missing data for required field."],
}

The data dict might look like this:

{
  "status": 10
}

With the code as ResultCodes.INVALID_OR_MISSING_PARAMETER, the formatted error response will look similar to this:

{
    "result": {
      "code": "200.300.404",
      "description": "invalid or missing parameter",
      "parameterErrors": [
          {
              "value": 10,
              "name": "status",
              "message": "Not a valid string."
          },
          {
              "name": "code",
              "message": "Missing data for required field."
          }
      ]
  },
  "timestamp": "2021-08-03T16:16:30.992618Z"
}

Fixtures

This library provides examples of valid requests and responses.

An example of the recommended usage for testing:

import pytest
from copy import deepcopy
from peachpayments_partner.fixtures import DEBIT_RESPONSE

@pytest.fixture
def debit_response():
    return deepcopy(DEBIT_RESPONSE)

Metadata

Release files for peachpayments-partner 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for peachpayments-partner 1.0.0
File Size Uploaded Provenance Actions
peachpayments_partner-1.0.0.tar.gz 34.6 kB Without provenance Details for peachpayments_partner-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for peachpayments-partner 1.0.0
File Interpreter ABI Platform Actions
peachpayments_partner-1.0.0-py3-none-any.whl Python 3 none any Details for peachpayments_partner-1.0.0-py3-none-any.whl

Total release size: 70.6 kB

Release files / peachpayments_partner-1.0.0.tar.gz

Download URL peachpayments_partner-1.0.0.tar.gz
Size 34.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ac7fc73de82e585192b3dfc806f70506ece0d45e97edd143fa9b5443d164a2a0
BLAKE2b-256 checksum
How to use checksums
12f5d0b1b56394e8e043a5446eee7af1ce0f8f4c1f230c4c7c0593925c270e84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.3 CPython/3.12.15 Linux/6.8.0-1033-aws

Release files / peachpayments_partner-1.0.0-py3-none-any.whl

Download URL peachpayments_partner-1.0.0-py3-none-any.whl
Size 36.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d616c2907067b1dd442ed29adecbc5cd92d86500625f51f280ea8b3bd236694
BLAKE2b-256 checksum
How to use checksums
a2e5a49c42d7ffde47bc782a6c56866a77f49af140796da84221df94c3181917
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.3 CPython/3.12.15 Linux/6.8.0-1033-aws

Security for peachpayments-partner 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page