Skip to content

Reason ​

Configurable reasons used across business flows

INFO

Every response arrives in the shared envelope — code, message, messages, status_code, time — with the payload in data. The tables below describe what is inside data.

POST /reason/create ​

Create a new reason. Reasons are configurable reference data used in business flows such as supplier returns, customer returns, purchase requests, order cancellations, transfers, write-offs, and more. name is required; type should be provided (model requires it — omitting type produces a validation error). is_active defaults to false.

Request body

FieldTypeRequiredDescription
namestringYesReason display name (required)
typestringNoReason type — determines which business flow this reason applies to. Note: the model requires a type; omitting it will produce a Mongoose validation error.. One of: supplier_return, customer_return, purchase_request, contract_cancel, order_cancel, transfer, transfer_cancel, write_off, visit_reject, delivery_order_cancel, task
descriptionstringNoOptional description
is_activebooleanNoWhether this reason is active. Defaults to false.
is_trashbooleanNoWhether this reason is for trash/disposal flows.
codestringNoOptional short code identifier for the reason.
order_numbernumberNoSort order (ascending). Used to control display order.
colorstringNoHex color code, format #RRGGBB (e.g. #FF5733)
json
{
  "name": "string",
  "type": "supplier_return",
  "description": "string",
  "is_active": false,
  "is_trash": false,
  "code": "string",
  "order_number": 0,
  "color": "string"
}

Response

FieldTypeDescription
_idstringReason ObjectId
namestringReason display name
typestringReason type — determines which business flow this reason applies to. One of: supplier_return, customer_return, purchase_request, contract_cancel, order_cancel, transfer, transfer_cancel, write_off, visit_reject, delivery_order_cancel, task
descriptionstringOptional description
is_activebooleanWhether this reason is active
is_trashbooleanWhether this reason is for trash/disposal flows
codestringShort code identifier
order_numbernumberSort order (ascending)
colorstringHex color code, format #RRGGBB
created_atstring (date-time)Creation timestamp
updated_atstring (date-time)Last update timestamp
json
{
  "code": 0,
  "message": "Success",
  "status_code": 200,
  "data": {
    "_id": "string",
    "name": "string",
    "type": "supplier_return",
    "description": "string",
    "is_active": false,
    "is_trash": false,
    "code": "string",
    "order_number": 0,
    "color": "string",
    "created_at": "2025-05-01T12:00:00Z",
    "updated_at": "2025-05-01T12:00:00Z"
  },
  "time": "2025-05-01T12:00:00Z"
}

GET /reason/get-by-id/{id} ​

Fetch a single reason by its ObjectId.

Path parameters

ParameterTypeRequiredDescription
idstringYesReason ObjectId

Request body

No request body.

Response

Same response shape as POST /reason/create.

POST /reason/get-paging ​

Paginated list of reasons. Filter by type (supplier_return, customer_return, purchase_request, contract_cancel, order_cancel, transfer, transfer_cancel, write_off, visit_reject, delivery_order_cancel, task) and/or is_active. Results sorted by order_number asc, _id desc (or sort_by override).

Request body

FieldTypeRequiredDescription
pagenumberYesDefault: 1
limitnumberYesDefault: 20
typestringNoFilter by reason type. Omit to return reasons of all types.. One of: supplier_return, customer_return, purchase_request, contract_cancel, order_cancel, transfer, transfer_cancel, write_off, visit_reject, delivery_order_cancel, task
is_activebooleanNoFilter by active state. Omit to return both active and inactive reasons.
json
{
  "page": 1,
  "limit": 20,
  "type": "supplier_return",
  "is_active": false
}

Response

FieldTypeDescription
totalnumber
listobject[]
list[]._idstringReason ObjectId
list[].namestringReason display name
list[].typestringReason type — determines which business flow this reason applies to. One of: supplier_return, customer_return, purchase_request, contract_cancel, order_cancel, transfer, transfer_cancel, write_off, visit_reject, delivery_order_cancel, task
list[].descriptionstringOptional description
list[].is_activebooleanWhether this reason is active
list[].is_trashbooleanWhether this reason is for trash/disposal flows
list[].codestringShort code identifier
list[].order_numbernumberSort order (ascending)
list[].colorstringHex color code, format #RRGGBB
list[].created_atstring (date-time)Creation timestamp
list[].updated_atstring (date-time)Last update timestamp
json
{
  "code": 0,
  "message": "Success",
  "status_code": 200,
  "data": {
    "total": 0,
    "list": [
      {
        "_id": "string",
        "name": "string",
        "type": "supplier_return",
        "description": "string",
        "is_active": false,
        "is_trash": false,
        "code": "string",
        "order_number": 0,
        "color": "string",
        "created_at": "2025-05-01T12:00:00Z",
        "updated_at": "2025-05-01T12:00:00Z"
      }
    ]
  },
  "time": "2025-05-01T12:00:00Z"
}

PUT /reason/update/{id} ​

Update an existing reason by ObjectId. All fields are optional; only provided fields are updated. name must be non-empty if provided.

Path parameters

ParameterTypeRequiredDescription
idstringYesReason ObjectId to update

Request body

FieldTypeRequiredDescription
namestringNoUpdated reason display name
typestringNoUpdated reason type. One of: supplier_return, customer_return, purchase_request, contract_cancel, order_cancel, transfer, transfer_cancel, write_off, visit_reject, delivery_order_cancel, task
descriptionstringNoUpdated description
is_activebooleanNoToggle active state
is_trashbooleanNoToggle trash/disposal flag
codestringNoUpdated short code identifier
order_numbernumberNoUpdated sort order
colorstringNoUpdated hex color code, format #RRGGBB
json
{
  "name": "string",
  "type": "supplier_return",
  "description": "string",
  "is_active": false,
  "is_trash": false,
  "code": "string",
  "order_number": 0,
  "color": "string"
}

Response

Same response shape as POST /reason/create.

DELETE /reason/delete/{id} ​

Soft-delete a reason by ObjectId (sets is_deleted=true). Returns 400 if the reason is not found.

Path parameters

ParameterTypeRequiredDescription
idstringYesReason ObjectId to delete

Request body

No request body.

Response

json
{
  "code": 0,
  "message": "Success",
  "status_code": 200,
  "data": "ok",
  "time": "2025-05-01T12:00:00Z"
}

This page is generated from the OpenAPI spec.

Bito 2.0 Integration API