> ## Documentation Index
> Fetch the complete documentation index at: https://docs.legitmark.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Resubmit SR

> Send a service request back to quality review after a photo rejection.

Call this only when the service request is `QC` / `REJECTED` (the state set by a `media_rejected` webhook). Upload a new photo for each rejected side first, using the same side UUID as the original upload. Uploading alone does not change the state.

On success the SR transitions from `QC` / `REJECTED` to `QC` / `PENDING`.

A repeat call while the SR is already `QC` / `PENDING` returns `200` and does not start another review. `POST /submit` accepts `DRAFT` only and returns `400` from this state.



## OpenAPI

````yaml /openapi.json post /api/v2/sr/{sr_uuid}/resubmit
openapi: 3.1.0
info:
  title: Legitmark Partner API
  description: Comprehensive partner integration API for Legitmark authentication platform
  version: 2.0.0
  contact:
    name: Legitmark Support
    email: support@legitmark.com
    url: https://legitmark.com
servers:
  - url: https://api.legitmark.com
    description: Production API
  - url: https://staging.api.legitmark.com
    description: Staging API
  - url: https://dev.api.legitmark.com
    description: Development API
security:
  - BearerAuth: []
tags:
  - name: Service Requests
    description: Create, retrieve, and manage authentication service requests.
  - name: Media Management
    description: >-
      Upload images for service request authentication. Public-CDN organizations
      use GET /intent. Private-CDN organizations use POST
      /api/media/signed-urls/{sr_uuid}.
  - name: Taxonomy
    description: Browse categories, types, brands, models, and services to build requests.
paths:
  /api/v2/sr/{sr_uuid}/resubmit:
    post:
      tags:
        - Service Requests
      summary: Resubmit SR
      description: >-
        Send a service request back to quality review after a photo rejection.


        Call this only when the service request is `QC` / `REJECTED` (the state
        set by a `media_rejected` webhook). Upload a new photo for each rejected
        side first, using the same side UUID as the original upload. Uploading
        alone does not change the state.


        On success the SR transitions from `QC` / `REJECTED` to `QC` /
        `PENDING`.


        A repeat call while the SR is already `QC` / `PENDING` returns `200` and
        does not start another review. `POST /submit` accepts `DRAFT` only and
        returns `400` from this state.
      operationId: resubmitServiceRequest
      parameters:
        - name: sr_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Service request UUID
          example: 8e61c991-553a-4a58-9eb6-561b64c11908
      responses:
        '200':
          description: >-
            Resubmission accepted, or the service request was already `QC` /
            `PENDING`
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: >-
                      Resubmission accepted. Your service request is being
                      reviewed again.
                  progress:
                    type: object
                    properties:
                      current_required:
                        type: integer
                        example: 8
                      exempted_required:
                        type: integer
                        example: 0
                      total_required:
                        type: integer
                        example: 8
                      current_optional:
                        type: integer
                        example: 0
                      total_optional:
                        type: integer
                        example: 5
                      met:
                        type: boolean
                        example: true
              example:
                success: true
                message: >-
                  Resubmission accepted. Your service request is being reviewed
                  again.
                progress:
                  current_required: 8
                  exempted_required: 0
                  total_required: 8
                  current_optional: 0
                  total_optional: 5
                  met: true
        '400':
          description: >-
            The service request is not `QC` / `REJECTED`, or the replacement
            photos are not uploaded yet. Missing photos return `{ success:
            false, message, progress }` and leave the state unchanged.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Caller does not own this service request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Service request not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - BearerAuth: []
      x-codeSamples:
        - lang: javascript
          label: HTTP
          source: |-
            const response = await fetch(
              `https://api.legitmark.com/api/v2/sr/${srUuid}/resubmit`,
              {
                method: 'POST',
                headers: { 'Authorization': 'Bearer leo_your_api_key' },
              }
            );

            const { message, progress } = await response.json();
            console.log(message, progress.met);
        - lang: python
          label: Python
          source: |-
            import requests

            response = requests.post(
                f'https://api.legitmark.com/api/v2/sr/{sr_uuid}/resubmit',
                headers={'Authorization': 'Bearer leo_your_api_key'},
            )

            result = response.json()
            print(result['message'], result['progress']['met'])
        - lang: curl
          label: cURL
          source: >-
            curl -X POST
            'https://api.legitmark.com/api/v2/sr/8e61c991-553a-4a58-9eb6-561b64c11908/resubmit'
            \
              -H 'Authorization: Bearer leo_your_api_key'
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: object
          properties:
            code:
              type: integer
            timestamp:
              type: string
              format: date-time
            message:
              type: string
            details:
              type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Bearer token authentication. Use your API key in the format: Bearer
        leo_xxxxxxxx
      x-default: leo_your_api_key_here

````