"""BriteCore v2 Commissions API endpoint wrappers."""
from typing import Any, Unpack
from britecore_sdk.api.api_calls import (
BritecoreAPIClient,
RequestParameters,
api_client,
)
from britecore_sdk.api.api_calls.v2._common import build_payload, post
API_CLIENT: BritecoreAPIClient = api_client
[docs]
def delete_batch_payments(
payment_ids: list[str] | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Delete commission payments in batch..
POST /api/v2/commissions/delete_batch_payments
"""
return post(
"/api/v2/commissions/delete_batch_payments",
build_payload(payment_ids=payment_ids),
**kwargs,
)
[docs]
def delete_payment(
payment_id: str | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Delete a single commission payment..
POST /api/v2/commissions/delete_payment
"""
return post(
"/api/v2/commissions/delete_payment",
build_payload(payment_id=payment_id),
**kwargs,
)
[docs]
def get_commission_payees(**kwargs: Unpack[RequestParameters]) -> Any:
"""Retrieve the list of commission payee agency numbers..
POST /api/v2/commissions/get_commission_payees
"""
return post("/api/v2/commissions/get_commission_payees", **kwargs)
[docs]
def get_payment(
commission_payment_id: str | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Retrieve a commission payment record..
POST /api/v2/commissions/get_payment
"""
return post(
"/api/v2/commissions/get_payment",
build_payload(commission_payment_id=commission_payment_id),
**kwargs,
)
[docs]
def get_unexported_commissions(**kwargs: Unpack[RequestParameters]) -> Any:
"""Retrieve commission records that have not yet been exported..
POST /api/v2/commissions/get_unexported_commissions
"""
return post("/api/v2/commissions/get_unexported_commissions", **kwargs)
[docs]
def save_batch_payments(
payments: list[dict[str, Any]] | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Save commission payments in batch..
POST /api/v2/commissions/save_batch_payments
"""
return post(
"/api/v2/commissions/save_batch_payments",
build_payload(payments=payments),
**kwargs,
)
[docs]
def save_batch_payments_csv(
data: str | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Save commission payments in batch from CSV data..
POST /api/v2/commissions/save_batch_payments_csv
"""
return post(
"/api/v2/commissions/save_batch_payments_csv",
build_payload(data=data),
**kwargs,
)
[docs]
def save_payment(
amount: float | int | None = None,
agency_number: str | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Save a single commission payment..
POST /api/v2/commissions/save_payment
"""
return post(
"/api/v2/commissions/save_payment",
build_payload(amount=amount, agency_number=agency_number),
**kwargs,
)
[docs]
def update_commission_payments_complete(
commission_payment_ids: list[str] | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Clear selected payments from the commission queue..
POST /api/v2/commissions/update_commission_payments_complete
"""
return post(
"/api/v2/commissions/update_commission_payments_complete",
build_payload(commission_payment_ids=commission_payment_ids),
**kwargs,
)
__all__ = [
"delete_batch_payments",
"delete_payment",
"get_commission_payees",
"get_payment",
"get_unexported_commissions",
"save_batch_payments",
"save_batch_payments_csv",
"save_payment",
"update_commission_payments_complete",
]
# --- Autogenerated spec wrappers ---
[docs]
def batch_export_payments(
commission_payment_ids: Any | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Batch Export Payments.
POST /api/v2/commissions/batch_export_payments
"""
request_json: dict[str, Any] = {"commission_payment_ids": commission_payment_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/commissions/batch_export_payments",
json=filtered_json,
method="POST",
**kwargs,
)
return API_CLIENT.process_result(
request_result, endpoint="/api/v2/commissions/batch_export_payments"
)
[docs]
def batch_review_payments(
commission_payment_ids: Any | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Batch Review Payments.
POST /api/v2/commissions/batch_review_payments
"""
request_json: dict[str, Any] = {"commission_payment_ids": commission_payment_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/commissions/batch_review_payments",
json=filtered_json,
method="POST",
**kwargs,
)
return API_CLIENT.process_result(
request_result, endpoint="/api/v2/commissions/batch_review_payments"
)
[docs]
def batch_update_payment_methods(
operations: Any | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Batch Update Payment Methods.
POST /api/v2/commissions/batch_update_payment_methods
"""
request_json: dict[str, Any] = {"operations": operations}
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/commissions/batch_update_payment_methods",
json=filtered_json,
method="POST",
**kwargs,
)
return API_CLIENT.process_result(
request_result, endpoint="/api/v2/commissions/batch_update_payment_methods"
)
[docs]
def create_adjustment(
source_accounting_id: Any | None = None,
adjustment_amount: Any | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Create Adjustment.
POST /api/v2/commissions/create_adjustment
"""
request_json: dict[str, Any] = {
"source_accounting_id": source_accounting_id,
"adjustment_amount": adjustment_amount,
}
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/commissions/create_adjustment",
json=filtered_json,
method="POST",
**kwargs,
)
return API_CLIENT.process_result(
request_result, endpoint="/api/v2/commissions/create_adjustment"
)
[docs]
def download_commission_report(
report: str | None = None,
year: str | None = None,
month: str | None = None,
contacts: list[str] | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Download Commission Report.
POST /api/v2/commissions/download_commission_report
"""
request_json: dict[str, Any] = {
"report": report,
"year": year,
"month": month,
"contacts": contacts,
}
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/commissions/download_commission_report",
json=filtered_json,
method="POST",
**kwargs,
)
return API_CLIENT.process_result(
request_result, endpoint="/api/v2/commissions/download_commission_report"
)
[docs]
def email_commission_report(
contacts: Any | None = None,
report: Any | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Email Commission Report.
POST /api/v2/commissions/email_commission_report
"""
request_json: dict[str, Any] = {
"contacts": contacts,
"report": report,
}
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/commissions/email_commission_report",
json=filtered_json,
method="POST",
**kwargs,
)
return API_CLIENT.process_result(
request_result, endpoint="/api/v2/commissions/email_commission_report"
)
[docs]
def get_commission_accounting_entries(
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Get Commission Accounting Entries.
POST /api/v2/commissions/get_commission_accounting_entries
"""
request_json: dict[str, Any] = {}
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/commissions/get_commission_accounting_entries",
json=filtered_json,
method="POST",
**kwargs,
)
return API_CLIENT.process_result(
request_result, endpoint="/api/v2/commissions/get_commission_accounting_entries"
)
[docs]
def get_commission_payment_composition(
commission_payment_id: Any | None = None,
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Get Commission Payment Composition.
POST /api/v2/commissions/get_commission_payment_composition
"""
request_json: dict[str, Any] = {"commission_payment_id": commission_payment_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/commissions/get_commission_payment_composition",
json=filtered_json,
method="POST",
**kwargs,
)
return API_CLIENT.process_result(
request_result,
endpoint="/api/v2/commissions/get_commission_payment_composition",
)
[docs]
def get_commission_payments(
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Get Commission Payments.
POST /api/v2/commissions/get_commission_payments
"""
request_json: dict[str, Any] = {}
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/commissions/get_commission_payments",
json=filtered_json,
method="POST",
**kwargs,
)
return API_CLIENT.process_result(
request_result, endpoint="/api/v2/commissions/get_commission_payments"
)
[docs]
def get_delayed_commission_accounting_entries(
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Get Delayed Commission Accounting Entries.
POST /api/v2/commissions/get_delayed_commission_accounting_entries
"""
request_json: dict[str, Any] = {}
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/commissions/get_delayed_commission_accounting_entries",
json=filtered_json,
method="POST",
**kwargs,
)
return API_CLIENT.process_result(
request_result,
endpoint="/api/v2/commissions/get_delayed_commission_accounting_entries",
)
[docs]
def get_delayed_commission_entries_summary(
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Get Delayed Commission Entries Summary.
POST /api/v2/commissions/get_delayed_commission_entries_summary
"""
request_json: dict[str, Any] = {}
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/commissions/get_delayed_commission_entries_summary",
json=filtered_json,
method="POST",
**kwargs,
)
return API_CLIENT.process_result(
request_result,
endpoint="/api/v2/commissions/get_delayed_commission_entries_summary",
)
[docs]
def write_off_negative_amount(
**kwargs: Unpack[RequestParameters],
) -> Any:
"""Write Off Negative Amount.
POST /api/v2/commissions/write_off_negative_amount
"""
request_json: dict[str, Any] = {}
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/commissions/write_off_negative_amount",
json=filtered_json,
method="POST",
**kwargs,
)
return API_CLIENT.process_result(
request_result, endpoint="/api/v2/commissions/write_off_negative_amount"
)
__all__.extend(
[
"batch_export_payments",
"batch_review_payments",
"batch_update_payment_methods",
"create_adjustment",
"download_commission_report",
"email_commission_report",
"get_commission_accounting_entries",
"get_commission_payment_composition",
"get_commission_payments",
"get_delayed_commission_accounting_entries",
"get_delayed_commission_entries_summary",
"write_off_negative_amount",
]
)