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.mp4
See the Web Checkout API docs.
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
If you’d like to contribute, request, or suggest adding new features to the library, please follow the installation guide in our Contribution Wiki.
- Python 3.13+
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)
This project is licensed under the MIT License. See the LICENSE file for details.