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

# Add a Deposit Instruction to an Account

> Starts provisioning a new, named deposit instruction on an existing account. Funds received on it are swept into the account automatically. Responds `202 Accepted`; the instruction appears in `GET /v1/accounts/{accountId}` once provisioned. A retry that reuses the same `idempotencyKey` with a different `name` does not rename the instruction: the name from the first request wins. For stablecoin accounts, the new address also appears on your other stablecoin accounts for the assets and networks it supports.



## OpenAPI

````yaml /products/meridian-accounts/api-reference/meridian-accounts.json post /v1/accounts/{accountId}/deposit-instructions
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}/deposit-instructions:
    post:
      tags:
        - Accounts
      summary: Add a Deposit Instruction to an Account
      description: >-
        Starts provisioning a new, named deposit instruction on an existing
        account. Funds received on it are swept into the account automatically.
        Responds `202 Accepted`; the instruction appears in `GET
        /v1/accounts/{accountId}` once provisioned. A retry that reuses the same
        `idempotencyKey` with a different `name` does not rename the
        instruction: the name from the first request wins. For stablecoin
        accounts, the new address also appears on your other stablecoin accounts
        for the assets and networks it supports.
      operationId: createAccountDepositInstruction
      parameters:
        - name: X-Meridian-Api-Key
          in: header
          description: >-
            Server-to-server (HMAC) requests only. Partner API key issued by
            Meridian during provisioning.
          schema:
            type: string
          example: your-api-key
        - name: X-Meridian-Timestamp
          in: header
          description: >-
            Server-to-server (HMAC) requests only. Current time in milliseconds
            since the Unix epoch. Must be within 60 seconds of the request.
          schema:
            type: string
          example: '1749566400000'
        - name: X-Meridian-Program-Id
          in: header
          description: >-
            Server-to-server (HMAC) requests only. Identifies the program
            context for the request.
          schema:
            type: string
          example: your-program-id
        - name: X-Meridian-User-Id
          in: header
          description: >-
            Server-to-server (HMAC) requests only. Identifies the Meridian user
            targeted by the request. Required for MULTI_USER integrations; omit
            for SINGLE_USER.
          schema:
            type: string
          example: user_123
        - name: accountId
          in: path
          description: ID of the account — the `id` returned by `GET /v1/accounts`.
          required: true
          schema:
            type: string
      requestBody:
        description: Name and idempotency key for the new deposit instruction
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeridianCreateDepositInstructionRequest'
            examples:
              named_deposit_instruction:
                $ref: '#/components/examples/CreateAccountDepositInstructionRequest'
        required: true
      responses:
        '202':
          description: Provisioning started
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeridianCreateDepositInstructionResponse'
              examples:
                pending:
                  $ref: '#/components/examples/CreateAccountDepositInstructionPending'
        '400':
          description: Invalid or malformed request body
          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 requested account was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeridianError'
        '409':
          description: >-
            The account has no deposit-instruction provider ready yet, e.g.
            still onboarding
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeridianError'
      security:
        - meridian-account-jwt: []
        - partner-api-key: []
