PUT /api/v3/flag/{entityType}/{entityId}

Edit flag data for a specified entity

EditFlagV3 Permissions: FlaggedItems (Manage)

This API supports a wide variety of Flag-related actions. Below are summaries of expected outcomes for possible combinations of property values.

Create Flag(the entity is not yet flagged, therefore there is no “modified” info)

FlagTypeId FlagStatusId CostRecovery Assignees Comment HoldFromExport ReleaseExportHold Action
null null null null non-null true true Exception, cannot set both HoldFromExport and ReleaseExportHold at once
null null null null null non-null non-null Exception, must have at least one set
null null null null null null null Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold
null not null not null not null not null false false Exception, must have a type
not null null null null null false false Flagged, unresolved, specified type
not null not null null null null false false Flagged, unresolved(ignoring specified status), specified type
not null null not null null null false false Flagged, unresolved, specified type, cost recovery
not null null null not null1 null false false Flagged, unresolved, specified type
1If assignees not empty, assigned
not null null null null not null false false Flagged, unresolved, specified type, comment
not null1 not null1 not null1 not null2 not null1 true1 false 1Flagged, unresolved (ignoring specified status), specified type, cost recovery, comment, held from export
2If assignees not empty, assigned, comment
not null1 not null1 not null1 not null2 not null1 false true3 1Flagged, unresolved (ignoring specified status), specified type, cost recovery, comment
2If assignees not empty, assigned, comment
3No action; will not release a newly flagged bill for export

Edit Unresolved Flag (the entity is already flagged)

FlagTypeId FlagStatusId CostRecovery Assignees Comment HoldFromExport ReleaseExportHold Action
null null null null non-null true true Exception, cannot set both HoldFromExport and ReleaseExportHold at once
null null null null null non-null non-null Exception, must have at least one set
null null null null null false false Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold
system or user type null null null null false false Flag type updated
null resolved null null null false false Resolved
null resolved null null null false true Resolved, released for export
null null not null null null false false Updated, cost recovery
null null null not null null false false Assigned
null null null null not null false false Updated, comment
not null1 not null3 not null1 not null2 not null1 false false 1Updated, specified type, cost recovery, comment
2Assigned, comment
3Resolved, comment
not null1 not null3 not null1 not null2 not null1 true1 false 1Updated, specified type, cost recovery, comment, held from export
2Assigned, comment
3Resolved, comment

Edit Resolved Flag (the entity is already flagged)

FlagTypeId FlagStatusId CostRecovery Assignees Comment HoldFromExport ReleaseExportHold Action
null null null null non-null true true Exception, cannot set both HoldFromExport and ReleaseExportHold at once
null null null null null non-null non-null Exception, must have at least one set
null null null null null false false Exception, must provided a non-null value for HoldFromExport or ReleaseExportHold
system or user type null null null null false false Updated, specified type
null non-null null null null false false Exception; must provide flag type (cannot change flag status of a resolved flag; instead must “re-flag” it)
null null not null null null false false Exception; must provide flag type (cannot change flag status of a resolved flag; instead must “re-flag” it)
null null null not null null false false Exception; must provide flag type (cannot change flag status of a resolved flag; instead must “re-flag” it)
null null null null not null false false Exception; must provide flag type (cannot change flag status of a resolved flag; instead must “re-flag” it)
not null1 not null3 not null1 not null2 not null1 false false 1Updated, specified type, cost recovery, comment
2Assigned, comment
3Resolved, comment
not null1 unresolved3 not null1 not null2 not null1 true1 false 1Flagged, specified type, cost recovery, comment, no export hold action
2Assigned, comment
not null1 resolved3 not null1 not null2 not null1 false true1 1Resolved, specified type, cost recovery, comment, no export hold action
2Assigned, comment
not null1 unresolved3 not null1 not null2 not null1 true1 false 1Flagged, specified type, cost recovery, comment, held from export
2Assigned, comment
not null1 resolved3 not null1 not null2 not null1 false true1 1Resolved, specified type, cost recovery, comment, released from export
2Assigned, comment

Request Headers

Header Value Required Description
ECI-ApiKey string Yes Your API key. See Authentication.
Content-Type application/json Yes All requests must specify JSON content type, including the request body.

Path Parameters

Name Description Type Required
entityType The type of entity the flag is being request for. Supported values are: “Bill” string Required
entityId The identifier of the entity integer (int32) Required

Request Body

