Skip to content

official python sdk for interacting with thepeer payment processing infrastructure

Notifications You must be signed in to change notification settings

thepeerstack/python-sdk

Repository files navigation

Thepeer python-sdk

example workflow PyPI - Downloads PyPI - License PyPI Codecov

Thepeer's official python sdk for developers to use in their python projects.

  • To start using this sdk, create an account at https://thepeer.co/ if you haven't already.
  • You can then retrieve your API keys from your dashboard

Installation

To install this sdk, run the command:

pip install pythepeer

Usage

Instantiate Thepeer class like so:

from thepeer import Thepeer

# create an instance of Thepeer class

thepeer_instance = Thepeer("YOUR_API_KEY_HERE")

Available methods exposed by the sdk

Note:

Indexing a user

This method describes how to index a user on your account (this is usually the first step before using other methods)

test = thepeer_instance.index_user("Osagie Iyayi", "[email protected]", "[email protected]")

Parameters supported

Parameters Data type Required Description
name string true The name of user to be indexed.
identifier string true the identifier of the account(either email or username).
email string true the email of the user

Validating a HMAC signature

This method validates incoming an hmac signature with the payload and credentials that was passed with it

Pro Tip: it is used to verify that an incoming webhook event/response is coming from thepeer's servers

test = thepeer_instance.validate_signature(data,signature)

Parameters supported

Parameters Data type Required Description
data dictionary true the payload containing the data to be authenticated
signature string true The HMAC signature

Get an indexed user

This method gets the information of an indexed user

test = thepeer_instance.view_user("3bbb0fbf-82fa-48a0-80eb-d2c0338fe7dd")

Parameters supported

Parameters Data type Required Description
reference string true the unique reference returned when the user was indexed

Get all indexed users

This method returns all indexed users for a specific account

test = thepeer_instance.all_users(1,15)

Parameters supported

Parameters Data type Required Description
page integer false the first page displaying all the indexed users. defaults to 1
per_page integer false The number of users to display per page. defaults to 15

Update an indexed user

This method helps to update the details of an indexed user

test = thepeer_instance.update_user(reference,**data)

Parameters supported

Parameters Data type Required Description
reference string true the unique reference returned when the user was indexed
data Any true A keyword argument which contains on or more of the indexed user's email, name or identifier

Sample

test = thepeer_instance.update_user("3bbb0fbf-82fa-48a0-80eb-d2c0338fe7dd", identifier="[email protected]",
    name="Edmond Kirsch",
    email="[email protected]")

Remove an indexed user

This method helps to remove the details of an indexed user from a specific account

test = thepeer_instance.delete_user("3bbb0fbf-82fa-48a0-80eb-d2c0338fe7dd")

Parameters supported

Parameters Data type Required Description
reference string true the unique reference returned when the user was indexed

Get Businesses

This method returns businesses based on the API they integrated.

test = thepeer_instance.get_businesses("checkout")

Parameters supported

Parameters Data type Required Description
channel string true The specific API to return businesses of. supported values are send, checkout, and direct_charge

Generate a Checkout

This method allows you to generate a link for your customer to make a one-time payment with

test = thepeer_instance.generate_checkout({
    "amount": 1000000,
    "currency": "NGN",
    "redirect_url": "https://esportfolio.netlify.app",
    "email": "[email protected]",
    "meta":{
        "name": "Eddie Kirsch",
        "identifier": "eddiekirsch",
    }
})

Parameters required

Parameters Data type Required Description
redirect_url string false The url Thepeer should redirect to after the customer completes payment.
amount integer true The amount you are debiting the customer. This should be in kobo. The minimum value is 10000
email string true The customer’s email address
currency string true The currency the transaction should be carried out in. The supported value is NGN.
meta dictionary false An object containing additional attributes you will like to have in your transaction response.

Get user links

This method returns all linked accounts of a user, the user’s account details, as well as the business the account is on.

test = thepeer_instance.get_user_links("3bbb0fbf-82fa-48a0-80eb-d2c0338fe7dd")

Parameters required

Parameters Data type Required Description
reference string true the unique reference returned when the user was indexed

Get single link (linked account)

This method returns a user's linked account's details.

test = thepeer_instance.get_single_link("da14a90c-61c2-4cf7-a837-e3112a2d0c3d")

Parameters required

Parameters Data type Required Description
link_id string true The link’s identifier

Charge a link

This method allows a business to charge a user via their linked account

test = thepeer_instance.charge_link(link_id, amount, remark, currency)

Parameters required

Parameters Data type Required Description
link_id string true The link’s identifier
amount integer true the amount of the whole transaction
remark string true short detail about the transaction
currency string false The denomination medium of paying (either one of NGN and USD). defaults to NGN

Authorize charge

This method allows a business to authorize a direct charge request made by a user

test = thepeer_instance.authorize_charge(charge_reference, event)

Parameters required

Parameters Data type Required Description
charge_reference string true the reference associated to a pending charge request
event string true the type of webhook event

Pro Tip: the various types of webhook events are available here

Get transaction detail

This method gets the details of a transaction

test = thepeer_instance.get_transaction_detail("eda58ee3-4f2c-4aa4-9da7-10a2b8ced453")

Parameters required

Parameters Data type Required Description
transaction_id string true the unique transaction identifier

Refund transaction

This method allows a business to refund a transaction back to the user for obvious reasons

test = thepeer_instance.refund_transaction("28e52edf-16d9-4921-8a54-ef34d7029707", "possible threat actor"):

Parameters required

Parameters Data type Required Description
transaction_id string true the unique transaction identifier
reason string false a short sentence explaining reasons for the refund