Payment Management API

Overview

The Payment module provides methods to retrieve payment information and transaction details.

Methods

list()

List all payments.

Signature:

def list() -> PaymentList

Returns:

  • PaymentList: List of Payment objects

Raises:

  • APIError: If API returns an error

  • NetworkError: If network error occurs

Example:

from steadfast import SteadfastClient

client = SteadfastClient(api_key="key", secret_key="secret")

payments = client.payments.list()

for payment in payments.data:
    print(f"Payment {payment.id}: {payment.amount}")

get()

Get payment details with associated consignments.

Signature:

def get(payment_id: int) -> PaymentDetails

Parameters:

  • payment_id (int): Payment ID

Returns:

  • PaymentDetails: Payment object with consignments list

Raises:

  • ValidationError: If payment_id is invalid

  • NotFoundError: If payment not found

  • APIError: If API returns an error

  • NetworkError: If network error occurs

Example:

payment = client.payments.get(1)
print(f"Payment amount: {payment.amount}")
print(f"Consignments: {len(payment.consignments)}")

for consignment in payment.consignments:
    print(f"  - Consignment {consignment['consignment_id']}: {consignment['amount']}")

Payment Objects

Payment

Field

Type

Description

id

int

Payment ID

amount

float

Payment amount

created_at

str

Creation timestamp

updated_at

str

Last update timestamp

PaymentDetails

Field

Type

Description

id

int

Payment ID

amount

float

Payment amount

consignments

list

List of consignment objects

created_at

str

Creation timestamp

updated_at

str

Last update timestamp

Error Handling

from steadfast import SteadfastClient, ValidationError, NotFoundError, APIError

client = SteadfastClient(api_key="key", secret_key="secret")

try:
    payment = client.payments.get(1)
    print(f"Amount: {payment.amount}")
except ValidationError as e:
    print(f"Invalid input: {e}")
except NotFoundError as e:
    print(f"Payment not found: {e}")
except APIError as e:
    print(f"API error: {e}")

Usage Examples

Get total payments

from steadfast import SteadfastClient

client = SteadfastClient(api_key="key", secret_key="secret")

payments = client.payments.list()
total = sum(p.amount for p in payments.data)
print(f"Total payments: {total}")

Find payments by amount range

payments = client.payments.list()

large_payments = [p for p in payments.data if p.amount >= 5000]
print(f"Large payments (>= 5000): {len(large_payments)}")

for payment in large_payments:
    print(f"Payment {payment.id}: {payment.amount}")

Analyze payment details

payment = client.payments.get(1)

print(f"Payment ID: {payment.id}")
print(f"Total Amount: {payment.amount}")
print(f"Number of Consignments: {len(payment.consignments)}")

total_consignment_amount = sum(c['amount'] for c in payment.consignments)
print(f"Total Consignment Amount: {total_consignment_amount}")

if total_consignment_amount == payment.amount:
    print("Payment amount matches consignments")
else:
    print("Payment amount mismatch!")