FlagEdit
Property Description Type
assignees All users currently assigned to this flag Required (defined) At least one of FlagTypeId, FlagStatusId, CostRecovery, Comment, Assignees must not be null integer[]
comment Event and action that has occurred with this flag Required (defined) At least one of FlagTypeId, FlagStatusId, CostRecovery, Comment, Assignees must not be null string
costRecovery Cost recovery associated with the issue this flag represents Required (defined) At least one of FlagTypeId, FlagStatusId, CostRecovery, Comment, Assignees must not be null number (double)
flagStatusId Current status of the flag One of ‘1’, ‘2’ Case sensitive Required (defined) At least one of FlagTypeId, FlagStatusId, CostRecovery, Comment, Assignees must not be null integer (int32)
flagTypeId Type of the flag Note: Audit exception flag type id cannot be assigned manually Required (defined) At least one of FlagTypeId, FlagStatusId, CostRecovery, Comment, Assignees must not be null integer (int32)
holdFromExport Determines whether or not the bill will be held for export when flagging the bill This property cannot be true if ReleaseExportHold is true. Required (defined) boolean
releaseExportHold Determines whether or not the bill will be released from export hold when resolving the bill flag This property cannot be true if HoldFromExport is true. Required (defined) boolean
Example Request Body application/json
{  "assignees": [
    1
  ],  "comment": "string",  "costRecovery": 1.0,  "flagStatusId": 1,  "flagTypeId": 1,  "holdFromExport": false,  "releaseExportHold": false
}

Responses

200 OK The request succeeded and the response body contains the requested data.

Response Body Parameters

FlagResponse
Property Description Type
assignees All users currently assigned to this flag UserChild[]
UserChild properties
Property Description Type
fullName The user’s full name string
userCode The user code string
userId The user identifier integer (int32)
costRecovery Cost recovery associated with the issue this flag represents number (double)
createdBy UserChild
UserChild properties
Property Description Type
fullName The user’s full name string
userCode The user code string
userId The user identifier integer (int32)
createdDate Date the flag was created string (date-time)
flagEvents All events and actions that have occurred with this flag FlagEventChild[]
FlagEventChild properties
Property Description Type
comment Comment about the flag event string
createdBy UserChild
UserChild properties
Property Description Type
fullName The user’s full name string
userCode The user code string
userId The user identifier integer (int32)
createdDate Date that this flag event was created string (date-time)
description Description of the flag event string
flagAction FlagActionChild
FlagActionChild properties
Property Description Type
flagActionId The flag action identifier integer (int32)
flagActionInfo Flag action information string
flagEventId The flag event identifier integer (int32)
flagId The flag identifier integer (int32)
flagIssues All issues associated with the flag Even if the flag is marked as resolved, the list of issues that were on the flag at that time will remain. This keeps a historic record and allows for filtering. FlagIssueTypeChild[]
FlagIssueTypeChild properties
Property Description Type
flagIssueCategory Flag issue category string
flagIssueTypeDescription More detailed description of the flag issue type string
flagIssueTypeId The flag issue type identifier integer (int32)
flagIssueTypeInfo Flag issue info string
flagStatus FlagStatusChild
FlagStatusChild properties
Property Description Type
flagStatusId The flag status identifier integer (int32)
flagStatusInfo Flag status information string
flagType FlagTypeChild
FlagTypeChild properties
Property Description Type
flagTypeId The flag type identifier integer (int32)
flagTypeInfo Flag type information string
modifiedBy UserChild
UserChild properties
Property Description Type
fullName The user’s full name string
userCode The user code string
userId The user identifier integer (int32)
modifiedDate Latest date the flag was modified string (date-time)
Example Response application/json
{  "assignees": [
    {    "fullName": "string",    "userCode": "string",    "userId": 1
  }
  ],  "costRecovery": 1.0,  "createdBy": {    "fullName": "string",    "userCode": "string",    "userId": 1
  },  "createdDate": "2026-03-30",  "flagEvents": [
    {    "comment": "string",    "createdBy": {      "fullName": "string",      "userCode": "string",      "userId": 1
    },    "createdDate": "2026-03-30",    "description": "string",    "flagAction": {      "flagActionId": 1,      "flagActionInfo": "string"
    },    "flagEventId": 1
  }
  ],  "flagId": 1,  "flagIssues": [
    {    "flagIssueCategory": "string",    "flagIssueTypeDescription": "string",    "flagIssueTypeId": 1,    "flagIssueTypeInfo": "string"
  }
  ],  "flagStatus": {    "flagStatusId": 1,    "flagStatusInfo": "string"
  },  "flagType": {    "flagTypeId": 1,    "flagTypeInfo": "string"
  },  "modifiedBy": {    "fullName": "string",    "userCode": "string",    "userId": 1
  },  "modifiedDate": "2026-03-30"
}