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

# Upload and attach an Information Request document

> Uploads a document for a requirement entry and stores it.



## OpenAPI

````yaml /products/meridian-accounts/api-reference/meridian-accounts.json post /v1/information-requests/{informationRequestId}/documents
openapi: 3.1.1
info:
  title: Meridian API
  version: '1.0'
  description: API documentation for Meridian services
  contact:
    name: Meridian
    url: https://mnai.com
    email: support@mnai.com
  license:
    name: Proprietary
    url: https://mnai.com
servers:
  - url: https://sandbox-api.va.meridianpay.com
    description: Sandbox
  - url: https://api.va.mnai.com
    description: Production
security: []
paths:
  /v1/information-requests/{informationRequestId}/documents:
    post:
      tags:
        - Information Requests
      summary: Upload and attach an Information Request document
      description: Uploads a document for a requirement entry and stores it.
      operationId: uploadInformationRequestDocument
      parameters:
        - name: Authorization
          in: header
          description: >-
            Bearer authentication header of the form `Bearer {token}`. Required
            for client-server (JWT) authentication. See
            [Authentication](/products/meridian-accounts/guides/authentication-overview).
          schema:
            type: string
        - name: X-Meridian-Program-Id
          in: header
          description: >-
            Identifies the program context for the request. Required for
            server-to-server (HMAC) authentication. See
            [Authentication](/products/meridian-accounts/guides/authentication-overview).
          schema:
            type: string
        - name: X-Meridian-User-Id
          in: header
          description: >-
            Identifies the Meridian user targeted by the request. Required for
            server-to-server (HMAC) authentication with MULTI_USER integrations;
            omit for SINGLE_USER. See
            [Authentication](/products/meridian-accounts/guides/authentication-overview).
          schema:
            type: string
        - name: X-Meridian-Api-Key
          in: header
          description: >-
            Partner API key issued by Meridian during provisioning. Required for
            server-to-server (HMAC) authentication. See
            [Authentication](/products/meridian-accounts/guides/authentication-overview).
          schema:
            type: string
        - name: X-Meridian-Timestamp
          in: header
          description: >-
            Current time in milliseconds since the Unix epoch. Must be within 60
            seconds of the request. Required for server-to-server (HMAC)
            authentication. See
            [Authentication](/products/meridian-accounts/guides/authentication-overview).
          schema:
            type: string
        - name: X-Meridian-Signature
          in: header
          description: >-
            HMAC SHA-256 signature of the canonical request string, computed per
            request. Required for server-to-server (HMAC) authentication. See
            [Authentication](/products/meridian-accounts/guides/authentication-overview)
            for how to construct it.
          schema:
            type: string
        - name: informationRequestId
          in: path
          required: true
          schema:
            type: string
        - name: Content-Digest
          in: header
          description: >-
            SHA-256 digest of the multipart body, formatted per RFC 9530 as
            `sha-256=:<base64>:`. Required when authenticating with a partner
            API key; the HMAC signature is computed over the Content-Digest
            value instead of the raw multipart bytes. Ignored for JWT auth.
          schema:
            type: string
      requestBody:
        description: >-
          Multipart form data containing requirementKey, documentKey, optional
          entryId, and file
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Upload Information Request File Request'
            examples:
              passport:
                $ref: '#/components/examples/UploadDocumentPassport'
              drivers_license_front:
                $ref: '#/components/examples/UploadDocumentDriversLicenseFront'
              drivers_license_back:
                $ref: '#/components/examples/UploadDocumentDriversLicenseBack'
        required: true
      responses:
        '201':
          description: Document upload accepted
        '401':
          description: Missing or invalid authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeridianError'
        '403':
          description: >-
            The authenticated caller is not permitted: JWT scope missing, or the
            partner API key lacks entitlement, user ownership, or user-type
            match
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeridianError'
        '404':
          description: The requested Information Request was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeridianError'
      security:
        - meridian-account-jwt: []
        - partner-api-key: []
