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

# Simulate Virtual Account Funding

> Simulates an inbound credit transfer to a virtual account. This is a test-only endpoint.

This endpoint is a crucial tool for testing your integration in our **sandbox environment** 🧪. It allows you to simulate an incoming bank transfer to a specific virtual account, triggering any associated webhooks and updating the account's balance.

<Callout type="warning" emoji="⚠️">
  This endpoint is available **only in the sandbox environment** and will not work in production. It is designed exclusively for testing purposes.
</Callout>

***

## Endpoint

Use this endpoint to simulate a credit transaction to one of your virtual accounts.

**`POST`** `/v1/virtual-account/simulate/transfer`

***

## Request Body

The request body must include the amount and the unique reference of the virtual account you wish to fund.

| **Field**   | **Type** | **Description**                                                                      | **Required** |
| :---------- | :------- | :----------------------------------------------------------------------------------- | :----------- |
| `amount`    | Number   | The amount to be credited, specified in the lowest denomination (e.g., kobo, cents). | ✅ Yes        |
| `reference` | String   | The unique reference number for the virtual account you are funding.                 | ✅ Yes        |

***

## Request Example

Here is an example of how to call the endpoint using cURL.

```bash copy theme={null}
curl --location '{{baseurl}}/v1/virtual-account/simulate/transfer' \
--header 'Content-Type: application/json' \
--header 'x-api-key: YOUR_SANDBOX_API_KEY' \
--data '{
    "amount": 10000,
    "reference": "your_virtual_account_reference"
}'
```

```json theme={null}
curl --location '{{baseurl}}/v1/virtual-account/simulate/transfer' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {{apikey}}' \
--data '{
    "amount": 10000,
    "reference": "{{refNumber}}"
}'
```


## OpenAPI

````yaml post /v1/virtual-account/simulate/transfer
openapi: 3.0.3
info:
  title: meCash API
  version: 3.0.3
  description: >-
    API for meCash services, including FIAT and Ramp operations. This is the
    OpenAPI specification for the meCash API, covering all available endpoints
    for wallet management, currency quotes, and payouts.


    It follows a design-first approach based on OpenAPI 3.0.


    Authentication is handled via an API key passed in the `x-api-key` header.
    Replace `YOUR_API_KEY` with your actual key when making requests.


    Some useful links:

    - [meCash Documentation](https://docs.me-cash.com/)

    - [Authentication Guide](https://docs.me-cash.com/authentication)
servers:
  - url: https://sandboxapi.me-cash.com
    description: Sandbox Server for Testing
security:
  - ApiKeyAuth: []
tags:
  - name: Wallet
    description: Wallet management operations
  - name: Quote
    description: Currency quote operations
  - name: Payout
    description: Payout operations
  - name: Transaction
    description: Transaction management
  - name: Virtual Account
    description: Virtual account operations for static and dynamic accounts
  - name: Bank
    description: Bank account and list operations
  - name: Ramp
    description: Ramp operations for crypto
  - name: Miscellaneous
    description: Utility and miscellaneous operations
  - name: Collection
    description: Mobile money and wallet funding operations
  - name: Bulk Payout
    description: >-
      Bulk transfer operations for sending to multiple beneficiaries in a single
      request
paths:
  /v1/virtual-account/simulate/transfer:
    post:
      tags:
        - Virtual Account
      summary: Simulate an Inbound Transfer
      description: >-
        Simulates an inbound credit transfer to a virtual account. This is a
        test-only endpoint.
      operationId: simulateVirtualAccountTransfer
      requestBody:
        description: Details of the simulated transfer.
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - amount
                - reference
              properties:
                amount:
                  type: integer
                  description: >-
                    The amount to transfer in the lowest currency unit (e.g.,
                    cents for USD).
                  example: 10000
                reference:
                  type: string
                  description: Reference number used in the virtual account creation.
                  example: TXN1234567
      responses:
        '200':
          description: Transfer simulation successful.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: Virtual account funded successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  responses:
    BadRequest:
      description: >-
        Bad Request. The server could not process the request due to a client
        error (e.g., malformed request syntax, invalid parameters).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized. The request requires a valid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            status: error
            errorCode: UNAUTHORIZED
            message: No valid API key provided.
  schemas:
    Error:
      type: object
      properties:
        status:
          type: string
          example: error
        errorCode:
          type: string
          description: A unique code for the error that occurred.
          example: INVALID_PARAMETER
        message:
          type: string
          example: An error occurred.
      required:
        - status
        - errorCode
        - message
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````