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

# Wallet Transaction Details

> Gets wallet transaction details by reference.



## OpenAPI

````yaml /novacrust-open-api-v2.yaml get /api/v1/business/open/transactions/wallet
openapi: 3.0.0
info:
  title: Open-API
  description: The http Integration API description
  version: '1.0'
  contact: {}
servers:
  - url: http://localhost:3050
    description: Local environment
  - url: https://api-staging.novacrust.com
    description: Staging environment
  - url: https://api-dev.novacrust.com
    description: Develop environment
security:
  - api-key: []
tags:
  - name: Customer
    description: ''
  - name: Payout Methods
    description: ''
  - name: Beneficiary
    description: ''
  - name: Payout
    description: ''
  - name: Transactions
    description: ''
  - name: Buy Gift Card
    description: ''
  - name: Sell Gift Card
    description: ''
  - name: Miscellaneous
    description: ''
paths:
  /api/v1/business/open/transactions/wallet:
    get:
      tags:
        - Transactions
      summary: Wallet Transaction Details
      description: Gets wallet transaction details by reference.
      operationId: getWalletTransaction
      parameters:
        - name: reference
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Transaction details retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessWalletTransactionResponse'
components:
  schemas:
    BusinessWalletTransactionResponse:
      type: object
      properties:
        uuid:
          type: string
        type:
          enum:
            - CREDIT
            - DEBIT
          type: string
        serviceType:
          enum:
            - wallet_funding
            - payout_withdrawal
            - balance_update
            - exchange
            - card_funding
            - card_withdrawal
            - card_creation
            - usd_account_creation
            - platform_fee
            - purchase
            - monthly_card_maintenance
            - fund_card
            - refund
            - gift_card_purchase
            - gift_card_sale
            - authorization_code
            - business_collection
          type: string
        paymentGateway:
          type: string
          enum:
            - PAYSTACK
            - INTERNAL
            - KORAPAY
            - STARTBUTTON
            - BLOCKRADAR
            - SAFEHAVEN
            - CASHRAMP
            - SEPTLY
            - BRAILS
        paymentGatewayReference:
          type: string
        amount:
          type: number
        platformFee:
          type: number
        revenueMetadata:
          type: object
          nullable: true
        paymentGatewayFee:
          type: number
        totalAmount:
          type: number
        totalFees:
          type: number
        balanceBefore:
          type: number
        balanceAfter:
          type: number
        providerExchangeRate:
          type: number
        novacrustExchangeRate:
          type: number
        transactionSpread:
          type: number
        description:
          type: string
        status:
          enum:
            - PENDING
            - SUCCESS
            - FAILED
            - CLOSE
            - MANUAL_REVIEW
          type: string
        reference:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
        paymentLink:
          $ref: '#/components/schemas/BusinessPaymentLink'
        paymentLinkId:
          type: number
        businessFxTrade:
          $ref: '#/components/schemas/BusinessFxTrade'
        businessFxTradeId:
          type: number
        metadata:
          type: object
      required:
        - uuid
        - type
        - serviceType
        - paymentGateway
        - paymentGatewayReference
        - amount
        - platformFee
        - revenueMetadata
        - paymentGatewayFee
        - totalAmount
        - totalFees
        - balanceBefore
        - balanceAfter
        - providerExchangeRate
        - novacrustExchangeRate
        - transactionSpread
        - description
        - status
        - reference
        - createdAt
        - updatedAt
        - deletedAt
        - paymentLink
        - paymentLinkId
        - businessFxTrade
        - businessFxTradeId
        - metadata
    BusinessPaymentLink:
      type: object
      properties:
        id:
          type: number
        business:
          $ref: '#/components/schemas/Business'
        name:
          type: string
        slug:
          type: string
        url:
          type: string
        redirectUrl:
          type: string
          nullable: true
        isDefault:
          type: boolean
        status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
        settlementCurrency:
          type: string
        settlementAmount:
          type: number
        isAmountFixed:
          type: boolean
        description:
          type: string
        customerMetadata:
          type: object
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/BusinessWalletTransaction'
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - id
        - business
        - name
        - slug
        - url
        - redirectUrl
        - isDefault
        - status
        - settlementCurrency
        - settlementAmount
        - isAmountFixed
        - description
        - customerMetadata
        - transactions
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessFxTrade:
      type: object
      properties:
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/BusinessWalletTransaction'
        id:
          type: number
        sourceWallet:
          $ref: '#/components/schemas/BusinessWallet'
        destinationWallet:
          $ref: '#/components/schemas/BusinessWallet'
        sourceCurrency:
          $ref: '#/components/schemas/Currency'
        sourceCurrencyId:
          type: number
        destinationCurrency:
          $ref: '#/components/schemas/Currency'
        destinationCurrencyId:
          type: number
        sourceAmount:
          type: number
        destinationAmount:
          type: number
        platformFee:
          type: number
        providerExchangeRate:
          type: number
        novacrustExchangeRate:
          type: number
        transactionSpread:
          type: number
        revenueMetadata:
          type: object
          nullable: true
        sourceBalanceBefore:
          type: number
        sourceBalanceAfter:
          type: number
        destinationBalanceBefore:
          type: number
        destinationBalanceAfter:
          type: number
        reference:
          type: string
        description:
          type: string
        status:
          enum:
            - PENDING
            - SUCCESS
            - FAILED
            - CLOSE
            - MANUAL_REVIEW
          type: string
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - transactions
        - id
        - sourceWallet
        - destinationWallet
        - sourceCurrency
        - sourceCurrencyId
        - destinationCurrency
        - destinationCurrencyId
        - sourceAmount
        - destinationAmount
        - platformFee
        - providerExchangeRate
        - novacrustExchangeRate
        - transactionSpread
        - revenueMetadata
        - sourceBalanceBefore
        - sourceBalanceAfter
        - destinationBalanceBefore
        - destinationBalanceAfter
        - reference
        - description
        - status
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    Business:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        name:
          type: string
        email:
          type: string
        username:
          type: string
        country:
          type: string
        phoneNumber:
          type: string
        supportEmail:
          type: string
        logoUrl:
          type: string
        kycStatus:
          type: string
          enum:
            - Not Submitted
            - Pending
            - Approved
            - Rejected
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
        businessUserLinks:
          type: array
          items:
            $ref: '#/components/schemas/BusinessUserLink'
        kyc:
          $ref: '#/components/schemas/Kyc'
        wallets:
          type: array
          items:
            $ref: '#/components/schemas/BusinessWallet'
        customers:
          type: array
          items:
            $ref: '#/components/schemas/Customer'
        businessCustomerVirtualAccounts:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCustomerVirtualAccount'
        settings:
          $ref: '#/components/schemas/BusinessSetting'
        token:
          type: array
          items:
            $ref: '#/components/schemas/BusinessToken'
        businessBeneficiaries:
          type: array
          items:
            $ref: '#/components/schemas/BusinessBeneficiary'
        businessPayouts:
          type: array
          items:
            $ref: '#/components/schemas/BusinessPayout'
        cashramp_customer_id:
          type: string
        businessCode:
          type: number
        referralCode:
          type: string
        customer_crypto_accounts:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCustomerCryptoAccount'
      required:
        - id
        - uuid
        - name
        - email
        - username
        - country
        - phoneNumber
        - supportEmail
        - logoUrl
        - kycStatus
        - createdAt
        - updatedAt
        - deletedAt
        - businessUserLinks
        - kyc
        - wallets
        - customers
        - businessCustomerVirtualAccounts
        - settings
        - token
        - businessBeneficiaries
        - businessPayouts
        - cashramp_customer_id
        - businessCode
        - referralCode
        - customer_crypto_accounts
    BusinessWalletTransaction:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        wallet:
          $ref: '#/components/schemas/BusinessWallet'
        type:
          enum:
            - CREDIT
            - DEBIT
          type: string
        serviceType:
          enum:
            - wallet_funding
            - payout_withdrawal
            - balance_update
            - exchange
            - card_funding
            - card_withdrawal
            - card_creation
            - usd_account_creation
            - platform_fee
            - purchase
            - monthly_card_maintenance
            - fund_card
            - refund
            - gift_card_purchase
            - gift_card_sale
            - authorization_code
            - business_collection
          type: string
        paymentGateway:
          type: string
          enum:
            - PAYSTACK
            - INTERNAL
            - KORAPAY
            - STARTBUTTON
            - BLOCKRADAR
            - SAFEHAVEN
            - CASHRAMP
            - SEPTLY
            - BRAILS
        paymentGatewayReference:
          type: string
        amount:
          type: number
        platformFee:
          type: number
        revenueMetadata:
          type: object
          nullable: true
        paymentGatewayFee:
          type: number
        totalAmount:
          type: number
        totalFees:
          type: number
        balanceBefore:
          type: number
        balanceAfter:
          type: number
        providerExchangeRate:
          type: number
        novacrustExchangeRate:
          type: number
        transactionSpread:
          type: number
        description:
          type: string
        status:
          enum:
            - PENDING
            - SUCCESS
            - FAILED
            - CLOSE
            - MANUAL_REVIEW
          type: string
        reference:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
        paymentLink:
          $ref: '#/components/schemas/BusinessPaymentLink'
        paymentLinkId:
          type: number
        businessFxTrade:
          $ref: '#/components/schemas/BusinessFxTrade'
        businessFxTradeId:
          type: number
        metadata:
          type: object
      required:
        - id
        - uuid
        - wallet
        - type
        - serviceType
        - paymentGateway
        - paymentGatewayReference
        - amount
        - platformFee
        - revenueMetadata
        - paymentGatewayFee
        - totalAmount
        - totalFees
        - balanceBefore
        - balanceAfter
        - providerExchangeRate
        - novacrustExchangeRate
        - transactionSpread
        - description
        - status
        - reference
        - createdAt
        - updatedAt
        - deletedAt
        - paymentLink
        - paymentLinkId
        - businessFxTrade
        - businessFxTradeId
        - metadata
    BusinessWallet:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        business:
          $ref: '#/components/schemas/Business'
        currency:
          $ref: '#/components/schemas/Currency'
        balance:
          type: number
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
        virtualAccounts:
          type: array
          items:
            type: object
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/BusinessWallet'
      required:
        - id
        - uuid
        - business
        - currency
        - balance
        - createdAt
        - updatedAt
        - deletedAt
        - virtualAccounts
        - transactions
    Currency:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        country:
          type: string
        symbol:
          type: string
        currencyCode:
          type: string
        countryCode:
          type: string
        buySpread:
          type: number
        sellSpread:
          type: number
        businessBuySpread:
          type: number
        businessSellSpread:
          type: number
        spreadType:
          type: string
          enum:
            - FIXED
            - PERCENTAGE
        currencyClass:
          type: string
          enum:
            - local
            - global
        isHub:
          type: boolean
        rateProviders:
          type: array
          items:
            type: string
            enum:
              - quidax
              - coinmarketcap
              - brails
              - cashramp
        conversionFeePercentage:
          type: number
        businessConversionFeePercentage:
          type: number
        payoutEnabled:
          type: boolean
        collectionEnabled:
          type: boolean
        minFundingAmount:
          type: number
        minFundingPlatformFee:
          type: number
          nullable: true
        businessMinFundingPlatformFee:
          type: number
          nullable: true
        fundingPlatformFeeType:
          type: object
        fundingPlatformFeeValue:
          type: number
        businessFundingPlatformFeeType:
          type: object
        businessFundingPlatformFeeValue:
          type: number
        minPayoutPlatformFee:
          type: number
          nullable: true
        businessMinPayoutPlatformFee:
          type: number
          nullable: true
        canConvertTo:
          type: array
          items:
            type: string
        canConvertFrom:
          type: array
          items:
            type: string
        created:
          format: date-time
          type: string
        updated:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
        wallets:
          type: array
          items:
            $ref: '#/components/schemas/BusinessWallet'
        businessPayouts:
          type: array
          items:
            $ref: '#/components/schemas/BusinessPayout'
        businessPayoutMetadata:
          type: array
          items:
            $ref: '#/components/schemas/BusinessPayoutMethodMetadata'
        customerVirtualAccounts:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCustomerVirtualAccount'
        beneficiaries:
          type: array
          items:
            $ref: '#/components/schemas/Beneficiary'
        payouts:
          type: array
          items:
            $ref: '#/components/schemas/Payout'
        payoutMetadata:
          type: array
          items:
            $ref: '#/components/schemas/PayoutMethodMetadata'
        user_wallets:
          type: array
          items:
            $ref: '#/components/schemas/Wallet'
      required:
        - id
        - uuid
        - country
        - symbol
        - currencyCode
        - countryCode
        - buySpread
        - sellSpread
        - businessBuySpread
        - businessSellSpread
        - spreadType
        - currencyClass
        - isHub
        - rateProviders
        - conversionFeePercentage
        - businessConversionFeePercentage
        - payoutEnabled
        - collectionEnabled
        - minFundingAmount
        - minFundingPlatformFee
        - businessMinFundingPlatformFee
        - fundingPlatformFeeType
        - fundingPlatformFeeValue
        - businessFundingPlatformFeeType
        - businessFundingPlatformFeeValue
        - minPayoutPlatformFee
        - businessMinPayoutPlatformFee
        - canConvertTo
        - canConvertFrom
        - created
        - updated
        - wallets
        - businessPayouts
        - businessPayoutMetadata
        - customerVirtualAccounts
        - beneficiaries
        - payouts
        - payoutMetadata
        - user_wallets
    BusinessUserLink:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        business:
          $ref: '#/components/schemas/Business'
        user:
          $ref: '#/components/schemas/BusinessUser'
        role:
          type: string
          enum:
            - ADMIN
            - MEMBER
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - id
        - uuid
        - business
        - user
        - role
        - createdAt
        - updatedAt
        - deletedAt
    Kyc:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        business:
          $ref: '#/components/schemas/Business'
        documents:
          type: object
          nullable: true
        legalName:
          type: string
        tradingName:
          type: string
        registrationNumber:
          type: string
        taxNumber:
          type: string
        description:
          type: string
        owners:
          type: object
        status:
          type: string
        reason:
          type: string
        kycStatus:
          type: string
          enum:
            - Not Submitted
            - Pending
            - Approved
            - Rejected
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - id
        - uuid
        - business
        - documents
        - legalName
        - tradingName
        - registrationNumber
        - taxNumber
        - description
        - owners
        - status
        - reason
        - kycStatus
        - createdAt
        - updatedAt
        - deletedAt
    Customer:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        phoneNumber:
          type: string
        country:
          type: string
        address:
          type: string
        postalCode:
          type: string
        state:
          type: string
        city:
          type: string
        customerType:
          enum:
            - INDIVIDUAL
            - BUSINESS
          type: string
        otp:
          type: string
        otpExpiresAt:
          format: date-time
          type: string
        kyc_metadata:
          type: object
        kyc_status:
          type: string
          enum:
            - pending
            - approved
            - declined
        kycProviderVerificationReference:
          type: string
          nullable: true
        kycProviderName:
          type: string
          nullable: true
        kycProviderRawResponse:
          type: object
          nullable: true
        kycProviderVerificationStatus:
          type: string
          nullable: true
        kycProviderWasCharged:
          type: boolean
          nullable: true
        business:
          $ref: '#/components/schemas/Business'
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
        cardHolders:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCardHolder'
        customerVirtualAccounts:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCustomerVirtualAccount'
        cryptoAccounts:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCustomerCryptoAccount'
      required:
        - id
        - uuid
        - firstName
        - lastName
        - email
        - phoneNumber
        - country
        - address
        - postalCode
        - state
        - city
        - customerType
        - otp
        - otpExpiresAt
        - kyc_metadata
        - kyc_status
        - kycProviderVerificationReference
        - kycProviderName
        - kycProviderRawResponse
        - kycProviderVerificationStatus
        - kycProviderWasCharged
        - business
        - createdAt
        - updatedAt
        - deletedAt
        - cardHolders
        - customerVirtualAccounts
        - cryptoAccounts
    BusinessCustomerVirtualAccount:
      type: object
      properties:
        customer:
          $ref: '#/components/schemas/Customer'
        business:
          $ref: '#/components/schemas/Business'
        currency:
          $ref: '#/components/schemas/Currency'
        businessCustomerVirtualAccountProvider:
          $ref: '#/components/schemas/BusinessCustomerVirtualAccountProvider'
        status:
          type: string
          enum:
            - requested
            - pending
            - active
            - inactive
            - failed
            - freezing
        account_id_from_provider:
          type: string
        activation_metadata:
          type: object
          nullable: true
        businessCustomerVirtualAccountDetails:
          $ref: '#/components/schemas/BusinessCustomerVirtualAccountDetails'
        tos_status:
          type: boolean
        kyc_status:
          type: boolean
        rejection_reason:
          type: string
          nullable: true
        kyc_rejection_reasons:
          type: object
          properties:
            reason:
              type: string
            developerReason:
              type: string
          required:
            - reason
            - developerReason
        pending_issues:
          nullable: true
          type: array
          items:
            type: string
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - customer
        - business
        - currency
        - businessCustomerVirtualAccountProvider
        - status
        - account_id_from_provider
        - activation_metadata
        - businessCustomerVirtualAccountDetails
        - tos_status
        - kyc_status
        - rejection_reason
        - kyc_rejection_reasons
        - pending_issues
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessSetting:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        business:
          $ref: '#/components/schemas/Business'
        webhookUrl:
          type: string
        webhookSecret:
          type: string
        is2FaViaEmailEnabled:
          type: boolean
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - id
        - uuid
        - business
        - webhookUrl
        - webhookSecret
        - is2FaViaEmailEnabled
        - createdAt
        - updatedAt
        - deletedAt
    BusinessToken:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        business:
          $ref: '#/components/schemas/Business'
        name:
          type: string
        token:
          type: string
        isActive:
          type: boolean
        expiresAt:
          format: date-time
          type: string
          nullable: true
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - id
        - uuid
        - business
        - name
        - token
        - isActive
        - expiresAt
        - createdAt
        - updatedAt
        - deletedAt
    BusinessBeneficiary:
      type: object
      properties:
        name:
          type: string
        payoutMethod:
          $ref: '#/components/schemas/BusinessPayoutMethod'
        countryCode:
          type: string
        currencyCode:
          type: string
        metadata:
          type: object
        business:
          $ref: '#/components/schemas/Business'
        payouts:
          type: array
          items:
            $ref: '#/components/schemas/BusinessPayout'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - name
        - payoutMethod
        - countryCode
        - currencyCode
        - metadata
        - business
        - payouts
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessPayout:
      type: object
      properties:
        beneficiary:
          $ref: '#/components/schemas/BusinessBeneficiary'
        providerReference:
          type: string
        transferReference:
          type: string
        payoutMethod:
          $ref: '#/components/schemas/BusinessPayoutMethod'
        amount:
          type: number
        description:
          type: string
        business:
          $ref: '#/components/schemas/Business'
        currency:
          $ref: '#/components/schemas/Currency'
        businessPayoutsProvider:
          $ref: '#/components/schemas/BusinessPayoutsProvider'
        providerFee:
          type: number
        networkFee:
          type: number
        platformFee:
          type: number
        totalAmount:
          type: number
        revenueMetadata:
          type: object
          nullable: true
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - SUCCESS
            - FAILED
        metadata:
          type: object
          nullable: true
        txHash:
          type: string
          nullable: true
        initiatedByBusinessUser:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/BusinessUser'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - beneficiary
        - providerReference
        - transferReference
        - payoutMethod
        - amount
        - description
        - business
        - currency
        - businessPayoutsProvider
        - providerFee
        - networkFee
        - platformFee
        - totalAmount
        - revenueMetadata
        - status
        - metadata
        - txHash
        - initiatedByBusinessUser
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessCustomerCryptoAccount:
      type: object
      properties:
        customer_id:
          type: number
        provider_crypto_account_id:
          type: string
        crypto_provider_id:
          type: string
        crypto_provider:
          $ref: '#/components/schemas/BusinessCryptoProvider'
        customer:
          $ref: '#/components/schemas/Customer'
        business:
          $ref: '#/components/schemas/Business'
        customer_crypto_wallets:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCustomerCryptoWallet'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - customer_id
        - provider_crypto_account_id
        - crypto_provider_id
        - crypto_provider
        - customer
        - business
        - customer_crypto_wallets
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessPayoutMethodMetadata:
      type: object
      properties:
        payoutMethod:
          $ref: '#/components/schemas/BusinessPayoutMethod'
        countryCode:
          type: string
        currency:
          $ref: '#/components/schemas/Currency'
        fieldOrder:
          type: number
        fieldName:
          type: string
        label:
          type: string
        fieldType:
          type: string
          enum:
            - text
            - number
            - dropdown
        isRequired:
          type: boolean
        options:
          type: object
          nullable: true
        options_when:
          type: object
          nullable: true
        helpText:
          type: string
        is_conditional:
          type: boolean
        conditions:
          type: object
          nullable: true
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - payoutMethod
        - countryCode
        - currency
        - fieldOrder
        - fieldName
        - label
        - fieldType
        - isRequired
        - options
        - options_when
        - helpText
        - is_conditional
        - conditions
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    Beneficiary:
      type: object
      properties:
        name:
          type: string
        payoutMethod:
          $ref: '#/components/schemas/PayoutMethod'
        countryCode:
          type: string
        currency:
          $ref: '#/components/schemas/Currency'
        metadata:
          type: object
          nullable: true
        user:
          $ref: '#/components/schemas/User'
        payouts:
          type: array
          items:
            $ref: '#/components/schemas/Payout'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - name
        - payoutMethod
        - countryCode
        - currency
        - metadata
        - user
        - payouts
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    Payout:
      type: object
      properties:
        user:
          $ref: '#/components/schemas/User'
        beneficiary:
          $ref: '#/components/schemas/Beneficiary'
        payoutMethod:
          $ref: '#/components/schemas/PayoutMethod'
        amount:
          type: number
        currency:
          $ref: '#/components/schemas/Currency'
        providerReference:
          type: string
        transferReference:
          type: string
        description:
          type: string
        status:
          type: string
          enum:
            - pending
            - processing
            - success
            - fail
            - manual_review
        providerFee:
          type: number
        networkFee:
          type: number
        platformFee:
          type: number
        totalAmount:
          type: number
        metadata:
          type: object
          nullable: true
        txHash:
          type: string
          nullable: true
        revenueMetadata:
          type: object
          nullable: true
        payoutsProvider:
          $ref: '#/components/schemas/PayoutsProvider'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - user
        - beneficiary
        - payoutMethod
        - amount
        - currency
        - providerReference
        - transferReference
        - description
        - status
        - providerFee
        - networkFee
        - platformFee
        - totalAmount
        - metadata
        - txHash
        - revenueMetadata
        - payoutsProvider
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    PayoutMethodMetadata:
      type: object
      properties:
        payoutMethod:
          $ref: '#/components/schemas/PayoutMethod'
        countryCode:
          type: string
        currency:
          $ref: '#/components/schemas/Currency'
        fieldOrder:
          type: number
        fieldName:
          type: string
        label:
          type: string
        fieldType:
          type: string
          enum:
            - text
            - number
            - dropdown
        isRequired:
          type: boolean
        options:
          type: object
          nullable: true
        options_when:
          type: object
          nullable: true
        helpText:
          type: string
        is_conditional:
          type: boolean
        conditions:
          type: object
          nullable: true
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - payoutMethod
        - countryCode
        - currency
        - fieldOrder
        - fieldName
        - label
        - fieldType
        - isRequired
        - options
        - options_when
        - helpText
        - is_conditional
        - conditions
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    Wallet:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        balance:
          type: number
        reserveBalance:
          type: number
        user:
          $ref: '#/components/schemas/User'
        currency:
          $ref: '#/components/schemas/Currency'
        created:
          format: date-time
          type: string
        updated:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
        crypto_transactions:
          type: array
          items:
            $ref: '#/components/schemas/CryptoTransaction'
      required:
        - id
        - uuid
        - balance
        - reserveBalance
        - user
        - currency
        - created
        - updated
        - crypto_transactions
    BusinessUser:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        phoneNumber:
          type: string
        password:
          type: string
        pin:
          type: string
        isPinSet:
          type: boolean
        isActive:
          type: boolean
        otp:
          type: string
        otpExpiresAt:
          format: date-time
          type: string
        pinSetupCode:
          type: string
        pinSetupCodeExpiresAt:
          format: date-time
          type: string
        isOtpVerified:
          type: boolean
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
        businessLink:
          type: array
          items:
            $ref: '#/components/schemas/BusinessUserLink'
      required:
        - id
        - uuid
        - firstName
        - lastName
        - email
        - phoneNumber
        - password
        - pin
        - isPinSet
        - isActive
        - otp
        - otpExpiresAt
        - pinSetupCode
        - pinSetupCodeExpiresAt
        - isOtpVerified
        - createdAt
        - updatedAt
        - deletedAt
        - businessLink
    BusinessCardHolder:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        customer:
          $ref: '#/components/schemas/Customer'
        cards:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCard'
        cardProviderCardHolderID:
          type: string
        provider:
          $ref: '#/components/schemas/BusinessCardProvider'
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - id
        - uuid
        - customer
        - cards
        - cardProviderCardHolderID
        - provider
        - createdAt
        - updatedAt
        - deletedAt
    BusinessCustomerVirtualAccountProvider:
      type: object
      properties:
        name:
          type: string
        currencyCode:
          type: string
        metadata:
          type: object
        accountCreationFee:
          type: number
        inflowFeeType:
          type: string
          enum:
            - flat
            - percentage
        inflowFeeValue:
          type: number
        inflowFeeCap:
          type: number
          nullable: true
        failed_request_fee:
          type: number
          nullable: true
        platformFeeValue:
          type: number
        customerVirtualAccounts:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCustomerVirtualAccount'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - name
        - currencyCode
        - metadata
        - accountCreationFee
        - inflowFeeType
        - inflowFeeValue
        - inflowFeeCap
        - failed_request_fee
        - platformFeeValue
        - customerVirtualAccounts
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessCustomerVirtualAccountDetails:
      type: object
      properties:
        virtualAccount:
          $ref: '#/components/schemas/BusinessCustomerVirtualAccount'
        accountMetadata:
          type: object
        validated:
          type: boolean
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - virtualAccount
        - accountMetadata
        - validated
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessPayoutMethod:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        category:
          type: string
        countryCode:
          type: string
        businessPayoutMethodMetadata:
          type: array
          items:
            $ref: '#/components/schemas/BusinessPayoutMethodMetadata'
        beneficiaries:
          type: array
          items:
            $ref: '#/components/schemas/BusinessBeneficiary'
        businessPayoutMethodProviders:
          type: array
          items:
            $ref: '#/components/schemas/BusinessPayoutMethodProvider'
        payouts:
          type: array
          items:
            $ref: '#/components/schemas/BusinessPayout'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - name
        - description
        - category
        - countryCode
        - businessPayoutMethodMetadata
        - beneficiaries
        - businessPayoutMethodProviders
        - payouts
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessPayoutsProvider:
      type: object
      properties:
        name:
          type: string
        metadata:
          type: object
        supportsBeneficiary:
          type: boolean
        businessPayouts:
          type: array
          items:
            $ref: '#/components/schemas/BusinessPayout'
        businessPayoutMethodProviders:
          type: array
          items:
            $ref: '#/components/schemas/BusinessPayoutMethodProvider'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - name
        - metadata
        - supportsBeneficiary
        - businessPayouts
        - businessPayoutMethodProviders
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessCryptoProvider:
      type: object
      properties:
        name:
          type: string
        walletCreationFee:
          type: number
        inflowFeeType:
          type: string
          enum:
            - flat
            - percentage
        inflowFeeValue:
          type: number
        inflowFeeCap:
          type: number
          nullable: true
        platformFeeValue:
          type: number
        cryptoNetworks:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCryptoNetwork'
        cryptoWallets:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCryptoWallet'
        crypto_accounts:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCustomerCryptoAccount'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - name
        - walletCreationFee
        - inflowFeeType
        - inflowFeeValue
        - inflowFeeCap
        - platformFeeValue
        - cryptoNetworks
        - cryptoWallets
        - crypto_accounts
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessCustomerCryptoWallet:
      type: object
      properties:
        provider_wallet_id:
          type: string
        address:
          type: string
        currency:
          type: string
        status:
          type: string
          enum:
            - active
            - disabled
        customer_crypto_account:
          $ref: '#/components/schemas/BusinessCustomerCryptoAccount'
        crypto_transactions:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCustomerCryptoTransaction'
        crypto_network_id:
          type: string
        crypto_network:
          $ref: '#/components/schemas/BusinessCryptoNetwork'
        crypto_provider_id:
          type: string
        crypto_provider:
          $ref: '#/components/schemas/BusinessCryptoProvider'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - provider_wallet_id
        - address
        - currency
        - status
        - customer_crypto_account
        - crypto_transactions
        - crypto_network_id
        - crypto_network
        - crypto_provider_id
        - crypto_provider
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    PayoutMethod:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        businessPayoutMethodId:
          type: string
          nullable: true
        providerPayoutMethodId:
          type: string
        countryCode:
          type: string
        currencyCode:
          type: string
          nullable: true
        category:
          type: string
        payoutFeeType:
          type: string
          enum:
            - flat
            - percentage
        payoutFeeCap:
          type: number
          nullable: true
        payoutFeeValue:
          type: number
        platformFeeValue:
          type: number
        minPayoutPlatformFee:
          type: number
          nullable: true
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/PayoutMethodMetadata'
        beneficiaries:
          type: array
          items:
            $ref: '#/components/schemas/Beneficiary'
        payouts:
          type: array
          items:
            $ref: '#/components/schemas/Payout'
        payoutsProvider:
          $ref: '#/components/schemas/PayoutsProvider'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - name
        - description
        - businessPayoutMethodId
        - providerPayoutMethodId
        - countryCode
        - currencyCode
        - category
        - payoutFeeType
        - payoutFeeCap
        - payoutFeeValue
        - platformFeeValue
        - minPayoutPlatformFee
        - metadata
        - beneficiaries
        - payouts
        - payoutsProvider
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    User:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
          format: email
        phoneNumber:
          type: string
        country:
          type: string
        password:
          type: string
        pin:
          type: string
        isPinSet:
          type: boolean
        emailOTP:
          type: string
        emailOTPExpiresAt:
          format: date-time
          type: string
        phoneOTP:
          type: string
        phoneOTPExpiresAt:
          format: date-time
          type: string
        hasCompletedFirstPayment:
          type: boolean
        hasCompletedKYC:
          type: boolean
        isActive:
          type: boolean
        isPhoneVerified:
          type: boolean
        isEmailVerified:
          type: boolean
        dob:
          format: date-time
          type: string
        role:
          type: string
          enum:
            - user
            - admin
        created:
          format: date-time
          type: string
        updated:
          format: date-time
          type: string
        novacrustBusinessCustomerId:
          type: string
        deletedAt:
          format: date-time
          type: string
        referedBy:
          type: string
        channel:
          type: string
        zid:
          type: string
        zohoDeletedAt:
          format: date-time
          type: string
          nullable: true
        marketingOptOut:
          type: boolean
        metadata:
          type: object
        kycLevel:
          type: number
        isThirdPartyPaymentAllowed:
          type: boolean
        beneficiaries:
          type: array
          items:
            $ref: '#/components/schemas/Beneficiary'
        payouts:
          type: array
          items:
            $ref: '#/components/schemas/Payout'
        userVirtualAccounts:
          type: array
          items:
            $ref: '#/components/schemas/UserVirtualAccount'
        crypto_transactions:
          type: array
          items:
            $ref: '#/components/schemas/CryptoTransaction'
        crypto_wallets:
          type: array
          items:
            $ref: '#/components/schemas/CryptoWallet'
        wallets:
          type: array
          items:
            $ref: '#/components/schemas/Wallet'
        is_ambassador:
          type: boolean
        isHighRisk:
          type: boolean
        reservePercentage:
          type: number
        isOtcCustomer:
          type: boolean
        otcPlatformPercentage:
          type: number
        intentions:
          type: array
          items:
            type: string
      required:
        - id
        - uuid
        - firstName
        - lastName
        - email
        - phoneNumber
        - country
        - password
        - pin
        - isPinSet
        - emailOTP
        - emailOTPExpiresAt
        - phoneOTP
        - phoneOTPExpiresAt
        - hasCompletedFirstPayment
        - hasCompletedKYC
        - isActive
        - isPhoneVerified
        - isEmailVerified
        - role
        - created
        - updated
        - novacrustBusinessCustomerId
        - referedBy
        - channel
        - zid
        - zohoDeletedAt
        - marketingOptOut
        - metadata
        - kycLevel
        - isThirdPartyPaymentAllowed
        - beneficiaries
        - payouts
        - userVirtualAccounts
        - crypto_transactions
        - crypto_wallets
        - wallets
        - is_ambassador
        - isHighRisk
        - reservePercentage
        - isOtcCustomer
        - otcPlatformPercentage
        - intentions
    PayoutsProvider:
      type: object
      properties:
        name:
          type: string
        metadata:
          type: object
        payouts:
          type: array
          items:
            $ref: '#/components/schemas/Payout'
        payoutsMethods:
          type: array
          items:
            $ref: '#/components/schemas/PayoutMethod'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - name
        - metadata
        - payouts
        - payoutsMethods
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    CryptoTransaction:
      type: object
      properties:
        user_id:
          type: number
        user:
          $ref: '#/components/schemas/User'
        crypto_wallet_id:
          type: number
        crypto_wallet:
          $ref: '#/components/schemas/CryptoWallet'
        network:
          type: string
        provider_reference:
          type: string
          nullable: true
        currency:
          type: string
        total_amount:
          type: string
        provider_fee:
          type: string
        platform_fee:
          type: string
        total_fees:
          type: string
        amount:
          type: string
        fiat_wallet_id:
          type: number
          nullable: true
        fiat_wallet:
          $ref: '#/components/schemas/Wallet'
        description:
          type: string
        status:
          type: object
        txHash:
          type: string
          nullable: true
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - user_id
        - user
        - crypto_wallet_id
        - crypto_wallet
        - network
        - provider_reference
        - currency
        - total_amount
        - provider_fee
        - platform_fee
        - total_fees
        - amount
        - fiat_wallet_id
        - fiat_wallet
        - status
        - txHash
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessCard:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        holder:
          $ref: '#/components/schemas/BusinessCardHolder'
        cardType:
          type: string
          enum:
            - VIRTUAL
            - PHYSICAL
        brand:
          type: string
        displayName:
          type: string
        balance:
          type: number
        maskedPan:
          type: string
        lastFourDigits:
          type: string
        expirationDate:
          type: string
        billingAddress:
          type: object
        provider:
          type: string
          enum:
            - bd
            - sd
            - brails
        status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
            - BLOCKED
            - EXPIRED
            - FROZEN
        cardProviderId:
          type: string
        addressLine1:
          type: string
        addressLine2:
          type: string
        city:
          type: string
        state:
          type: string
        postalCode:
          type: string
        country:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCardTransaction'
      required:
        - id
        - uuid
        - holder
        - cardType
        - brand
        - displayName
        - balance
        - maskedPan
        - lastFourDigits
        - expirationDate
        - billingAddress
        - provider
        - status
        - cardProviderId
        - addressLine1
        - addressLine2
        - city
        - state
        - postalCode
        - country
        - createdAt
        - updatedAt
        - deletedAt
        - transactions
    BusinessCardProvider:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        providerCardCreationFee:
          type: number
        name:
          type: string
        providerCardTransactionMinFee:
          type: number
        providerCardTransactionMaxFee:
          type: number
        providerCardTransactionFeePercentage:
          type: number
        providerCardMaintenanceFee:
          type: number
        novacrustCardTransactionMinFee:
          type: number
        novacrustCardTransactionMaxFee:
          type: number
        novacrustCardTransactionFeePercentage:
          type: number
        novacrustCardMaintenanceFee:
          type: number
        novacrustCardCreationFee:
          type: number
        providerCardFundingMinAmount:
          type: number
        supportedBrands:
          type: array
          items:
            type: string
        priority:
          type: number
        created:
          format: date-time
          type: string
        updated:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
      required:
        - id
        - uuid
        - providerCardCreationFee
        - name
        - providerCardTransactionMinFee
        - providerCardTransactionMaxFee
        - providerCardTransactionFeePercentage
        - providerCardMaintenanceFee
        - novacrustCardTransactionMinFee
        - novacrustCardTransactionMaxFee
        - novacrustCardTransactionFeePercentage
        - novacrustCardMaintenanceFee
        - novacrustCardCreationFee
        - providerCardFundingMinAmount
        - supportedBrands
        - priority
        - created
        - updated
    BusinessPayoutMethodProvider:
      type: object
      properties:
        payoutMethodId:
          type: string
        paymentMethodType:
          type: string
          nullable: true
        countryCode:
          type: string
        country:
          type: string
        currencyCode:
          type: string
        priority:
          type: number
        isActive:
          type: boolean
        fieldMappings:
          type: object
        payoutFeeType:
          type: object
        payoutFeeValue:
          type: number
        payoutFeeCap:
          type: number
        platformFeeValue:
          type: number
        minPayoutPlatformFee:
          type: number
          nullable: true
        minPayoutValue:
          type: number
        maxPayoutValue:
          type: number
        businessPayoutMethod:
          $ref: '#/components/schemas/BusinessPayoutMethod'
        providerId:
          type: string
        businessPayoutsProvider:
          $ref: '#/components/schemas/BusinessPayoutsProvider'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - payoutMethodId
        - paymentMethodType
        - countryCode
        - country
        - currencyCode
        - priority
        - isActive
        - fieldMappings
        - payoutFeeType
        - payoutFeeValue
        - payoutFeeCap
        - platformFeeValue
        - minPayoutPlatformFee
        - minPayoutValue
        - maxPayoutValue
        - businessPayoutMethod
        - providerId
        - businessPayoutsProvider
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessCryptoNetwork:
      type: object
      properties:
        name:
          type: string
        symbol:
          type: string
        currency:
          type: string
        cryptoProvider:
          $ref: '#/components/schemas/BusinessCryptoProvider'
        cryptoWallets:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCryptoWallet'
        cryptoTransactions:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCryptoTransaction'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - name
        - symbol
        - currency
        - cryptoProvider
        - cryptoWallets
        - cryptoTransactions
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessCryptoWallet:
      type: object
      properties:
        business:
          $ref: '#/components/schemas/Business'
        cryptoProvider:
          $ref: '#/components/schemas/BusinessCryptoProvider'
        cryptoNetwork:
          $ref: '#/components/schemas/BusinessCryptoNetwork'
        user_id_from_provider:
          type: string
        wallet_id_from_provider:
          type: string
        currency:
          type: string
        address:
          type: string
        status:
          type: string
          enum:
            - active
            - disabled
        cryptoTransactions:
          type: array
          items:
            $ref: '#/components/schemas/BusinessCryptoTransaction'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - business
        - cryptoProvider
        - cryptoNetwork
        - user_id_from_provider
        - wallet_id_from_provider
        - currency
        - address
        - status
        - cryptoTransactions
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessCustomerCryptoTransaction:
      type: object
      properties:
        customer_crypto_wallet:
          $ref: '#/components/schemas/BusinessCustomerCryptoWallet'
        cryptoNetwork:
          $ref: '#/components/schemas/BusinessCryptoNetwork'
        providerReference:
          type: string
          nullable: true
        currency:
          type: string
        totalAmount:
          type: string
        fee:
          type: string
        amount:
          type: string
        fiatWalletId:
          type: number
          nullable: true
        status:
          type: string
          enum:
            - pending
            - confirmed
            - failed
        txid:
          type: string
        transaction_reference:
          type: string
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - customer_crypto_wallet
        - cryptoNetwork
        - providerReference
        - currency
        - totalAmount
        - fee
        - amount
        - fiatWalletId
        - status
        - txid
        - transaction_reference
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    UserVirtualAccount:
      type: object
      properties:
        user:
          $ref: '#/components/schemas/User'
        currency:
          $ref: '#/components/schemas/Currency'
        virtualAccountProvider:
          $ref: '#/components/schemas/VirtualAccountProvider'
        status:
          type: string
          enum:
            - requested
            - pending
            - active
            - inactive
            - freezing
            - failed
        account_id_from_provider:
          type: string
        activation_metadata:
          type: object
          nullable: true
        userVirtualAccountDetails:
          $ref: '#/components/schemas/UserVirtualAccountDetails'
        tos_status:
          type: boolean
        kyc_status:
          type: boolean
        rejection_reason:
          type: string
          nullable: true
        kyc_rejection_reasons:
          type: object
          properties:
            reason:
              type: string
            developerReason:
              type: string
          required:
            - reason
            - developerReason
        pending_issues:
          nullable: true
          type: array
          items:
            type: string
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - user
        - currency
        - virtualAccountProvider
        - status
        - account_id_from_provider
        - activation_metadata
        - userVirtualAccountDetails
        - tos_status
        - kyc_status
        - rejection_reason
        - kyc_rejection_reasons
        - pending_issues
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    CryptoWallet:
      type: object
      properties:
        user_id:
          type: number
        user:
          $ref: '#/components/schemas/User'
        provider_wallet_id:
          type: string
        address:
          type: string
        currency:
          type: string
        network:
          type: object
        status:
          type: string
          enum:
            - active
            - disabled
        crypto_transactions:
          type: array
          items:
            $ref: '#/components/schemas/CryptoTransaction'
        crypto_provider_id:
          type: number
        crypto_provider:
          $ref: '#/components/schemas/CryptoProvider'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - user_id
        - user
        - provider_wallet_id
        - address
        - currency
        - network
        - status
        - crypto_transactions
        - crypto_provider_id
        - crypto_provider
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    BusinessCardTransaction:
      type: object
      properties:
        id:
          type: number
        uuid:
          type: string
        card:
          $ref: '#/components/schemas/BusinessCard'
        reference:
          type: string
        providerReference:
          type: string
        type:
          enum:
            - CREDIT
            - DEBIT
          type: string
        serviceType:
          enum:
            - wallet_funding
            - payout_withdrawal
            - balance_update
            - exchange
            - card_funding
            - card_withdrawal
            - card_creation
            - usd_account_creation
            - platform_fee
            - purchase
            - monthly_card_maintenance
            - fund_card
            - refund
            - gift_card_purchase
            - gift_card_sale
            - authorization_code
            - business_collection
          type: string
        currency:
          type: string
        merchantCategoryCode:
          type: string
        amount:
          type: number
        platformFee:
          type: number
        cardProviderFee:
          type: number
        revenueMetadata:
          type: object
          nullable: true
        balanceBefore:
          type: number
        balanceAfter:
          type: number
        description:
          type: string
        status:
          enum:
            - PENDING
            - SUCCESS
            - FAILED
            - CLOSE
            - MANUAL_REVIEW
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - id
        - uuid
        - card
        - reference
        - providerReference
        - type
        - serviceType
        - currency
        - merchantCategoryCode
        - amount
        - platformFee
        - cardProviderFee
        - revenueMetadata
        - balanceBefore
        - balanceAfter
        - description
        - status
        - createdAt
        - updatedAt
        - deletedAt
    BusinessCryptoTransaction:
      type: object
      properties:
        cryptoWallet:
          $ref: '#/components/schemas/BusinessCryptoWallet'
        cryptoNetwork:
          $ref: '#/components/schemas/BusinessCryptoNetwork'
        providerReference:
          type: string
          nullable: true
        currency:
          type: string
        totalAmount:
          type: string
        fee:
          type: string
        amount:
          type: string
        fiatWalletId:
          type: number
          nullable: true
        status:
          type: string
          enum:
            - pending
            - confirmed
            - failed
        txHash:
          type: string
          nullable: true
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - cryptoWallet
        - cryptoNetwork
        - providerReference
        - currency
        - totalAmount
        - fee
        - amount
        - fiatWalletId
        - status
        - txHash
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    VirtualAccountProvider:
      type: object
      properties:
        name:
          type: string
        currencyCode:
          type: string
        metadata:
          type: object
        accountCreationFee:
          type: number
        minimumFundingFee:
          type: number
        inflowFeeType:
          type: string
          enum:
            - flat
            - percentage
        inflowFeeValue:
          type: number
        inflowFeeCap:
          type: number
          nullable: true
        platformFeeValue:
          type: number
        failed_request_fee:
          type: number
          nullable: true
        userVirtualAccounts:
          type: array
          items:
            $ref: '#/components/schemas/UserVirtualAccount'
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - name
        - currencyCode
        - metadata
        - accountCreationFee
        - minimumFundingFee
        - inflowFeeType
        - inflowFeeValue
        - inflowFeeCap
        - platformFeeValue
        - failed_request_fee
        - userVirtualAccounts
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    UserVirtualAccountDetails:
      type: object
      properties:
        virtualAccount:
          $ref: '#/components/schemas/UserVirtualAccount'
        accountMetadata:
          type: object
        validated:
          type: boolean
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - virtualAccount
        - accountMetadata
        - validated
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
    CryptoProvider:
      type: object
      properties:
        name:
          type: string
        wallet_creation_fee:
          type: number
        inflow_fee_type:
          type: object
        inflow_fee_value:
          type: number
        inflow_fee_cap:
          type: number
          nullable: true
        id:
          type: number
        uuid:
          type: string
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        deletedAt:
          format: date-time
          type: string
          nullable: true
      required:
        - name
        - wallet_creation_fee
        - inflow_fee_type
        - inflow_fee_value
        - inflow_fee_cap
        - id
        - uuid
        - createdAt
        - updatedAt
        - deletedAt
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: authorization

````

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