## Create or update public v2 reason codes

`ReasonCodeCreateReasonCodesResponse ReasonCodes.CreateReasonCodes(ReasonCodeCreateReasonCodesParamsparameters, CancellationTokencancellationToken = default)`

**post** `/api/v2/public/reasoncodes`

Creates or updates reason codes. See request schema for required fields and enum details.

### Parameters

- `ReasonCodeCreateReasonCodesParams parameters`

  - `required IReadOnlyList<ReasonCode> reasonCodes`

    Body param: List of reason codes to create or update.

    - `required Int DefaultReviewStatus`

      Default review status value. Required.

    - `required Boolean IsCommentMandatory`

      Indicates if comment is mandatory. Required.

    - `required Boolean IsGain`

      Indicates if this is a gain reason code. Required.

    - `required Boolean IsImageMandatory`

      Indicates if image is mandatory. Required.

    - `required Boolean IsLoss`

      Indicates if this is a loss reason code. Required.

    - `required Boolean IsOrderNumberMandatory`

      Indicates if order number is mandatory. Required.

    - `required Boolean IsPickingList`

      Indicates if used for picking list. Required.

    - `required Boolean IsSalesOrderDiscount`

      Indicates if used for sales order discount. Required.

    - `required Boolean IsStore`

      Indicates if the reason code is store-visible. Required.

    - `required Int ReasonCode`

      Reason code identifier. Required.

    - `required string ReasonCodeDescription`

      Reason code description. Required. Max length: 250.

    - `required ReasonCodeType ReasonCodeType`

      Allowed values:<br/>1 = LossReasonCode (Loss Reason Code)<br/>2 = RejectionReasonCode (Rejection Reason Code)<br/>3 = MovementReasonCode (Movement Reason Code)<br/>4 = SalesOrderDiscountReasonCode (Sales Order Discount Reason Code)<br/>5 = LocationTags (Location Tags Code)<br/>6 = CountReasonCode (Count Reason Code)<br/>7 = GainLossReasonCode (Gain Loss Code)<br/>8 = SalesOrderTypeReasonCode (Sales Order Type)<br/>9 = DeliveryOrderTypeReasonCode (Delivery Order Type)

      - `11`

      - `22`

      - `33`

      - `44`

      - `55`

      - `66`

      - `77`

      - `88`

      - `99`

    - `string? CodeDescription`

      Optional additional code description. Max length: 500.

  - `Boolean flush`

    Query param: When true, existing reason codes are flushed before inserting.

### Returns

- `class ReasonCodeCreateReasonCodesResponse:`

  Standard success response returned by mutation endpoints.

  - `required Boolean Success`

    Indicates whether the operation completed successfully.

  - `string? Data`

    Optional data payload returned by the operation.

  - `string? Message`

    Human-readable message describing the result.

### Example

```csharp
ReasonCodeCreateReasonCodesParams parameters = new()
{
    ReasonCodes =
    [
        new()
        {
            DefaultReviewStatus = 0,
            IsCommentMandatory = true,
            IsGain = false,
            IsImageMandatory = false,
            IsLoss = true,
            IsOrderNumberMandatory = false,
            IsPickingList = false,
            IsSalesOrderDiscount = false,
            IsStore = true,
            ReasonCode = 101,
            ReasonCodeDescription = "Damaged on arrival",
            ReasonCodeType = ReasonCodeType.1,
            CodeDescription = "Used when product arrives damaged",
        },
    ],
};

var response = await client.ReasonCodes.CreateReasonCodes(parameters);

Console.WriteLine(response);
```

#### Response

```json
{
  "success": true,
  "data": "data",
  "message": "message"
}
```
