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

> ## Agent Instructions
> Money amounts are always major-unit decimal strings (e.g. "1000.00"), never floats and never minor units, in every request, response, and webhook payload.
> Authentication is OAuth 2.0 client credentials: exchange the Client ID and Client Secret at the Token URL for a 24-hour JWT and cache it; do not request a token per call.
> Set a unique clientRef on every money-moving request; it is the idempotency key, and retries return the original resource.
> Quotes are single-use, intent-locked, and expire fast: always read expiresAt, consume the quote with the executor matching its intent, and re-quote on expiry instead of retrying.
> Prefer webhooks over polling for payout, order, and deposit status tracking.
> Use the sandbox (api.sandbox.zuba.com) with its deterministic magic values before touching production.

# List deposits

> Deprecated: use GET /v2/deposits for opaque cursor pagination.



## OpenAPI

````yaml /openapi.json get /v1/deposits
openapi: 3.0.0
info:
  contact: {}
  description: >-
    Comprehensive payment platform API supporting fiat and crypto payments,
    currency conversion, and compliance management
  title: Zuba Payment Platform API
  version: '1.0'
servers: []
security: []
tags:
  - description: Manage M2M API keys and credentials
    name: API Keys
  - description: Internal ledger accounts and transactions
    name: Ledger
  - description: Handle incoming payments and deposits
    name: Pay-ins
  - description: Manage payouts, beneficiaries, and SEPA transfers
    name: Payouts
  - description: Manage outbound webhook endpoints and deliveries
    name: Webhooks
paths:
  /v1/deposits:
    get:
      tags:
        - Pay-ins
      summary: List deposits
      description: 'Deprecated: use GET /v2/deposits for opaque cursor pagination.'
      operationId: PayinController_listDeposits
      parameters:
        - description: Filter deposits by status
          in: query
          name: status
          required: false
          schema:
            enum:
              - pending
              - processing
              - completed
              - failed
              - cancelled
              - refunding
              - refunded
              - in_review
            type: string
        - description: 'Cursor for pagination (composite: timestamp__uuid)'
          in: query
          name: cursor
          required: false
          schema:
            example: 2024-01-15T10:30:00.000Z__a1b2c3d4-e5f6-7890-abcd-ef1234567890
            type: string
        - description: Number of items per page (1-100, default 20)
          in: query
          name: limit
          required: false
          schema:
            default: 20
            example: 20
            maximum: 100
            minimum: 1
            type: number
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DepositListDto'
          description: List of deposits retrieved successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponseDto'
          description: Bad request - invalid query parameters
        '401':
          description: Unauthorized - missing or invalid JWT token
        '500':
          description: Internal Server Error
      deprecated: true
      security:
        - bearer: []
components:
  schemas:
    DepositListDto:
      properties:
        deposits:
          description: List of deposits
          items:
            $ref: '#/components/schemas/DepositDto'
          type: array
        hasMore:
          description: Whether there are more deposits to load
          example: true
          type: boolean
        nextCursor:
          description: 'Next cursor for pagination (composite: timestamp__uuid)'
          example: 2024-01-15T10:30:00.000Z__a1b2c3d4-e5f6-7890-abcd-ef1234567890
          type: string
      required:
        - deposits
        - hasMore
      type: object
    ValidationErrorResponseDto:
      properties:
        details:
          description: Array of detailed validation errors
          example:
            - field: accounts.0.data.crAccount
              message: crAccount must be exactly 10 digits for Nigerian accounts
              value: '12345678901'
          items:
            $ref: '#/components/schemas/ValidationErrorDetailDto'
          type: array
        error:
          description: Error type identifier
          example: BAD_REQUEST
          type: string
        message:
          description: Error summary message
          example: Validation failed
          type: string
        path:
          description: Request path that generated the error
          example: /v1/beneficiaries
          type: string
        statusCode:
          description: HTTP status code
          example: 400
          type: number
        timestamp:
          description: ISO timestamp when the error occurred
          example: '2024-01-15T10:30:00.000Z'
          type: string
      required:
        - statusCode
        - message
        - error
        - timestamp
        - path
        - details
      type: object
    DepositDto:
      properties:
        amount:
          description: Deposit amount (as string to avoid floating-point precision issues)
          example: '100.50'
          type: string
        clientRef:
          description: Client reference (idempotency key) supplied at creation
          example: 609eddec-9b97-4f41-8db3-ef9342263418
          type: string
        createdAt:
          description: Creation timestamp
          example: '2024-01-15T10:30:00Z'
          format: date-time
          type: string
        currency:
          description: Currency code (ISO 4217)
          example: EUR
          type: string
        errorMessage:
          description: Error message if the pay-in failed
          example: Payment declined by bank
          type: string
        id:
          description: Unique identifier for the pay-in
          example: 123e4567-e89b-12d3-a456-426614174000
          format: uuid
          type: string
        method:
          description: Payment method used
          enum:
            - manual_deposit
            - admin_deposit
            - virtual_account
            - crypto_deposit
            - bank_deposit
          example: manual_deposit
          type: string
        providerTransactionId:
          description: Transaction ID from the payment provider
          example: TXN-123456789
          type: string
        status:
          description: Current status of the pay-in
          enum:
            - pending
            - processing
            - completed
            - failed
            - cancelled
            - refunding
            - refunded
            - in_review
          example: completed
          type: string
        updatedAt:
          description: Last update timestamp
          example: '2024-01-15T10:35:00Z'
          format: date-time
          type: string
      required:
        - id
        - status
        - createdAt
        - updatedAt
        - amount
        - currency
        - method
        - clientRef
      type: object
    ValidationErrorDetailDto:
      properties:
        code:
          description: >-
            Stable machine-readable code for client-side branching. Present on
            provider structural-validation failures (e.g.
            MISSING_BENEFICIARY_NAME, INVALID_IBAN, BENEFICIARY_INCOMPLETE);
            absent on generic DTO validation errors.
          example: MISSING_BENEFICIARY_NAME
          type: string
        field:
          description: The field path that failed validation
          example: accounts.0.data.crAccount
          type: string
        message:
          description: Human-readable error message describing the validation failure
          example: crAccount must be exactly 10 digits for Nigerian accounts
          type: string
        value:
          description: The invalid value that was provided (may be omitted for security)
          example: '12345678901'
          type: object
      required:
        - field
        - message
      type: object
  securitySchemes:
    bearer:
      bearerFormat: JWT
      description: Enter Auth0 JWT token
      scheme: bearer
      type: http

````