# Reason Codes ## List Reason Codes `reason_codes.list_reason_codes(ReasonCodeListReasonCodesParams**kwargs) -> ReasonCodeListReasonCodesResponse` **get** `/api/v2/public/reasoncodes` Retrieves a list of reason codes, optionally filtered by search text. ### Parameters - `code: Optional[str]` Filter by reason code. - `code_description: Optional[str]` Filter by reason code description. - `function_key: Optional[str]` Filter by function key. - `is_gain: Optional[bool]` Filter by gain-type reason codes. - `is_loss: Optional[bool]` Filter by loss-type reason codes. - `is_store: Optional[bool]` Filter by store-level reason codes. ### Returns - `List[ReasonCodeListReasonCodesResponseItem]` - `code: Optional[int]` - `code_description: Optional[str]` - `description: Optional[str]` - `function_key: Optional[str]` - `is_comment_mandatory: Optional[bool]` - `is_gain: Optional[bool]` - `is_image_mandatory: Optional[bool]` - `is_loss: Optional[bool]` - `is_order_number_mandatory: Optional[bool]` - `is_picking_list: Optional[bool]` - `is_rollback_allowed: Optional[bool]` - `is_sales_order_discsount: Optional[bool]` - `is_store: Optional[bool]` - `reason_code_type: Optional[int]` - `review_status: Optional[int]` - `store_type: Optional[str]` ### Example ```python import os from colleqtive_sdk import Colleqtive client = Colleqtive( bearer_token=os.environ.get("COLLEQTIVE_BEARER_TOKEN"), # This is the default and can be omitted ) response = client.reason_codes.list_reason_codes() print(response) ``` ## Create Reason Codes `reason_codes.create_reason_codes(ReasonCodeCreateReasonCodesParams**kwargs) -> ReasonCodeCreateReasonCodesResponse` **post** `/api/v2/public/reasoncodes` Creates or updates reason codes. See request schema for required fields and enum details. ### Parameters - `reason_codes: Iterable[ReasonCode]` List of reason codes to create or update. - `default_review_status: Optional[int]` Default review status value. Required. - `is_comment_mandatory: Optional[bool]` Indicates if comment is mandatory. Required. - `is_gain: Optional[bool]` Indicates if this is a gain reason code. Required. - `is_image_mandatory: Optional[bool]` Indicates if image is mandatory. Required. - `is_loss: Optional[bool]` Indicates if this is a loss reason code. Required. - `is_order_number_mandatory: Optional[bool]` Indicates if order number is mandatory. Required. - `is_picking_list: Optional[bool]` Indicates if used for picking list. Required. - `is_sales_order_discount: Optional[bool]` Indicates if used for sales order discount. Required. - `is_store: Optional[bool]` Indicates if the reason code is store-visible. Required. - `reason_code: Optional[int]` Reason code identifier. Required. - `reason_code_description: str` Reason code description. Required. Max length: 250. - `reason_code_type: Optional[Literal[1, 2, 3, 4 more]]` Reason code type. 1=LossReasonCode, 2=RejectionReasonCode, 3=MovementReasonCode, 4=SalesOrderDiscountReasonCode, 5=LocationTags, 6=CountReasonCode, 7=GainLossReasonCode. - `1` - `2` - `3` - `4` - `5` - `6` - `7` - `code_description: Optional[str]` Optional additional code description. Max length: 500. - `flush: Optional[bool]` When true, existing reason codes are flushed before inserting. ### Returns - `class ReasonCodeCreateReasonCodesResponse: …` Standard success response returned by mutation endpoints. - `data: Optional[str]` Optional data payload returned by the operation. - `message: Optional[str]` Human-readable message describing the result. - `success: Optional[bool]` Indicates whether the operation completed successfully. ### Example ```python import os from colleqtive_sdk import Colleqtive client = Colleqtive( bearer_token=os.environ.get("COLLEQTIVE_BEARER_TOKEN"), # This is the default and can be omitted ) response = client.reason_codes.create_reason_codes( reason_codes=[{ "reason_code": 101, "reason_code_description": "Damaged on arrival", "is_store": True, "code_description": "Used when product arrives damaged", "is_loss": True, "is_comment_mandatory": True, "is_image_mandatory": False, "is_order_number_mandatory": False, "is_picking_list": False, "is_sales_order_discount": False, "default_review_status": 0, "reason_code_type": 1, "is_gain": False, }], ) print(response.data) ```