Skip to main content

PeachPayments Partner Library is a platform agnostic Python package to help integrating PeachPayments with their partners.

Project description

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.9+

# 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)

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

peachpayments_partner-0.1.13.tar.gz (33.1 kB view details)

Uploaded Source

Built Distribution

peachpayments_partner-0.1.13-py3-none-any.whl (34.3 kB view details)

Uploaded Python 3

File details

Details for the file peachpayments_partner-0.1.13.tar.gz.

File metadata

  • Download URL: peachpayments_partner-0.1.13.tar.gz
  • Upload date:
  • Size: 33.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.9.19 Linux/5.15.0-1053-aws

File hashes

Hashes for peachpayments_partner-0.1.13.tar.gz
Algorithm Hash digest
SHA256 458cad7b364d4f10ebdb3c5f5de7239750497fcf6a58cf052fe67aea29fb4fa8
MD5 060e281415c27e3b826e35281dc815f1
BLAKE2b-256 c7b9bfcd6e2b9b6972afe1a069e9a41dabba6c7aeac86abef20631ab15d03721

See more details on using hashes here.

File details

Details for the file peachpayments_partner-0.1.13-py3-none-any.whl.

File metadata

File hashes

Hashes for peachpayments_partner-0.1.13-py3-none-any.whl
Algorithm Hash digest
SHA256 372131cdbcb22c331e1520561856b8dc3c861d77dadd2e8c0eac5c6b3f5d50ef
MD5 b9b1b18b5a7759cb0c0a1e709b68beb0
BLAKE2b-256 0d6074eedb302f35e7c88a757cb3f2aed732598d0f55747dedf0396c0b335730

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