Skip to main content

Procuret API Library

Project description

Procuret Python

A Python library for interfacing with Procuret API. Procuret is a business - to - business payment platform that allows customers to pay for purchases over time, while the supplier is paid upfront.

Contents

  1. Installation
  2. Documentation
  3. Support

Installation

Procuret Python may be installed via PIP:

$ pip install procuret

To update Procuret Python to the latest version, use pip --upgrade:

$ pip install --upgrade procuret

Documentation

Procuret Python offers a library of classes that map to services provided by the Procuret API.

Session

Sessions are the means of authenticating requests to the Procuret API. All requests to Procuret API, save for those creating Sessions themselves, require a Session.

In Procuret Python, the Session class will handle all authentication for you. For example, it will compute the SHA256 signature that must be included in your HTTP headers.

Properties

  • .session_id: int - A 63-bit positive integer uniquely identifying this Session. Session will include this number in requests to Procuret API, so that Procuret API can identify you.
  • .api_key - A 192-bit random number encoded in urlsafe base64 and generated in a cryptographically secure manner. Session will use this key to sign your requests to Procuret API using the SHA256 algorithm.

Methods

.create_with_email(...) -> Session

Use .create_with_email() to create a new Session. This is analogous to "logging in" to the Procuret API.

Parameters
  1. email: str - Your account email
  2. plaintext_secret: str - Your plaintext passphrase
  3. perspective: Perspective - an instance of Perspective
Example Usage
session = Session.create_with_email(
    email='me@somedomain.com',
    plaintext_secret='excellent passphrase',
    perspective=Perspective.SUPPLIER
)

InstalmentLink

InstalmentLink facilitates the creation of customised links to the Procuret Instalment Product (PIP). PIP allows a customer Business to pay for a purchase over time, while you the Supplier are paid upfront.

When you create an InstalmentLink, you can ask Procuret to send an email to the customer Business on your behalf.

Properties

  • .invitee_email: str - The email address you associated with the link
  • .invoice_amount: Decimal - The invoice amount presented by the link
  • .invoice_identifier: str - The invoice ID presented by the link
  • .url: str - The URL of the link

Methods

.create(...) -> InstalmentLink
Parameters
  1. supplier: Union[int, EntityHeadline] - Either the unique integer identifier of your Supplier entity in Procuret, or an instead of EntityHeadline describing your Supplier entity.
  2. invoice_amount: Decimal - The amount that you wish to charge the customer, in Australian dollars.
  3. invoice_email: str - The email address you wish to associate with this link.
  4. invoice_identifier: str - Your own identifier for the invoice. For example, you might use an invoice number from your accounting system.
  5. communication: CommunicationOption - An instance of CommunicationOption, which will tell Procuret API what you want it to do with the supplied email address.
  6. session: Session - An instance of Session, which will be used to authenticate your request.
Example usage
# First we get a Session. In this case we authenticate with email and
# passphrase. In a real integration, you might store the Session elsehwhere.
session = Session.create_with_email(
    email=email,
    plaintext_secret=secret,
    perspective=Perspective.SUPPLIER
)

# Now we use the Session in an InstalmentLink.create() call, along with
# the parameters describing the link. By supplying
# CommunicationOption.EMAIL_CUSTOMER, we tell Procuret that we would like
# Procuret to send an email to the customer on our behalf inviting them
# to pay using the link.
link = InstalmentLink.create(
    supplier=supplier_id,
    invoice_amount=Decimal('422.42'),
    invitee_email='someone@great-domain.org',
    invoice_identifier='T 055',
    communication=CommunicationOption.EMAIL_CUSTOMER,
    session=session
)

Perspective

Perspective is an enumeration of possible angles from which a client can engage with Procuret. If you wish to use Procuret services from the perspective of a Supplier, you will create a Session with the Perspective.SUPPLIER case.

Cases

  • .SUPPLIER
  • .BUSINESS

CommunicationOption

An enumeration of instructions you can send Procuret in some contexts, to tell it how you wish for it to contact (or not contact) the a customer.

Cases

  • .EMAIL_CUSTOMER - Procuret will contact the customer by email
  • .DO_NOT_CONTACT_CUSTOMER - Procuret will not try to contact the customer

Support

Please contact us anytime at support@procuret.com with any questions. To chat with us less formally, please feel free to tweet @hugh_jeremy.

For more general information about Procuret, please visit procuret.com.

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

procuret-0.0.19.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

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

procuret-0.0.19-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

Details for the file procuret-0.0.19.tar.gz.

File metadata

  • Download URL: procuret-0.0.19.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

File hashes

Hashes for procuret-0.0.19.tar.gz
Algorithm Hash digest
SHA256 ea7790e3cdbbace87abea7ae1d74d1a04a109db01768e3683a3fff1601190f21
MD5 b7ceb5924652c4639538ae2237da7498
BLAKE2b-256 03bf84b79645f75b28165953ed9f9b18f6020aaad23e5ac7b092c83ee5c95773

See more details on using hashes here.

File details

Details for the file procuret-0.0.19-py3-none-any.whl.

File metadata

  • Download URL: procuret-0.0.19-py3-none-any.whl
  • Upload date:
  • Size: 33.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

File hashes

Hashes for procuret-0.0.19-py3-none-any.whl
Algorithm Hash digest
SHA256 16de17b84e14159ba57f15b4f111c425f23c2e910bdab984652c8fa332bc12d6
MD5 423098f900dd42ed1182e5e8c0b16938
BLAKE2b-256 090deff130974738fa0fb8eecac0b08bd729f2103cdae6b844012d6f3a991679

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