# Campaign Registration Resubmit "Resubmit a campaign to: 1. Backfill missing MNO campaign operation records for one or more networks. 2. Retroactively update the campaign to reflect newly assigned message class. Please note that running this endpoint could potentially downgrade campaign business terms. After hitting this endpoint, call the Get Campaign Registration API to to check lastActionStatus: 1. If lastActionStatus is RESUBMIT_IN_PROGRESS, mno metadata not updated, poll again. 2. If lastActionStatus is RESUBMIT_SUCCESSFUL, get updated MNO metadata. 3. If lastActionStatus is RESUBMIT_FAILED, call the Campaign Feedback API to know the reason for failure. Endpoint: PUT /v1/projects/{projectId}/campaignRegistrations/{campaignRegistrationId}/resubmit Version: 1.0 Security: BasicAuth, OAuth2 ## Path parameters: - `projectId` (string, required) Sinch uses projects to group resources such as contacts and apps together to manage and connect a unique set of keys and secret IDs for all your Sinch API products. To identify a project, it is given a unique alphanumeric identifier that ties it to your account. Your project ID can be found in the Customer Dashboard. - `campaignRegistrationId` (string, required) Campaign Registration Id returned by the create campaign API. ## Request fields (application/json): - `mnos` (array) ## Response 400 fields (application/json): - `error` (object, required) - `error.code` (integer, required) The error code. Example: 400 - `error.message` (string, required) The error message. Example: "Invalid argument." - `error.status` (string) The status of the error. Example: "INVALID_ARGUMENT" - `error.details` (array) An array of objects describing the error in more detail, if applicable. - `error.details.type` (string) A more specific description of the error. Example: "BadRequest" - `error.details.resourceType` (string) The type of resource relevant to the error, if applicable. - `error.details.resourceName` (string) The name of the resource, if applicable. - `error.details.owner` (string) The owner of the resource, if applicable. - `error.details.description` (string) A description of the error, if applicable. - `error.details.fieldViolations` (array) An array of all the field violations which contributed to the error. - `error.details.fieldViolations.field` (string) The field which produced the error. Example: "order_by" - `error.details.fieldViolations.description` (string) The description of the error. Example: "Invalid `order_by` number." ## Response 404 fields (application/json): - `error` (object, required) - `error.code` (integer, required) The error code. Example: 400 - `error.message` (string, required) The error message. Example: "Invalid argument." - `error.status` (string) The status of the error. Example: "INVALID_ARGUMENT" - `error.details` (array) An array of objects describing the error in more detail, if applicable. - `error.details.type` (string) A more specific description of the error. Example: "BadRequest" - `error.details.resourceType` (string) The type of resource relevant to the error, if applicable. - `error.details.resourceName` (string) The name of the resource, if applicable. - `error.details.owner` (string) The owner of the resource, if applicable. - `error.details.description` (string) A description of the error, if applicable. - `error.details.fieldViolations` (array) An array of all the field violations which contributed to the error. - `error.details.fieldViolations.field` (string) The field which produced the error. Example: "order_by" - `error.details.fieldViolations.description` (string) The description of the error. Example: "Invalid `order_by` number." ## Response 429 fields (application/json): - `error` (object, required) - `error.code` (integer, required) The error code. Example: 400 - `error.message` (string, required) The error message. Example: "Invalid argument." - `error.status` (string) The status of the error. Example: "INVALID_ARGUMENT" - `error.details` (array) An array of objects describing the error in more detail, if applicable. - `error.details.type` (string) A more specific description of the error. Example: "BadRequest" - `error.details.resourceType` (string) The type of resource relevant to the error, if applicable. - `error.details.resourceName` (string) The name of the resource, if applicable. - `error.details.owner` (string) The owner of the resource, if applicable. - `error.details.description` (string) A description of the error, if applicable. - `error.details.fieldViolations` (array) An array of all the field violations which contributed to the error. - `error.details.fieldViolations.field` (string) The field which produced the error. Example: "order_by" - `error.details.fieldViolations.description` (string) The description of the error. Example: "Invalid `order_by` number." ## Response 500 fields (application/json): - `error` (object, required) - `error.code` (integer, required) The error code. Example: 400 - `error.message` (string, required) The error message. Example: "Invalid argument." - `error.status` (string) The status of the error. Example: "INVALID_ARGUMENT" - `error.details` (array) An array of objects describing the error in more detail, if applicable. - `error.details.type` (string) A more specific description of the error. Example: "BadRequest" - `error.details.resourceType` (string) The type of resource relevant to the error, if applicable. - `error.details.resourceName` (string) The name of the resource, if applicable. - `error.details.owner` (string) The owner of the resource, if applicable. - `error.details.description` (string) A description of the error, if applicable. - `error.details.fieldViolations` (array) An array of all the field violations which contributed to the error. - `error.details.fieldViolations.field` (string) The field which produced the error. Example: "order_by" - `error.details.fieldViolations.description` (string) The description of the error. Example: "Invalid `order_by` number."