Skip to content

Latest commit

 

History

History
124 lines (99 loc) · 2.69 KB

File metadata and controls

124 lines (99 loc) · 2.69 KB

Pvium Python SDK

Python SDK equivalent of the Pvium TypeScript SDK.

Project Structure

pvium-sdk/
  src/pvium_sdk/
    core/
      client.py
      types.py
      sdk.py
      async_sdk.py
    services/
      invoice/
        endpoints.py
      oauth/
        oauth.py
      invites/
        invites.py
      payout/
        payout.py
      webhooks/
        webhooks.py
      ...compatibility wrapper modules...
    crypto/
      signing.py
      invite_merkle.py
    __init__.py
    ...compatibility wrapper modules...
  tests/
    ...pytest suite...
  pyproject.toml
  README.md

Install

pip install -e .

For development and tests:

pip install -e '.[dev]'

Quick Start

from pvium_sdk import PviumSdk, PviumSdkConfig

pvium = PviumSdk.init(
    PviumSdkConfig(
        environment="sandbox",
        apiKey="your_api_key",
        clientId="your_client_id",
    )
)

invoices = pvium.endpoints.listInvoices()
print(invoices)

Async Usage

AsyncPviumSdk preserves the same service surface as PviumSdk and runs service calls in a worker thread.

from pvium_sdk import AsyncPviumSdk, PviumSdkConfig

sdk = AsyncPviumSdk.init(
  PviumSdkConfig(baseUrl="https://api-sandbox.pvium.com/v1", apiKey="your_api_key")
)

# await any service method
invoices = await sdk.endpoints.listInvoices()

Run Tests

pytest

Services

  • pvium.endpoints

    • createInvoice(body, options=None)
    • listInvoices(options=None)
    • getInvoiceStatus(code, options=None)
    • cancelInvoice(invoice_id, options=None)
    • getInstallmentPayments(installment_id, options=None)
  • pvium.oauth

    • exchangeCodeForToken(input, options=None)
    • refreshAccessToken(input, options=None)
    • getAccessTokenFromRefreshToken(input, options=None)
    • getUserInfo(options=None)
  • pvium.invites

    • createBundle(input)
    • signBundle(bundle, signer)
    • createSignedBundle(input, signer)
    • commitBundle(bundle, options=None)
    • createSignedAndCommit(input, signer, options=None)
  • pvium.payout

    • create(input, options=None)
    • createFinalized(input, signer, options=None, request_options=None)
    • list(query=None, options=None)
    • get(payout_id, options=None)
    • addPayments(payout, input, options=None)
    • addRecipients(payout_id, input, options=None)
    • resolveRecipients(payout_id, input, options=None)
    • removePayments(payout_id, input, options=None)
    • listInvites(payout_id, options=None)
    • finalize(payout_input, signer, options=None, request_options=None)

Utilities

The package exports signing helpers, webhook verification helpers, invite merkle helpers, and payout hash helpers similar to the TypeScript SDK.