> ## 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.

# Send a Mock Deposit

> Simulates an inbound deposit into a balance account through a given deposit instruction, so you can exercise downstream processing — balances, transactions, and webhooks — without moving real money. This is fire-and-acknowledge: it responds `202` with an empty body and settles out of band, so observe the result by polling the account balance or transactions.

> **Sandbox only.** This endpoint exists exclusively in the sandbox environment for testing. Simulating a deposit is not possible in production.



## OpenAPI

````yaml /products/meridian-accounts/api-reference/meridian-accounts.json post /v1/accounts/{accountId}/simulate-deposit
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/accounts/{accountId}/simulate-deposit:
    post:
      tags:
        - Sandbox
      summary: Send a Mock Deposit
      description: >-
        Simulates an inbound deposit into a balance account through a given
        deposit instruction, so you can exercise downstream processing —
        balances, transactions, and webhooks — without moving real money. This
        is fire-and-acknowledge: it responds `202` with an empty body and
        settles out of band, so observe the result by polling the account
        balance or transactions.


        > **Sandbox only.** This endpoint exists exclusively in the sandbox
        environment for testing. Simulating a deposit is not possible in
        production.
      operationId: simulateDeposit
      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: accountId
          in: path
          description: >-
            ID of the balance account to deposit into — the `id` returned by
            `GET /v1/accounts` (e.g. `uspay-...`).
          required: true
          schema:
            type: string
      requestBody:
        description: The deposit instruction to credit and the amount to deposit.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimulateDepositApiRequest'
            examples:
              deposit_via_instruction:
                $ref: '#/components/examples/SimulateDepositViaDepositInstruction'
        required: true
      responses:
        '202':
          description: Deposit simulation accepted; settles out of band
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '400':
          description: Missing accountId or invalid request body (e.g. non-positive amount)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeridianError'
        '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 account was not found, or no deposit instruction exists on the
            account for the supplied `depositInstructionId`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeridianError'
      security:
        - meridian-account-jwt: []
        - partner-api-key: []
components:
  schemas:
    SimulateDepositApiRequest:
      type: object
      title: com.meridianpay.remittances.api.dto.meridian.SimulateDepositApiRequest
      required:
        - depositInstructionId
        - amount
      properties:
        depositInstructionId:
          type: string
          description: >-
            The `id` of the deposit instruction to credit — an opaque identifier
            such as `uspay-...`, NOT a rail name like `ACH` or `WIRE`. Each
            deposit instruction is a funding rail (ACH, Fedwire, etc.)
            configured on the account that an inbound deposit would arrive
            through. To find it, call `GET /v1/accounts/{accountId}` and copy
            the `id` of the desired entry from the `depositInstructions` array
            (match on its `rail.label`, e.g. `Fedwire` for a wire). Passing
            anything that is not an existing instruction id returns `404`.
          example: uspay-rvrsmt8vngju3kea5mm6fcck
        amount:
          type: string
          description: >-
            Amount to deposit, as a decimal string in the account's currency
            (e.g. `100.00`). Must be greater than zero.
          example: '100.00'
    EmptyResponse:
      type: object
      title: com.meridianpay.core.common.dto.EmptyResponse
      properties:
        message:
          type:
            - string
            - 'null'
    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:
    SimulateDepositViaDepositInstruction:
      value:
        depositInstructionId: uspay-deposit-instruction-id
        amount: '250.00'

````