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

# Create or retrieve standing virtual-account onramp deposit instructions

> Provisions a standing virtual bank account for recurring onramp deposits, or returns the existing instructions when the same customer, provider, payment method, currency pair, and destination wallet were already set up.



## OpenAPI

````yaml /openapi/crypto-20260203.json post /payments/virtual-account/deposit-instructions
openapi: 3.1.0
info:
  title: CRYPTO
  termsOfService: urn:tos
  license:
    name: Apache 2.0
    url: https://springdoc.org
  version: '2026-02-03'
  description: ''
servers:
  - url: https://api-sb.meld.io
    description: Meld API sandbox
  - url: https://api.meld.io
    description: Meld API production
security: []
tags:
  - name: Retail Ramp
    description: ''
  - name: Virtual Account
    description: ''
  - name: Payment
    description: ''
  - name: Session
    description: ''
paths:
  /payments/virtual-account/deposit-instructions:
    post:
      tags:
        - Virtual Account
      summary: Create or retrieve standing virtual-account onramp deposit instructions
      description: >-
        Provisions a standing virtual bank account for recurring onramp
        deposits, or returns the existing instructions when the same customer,
        provider, payment method, currency pair, and destination wallet were
        already set up.
      operationId: /payments-virtual-account-deposit-instructions-create
      parameters:
        - name: X-Idempotency-Key
          in: header
          required: false
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VirtualAccountDepositInstructionsRequest'
            example:
              destinationCurrencyCode: USDC
              destinationWalletAddress: '0xe51f36521fF5D857824e615a64D34808534a55f4'
              paymentMethodType: ACH
              serviceProvider: ACROSS
              sourceCurrencyCode: USD
        required: true
      responses:
        '201':
          description: Deposit instructions created or returned successfully
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/VirtualAccountDepositInstructionsResponse'
        '400':
          description: 'Bad Request : check request values and format'
        '401':
          description: Invalid credentials
        '403':
          description: Unauthenticated or authenticated with insufficient access
        '500':
          description: Internal Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    VirtualAccountDepositInstructionsRequest:
      type: object
      description: >-
        Request to provision or retrieve standing virtual-account deposit
        instructions
      properties:
        customerId:
          type: string
          description: Meld customer id
          minLength: 1
        customerPhoneNumber:
          type: string
          description: >-
            Customer phone number — required when paymentMethodType is
            MOBILE_MONEY and the provider requires it
        destinationCurrencyCode:
          type: string
          description: Destination cryptocurrency code
          example: USDC
          minLength: 1
        destinationWalletAddress:
          type: string
          description: Wallet address that will receive the purchased cryptocurrency
          example: '0xe51f36521fF5D857824e615a64D34808534a55f4'
          minLength: 1
        paymentMethodType:
          type: string
          description: Fiat rail used to fund the virtual account
          enum:
            - ACH
            - SEPA
            - PIX
            - MOBILE_MONEY
        serviceProvider:
          type: string
          description: Service provider for the virtual deposit account
          enum:
            - ACROSS
            - AEROPAY
            - AKOYA
            - ALCHEMYPAY
            - APPLEPAY
            - AUTHORIZENET
            - BANXA
            - BILIRA
            - BINANCECONNECT
            - BINANCEPAY
            - BLOCKCHAINDOTCOM
            - BOOMFI
            - BRAINTREE
            - BRALE
            - BTCDIRECT
            - CASHAPP
            - CHECKOUT
            - CIRCLE
            - COINBASEPAY
            - COINFLOW
            - DUENETWORK
            - ELDORADO
            - FINICITY
            - FLASHNET
            - FONBNK
            - GUARDARIAN
            - HARBOUR
            - KOYWE
            - KRYPTONIM
            - MERCURYO
            - MESH
            - MESO
            - MOONPAY
            - MOOV
            - MX
            - NMI
            - NOAH
            - ONMETA
            - ONRAMPMONEY
            - PAYBIS
            - PAYPAL
            - PLAID
            - RAMP
            - REVOLUT
            - ROBINHOOD
            - ROUTERPROTOCOL
            - SALTEDGE
            - SALTEDGEPARTNERS
            - SARDINE
            - SHIFT4
            - SHOPIFY
            - SIMPLEX
            - SKRILLCRYPTO
            - SQUARE
            - STRIPE
            - SUMSUB
            - SWAPPED
            - TANGOCARD
            - TELLER
            - TOPPER
            - TRANSAK
            - TREMENDOUS
            - TRANSFI
            - UNLIMIT
            - UPHOLD
            - WYRE
            - XANPOOL
            - YELLOWCARD
            - YODLEE
        sourceCurrencyCode:
          type: string
          description: Source fiat currency code
          example: USD
          minLength: 1
      required:
        - customerId
        - destinationCurrencyCode
        - destinationWalletAddress
        - paymentMethodType
        - serviceProvider
        - sourceCurrencyCode
    VirtualAccountDepositInstructionsResponse:
      type: object
      description: Standing virtual-account deposit instructions
      properties:
        customerId:
          type: string
          description: Meld customer id
        depositInstructionsId:
          type: string
          description: Unique id for this deposit instruction row
        destinationCurrencyCode:
          type: string
          description: Destination cryptocurrency code
        destinationWalletAddress:
          type: string
          description: Destination wallet address for purchased crypto
        paymentMethodType:
          type: string
          description: Payment method type for the fiat deposit rail
          enum:
            - ACH
            - SEPA
            - PIX
            - MOBILE_MONEY
        receivingBankInformation:
          description: >-
            Bank information for the fiat transfer; shape depends on
            paymentMethodType
          oneOf:
            - title: AchReceivingBankInformation
              allOf:
                - $ref: '#/components/schemas/AchReceivingBankInformation'
            - title: LocalBankTransferReceivingBankInformation
              allOf:
                - $ref: >-
                    #/components/schemas/LocalBankTransferReceivingBankInformation
            - title: MobileMoneyReceivingBankInformation
              allOf:
                - $ref: '#/components/schemas/MobileMoneyReceivingBankInformation'
            - title: PixReceivingBankInformation
              allOf:
                - $ref: '#/components/schemas/PixReceivingBankInformation'
            - title: SepaReceivingBankInformation
              allOf:
                - $ref: '#/components/schemas/SepaReceivingBankInformation'
        serviceProvider:
          type: string
          description: Service provider
          enum:
            - ACROSS
            - AEROPAY
            - AKOYA
            - ALCHEMYPAY
            - APPLEPAY
            - AUTHORIZENET
            - BANXA
            - BILIRA
            - BINANCECONNECT
            - BINANCEPAY
            - BLOCKCHAINDOTCOM
            - BOOMFI
            - BRAINTREE
            - BRALE
            - BTCDIRECT
            - CASHAPP
            - CHECKOUT
            - CIRCLE
            - COINBASEPAY
            - COINFLOW
            - DUENETWORK
            - ELDORADO
            - FINICITY
            - FLASHNET
            - FONBNK
            - GUARDARIAN
            - HARBOUR
            - KOYWE
            - KRYPTONIM
            - MERCURYO
            - MESH
            - MESO
            - MOONPAY
            - MOOV
            - MX
            - NMI
            - NOAH
            - ONMETA
            - ONRAMPMONEY
            - PAYBIS
            - PAYPAL
            - PLAID
            - RAMP
            - REVOLUT
            - ROBINHOOD
            - ROUTERPROTOCOL
            - SALTEDGE
            - SALTEDGEPARTNERS
            - SARDINE
            - SHIFT4
            - SHOPIFY
            - SIMPLEX
            - SKRILLCRYPTO
            - SQUARE
            - STRIPE
            - SUMSUB
            - SWAPPED
            - TANGOCARD
            - TELLER
            - TOPPER
            - TRANSAK
            - TREMENDOUS
            - TRANSFI
            - UNLIMIT
            - UPHOLD
            - WYRE
            - XANPOOL
            - YELLOWCARD
            - YODLEE
        serviceProviderDetails:
          type: object
          additionalProperties: {}
          description: >-
            Raw provider-specific fields not mapped into
            receivingBankInformation
        sourceCurrencyCode:
          type: string
          description: Source fiat currency code
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
        displayMessage:
          type: string
        errors:
          type: array
          items:
            type: string
        message:
          type: string
        requestId:
          type: string
        serviceProviderDetails:
          type: object
          additionalProperties: {}
        timestamp:
          type: string
          format: date-time
    AchReceivingBankInformation:
      allOf:
        - $ref: '#/components/schemas/ReceivingBankInformation'
        - type: object
          properties:
            accountNumber:
              type: string
              description: Bank account number
            routingNumber:
              type: string
              description: Bank routing number
        - type: object
          properties:
            accountNumber:
              type: string
              description: Bank account number
            routingNumber:
              type: string
              description: Bank routing number
            bankName:
              type: string
              description: Receiving bank name
            accountHolderName:
              type: string
              description: Account holder name on the virtual account
      description: Receiving bank details for ACH
    LocalBankTransferReceivingBankInformation:
      allOf:
        - $ref: '#/components/schemas/ReceivingBankInformation'
        - type: object
          properties:
            accountNumber:
              type: string
              description: Bank account number
            routingNumber:
              type: string
              description: Bank routing number
      description: Receiving bank details for LOCAL_BANK_TRANSFER
    MobileMoneyReceivingBankInformation:
      allOf:
        - $ref: '#/components/schemas/ReceivingBankInformation'
        - type: object
          properties:
            mobileMoneyReference:
              type: string
              description: Mobile money reference
            bankName:
              type: string
              description: Receiving bank name
            accountHolderName:
              type: string
              description: Account holder name on the virtual account
      description: Receiving bank details for mobile money
    PixReceivingBankInformation:
      allOf:
        - $ref: '#/components/schemas/ReceivingBankInformation'
        - type: object
          properties:
            pixKey:
              type: string
              description: PIX key
            bankName:
              type: string
              description: Receiving bank name
            accountHolderName:
              type: string
              description: Account holder name on the virtual account
      description: Receiving bank details for PIX
    SepaReceivingBankInformation:
      allOf:
        - $ref: '#/components/schemas/ReceivingBankInformation'
        - type: object
          properties:
            iban:
              type: string
              description: IBAN
        - type: object
          properties:
            iban:
              type: string
              description: IBAN
            bic:
              type: string
              description: BIC / SWIFT code when provided by the provider
            bankName:
              type: string
              description: Receiving bank name
            accountHolderName:
              type: string
              description: Account holder name on the virtual account
      description: Receiving bank details for SEPA
    ReceivingBankInformation:
      description: Receiving bank details. The schema depends on paymentMethodType.
      discriminator:
        propertyName: paymentMethodType
      properties:
        paymentMethodType:
          type: string
      required:
        - paymentMethodType
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      x-default: BASIC <Meld API Key>

````