Veem crypto-wallet-controller API

For managing crypto wallets, including balances, details, transactions and pay-ins

OpenAPI Specification

veem-crypto-wallet-controller-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: Veem REST API
  title: Veem API v1.2 attachment-controller crypto-wallet-controller API
  version: v1.2.1
servers:
- url: //sandbox-api.veem.com
tags:
- description: For managing crypto wallets, including balances, details, transactions and pay-ins
  name: crypto-wallet-controller
paths:
  /veem/v1.2/crypto-wallet/applications/{applicationId}/add-currency:
    post:
      deprecated: false
      description: Provisions an additional currency or route for an existing crypto wallet application.
      operationId: addCryptoWalletApplicationCurrency
      parameters:
      - description: Unique identifier of the crypto wallet application.
        in: path
        name: applicationId
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CryptoWalletAddCurrencyRequest'
        description: Currency details to add to the application
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CryptoWalletProvisionResponse'
          description: Currency added to crypto wallet application successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Invalid request body
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Forbidden, the token owner doesn't have permission to operate this API
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Internal Server Error, see the error code and API doc for reference
      summary: Add a currency to a crypto wallet application
      tags:
      - crypto-wallet-controller
  /veem/v1.2/crypto-wallet/applications:
    post:
      deprecated: false
      description: Creates a new crypto wallet application.
      operationId: createCryptoWalletApplication
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CryptoWalletApplicationRequest'
        description: Crypto wallet application details
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CryptoWalletApplicationResponse'
          description: Crypto wallet application created successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Invalid request body
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Forbidden, the token owner doesn't have permission to operate this API
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Internal Server Error, see the error code and API doc for reference
      summary: Create a crypto wallet application
      tags:
      - crypto-wallet-controller
  /veem/v1.2/crypto-wallet/applications/{applicationId}:
    get:
      description: Returns a specific crypto wallet application.
      operationId: getCryptoWalletApplication
      parameters:
      - description: Unique identifier of the crypto wallet application.
        in: path
        name: applicationId
        required: true
        schema:
          format: int64
          type: integer
      - description: Identifier of the account the request is made on behalf of.
        in: query
        name: onBehalfAccountId
        required: false
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CryptoWalletApplicationResponse'
          description: Crypto wallet application retrieved successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Invalid request body
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Forbidden, the token owner doesn't have permission to operate this API
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Internal Server Error, see the error code and API doc for reference
      summary: Retrieve a crypto wallet application by ID
      tags:
      - crypto-wallet-controller
    patch:
      description: Updates an existing crypto wallet application.
      operationId: patchCryptoWalletApplication
      parameters:
      - description: Unique identifier of the crypto wallet application.
        in: path
        name: applicationId
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CryptoWalletApplicationRequest'
        description: Updated crypto wallet application details
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CryptoWalletApplicationResponse'
          description: Crypto wallet application updated successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Invalid request body
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Forbidden, the token owner doesn't have permission to operate this API
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Internal Server Error, see the error code and API doc for reference
      summary: Update a crypto wallet application
      tags:
      - crypto-wallet-controller
  /veem/v1.2/crypto-wallet/applications/{applicationId}/routes/{routeId}:
    get:
      description: Returns a specific route for a crypto wallet application.
      operationId: getCryptoWalletApplicationRoute
      parameters:
      - description: Unique identifier of the crypto wallet application.
        in: path
        name: applicationId
        required: true
        schema:
          format: int64
          type: integer
      - description: Unique identifier of the crypto wallet application route.
        in: path
        name: routeId
        required: true
        schema:
          format: int64
          type: integer
      - description: Identifier of the account the request is made on behalf of.
        in: query
        name: onBehalfAccountId
        required: false
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CryptoWalletApplicationRouteResponse'
          description: Crypto wallet application route retrieved successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Invalid request body
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Forbidden, the token owner doesn't have permission to operate this API
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Internal Server Error, see the error code and API doc for reference
      summary: Retrieve a crypto wallet application route by ID
      tags:
      - crypto-wallet-controller
  /veem/v1.2/crypto-wallet/applications/{applicationId}/routes:
    get:
      description: Returns the routes for a specific crypto wallet application.
      operationId: getCryptoWalletApplicationRoutes
      parameters:
      - description: Unique identifier of the crypto wallet application.
        in: path
        name: applicationId
        required: true
        schema:
          format: int64
          type: integer
      - description: Identifier of the account the request is made on behalf of.
        in: query
        name: onBehalfAccountId
        required: false
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/CryptoWalletApplicationRouteResponse'
                type: array
          description: List of crypto wallet application routes retrieved successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Invalid request body
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Forbidden, the token owner doesn't have permission to operate this API
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Internal Server Error, see the error code and API doc for reference
      summary: Retrieve crypto wallet application routes
      tags:
      - crypto-wallet-controller
  /veem/v1.2/crypto-wallet/balance/{fundingMethodId}:
    get:
      description: Returns the balance details of a specific crypto wallet.
      operationId: getCryptoWalletBalanceById
      parameters:
      - description: Unique identifier of the crypto wallet funding method.
        in: path
        name: fundingMethodId
        required: true
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CryptoWalletBalanceResponse'
          description: Crypto wallet balance retrieved successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Invalid request body
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Forbidden, the token owner doesn't have permission to operate this API
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Internal Server Error, see the error code and API doc for reference
      summary: Retrieve crypto wallet balance by funding method ID
      tags:
      - crypto-wallet-controller
  /veem/v1.2/crypto-wallet/balance:
    get:
      description: Returns a list of balance details for all crypto wallets.
      operationId: getCryptoWalletBalances
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/CryptoWalletBalanceResponse'
                type: array
          description: List of crypto wallet balances retrieved successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Invalid request body
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Forbidden, the token owner doesn't have permission to operate this API
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Internal Server Error, see the error code and API doc for reference
      summary: Retrieve all crypto wallet balances
      tags:
      - crypto-wallet-controller
  /veem/v1.2/crypto-wallet/details:
    get:
      description: Returns a list of details for all crypto wallets.
      operationId: getCryptoWalletDetails
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/CryptoWalletDetailsResponse'
                type: array
          description: List of crypto wallet details retrieved successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Invalid request body
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Forbidden, the token owner doesn't have permission to operate this API
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Internal Server Error, see the error code and API doc for reference
      summary: Retrieve all crypto wallet details
      tags:
      - crypto-wallet-controller
  /veem/v1.2/crypto-wallet/details/{fundingMethodId}:
    get:
      description: Returns detailed information for a specific crypto wallet.
      operationId: getCryptoWalletDetailsById
      parameters:
      - description: Unique identifier of the crypto wallet funding method.
        in: path
        name: fundingMethodId
        required: true
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CryptoWalletDetailsResponse'
          description: Crypto wallet details retrieved successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Invalid request body
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Forbidden, the token owner doesn't have permission to operate this API
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Internal Server Error, see the error code and API doc for reference
      summary: Retrieve crypto wallet details by funding method ID
      tags:
      - crypto-wallet-controller
  /veem/v1.2/crypto-wallet:
    get:
      deprecated: false
      description: Gets the Crypto Wallet information for the payer, including status, currency and chain details.
      operationId: getCryptoWallets
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CryptoWalletPublicAPIResponse'
          description: Success, all active Crypto Wallets retrieved successfully.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Forbidden, the token owner doesn't have permission to operate this API
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Internal Server Error, see the error code and API doc for reference
      summary: Get payer's Crypto Wallets
      tags:
      - crypto-wallet-controller
  /veem/v1.2/crypto-wallet/transactions/{fundingMethodId}:
    get:
      description: Returns paginated transactions for a crypto wallet within a specified date range.
      operationId: getCryptoWalletTransactions
      parameters:
      - description: Unique identifier of the crypto wallet funding method.
        in: path
        name: fundingMethodId
        required: true
        schema:
          format: int64
          type: integer
      - description: 'The page number for paginated results (initial: 0).'
        in: query
        name: pageNumber
        required: false
        schema:
          default: 0
          format: int32
          type: integer
      - description: 'The number of results per page (max: 25).'
        in: query
        name: pageSize
        required: false
        schema:
          default: 25
          format: int32
          type: integer
      - description: The start date and time for transaction filtering.
        in: query
        name: startDate
        required: true
        schema:
          format: date-time
          type: string
      - description: The end date and time for transaction filtering.
        in: query
        name: endDate
        required: true
        schema:
          format: date-time
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageResponseTransactionReportItem'
          description: Paginated list of transactions retrieved successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Invalid request body
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Unauthorized, the token is invalid or expired
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Forbidden, the token owner doesn't have permission to operate this API
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VeemErrorResponse'
          description: Internal Server Error, see the error code and API doc for reference
      summary: Retrieve crypto wallet transactions
      tags:
      - crypto-wallet-controller
