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

# List Deposits

> Lists the deposits received on a virtual account, most recent first.

Each deposit is converted to USDC. The KemyCard fee of your plan is taken from the USDC received
(Starter $1 + 1%, Business $1 + 0.75%, Premium $1 + 0.5%), the same for both destinations, and the net
amount is sent to the destination of the account:

- `wallet`: the net amount is credited to the balance of the USDC wallet on Solana of the customer, as for a
  wallet deposit (see `GET /wallets/{code}`). The `wallet_code` of the customer is reported in `destination`.
- `external_address`: the net amount is sent on-chain in USDC on Solana. `tx_hash` is the transaction.

| Status | Meaning |
|--------|---------|
| `received` | The bank transfer has been received |
| `converting` | The funds are being converted to USDC |
| `sending` | The net amount is being sent to the external address |
| `completed` | The net amount has been credited or sent |
| `failed` | The transfer to the external address failed. Our team is notified and retries it |




## OpenAPI

````yaml GET /virtual-accounts/{code}/deposits
openapi: 3.1.0
info:
  title: KemyCard API
  version: '1.0'
  description: >
    KemyCard API allows you to issue virtual and physical cards, manage KYC/POA
    verification,

    create crypto wallets, virtual bank accounts, purchase gift cards and send
    payouts to bank accounts (SEPA Instant

    in EUR, ACH in USD to the United States).


    Access depends on your plan (see [Plans and
    Pricing](/getting-started/plans)). The free Découverte plan gives

    access to virtual cards with the KYC and POA endpoints and to payouts (SEPA
    and ACH), within monthly limits (25 cards

    created and 5,000 USD loaded on cards per calendar month, 5,000 USD of
    payouts per calendar month), 30 requests

    per minute per API key, 2 allowed IP addresses and 1 active webhook
    endpoint. Starter, Business and Premium give access to every product with no
    monthly limit,

    100 requests per minute per API key, 10 allowed IP addresses and 10 active
    webhook endpoints.


    Plan errors: `402 PLAN_UPGRADE_REQUIRED` (product not included in your
    plan), `403 PLAN_LIMIT_REACHED`

    (limit of your plan reached). While one of your ops balances is negative,
    every request other than `GET`

    returns `403 ACCOUNT_SUSPENDED_NEGATIVE_BALANCE`.
  contact:
    name: KemyCard API Support
    email: hi@kemycard.com
servers:
  - url: https://api.kemycard.com/v1
    description: Development (tests internes)
  - url: https://api.kemycard.com/v1
    description: Production
security:
  - BearerAuth: []
tags:
  - name: Customers
    description: Manage your customers
  - name: Card Products
    description: Browse the card product catalog
  - name: Cards
    description: Issue and manage cards
  - name: KYC
    description: Identity verification
  - name: POA
    description: Proof of address verification
  - name: Wallets
    description: Crypto wallets
  - name: Virtual Accounts
    description: >
      Virtual bank accounts in EUR, USD, BRL and MXN for your individual
      customers. Deposits are converted to USDC

      and sent, net of the KemyCard fee, to a USDC wallet on Solana of the
      customer or to an external Solana address
  - name: Gift Cards
    description: Gift card catalog and purchases
  - name: Payouts
    description: >
      Payouts to bank accounts: SEPA Instant in EUR (paid from your Payout SEPA
      balance) and ACH in USD to bank

      accounts in the United States (paid from your Ops Others balance)
  - name: Balance
    description: Operational balances and transaction history
  - name: Webhooks
    description: Webhook endpoints and delivery management
