Skip to main content

Python library for PlaceToPay Checkout integration.

Project description

Checkout-P2P Python Integration Library

pypi codecov Build Status

This project is a Python library inspired by the PlaceToPay PHP Redirection Library. It is designed to simplify integration with the PlaceToPay Web Checkout payment gateway. This library provides a robust and user-friendly solution for managing diverse payment scenarios, including single payments, recurring subscriptions, and payments using subscription tokens.


Integration demo

Replit Checkout P2P Demo

https://github.com/user-attachments/assets/b2363b94-f59d-4ce4-8a44-72e2e503b6c2

Documentation

See the Web Checkout API docs.

Installation

You don’t need this source code unless you intend to modify the package. To simply use the package, you can install it directly by running:

pip install checkout-p2p

Contribution

If you’d like to contribute, request, or suggest adding new features to the library, please follow the installation guide in our Contribution Wiki.

Requirements

  • Python 3.13+

Usage

Here’s a quick example to get you started with the library:

1.Configuration

Set up your Settings object with the necessary credentials:

from checkout import Checkout, RedirectRequest

checkout = Checkout({
        "base_url": "https://checkout-co.placetopay.dev/",
        "login": "your_login",
        "tranKey": "your_trankey",
    })

2.Create a Payment Request

from checkout import RedirectRequest

redirect_request = RedirectRequest(
        return_url="https://example.com/return",
        ip_address="192.168.1.1",
        user_agent="Test User Agent",
        payment={"reference": "TEST _q", "description": "Test Payment", "amount": {"currency": "COP", "total": 10000}}
    )

response = checkout.request(redirect_request)

print("Redirect to:", response.process_url)

3.Query a Payment Request

query_response = checkout.query(123456)  # Replace with your request ID

print("Request Status:", query_response.status)

4 Charge using token

from checkout import CollectRequest

collect_request = CollectRequest(
        return_url="https://example.com/return",
        ip_address="192.168.1.1",
        user_agent="Test User Agent",
        instrument={"token": {"token" : "your_token_c5583922eccd6d2061c1b0592b099f04e352a894f37ae51cf1a"}},
        payer={
            "email": "andres2@yopmail.com",
            "name" : "Andres",
            "surname": "López",
            "document": "111111111",
            "documentType": "CC",
            "mobile": "+573111111111"
        },
        payment={
            "reference": "TEST_COllECT", 
            "description": "Test Payment", 
            "amount": {"currency": "COP", "total": 15000}
        }
    )

# Collect. Returns a `InformationResponse` object.
collect_response = checkout.collect(collect_request)

print("Collect Status :", collect_response.status)

5.Reverse a Payment

# Reverse a transaction. Returns a `ReverseResponse` object.
reverse_response = checkout.reverse("internal_reference")

print("Reverse Status:", reverse_response.status)

6.Invalidate token

invalidate_token_request = {
        "locale": "en_US", 
        "instrument": {"token" : {"token" : "your_token_c5583922eccd6d2061c1b0592b099f04e352a894f37ae51cf1a"}}
}

# invalite token. Returns a `Status` object.
invalidate_response = checkout.invalidate_token(invalidate_token_request)

print("Invalidate Status:", invalidate_response.status)
print("Message:", invalidate_response.message)

License

This project is licensed under the MIT License. See the LICENSE file for details.

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

checkout_p2p-1.0.0.tar.gz (42.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

checkout_p2p-1.0.0-py3-none-any.whl (76.4 kB view details)

Uploaded Python 3

File details

Details for the file checkout_p2p-1.0.0.tar.gz.

File metadata

  • Download URL: checkout_p2p-1.0.0.tar.gz
  • Upload date:
  • Size: 42.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.13.1 Linux/6.8.0-1017-azure

File hashes

Hashes for checkout_p2p-1.0.0.tar.gz
Algorithm Hash digest
SHA256 6acb2b8cd4790ae69aad1a32483c85a398c327ae6e0af798c3647764fedcc1fd
MD5 97fd7b53d0dbf81767509c17475ddf64
BLAKE2b-256 7389aa7fe0202951d9136eba0a6a2f1b03e624ed2ca7f162a4ebe75bed473f48

See more details on using hashes here.

File details

Details for the file checkout_p2p-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: checkout_p2p-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 76.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.13.1 Linux/6.8.0-1017-azure

File hashes

Hashes for checkout_p2p-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a33557adc3d6b1ace5e040353e49f1875e6851572a29601712c59f0e676ff47d
MD5 58a90897b482a9d095280c06618b08d4
BLAKE2b-256 27bd84e76c98fd70f4473e4788dbcc89e11b293a0970d00e6d10565e9550919f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page