Skip to main content

PeachPayments Partner Pydantic library contains Pydantic schemas to help integrate PeachPayments with their partners.

Project description

PeachPayments Partner Pydantic Library

Overview

PeachPayments Partner Pydantic Library is a platform-agnostic Python package to help Payment Service Providers in integrating with PeachPayments. This library provides functionality to validate request and response data using Pydantic Python library.

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


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

Usage

Package requires Python 3.9+

Installation

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

Field validation

Scenario: Payment Service Provider written in FastAPI receives a debit request from PeachPayments.

# ... imports
from peachpayments_partner_pydantic.schemas import DebitRequest, DebitResponse

@router.post(
    "/v1/debit",
    response_model=schemas.DebitResponse,
)
def debit_request(
    *, debit_in: schemas.DebitRequest
) -> Any:
    # Store the transaction
    transaction = Transaction.create_from_debit(debit_in)
    # Validate the debit response
    debit_response = DebitResponse(**transaction.to_debit_response_fields())
    return debit_response.dict()

Translating exception to PeachPayments error response

Scenario: Payment Service Provider written in FastAPI receives a request with a validation error from PeachPayments.

1. Write validation exception handler

# app/exception_handlers.py
from fastapi import Request, status
from fastapi.exceptions import RequestValidationError
from fastapi.responses import JSONResponse
from peachpayments_partner_pydantic.exception_handlers import exception_to_response

async def validation_exception_handler(request: Request, exc: RequestValidationError) -> JSONResponse:
    return JSONResponse(status_code=status.HTTP_400_BAD_REQUEST, content=exception_to_response(exc))

2. Connect it to the application

# app/main.py
from fastapi import FastAPI
from fastapi.exceptions import RequestValidationError
from app.exception_handlers import validation_exception_handler

application = FastAPI(
    exception_handlers={RequestValidationError: validation_exception_handler},
)

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_pydantic-1.2.0.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file peachpayments_partner_pydantic-1.2.0.tar.gz.

File metadata

File hashes

Hashes for peachpayments_partner_pydantic-1.2.0.tar.gz
Algorithm Hash digest
SHA256 82b6804de5bb2e1848f181610a3b68812bc66732a7e3abc00d3f13e41e7ece6e
MD5 8a725db50054c2d6fe02d48dbea4bd8c
BLAKE2b-256 7a30639ab397d39239f9b7c2da159968828e6e36dc67074bb7e228153790645f

See more details on using hashes here.

File details

Details for the file peachpayments_partner_pydantic-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for peachpayments_partner_pydantic-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9f6a815f13a375d73f0e3c102a4079b900c5182be5235915ab792f3c3021a090
MD5 036b12b15bc50303498b3d0e00df6b64
BLAKE2b-256 3450073e7c9a51a5919d003586bd24aaa2129ddb76a0a25eca155e4cb5bc7676

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