Copy
Ask AI
import uuid
from corsa_sdk import CorsaClient
from corsa_sdk.api.clients.create_individual_client import (
_get_kwargs as create_client_kwargs,
)
from corsa_sdk.api.alerts.create_alert import _get_kwargs as create_alert_kwargs
from corsa_sdk.api.cases.create_case import _get_kwargs as create_case_kwargs
from corsa_sdk.api.cases.associate_case_with_alerts import (
_get_kwargs as assoc_case_alerts_kwargs,
)
from corsa_sdk.models.create_individual_client_dto import CreateIndividualClientDto
from corsa_sdk.models.individual_client_general_information_dto import (
IndividualClientGeneralInformationDto,
)
from corsa_sdk.models.create_alert_dto import CreateAlertDto
from corsa_sdk.models.create_alert_dto_category import CreateAlertDtoCategory
from corsa_sdk.models.create_alert_dto_priority import CreateAlertDtoPriority
from corsa_sdk.models.create_alert_dto_status import CreateAlertDtoStatus
from corsa_sdk.models.create_case_dto import CreateCaseDto
from corsa_sdk.models.create_case_dto_category import CreateCaseDtoCategory
from corsa_sdk.models.create_case_dto_priority import CreateCaseDtoPriority
from corsa_sdk.models.create_case_dto_status import CreateCaseDtoStatus
def main() -> None:
client = CorsaClient(
base_url="https://api.corsa.finance",
token="your-api-token",
)
http = client.raw_client.get_httpx_client()
ref = uuid.uuid4().hex[:12]
# 1. Create an individual client
resp = http.request(
**create_client_kwargs(
body=CreateIndividualClientDto(
reference_id=f"py-example-{ref}",
general=IndividualClientGeneralInformationDto(
first_name="Jane",
last_name="Doe",
date_of_birth="1990-05-20",
citizenship="US",
),
tags=["sdk-example"],
)
)
)
individual = resp.json()
print(f"Created client: {individual['id']}")
# 2. Create an alert linked to the client
resp = http.request(
**create_alert_kwargs(
body=CreateAlertDto(
category=CreateAlertDtoCategory.TRANSACTION_MONITORING,
description="Unusual transfer pattern detected",
priority=CreateAlertDtoPriority.MEDIUM,
status=CreateAlertDtoStatus.NEW,
reference_id=f"py-alert-{ref}",
associated_client_ids=[individual["id"]],
)
)
)
alert = resp.json()
print(f"Created alert: {alert['id']}")
# 3. Create a case and associate it with the alert
resp = http.request(
**create_case_kwargs(
body=CreateCaseDto(
priority=CreateCaseDtoPriority.MEDIUM,
category=CreateCaseDtoCategory.TRANSACTION_MONITORING,
reviewers_ids=[],
status=CreateCaseDtoStatus.NEW,
description="Investigation into unusual transfer pattern",
reference_id=f"py-case-{ref}",
)
)
)
case = resp.json()
print(f"Created case: {case['id']}")
resp = http.request(
**assoc_case_alerts_kwargs(case_id=case["id"], body=[alert["id"]])
)
print(f"Associated alert {alert['id']} with case {case['id']}")
client.close()
if __name__ == "__main__":
main()