components:
  schemas:
    CryptoWalletHighLevelInformationResponse:
      description: High level information for a crypto wallet.
      properties:
        accountId:
          format: int64
          type: integer
        destinationCurrency:
          type: string
        destinationPaymentRail:
          type: string
        fundingMethodId:
          format: int64
          type: integer
        provider:
          type: string
        sourceChain:
          type: string
        sourceCurrency:
          type: string
        status:
          type: string
        timeCreated:
          format: date-time
          type: string
      title: CryptoWalletHighLevelInformationResponse
      type: object
    CryptoWalletApplicationRequest:
      description: Request payload for creating or updating a crypto wallet application.
      properties:
        destinationCurrency:
          description: The destination currency for settlement.
          type: string
        destinationPaymentRail:
          description: The destination payment rail for settlement.
          type: string
        externalRegulatoryBusinessInfo:
          $ref: '#/components/schemas/VirtualBankAccountBusinessExtraInfo'
          description: Regulatory information for a business applicant.
        externalRegulatoryIndividualInfo:
          $ref: '#/components/schemas/VirtualBankAccountIndividualExtraInfo'
          description: Regulatory information for an individual applicant.
        sourceChain:
          description: The source blockchain for the crypto wallet.
          type: string
        sourceCurrency:
          description: The source currency for the crypto wallet.
          type: string
      title: CryptoWalletApplicationRequest
      type: object
    VirtualBankAccountIndividualExtraInfo:
      description: Additional individual-related details for a virtual bank account.
      properties:
        annualIncome:
          description: Annual income of the individual.
          format: decimal
          type: number
        geographyReceivingCountries:
          description: List of countries to which funds can be received.
          type: string
        geographySendingCountries:
          description: List of countries from which funds can be sent.
          type: string
        monthlyExpectedActivity:
          description: Expected monthly financial activity for the account.
          format: decimal
          type: number
        occupation:
          description: Occupation of the individual associated with the account.
          type: string
        purposeOfAccount:
          description: Purpose for which the virtual bank account is used.
          type: string
        sourceOfFunds:
          description: Source of funds for the individual account.
          type: string
        websiteSocialMediaLink:
          description: Social media or website link associated with the individual.
          type: string
      type: object
    CryptoWalletLiquidationAddressResponse:
      description: Liquidation address details for a crypto wallet.
      properties:
        address:
          description: The liquidation wallet address.
          type: string
        bridgeWalletId:
          description: Identifier of the wallet at the Bridge provider.
          type: string
        createdAt:
          description: Timestamp when the liquidation address was created.
          type: string
        destinationCurrency:
          description: The destination currency.
          type: string
        destinationPaymentRail:
          description: The destination payment rail.
          type: string
        liquidationAddressId:
          description: Unique identifier of the liquidation address.
          type: string
        sourceChain:
          description: The source blockchain.
          type: string
        sourceCurrency:
          description: The source currency.
          type: string
        state:
          description: Current state of the liquidation address.
          type: string
        updatedAt:
          description: Timestamp when the liquidation address was last updated.
          type: string
      title: CryptoWalletLiquidationAddressResponse
      type: object
    CryptoWalletApplicationResponse:
      description: Details of a crypto wallet application.
      properties:
        applicationId:
          description: Unique identifier of the crypto wallet application.
          format: int64
          type: integer
        applicationStatus:
          description: Current status of the application.
          type: string
        externalRegulatoryBusinessInfo:
          $ref: '#/components/schemas/VirtualBankAccountBusinessExtraInfo'
          description: Regulatory information for a business applicant.
        externalRegulatoryIndividualInfo:
          $ref: '#/components/schemas/VirtualBankAccountIndividualExtraInfo'
          description: Regulatory information for an individual applicant.
        initialRouteId:
          description: Identifier of the initial route created for the application.
          format: int64
          type: integer
        provider:
          description: The provider backing the crypto wallet.
          type: string
      title: CryptoWalletApplicationResponse
      type: object
    VirtualBankAccountBusinessExtraInfo:
      description: Additional business-related details for a virtual bank account.
      properties:
        annualRevenue:
          description: Annual revenue for the business associated with the account.
          format: decimal
          type: number
        businessIncorporationDate:
          description: Incorporation date of the business.
          format: date
          type: string
        businessRegistrationAddressLine1:
          description: Primary address line for business registration.
          type: string
        businessRegistrationAddressLine2:
          description: Secondary address line for business registration.
          type: string
        businessRegistrationCity:
          description: City where business is registered.
          type: string
        businessRegistrationCountry:
          description: Country where the business is registered.
          type: string
        businessRegistrationNumber:
          description: Registration number for the business.
          type: string
        businessRegistrationPostalCode:
          description: Postal code of the business registration.
          type: string
        businessRegistrationStateProv:
          description: State or province where business is registered.
          type: string
        businessWebsite:
          description: Website or online presence for the business.
          type: string
        geographyReceivingCountries:
          description: List of countries to which funds can be received.
          type: string
        geographySendingCountries:
          description: List of countries from which funds can be sent.
          type: string
        monthlyExpectedActivity:
          description: Expected monthly financial activity for the account.
          format: decimal
          type: number
        purposeOfAccount:
          description: Purpose for which the virtual bank account is used.
          type: string
        sourceOfFunds:
          description: Source of funds for the business account.
          type: string
      type: object
    CryptoWalletBalanceResponse:
      description: Balance details for a crypto wallet.
      properties:
        accountId:
          format: int64
          type: integer
        balanceAmount:
          $ref: '#/components/schemas/AlignMonetaryAmountCryptoWallet'
        destinationCurrency:
          type: string
        destinationPaymentRail:
          type: string
        fundingMethodId:
          format: int64
          type: integer
        sourceChain:
          type: string
        sourceCurrency:
          type: string
        timeUpdated:
          format: date-time
          type: string
      title: CryptoWalletBalanceResponse
      type: object
    CryptoWalletProvisionResponse:
      description: Provisioning result for a crypto wallet application currency or route.
      properties:
        applicationId:
          description: Unique identifier of the crypto wallet application.
          format: int64
          type: integer
        applicationStatus:
          description: Current status of the application.
          type: string
        bridgeCustomerId:
          description: Identifier of the customer at the Bridge provider.
          type: string
        bridgeCustomerStatus:
          description: Status of the customer at the Bridge provider.
          type: string
        bridgeWalletAddress:
          description: Wallet address at the Bridge provider.
          type: string
        bridgeWalletId:
          description: Identifier of the wallet at the Bridge provider.
          type: string
        destinationCurrency:
          description: The destination currency.
          type: string
        destinationPaymentRail:
          description: The destination payment rail.
          type: string
        fundingMethodId:
          description: Identifier of the funding method.
          format: int64
          type: integer
        fundingMethodStatus:
          description: Status of the funding method.
          type: string
        fundingMethodType:
          description: Type of the funding method.
          type: string
        liquidationAddress:
          $ref: '#/components/schemas/CryptoWalletLiquidationAddressResponse'
          description: Liquidation address details for the provisioned wallet.
        provider:
          description: The provider backing the crypto wallet.
          type: string
        routeId:
          description: Unique identifier of the provisioned route.
          format: int64
          type: integer
        routeStatus:
          description: Status of the provisioned route.
          type: string
        sourceChain:
          description: The source blockchain.
          type: string
        sourceCurrency:
          description: The source currency.
          type: string
      title: CryptoWalletProvisionResponse
      type: object
    VeemErrorResponse:
      properties:
        code:
          description: The error code, different than HTTP status codes
          format: int32
          type: integer
        fileName:
          description: The filename where the exception was thrown
          type: string
        lineNumber:
          description: The line number where the exception was thrown
          format: int32
          type: integer
        logTag:
          description: Request log tag
          type: string
        message:
          description: The detailed, developer friendly message
          type: string
        timestamp:
          description: The timestamp recorded 

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/veem/refs/heads/main/openapi/veem-crypto-wallet-controller-api-openapi.yml