components:
  schemas:
    Upload Information Request File Request:
      type: object
      title: Upload Information Request File Request
      description: Multipart form data for uploading a file to an Information Request
      required:
        - file
      properties:
        requirementKey:
          type:
            - string
            - 'null'
          description: Requirement key to attach the document to
          example: associatedPersons
        documentKey:
          type:
            - string
            - 'null'
          description: Document slot key to attach the file to
          example: identityDocumentFront
        entryId:
          type:
            - string
            - 'null'
          description: Virtual requirement entry id, such as associatedPersons:0
          example: associatedPersons:0
        file:
          type: string
          description: File to upload
          format: binary
          items:
            type: integer
    MeridianError:
      type: object
      title: com.meridianpay.core.common.api.MeridianError
      description: >-
        Represents an error response from the Meridian API, including validation
        errors and an optional error code.
      required:
        - message
      properties:
        validationErrors:
          type: array
          description: >-
            An array of validation errors that occurred during the processing of
            the request. This field is optional and may be empty if there are no
            validation errors.
          items:
            $ref: '#/components/schemas/ValidationError'
        errorCode:
          type:
            - string
            - 'null'
          description: >-
            An optional error code that provides additional information about
            the error. This field is optional and may be null.
        message:
          type: string
          description: >-
            A human-readable message describing the error. This field is
            required and should provide a clear explanation of the error that
            occurred.
    ValidationError:
      type: object
      title: com.meridianpay.core.common.api.ValidationError
      description: >-
        Represents a validation error that occurred during the processing of a
        request to the Meridian API. One of the following types of validation
        errors may be present: InvalidFormat, InvalidValue, MissingValue,
        UnprocessableValue, UnexpectedVerificationError, MissingRequestBody,
        MissingPathParameter, MissingQueryParameter, or NotFound. Each
        validation error includes a reference to the field that caused the error
        and a message describing the error.
      oneOf:
        - $ref: '#/components/schemas/InvalidFormat'
        - $ref: '#/components/schemas/InvalidValue'
        - $ref: '#/components/schemas/MissingPathParameter'
        - $ref: '#/components/schemas/MissingQueryParameter'
        - $ref: '#/components/schemas/MissingRequestBody'
        - $ref: '#/components/schemas/MissingValue'
        - $ref: '#/components/schemas/NotFound'
        - $ref: '#/components/schemas/UnexpectedVerificationError'
        - $ref: '#/components/schemas/UnprocessableValue'
      discriminator:
        propertyName: type
        mapping:
          com.meridianpay.core.common.api.ValidationError.InvalidFormat:
            $ref: '#/components/schemas/InvalidFormat'
          com.meridianpay.core.common.api.ValidationError.InvalidValue:
            $ref: '#/components/schemas/InvalidValue'
          com.meridianpay.core.common.api.ValidationError.MissingPathParameter:
            $ref: '#/components/schemas/MissingPathParameter'
          com.meridianpay.core.common.api.ValidationError.MissingQueryParameter:
            $ref: '#/components/schemas/MissingQueryParameter'
          com.meridianpay.core.common.api.ValidationError.MissingRequestBody:
            $ref: '#/components/schemas/MissingRequestBody'
          com.meridianpay.core.common.api.ValidationError.MissingValue:
            $ref: '#/components/schemas/MissingValue'
          com.meridianpay.core.common.api.ValidationError.NotFound:
            $ref: '#/components/schemas/NotFound'
          com.meridianpay.core.common.api.ValidationError.UnexpectedVerificationError:
            $ref: '#/components/schemas/UnexpectedVerificationError'
          com.meridianpay.core.common.api.ValidationError.UnprocessableValue:
            $ref: '#/components/schemas/UnprocessableValue'
    InvalidFormat:
      type: object
      title: com.meridianpay.core.common.api.ValidationError.InvalidFormat
      description: The provided value exists, but its format is invalid for the field.
      required:
        - fieldRef
      properties:
        fieldRef:
          type: string
          description: The field or parameter that triggered the validation error.
        message:
          type: string
          description: A human-readable explanation of the validation failure.
    InvalidValue:
      type: object
      title: com.meridianpay.core.common.api.ValidationError.InvalidValue
      description: >-
        The provided value is syntactically valid, but not accepted for the
        field.
      required:
        - fieldRef
      properties:
        fieldRef:
          type: string
          description: The field or parameter that triggered the validation error.
        message:
          type: string
          description: A human-readable explanation of the validation failure.
    MissingPathParameter:
      type: object
      title: com.meridianpay.core.common.api.ValidationError.MissingPathParameter
      description: A required path parameter was not supplied.
      required:
        - fieldRef
      properties:
        fieldRef:
          type: string
          description: The field or parameter that triggered the validation error.
        message:
          type: string
          description: A human-readable explanation of the validation failure.
    MissingQueryParameter:
      type: object
      title: com.meridianpay.core.common.api.ValidationError.MissingQueryParameter
      description: A required query parameter was not supplied.
      required:
        - fieldRef
      properties:
        fieldRef:
          type: string
          description: The field or parameter that triggered the validation error.
        message:
          type: string
          description: A human-readable explanation of the validation failure.
    MissingRequestBody:
      type: object
      title: com.meridianpay.core.common.api.ValidationError.MissingRequestBody
      description: >-
        The request body is missing or does not contain the required non-null
        fields.
      properties:
        message:
          type: string
          description: A human-readable explanation of the validation failure.
        fieldRef:
          type: string
    MissingValue:
      type: object
      title: com.meridianpay.core.common.api.ValidationError.MissingValue
      description: A required value for the field was not provided.
      required:
        - fieldRef
      properties:
        fieldRef:
          type: string
          description: The field or parameter that triggered the validation error.
        message:
          type: string
          description: A human-readable explanation of the validation failure.
    NotFound:
      type: object
      title: com.meridianpay.core.common.api.ValidationError.NotFound
      description: The referenced principal object was not found.
      required:
        - fieldRef
      properties:
        fieldRef:
          type: string
          description: The field or parameter that triggered the validation error.
        message:
          type: string
          description: A human-readable explanation of the validation failure.
    UnexpectedVerificationError:
      type: object
      title: >-
        com.meridianpay.core.common.api.ValidationError.UnexpectedVerificationError
      description: A downstream verification step failed while checking the value.
      required:
        - fieldRef
      properties:
        fieldRef:
          type: string
          description: The field or parameter that triggered the validation error.
        message:
          type: string
          description: A human-readable explanation of the validation failure.
    UnprocessableValue:
      type: object
      title: com.meridianpay.core.common.api.ValidationError.UnprocessableValue
      description: The provided value cannot be processed into a valid result.
      required:
        - fieldRef
      properties:
        fieldRef:
          type: string
          description: The field or parameter that triggered the validation error.
        message:
          type: string
          description: A human-readable explanation of the validation failure.
  examples:
    UploadDocumentPassport:
      value:
        requirementKey: associated_persons
        documentKey: passport
        entryId: associated_persons:0
        file: <binary passport image — e.g. passport.png>
    UploadDocumentDriversLicenseFront:
      value:
        requirementKey: associated_persons
        documentKey: drivers_license_front
        entryId: associated_persons:0
        file: <binary driver's license front image — e.g. drivers_license_front.png>
    UploadDocumentDriversLicenseBack:
      value:
        requirementKey: associated_persons
        documentKey: drivers_license_back
        entryId: associated_persons:0
        file: <binary driver's license back image — e.g. drivers_license_back.png>

````