--- id: reassign-identity-certifications sidebar_label: Reassign Identities or Items hide_title: true hide_table_of_contents: true api: {"operationId":"reassignIdentityCertifications","tags":["Certifications"],"description":"This API reassigns up to 50 identities or items in an identity campaign certification to another reviewer. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.","parameters":[{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"The identity campaign certification ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reassign":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The ID of item or identity being reassigned.","example":"ef38f94347e94562b5bb8424a56397d8"},"type":{"type":"string","enum":["TARGET_SUMMARY","ITEM","IDENTITY_SUMMARY"]}},"required":["id","type"]}},"reassignTo":{"type":"string","description":"The ID of the identity to which the certification is reassigned","example":"ef38f94347e94562b5bb8424a56397d8"},"reason":{"type":"string","description":"The reason comment for why the reassign was made","example":"reassigned for some reason"}},"required":["reassign","reassignTo","reason"]}}}},"responses":{"200":{"description":"An identity campaign certification details after completing the reassignment.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"example":"2c9180835d2e5168015d32f890ca1581","type":"string"},"name":{"example":"Source Owner Access Review for Employees [source]","type":"string"},"campaign":{"type":"object","required":["id","name","type","campaignType","description"],"properties":{"id":{"type":"string","description":"The unique ID of the campaign.","example":"ef38f94347e94562b5bb8424a56397d8"},"name":{"type":"string","description":"The name of the campaign.","example":"Campaign Name"},"type":{"type":"string","enum":["CAMPAIGN"],"description":"The type of object that is being referenced.","example":"CAMPAIGN"},"campaignType":{"type":"string","enum":["MANAGER","SOURCE_OWNER","SEARCH"],"description":"The type of the campaign.","example":"MANAGER"},"description":{"type":"string","description":"The description of the campaign set by the admin who created it.","nullable":true,"example":"A description of the campaign"}}},"completed":{"type":"boolean","description":"Have all decisions been made?","example":true},"identitiesCompleted":{"type":"integer","description":"The number of identities for whom all decisions have been made and are complete.","example":5},"identitiesTotal":{"type":"integer","description":"The total number of identities in the Certification, both complete and incomplete.","example":10},"created":{"example":"2018-06-25T20:22:28.104Z","format":"date-time","type":"string"},"modified":{"example":"2018-06-25T20:22:28.104Z","format":"date-time","type":"string"},"decisionsMade":{"type":"integer","description":"The number of approve/revoke/acknowledge decisions that have been made.","example":20},"decisionsTotal":{"type":"integer","description":"The total number of approve/revoke/acknowledge decisions.","example":40},"due":{"type":"string","format":"date-time","description":"The due date of the certification.","example":"2018-10-19T13:49:37.385Z"},"signed":{"type":"string","format":"date-time","nullable":true,"description":"The date the reviewer signed off on the Certification.","example":"2018-10-19T13:49:37.385Z"},"reviewer":{"type":"object","properties":{"id":{"type":"string","description":"The id of the reviewer.","example":"ef38f94347e94562b5bb8424a56397d8"},"name":{"type":"string","description":"The name of the reviewer.","example":"Reviewer Name"},"email":{"type":"string","description":"The email of the reviewing identity.","example":"reviewer@test.com"},"type":{"type":"string","enum":["IDENTITY"]},"created":{"nullable":true,"example":"2018-06-25T20:22:28.104Z","format":"date-time","type":"string"},"modified":{"nullable":true,"example":"2018-06-25T20:22:28.104Z","format":"date-time","type":"string"}}},"reassignment":{"type":"object","nullable":true,"properties":{"from":{"type":"object","properties":{"id":{"type":"string","description":"The id of the certification.","example":"ef38f94347e94562b5bb8424a56397d8"},"name":{"type":"string","description":"The name of the certification.","example":"Certification Name"},"type":{"type":"string","enum":["CERTIFICATION"]},"reviewer":{"type":"object","properties":{"id":{"type":"string","description":"The id of the reviewer.","example":"ef38f94347e94562b5bb8424a56397d8"},"name":{"type":"string","description":"The name of the reviewer.","example":"Reviewer Name"},"email":{"type":"string","description":"The email of the reviewing identity.","example":"reviewer@test.com"},"type":{"type":"string","enum":["IDENTITY"]},"created":{"nullable":true,"example":"2018-06-25T20:22:28.104Z","format":"date-time","type":"string"},"modified":{"nullable":true,"example":"2018-06-25T20:22:28.104Z","format":"date-time","type":"string"}}}}},"comment":{"type":"string","description":"The comment entered when the Certification was reassigned","example":"Reassigned for a reason"}}},"hasErrors":{"type":"boolean","example":false},"errorMessage":{"nullable":true,"type":"string","example":"The certification has an error"},"phase":{"type":"string","description":"The current phase of the campaign.\n* `STAGED`: The campaign is waiting to be activated.\n* `ACTIVE`: The campaign is active.\n* `SIGNED`: The reviewer has signed off on the campaign, and it is considered complete.\n","enum":["STAGED","ACTIVE","SIGNED"],"example":"ACTIVE"}}}}}},"400":{"description":"Client Error - Returned if the request body is invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"detailCode":{"type":"string","description":"Fine-grained error code providing more detail of the error.","example":"400.1 Bad Request Content"},"trackingId":{"type":"string","description":"Unique tracking id for the error.","example":"e7eab60924f64aa284175b9fa3309599"},"messages":{"type":"array","description":"Generic localized reason for error","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}},"causes":{"type":"array","description":"Plain-text descriptive reasons to provide additional detail to the text provided in the messages field","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}}}}}}},"401":{"description":"Unauthorized - Returned if there is no authorization header, or if the JWT token is expired.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"A message describing the error","example":"JWT validation failed: JWT is expired"}}}}}},"403":{"description":"Forbidden - Returned if the user you are running as, doesn't have access to this end-point.","content":{"application/json":{"schema":{"type":"object","properties":{"detailCode":{"type":"string","description":"Fine-grained error code providing more detail of the error.","example":"400.1 Bad Request Content"},"trackingId":{"type":"string","description":"Unique tracking id for the error.","example":"e7eab60924f64aa284175b9fa3309599"},"messages":{"type":"array","description":"Generic localized reason for error","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}},"causes":{"type":"array","description":"Plain-text descriptive reasons to provide additional detail to the text provided in the messages field","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}}}},"examples":{"403":{"summary":"An example of a 403 response object","value":{"detailCode":"403 Forbidden","trackingId":"b21b1f7ce4da4d639f2c62a57171b427","messages":[{"locale":"en-US","localeOrigin":"DEFAULT","text":"The server understood the request but refuses to authorize it."}]}}}}}},"404":{"description":"Not Found - returned if the request URL refers to a resource or object that does not exist","content":{"application/json":{"schema":{"type":"object","properties":{"detailCode":{"type":"string","description":"Fine-grained error code providing more detail of the error.","example":"400.1 Bad Request Content"},"trackingId":{"type":"string","description":"Unique tracking id for the error.","example":"e7eab60924f64aa284175b9fa3309599"},"messages":{"type":"array","description":"Generic localized reason for error","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}},"causes":{"type":"array","description":"Plain-text descriptive reasons to provide additional detail to the text provided in the messages field","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}}}},"examples":{"404":{"summary":"An example of a 404 response object","value":{"detailCode":"404 Not found","trackingId":"b21b1f7ce4da4d639f2c62a57171b427","messages":[{"locale":"en-US","localeOrigin":"DEFAULT","text":"The server did not find a current representation for the target resource."}]}}}}}},"429":{"description":"Too Many Requests - Returned in response to too many requests in a given period of time - rate limited. The Retry-After header in the response includes how long to wait before trying again.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"description":"A message describing the error","example":" Rate Limit Exceeded "}}}}}},"500":{"description":"Internal Server Error - Returned if there is an unexpected error.","content":{"application/json":{"schema":{"type":"object","properties":{"detailCode":{"type":"string","description":"Fine-grained error code providing more detail of the error.","example":"400.1 Bad Request Content"},"trackingId":{"type":"string","description":"Unique tracking id for the error.","example":"e7eab60924f64aa284175b9fa3309599"},"messages":{"type":"array","description":"Generic localized reason for error","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}},"causes":{"type":"array","description":"Plain-text descriptive reasons to provide additional detail to the text provided in the messages field","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}}}},"examples":{"500":{"summary":"An example of a 500 response object","value":{"detailCode":"500.0 Internal Fault","trackingId":"b21b1f7ce4da4d639f2c62a57171b427","messages":[{"locale":"en-US","localeOrigin":"DEFAULT","text":"An internal fault occurred."}]}}}}}}},"method":"post","path":"/certifications/{id}/reassign","servers":[{"url":"https://{tenant}.api.identitynow.com/v3","description":"This is the production API server.","variables":{"tenant":{"default":"sailpoint","description":"This is the name of your tenant, typically your company's name."}}}],"security":[{"oauth2":[]}],"securitySchemes":{"oauth2":{"type":"oauth2","description":"OAuth2 Bearer token (JWT). See [IdentityNow REST API Authentication](https://developer.sailpoint.com/docs/authentication.html) for more information.\n- Directions for generating a [personal access token](https://developer.sailpoint.com/docs/authentication.html#personal-access-tokens)\n- Directions using [client credentials flow](https://developer.sailpoint.com/docs/authentication.html#client-credentials-grant-flow)\n- Directions for using [authorization code flow](https://developer.sailpoint.com/docs/authentication.html#authorization-code-grant-flow)\n\nWhich authentication method should I choose? See our [guide](https://developer.sailpoint.com/docs/authentication.html#which-oauth-2-0-grant-flow-should-i-use)\n\nLearn more about how to find your `tokenUrl` and `authorizationUrl` [in our docs](https://developer.sailpoint.com/docs/authentication.html#finding-your-tenant-s-oauth-details)\n","flows":{"clientCredentials":{"tokenUrl":"https://tenant.api.identitynow.com/oauth/token","scopes":{"sp:scopes:default":"default scope","sp:scopes:all":"access to all scopes"}},"authorizationCode":{"authorizationUrl":"https://tenant.identitynow.com/oauth/authorize","tokenUrl":"https://tenant.api.identitynow.com/oauth/token","scopes":{"sp:scopes:default":"default scope","sp:scopes:all":"access to all scopes"}}}}},"jsonRequestBodyExample":{"reassign":[{"id":"ef38f94347e94562b5bb8424a56397d8","type":"TARGET_SUMMARY"}],"reassignTo":"ef38f94347e94562b5bb8424a56397d8","reason":"reassigned for some reason"},"info":{"contact":{"email":"developers@sailpoint.com","name":"Developer Relations","url":"https://developer.sailpoint.com/discuss"},"description":"These are the public APIs for SailPoint's SaaS services. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.","title":"SailPoint - SaaS API","version":"3.0.0"},"postman":{"name":"Reassign Identities or Items","description":{"content":"This API reassigns up to 50 identities or items in an identity campaign certification to another reviewer. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.","type":"text/plain"},"url":{"path":["certifications",":id","reassign"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The identity campaign certification ID","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}} sidebar_class_name: "post api-method" info_path: docs/sailpoint-api-v3/sail-point-saa-s-api --- import ApiTabs from "@theme/ApiTabs"; import MimeTabs from "@theme/MimeTabs"; import ParamsItem from "@theme/ParamsItem"; import ResponseSamples from "@theme/ResponseSamples"; import SchemaItem from "@theme/SchemaItem" import SchemaTabs from "@theme/SchemaTabs"; import DiscriminatorTabs from "@theme/DiscriminatorTabs"; import TabItem from "@theme/TabItem"; ## Reassign Identities or Items This API reassigns up to 50 identities or items in an identity campaign certification to another reviewer. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.
Path Parameters
Request Body required
    reassign object[]
An identity campaign certification details after completing the reassignment.
Schema
    campaign object
    reviewer object
    reassignment object
    from object
    reviewer object
Client Error - Returned if the request body is invalid.
Schema
    messages object[]
    Generic localized reason for error
    causes object[]
    Plain-text descriptive reasons to provide additional detail to the text provided in the messages field
Unauthorized - Returned if there is no authorization header, or if the JWT token is expired.
Schema
Forbidden - Returned if the user you are running as, doesn't have access to this end-point.
Schema
    messages object[]
    Generic localized reason for error
    causes object[]
    Plain-text descriptive reasons to provide additional detail to the text provided in the messages field
Not Found - returned if the request URL refers to a resource or object that does not exist
Schema
    messages object[]
    Generic localized reason for error
    causes object[]
    Plain-text descriptive reasons to provide additional detail to the text provided in the messages field
Too Many Requests - Returned in response to too many requests in a given period of time - rate limited. The Retry-After header in the response includes how long to wait before trying again.
Schema
Internal Server Error - Returned if there is an unexpected error.
Schema
    messages object[]
    Generic localized reason for error
    causes object[]
    Plain-text descriptive reasons to provide additional detail to the text provided in the messages field