Source code for britecore_sdk.api.api_calls.v2.accounting

"""BriteCore v2 Accounting API endpoint wrappers.

This module provides wrappers for accounting deliverables, invoice retrieval,
and rescind-cancellation workflow helpers in the BriteCore v2 accounting API.
"""

from logging import Logger
from typing import Any, Unpack, cast

from urllib3 import BaseHTTPResponse, HTTPResponse

from britecore_sdk import logger
from britecore_sdk.api.api_calls import (
    BritecoreAPIClient,
    RequestParameters,
    api_client,
)

LOGGER: Logger = logger

API_CLIENT: BritecoreAPIClient = api_client


[docs] def get_accounting_deliverable( account_history_id: str, deliverable_date: str, **kwargs: Unpack[RequestParameters], ) -> Any: """Retrieve accounting deliverable values for an account history entry. POST /api/v2/accounting/get_accounting_deliverable """ LOGGER.debug( "Getting accounting deliverable for account_history_id=%s", account_history_id ) request_json: dict[str, str] = { "account_history_id": account_history_id, "deliverable_date": deliverable_date, } request_result: BaseHTTPResponse | HTTPResponse | None = API_CLIENT.do_request( path="/api/v2/accounting/get_accounting_deliverable", json=request_json, **kwargs, ) return API_CLIENT.process_result(cast(Any, request_result))
[docs] def get_invoices( policy_id: str | None = None, bill_from_date: str | None = None, bill_to_date: str | None = None, due_from_date: str | None = None, due_to_date: str | None = None, sorting_order: str | None = None, page_number: int | None = None, page_size: int | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Retrieve invoices with optional policy and date filters. POST /api/v2/accounting/get_invoices """ LOGGER.debug("Getting invoices for policy_id=%s", policy_id) request_json: dict[str, Any] = {} if policy_id is not None: request_json["policy_id"] = policy_id if bill_from_date is not None: request_json["bill_from_date"] = bill_from_date if bill_to_date is not None: request_json["bill_to_date"] = bill_to_date if due_from_date is not None: request_json["due_from_date"] = due_from_date if due_to_date is not None: request_json["due_to_date"] = due_to_date if sorting_order is not None: request_json["sorting_order"] = sorting_order if page_number is not None: request_json["page_number"] = page_number if page_size is not None: request_json["page_size"] = page_size request_result: BaseHTTPResponse | HTTPResponse | None = API_CLIENT.do_request( path="/api/v2/accounting/get_invoices", json=request_json, **kwargs, ) return API_CLIENT.process_result(cast(Any, request_result))
[docs] def run_rescind_underwriting_cancellation_pending_logic( revision_id: str, old_status: str, date_cursor: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Run rescind underwriting cancellation-pending logic for a revision. POST /api/v2/accounting/run_rescind_underwriting_cancellation_pending_logic """ LOGGER.debug( "Running rescind underwriting cancellation pending logic for revision_id=%s", revision_id, ) request_json: dict[str, Any] = { "revision_id": revision_id, "old_status": old_status, } if date_cursor is not None: request_json["date_cursor"] = date_cursor request_result: BaseHTTPResponse | HTTPResponse | None = API_CLIENT.do_request( path="/api/v2/accounting/run_rescind_underwriting_cancellation_pending_logic", json=request_json, **kwargs, ) return API_CLIENT.process_result(cast(Any, request_result))
__all__ = [ "get_accounting_deliverable", "get_invoices", "run_rescind_underwriting_cancellation_pending_logic", ] # --- Autogenerated spec wrappers ---
[docs] def export_account_histories( policy_term_ids: list[str] | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Export Account Histories. POST /api/v2/accounting/export_account_histories """ request_json: dict[str, Any] = { "policy_term_ids": policy_term_ids, } filtered_json = {k: v for k, v in request_json.items() if v is not None} request_result = API_CLIENT.do_request( path="/api/v2/accounting/export_account_histories", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/accounting/export_account_histories" )
[docs] def retrieve_outstanding_invoices( transaction_date_time_from: str | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Retrieve Outstanding Invoices. POST /api/v2/accounting/retrieve_outstanding_invoices """ request_json: dict[str, Any] = { "transaction_date_time_from": transaction_date_time_from, } filtered_json = {k: v for k, v in request_json.items() if v is not None} request_result = API_CLIENT.do_request( path="/api/v2/accounting/retrieve_outstanding_invoices", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/accounting/retrieve_outstanding_invoices" )
[docs] def set_return_premium_to_export( return_premium_id: Any | None = None, **kwargs: Unpack[RequestParameters], ) -> Any: """Set Return Premium To Export. POST /api/v2/accounting/set_return_premium_to_export """ request_json: dict[str, Any] = {"return_premium_id": return_premium_id} filtered_json = {k: v for k, v in request_json.items() if v is not None} request_result = API_CLIENT.do_request( path="/api/v2/accounting/set_return_premium_to_export", json=filtered_json, method="POST", **kwargs, ) return API_CLIENT.process_result( request_result, endpoint="/api/v2/accounting/set_return_premium_to_export" )
__all__.extend( [ "export_account_histories", "retrieve_outstanding_invoices", "set_return_premium_to_export", ] )