components:
  schemas:
    MeridianCreateDepositInstructionRequest:
      type: object
      title: MeridianCreateDepositInstructionRequest
      description: Request payload for adding a deposit instruction to an account
      required:
        - name
        - idempotencyKey
      properties:
        name:
          type: string
          description: >-
            Display name for the new deposit instruction. 1-64 characters; need
            not be unique.
          example: Invoices EU
        idempotencyKey:
          type: string
          description: >-
            Client-supplied idempotency key; retries with the same key are
            de-duplicated. If a retry reuses the key with a different name, the
            name from the first request wins.
          example: a1b2c3d4
    MeridianCreateDepositInstructionResponse:
      type: object
      title: MeridianCreateDepositInstructionResponse
      description: >-
        Accepted request to add a deposit instruction; it appears on the account
        once provisioned
      required:
        - accountId
        - name
        - status
        - idempotencyKey
      properties:
        accountId:
          type: string
          description: The account the deposit instruction is being added to
        name:
          type: string
          description: Display name of the new deposit instruction
        status:
          type: string
          description: >-
            Always PENDING; poll GET /v1/accounts/{accountId} for the new
            instruction
          example: PENDING
        idempotencyKey:
          type: string
          description: The idempotency key supplied on the request
    MeridianError:
      type: object
      title: 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
          description: >-
            Machine-readable code identifying the failure. Absent when the
            failure is fully described by `validationErrors`. Clients should
            tolerate codes added in the future.
          enum:
            - UNAUTHORIZED
            - FORBIDDEN
            - NOT_FOUND
            - INVALID_REQUEST
            - INTERNAL_ERROR
            - INFORMATION_REQUEST_NOT_EDITABLE
            - INVALID_USER_TYPE
            - SINGLE_USER_KEY_NOT_ALLOWED
            - USER_ID_HEADER_REQUIRED
            - USER_ID_HEADER_NOT_ALLOWED
            - PDF_PAGE_LIMIT_EXCEEDED
            - PDF_PASSWORD_PROTECTED
            - PDF_UNREADABLE
        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: 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.
      required:
        - type
      properties:
        type:
          type: string
          description: Identifies which ValidationError this is.
          enum:
            - InvalidFormat
            - InvalidValue
            - MissingPathParameter
            - MissingQueryParameter
            - MissingRequestBody
            - MissingValue
            - NotFound
            - UnexpectedVerificationError
            - Unknown
            - UnprocessableValue
      discriminator:
        propertyName: type
        mapping:
          InvalidFormat:
            $ref: '#/components/schemas/InvalidFormat'
          InvalidValue:
            $ref: '#/components/schemas/InvalidValue'
          MissingPathParameter:
            $ref: '#/components/schemas/MissingPathParameter'
          MissingQueryParameter:
            $ref: '#/components/schemas/MissingQueryParameter'
          MissingRequestBody:
            $ref: '#/components/schemas/MissingRequestBody'
          MissingValue:
            $ref: '#/components/schemas/MissingValue'
          NotFound:
            $ref: '#/components/schemas/NotFound'
          UnexpectedVerificationError:
            $ref: '#/components/schemas/UnexpectedVerificationError'
          Unknown:
            $ref: '#/components/schemas/Unknown'
          UnprocessableValue:
            $ref: '#/components/schemas/UnprocessableValue'
    InvalidFormat:
      title: InvalidFormat
      description: The provided value exists, but its format is invalid for the field.
      allOf:
        - $ref: '#/components/schemas/ValidationError'
        - type: object
          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:
      title: InvalidValue
      description: >-
        The provided value is syntactically valid, but not accepted for the
        field.
      allOf:
        - $ref: '#/components/schemas/ValidationError'
        - type: object
          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:
      title: MissingPathParameter
      description: A required path parameter was not supplied.
      allOf:
        - $ref: '#/components/schemas/ValidationError'
        - type: object
          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:
      title: MissingQueryParameter
      description: A required query parameter was not supplied.
      allOf:
        - $ref: '#/components/schemas/ValidationError'
        - type: object
          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:
      title: MissingRequestBody
      description: >-
        The request body is missing or does not contain the required non-null
        fields.
      allOf:
        - $ref: '#/components/schemas/ValidationError'
        - type: object
          properties:
            message:
              type: string
              description: A human-readable explanation of the validation failure.
            fieldRef:
              type: string
              description: The field or parameter that triggered the validation error.
    MissingValue:
      title: MissingValue
      description: A required value for the field was not provided.
      allOf:
        - $ref: '#/components/schemas/ValidationError'
        - type: object
          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:
      title: NotFound
      description: The referenced principal object was not found.
      allOf:
        - $ref: '#/components/schemas/ValidationError'
        - type: object
          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:
      title: UnexpectedVerificationError
      description: A downstream verification step failed while checking the value.
      allOf:
        - $ref: '#/components/schemas/ValidationError'
        - type: object
          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.
    Unknown:
      title: Unknown
      description: >-
        A validation error occurred but the specific field could not be
        determined.
      allOf:
        - $ref: '#/components/schemas/ValidationError'
        - type: object
          properties:
            message:
              type: string
              description: A human-readable explanation of the validation failure.
            fieldRef:
              type: string
              description: The field or parameter that triggered the validation error.
    UnprocessableValue:
      title: UnprocessableValue
      description: The provided value cannot be processed into a valid result.
      allOf:
        - $ref: '#/components/schemas/ValidationError'
        - type: object
          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:
    CreateAccountDepositInstructionRequest:
      value:
        name: Invoices EU
        idempotencyKey: 7f3c2a9e-5b1d-4e8a-9c6f-2d4b8a1e0c37
    CreateAccountDepositInstructionPending:
      value:
        accountId: acc_01JMERUSDTRSY01
        name: Invoices EU
        status: PENDING
        idempotencyKey: 7f3c2a9e-5b1d-4e8a-9c6f-2d4b8a1e0c37
  securitySchemes:
    meridian-account-jwt:
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Bearer token authentication, for client-server calls.


        Send the access token issued by `POST /v1/auth/token` as `Authorization:
        Bearer {token}`. The token carries its own program and user context, so
        the `X-Meridian-*` headers are not required. See
        [Authentication](/products/meridian-accounts/guides/authentication-overview).
      type: http
    partner-api-key:
      name: X-Meridian-Signature
      in: header
      description: >-
        Meridian HMAC header authentication, for server-to-server calls.


        Required headers:
          - `X-Meridian-Api-Key`
          - `X-Meridian-Timestamp`
          - `X-Meridian-Program-Id`
          - `X-Meridian-User-Id` (MULTI_USER integrations only)
          - `X-Meridian-Signature`

        `X-Meridian-Signature` is the HMAC SHA-256 signature of the canonical
        request string, computed per request. See
        [Authentication](/products/meridian-accounts/guides/authentication-overview)
        for how to construct it.
      type: apiKey

````