Skip to content

Payments

PaymentsAPI(client: DogeAPIClient, api: DogeAPI)

Access payments-related endpoints (/payments/*).

client : DogeAPIClient HTTP client instance. api : DogeAPI Shared config provider for fetch_all, output_pydantic, etc.

METHOD DESCRIPTION
get_payments

Retrieve payment records made by government agencies.

Source code in src/pydoge_api/endpoints/payments.py
Python
def __init__(self, client: DogeAPIClient, api: "DogeAPI"):
    """
    Parameters
    ----------
    client : DogeAPIClient
        HTTP client instance.
    api : DogeAPI
        Shared config provider for fetch_all, output_pydantic, etc.
    """
    self.client = client
    self.api = api

get_payments(*, sort_by: Optional[str] = None, sort_order: Optional[str] = None, filter: Optional[str] = None, filter_value: Optional[str] = None, page: int = 1, per_page: int = 100) -> Union[PaymentResponse, dict, httpx.Response]

Retrieve payment records made by government agencies.

PARAMETER DESCRIPTION

sort_by

Field to sort by. Options include 'amount' or 'date'.

TYPE: str DEFAULT: None

sort_order

Sort direction. One of 'asc' or 'desc'.

TYPE: str DEFAULT: None

filter

Filter key. One of 'agency_name', 'date', or 'org_name'.

TYPE: str DEFAULT: None

filter_value

The value to filter by.

TYPE: str DEFAULT: None

page

Starting page number.

TYPE: int DEFAULT: 1

per_page

Number of results per page.

TYPE: int DEFAULT: 100

RETURNS DESCRIPTION
PaymentResponse or dict or Response

Pydantic model if output_pydantic=True, exportable dict if output_pydantic=False, or raw response if handle_response=False.

Source code in src/pydoge_api/endpoints/payments.py
Python
def get_payments(
    self,
    *,
    sort_by: Optional[str] = None,
    sort_order: Optional[str] = None,
    filter: Optional[str] = None,
    filter_value: Optional[str] = None,
    page: int = 1,
    per_page: int = 100,
) -> Union[PaymentResponse, dict, httpx.Response]:
    """
    Retrieve payment records made by government agencies.

    Parameters
    ----------
    sort_by : str, optional
        Field to sort by. Options include 'amount' or 'date'.
    sort_order : str, optional
        Sort direction. One of 'asc' or 'desc'.
    filter : str, optional
        Filter key. One of 'agency_name', 'date', or 'org_name'.
    filter_value : str, optional
        The value to filter by.
    page : int, default=1
        Starting page number.
    per_page : int, default=100
        Number of results per page.

    Returns
    -------
    PaymentResponse or dict or httpx.Response
        Pydantic model if `output_pydantic=True`,
        exportable dict if `output_pydantic=False`,
        or raw response if `handle_response=False`.
    """
    params = PaymentParams(
        sort_by=sort_by,
        sort_order=sort_order,
        filter=filter,
        filter_value=filter_value,
        page=page,
        per_page=per_page,
    )
    query = params.model_dump(exclude_none=True)

    _flt = f", filter={filter}={filter_value!r}" if filter else ""
    logger.info(
        f"๐Ÿงพ Fetching payments (sort_by={sort_by!r}, per_page={per_page}, fetch_all={self.api.fetch_all}{_flt})"
    )
    result = self.client.get("/payments", params=query, decode=self.api.handle_response)
    if not self.api.handle_response:
        return result

    model = PaymentResponse(**cast(dict, result))

    return _fetch_paginated(
        api=self.api,
        client=self.client,
        endpoint="/payments",
        params=params,
        initial_response=model,
        key="payments",
        model_cls=PaymentResponse,
    )