paths:
  /virtual-accounts/{code}/deposits:
    get:
      tags:
        - Virtual Accounts
      summary: List the deposits of a virtual account
      description: >
        Lists the deposits received on a virtual account, most recent first.


        Each deposit is converted to USDC. The KemyCard fee of your plan is
        taken from the USDC received

        (Starter $1 + 1%, Business $1 + 0.75%, Premium $1 + 0.5%), the same for
        both destinations, and the net

        amount is sent to the destination of the account:


        - `wallet`: the net amount is credited to the balance of the USDC wallet
        on Solana of the customer, as for a
          wallet deposit (see `GET /wallets/{code}`). The `wallet_code` of the customer is reported in `destination`.
        - `external_address`: the net amount is sent on-chain in USDC on Solana.
        `tx_hash` is the transaction.


        | Status | Meaning |

        |--------|---------|

        | `received` | The bank transfer has been received |

        | `converting` | The funds are being converted to USDC |

        | `sending` | The net amount is being sent to the external address |

        | `completed` | The net amount has been credited or sent |

        | `failed` | The transfer to the external address failed. Our team is
        notified and retries it |
      operationId: listVirtualAccountDeposits
      parameters:
        - name: code
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Code of the virtual account
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: Deposit list
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/VirtualAccountDeposit'
                  meta:
                    $ref: '#/components/schemas/Meta'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '402':
          $ref: '#/components/responses/PlanUpgradeRequired'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    page:
      name: page
      in: query
      schema:
        type: integer
        default: 1
        minimum: 1
      description: Page number
    limit:
      name: limit
      in: query
      schema:
        type: integer
        default: 20
        minimum: 1
        maximum: 100
      description: Items per page (max 100)
  schemas:
    VirtualAccountDeposit:
      type: object
      properties:
        code:
          type: string
          format: uuid
          description: Deposit code
        virtual_account_code:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - received
            - converting
            - sending
            - completed
            - failed
          example: completed
        amount:
          type: number
          description: Amount received, in the currency of the account
          example: 500
        currency:
          type: string
          enum:
            - EUR
            - USD
            - BRL
            - MXN
          example: EUR
        sender_name:
          type: string
          nullable: true
          example: Alice Martin
        payment_rail:
          type: string
          nullable: true
          description: Bank network of the transfer, for example `sepa`
          example: sepa
        reference:
          type: string
          nullable: true
          description: Reference entered by the payer
          example: Invoice 1042
        usdc_received:
          type: number
          nullable: true
          description: USDC received after conversion. `null` until the conversion is done
          example: 541.2
        fee:
          type: number
          nullable: true
          description: KemyCard fee, taken from the USDC received
          example: 6.41
        net_amount:
          type: number
          nullable: true
          description: >-
            USDC credited or sent to the destination. Can be `0` when the
            deposit is too small to cover the fee
          example: 534.79
        destination:
          allOf:
            - $ref: '#/components/schemas/VirtualAccountDestination'
          nullable: true
          description: >-
            Destination used for this deposit, set when the USDC arrives. `null`
            before
        tx_hash:
          type: string
          nullable: true
          description: >-
            Blockchain transaction of the transfer to an external address.
            `null` for a wallet destination
        created_at:
          type: string
          format: date-time
        completed_at:
          type: string
          format: date-time
          nullable: true
    Meta:
      type: object
      properties:
        request_id:
          type: string
          example: a4f8e2c1b3d97056
        mode:
          type: string
          enum:
            - test
            - live
          example: test
        timestamp:
          type: string
          format: date-time
    Pagination:
      type: object
      properties:
        page:
          type: integer
          example: 1
        limit:
          type: integer
          example: 20
        total:
          type: integer
          example: 42
        pages:
          type: integer
          example: 3
    VirtualAccountDestination:
      type: object
      properties:
        type:
          type: string
          enum:
            - wallet
            - external_address
          example: wallet
        wallet_code:
          type: string
          format: uuid
          description: Only with `type` `wallet`
          example: 01a11628-4600-7e59-bd4a-01604c588373
        blockchain:
          type: string
          enum:
            - solana
          example: solana
        currency:
          type: string
          enum:
            - USDC
          example: USDC
        address:
          type: string
          description: >-
            Address of the wallet (`wallet`) or the external address
            (`external_address`)
          example: CUSTOMER_DEPOSIT_ADDRESS
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: object
          properties:
            code:
              type: string
              description: >
                Error code, for example `AUTHENTICATION_REQUIRED`,
                `AUTHENTICATION_FAILED`, `ACCOUNT_RESTRICTED`,

                `IP_NOT_ALLOWED`, `PLAN_UPGRADE_REQUIRED`, `PLAN_LIMIT_REACHED`,
                `ACCOUNT_SUSPENDED_NEGATIVE_BALANCE`,

                `INSUFFICIENT_BALANCE`, `OPERATION_FAILED`, `FORBIDDEN`,
                `RESOURCE_NOT_FOUND`, `VALIDATION_ERROR`,

                `COUNTRY_NOT_SUPPORTED`, `RATE_LIMIT_EXCEEDED`,
                `INTERNAL_ERROR`, `wrong_api_host`. See [Error
                Handling](/guides/error-handling).
              example: VALIDATION_ERROR
            message:
              type: string
              example: Missing required fields.
            details:
              type: object
              nullable: true
        meta:
          $ref: '#/components/schemas/Meta'
  responses:
    PlanUpgradeRequired:
      description: The product is not included in your plan
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            error:
              code: PLAN_UPGRADE_REQUIRED
              message: >-
                This product is not included in the Découverte plan. Upgrade to
                a paid plan (Starter, Business or Premium) to use "wallets".
              details:
                plan: decouverte
                product: wallets
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            error:
              code: RESOURCE_NOT_FOUND
              message: Resource not found.
              details: null
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: API key (sk_test_... or sk_live_...)

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.